quicksilver/Quicksilver — pull request #848 by pjrobertson (2012-04-26 21:36:23+00:00)
Title: Updated Crash reporter

This crash reporter reports crashes based on:

* Plugins that didn't load
* If the OS created a new Quicksilver.crash file in the ~/Library/Logs/CrashReporter

It's much improved over the last one and shouldn't give any false positives. It also has the following features:

* Sends crash reports to the QSApp server
* Allows for user comments to try and reproduce the problem
* Clears the QS caches automatically
* Provides access to the FAQ and Issue tracker should the user with to see them
* Looks Sexy
* Improves load time of plugin (as less writing is required to the QuicksilverState.plist file)

I suggest that reviewers of the code don't look through the commits of the QSCrashReporterWindowController files, since they're completely new. Just see the end products.

To simulate a crash, alter the `lastKnownCrashDate` in the com.blacktree.Quicksivler.plist prefs file to be some time in the past. E.g. to be `21 Apr 2008 00:28:24`

To simulate a plugin crash, alter `~/Library/Caches/Quicksilver/QuicksilverState.plist` to include the name of a plugin and a path such as (for the Cyberduck Module):

QSFaultyPluginPath
/Users/patrick/Library/Application Support/Quicksilver/PlugIns/com.blacktree.Quicksilver.Cyberduck.36.qsplugin
QSFaultyPluginName
Cyberduck Module

The server side code used to receive the file is as follows (please check there are no security loop holes in this)