Title: [147925] tags/Safari-537.35.10/Source

Diff

Modified: tags/Safari-537.35.10/Source/WebCore/ChangeLog (147924 => 147925)


--- tags/Safari-537.35.10/Source/WebCore/ChangeLog	2013-04-08 17:20:32 UTC (rev 147924)
+++ tags/Safari-537.35.10/Source/WebCore/ChangeLog	2013-04-08 17:22:30 UTC (rev 147925)
@@ -1,3 +1,29 @@
+2013-04-08  Lucas Forschler  <[email protected]>
+
+        Merge r147659
+
+    2013-04-03  Dean Jackson  <[email protected]>
+
+            Expose settings to disable plugin snapshotting autostart and primary detection
+            https://bugs.webkit.org/show_bug.cgi?id=113918
+
+            Reviewed by Tim Horton.
+
+            Three new settings:
+            - snapshotAllPlugIns: Do not apply any heuristics - immediately snapshot a plugin.
+            - primaryPlugInSnapshotDetectionEnabled: Toggle snapshotting the "main" plugin in the page.
+            - autostartOriginPlugInSnapshottingEnabled: Toggle snapshotting based on URL origins.
+
+            * html/HTMLPlugInImageElement.cpp:
+            (WebCore::HTMLPlugInImageElement::userDidClickSnapshot): Don't tell the host that we've started
+                if the autostartOriginPlugInSnapshottingEnabled is false.
+            (WebCore::HTMLPlugInImageElement::setIsPrimarySnapshottedPlugIn): Don't restart a primary
+                plugin if primaryPlugInSnapshotDetectionEnabled is false.
+            (WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Snapshot immediately if
+                snapshotAllPlugIns is true. Also, don't test for autostart if
+                autostartOriginPlugInSnapshottingEnabled is false.
+            * page/Settings.in: Three new settings values.
+
 2013-04-05  Lucas Forschler  <[email protected]>
 
         Merge r147664

Modified: tags/Safari-537.35.10/Source/WebCore/html/HTMLPlugInImageElement.cpp (147924 => 147925)


--- tags/Safari-537.35.10/Source/WebCore/html/HTMLPlugInImageElement.cpp	2013-04-08 17:20:32 UTC (rev 147924)
+++ tags/Safari-537.35.10/Source/WebCore/html/HTMLPlugInImageElement.cpp	2013-04-08 17:22:30 UTC (rev 147925)
@@ -468,7 +468,7 @@
 {
     m_pendingClickEventFromSnapshot = event;
     String plugInOrigin = m_loadedUrl.host();
-    if (document()->page() && !SchemeRegistry::shouldTreatURLSchemeAsLocal(document()->page()->mainFrame()->document()->baseURL().protocol()))
+    if (document()->page() && !SchemeRegistry::shouldTreatURLSchemeAsLocal(document()->page()->mainFrame()->document()->baseURL().protocol()) && document()->page()->settings()->autostartOriginPlugInSnapshottingEnabled())
         document()->page()->plugInClient()->didStartFromOrigin(document()->page()->mainFrame()->document()->baseURL().host(), plugInOrigin, loadedMimeType());
 
     restartSnapshottedPlugIn();
@@ -477,6 +477,9 @@
 
 void HTMLPlugInImageElement::setIsPrimarySnapshottedPlugIn(bool isPrimarySnapshottedPlugIn)
 {
+    if (!document()->page() || !document()->page()->settings()->primaryPlugInSnapshotDetectionEnabled() || document()->page()->settings()->snapshotAllPlugIns())
+        return;
+
     if (isPrimarySnapshottedPlugIn) {
         restartSnapshottedPlugIn();
         restartSimilarPlugIns();
@@ -555,6 +558,12 @@
         return;
     }
 
+    if (document()->page()->settings()->snapshotAllPlugIns()) {
+        LOG(Plugins, "%p Plug-in forced to snapshot by user preference", this);
+        setDisplayState(WaitingForSnapshot);
+        return;
+    }
+
     RenderBox* renderEmbeddedObject = toRenderBox(renderer());
     Length styleWidth = renderEmbeddedObject->style()->width();
     Length styleHeight = renderEmbeddedObject->style()->height();
@@ -582,7 +591,7 @@
         return;
     }
 
-    if (document()->page()->plugInClient()->shouldAutoStartFromOrigin(document()->page()->mainFrame()->document()->baseURL().host(), url.host(), loadedMimeType())) {
+    if (document()->page()->settings()->autostartOriginPlugInSnapshottingEnabled() && document()->page()->plugInClient()->shouldAutoStartFromOrigin(document()->page()->mainFrame()->document()->baseURL().host(), url.host(), loadedMimeType())) {
         LOG(Plugins, "%p Plug-in from (%s, %s) is marked to auto-start, set to play", this, document()->page()->mainFrame()->document()->baseURL().host().utf8().data(), url.host().utf8().data());
         return;
     }

Modified: tags/Safari-537.35.10/Source/WebCore/page/Settings.in (147924 => 147925)


--- tags/Safari-537.35.10/Source/WebCore/page/Settings.in	2013-04-08 17:20:32 UTC (rev 147924)
+++ tags/Safari-537.35.10/Source/WebCore/page/Settings.in	2013-04-08 17:22:30 UTC (rev 147925)
@@ -182,6 +182,9 @@
 applyDeviceScaleFactorInCompositor initial=true
 applyPageScaleFactorInCompositor initial=false
 plugInSnapshottingEnabled initial=false
+snapshotAllPlugIns initial=false
+autostartOriginPlugInSnapshottingEnabled initial=true
+primaryPlugInSnapshotDetectionEnabled initial=true
 maximumPlugInSnapshotAttempts type=unsigned, initial=20
 frameFlatteningEnabled initial=false
 

Modified: tags/Safari-537.35.10/Source/WebKit2/ChangeLog (147924 => 147925)


--- tags/Safari-537.35.10/Source/WebKit2/ChangeLog	2013-04-08 17:20:32 UTC (rev 147924)
+++ tags/Safari-537.35.10/Source/WebKit2/ChangeLog	2013-04-08 17:22:30 UTC (rev 147925)
@@ -1,3 +1,33 @@
+2013-04-08  Lucas Forschler  <[email protected]>
+
+        Merge r147659
+
+    2013-04-03  Dean Jackson  <[email protected]>
+
+            Expose settings to disable plugin snapshotting autostart and primary detection
+            https://bugs.webkit.org/show_bug.cgi?id=113918
+
+            Reviewed by Tim Horton.
+
+            Three new settings: snapshotAllPlugIns, primaryPlugInSnapshotDetectionEnabled and
+            autostartOriginPlugInSnapshottingEnabled.
+            These are exposed via WKPreferences (WebKit2 only, since that's the only port actively
+            using the feature).
+
+            * Shared/WebPreferencesStore.h: Add macros for new settings.
+            * UIProcess/API/C/WKPreferences.cpp: Getters and setters for new settings.
+            (WKPreferencesSetSnapshotAllPlugIns):
+            (WKPreferencesGetSnapshotAllPlugIns):
+            (WKPreferencesSetAutostartOriginPlugInSnapshottingEnabled):
+            (WKPreferencesGetAutostartOriginPlugInSnapshottingEnabled):
+            (WKPreferencesSetPrimaryPlugInSnapshotDetectionEnabled):
+            (WKPreferencesGetPrimaryPlugInSnapshotDetectionEnabled):
+            * UIProcess/API/C/WKPreferencesPrivate.h:
+            * WebProcess/WebPage/WebPage.cpp:
+            (WebKit::WebPage::updatePreferences): Forward settings updates.
+            (WebKit::WebPage::addPluginView): Don't run primary plugin detection if the setting is false.
+            (WebKit::WebPage::didFinishLoad): Ditto.
+
 2013-04-04  Lucas Forschler  <[email protected]>
 
         Merge r147592

Modified: tags/Safari-537.35.10/Source/WebKit2/Shared/WebPreferencesStore.h (147924 => 147925)


--- tags/Safari-537.35.10/Source/WebKit2/Shared/WebPreferencesStore.h	2013-04-08 17:20:32 UTC (rev 147924)
+++ tags/Safari-537.35.10/Source/WebKit2/Shared/WebPreferencesStore.h	2013-04-08 17:22:30 UTC (rev 147925)
@@ -144,6 +144,9 @@
     macro(ScreenFontSubstitutionEnabled, screenFontSubstitutionEnabled, Bool, bool, DEFAULT_SCREEN_FONT_SUBSTITUTION_ENABLED) \
     macro(CookieEnabled, cookieEnabled, Bool, bool, true) \
     macro(PlugInSnapshottingEnabled, plugInSnapshottingEnabled, Bool, bool, false) \
+    macro(SnapshotAllPlugIns, snapshotAllPlugIns, Bool, bool, false) \
+    macro(AutostartOriginPlugInSnapshottingEnabled, autostartOriginPlugInSnapshottingEnabled, Bool, bool, true) \
+    macro(PrimaryPlugInSnapshotDetectionEnabled, primaryPlugInSnapshotDetectionEnabled, Bool, bool, true) \
     macro(PDFPluginEnabled, pdfPluginEnabled, Bool, bool, false) \
     macro(UsesEncodingDetector, usesEncodingDetector, Bool, bool, false) \
     macro(TextAutosizingEnabled, textAutosizingEnabled, Bool, bool, false) \

Modified: tags/Safari-537.35.10/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp (147924 => 147925)


--- tags/Safari-537.35.10/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp	2013-04-08 17:20:32 UTC (rev 147924)
+++ tags/Safari-537.35.10/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp	2013-04-08 17:22:30 UTC (rev 147925)
@@ -994,6 +994,36 @@
     return toImpl(preferencesRef)->plugInSnapshottingEnabled();
 }
 
+void WKPreferencesSetSnapshotAllPlugIns(WKPreferencesRef preferencesRef, bool enabled)
+{
+    toImpl(preferencesRef)->setSnapshotAllPlugIns(enabled);
+}
+
+bool WKPreferencesGetSnapshotAllPlugIns(WKPreferencesRef preferencesRef)
+{
+    return toImpl(preferencesRef)->snapshotAllPlugIns();
+}
+
+void WKPreferencesSetAutostartOriginPlugInSnapshottingEnabled(WKPreferencesRef preferencesRef, bool enabled)
+{
+    toImpl(preferencesRef)->setAutostartOriginPlugInSnapshottingEnabled(enabled);
+}
+
+bool WKPreferencesGetAutostartOriginPlugInSnapshottingEnabled(WKPreferencesRef preferencesRef)
+{
+    return toImpl(preferencesRef)->autostartOriginPlugInSnapshottingEnabled();
+}
+
+void WKPreferencesSetPrimaryPlugInSnapshotDetectionEnabled(WKPreferencesRef preferencesRef, bool enabled)
+{
+    toImpl(preferencesRef)->setPrimaryPlugInSnapshotDetectionEnabled(enabled);
+}
+
+bool WKPreferencesGetPrimaryPlugInSnapshotDetectionEnabled(WKPreferencesRef preferencesRef)
+{
+    return toImpl(preferencesRef)->primaryPlugInSnapshotDetectionEnabled();
+}
+
 void WKPreferencesSetPDFPluginEnabled(WKPreferencesRef preferencesRef, bool enabled)
 {
     toImpl(preferencesRef)->setPDFPluginEnabled(enabled);

Modified: tags/Safari-537.35.10/Source/WebKit2/UIProcess/API/C/WKPreferencesPrivate.h (147924 => 147925)


--- tags/Safari-537.35.10/Source/WebKit2/UIProcess/API/C/WKPreferencesPrivate.h	2013-04-08 17:20:32 UTC (rev 147924)
+++ tags/Safari-537.35.10/Source/WebKit2/UIProcess/API/C/WKPreferencesPrivate.h	2013-04-08 17:22:30 UTC (rev 147925)
@@ -267,6 +267,18 @@
 WK_EXPORT void WKPreferencesSetHiddenPageCSSAnimationSuspensionEnabled(WKPreferencesRef preferences, bool enabled);
 WK_EXPORT bool WKPreferencesGetHiddenPageCSSAnimationSuspensionEnabled(WKPreferencesRef preferences);
 
+// Defaults to false
+WK_EXPORT void WKPreferencesSetSnapshotAllPlugIns(WKPreferencesRef preferencesRef, bool enabled);
+WK_EXPORT bool WKPreferencesGetSnapshotAllPlugIns(WKPreferencesRef preferencesRef);
+
+// Defaults to true
+WK_EXPORT void WKPreferencesSetAutostartOriginPlugInSnapshottingEnabled(WKPreferencesRef preferencesRef, bool enabled);
+WK_EXPORT bool WKPreferencesGetAutostartOriginPlugInSnapshottingEnabled(WKPreferencesRef preferencesRef);
+
+// Defaults to true
+WK_EXPORT void WKPreferencesSetPrimaryPlugInSnapshotDetectionEnabled(WKPreferencesRef preferencesRef, bool enabled);
+WK_EXPORT bool WKPreferencesGetPrimaryPlugInSnapshotDetectionEnabled(WKPreferencesRef preferencesRef);
+
 WK_EXPORT void WKPreferencesResetTestRunnerOverrides(WKPreferencesRef preferencesRef);
 
 #ifdef __cplusplus

Modified: tags/Safari-537.35.10/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (147924 => 147925)


--- tags/Safari-537.35.10/Source/WebKit2/WebProcess/WebPage/WebPage.cpp	2013-04-08 17:20:32 UTC (rev 147924)
+++ tags/Safari-537.35.10/Source/WebKit2/WebProcess/WebPage/WebPage.cpp	2013-04-08 17:22:30 UTC (rev 147925)
@@ -2422,6 +2422,9 @@
     settings->setScrollingPerformanceLoggingEnabled(m_scrollingPerformanceLoggingEnabled);
 
     settings->setPlugInSnapshottingEnabled(store.getBoolValueForKey(WebPreferencesKey::plugInSnapshottingEnabledKey()));
+    settings->setSnapshotAllPlugIns(store.getBoolValueForKey(WebPreferencesKey::snapshotAllPlugInsKey()));
+    settings->setAutostartOriginPlugInSnapshottingEnabled(store.getBoolValueForKey(WebPreferencesKey::autostartOriginPlugInSnapshottingEnabledKey()));
+    settings->setPrimaryPlugInSnapshotDetectionEnabled(store.getBoolValueForKey(WebPreferencesKey::primaryPlugInSnapshotDetectionEnabledKey()));
     settings->setUsesEncodingDetector(store.getBoolValueForKey(WebPreferencesKey::usesEncodingDetectorKey()));
 
 #if ENABLE(TEXT_AUTOSIZING)
@@ -2926,7 +2929,8 @@
 
     m_pluginViews.add(pluginView);
 #if ENABLE(PRIMARY_SNAPSHOTTED_PLUGIN_HEURISTIC)
-    determinePrimarySnapshottedPlugIn();
+    if (!m_page->settings()->snapshotAllPlugIns() && m_page->settings()->primaryPlugInSnapshotDetectionEnabled())
+        determinePrimarySnapshottedPlugIn();
 #endif
 }
 
@@ -3903,7 +3907,8 @@
 {
 #if ENABLE(PRIMARY_SNAPSHOTTED_PLUGIN_HEURISTIC)
     m_readyToFindPrimarySnapshottedPlugin = true;
-    determinePrimarySnapshottedPlugIn();
+    if (!m_page->settings()->snapshotAllPlugIns() && m_page->settings()->primaryPlugInSnapshotDetectionEnabled())
+        determinePrimarySnapshottedPlugIn();
 #endif
 }
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to