aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/client/mac/Breakpad.xcodeproj/project.pbxproj56
-rw-r--r--src/client/mac/Framework/Breakpad.h49
-rw-r--r--src/client/mac/Framework/Breakpad.mm23
-rw-r--r--src/client/mac/crash_generation/Inspector.h15
-rw-r--r--src/client/mac/crash_generation/Inspector.mm28
-rw-r--r--src/client/mac/sender/English.lproj/Breakpad.nib/classes.nib33
-rw-r--r--src/client/mac/sender/English.lproj/Breakpad.nib/info.nib20
-rw-r--r--src/client/mac/sender/English.lproj/Breakpad.nib/keyedobjects.nibbin0 -> 10208 bytes
-rw-r--r--src/client/mac/sender/English.lproj/Breakpad.xib834
-rw-r--r--src/client/mac/sender/ReporterIcon.graffle2
-rw-r--r--src/client/mac/sender/crash_report_sender-Info.plist2
-rw-r--r--src/client/mac/sender/crash_report_sender.icns (renamed from src/client/mac/sender/ReporterIcon.icns)bin170816 -> 170816 bytes
-rw-r--r--src/client/mac/testapp/Info.plist84
-rw-r--r--src/common/mac/GTMLogger.h2
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
new file mode 100644
index 00000000..50dff43d
--- /dev/null
+++ b/src/client/mac/sender/English.lproj/Breakpad.nib/keyedobjects.nib
Binary files differ
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
index e8c21242..e8c21242 100644
--- a/src/client/mac/sender/ReporterIcon.icns
+++ b/src/client/mac/sender/crash_report_sender.icns
Binary files differ
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
-