mirror of
https://github.com/yuzu-emu/breakpad.git
synced 2025-07-23 01:58:31 +00:00
Add a parameter to control the Mac reporter timeout.
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@332 4c0a9323-5329-0410-9bdc-e9ce6186880e
This commit is contained in:
parent
1cb4ad73a6
commit
e438d9cc0b
|
@ -68,6 +68,7 @@ extern "C" {
|
||||||
#define BREAKPAD_URL "BreakpadURL"
|
#define BREAKPAD_URL "BreakpadURL"
|
||||||
#define BREAKPAD_REPORT_INTERVAL "BreakpadReportInterval"
|
#define BREAKPAD_REPORT_INTERVAL "BreakpadReportInterval"
|
||||||
#define BREAKPAD_SKIP_CONFIRM "BreakpadSkipConfirm"
|
#define BREAKPAD_SKIP_CONFIRM "BreakpadSkipConfirm"
|
||||||
|
#define BREAKPAD_CONFIRM_TIMEOUT "BreakpadConfirmTimeout"
|
||||||
#define BREAKPAD_SEND_AND_EXIT "BreakpadSendAndExit"
|
#define BREAKPAD_SEND_AND_EXIT "BreakpadSendAndExit"
|
||||||
#define BREAKPAD_DUMP_DIRECTORY "BreakpadMinidumpLocation"
|
#define BREAKPAD_DUMP_DIRECTORY "BreakpadMinidumpLocation"
|
||||||
#define BREAKPAD_INSPECTOR_LOCATION "BreakpadInspectorLocation"
|
#define BREAKPAD_INSPECTOR_LOCATION "BreakpadInspectorLocation"
|
||||||
|
@ -134,6 +135,12 @@ typedef bool (*BreakpadFilterCallback)(int exception_type,
|
||||||
// without any user intervention.
|
// without any user intervention.
|
||||||
// Defaults to NO
|
// Defaults to NO
|
||||||
//
|
//
|
||||||
|
// BREAKPAD_CONFIRM_TIMEOUT Number of seconds before the upload
|
||||||
|
// confirmation dialog will be automatically
|
||||||
|
// dismissed (cancelling the upload).
|
||||||
|
// Default: 300 seconds (min of 60).
|
||||||
|
// Specify 0 to prevent timeout.
|
||||||
|
//
|
||||||
// BREAKPAD_SEND_AND_EXIT If true, the handler will exit after sending.
|
// BREAKPAD_SEND_AND_EXIT If true, the handler will exit after sending.
|
||||||
// This will prevent any other handler (e.g.,
|
// This will prevent any other handler (e.g.,
|
||||||
// CrashReporter) from getting the crash.
|
// CrashReporter) from getting the crash.
|
||||||
|
|
|
@ -398,6 +398,7 @@ bool Breakpad::ExtractParameters(NSDictionary *parameters) {
|
||||||
NSString *reporterPathString =
|
NSString *reporterPathString =
|
||||||
[parameters objectForKey:@BREAKPAD_REPORTER_EXE_LOCATION];
|
[parameters objectForKey:@BREAKPAD_REPORTER_EXE_LOCATION];
|
||||||
NSString *skipConfirm = [parameters objectForKey:@BREAKPAD_SKIP_CONFIRM];
|
NSString *skipConfirm = [parameters objectForKey:@BREAKPAD_SKIP_CONFIRM];
|
||||||
|
NSString *timeout = [parameters objectForKey:@BREAKPAD_CONFIRM_TIMEOUT];
|
||||||
NSString *sendAndExit = [parameters objectForKey:@BREAKPAD_SEND_AND_EXIT];
|
NSString *sendAndExit = [parameters objectForKey:@BREAKPAD_SEND_AND_EXIT];
|
||||||
NSArray *logFilePaths = [parameters objectForKey:@BREAKPAD_LOGFILES];
|
NSArray *logFilePaths = [parameters objectForKey:@BREAKPAD_LOGFILES];
|
||||||
NSString *logFileTailSize = [parameters objectForKey:@BREAKPAD_LOGFILE_UPLOAD_SIZE];
|
NSString *logFileTailSize = [parameters objectForKey:@BREAKPAD_LOGFILE_UPLOAD_SIZE];
|
||||||
|
@ -432,6 +433,9 @@ bool Breakpad::ExtractParameters(NSDictionary *parameters) {
|
||||||
if (!interval)
|
if (!interval)
|
||||||
interval = @"3600";
|
interval = @"3600";
|
||||||
|
|
||||||
|
if (!timeout)
|
||||||
|
timeout = @"300";
|
||||||
|
|
||||||
if (!logFileTailSize)
|
if (!logFileTailSize)
|
||||||
logFileTailSize = @"200000";
|
logFileTailSize = @"200000";
|
||||||
|
|
||||||
|
@ -535,6 +539,7 @@ bool Breakpad::ExtractParameters(NSDictionary *parameters) {
|
||||||
dictionary.SetKeyValue(BREAKPAD_URL, [urlStr UTF8String]);
|
dictionary.SetKeyValue(BREAKPAD_URL, [urlStr UTF8String]);
|
||||||
dictionary.SetKeyValue(BREAKPAD_REPORT_INTERVAL, [interval UTF8String]);
|
dictionary.SetKeyValue(BREAKPAD_REPORT_INTERVAL, [interval UTF8String]);
|
||||||
dictionary.SetKeyValue(BREAKPAD_SKIP_CONFIRM, [skipConfirm UTF8String]);
|
dictionary.SetKeyValue(BREAKPAD_SKIP_CONFIRM, [skipConfirm UTF8String]);
|
||||||
|
dictionary.SetKeyValue(BREAKPAD_CONFIRM_TIMEOUT, [timeout UTF8String]);
|
||||||
dictionary.SetKeyValue(BREAKPAD_INSPECTOR_LOCATION,
|
dictionary.SetKeyValue(BREAKPAD_INSPECTOR_LOCATION,
|
||||||
[inspectorPathString fileSystemRepresentation]);
|
[inspectorPathString fileSystemRepresentation]);
|
||||||
dictionary.SetKeyValue(BREAKPAD_REPORTER_EXE_LOCATION,
|
dictionary.SetKeyValue(BREAKPAD_REPORTER_EXE_LOCATION,
|
||||||
|
|
|
@ -369,7 +369,6 @@ NSString *const kDefaultServerType = @"google";
|
||||||
@""), display]];
|
@""), display]];
|
||||||
NSString *defaultButtonTitle = nil;
|
NSString *defaultButtonTitle = nil;
|
||||||
NSString *otherButtonTitle = nil;
|
NSString *otherButtonTitle = nil;
|
||||||
NSTimeInterval timeout = 60.0; // timeout value for the user notification
|
|
||||||
|
|
||||||
// Get the localized alert strings
|
// Get the localized alert strings
|
||||||
// If we're going to submit a report, prompt the user if this is okay.
|
// If we're going to submit a report, prompt the user if this is okay.
|
||||||
|
@ -386,19 +385,19 @@ NSString *const kDefaultServerType = @"google";
|
||||||
nil, bundle, @"");
|
nil, bundle, @"");
|
||||||
otherButtonTitle = NSLocalizedStringFromTableInBundle(@"cancelButton", nil,
|
otherButtonTitle = NSLocalizedStringFromTableInBundle(@"cancelButton", nil,
|
||||||
bundle, @"");
|
bundle, @"");
|
||||||
|
|
||||||
// Nominally use the report interval
|
|
||||||
timeout = [[parameters_ objectForKey:@BREAKPAD_REPORT_INTERVAL]
|
|
||||||
floatValue];
|
|
||||||
} else {
|
} else {
|
||||||
[self setReportMessage:NSLocalizedStringFromTableInBundle(@"noSendMsg", nil,
|
[self setReportMessage:NSLocalizedStringFromTableInBundle(@"noSendMsg", nil,
|
||||||
bundle, @"")];
|
bundle, @"")];
|
||||||
defaultButtonTitle = NSLocalizedStringFromTableInBundle(@"noSendButton",
|
defaultButtonTitle = NSLocalizedStringFromTableInBundle(@"noSendButton",
|
||||||
nil, bundle, @"");
|
nil, bundle, @"");
|
||||||
timeout = 60.0;
|
|
||||||
}
|
}
|
||||||
// show the notification for at least one minute
|
|
||||||
if (timeout < 60.0) {
|
// Get the timeout value for the notification.
|
||||||
|
NSTimeInterval timeout = [[parameters_ objectForKey:@BREAKPAD_CONFIRM_TIMEOUT]
|
||||||
|
floatValue];
|
||||||
|
// Show the notification for at least one minute (but allow 0, since it means
|
||||||
|
// no timeout).
|
||||||
|
if (timeout > 0.001 && timeout < 60.0) {
|
||||||
timeout = 60.0;
|
timeout = 60.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -452,9 +451,11 @@ NSString *const kDefaultServerType = @"google";
|
||||||
|
|
||||||
- (int)runModalWindow:(NSWindow*)window withTimeout:(NSTimeInterval)timeout {
|
- (int)runModalWindow:(NSWindow*)window withTimeout:(NSTimeInterval)timeout {
|
||||||
// Queue a |stopModal| message to be performed in |timeout| seconds.
|
// Queue a |stopModal| message to be performed in |timeout| seconds.
|
||||||
[NSApp performSelector:@selector(stopModal)
|
if (timeout > 0.001) {
|
||||||
withObject:nil
|
[NSApp performSelector:@selector(stopModal)
|
||||||
afterDelay:timeout];
|
withObject:nil
|
||||||
|
afterDelay:timeout];
|
||||||
|
}
|
||||||
|
|
||||||
// Run the window modally and wait for either a |stopModal| message or a
|
// Run the window modally and wait for either a |stopModal| message or a
|
||||||
// button click.
|
// button click.
|
||||||
|
|
Loading…
Reference in a new issue