Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 | 2 |
| 3 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 3 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 4 # Use of this source code is governed by a BSD-style license that can be | 4 # Use of this source code is governed by a BSD-style license that can be |
| 5 # found in the LICENSE file. | 5 # found in the LICENSE file. |
| 6 | 6 |
| 7 # | 7 # |
| 8 # Xcode supports build variable substitutions and CPP; sadly, that doesn't work | 8 # Xcode supports build variable substitutions and CPP; sadly, that doesn't work |
| 9 # because: | 9 # because: |
| 10 # | 10 # |
| (...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 157 | 157 |
| 158 return True | 158 return True |
| 159 | 159 |
| 160 | 160 |
| 161 def _AddBreakpadKeys(plist, branding, platform): | 161 def _AddBreakpadKeys(plist, branding, platform): |
| 162 """Adds the Breakpad keys. This must be called AFTER _AddVersionKeys() and | 162 """Adds the Breakpad keys. This must be called AFTER _AddVersionKeys() and |
| 163 also requires the |branding| argument.""" | 163 also requires the |branding| argument.""" |
| 164 plist['BreakpadReportInterval'] = '3600' # Deliberately a string. | 164 plist['BreakpadReportInterval'] = '3600' # Deliberately a string. |
| 165 plist['BreakpadProduct'] = '%s_%s' % (branding, platform) | 165 plist['BreakpadProduct'] = '%s_%s' % (branding, platform) |
| 166 plist['BreakpadProductDisplay'] = branding | 166 plist['BreakpadProductDisplay'] = branding |
| 167 plist['BreakpadURL'] = 'https://clients2.google.com/cr/report' | |
|
scottmg
2016/08/01 20:38:34
BreakpadURL isn't used in crashpad_mac.mm any more
Mark Mentovai
2016/08/01 20:39:23
scottmg (OOO until August) wrote:
| |
| 168 | |
| 167 # These are both deliberately strings and not boolean. | 169 # These are both deliberately strings and not boolean. |
| 168 plist['BreakpadSendAndExit'] = 'YES' | 170 plist['BreakpadSendAndExit'] = 'YES' |
| 169 plist['BreakpadSkipConfirm'] = 'YES' | 171 plist['BreakpadSkipConfirm'] = 'YES' |
| 170 | 172 |
| 171 | 173 |
| 172 def _RemoveBreakpadKeys(plist): | 174 def _RemoveBreakpadKeys(plist): |
| 173 """Removes any set Breakpad keys.""" | 175 """Removes any set Breakpad keys.""" |
| 174 _RemoveKeys(plist, | 176 _RemoveKeys(plist, |
| 175 'BreakpadURL', | 177 'BreakpadURL', |
| 176 'BreakpadReportInterval', | 178 'BreakpadReportInterval', |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 227 | 229 |
| 228 def Main(argv): | 230 def Main(argv): |
| 229 parser = optparse.OptionParser('%prog [options]') | 231 parser = optparse.OptionParser('%prog [options]') |
| 230 parser.add_option('--plist', dest='plist_path', action='store', | 232 parser.add_option('--plist', dest='plist_path', action='store', |
| 231 type='string', default=None, help='The path of the plist to tweak.') | 233 type='string', default=None, help='The path of the plist to tweak.') |
| 232 parser.add_option('--output', dest='plist_output', action='store', | 234 parser.add_option('--output', dest='plist_output', action='store', |
| 233 type='string', default=None, help='If specified, the path to output ' + \ | 235 type='string', default=None, help='If specified, the path to output ' + \ |
| 234 'the tweaked plist, rather than overwriting the input.') | 236 'the tweaked plist, rather than overwriting the input.') |
| 235 parser.add_option('--breakpad', dest='use_breakpad', action='store', | 237 parser.add_option('--breakpad', dest='use_breakpad', action='store', |
| 236 type='int', default=False, help='Enable Breakpad [1 or 0]') | 238 type='int', default=False, help='Enable Breakpad [1 or 0]') |
| 237 parser.add_option('--breakpad_uploads', dest='breakpad_uploads', | |
| 238 action='store', type='int', default=False, | |
| 239 help='Enable Breakpad\'s uploading of crash dumps [1 or 0]') | |
| 240 parser.add_option('--keystone', dest='use_keystone', action='store', | 239 parser.add_option('--keystone', dest='use_keystone', action='store', |
| 241 type='int', default=False, help='Enable Keystone [1 or 0]') | 240 type='int', default=False, help='Enable Keystone [1 or 0]') |
| 242 parser.add_option('--scm', dest='add_scm_info', action='store', type='int', | 241 parser.add_option('--scm', dest='add_scm_info', action='store', type='int', |
| 243 default=True, help='Add SCM metadata [1 or 0]') | 242 default=True, help='Add SCM metadata [1 or 0]') |
| 244 parser.add_option('--branding', dest='branding', action='store', | 243 parser.add_option('--branding', dest='branding', action='store', |
| 245 type='string', default=None, help='The branding of the binary') | 244 type='string', default=None, help='The branding of the binary') |
| 246 parser.add_option('--bundle_id', dest='bundle_identifier', | 245 parser.add_option('--bundle_id', dest='bundle_identifier', |
| 247 action='store', type='string', default=None, | 246 action='store', type='string', default=None, |
| 248 help='The bundle id of the binary') | 247 help='The bundle id of the binary') |
| 249 parser.add_option('--platform', choices=('ios', 'mac'), default='mac', | 248 parser.add_option('--platform', choices=('ios', 'mac'), default='mac', |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 320 | 319 |
| 321 # Add Breakpad if configured to do so. | 320 # Add Breakpad if configured to do so. |
| 322 if options.use_breakpad: | 321 if options.use_breakpad: |
| 323 if options.branding is None: | 322 if options.branding is None: |
| 324 print >>sys.stderr, 'Use of Breakpad requires branding.' | 323 print >>sys.stderr, 'Use of Breakpad requires branding.' |
| 325 return 1 | 324 return 1 |
| 326 # Map gyp "OS" / gn "target_os" passed via the --platform parameter to | 325 # Map gyp "OS" / gn "target_os" passed via the --platform parameter to |
| 327 # the platform as known by breakpad. | 326 # the platform as known by breakpad. |
| 328 platform = {'mac': 'Mac', 'ios': 'iOS'}[options.platform] | 327 platform = {'mac': 'Mac', 'ios': 'iOS'}[options.platform] |
| 329 _AddBreakpadKeys(plist, options.branding, platform) | 328 _AddBreakpadKeys(plist, options.branding, platform) |
| 330 if options.breakpad_uploads: | |
| 331 plist['BreakpadURL'] = 'https://clients2.google.com/cr/report' | |
| 332 else: | |
| 333 # This allows crash dumping to a file without uploading the | |
| 334 # dump, for testing purposes. Breakpad does not recognise | |
| 335 # "none" as a special value, but this does stop crash dump | |
| 336 # uploading from happening. We need to specify something | |
| 337 # because if "BreakpadURL" is not present, Breakpad will not | |
| 338 # register its crash handler and no crash dumping will occur. | |
| 339 plist['BreakpadURL'] = 'none' | |
| 340 else: | 329 else: |
| 341 _RemoveBreakpadKeys(plist) | 330 _RemoveBreakpadKeys(plist) |
| 342 | 331 |
| 343 # Add Keystone if configured to do so. | 332 # Add Keystone if configured to do so. |
| 344 if options.use_keystone: | 333 if options.use_keystone: |
| 345 if options.bundle_identifier is None: | 334 if options.bundle_identifier is None: |
| 346 print >>sys.stderr, 'Use of Keystone requires the bundle id.' | 335 print >>sys.stderr, 'Use of Keystone requires the bundle id.' |
| 347 return 1 | 336 return 1 |
| 348 _AddKeystoneKeys(plist, options.bundle_identifier) | 337 _AddKeystoneKeys(plist, options.bundle_identifier) |
| 349 else: | 338 else: |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 361 with tempfile.NamedTemporaryFile() as temp_info_plist: | 350 with tempfile.NamedTemporaryFile() as temp_info_plist: |
| 362 plistlib.writePlist(plist, temp_info_plist.name) | 351 plistlib.writePlist(plist, temp_info_plist.name) |
| 363 | 352 |
| 364 # Convert Info.plist to the format requested by the --format flag. Any | 353 # Convert Info.plist to the format requested by the --format flag. Any |
| 365 # format would work on Mac but iOS requires specific format. | 354 # format would work on Mac but iOS requires specific format. |
| 366 return _ConvertPlist(temp_info_plist.name, output_path, options.format) | 355 return _ConvertPlist(temp_info_plist.name, output_path, options.format) |
| 367 | 356 |
| 368 | 357 |
| 369 if __name__ == '__main__': | 358 if __name__ == '__main__': |
| 370 sys.exit(Main(sys.argv[1:])) | 359 sys.exit(Main(sys.argv[1:])) |
| OLD | NEW |