Title: [124649] trunk
Revision
124649
Author
[email protected]
Date
2012-08-03 13:49:03 -0700 (Fri, 03 Aug 2012)

Log Message

Small part of "Out-of-process plug-ins should support asynchronous initialization."
<rdar://problem/10598594> and https://bugs.webkit.org/show_bug.cgi?id=92919

Reviewed by Anders Carlsson.

Source/WebKit2:

-Add API-level preferences for forcing asynchronous initialization of all plug-ins (for testing).
-Make sure "overridePreference" is hooked up properly for all needed preferences.

* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetAsynchronousPluginInitializationEnabledForAllPlugins):
(WKPreferencesGetAsynchronousPluginInitializationEnabledForAllPlugins):
* UIProcess/API/C/WKPreferencesPrivate.h:

* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
(WebKit::WebPage::updatePreferences):
* WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::setAsynchronousPluginInitializationEnabled):
(WebKit::WebPage::asynchronousPluginInitializationEnabledForAllPlugins):
(WebKit::WebPage::setAsynchronousPluginInitializationEnabledForAllPlugins):
(WebKit::WebPage::setArtificialPluginInitializationDelayEnabled):
(WebPage):

Tools:

* WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetStateToConsistentValues): Reset all preferences related to asynchronous plugin initialization.

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (124648 => 124649)


--- trunk/Source/WebKit2/ChangeLog	2012-08-03 20:41:02 UTC (rev 124648)
+++ trunk/Source/WebKit2/ChangeLog	2012-08-03 20:49:03 UTC (rev 124649)
@@ -1,3 +1,31 @@
+2012-08-03  Brady Eidson  <[email protected]>
+
+        Small part of "Out-of-process plug-ins should support asynchronous initialization."
+        <rdar://problem/10598594> and https://bugs.webkit.org/show_bug.cgi?id=92919
+
+        Reviewed by Anders Carlsson.
+
+        -Add API-level preferences for forcing asynchronous initialization of all plug-ins (for testing).
+        -Make sure "overridePreference" is hooked up properly for all needed preferences.
+
+        * UIProcess/API/C/WKPreferences.cpp:
+        (WKPreferencesSetAsynchronousPluginInitializationEnabledForAllPlugins):
+        (WKPreferencesGetAsynchronousPluginInitializationEnabledForAllPlugins):
+        * UIProcess/API/C/WKPreferencesPrivate.h:
+
+        * WebProcess/InjectedBundle/InjectedBundle.cpp:
+        (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
+
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::WebPage):
+        (WebKit::WebPage::updatePreferences):
+        * WebProcess/WebPage/WebPage.h:
+        (WebKit::WebPage::setAsynchronousPluginInitializationEnabled):
+        (WebKit::WebPage::asynchronousPluginInitializationEnabledForAllPlugins):
+        (WebKit::WebPage::setAsynchronousPluginInitializationEnabledForAllPlugins):
+        (WebKit::WebPage::setArtificialPluginInitializationDelayEnabled):
+        (WebPage):
+
 2012-08-02  Jeffrey Pfau  <[email protected]>
 
         Add API for enabling blanket third-party data blocking

Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp (124648 => 124649)


--- trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp	2012-08-03 20:41:02 UTC (rev 124648)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp	2012-08-03 20:49:03 UTC (rev 124649)
@@ -854,6 +854,16 @@
     return toImpl(preferencesRef)->asynchronousPluginInitializationEnabled();
 }
 
+void WKPreferencesSetAsynchronousPluginInitializationEnabledForAllPlugins(WKPreferencesRef preferencesRef, bool enabled)
+{
+    toImpl(preferencesRef)->setAsynchronousPluginInitializationEnabledForAllPlugins(enabled);
+}
+
+bool WKPreferencesGetAsynchronousPluginInitializationEnabledForAllPlugins(WKPreferencesRef preferencesRef)
+{
+    return toImpl(preferencesRef)->asynchronousPluginInitializationEnabledForAllPlugins();
+}
+
 void WKPreferencesSetArtificialPluginInitializationDelayEnabled(WKPreferencesRef preferencesRef, bool enabled)
 {
     toImpl(preferencesRef)->setArtificialPluginInitializationDelayEnabled(enabled);

Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesPrivate.h (124648 => 124649)


--- trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesPrivate.h	2012-08-03 20:41:02 UTC (rev 124648)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesPrivate.h	2012-08-03 20:49:03 UTC (rev 124649)
@@ -196,6 +196,10 @@
 WK_EXPORT bool WKPreferencesGetAsynchronousPluginInitializationEnabled(WKPreferencesRef preferencesRef);
 
 // Defaults to false
+WK_EXPORT void WKPreferencesSetAsynchronousPluginInitializationEnabledForAllPlugins(WKPreferencesRef preferencesRef, bool enabled);
+WK_EXPORT bool WKPreferencesGetAsynchronousPluginInitializationEnabledForAllPlugins(WKPreferencesRef preferencesRef);
+
+// Defaults to false
 WK_EXPORT void WKPreferencesSetArtificialPluginInitializationDelayEnabled(WKPreferencesRef preferencesRef, bool enabled);
 WK_EXPORT bool WKPreferencesGetArtificialPluginInitializationDelayEnabled(WKPreferencesRef preferencesRef);
 

Modified: trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.cpp (124648 => 124649)


--- trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.cpp	2012-08-03 20:41:02 UTC (rev 124648)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.cpp	2012-08-03 20:49:03 UTC (rev 124649)
@@ -131,6 +131,30 @@
 
     // FIXME: Need an explicit way to set "WebKitTabToLinksPreferenceKey" directly in WebPage.
 
+    if (preference == "WebKit2AsynchronousPluginInitializationEnabled") {
+        WebPreferencesStore::overrideBoolValueForKey(WebPreferencesKey::asynchronousPluginInitializationEnabledKey(), enabled);
+        for (HashSet<Page*>::iterator i = pages.begin(); i != pages.end(); ++i) {
+            WebPage* webPage = static_cast<WebFrameLoaderClient*>((*i)->mainFrame()->loader()->client())->webFrame()->page();
+            webPage->setAsynchronousPluginInitializationEnabled(enabled);
+        }
+    }
+
+    if (preference == "WebKit2AsynchronousPluginInitializationEnabledForAllPlugins") {
+        WebPreferencesStore::overrideBoolValueForKey(WebPreferencesKey::asynchronousPluginInitializationEnabledForAllPluginsKey(), enabled);
+        for (HashSet<Page*>::iterator i = pages.begin(); i != pages.end(); ++i) {
+            WebPage* webPage = static_cast<WebFrameLoaderClient*>((*i)->mainFrame()->loader()->client())->webFrame()->page();
+            webPage->setAsynchronousPluginInitializationEnabledForAllPlugins(enabled);
+        }
+    }
+
+    if (preference == "WebKit2ArtificialPluginInitializationDelayEnabled") {
+        WebPreferencesStore::overrideBoolValueForKey(WebPreferencesKey::artificialPluginInitializationDelayEnabledKey(), enabled);
+        for (HashSet<Page*>::iterator i = pages.begin(); i != pages.end(); ++i) {
+            WebPage* webPage = static_cast<WebFrameLoaderClient*>((*i)->mainFrame()->loader()->client())->webFrame()->page();
+            webPage->setArtificialPluginInitializationDelayEnabled(enabled);
+        }
+    }
+
     // Map the names used in LayoutTests with the names used in WebCore::Settings and WebPreferencesStore.
 #define FOR_EACH_OVERRIDE_BOOL_PREFERENCE(macro) \
     macro(WebKitAcceleratedCompositingEnabled, AcceleratedCompositingEnabled, acceleratedCompositingEnabled) \

Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (124648 => 124649)


--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp	2012-08-03 20:41:02 UTC (rev 124648)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp	2012-08-03 20:49:03 UTC (rev 124649)
@@ -208,6 +208,7 @@
     , m_isClosed(false)
     , m_tabToLinks(false)
     , m_asynchronousPluginInitializationEnabled(false)
+    , m_asynchronousPluginInitializationEnabledForAllPlugins(false)
     , m_artificialPluginInitializationDelayEnabled(false)
 #if PLATFORM(MAC)
     , m_windowIsVisible(false)
@@ -1979,6 +1980,7 @@
 
     m_tabToLinks = store.getBoolValueForKey(WebPreferencesKey::tabsToLinksKey());
     m_asynchronousPluginInitializationEnabled = store.getBoolValueForKey(WebPreferencesKey::asynchronousPluginInitializationEnabledKey());
+    m_asynchronousPluginInitializationEnabledForAllPlugins = store.getBoolValueForKey(WebPreferencesKey::asynchronousPluginInitializationEnabledForAllPluginsKey());
     m_artificialPluginInitializationDelayEnabled = store.getBoolValueForKey(WebPreferencesKey::artificialPluginInitializationDelayEnabledKey());
 
     // FIXME: This should be generated from macro expansion for all preferences,

Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h (124648 => 124649)


--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h	2012-08-03 20:41:02 UTC (rev 124648)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h	2012-08-03 20:49:03 UTC (rev 124649)
@@ -571,7 +571,11 @@
 #endif
 
     bool asynchronousPluginInitializationEnabled() const { return m_asynchronousPluginInitializationEnabled; }
+    void setAsynchronousPluginInitializationEnabled(bool enabled) { m_asynchronousPluginInitializationEnabled = enabled; }
+    bool asynchronousPluginInitializationEnabledForAllPlugins() const { return m_asynchronousPluginInitializationEnabledForAllPlugins; }
+    void setAsynchronousPluginInitializationEnabledForAllPlugins(bool enabled) { m_asynchronousPluginInitializationEnabledForAllPlugins = enabled; }
     bool artificialPluginInitializationDelayEnabled() const { return m_artificialPluginInitializationDelayEnabled; }
+    void setArtificialPluginInitializationDelayEnabled(bool enabled) { m_artificialPluginInitializationDelayEnabled = enabled; }
 
 private:
     WebPage(uint64_t pageID, const WebPageCreationParameters&);
@@ -763,6 +767,7 @@
     bool m_tabToLinks;
     
     bool m_asynchronousPluginInitializationEnabled;
+    bool m_asynchronousPluginInitializationEnabledForAllPlugins;
     bool m_artificialPluginInitializationDelayEnabled;
 
 #if PLATFORM(MAC)

Modified: trunk/Tools/ChangeLog (124648 => 124649)


--- trunk/Tools/ChangeLog	2012-08-03 20:41:02 UTC (rev 124648)
+++ trunk/Tools/ChangeLog	2012-08-03 20:49:03 UTC (rev 124649)
@@ -1,3 +1,13 @@
+2012-08-03  Brady Eidson  <[email protected]>
+
+        Small part of "Out-of-process plug-ins should support asynchronous initialization."
+        <rdar://problem/10598594> and https://bugs.webkit.org/show_bug.cgi?id=92919
+
+        Reviewed by Anders Carlsson.
+
+        * WebKitTestRunner/TestController.cpp:
+        (WTR::TestController::resetStateToConsistentValues): Reset all preferences related to asynchronous plugin initialization.
+
 2012-08-02  Jeffrey Pfau  <[email protected]>
 
         Add API for enabling blanket third-party data blocking

Modified: trunk/Tools/WebKitTestRunner/TestController.cpp (124648 => 124649)


--- trunk/Tools/WebKitTestRunner/TestController.cpp	2012-08-03 20:41:02 UTC (rev 124648)
+++ trunk/Tools/WebKitTestRunner/TestController.cpp	2012-08-03 20:49:03 UTC (rev 124649)
@@ -465,6 +465,9 @@
     WKPreferencesSetFullScreenEnabled(preferences, true);
 #endif
     WKPreferencesSetPageCacheEnabled(preferences, false);
+    WKPreferencesSetAsynchronousPluginInitializationEnabled(preferences, false);
+    WKPreferencesSetAsynchronousPluginInitializationEnabledForAllPlugins(preferences, false);
+    WKPreferencesSetArtificialPluginInitializationDelayEnabled(preferences, false);
 
 // [Qt][WK2]REGRESSION(r104881):It broke hundreds of tests
 // FIXME: https://bugs.webkit.org/show_bug.cgi?id=76247
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to