Title: [138983] trunk
Revision
138983
Author
[email protected]
Date
2013-01-07 13:45:42 -0800 (Mon, 07 Jan 2013)

Log Message

Make the IFRAME_SEAMLESS flag runtime-enabled.
https://bugs.webkit.org/show_bug.cgi?id=106213

Reviewed by Ojan Vafai.

Source/WebCore:

Seamless IFrames live behind the IFRAME_SEAMLESS compile-time flag, this
patch adds another layer to that in order to enable runtime decisions
about when it should be active. This will allow ports (Chromium, for
instance) to toggle the feature on/off for particular builds without
recompiling from scratch.

* WebCore.exp.in:
* bindings/generic/RuntimeEnabledFeatures.cpp:
(WebCore):
* bindings/generic/RuntimeEnabledFeatures.h:
(RuntimeEnabledFeatures):
(WebCore::RuntimeEnabledFeatures::seamlessIFramesEnabled):
(WebCore::RuntimeEnabledFeatures::setSeamlessIFramesEnabled):
    Add seamless IFrames to the set of runtime controlled features.
* dom/Document.cpp:
(WebCore::Document::shouldDisplaySeamlesslyWithParent):
    If seamless IFrames aren't runtime enabled, always return false from
    Document::shouldDisplaySeamlesslyWithParent. As this method already
    acts as the single gate that controls the rest of the system, it's
    the only place we need to make the runtime check.

Source/WebKit/chromium:

* public/WebRuntimeFeatures.h:
(WebRuntimeFeatures):
* src/WebRuntimeFeatures.cpp:
(WebKit::WebRuntimeFeatures::enableSeamlessIFrames):
(WebKit):
(WebKit::WebRuntimeFeatures::areSeamlessIFramesEnabled):
    Expose the new runtime feature to the Chromium port.

Source/WebKit/efl:

* WebCoreSupport/DumpRenderTreeSupportEfl.cpp:
(DumpRenderTreeSupportEfl::setSeamlessIFramesEnabled):
* WebCoreSupport/DumpRenderTreeSupportEfl.h:
* ewk/ewk_view.cpp:
(_ewk_view_priv_new):
    Add a toggle for seamless IFrames to EFL's DRTSuport.

Source/WebKit/gtk:

* WebCoreSupport/DumpRenderTreeSupportGtk.cpp:
* WebCoreSupport/DumpRenderTreeSupportGtk.h:
(DumpRenderTreeSupportGtk):
    Add a toggle for seamless IFrames to GTK's DRTSuport.

Source/WebKit/mac:

* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.mm:
(-[WebPreferences seamlessIFramesEnabled]):
(-[WebPreferences setSeamlessIFramesEnabled:]):
* WebView/WebPreferencesPrivate.h:
* WebView/WebView.mm:
(-[WebView _preferencesChanged:]):
    Add a seamless IFrame preference to WebPreferences, and use it to
    toggle the runtime state of the feature as appropriate.

Source/WebKit/qt:

* WebCoreSupport/DumpRenderTreeSupportQt.cpp:
(DumpRenderTreeSupportQt::setSeamlessIFramesEnabled):
* WebCoreSupport/DumpRenderTreeSupportQt.h:
    Add a toggle for seamless IFrames to QT's DRTSuport.

Source/WebKit2:

* WebProcess/InjectedBundle/API/c/WKBundle.cpp:
(WKBundleSetSeamlessIFramesEnabled):
* WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::setSeamlessIFramesEnabled):
(WebKit):
* WebProcess/InjectedBundle/InjectedBundle.h:
(InjectedBundle):
    Add a toggle for seamless IFrames to InjectedBundle, and set it to
    true when beginning testing.

Tools:

* DumpRenderTree/chromium/TestShell.cpp:
(TestShell::TestShell):
* DumpRenderTree/efl/DumpRenderTreeChrome.cpp:
(DumpRenderTreeChrome::resetDefaultsToConsistentValues):
* DumpRenderTree/gtk/DumpRenderTree.cpp:
(resetDefaultsToConsistentValues):
* DumpRenderTree/mac/DumpRenderTree.mm:
(resetDefaultsToConsistentValues):
* DumpRenderTree/qt/DumpRenderTreeQt.cpp:
(WebCore::WebPage::resetSettings):
* WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::beginTesting):
    Ensure that seamless IFrames are enabled for layout tests in each of
    the ports that support seamless IFrames.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (138982 => 138983)


--- trunk/Source/WebCore/ChangeLog	2013-01-07 21:34:23 UTC (rev 138982)
+++ trunk/Source/WebCore/ChangeLog	2013-01-07 21:45:42 UTC (rev 138983)
@@ -1,3 +1,31 @@
+2013-01-07  Mike West  <[email protected]>
+
+        Make the IFRAME_SEAMLESS flag runtime-enabled.
+        https://bugs.webkit.org/show_bug.cgi?id=106213
+
+        Reviewed by Ojan Vafai.
+
+        Seamless IFrames live behind the IFRAME_SEAMLESS compile-time flag, this
+        patch adds another layer to that in order to enable runtime decisions
+        about when it should be active. This will allow ports (Chromium, for
+        instance) to toggle the feature on/off for particular builds without
+        recompiling from scratch.
+
+        * WebCore.exp.in:
+        * bindings/generic/RuntimeEnabledFeatures.cpp:
+        (WebCore):
+        * bindings/generic/RuntimeEnabledFeatures.h:
+        (RuntimeEnabledFeatures):
+        (WebCore::RuntimeEnabledFeatures::seamlessIFramesEnabled):
+        (WebCore::RuntimeEnabledFeatures::setSeamlessIFramesEnabled):
+            Add seamless IFrames to the set of runtime controlled features.
+        * dom/Document.cpp:
+        (WebCore::Document::shouldDisplaySeamlesslyWithParent):
+            If seamless IFrames aren't runtime enabled, always return false from
+            Document::shouldDisplaySeamlesslyWithParent. As this method already
+            acts as the single gate that controls the rest of the system, it's
+            the only place we need to make the runtime check.
+
 2013-01-07  Eric Carlson  <[email protected]>
 
         LayoutUnit(unsigned long long value) compile failure

Modified: trunk/Source/WebCore/WebCore.exp.in (138982 => 138983)


--- trunk/Source/WebCore/WebCore.exp.in	2013-01-07 21:34:23 UTC (rev 138982)
+++ trunk/Source/WebCore/WebCore.exp.in	2013-01-07 21:45:42 UTC (rev 138983)
@@ -2714,3 +2714,7 @@
 #if ENABLE(CSS_REGIONS)
 __ZN7WebCore22RuntimeEnabledFeatures19isCSSRegionsEnabledE
 #endif
+
+#if ENABLE(IFRAME_SEAMLESS)
+__ZN7WebCore22RuntimeEnabledFeatures25areSeamlessIFramesEnabledE
+#endif

Modified: trunk/Source/WebCore/bindings/generic/RuntimeEnabledFeatures.cpp (138982 => 138983)


--- trunk/Source/WebCore/bindings/generic/RuntimeEnabledFeatures.cpp	2013-01-07 21:34:23 UTC (rev 138982)
+++ trunk/Source/WebCore/bindings/generic/RuntimeEnabledFeatures.cpp	2013-01-07 21:45:42 UTC (rev 138983)
@@ -233,6 +233,10 @@
 bool RuntimeEnabledFeatures::areExperimentalContentSecurityPolicyFeaturesEnabled = false;
 #endif
 
+#if ENABLE(IFRAME_SEAMLESS)
+bool RuntimeEnabledFeatures::areSeamlessIFramesEnabled = false;
+#endif
+
 #if ENABLE(WEB_INTENTS)
 bool RuntimeEnabledFeatures::isWebIntentsEnabled = true;
 #endif

Modified: trunk/Source/WebCore/bindings/generic/RuntimeEnabledFeatures.h (138982 => 138983)


--- trunk/Source/WebCore/bindings/generic/RuntimeEnabledFeatures.h	2013-01-07 21:34:23 UTC (rev 138982)
+++ trunk/Source/WebCore/bindings/generic/RuntimeEnabledFeatures.h	2013-01-07 21:45:42 UTC (rev 138983)
@@ -255,6 +255,11 @@
     static void setExperimentalContentSecurityPolicyFeaturesEnabled(bool isEnabled) { areExperimentalContentSecurityPolicyFeaturesEnabled = isEnabled; }
 #endif
 
+#if ENABLE(IFRAME_SEAMLESS)
+    static bool seamlessIFramesEnabled() { return areSeamlessIFramesEnabled; }
+    static void setSeamlessIFramesEnabled(bool isEnabled) { areSeamlessIFramesEnabled = isEnabled; }
+#endif
+
     static bool langAttributeAwareFormControlUIEnabled() { return isLangAttributeAwareFormControlUIEnabled; }
     // The lang attribute support is incomplete and should only be turned on for tests.
     static void setLangAttributeAwareFormControlUIEnabled(bool isEnabled) { isLangAttributeAwareFormControlUIEnabled = isEnabled; }
@@ -376,6 +381,10 @@
     static bool areExperimentalContentSecurityPolicyFeaturesEnabled;
 #endif
 
+#if ENABLE(IFRAME_SEAMLESS)
+    static bool areSeamlessIFramesEnabled;
+#endif
+
 #if ENABLE(WEB_INTENTS)
     static bool isWebIntentsEnabled;
 #endif

Modified: trunk/Source/WebCore/dom/Document.cpp (138982 => 138983)


--- trunk/Source/WebCore/dom/Document.cpp	2013-01-07 21:34:23 UTC (rev 138982)
+++ trunk/Source/WebCore/dom/Document.cpp	2013-01-07 21:45:42 UTC (rev 138983)
@@ -5661,6 +5661,8 @@
 bool Document::shouldDisplaySeamlesslyWithParent() const
 {
 #if ENABLE(IFRAME_SEAMLESS)
+    if (!RuntimeEnabledFeatures::seamlessIFramesEnabled())
+        return false;
     HTMLFrameOwnerElement* ownerElement = this->ownerElement();
     if (!ownerElement)
         return false;

Modified: trunk/Source/WebKit/chromium/ChangeLog (138982 => 138983)


--- trunk/Source/WebKit/chromium/ChangeLog	2013-01-07 21:34:23 UTC (rev 138982)
+++ trunk/Source/WebKit/chromium/ChangeLog	2013-01-07 21:45:42 UTC (rev 138983)
@@ -1,3 +1,18 @@
+2013-01-07  Mike West  <[email protected]>
+
+        Make the IFRAME_SEAMLESS flag runtime-enabled.
+        https://bugs.webkit.org/show_bug.cgi?id=106213
+
+        Reviewed by Ojan Vafai.
+
+        * public/WebRuntimeFeatures.h:
+        (WebRuntimeFeatures):
+        * src/WebRuntimeFeatures.cpp:
+        (WebKit::WebRuntimeFeatures::enableSeamlessIFrames):
+        (WebKit):
+        (WebKit::WebRuntimeFeatures::areSeamlessIFramesEnabled):
+            Expose the new runtime feature to the Chromium port.
+
 2013-01-07  Alec Flett  <[email protected]>
 
         IndexedDB: Stub out async IDBDatabaseBackendInterface::createObjectStore

Modified: trunk/Source/WebKit/chromium/public/WebRuntimeFeatures.h (138982 => 138983)


--- trunk/Source/WebKit/chromium/public/WebRuntimeFeatures.h	2013-01-07 21:34:23 UTC (rev 138982)
+++ trunk/Source/WebKit/chromium/public/WebRuntimeFeatures.h	2013-01-07 21:45:42 UTC (rev 138983)
@@ -161,6 +161,9 @@
     WEBKIT_EXPORT static void enableExperimentalContentSecurityPolicyFeatures(bool);
     WEBKIT_EXPORT static bool isExperimentalContentSecurityPolicyFeaturesEnabled();
 
+    WEBKIT_EXPORT static void enableSeamlessIFrames(bool);
+    WEBKIT_EXPORT static bool areSeamlessIFramesEnabled();
+
     WEBKIT_EXPORT static void enableWebIntents(bool);
     WEBKIT_EXPORT static bool isWebIntentsEnabled();
 

Modified: trunk/Source/WebKit/chromium/src/WebRuntimeFeatures.cpp (138982 => 138983)


--- trunk/Source/WebKit/chromium/src/WebRuntimeFeatures.cpp	2013-01-07 21:34:23 UTC (rev 138982)
+++ trunk/Source/WebKit/chromium/src/WebRuntimeFeatures.cpp	2013-01-07 21:45:42 UTC (rev 138983)
@@ -629,6 +629,24 @@
 #endif
 }
 
+void WebRuntimeFeatures::enableSeamlessIFrames(bool enable)
+{
+#if ENABLE(IFRAME_SEAMLESS)
+    return RuntimeEnabledFeatures::setSeamlessIFramesEnabled(enable);
+#else
+    UNUSED_PARAM(enable);
+#endif
+}
+
+bool WebRuntimeFeatures::areSeamlessIFramesEnabled()
+{
+#if ENABLE(IFRAME_SEAMLESS)
+    return RuntimeEnabledFeatures::seamlessIFramesEnabled();
+#else
+    return false;
+#endif
+}
+
 void WebRuntimeFeatures::enableCSSExclusions(bool enable)
 {
     RuntimeEnabledFeatures::setCSSExclusionsEnabled(enable);

Modified: trunk/Source/WebKit/efl/ChangeLog (138982 => 138983)


--- trunk/Source/WebKit/efl/ChangeLog	2013-01-07 21:34:23 UTC (rev 138982)
+++ trunk/Source/WebKit/efl/ChangeLog	2013-01-07 21:45:42 UTC (rev 138983)
@@ -1,3 +1,17 @@
+2013-01-07  Mike West  <[email protected]>
+
+        Make the IFRAME_SEAMLESS flag runtime-enabled.
+        https://bugs.webkit.org/show_bug.cgi?id=106213
+
+        Reviewed by Ojan Vafai.
+
+        * WebCoreSupport/DumpRenderTreeSupportEfl.cpp:
+        (DumpRenderTreeSupportEfl::setSeamlessIFramesEnabled):
+        * WebCoreSupport/DumpRenderTreeSupportEfl.h:
+        * ewk/ewk_view.cpp:
+        (_ewk_view_priv_new):
+            Add a toggle for seamless IFrames to EFL's DRTSuport.
+
 2013-01-04  Adam Klein  <[email protected]>
 
         Remove ENABLE_MUTATION_OBSERVERS #define

Modified: trunk/Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.cpp (138982 => 138983)


--- trunk/Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.cpp	2013-01-07 21:34:23 UTC (rev 138982)
+++ trunk/Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.cpp	2013-01-07 21:45:42 UTC (rev 138983)
@@ -372,6 +372,11 @@
     WebCore::RuntimeEnabledFeatures::setCSSRegionsEnabled(enabled);
 }
 
+void DumpRenderTreeSupportEfl::setSeamlessIFramesEnabled(bool enabled)
+{
+    WebCore::RuntimeEnabledFeatures::setSeamlessIFramesEnabled(enabled);
+}
+
 bool DumpRenderTreeSupportEfl::isCommandEnabled(const Evas_Object* ewkView, const char* name)
 {
     DRT_SUPPRT_PAGE_GET_OR_RETURN(ewkView, page, false);

Modified: trunk/Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.h (138982 => 138983)


--- trunk/Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.h	2013-01-07 21:34:23 UTC (rev 138982)
+++ trunk/Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.h	2013-01-07 21:45:42 UTC (rev 138983)
@@ -85,6 +85,7 @@
     static void setCSSRegionsEnabled(const Evas_Object* ewkView, bool enabled);
     static void setSmartInsertDeleteEnabled(Evas_Object* ewkView, bool enabled);
     static void setSelectTrailingWhitespaceEnabled(Evas_Object* ewkView, bool enabled);
+    static void setSeamlessIFramesEnabled(bool);
 
     static void forceLayout(Evas_Object* ewkFrame);
     static void setTracksRepaints(Evas_Object* ewkFrame, bool enabled);

Modified: trunk/Source/WebKit/efl/ewk/ewk_view.cpp (138982 => 138983)


--- trunk/Source/WebKit/efl/ewk/ewk_view.cpp	2013-01-07 21:34:23 UTC (rev 138982)
+++ trunk/Source/WebKit/efl/ewk/ewk_view.cpp	2013-01-07 21:45:42 UTC (rev 138983)
@@ -820,6 +820,7 @@
     priv->pageSettings->setStandardFontFamily("sans");
     priv->pageSettings->setHyperlinkAuditingEnabled(false);
     WebCore::RuntimeEnabledFeatures::setCSSRegionsEnabled(true);
+    WebCore::RuntimeEnabledFeatures::setSeamlessIFramesEnabled(true);
     priv->pageSettings->setScriptEnabled(true);
     priv->pageSettings->setPluginsEnabled(true);
     priv->pageSettings->setLocalStorageEnabled(true);

Modified: trunk/Source/WebKit/gtk/ChangeLog (138982 => 138983)


--- trunk/Source/WebKit/gtk/ChangeLog	2013-01-07 21:34:23 UTC (rev 138982)
+++ trunk/Source/WebKit/gtk/ChangeLog	2013-01-07 21:45:42 UTC (rev 138983)
@@ -1,3 +1,15 @@
+2013-01-07  Mike West  <[email protected]>
+
+        Make the IFRAME_SEAMLESS flag runtime-enabled.
+        https://bugs.webkit.org/show_bug.cgi?id=106213
+
+        Reviewed by Ojan Vafai.
+
+        * WebCoreSupport/DumpRenderTreeSupportGtk.cpp:
+        * WebCoreSupport/DumpRenderTreeSupportGtk.h:
+        (DumpRenderTreeSupportGtk):
+            Add a toggle for seamless IFrames to GTK's DRTSuport.
+
 2013-01-04  Adam Klein  <[email protected]>
 
         Remove ENABLE_MUTATION_OBSERVERS #define

Modified: trunk/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp (138982 => 138983)


--- trunk/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp	2013-01-07 21:34:23 UTC (rev 138982)
+++ trunk/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp	2013-01-07 21:45:42 UTC (rev 138983)
@@ -709,6 +709,13 @@
 #endif
 }
 
+void DumpRenderTreeSupportGtk::setSeamlessIFramesEnabled(bool enabled)
+{
+#if ENABLE(IFRAME_SEAMLESS)
+    RuntimeEnabledFeatures::setSeamlessIFramesEnabled(enabled);
+#endif
+}
+
 void DumpRenderTreeSupportGtk::setShadowDOMEnabled(bool enabled)
 {
 #if ENABLE(SHADOW_DOM)

Modified: trunk/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.h (138982 => 138983)


--- trunk/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.h	2013-01-07 21:34:23 UTC (rev 138982)
+++ trunk/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.h	2013-01-07 21:45:42 UTC (rev 138983)
@@ -120,6 +120,7 @@
     static void setCSSRegionsEnabled(WebKitWebView*, bool enabled);
     static void setCSSCustomFilterEnabled(WebKitWebView*, bool enabled);
     static void setExperimentalContentSecurityPolicyFeaturesEnabled(bool);
+    static void setSeamlessIFramesEnabled(bool);
     static void setShadowDOMEnabled(bool);
     static void setStyleScopedEnabled(bool);
 

Modified: trunk/Source/WebKit/mac/ChangeLog (138982 => 138983)


--- trunk/Source/WebKit/mac/ChangeLog	2013-01-07 21:34:23 UTC (rev 138982)
+++ trunk/Source/WebKit/mac/ChangeLog	2013-01-07 21:45:42 UTC (rev 138983)
@@ -1,3 +1,20 @@
+2013-01-07  Mike West  <[email protected]>
+
+        Make the IFRAME_SEAMLESS flag runtime-enabled.
+        https://bugs.webkit.org/show_bug.cgi?id=106213
+
+        Reviewed by Ojan Vafai.
+
+        * WebView/WebPreferenceKeysPrivate.h:
+        * WebView/WebPreferences.mm:
+        (-[WebPreferences seamlessIFramesEnabled]):
+        (-[WebPreferences setSeamlessIFramesEnabled:]):
+        * WebView/WebPreferencesPrivate.h:
+        * WebView/WebView.mm:
+        (-[WebView _preferencesChanged:]):
+            Add a seamless IFrame preference to WebPreferences, and use it to
+            toggle the runtime state of the feature as appropriate.
+
 2013-01-04  Adam Klein  <[email protected]>
 
         Remove ENABLE_MUTATION_OBSERVERS #define

Modified: trunk/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h (138982 => 138983)


--- trunk/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h	2013-01-07 21:34:23 UTC (rev 138982)
+++ trunk/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h	2013-01-07 21:45:42 UTC (rev 138983)
@@ -116,6 +116,7 @@
 #define WebKitMediaPlaybackRequiresUserGesturePreferenceKey @"WebKitMediaPlaybackRequiresUserGesture"
 #define WebKitMediaPlaybackAllowsInlinePreferenceKey @"WebKitMediaPlaybackAllowsInline"
 #define WebKitMockScrollbarsEnabledPreferenceKey @"WebKitMockScrollbarsEnabled"
+#define WebKitSeamlessIFramesEnabledPreferenceKey @"WebKitSeamlessIFramesEnabled"
 #define WebKitShouldDisplaySubtitlesPreferenceKey @"WebKitShouldDisplaySubtitles"
 #define WebKitShouldDisplayCaptionsPreferenceKey @"WebKitShouldDisplayCaptions"
 #define WebKitShouldDisplayTextDescriptionsPreferenceKey @"WebKitShouldDisplayTextDescriptions"

Modified: trunk/Source/WebKit/mac/WebView/WebPreferences.mm (138982 => 138983)


--- trunk/Source/WebKit/mac/WebView/WebPreferences.mm	2013-01-07 21:34:23 UTC (rev 138982)
+++ trunk/Source/WebKit/mac/WebView/WebPreferences.mm	2013-01-07 21:45:42 UTC (rev 138983)
@@ -1617,6 +1617,16 @@
     [self _setBoolValue:flag forKey:WebKitMockScrollbarsEnabledPreferenceKey];
 }
 
+- (BOOL)seamlessIFramesEnabled
+{
+    return [self _boolValueForKey:WebKitSeamlessIFramesEnabledPreferenceKey];
+}
+
+- (void)setSeamlessIFramesEnabled:(BOOL)flag
+{
+    [self _setBoolValue:flag forKey:WebKitSeamlessIFramesEnabledPreferenceKey];
+}
+
 - (NSString *)pictographFontFamily
 {
     return [self _stringValueForKey: WebKitPictographFontPreferenceKey];

Modified: trunk/Source/WebKit/mac/WebView/WebPreferencesPrivate.h (138982 => 138983)


--- trunk/Source/WebKit/mac/WebView/WebPreferencesPrivate.h	2013-01-07 21:34:23 UTC (rev 138982)
+++ trunk/Source/WebKit/mac/WebView/WebPreferencesPrivate.h	2013-01-07 21:45:42 UTC (rev 138983)
@@ -236,6 +236,10 @@
 - (BOOL)mockScrollbarsEnabled;
 - (void)setMockScrollbarsEnabled:(BOOL)flag;
 
+// This is a global setting.
+- (BOOL)seamlessIFramesEnabled;
+- (void)setSeamlessIFramesEnabled:(BOOL)enabled;
+
 // Other private methods
 - (void)_postPreferencesChangedNotification;
 - (void)_postPreferencesChangedAPINotification;

Modified: trunk/Source/WebKit/mac/WebView/WebView.mm (138982 => 138983)


--- trunk/Source/WebKit/mac/WebView/WebView.mm	2013-01-07 21:34:23 UTC (rev 138982)
+++ trunk/Source/WebKit/mac/WebView/WebView.mm	2013-01-07 21:45:42 UTC (rev 138983)
@@ -1515,6 +1515,9 @@
     settings->setCSSCustomFilterEnabled([preferences cssCustomFilterEnabled]);
 #endif
     RuntimeEnabledFeatures::setCSSRegionsEnabled([preferences cssRegionsEnabled]);
+#if ENABLE(IFRAME_SEAMLESS)
+    RuntimeEnabledFeatures::setSeamlessIFramesEnabled([preferences seamlessIFramesEnabled]);
+#endif
     settings->setCSSGridLayoutEnabled([preferences cssGridLayoutEnabled]);
 #if ENABLE(FULLSCREEN_API)
     settings->setFullScreenEnabled([preferences fullScreenEnabled]);

Modified: trunk/Source/WebKit/qt/ChangeLog (138982 => 138983)


--- trunk/Source/WebKit/qt/ChangeLog	2013-01-07 21:34:23 UTC (rev 138982)
+++ trunk/Source/WebKit/qt/ChangeLog	2013-01-07 21:45:42 UTC (rev 138983)
@@ -1,3 +1,15 @@
+2013-01-07  Mike West  <[email protected]>
+
+        Make the IFRAME_SEAMLESS flag runtime-enabled.
+        https://bugs.webkit.org/show_bug.cgi?id=106213
+
+        Reviewed by Ojan Vafai.
+
+        * WebCoreSupport/DumpRenderTreeSupportQt.cpp:
+        (DumpRenderTreeSupportQt::setSeamlessIFramesEnabled):
+        * WebCoreSupport/DumpRenderTreeSupportQt.h:
+            Add a toggle for seamless IFrames to QT's DRTSuport.
+
 2013-01-07  Michael BrĂ¼ning  <[email protected]>
 
         [Qt] Apply correct patch for the scrolling issue from bug 105014

Modified: trunk/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp (138982 => 138983)


--- trunk/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp	2013-01-07 21:34:23 UTC (rev 138982)
+++ trunk/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp	2013-01-07 21:45:42 UTC (rev 138983)
@@ -66,6 +66,7 @@
 #include "QWebPageAdapter.h"
 #include "RenderListItem.h"
 #include "RenderTreeAsText.h"
+#include "RuntimeEnabledFeatures.h"
 #include "SchemeRegistry.h"
 #include "ScriptController.h"
 #include "ScriptSourceCode.h"
@@ -1049,6 +1050,11 @@
         result.append(rects[i]);
 }
 
+void DumpRenderTreeSupportQt::setSeamlessIFramesEnabled(bool enabled)
+{
+    WebCore::RuntimeEnabledFeatures::setSeamlessIFramesEnabled(enabled);
+}
+
 QString DumpRenderTreeSupportQt::frameRenderTreeDump(QWebFrameAdapter* adapter)
 {
     if (adapter->frame->view() && adapter->frame->view()->layoutPending())

Modified: trunk/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h (138982 => 138983)


--- trunk/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h	2013-01-07 21:34:23 UTC (rev 138982)
+++ trunk/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h	2013-01-07 21:45:42 UTC (rev 138983)
@@ -214,6 +214,8 @@
     static bool trackRepaintRects(QWebFrameAdapter*);
     static void getTrackedRepaintRects(QWebFrameAdapter*, QVector<QRect>& result);
 
+    static void setSeamlessIFramesEnabled(bool);
+
     static QString frameRenderTreeDump(QWebFrameAdapter*);
 };
 

Modified: trunk/Source/WebKit2/ChangeLog (138982 => 138983)


--- trunk/Source/WebKit2/ChangeLog	2013-01-07 21:34:23 UTC (rev 138982)
+++ trunk/Source/WebKit2/ChangeLog	2013-01-07 21:45:42 UTC (rev 138983)
@@ -1,3 +1,21 @@
+2013-01-07  Mike West  <[email protected]>
+
+        Make the IFRAME_SEAMLESS flag runtime-enabled.
+        https://bugs.webkit.org/show_bug.cgi?id=106213
+
+        Reviewed by Ojan Vafai.
+
+        * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
+        (WKBundleSetSeamlessIFramesEnabled):
+        * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
+        * WebProcess/InjectedBundle/InjectedBundle.cpp:
+        (WebKit::InjectedBundle::setSeamlessIFramesEnabled):
+        (WebKit):
+        * WebProcess/InjectedBundle/InjectedBundle.h:
+        (InjectedBundle):
+            Add a toggle for seamless IFrames to InjectedBundle, and set it to
+            true when beginning testing.
+
 2013-01-07  Alexey Proskuryakov  <[email protected]>
 
         [WK2] Remove more obsolete shim code

Modified: trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundle.cpp (138982 => 138983)


--- trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundle.cpp	2013-01-07 21:34:23 UTC (rev 138982)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundle.cpp	2013-01-07 21:45:42 UTC (rev 138983)
@@ -346,6 +346,11 @@
     toImpl(bundleRef)->setShadowDOMEnabled(enabled);
 }
 
+void WKBundleSetSeamlessIFramesEnabled(WKBundleRef bundleRef, bool enabled)
+{
+    toImpl(bundleRef)->setSeamlessIFramesEnabled(enabled);
+}
+
 void WKBundleDispatchPendingLoadRequests(WKBundleRef bundleRef)
 {
     toImpl(bundleRef)->dispatchPendingLoadRequests();

Modified: trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePrivate.h (138982 => 138983)


--- trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePrivate.h	2013-01-07 21:34:23 UTC (rev 138982)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePrivate.h	2013-01-07 21:45:42 UTC (rev 138983)
@@ -105,6 +105,7 @@
 WK_EXPORT void WKBundleSetTabKeyCyclesThroughElements(WKBundleRef bundle, WKBundlePageRef page, bool enabled);
 WK_EXPORT void WKBundleSetSerialLoadingEnabled(WKBundleRef bundle, bool enabled);
 WK_EXPORT void WKBundleSetShadowDOMEnabled(WKBundleRef bundle, bool enabled);
+WK_EXPORT void WKBundleSetSeamlessIFramesEnabled(WKBundleRef bundle, bool enabled);
 WK_EXPORT void WKBundleDispatchPendingLoadRequests(WKBundleRef bundle);
 
 #ifdef __cplusplus

Modified: trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.cpp (138982 => 138983)


--- trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.cpp	2013-01-07 21:34:23 UTC (rev 138982)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.cpp	2013-01-07 21:45:42 UTC (rev 138983)
@@ -74,7 +74,7 @@
 #include <wtf/OwnArrayPtr.h>
 #include <wtf/PassOwnArrayPtr.h>
 
-#if ENABLE(SHADOW_DOM) || ENABLE(CSS_REGIONS)
+#if ENABLE(SHADOW_DOM) || ENABLE(CSS_REGIONS) || ENABLE(IFRAME_SEAMLESS)
 #include <WebCore/RuntimeEnabledFeatures.h>
 #endif
 
@@ -679,6 +679,15 @@
 #endif
 }
 
+void InjectedBundle::setSeamlessIFramesEnabled(bool enabled)
+{
+#if ENABLE(IFRAME_SEAMLESS)
+    RuntimeEnabledFeatures::setSeamlessIFramesEnabled(enabled);
+#else
+    UNUSED_PARAM(enabled);
+#endif
+}
+
 void InjectedBundle::dispatchPendingLoadRequests()
 {
     resourceLoadScheduler()->servePendingRequests();

Modified: trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.h (138982 => 138983)


--- trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.h	2013-01-07 21:34:23 UTC (rev 138982)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.h	2013-01-07 21:45:42 UTC (rev 138983)
@@ -183,6 +183,7 @@
     void setSerialLoadingEnabled(bool);
     void setShadowDOMEnabled(bool);
     void setCSSRegionsEnabled(bool);
+    void setSeamlessIFramesEnabled(bool);
     void dispatchPendingLoadRequests();
 
 private:

Modified: trunk/Tools/ChangeLog (138982 => 138983)


--- trunk/Tools/ChangeLog	2013-01-07 21:34:23 UTC (rev 138982)
+++ trunk/Tools/ChangeLog	2013-01-07 21:45:42 UTC (rev 138983)
@@ -1,3 +1,25 @@
+2013-01-07  Mike West  <[email protected]>
+
+        Make the IFRAME_SEAMLESS flag runtime-enabled.
+        https://bugs.webkit.org/show_bug.cgi?id=106213
+
+        Reviewed by Ojan Vafai.
+
+        * DumpRenderTree/chromium/TestShell.cpp:
+        (TestShell::TestShell):
+        * DumpRenderTree/efl/DumpRenderTreeChrome.cpp:
+        (DumpRenderTreeChrome::resetDefaultsToConsistentValues):
+        * DumpRenderTree/gtk/DumpRenderTree.cpp:
+        (resetDefaultsToConsistentValues):
+        * DumpRenderTree/mac/DumpRenderTree.mm:
+        (resetDefaultsToConsistentValues):
+        * DumpRenderTree/qt/DumpRenderTreeQt.cpp:
+        (WebCore::WebPage::resetSettings):
+        * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
+        (WTR::InjectedBundle::beginTesting):
+            Ensure that seamless IFrames are enabled for layout tests in each of
+            the ports that support seamless IFrames.
+
 2013-01-07  Jochen Eisinger  <[email protected]>
 
         [chromium] move dumpAsText and friends to the TestRunner library

Modified: trunk/Tools/DumpRenderTree/chromium/TestShell.cpp (138982 => 138983)


--- trunk/Tools/DumpRenderTree/chromium/TestShell.cpp	2013-01-07 21:34:23 UTC (rev 138982)
+++ trunk/Tools/DumpRenderTree/chromium/TestShell.cpp	2013-01-07 21:45:42 UTC (rev 138983)
@@ -150,6 +150,7 @@
     WebRuntimeFeatures::enableScriptedSpeech(true);
     WebRuntimeFeatures::enableRequestAutocomplete(true);
     WebRuntimeFeatures::enableExperimentalContentSecurityPolicyFeatures(true);
+    WebRuntimeFeatures::enableSeamlessIFrames(true);
 
     // 30 second is the same as the value in Mac DRT.
     // If we use a value smaller than the timeout value of

Modified: trunk/Tools/DumpRenderTree/efl/DumpRenderTreeChrome.cpp (138982 => 138983)


--- trunk/Tools/DumpRenderTree/efl/DumpRenderTreeChrome.cpp	2013-01-07 21:34:23 UTC (rev 138982)
+++ trunk/Tools/DumpRenderTree/efl/DumpRenderTreeChrome.cpp	2013-01-07 21:45:42 UTC (rev 138983)
@@ -324,6 +324,7 @@
     DumpRenderTreeSupportEfl::setCSSRegionsEnabled(mainView(), true);
     DumpRenderTreeSupportEfl::setShouldTrackVisitedLinks(false);
     DumpRenderTreeSupportEfl::setTracksRepaints(mainFrame(), false);
+    DumpRenderTreeSupportEfl::setSeamlessIFramesEnabled(true);
 
     // Reset capacities for the memory cache for dead objects.
     static const unsigned cacheTotalCapacity =  8192 * 1024;

Modified: trunk/Tools/DumpRenderTree/gtk/DumpRenderTree.cpp (138982 => 138983)


--- trunk/Tools/DumpRenderTree/gtk/DumpRenderTree.cpp	2013-01-07 21:34:23 UTC (rev 138982)
+++ trunk/Tools/DumpRenderTree/gtk/DumpRenderTree.cpp	2013-01-07 21:45:42 UTC (rev 138983)
@@ -518,6 +518,7 @@
     DumpRenderTreeSupportGtk::setCSSRegionsEnabled(webView, true);
     DumpRenderTreeSupportGtk::setCSSCustomFilterEnabled(webView, false);
     DumpRenderTreeSupportGtk::setExperimentalContentSecurityPolicyFeaturesEnabled(true);
+    DumpRenderTreeSupportGtk::setSeamlessIFramesEnabled(true);
     DumpRenderTreeSupportGtk::setShadowDOMEnabled(true);
     DumpRenderTreeSupportGtk::setStyleScopedEnabled(true);
 

Modified: trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm (138982 => 138983)


--- trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm	2013-01-07 21:34:23 UTC (rev 138982)
+++ trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm	2013-01-07 21:45:42 UTC (rev 138983)
@@ -679,6 +679,7 @@
     [preferences setUsePreHTML5ParserQuirks:NO];
     [preferences setAsynchronousSpellCheckingEnabled:NO];
     [preferences setMockScrollbarsEnabled:YES];
+    [preferences setSeamlessIFramesEnabled:YES];
 
 #if ENABLE(WEB_AUDIO)
     [preferences setWebAudioEnabled:YES];

Modified: trunk/Tools/DumpRenderTree/qt/DumpRenderTreeQt.cpp (138982 => 138983)


--- trunk/Tools/DumpRenderTree/qt/DumpRenderTreeQt.cpp	2013-01-07 21:34:23 UTC (rev 138982)
+++ trunk/Tools/DumpRenderTree/qt/DumpRenderTreeQt.cpp	2013-01-07 21:45:42 UTC (rev 138983)
@@ -203,6 +203,8 @@
     QWebSettings::setMaximumPagesInCache(0); // reset to default
     settings()->setUserStyleSheetUrl(QUrl()); // reset to default
 
+    DumpRenderTreeSupportQt::setSeamlessIFramesEnabled(true);
+
     DumpRenderTreeSupportQt::setMinimumTimerInterval(handle(), DumpRenderTreeSupportQt::defaultMinimumTimerInterval());
 
     DumpRenderTreeSupportQt::resetInternalsObject(mainFrame()->handle());

Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp (138982 => 138983)


--- trunk/Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp	2013-01-07 21:34:23 UTC (rev 138982)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp	2013-01-07 21:45:42 UTC (rev 138983)
@@ -254,6 +254,7 @@
     WKBundleSetAlwaysAcceptCookies(m_bundle, false);
     WKBundleSetSerialLoadingEnabled(m_bundle, false);
     WKBundleSetShadowDOMEnabled(m_bundle, true);
+    WKBundleSetSeamlessIFramesEnabled(m_bundle, true);
     WKBundleSetCacheModel(m_bundle, 1 /*CacheModelDocumentBrowser*/);
 
     WKBundleRemoveAllUserContent(m_bundle, m_pageGroup);
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to