Storage tests are flaky in WebKit1, because DumpRenderTree effectively makes all parallel processes use the same temporary directory. I hope that this fix will address increased appcache test flakiness that started this week, when I changed DRT to delete appcache between tests - this made sqlite race for access to ApplicationCache.db a lot more than before.
Created attachment 242724 [details] proposed fix
I'm now trying to remember if we needed to set standard defaults in order to make frameworks that use CFPreferences work...
Comment on attachment 242724 [details] proposed fix Bummer. http://trac.webkit.org/changeset/158652 says: -------------- Using NSArgumentDomain was not a good idea. While it works with NSUserDefaults and CFPreferencesCopyAppValue family of functions, it doesn't work with CFPreferencesCopyValue(..., kCFPreferencesCurrentApplication, ...). -------------- So, we should use NSArgumentDomain only for per instance preferences.
Created attachment 242726 [details] proposed fix Looking at WebKit1 code, we have a bunch of unfortunate special cases that bypass WebPreferences, and use NSUserDefaults directly. WebKitKerningAndLigaturesEnabledByDefaultDefaultsKey is read and written by WebView, so it's global per process identifier, and cannot be different in different WebViews or in parallel DumpRenderTrees. Same thing with these ones, which are further complicated due to interactions between WebKit and AppKit preferences: [webView setContinuousSpellCheckingEnabled:YES]; [webView setAutomaticQuoteSubstitutionEnabled:NO]; [webView setAutomaticLinkDetectionEnabled:NO]; [webView setAutomaticDashSubstitutionEnabled:NO]; [webView setAutomaticTextReplacementEnabled:NO]; [webView setAutomaticSpellingCorrectionEnabled:YES]; [webView setGrammarCheckingEnabled:YES];
Comment on attachment 242726 [details] proposed fix Clearing flags on attachment: 242726 Committed r176917: <http://trac.webkit.org/changeset/176917>
All reviewed patches have been landed. Closing bug.