The purge timer might stop or fire after the application is destroyed, and thus causes a crash.
Created attachment 65036 [details] Patch
Comment on attachment 65036 [details] Patch Andreas kindly suggested on IRC that the problem is solved easier by making ShadowBuffer a child of QCoreApplication::instance(). This leads me into thinking, maybe we should fix our shared timer instead so that application destruction stops and closes pending timers. Clearing the review flag while thinking about this.
Apparently the problem is because TimerBase/Timer relies on thread global data, which is gone already after the application instance is destroyed. Thus, any static object can't use TimerBase/Timer with a risk of crashing.
Created attachment 65073 [details] Patch
Comment on attachment 65073 [details] Patch LGTM, feels like the best approach to this problem.
Comment on attachment 65073 [details] Patch Oh that is a bit sad...
Committed r65795: <http://trac.webkit.org/changeset/65795>