diff options
author | nealsid <nealsid@4c0a9323-5329-0410-9bdc-e9ce6186880e> | 2009-04-06 00:25:29 +0000 |
---|---|---|
committer | nealsid <nealsid@4c0a9323-5329-0410-9bdc-e9ce6186880e> | 2009-04-06 00:25:29 +0000 |
commit | a3d4c973369987e14cc0c05964e288ea0eac11dc (patch) | |
tree | f53b1acc20ae0a32a8b2a5cc96c4a0d90e101368 /src | |
parent | Open sourcing the Breakpad framework from Google. (diff) | |
download | breakpad-a3d4c973369987e14cc0c05964e288ea0eac11dc.tar.xz |
Incorporate feedback from first Breakpad integration.
This upload fixes five issues:
1) Preston's email was hardcoded in the xib :-(
2) Changed from xib to NIB to facilitate Tiger building
3) Changed the logs location to be user specifiable by BreakpadMinidumpLocation
key, or ~/Library/Breakpad/<BREAKPAD_PRODUCT> by default
4) Fixed GTM Defines problem in order to build on Tiger
5) Also set CFBundleIcon in the sender program correctly, and updated plist, and
renamed ReporterIcons to crash_report_sendER.ICNS. However the rietveld upload
script doesn't appear to pick up renamed files correctly, so that file doesn't
show up in the patch upload.
Also various comments were updated for accuracy.
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@323 4c0a9323-5329-0410-9bdc-e9ce6186880e
Diffstat (limited to 'src')
-rw-r--r-- | src/client/mac/Breakpad.xcodeproj/project.pbxproj | 56 | ||||
-rw-r--r-- | src/client/mac/Framework/Breakpad.h | 49 | ||||
-rw-r--r-- | src/client/mac/Framework/Breakpad.mm | 23 | ||||
-rw-r--r-- | src/client/mac/crash_generation/Inspector.h | 15 | ||||
-rw-r--r-- | src/client/mac/crash_generation/Inspector.mm | 28 | ||||
-rw-r--r-- | src/client/mac/sender/English.lproj/Breakpad.nib/classes.nib | 33 | ||||
-rw-r--r-- | src/client/mac/sender/English.lproj/Breakpad.nib/info.nib | 20 | ||||
-rw-r--r-- | src/client/mac/sender/English.lproj/Breakpad.nib/keyedobjects.nib | bin | 0 -> 10208 bytes | |||
-rw-r--r-- | src/client/mac/sender/English.lproj/Breakpad.xib | 834 | ||||
-rw-r--r-- | src/client/mac/sender/ReporterIcon.graffle | 2 | ||||
-rw-r--r-- | src/client/mac/sender/crash_report_sender-Info.plist | 2 | ||||
-rw-r--r-- | src/client/mac/sender/crash_report_sender.icns (renamed from src/client/mac/sender/ReporterIcon.icns) | bin | 170816 -> 170816 bytes | |||
-rw-r--r-- | src/client/mac/testapp/Info.plist | 84 | ||||
-rw-r--r-- | src/common/mac/GTMLogger.h | 2 |
14 files changed, 205 insertions, 943 deletions
diff --git a/src/client/mac/Breakpad.xcodeproj/project.pbxproj b/src/client/mac/Breakpad.xcodeproj/project.pbxproj index 1794529a..f532d99a 100644 --- a/src/client/mac/Breakpad.xcodeproj/project.pbxproj +++ b/src/client/mac/Breakpad.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 44; + objectVersion = 42; objects = { /* Begin PBXAggregateTarget section */ @@ -26,8 +26,9 @@ /* End PBXAggregateTarget section */ /* Begin PBXBuildFile section */ - 4084699D0F5D9CF900FDCA37 /* ReporterIcon.icns in Resources */ = {isa = PBXBuildFile; fileRef = 4084699C0F5D9CF900FDCA37 /* ReporterIcon.icns */; }; + 4084699D0F5D9CF900FDCA37 /* crash_report_sender.icns in Resources */ = {isa = PBXBuildFile; fileRef = 4084699C0F5D9CF900FDCA37 /* crash_report_sender.icns */; }; 8DC2EF570486A6940098B216 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7B1FEA5585E11CA2CBB /* Cocoa.framework */; }; + F9267CB30F844BDD00A827EC /* Breakpad.nib in Resources */ = {isa = PBXBuildFile; fileRef = F9267CB10F844BDD00A827EC /* Breakpad.nib */; }; F9286B3A0F7EB25800A4DCC8 /* InspectorMain.mm in Sources */ = {isa = PBXBuildFile; fileRef = F9286B390F7EB25800A4DCC8 /* InspectorMain.mm */; }; F92C53B80ECCE7B3009BE4BA /* Inspector.mm in Sources */ = {isa = PBXBuildFile; fileRef = F92C53B70ECCE7B3009BE4BA /* Inspector.mm */; }; F92C554C0ECCF534009BE4BA /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D69BFE84028FC02AAC07 /* Foundation.framework */; }; @@ -84,7 +85,6 @@ F93DE33F0F82C66B00608B94 /* string_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53820ECCE635009BE4BA /* string_utilities.cc */; }; F93DE3410F82C68300608B94 /* exception_handler_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = F93DE3400F82C68300608B94 /* exception_handler_test.cc */; }; F945849E0F280E3C009A47BF /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = F945849C0F280E3C009A47BF /* Localizable.strings */; }; - F94586220F7842CF009A47BF /* Breakpad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 40F2AEEB0F4F2F55004510E8 /* Breakpad.xib */; }; F9C444530F7981E600991B96 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = F9C444510F7981E600991B96 /* InfoPlist.strings */; }; F9C44DB20EF07288003AEBAA /* Controller.m in Sources */ = {isa = PBXBuildFile; fileRef = F9C44DAC0EF07288003AEBAA /* Controller.m */; }; F9C44DB30EF07288003AEBAA /* crashduringload in Resources */ = {isa = PBXBuildFile; fileRef = F9C44DAD0EF07288003AEBAA /* crashduringload */; }; @@ -130,28 +130,28 @@ isa = PBXContainerItemProxy; containerPortal = 0867D690FE84028FC02AAC07 /* Project object */; proxyType = 1; - remoteGlobalIDString = F93803BD0F80820F004D428B /* generator_test */; + remoteGlobalIDString = F93803BD0F80820F004D428B; remoteInfo = generator_test; }; F93DE2FD0F82C3C900608B94 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 0867D690FE84028FC02AAC07 /* Project object */; proxyType = 1; - remoteGlobalIDString = F93DE2D00F82A67300608B94 /* minidump_file_writer_unittest */; + remoteGlobalIDString = F93DE2D00F82A67300608B94; remoteInfo = minidump_file_writer_unittest; }; F93DE36F0F82CC1300608B94 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 0867D690FE84028FC02AAC07 /* Project object */; proxyType = 1; - remoteGlobalIDString = F93DE32B0F82C55600608B94 /* handler_test */; + remoteGlobalIDString = F93DE32B0F82C55600608B94; remoteInfo = handler_test; }; F93DE3A60F830D1D00608B94 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 0867D690FE84028FC02AAC07 /* Project object */; proxyType = 1; - remoteGlobalIDString = F9C77DD90F7DD5CF0045F7DB /* UnitTests */; + remoteGlobalIDString = F9C77DD90F7DD5CF0045F7DB; remoteInfo = UnitTests; }; F94585870F78232B009A47BF /* PBXContainerItemProxy */ = { @@ -224,9 +224,9 @@ 0867D6A5FE840307C02AAC07 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; }; 1058C7B1FEA5585E11CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; }; 32DBCF5E0370ADEE00C91783 /* Breakpad_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Breakpad_Prefix.pch; path = Framework/Breakpad_Prefix.pch; sourceTree = "<group>"; }; - 4084699C0F5D9CF900FDCA37 /* ReporterIcon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = ReporterIcon.icns; path = sender/ReporterIcon.icns; sourceTree = "<group>"; }; - 40F2AEEC0F4F2F55004510E8 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = sender/English.lproj/Breakpad.xib; sourceTree = "<group>"; }; + 4084699C0F5D9CF900FDCA37 /* crash_report_sender.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = crash_report_sender.icns; path = sender/crash_report_sender.icns; sourceTree = "<group>"; }; 8DC2EF5B0486A6940098B216 /* Breakpad.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Breakpad.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + F9267CB20F844BDD00A827EC /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = sender/English.lproj/Breakpad.nib; sourceTree = "<group>"; }; F9286B380F7EB25800A4DCC8 /* Inspector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Inspector.h; path = crash_generation/Inspector.h; sourceTree = "<group>"; }; F9286B390F7EB25800A4DCC8 /* InspectorMain.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = InspectorMain.mm; path = crash_generation/InspectorMain.mm; sourceTree = "<group>"; }; F92C53540ECCE349009BE4BA /* Inspector */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = Inspector; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -405,7 +405,6 @@ F92C53600ECCE3D6009BE4BA /* common */, 0867D69AFE84028FC02AAC07 /* Frameworks */, 034768DFFF38A50411DB9C8B /* Products */, - F92C56A20ECE04A7009BE4BA /* crash_report_sender-Info.plist */, F9C77DDB0F7DD5CF0045F7DB /* UnitTests-Info.plist */, ); name = Breakpad; @@ -533,9 +532,10 @@ F92C56A60ECE04B6009BE4BA /* sender */ = { isa = PBXGroup; children = ( - 4084699C0F5D9CF900FDCA37 /* ReporterIcon.icns */, - 40F2AEEB0F4F2F55004510E8 /* Breakpad.xib */, F945849C0F280E3C009A47BF /* Localizable.strings */, + 4084699C0F5D9CF900FDCA37 /* crash_report_sender.icns */, + F92C56A20ECE04A7009BE4BA /* crash_report_sender-Info.plist */, + F9267CB10F844BDD00A827EC /* Breakpad.nib */, F92C56A70ECE04C5009BE4BA /* crash_report_sender.h */, F92C56A80ECE04C5009BE4BA /* crash_report_sender.m */, ); @@ -768,7 +768,7 @@ 0867D690FE84028FC02AAC07 /* Project object */ = { isa = PBXProject; buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "Breakpad" */; - compatibilityVersion = "Xcode 3.0"; + compatibilityVersion = "Xcode 2.4"; hasScannedForEncodings = 1; mainGroup = 0867D691FE84028FC02AAC07 /* Breakpad */; productRefGroup = 034768DFFF38A50411DB9C8B /* Products */; @@ -805,9 +805,9 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - F94586220F7842CF009A47BF /* Breakpad.xib in Resources */, F945849E0F280E3C009A47BF /* Localizable.strings in Resources */, - 4084699D0F5D9CF900FDCA37 /* ReporterIcon.icns in Resources */, + 4084699D0F5D9CF900FDCA37 /* crash_report_sender.icns in Resources */, + F9267CB30F844BDD00A827EC /* Breakpad.nib in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -844,7 +844,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "install_name_tool -id \"@executable_path/../Resources/breakpadUtilities.dylib\" ${BUILT_PRODUCTS_DIR}/breakpadUtilities.dylib\n"; + shellScript = "install_name_tool -id \"@executable_path/../Resources/breakpadUtilities.dylib\" \"${BUILT_PRODUCTS_DIR}/breakpadUtilities.dylib\"\n"; }; F97A0E850ED4EC15008784D3 /* Change install name of breakpadUtilities */ = { isa = PBXShellScriptBuildPhase; @@ -858,7 +858,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "#!/bin/bash\ninstall_name_tool -id \"@executable_path/../Frameworks/Breakpad.framework/Resources/breakpadUtilities.dylib\" ${BUILT_PRODUCTS_DIR}/breakpadUtilities.dylib\n"; + shellScript = "#!/bin/bash\ninstall_name_tool -id \"@executable_path/../Frameworks/Breakpad.framework/Resources/breakpadUtilities.dylib\" \"${BUILT_PRODUCTS_DIR}/breakpadUtilities.dylib\"\n"; }; F9C77DD80F7DD5CF0045F7DB /* ShellScript */ = { isa = PBXShellScriptBuildPhase; @@ -1070,12 +1070,12 @@ /* End PBXTargetDependency section */ /* Begin PBXVariantGroup section */ - 40F2AEEB0F4F2F55004510E8 /* Breakpad.xib */ = { + F9267CB10F844BDD00A827EC /* Breakpad.nib */ = { isa = PBXVariantGroup; children = ( - 40F2AEEC0F4F2F55004510E8 /* English */, + F9267CB20F844BDD00A827EC /* English */, ); - name = Breakpad.xib; + name = Breakpad.nib; sourceTree = "<group>"; }; F945849C0F280E3C009A47BF /* Localizable.strings */ = { @@ -1149,7 +1149,6 @@ INFOPLIST_FILE = Framework/Info.plist; INSTALL_PATH = "@executable_path/../Frameworks"; PRODUCT_NAME = Breakpad; - SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.4u.sdk"; WRAPPER_EXTENSION = framework; }; name = Release; @@ -1164,7 +1163,7 @@ GCC_WARN_UNUSED_VARIABLE = YES; ONLY_ACTIVE_ARCH_PRE_XCODE_3_1 = "$(NATIVE_ARCH)"; PREBINDING = NO; - SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.4u.sdk"; + SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; }; name = Debug; }; @@ -1178,7 +1177,7 @@ GCC_WARN_UNUSED_VARIABLE = YES; HEADER_SEARCH_PATHS = "../..//**"; PREBINDING = NO; - SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.4u.sdk"; + SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; }; name = Release; }; @@ -1191,7 +1190,6 @@ GCC_ENABLE_FIX_AND_CONTINUE = YES; GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 0; - GCC_PRECOMPILE_PREFIX_HEADER = YES; HEADER_SEARCH_PATHS = "../..//**"; INSTALL_PATH = /usr/local/bin; OTHER_LDFLAGS = ( @@ -1200,7 +1198,6 @@ ); PREBINDING = NO; PRODUCT_NAME = Inspector; - SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.4u.sdk"; }; name = Debug; }; @@ -1212,7 +1209,6 @@ DEAD_CODE_STRIPPING = YES; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_PRECOMPILE_PREFIX_HEADER = YES; HEADER_SEARCH_PATHS = "../..//**"; INSTALL_PATH = /usr/local/bin; LD_GENERATE_MAP_FILE = YES; @@ -1222,7 +1218,6 @@ ); PREBINDING = NO; PRODUCT_NAME = Inspector; - SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.4u.sdk"; ZERO_LINK = NO; }; name = Release; @@ -1249,7 +1244,6 @@ ); PREBINDING = NO; PRODUCT_NAME = breakpadUtilities; - SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.4u.sdk"; }; name = Debug; }; @@ -1273,7 +1267,6 @@ ); PREBINDING = NO; PRODUCT_NAME = breakpadUtilities; - SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.4u.sdk"; ZERO_LINK = NO; }; name = Release; @@ -1461,7 +1454,7 @@ GCC_WARN_UNUSED_VARIABLE = YES; ONLY_ACTIVE_ARCH_PRE_XCODE_3_1 = "$(NATIVE_ARCH)"; PREBINDING = NO; - SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.4u.sdk"; + SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; }; name = "Debug With Code Coverage"; }; @@ -1496,7 +1489,6 @@ GCC_ENABLE_FIX_AND_CONTINUE = YES; GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 0; - GCC_PRECOMPILE_PREFIX_HEADER = YES; HEADER_SEARCH_PATHS = "../..//**"; INSTALL_PATH = /usr/local/bin; OTHER_LDFLAGS = ( @@ -1505,7 +1497,6 @@ ); PREBINDING = NO; PRODUCT_NAME = Inspector; - SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.4u.sdk"; }; name = "Debug With Code Coverage"; }; @@ -1531,7 +1522,6 @@ ); PREBINDING = NO; PRODUCT_NAME = breakpadUtilities; - SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.4u.sdk"; }; name = "Debug With Code Coverage"; }; diff --git a/src/client/mac/Framework/Breakpad.h b/src/client/mac/Framework/Breakpad.h index 05005a99..5c6c2154 100644 --- a/src/client/mac/Framework/Breakpad.h +++ b/src/client/mac/Framework/Breakpad.h @@ -54,6 +54,11 @@ extern "C" { #define kReporterMinidumpDirectoryKey "MinidumpDir" #define kReporterMinidumpIDKey "MinidumpID" +// The default subdirectory of the Library to put crash dumps in +// The subdirectory is +// ~/Library/<kDefaultLibrarySubdirectory>/<GoogleBreakpadProduct> +#define kDefaultLibrarySubdirectory "Breakpad" + // Specify some special keys to be used in the configuration file that is // generated by Breakpad and consumed by the crash_sender. #define BREAKPAD_PRODUCT_DISPLAY "BreakpadProductDisplay" @@ -64,6 +69,7 @@ extern "C" { #define BREAKPAD_REPORT_INTERVAL "BreakpadReportInterval" #define BREAKPAD_SKIP_CONFIRM "BreakpadSkipConfirm" #define BREAKPAD_SEND_AND_EXIT "BreakpadSendAndExit" +#define BREAKPAD_DUMP_DIRECTORY "BreakpadMinidumpLocation" #define BREAKPAD_INSPECTOR_LOCATION "BreakpadInspectorLocation" #define BREAKPAD_REPORTER_EXE_LOCATION \ @@ -94,41 +100,66 @@ typedef bool (*BreakpadFilterCallback)(int exception_type, // BREAKPAD_PRODUCT Product name (e.g., "MyAwesomeProduct") // This one is used as the key to identify // the product when uploading +// 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 to // BREAKPAD_PRODUCT if not specified. +// // BREAKPAD_VERSION Product version (e.g., 1.2.3), used // as metadata for crash report +// REQUIRED +// // BREAKPAD_VENDOR Vendor named, used in UI (e.g. the Xxxx // foo bar company product widget has crashed) +// // 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_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 +// 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 as // well as a name and email address. -// BREAKPAD_COMMENTS The text the user provided as comments. -// -// The BREAKPAD_PRODUCT and BREAKPAD_VERSION 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. If the -// BREAKPAD_PRODUCT or BREAKPAD_VERSION are ultimately undefined, -// BreakpadCreate() will fail. You have been warned. +// Default: NO +// +// 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. 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. diff --git a/src/client/mac/Framework/Breakpad.mm b/src/client/mac/Framework/Breakpad.mm index 52301c72..9de0a94b 100644 --- a/src/client/mac/Framework/Breakpad.mm +++ b/src/client/mac/Framework/Breakpad.mm @@ -407,7 +407,9 @@ bool Breakpad::ExtractParameters(NSDictionary *parameters) { [parameters objectForKey:@BREAKPAD_REQUEST_COMMENTS]; NSString *vendor = [parameters objectForKey:@BREAKPAD_VENDOR]; - + NSString *dumpSubdirectory = + [parameters objectForKey:@BREAKPAD_DUMP_DIRECTORY]; + // If these two are not already set(skipConfirm and sendAndExit can // come from user defaults and take priority) if (!skipConfirm) { @@ -509,9 +511,14 @@ bool Breakpad::ExtractParameters(NSDictionary *parameters) { return false; } - // The product and version are required values + if (!dumpSubdirectory) { + dumpSubdirectory = @""; + } + + // The product and version are required values. if (![product length] || ![version length]) { - DEBUGLOG(stderr, "Missing required product and/or version keys\n"); + DEBUGLOG(stderr, + "Missing required product or version subdirectory keys\n"); return false; } @@ -537,7 +544,9 @@ bool Breakpad::ExtractParameters(NSDictionary *parameters) { [requestUserText UTF8String]); dictionary.SetKeyValue(BREAKPAD_VENDOR, [vendor UTF8String]); - + dictionary.SetKeyValue(BREAKPAD_DUMP_DIRECTORY, + [dumpSubdirectory UTF8String]); + if (logFilePaths) { char logFileKey[255]; for(unsigned int i = 0; i < [logFilePaths count]; i++) { @@ -550,12 +559,6 @@ bool Breakpad::ExtractParameters(NSDictionary *parameters) { dictionary.SetKeyValue(BREAKPAD_EMAIL, [reportEmail UTF8String]); } -#if 0 // for testing - BreakpadSetKeyValue(this, @"UserKey1", @"User Value 1"); - BreakpadSetKeyValue(this, @"UserKey2", @"User Value 2"); - BreakpadSetKeyValue(this, @"UserKey3", @"User Value 3"); - BreakpadSetKeyValue(this, @"UserKey4", @"User Value 4"); -#endif return true; } diff --git a/src/client/mac/crash_generation/Inspector.h b/src/client/mac/crash_generation/Inspector.h index 38d441fb..098c56e8 100644 --- a/src/client/mac/crash_generation/Inspector.h +++ b/src/client/mac/crash_generation/Inspector.h @@ -122,18 +122,9 @@ class ConfigFile { //============================================================================= class MinidumpLocation { public: - MinidumpLocation() { - NSString *minidumpDirBase = NSHomeDirectory(); - NSString *minidumpDir; - - // Put root processes at root - if (geteuid() == 0) - minidumpDirBase = @"/"; - - minidumpDir = - [minidumpDirBase stringByAppendingPathComponent:@"Library/Logs/Google"]; - + MinidumpLocation(const NSString *minidumpDir) { // Ensure that the path exists. Fallback to /tmp if unable to locate path. + assert(minidumpDir); if (!EnsureDirectoryPathExists(minidumpDir)) { DEBUGLOG(stderr, "Unable to create: %s\n", [minidumpDir UTF8String]); minidumpDir = @"/tmp"; @@ -196,5 +187,3 @@ class Inspector { } // namespace google_breakpad - - diff --git a/src/client/mac/crash_generation/Inspector.mm b/src/client/mac/crash_generation/Inspector.mm index f659b669..2508289c 100644 --- a/src/client/mac/crash_generation/Inspector.mm +++ b/src/client/mac/crash_generation/Inspector.mm @@ -325,7 +325,33 @@ bool Inspector::InspectTask() { // keep the task quiet while we're looking at it task_suspend(remote_task_); - MinidumpLocation minidumpLocation; + NSString *minidumpDir; + + const char *minidumpDirectory = + config_params_.GetValueForKey(BREAKPAD_DUMP_DIRECTORY); + + // If the client app has not specified a minidump directory, + // use a default of Library/<kDefaultLibrarySubdirectory>/<Product Name> + if (0 == strlen(minidumpDirectory)) { + NSArray *libraryDirectories = + NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, + NSUserDomainMask, + YES); + + NSString *applicationSupportDirectory = + [libraryDirectories objectAtIndex:0]; + + minidumpDir = + [NSString stringWithFormat:@"%@/%s/%s", + applicationSupportDirectory, + kDefaultLibrarySubdirectory, + config_params_.GetValueForKey(GOOGLE_BREAKPAD_PRODUCT)]; + } else { + minidumpDir = [[NSString stringWithUTF8String:minidumpDirectory] + stringByExpandingTildeInPath]; + } + + MinidumpLocation minidumpLocation(minidumpDir); config_file_.WriteFile( &config_params_, minidumpLocation.GetPath(), diff --git a/src/client/mac/sender/English.lproj/Breakpad.nib/classes.nib b/src/client/mac/sender/English.lproj/Breakpad.nib/classes.nib new file mode 100644 index 00000000..2636d457 --- /dev/null +++ b/src/client/mac/sender/English.lproj/Breakpad.nib/classes.nib @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>IBClasses</key> + <array> + <dict> + <key>ACTIONS</key> + <dict> + <key>cancel</key> + <string>id</string> + <key>sendReport</key> + <string>id</string> + <key>showPrivacyPolicy</key> + <string>id</string> + </dict> + <key>CLASS</key> + <string>Reporter</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>OUTLETS</key> + <dict> + <key>alertWindow</key> + <string>NSWindow</string> + </dict> + <key>SUPERCLASS</key> + <string>NSObject</string> + </dict> + </array> + <key>IBVersion</key> + <string>1</string> +</dict> +</plist> diff --git a/src/client/mac/sender/English.lproj/Breakpad.nib/info.nib b/src/client/mac/sender/English.lproj/Breakpad.nib/info.nib new file mode 100644 index 00000000..55565cda --- /dev/null +++ b/src/client/mac/sender/English.lproj/Breakpad.nib/info.nib @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>IBFramework Version</key> + <string>670</string> + <key>IBLastKnownRelativeProjectPath</key> + <string>../../Breakpad.xcodeproj</string> + <key>IBOldestOS</key> + <integer>5</integer> + <key>IBOpenObjects</key> + <array> + <integer>2</integer> + </array> + <key>IBSystem Version</key> + <string>9F33</string> + <key>targetFramework</key> + <string>IBCocoaFramework</string> +</dict> +</plist> diff --git a/src/client/mac/sender/English.lproj/Breakpad.nib/keyedobjects.nib b/src/client/mac/sender/English.lproj/Breakpad.nib/keyedobjects.nib Binary files differnew file mode 100644 index 00000000..50dff43d --- /dev/null +++ b/src/client/mac/sender/English.lproj/Breakpad.nib/keyedobjects.nib diff --git a/src/client/mac/sender/English.lproj/Breakpad.xib b/src/client/mac/sender/English.lproj/Breakpad.xib deleted file mode 100644 index 7b5053a5..00000000 --- a/src/client/mac/sender/English.lproj/Breakpad.xib +++ /dev/null @@ -1,834 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.02"> - <data> - <int key="IBDocument.SystemTarget">1050</int> - <string key="IBDocument.SystemVersion">9F33</string> - <string key="IBDocument.InterfaceBuilderVersion">670</string> - <string key="IBDocument.AppKitVersion">949.34</string> - <string key="IBDocument.HIToolboxVersion">352.00</string> - <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> - <bool key="EncodedWithXMLCoder">YES</bool> - <integer value="2"/> - </object> - <object class="NSArray" key="IBDocument.PluginDependencies"> - <bool key="EncodedWithXMLCoder">YES</bool> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - </object> - <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000"> - <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSCustomObject" id="1001"> - <string key="NSClassName">Reporter</string> - </object> - <object class="NSCustomObject" id="1003"> - <string key="NSClassName">FirstResponder</string> - </object> - <object class="NSCustomObject" id="1004"> - <string key="NSClassName">NSApplication</string> - </object> - <object class="NSWindowTemplate" id="1005"> - <int key="NSWindowStyleMask">1</int> - <int key="NSWindowBacking">2</int> - <string key="NSWindowRect">{{196, 157}, {484, 353}}</string> - <int key="NSWTFlags">536871936</int> - <string key="NSWindowTitle"/> - <string key="NSWindowClass">NSWindow</string> - <nil key="NSViewClass"/> - <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string> - <object class="NSView" key="NSWindowView" id="1006"> - <reference key="NSNextResponder"/> - <int key="NSvFlags">264</int> - <object class="NSMutableArray" key="NSSubviews"> - <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSTextField" id="52942477"> - <reference key="NSNextResponder" ref="1006"/> - <int key="NSvFlags">266</int> - <string key="NSFrame">{{89, 279}, {378, 54}}</string> - <reference key="NSSuperview" ref="1006"/> - <bool key="NSEnabled">YES</bool> - <object class="NSTextFieldCell" key="NSCell" id="237530958"> - <int key="NSCellFlags">67239424</int> - <int key="NSCellFlags2">272629760</int> - <string type="base64-UTF8" key="NSContents">RE8gTk9UIExPQ0FMSVpFLiBUaGUgPFJlYWxseSBMb25nIENvbXBhbnkgTmFtZT4gcHJvZ3JhbSA8UmVh -bGx5IExvbmcgQXBwIE5hbWUgSGVyZT4gaGFzIHVuZXhwZWN0ZWRseSBxdWl0LiA</string> - <object class="NSFont" key="NSSupport"> - <string key="NSName">LucidaGrande-Bold</string> - <double key="NSSize">1.400000e+01</double> - <int key="NSfFlags">16</int> - </object> - <reference key="NSControlView" ref="52942477"/> - <object class="NSColor" key="NSBackgroundColor" id="738791573"> - <int key="NSColorSpace">6</int> - <string key="NSCatalogName">System</string> - <string key="NSColorName">controlColor</string> - <object class="NSColor" key="NSColor"> - <int key="NSColorSpace">3</int> - <bytes key="NSWhite">MC42NjY2NjY2OQA</bytes> - </object> - </object> - <object class="NSColor" key="NSTextColor" id="909242260"> - <int key="NSColorSpace">6</int> - <string key="NSCatalogName">System</string> - <string key="NSColorName">controlTextColor</string> - <object class="NSColor" key="NSColor" id="488201583"> - <int key="NSColorSpace">3</int> - <bytes key="NSWhite">MAA</bytes> - </object> - </object> - </object> - </object> - <object class="NSImageView" id="131954859"> - <reference key="NSNextResponder" ref="1006"/> - <int key="NSvFlags">268</int> - <object class="NSMutableSet" key="NSDragTypes"> - <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSMutableArray" key="set.sortedObjects"> - <bool key="EncodedWithXMLCoder">YES</bool> - <string>Apple PDF pasteboard type</string> - <string>Apple PICT pasteboard type</string> - <string>Apple PNG pasteboard type</string> - <string>NSFilenamesPboardType</string> - <string>NeXT Encapsulated PostScript v1.2 pasteboard type</string> - <string>NeXT TIFF v4.0 pasteboard type</string> - </object> - </object> - <string key="NSFrame">{{20, 269}, {64, 64}}</string> - <reference key="NSSuperview" ref="1006"/> - <bool key="NSEnabled">YES</bool> - <object class="NSImageCell" key="NSCell" id="863447683"> - <int key="NSCellFlags">130560</int> - <int key="NSCellFlags2">33554432</int> - <object class="NSCustomResource" key="NSContents"> - <string key="NSClassName">NSImage</string> - <string key="NSResourceName">NSApplicationIcon</string> - </object> - <int key="NSAlign">0</int> - <int key="NSScale">0</int> - <int key="NSStyle">0</int> - <bool key="NSAnimates">NO</bool> - </object> - <bool key="NSEditable">YES</bool> - </object> - <object class="NSTextField" id="547141541"> - <reference key="NSNextResponder" ref="1006"/> - <int key="NSvFlags">266</int> - <string key="NSFrame">{{17, 191}, {450, 70}}</string> - <reference key="NSSuperview" ref="1006"/> - <bool key="NSEnabled">YES</bool> - <object class="NSTextFieldCell" key="NSCell" id="857260085"> - <int key="NSCellFlags">67239424</int> - <int key="NSCellFlags2">272760832</int> - <string type="base64-UTF8" key="NSContents">RE8gTk9UIExPQ0FMSVpFLiBUaGUgc3lzdGVtIGFuZCBvdGhlciBhcHBsaWNhdGlvbnMgaGF2ZSBub3Qg -YmVlbiBhZmZlY3RlZC4gQSByZXBvcnQgaGFzIGJlZW4gY3JlYXRlZCB0aGF0IHlvdSBjYW4gc2VuZCB0 -byA8UmVhbGx5IExvbmcgQ29tcGFueSBOYW1lPiB0byBoZWxwIGlkZW50aWZ5IHRoZSBwcm9ibGVtLgoK -UGxlYXNlIGhlbHAgdXMgZml4IHRoZSBwcm9ibGVtIGJ5IGRlc2NyaWJpbmcgd2hhdCBoYXBwZW5lZCBi -ZWZvcmUgdGhlIGNyYXNoLg</string> - <object class="NSFont" key="NSSupport" id="26"> - <string key="NSName">LucidaGrande</string> - <double key="NSSize">1.100000e+01</double> - <int key="NSfFlags">3100</int> - </object> - <reference key="NSControlView" ref="547141541"/> - <reference key="NSBackgroundColor" ref="738791573"/> - <reference key="NSTextColor" ref="909242260"/> - </object> - </object> - <object class="NSTextField" id="637803025"> - <reference key="NSNextResponder" ref="1006"/> - <int key="NSvFlags">290</int> - <string key="NSFrame">{{17, 85}, {450, 28}}</string> - <reference key="NSSuperview" ref="1006"/> - <bool key="NSEnabled">YES</bool> - <object class="NSTextFieldCell" key="NSCell" id="862965674"> - <int key="NSCellFlags">67239424</int> - <int key="NSCellFlags2">272760832</int> - <string key="NSContents">DO NOT LOCALIZE. Providing your email address is optional and will allow us contact you in case we need more details.</string> - <reference key="NSSupport" ref="26"/> - <reference key="NSControlView" ref="637803025"/> - <reference key="NSBackgroundColor" ref="738791573"/> - <reference key="NSTextColor" ref="909242260"/> - </object> - </object> - <object class="NSButton" id="506323760"> - <reference key="NSNextResponder" ref="1006"/> - <int key="NSvFlags">289</int> - <string key="NSFrame">{{353, 12}, {117, 32}}</string> - <reference key="NSSuperview" ref="1006"/> - <bool key="NSEnabled">YES</bool> - <object class="NSButtonCell" key="NSCell" id="555878343"> - <int key="NSCellFlags">67239424</int> - <int key="NSCellFlags2">134217728</int> - <string key="NSContents">Send Report</string> - <object class="NSFont" key="NSSupport" id="890637240"> - <string key="NSName">LucidaGrande</string> - <double key="NSSize">1.300000e+01</double> - <int key="NSfFlags">1044</int> - </object> - <reference key="NSControlView" ref="506323760"/> - <int key="NSButtonFlags">-2038284033</int> - <int key="NSButtonFlags2">129</int> - <reference key="NSAlternateImage" ref="890637240"/> - <string key="NSAlternateContents"/> - <string type="base64-UTF8" key="NSKeyEquivalent">DQ</string> - <int key="NSPeriodicDelay">200</int> - <int key="NSPeriodicInterval">25</int> - </object> - </object> - <object class="NSButton" id="1066255572"> - <reference key="NSNextResponder" ref="1006"/> - <int key="NSvFlags">289</int> - <string key="NSFrame">{{243, 12}, {110, 32}}</string> - <reference key="NSSuperview" ref="1006"/> - <bool key="NSEnabled">YES</bool> - <object class="NSButtonCell" key="NSCell" id="910201563"> - <int key="NSCellFlags">67239424</int> - <int key="NSCellFlags2">134217728</int> - <string key="NSContents">Cancel</string> - <reference key="NSSupport" ref="890637240"/> - <reference key="NSControlView" ref="1066255572"/> - <int key="NSButtonFlags">-2038284033</int> - <int key="NSButtonFlags2">129</int> - <reference key="NSAlternateImage" ref="890637240"/> - <string key="NSAlternateContents"/> - <string type="base64-UTF8" key="NSKeyEquivalent">Gw</string> - <int key="NSPeriodicDelay">200</int> - <int key="NSPeriodicInterval">25</int> - </object> - </object> - <object class="NSTextField" id="834332784"> - <reference key="NSNextResponder" ref="1006"/> - <int key="NSvFlags">290</int> - <string key="NSFrame">{{59, 58}, {195, 19}}</string> - <reference key="NSSuperview" ref="1006"/> - <bool key="NSEnabled">YES</bool> - <object class="NSTextFieldCell" key="NSCell" id="454024475"> - <int key="NSCellFlags">-1804468671</int> - <int key="NSCellFlags2">272761856</int> - <string key="NSContents">preston.jackson@gmail.com</string> - <reference key="NSSupport" ref="26"/> - <string key="NSPlaceholderString">optional</string> - <reference key="NSControlView" ref="834332784"/> - <bool key="NSDrawsBackground">YES</bool> - <object class="NSColor" key="NSBackgroundColor" id="181834562"> - <int key="NSColorSpace">6</int> - <string key="NSCatalogName">System</string> - <string key="NSColorName">textBackgroundColor</string> - <object class="NSColor" key="NSColor"> - <int key="NSColorSpace">3</int> - <bytes key="NSWhite">MQA</bytes> - </object> - </object> - <object class="NSColor" key="NSTextColor" id="332510420"> - <int key="NSColorSpace">6</int> - <string key="NSCatalogName">System</string> - <string key="NSColorName">textColor</string> - <reference key="NSColor" ref="488201583"/> - </object> - </object> - </object> - <object class="NSTextField" id="1001751188"> - <reference key="NSNextResponder" ref="1006"/> - <int key="NSvFlags">292</int> - <string key="NSFrame">{{17, 60}, {37, 14}}</string> - <reference key="NSSuperview" ref="1006"/> - <bool key="NSEnabled">YES</bool> - <object class="NSTextFieldCell" key="NSCell" id="220926093"> - <int key="NSCellFlags">68288064</int> - <int key="NSCellFlags2">71435264</int> - <string key="NSContents">Email:</string> - <reference key="NSSupport" ref="26"/> - <reference key="NSControlView" ref="1001751188"/> - <reference key="NSBackgroundColor" ref="738791573"/> - <reference key="NSTextColor" ref="909242260"/> - </object> - </object> - <object class="NSButton" id="645396128"> - <reference key="NSNextResponder" ref="1006"/> - <int key="NSvFlags">289</int> - <string key="NSFrame">{{352, 59}, {16, 17}}</string> - <reference key="NSSuperview" ref="1006"/> - <bool key="NSEnabled">YES</bool> - <object class="NSButtonCell" key="NSCell" id="776409024"> - <int key="NSCellFlags">-2080244224</int> - <int key="NSCellFlags2">262144</int> - <string key="NSContents">Privacy Policy</string> - <object class="NSFont" key="NSSupport"> - <string key="NSName">LucidaGrande</string> - <double key="NSSize">9.000000e+00</double> - <int key="NSfFlags">3614</int> - </object> - <reference key="NSControlView" ref="645396128"/> - <int key="NSButtonFlags">-2040250113</int> - <int key="NSButtonFlags2">36</int> - <object class="NSCustomResource" key="NSNormalImage"> - <string key="NSClassName">NSImage</string> - <string key="NSResourceName">NSFollowLinkFreestandingTemplate</string> - </object> - <string key="NSAlternateContents"/> - <string key="NSKeyEquivalent"/> - <int key="NSPeriodicDelay">400</int> - <int key="NSPeriodicInterval">75</int> - </object> - </object> - <object class="NSTextField" id="271427294"> - <reference key="NSNextResponder" ref="1006"/> - <int key="NSvFlags">289</int> - <string key="NSFrame">{{259, 60}, {89, 14}}</string> - <reference key="NSSuperview" ref="1006"/> - <bool key="NSEnabled">YES</bool> - <object class="NSTextFieldCell" key="NSCell" id="718717750"> - <int key="NSCellFlags">68288064</int> - <int key="NSCellFlags2">71435264</int> - <string key="NSContents">Privacy Policy</string> - <reference key="NSSupport" ref="26"/> - <reference key="NSControlView" ref="271427294"/> - <reference key="NSBackgroundColor" ref="738791573"/> - <reference key="NSTextColor" ref="909242260"/> - </object> - </object> - <object class="NSTextField" id="652207274"> - <reference key="NSNextResponder" ref="1006"/> - <int key="NSvFlags">274</int> - <string key="NSFrame">{{20, 124}, {444, 61}}</string> - <reference key="NSSuperview" ref="1006"/> - <bool key="NSEnabled">YES</bool> - <object class="NSTextFieldCell" key="NSCell" id="748395329"> - <int key="NSCellFlags">341966337</int> - <int key="NSCellFlags2">272760832</int> - <string key="NSContents">DO NOT LOCALIZE: Line 1 Line 1 Line 1 Line 1 Line 1 Line 1 Line 1 Line 1 Line Line 2 Line 2 Line 2 Line 2 Line 2 Line 2 Line 2 Line 2 Line 2 Line 2 Line 2 Line 2 Line 3 Line 3 Line 3 Line 3 Line 3 Line 3 Line 3 Line 3 Line 3 Line 3 Line 3 Line 3 Line 4 Line 4 Line 4 Line 4 Line 4 Line 4 Line 4 Line 4 Line 4 Line 4 Line 4 Line 4 </string> - <reference key="NSSupport" ref="26"/> - <reference key="NSControlView" ref="652207274"/> - <bool key="NSDrawsBackground">YES</bool> - <reference key="NSBackgroundColor" ref="181834562"/> - <reference key="NSTextColor" ref="332510420"/> - </object> - </object> - </object> - <string key="NSFrameSize">{484, 353}</string> - <reference key="NSSuperview"/> - </object> - <string key="NSScreenRect">{{0, 0}, {1680, 1028}}</string> - <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string> - </object> - </object> - <object class="IBObjectContainer" key="IBDocument.Objects"> - <object class="NSMutableArray" key="connectionRecords"> - <bool key="EncodedWithXMLCoder">YES</bool> - <object class="IBConnectionRecord"> - <object class="IBOutletConnection" key="connection"> - <string key="label">alertWindow</string> - <reference key="source" ref="1001"/> - <reference key="destination" ref="1005"/> - </object> - <int key="connectionID">42</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">sendReport:</string> - <reference key="source" ref="1001"/> - <reference key="destination" ref="506323760"/> - </object> - <int key="connectionID">45</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">cancel:</string> - <reference key="source" ref="1001"/> - <reference key="destination" ref="1066255572"/> - </object> - <int key="connectionID">46</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">showPrivacyPolicy:</string> - <reference key="source" ref="1001"/> - <reference key="destination" ref="645396128"/> - </object> - <int key="connectionID">53</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBBindingConnection" key="connection"> - <string key="label">value: headerMessage</string> - <reference key="source" ref="52942477"/> - <reference key="destination" ref="1001"/> - <object class="NSNibBindingConnector" key="connector"> - <reference key="NSSource" ref="52942477"/> - <reference key="NSDestination" ref="1001"/> - <string key="NSLabel">value: headerMessage</string> - <string key="NSBinding">value</string> - <string key="NSKeyPath">headerMessage</string> - <int key="NSNibBindingConnectorVersion">2</int> - </object> - </object> - <int key="connectionID">85</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBBindingConnection" key="connection"> - <string key="label">value: reportMessage</string> - <reference key="source" ref="547141541"/> - <reference key="destination" ref="1001"/> - <object class="NSNibBindingConnector" key="connector"> - <reference key="NSSource" ref="547141541"/> - <reference key="NSDestination" ref="1001"/> - <string key="NSLabel">value: reportMessage</string> - <string key="NSBinding">value</string> - <string key="NSKeyPath">reportMessage</string> - <int key="NSNibBindingConnectorVersion">2</int> - </object> - </object> - <int key="connectionID">86</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBBindingConnection" key="connection"> - <string key="label">value: emailMessage</string> - <reference key="source" ref="637803025"/> - <reference key="destination" ref="1001"/> - <object class="NSNibBindingConnector" key="connector"> - <reference key="NSSource" ref="637803025"/> - <reference key="NSDestination" ref="1001"/> - <string key="NSLabel">value: emailMessage</string> - <string key="NSBinding">value</string> - <string key="NSKeyPath">emailMessage</string> - <int key="NSNibBindingConnectorVersion">2</int> - </object> - </object> - <int key="connectionID">87</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBBindingConnection" key="connection"> - <string key="label">value: emailValue</string> - <reference key="source" ref="834332784"/> - <reference key="destination" ref="1001"/> - <object class="NSNibBindingConnector" key="connector"> - <reference key="NSSource" ref="834332784"/> - <reference key="NSDestination" ref="1001"/> - <string key="NSLabel">value: emailValue</string> - <string key="NSBinding">value</string> - <string key="NSKeyPath">emailValue</string> - <object class="NSDictionary" key="NSOptions"> - <string key="NS.key.0">NSNullPlaceholder</string> - <string key="NS.object.0">optional</string> - </object> - <int key="NSNibBindingConnectorVersion">2</int> - </object> - </object> - <int key="connectionID">90</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBOutletConnection" key="connection"> - <string key="label">initialFirstResponder</string> - <reference key="source" ref="1005"/> - <reference key="destination" ref="506323760"/> - </object> - <int key="connectionID">91</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBBindingConnection" key="connection"> - <string key="label">value: commentsValue</string> - <reference key="source" ref="652207274"/> - <reference key="destination" ref="1001"/> - <object class="NSNibBindingConnector" key="connector"> - <reference key="NSSource" ref="652207274"/> - <reference key="NSDestination" ref="1001"/> - <string key="NSLabel">value: commentsValue</string> - <string key="NSBinding">value</string> - <string key="NSKeyPath">commentsValue</string> - <object class="NSDictionary" key="NSOptions"> - <string key="NS.key.0">NSNullPlaceholder</string> - <string key="NS.object.0">optional comments</string> - </object> - <int key="NSNibBindingConnectorVersion">2</int> - </object> - </object> - <int key="connectionID">124</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBOutletConnection" key="connection"> - <string key="label">nextKeyView</string> - <reference key="source" ref="834332784"/> - <reference key="destination" ref="506323760"/> - </object> - <int key="connectionID">125</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBOutletConnection" key="connection"> - <string key="label">nextKeyView</string> - <reference key="source" ref="652207274"/> - <reference key="destination" ref="834332784"/> - </object> - <int key="connectionID">126</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBOutletConnection" key="connection"> - <string key="label">nextKeyView</string> - <reference key="source" ref="506323760"/> - <reference key="destination" ref="652207274"/> - </object> - <int key="connectionID">127</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBOutletConnection" key="connection"> - <string key="label">delegate</string> - <reference key="source" ref="652207274"/> - <reference key="destination" ref="1001"/> - </object> - <int key="connectionID">128</int> - </object> - </object> - <object class="IBMutableOrderedSet" key="objectRecords"> - <object class="NSArray" key="orderedObjects"> - <bool key="EncodedWithXMLCoder">YES</bool> - <object class="IBObjectRecord"> - <int key="objectID">0</int> - <object class="NSArray" key="object" id="1002"> - <bool key="EncodedWithXMLCoder">YES</bool> - </object> - <reference key="children" ref="1000"/> - <nil key="parent"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">-2</int> - <reference key="object" ref="1001"/> - <reference key="parent" ref="1002"/> - <string type="base64-UTF8" key="objectName">RmlsZSdzIE93bmVyA</string> - </object> - <object class="IBObjectRecord"> - <int key="objectID">-1</int> - <reference key="object" ref="1003"/> - <reference key="parent" ref="1002"/> - <string key="objectName">First Responder</string> - </object> - <object class="IBObjectRecord"> - <int key="objectID">-3</int> - <reference key="object" ref="1004"/> - <reference key="parent" ref="1002"/> - <string key="objectName">Application</string> - </object> - <object class="IBObjectRecord"> - <int key="objectID">1</int> - <reference key="object" ref="1005"/> - <object class="NSMutableArray" key="children"> - <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="1006"/> - </object> - <reference key="parent" ref="1002"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">2</int> - <reference key="object" ref="1006"/> - <object class="NSMutableArray" key="children"> - <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="131954859"/> - <reference ref="52942477"/> - <reference ref="652207274"/> - <reference ref="637803025"/> - <reference ref="1001751188"/> - <reference ref="834332784"/> - <reference ref="271427294"/> - <reference ref="645396128"/> - <reference ref="506323760"/> - <reference ref="1066255572"/> - <reference ref="547141541"/> - </object> - <reference key="parent" ref="1005"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">3</int> - <reference key="object" ref="52942477"/> - <object class="NSMutableArray" key="children"> - <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="237530958"/> - </object> - <reference key="parent" ref="1006"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">4</int> - <reference key="object" ref="237530958"/> - <reference key="parent" ref="52942477"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">6</int> - <reference key="object" ref="131954859"/> - <object class="NSMutableArray" key="children"> - <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="863447683"/> - </object> - <reference key="parent" ref="1006"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">7</int> - <reference key="object" ref="863447683"/> - <reference key="parent" ref="131954859"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">8</int> - <reference key="object" ref="547141541"/> - <object class="NSMutableArray" key="children"> - <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="857260085"/> - </object> - <reference key="parent" ref="1006"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">9</int> - <reference key="object" ref="857260085"/> - <reference key="parent" ref="547141541"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">12</int> - <reference key="object" ref="506323760"/> - <object class="NSMutableArray" key="children"> - <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="555878343"/> - </object> - <reference key="parent" ref="1006"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">13</int> - <reference key="object" ref="555878343"/> - <reference key="parent" ref="506323760"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">14</int> - <reference key="object" ref="1066255572"/> - <object class="NSMutableArray" key="children"> - <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="910201563"/> - </object> - <reference key="parent" ref="1006"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">15</int> - <reference key="object" ref="910201563"/> - <reference key="parent" ref="1066255572"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">18</int> - <reference key="object" ref="834332784"/> - <object class="NSMutableArray" key="children"> - <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="454024475"/> - </object> - <reference key="parent" ref="1006"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">19</int> - <reference key="object" ref="454024475"/> - <reference key="parent" ref="834332784"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">20</int> - <reference key="object" ref="1001751188"/> - <object class="NSMutableArray" key="children"> - <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="220926093"/> - </object> - <reference key="parent" ref="1006"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">21</int> - <reference key="object" ref="220926093"/> - <reference key="parent" ref="1001751188"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">48</int> - <reference key="object" ref="645396128"/> - <object class="NSMutableArray" key="children"> - <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="776409024"/> - </object> - <reference key="parent" ref="1006"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">49</int> - <reference key="object" ref="776409024"/> - <reference key="parent" ref="645396128"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">58</int> - <reference key="object" ref="637803025"/> - <object class="NSMutableArray" key="children"> - <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="862965674"/> - </object> - <reference key="parent" ref="1006"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">59</int> - <reference key="object" ref="862965674"/> - <reference key="parent" ref="637803025"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">66</int> - <reference key="object" ref="271427294"/> - <object class="NSMutableArray" key="children"> - <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="718717750"/> - </object> - <reference key="parent" ref="1006"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">67</int> - <reference key="object" ref="718717750"/> - <reference key="parent" ref="271427294"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">116</int> - <reference key="object" ref="652207274"/> - <object class="NSMutableArray" key="children"> - <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="748395329"/> - </object> - <reference key="parent" ref="1006"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">117</int> - <reference key="object" ref="748395329"/> - <reference key="parent" ref="652207274"/> - </object> - </object> - </object> - <object class="NSMutableDictionary" key="flattenedProperties"> - <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSMutableArray" key="dict.sortedKeys"> - <bool key="EncodedWithXMLCoder">YES</bool> - <string>-1.IBPluginDependency</string> - <string>-2.IBPluginDependency</string> - <string>-3.IBPluginDependency</string> - <string>1.IBEditorWindowLastContentRect</string> - <string>1.IBPluginDependency</string> - <string>1.IBViewEditorWindowController.showingBoundsRectangles</string> - <string>1.IBViewEditorWindowController.showingLayoutRectangles</string> - <string>1.IBWindowTemplateEditedContentRect</string> - <string>1.NSWindowTemplate.visibleAtLaunch</string> - <string>1.WindowOrigin</string> - <string>1.editorWindowContentRectSynchronizationRect</string> - <string>116.IBPluginDependency</string> - <string>117.IBPluginDependency</string> - <string>12.IBPluginDependency</string> - <string>13.IBPluginDependency</string> - <string>14.IBPluginDependency</string> - <string>15.IBPluginDependency</string> - <string>18.IBPluginDependency</string> - <string>19.IBPluginDependency</string> - <string>2.IBPluginDependency</string> - <string>2.IBUserGuides</string> - <string>20.IBPluginDependency</string> - <string>21.IBPluginDependency</string> - <string>3.IBPluginDependency</string> - <string>4.IBPluginDependency</string> - <string>48.IBPluginDependency</string> - <string>49.IBPluginDependency</string> - <string>58.IBPluginDependency</string> - <string>59.IBPluginDependency</string> - <string>6.IBPluginDependency</string> - <string>66.IBPluginDependency</string> - <string>67.IBPluginDependency</string> - <string>7.IBPluginDependency</string> - <string>8.IBPluginDependency</string> - <string>9.IBPluginDependency</string> - </object> - <object class="NSMutableArray" key="dict.values"> - <bool key="EncodedWithXMLCoder">YES</bool> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{641, 409}, {484, 353}}</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <integer value="0" id="6"/> - <reference ref="6"/> - <string>{{641, 409}, {484, 353}}</string> - <reference ref="6"/> - <string>{196, 240}</string> - <string>{{357, 418}, {480, 270}}</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <object class="NSMutableArray"> - <bool key="EncodedWithXMLCoder">YES</bool> - <object class="IBUserGuide"> - <reference key="view" ref="1006"/> - <float key="location">1.120000e+02</float> - <int key="affinity">1</int> - </object> - </object> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - </object> - </object> - <object class="NSMutableDictionary" key="unlocalizedProperties"> - <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSArray" key="dict.sortedKeys"> - <bool key="EncodedWithXMLCoder">YES</bool> - </object> - <object class="NSMutableArray" key="dict.values"> - <bool key="EncodedWithXMLCoder">YES</bool> - </object> - </object> - <nil key="activeLocalization"/> - <object class="NSMutableDictionary" key="localizations"> - <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSArray" key="dict.sortedKeys"> - <bool key="EncodedWithXMLCoder">YES</bool> - </object> - <object class="NSMutableArray" key="dict.values"> - <bool key="EncodedWithXMLCoder">YES</bool> - </object> - </object> - <nil key="sourceID"/> - <int key="maxID">128</int> - </object> - <object class="IBClassDescriber" key="IBDocument.Classes"> - <object class="NSMutableArray" key="referencedPartialClassDescriptions"> - <bool key="EncodedWithXMLCoder">YES</bool> - <object class="IBPartialClassDescription"> - <string key="className">Reporter</string> - <string key="superclassName">NSObject</string> - <object class="NSMutableDictionary" key="actions"> - <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSMutableArray" key="dict.sortedKeys"> - <bool key="EncodedWithXMLCoder">YES</bool> - <string>cancel:</string> - <string>sendReport:</string> - <string>showPrivacyPolicy:</string> - </object> - <object class="NSMutableArray" key="dict.values"> - <bool key="EncodedWithXMLCoder">YES</bool> - <string>id</string> - <string>id</string> - <string>id</string> - </object> - </object> - <object class="NSMutableDictionary" key="outlets"> - <string key="NS.key.0">alertWindow</string> - <string key="NS.object.0">NSWindow</string> - </object> - <object class="IBClassDescriptionSource" key="sourceIdentifier"> - <string key="majorKey">IBProjectSource</string> - <string key="minorKey">sender/crash_report_sender.h</string> - </object> - </object> - </object> - </object> - <int key="IBDocument.localizationMode">0</int> - <string key="IBDocument.LastKnownRelativeProjectPath">../../Breakpad.xcodeproj</string> - <int key="IBDocument.defaultPropertyAccessControl">3</int> - </data> -</archive> diff --git a/src/client/mac/sender/ReporterIcon.graffle b/src/client/mac/sender/ReporterIcon.graffle index 62cee85a..14a0e7c4 100644 --- a/src/client/mac/sender/ReporterIcon.graffle +++ b/src/client/mac/sender/ReporterIcon.graffle @@ -65,7 +65,7 @@ <key>CreationDate</key> <string>2008-11-14 16:58:15 -0700</string> <key>Creator</key> - <string>Preston Jackson</string> + <string>John P. Developer</string> <key>DisplayScale</key> <string>1 pt = 1 px</string> <key>FileType</key> diff --git a/src/client/mac/sender/crash_report_sender-Info.plist b/src/client/mac/sender/crash_report_sender-Info.plist index 1ded1261..445926dd 100644 --- a/src/client/mac/sender/crash_report_sender-Info.plist +++ b/src/client/mac/sender/crash_report_sender-Info.plist @@ -6,6 +6,8 @@ <string>English</string> <key>CFBundleExecutable</key> <string>${EXECUTABLE_NAME}</string> + <key>CFBundleIconFile</key> + <string>crash_report_sender</string> <key>CFBundleIdentifier</key> <string>com.Breakpad.${PRODUCT_NAME:identifier}</string> <key>CFBundleInfoDictionaryVersion</key> diff --git a/src/client/mac/sender/ReporterIcon.icns b/src/client/mac/sender/crash_report_sender.icns Binary files differindex e8c21242..e8c21242 100644 --- a/src/client/mac/sender/ReporterIcon.icns +++ b/src/client/mac/sender/crash_report_sender.icns diff --git a/src/client/mac/testapp/Info.plist b/src/client/mac/testapp/Info.plist index 76d70f21..84755c5d 100644 --- a/src/client/mac/testapp/Info.plist +++ b/src/client/mac/testapp/Info.plist @@ -1,46 +1,48 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> - <key>CFBundleDevelopmentRegion</key> - <string>English</string> - <key>CFBundleExecutable</key> - <string>${EXECUTABLE_NAME}</string> - <key>CFBundleIconFile</key> - <string>bomb</string> - <key>CFBundleIdentifier</key> - <string>com.Google.BreakpadTest</string> - <key>CFBundleInfoDictionaryVersion</key> - <string>6.0</string> - <key>CFBundleName</key> - <string>${PRODUCT_NAME}</string> - <key>CFBundlePackageType</key> - <string>APPL</string> - <key>CFBundleSignature</key> - <string>????</string> - <key>CFBundleVersion</key> - <string>1.0</string> - <key>NSMainNibFile</key> - <string>MainMenu</string> - <key>NSPrincipalClass</key> - <string>NSApplication</string> - <key>BreakpadProductDisplay</key> - <string>Google Breakpad Tester</string> - <key>BreakpadProduct</key> - <string>Breakpad_Tester</string> - <key>BreakpadVersion</key> - <string>1.2.3.4</string> - <key>BreakpadReportInterval</key> - <string>10</string> - <key>BreakpadSkipConfirm</key> - <string>NO</string> - <key>BreakpadSendAndExit</key> - <string>YES</string> - <key>BreakpadRequestComments</key> - <string>YES</string> - <key>BreakpadVendor</key> - <string>Foo Bar Corp, Incorporated, LTD, LLC</string> - <key>LSUIElement</key> - <string>1</string> + <key>CFBundleDevelopmentRegion</key> + <string>English</string> + <key>CFBundleExecutable</key> + <string>${EXECUTABLE_NAME}</string> + <key>CFBundleIconFile</key> + <string>bomb</string> + <key>CFBundleIdentifier</key> + <string>com.Google.BreakpadTest</string> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundleName</key> + <string>${PRODUCT_NAME}</string> + <key>CFBundlePackageType</key> + <string>APPL</string> + <key>CFBundleSignature</key> + <string>????</string> + <key>CFBundleVersion</key> + <string>1.0</string> + <key>NSMainNibFile</key> + <string>MainMenu</string> + <key>NSPrincipalClass</key> + <string>NSApplication</string> + <key>BreakpadProductDisplay</key> + <string>Google Breakpad Tester</string> + <key>BreakpadProduct</key> + <string>Breakpad_Tester</string> + <key>BreakpadVersion</key> + <string>1.2.3.4</string> + <key>BreakpadReportInterval</key> + <string>10</string> + <key>BreakpadSkipConfirm</key> + <string>NO</string> + <key>BreakpadSendAndExit</key> + <string>YES</string> + <key>BreakpadRequestComments</key> + <string>YES</string> + <key>BreakpadVendor</key> + <string>Foo Bar Corp, Incorporated, LTD, LLC</string> + <key>BreakpadMinidumpLocation</key> + <string>Breakpad Test Application/Crash Dumps</string> + <key>LSUIElement</key> + <string>1</string> </dict> </plist> diff --git a/src/common/mac/GTMLogger.h b/src/common/mac/GTMLogger.h index 1626b1b6..7d52f01e 100644 --- a/src/common/mac/GTMLogger.h +++ b/src/common/mac/GTMLogger.h @@ -50,6 +50,7 @@ // called from multiple threads, so it must be thread-safe. #import <Foundation/Foundation.h> +#import "GTMDefines.h" // Predeclaration of used protocols that are declared later in this file. @protocol GTMLogWriter, GTMLogFormatter, GTMLogFilter; @@ -455,4 +456,3 @@ typedef enum { // way to enable debug-level logging in release builds (if you so desire). @interface GTMLogNoFilter : NSObject <GTMLogFilter> @end // GTMLogNoFilter - |