diff options
Diffstat (limited to 'toolkit/crashreporter/google-breakpad/src/client/mac/Framework/Breakpad.h')
-rw-r--r-- | toolkit/crashreporter/google-breakpad/src/client/mac/Framework/Breakpad.h | 285 |
1 files changed, 0 insertions, 285 deletions
diff --git a/toolkit/crashreporter/google-breakpad/src/client/mac/Framework/Breakpad.h b/toolkit/crashreporter/google-breakpad/src/client/mac/Framework/Breakpad.h deleted file mode 100644 index dc7e45d1c..000000000 --- a/toolkit/crashreporter/google-breakpad/src/client/mac/Framework/Breakpad.h +++ /dev/null @@ -1,285 +0,0 @@ -// Copyright (c) 2006, Google Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Framework to provide a simple C API to crash reporting for -// applications. By default, if any machine-level exception (e.g., -// EXC_BAD_ACCESS) occurs, it will be handled by the BreakpadRef -// object as follows: -// -// 1. Create a minidump file (see Breakpad for details) -// 2. Prompt the user (using CFUserNotification) -// 3. Invoke a command line reporting tool to send the minidump to a -// server -// -// By specifying parameters to the BreakpadCreate function, you can -// modify the default behavior to suit your needs and wants and -// desires. - -// A service name associated with the original bootstrap parent port, saved in -// OnDemandServer and restored in Inspector. -#define BREAKPAD_BOOTSTRAP_PARENT_PORT "com.Breakpad.BootstrapParent" - -typedef void *BreakpadRef; - -#ifdef __cplusplus -extern "C" { -#endif - -#include <CoreFoundation/CoreFoundation.h> -#include <Foundation/Foundation.h> - -#include "BreakpadDefines.h" - -// Optional user-defined function to dec to decide if we should handle -// this crash or forward it along. -// Return true if you want Breakpad to handle it. -// Return false if you want Breakpad to skip it -// The exception handler always returns false, as if SEND_AND_EXIT were false -// (which means the next exception handler will take the exception) -typedef bool (*BreakpadFilterCallback)(int exception_type, - int exception_code, - mach_port_t crashing_thread, - void *context); - -// Create a new BreakpadRef object and install it as an exception -// handler. The |parameters| will typically be the contents of your -// bundle's Info.plist. -// -// You can also specify these additional keys for customizable behavior: -// Key: Value: -// BREAKPAD_PRODUCT Product name (e.g., "MyAwesomeProduct") -// This one is used as the key to identify -// the product when uploading. Falls back to -// CFBundleName if not specified. -// REQUIRED -// -// BREAKPAD_PRODUCT_DISPLAY This is the display name, e.g. a pretty -// name for the product when the crash_sender -// pops up UI for the user. Falls back first to -// CFBundleDisplayName and then to -// BREAKPAD_PRODUCT if not specified. -// -// BREAKPAD_VERSION Product version (e.g., 1.2.3), used -// as metadata for crash report. Falls back to -// CFBundleVersion if not specified. -// REQUIRED -// -// BREAKPAD_VENDOR Vendor name, used in UI (e.g. "A report has -// been created that you can send to <vendor>") -// -// BREAKPAD_URL URL destination for reporting -// REQUIRED -// -// BREAKPAD_REPORT_INTERVAL # of seconds between sending -// reports. If an additional report is -// generated within this time, it will -// be ignored. Default: 3600sec. -// Specify 0 to send all reports. -// -// BREAKPAD_SKIP_CONFIRM If true, the reporter will send the report -// without any user intervention. -// 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. -// This will prevent any other handler (e.g., -// CrashReporter) from getting the crash. -// Defaults TO YES -// -// BREAKPAD_DUMP_DIRECTORY The directory to store crash-dumps -// in. By default, we use -// ~/Library/Breakpad/<BREAKPAD_PRODUCT> -// The path you specify here is tilde-expanded. -// -// BREAKPAD_INSPECTOR_LOCATION The full path to the Inspector executable. -// Defaults to <Framework resources>/Inspector -// -// BREAKPAD_REPORTER_EXE_LOCATION The full path to the Reporter/sender -// executable. -// Default: -// <Framework Resources>/crash_report_sender.app -// -// BREAKPAD_LOGFILES Indicates an array of log file paths that -// should be uploaded at crash time. -// -// BREAKPAD_REQUEST_COMMENTS If true, the message dialog will have a -// text box for the user to enter comments. -// Default: NO -// -// BREAKPAD_REQUEST_EMAIL If true and BREAKPAD_REQUEST_COMMENTS is also -// true, the message dialog will have a text -// box for the user to enter their email address. -// Default: NO -// -// BREAKPAD_SERVER_TYPE A parameter that tells Breakpad how to -// rewrite the upload parameters for a specific -// server type. The currently valid values are -// 'socorro' or 'google'. If you want to add -// other types, see the function in -// crash_report_sender.m that maps parameters to -// URL parameters. Defaults to 'google'. -// -// BREAKPAD_SERVER_PARAMETER_DICT A plist dictionary of static -// parameters that are uploaded to the -// server. The parameters are sent as -// is to the crash server. Their -// content isn't added to the minidump -// but pass as URL parameters when -// uploading theminidump to the crash -// server. -// -// BREAKPAD_IN_PROCESS A boolean NSNumber value. If YES, Breakpad -// will write the dump file in-process and then -// launch the reporter executable as a child -// process. -//============================================================================= -// The BREAKPAD_PRODUCT, BREAKPAD_VERSION and BREAKPAD_URL are -// required to have non-NULL values. By default, the BREAKPAD_PRODUCT -// will be the CFBundleName and the BREAKPAD_VERSION will be the -// CFBundleVersion when these keys are present in the bundle's -// Info.plist, which is usually passed in to BreakpadCreate() as an -// NSDictionary (you could also pass in another dictionary that had -// the same keys configured). If the BREAKPAD_PRODUCT or -// BREAKPAD_VERSION are ultimately undefined, BreakpadCreate() will -// fail. You have been warned. -// -// If you are running in a debugger, Breakpad will not install, unless the -// BREAKPAD_IGNORE_DEBUGGER envionment variable is set and/or non-zero. -// -// The BREAKPAD_SKIP_CONFIRM and BREAKPAD_SEND_AND_EXIT default -// values are NO and YES. However, they can be controlled by setting their -// values in a user or global plist. -// -// It's easiest to use Breakpad via the Framework, but if you're compiling the -// code in directly, BREAKPAD_INSPECTOR_LOCATION and -// BREAKPAD_REPORTER_EXE_LOCATION allow you to specify custom paths -// to the helper executables. -// -//============================================================================= -// The following are NOT user-supplied but are documented here for -// completeness. They are calculated by Breakpad during initialization & -// crash-dump generation, or entered in by the user. -// -// BREAKPAD_PROCESS_START_TIME The time, in seconds since the Epoch, the -// process started -// -// BREAKPAD_PROCESS_CRASH_TIME The time, in seconds since the Epoch, the -// process crashed. -// -// BREAKPAD_PROCESS_UP_TIME The total time in milliseconds the process -// has been running. This parameter is not -// set until the crash-dump-generation phase. -// -// BREAKPAD_LOGFILE_KEY_PREFIX Used to find out which parameters in the -// parameter dictionary correspond to log -// file paths. -// -// BREAKPAD_SERVER_PARAMETER_PREFIX This prefix is used by Breakpad -// internally, because Breakpad uses -// the same dictionary internally to -// track both its internal -// configuration parameters and -// parameters meant to be uploaded -// to the server. This string is -// used internally by Breakpad to -// prefix user-supplied parameter -// names so those can be sent to the -// server without leaking Breakpad's -// internal values. -// -// BREAKPAD_ON_DEMAND Used internally to indicate to the -// Reporter that we're sending on-demand, -// not as result of a crash. -// -// BREAKPAD_COMMENTS The text the user provided as comments. -// Only used in crash_report_sender. - -// Returns a new BreakpadRef object on success, NULL otherwise. -BreakpadRef BreakpadCreate(NSDictionary *parameters); - -// Uninstall and release the data associated with |ref|. -void BreakpadRelease(BreakpadRef ref); - -// Clients may set an optional callback which gets called when a crash -// occurs. The callback function should return |true| if we should -// handle the crash, generate a crash report, etc. or |false| if we -// should ignore it and forward the crash (normally to CrashReporter). -// Context is a pointer to arbitrary data to make the callback with. -void BreakpadSetFilterCallback(BreakpadRef ref, - BreakpadFilterCallback callback, - void *context); - -// User defined key and value string storage. Generally this is used -// to configure Breakpad's internal operation, such as whether the -// crash_sender should prompt the user, or the filesystem location for -// the minidump file. See Breakpad.h for some parameters that can be -// set. Anything longer than 255 bytes will be truncated. Note that -// the string is converted to UTF8 before truncation, so any multibyte -// character that straddles the 255(256 - 1 for terminator) byte limit -// will be mangled. -// -// A maximum number of 64 key/value pairs are supported. An assert() -// will fire if more than this number are set. Unfortunately, right -// now, the same dictionary is used for both Breakpad's parameters AND -// the Upload parameters. -// -// TODO (nealsid): Investigate how necessary this is if we don't -// automatically upload parameters to the server anymore. -// TODO (nealsid): separate server parameter dictionary from the -// dictionary used to configure Breakpad, and document limits for each -// independently. -void BreakpadSetKeyValue(BreakpadRef ref, NSString *key, NSString *value); -NSString *BreakpadKeyValue(BreakpadRef ref, NSString *key); -void BreakpadRemoveKeyValue(BreakpadRef ref, NSString *key); - -// You can use this method to specify parameters that will be uploaded -// to the crash server. They will be automatically encoded as -// necessary. Note that as mentioned above there are limits on both -// the number of keys and their length. -void BreakpadAddUploadParameter(BreakpadRef ref, NSString *key, - NSString *value); - -// This method will remove a previously-added parameter from the -// upload parameter set. -void BreakpadRemoveUploadParameter(BreakpadRef ref, NSString *key); - -// Add a log file for Breakpad to read and send upon crash dump -void BreakpadAddLogFile(BreakpadRef ref, NSString *logPathname); - -// Generate a minidump and send -void BreakpadGenerateAndSendReport(BreakpadRef ref); - -#ifdef __cplusplus -} -#endif |