47 Commits

Author SHA1 Message Date
Allan Odgaard
94d3b9b670 Remove old build files 2021-02-15 16:01:50 +01:00
Allan Odgaard
f7d765ba0e Add build files (for new build system) 2021-02-15 16:01:50 +01:00
Allan Odgaard
4ec10c0923 Don’t annotate types and classes with PUBLIC
This was required when we linked each framework as its own thing, which we do not do anymore, and if we do go back to this system, we can simply have symbols public by default.
2020-06-05 21:22:50 +07:00
Allan Odgaard
6d045e2fd7 Update URL schemes (mainly in comments) to use https 2020-05-22 21:48:09 +07:00
Allan Odgaard
8a83d5141b Use UNUserNotificationCenter starting with macOS 10.14
The advantage seems to be that we can delay asking for user permission until we actually have to post a notification, where the old API would immediately prompt the user, as we setup the NSUserNotificationCenter delegate in applicationDidFinishLaunching: (required to handle user clicking notifications).
2020-05-04 19:20:04 +07:00
Allan Odgaard
0caa9fd6aa Use NSBackgroundActivityScheduler to schedule crash reporting 2020-05-04 19:20:04 +07:00
Allan Odgaard
1ebf35bcad Rewrite crash reporting to use NSURLSessionUploadTask 2020-05-04 19:20:04 +07:00
Allan Odgaard
b514114ec7 Access most system singletons using dot syntax
These are identified by having a prefix of shared, default, or standard in the class method.
2020-04-23 12:25:11 +07:00
Allan Odgaard
715d023673 Declare “sharedInstance” as a class property 2020-04-23 12:25:11 +07:00
Allan Odgaard
dae1103728 Update LINK declarations 2019-07-16 19:42:29 +02:00
Allan Odgaard
99f7aff714 Use BSD time functions instead of deprecated CFGregorianDate 2018-11-15 22:58:23 +07:00
Allan Odgaard
045fd33497 Do not update user defaults in a background thread (queue)
Since observers of NSUserDefaultsDidChangeNotification will be called from the thread that triggered the change, we should only update user defaults from the main thread.
2018-10-29 21:15:18 +07:00
Allan Odgaard
f6fa273912 Update coding style for where to place colon after dictionary keys
This follows the Swift style and also makes it possible to align dictionary values using TextMate’s Align Assignments command.
2018-10-07 09:54:45 +02:00
Allan Odgaard
84889c703d Move crash reporter defaults keys to Preferences framework
Seeing a few crashes from registering user defaults in the “post crash reports” block, hence the motivation to eliminate it.
2016-11-15 22:32:48 +07:00
Allan Odgaard
517847b8c7 Update location of dsym files 2016-11-04 19:22:39 +07:00
mathbunnyru
440414f96c Use nullptr in all C++ files instead of NULL
This brings us a bit of extra type safety, for example where an integer is expected, nullptr should be disallowed by the compiler (unlike NULL).
2016-10-22 21:40:14 +07:00
mathbunnyru
0b034f9a9d Use std::string’s compare to avoid searching beyond the prefix length 2016-10-17 10:50:18 +02:00
Allan Odgaard
3ec7b05473 Do not include user’s email in crash reports
Inconveniencing all users with the “TextMate wants to access your contacts” dialog is not worth having the ability to contact users about their crash reports.
2016-10-07 10:02:58 +02:00
Allan Odgaard
ad01eb1ac6 Use stringArrayForKey: where appropriate 2016-09-21 20:39:41 +02:00
Allan Odgaard
7cc017f343 Harmonize all implementations of sharedInstance 2016-09-19 12:54:19 +02:00
Allan Odgaard
2bccfb9b58 Remove check to see if we have the NSUserNotification class (10.8) 2016-09-10 10:18:21 +02:00
Allan Odgaard
417193e089 Update link dependencies for all targets
Some targets were including headers from frameworks not specified in their link dependencies. For a clean build this could cause an issue because the header was not available at the time of building the target.

The updated link dependencies are also based on what a target’s tests require. Ideally tests would have separate link dependencies, but as we don’t want to maintain this manually, this will have to wait until the build system automatically handles link dependencies.

Currently the commit command uses constants from the CommitWindow framework but should actually not be linked with it. However, the optimizer will strip dead code, so it should not result in much if any difference in the resulting binary and does solve a build dependency issue.
2016-05-07 13:00:55 +02:00
Allan Odgaard
3478457098 Pass non-null arguments where the 10.11 SDK requires it 2015-11-20 13:12:16 +07:00
Allan Odgaard
5b39bdc98b Remove double semi-colons at end of line 2014-11-14 10:21:34 +01:00
Allan Odgaard
f88d6f5425 Don’t search for crash reports generated on 10.6 or lower 2014-08-14 17:43:26 +02:00
Allan Odgaard
184c5fecb0 Don’t use -KU with ruby as it logs a warning with ruby 2.0 2014-04-01 16:01:19 +07:00
Allan Odgaard
c2397484b8 Use C++11 for loop
Majority of the edits done using the following ruby script:

    def update_loops(src)
      dst, cnt = '', 0

      block_indent, variable = nil, nil
      src.each_line do |line|
        if block_indent
          if line =~ /^#{block_indent}([{}\t])|^\t*$/
            block_indent = nil if $1 == '}'
            line = line.gsub(%r{ ([^a-z>]) \(\*#{variable}\) | \*#{variable}\b | \b#{variable}(->) }x) do
              $1.to_s + variable + ($2 == "->" ? "." : "")
            end
          else
            block_indent = nil
          end
        elsif line =~ /^(\t*)c?iterate\((\w+), (?!diacritics::make_range)(.*\))$/
          block_indent, variable = $1, $2
          line = "#$1for(auto const& #$2 : #$3\n"
          cnt += 1
        end
        dst << line
      end
      return dst, cnt
    end

    paths.each do |path|
      src = IO.read(path)

      cnt = 1
      while cnt != 0
        src, cnt = update_loops(src)
        STDERR << "#{path}: #{cnt}\n"
      end

      File.open(path, "w") { |io| io << src }
    end
2014-03-03 10:34:13 +07:00
Allan Odgaard
6ec2f26d2c Don’t access user’s contacts during launch
Instead we access it when either we need to submit a crash report, when the preferences window open (where the contact address is shown), or when creating a new bundle (where email is also used for the bundle’s contact).
2014-02-23 17:10:31 +07:00
Allan Odgaard
a8c269e75c Call ‘atos’ via xcrun 2014-02-18 23:09:53 +07:00
Allan Odgaard
1c308c810d Use map::emplace instead of inserting std::pair (C++11) 2013-09-05 20:59:11 +02:00
Allan Odgaard
a52165694c Move crash reporter info support to own framework
This is to avoid cyclic dependencies since it was previously in a somewhat high-level framework, so everything that framework depended on, could not augment crash reports.
2013-08-12 19:32:23 +02:00
Allan Odgaard
f0bd118738 Update build (generator) script
Use APP_VERSION instead of APP_REVISION in various target names.

Indicate a few build commands are generators, so that their output is not removed on ‘ninja -t clean’.

Move generated dummy files (for tagging, uploading, deploying, etc.) to sub-directories to reduce noise in build directory.
2013-08-01 11:36:27 +02:00
Allan Odgaard
bbde9b61c3 Improve ability to aggregate info in crash reports 2013-07-31 17:52:32 +02:00
Allan Odgaard
cf3264cfc5 Remove test stack dump from symbolicate script
This sometimes show up in folder searches.
2013-07-26 22:24:11 +02:00
Allan Odgaard
2c85ef9ac2 Move crash reporter info to utility.h 2013-03-20 11:30:40 +01:00
Allan Odgaard
b3c9276f9c Find dsym archive using new naming convention
We gracefully fallback on the old naming convention.
2013-03-19 14:56:22 +01:00
Allan Odgaard
abf13e913a Show notification when posting crash reports (10.8)
This is both to remind the user that crash reports are automatically submitted and to make it easy for them to point us to a specific crash, as notification center will now work as a list of recent crashes; click on one of them to see the online version.
2013-02-08 11:20:36 +01:00
Allan Odgaard
e75e7ec8e5 Change text::format → std::to_string (C++11) 2013-02-08 11:20:34 +01:00
Allan Odgaard
0431cca971 Catch potential exception from address book
According to the documentation, sharedAddressBook should return nil when user hasn’t granted access, but one user is reporting random crashes related to this code.
2013-01-29 21:16:49 +01:00
Allan Odgaard
4f7deb09d8 Let symbolicator script find and extract dsym.tbz 2013-01-16 04:42:50 +01:00
Allan Odgaard
c8bfc8be7c Suppress atos debug output 2013-01-10 21:03:29 +01:00
Allan Odgaard
71be61cbbb Enable ARC by default
We now explicitly disable it for targets that hasn’t yet been upgraded to ARC. This way, it’s easier to get an overview of which targets hasn’t yet been upgraded and ensures new targets has ARC enabled.
2012-12-19 19:42:36 +01:00
Allan Odgaard
cba6b3275b Send crash reports in low-priority dispatch queue 2012-09-30 15:25:45 +02:00
Allan Odgaard
67ab3de2b1 Refactor crash reporting code 2012-09-30 15:25:44 +02:00
Allan Odgaard
426b3d1257 ARC: Update CrashReporter framework 2012-09-24 20:58:42 +02:00
Jacob Bandes-Storch
e3aa997b06 Use libc++: replace std::tr1 with std 2012-08-28 13:30:20 +02:00
Allan Odgaard
9894969e67 Initial commit 2012-08-09 16:25:56 +02:00