Title: [132478] trunk
Revision
132478
Author
mnaga...@chromium.org
Date
2012-10-25 06:20:32 -0700 (Thu, 25 Oct 2012)

Log Message

[Chromium] Add supportMultipleWindows setting, needed for Android
https://bugs.webkit.org/show_bug.cgi?id=99716

Reviewed by Adam Barth.

Add supportMultipleWindows settings for reusing the same view when
opening popups. This is required for emulating the behavior of
Android WebView. Adding into WebCore, as other ports might want to
use this setting in the future.

Source/WebCore:

Tests: fast/dom/HTMLAnchorElement/anchor-no-multiple-windows.html
       fast/dom/Window/window-open-no-multiple-windows.html
       fast/forms/post-popup-no-multiple-windows.html

* loader/FrameLoader.cpp:
(WebCore::createWindow):
* page/ContextMenuController.cpp:
(WebCore::openNewWindow):
* page/Settings.cpp:
(WebCore::Settings::Settings):
(WebCore::Settings::setSupportsMultipleWindows):
(WebCore):
* page/Settings.h:
(Settings):
(WebCore::Settings::supportsMultipleWindows):

Source/WebKit/chromium:

* public/WebSettings.h:
* src/FrameLoaderClientImpl.cpp:
(WebKit::FrameLoaderClientImpl::dispatchCreatePage):
* src/WebSettingsImpl.cpp:
(WebKit::WebSettingsImpl::setSupportsMultipleWindows):
(WebKit):
* src/WebSettingsImpl.h:
(WebSettingsImpl):

Tools:

* DumpRenderTree/chromium/DRTTestRunner.cpp:
(DRTTestRunner::overridePreference):
* DumpRenderTree/chromium/WebPreferences.cpp:
(WebPreferences::reset):
(WebPreferences::applyTo):
* DumpRenderTree/chromium/WebPreferences.h:
(WebPreferences):

LayoutTests:

* fast/dom/HTMLAnchorElement/anchor-no-multiple-windows-expected.txt: Added.
* fast/dom/HTMLAnchorElement/anchor-no-multiple-windows.html: Added.
* fast/dom/Window/window-open-no-multiple-windows-expected.txt: Added.
* fast/dom/Window/window-open-no-multiple-windows.html: Added.
* fast/forms/post-popup-no-multiple-windows-expected.txt: Added.
* fast/forms/post-popup-no-multiple-windows.html: Added.
* platform/chromium/fast/dom/HTMLAnchorElement/anchor-no-multiple-windows-expected.txt: Added.
* platform/chromium/fast/dom/Window/window-open-no-multiple-windows-expected.txt: Added.
* platform/chromium/fast/forms/post-popup-no-multiple-windows-expected.txt: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (132477 => 132478)


--- trunk/LayoutTests/ChangeLog	2012-10-25 13:05:04 UTC (rev 132477)
+++ trunk/LayoutTests/ChangeLog	2012-10-25 13:20:32 UTC (rev 132478)
@@ -1,3 +1,25 @@
+2012-10-22  Mikhail Naganov  <mnaga...@chromium.org>
+
+        [Chromium] Add supportMultipleWindows setting, needed for Android
+        https://bugs.webkit.org/show_bug.cgi?id=99716
+
+        Reviewed by Adam Barth.
+
+        Add supportMultipleWindows settings for reusing the same view when
+        opening popups. This is required for emulating the behavior of
+        Android WebView. Adding into WebCore, as other ports might want to
+        use this setting in the future.
+
+        * fast/dom/HTMLAnchorElement/anchor-no-multiple-windows-expected.txt: Added.
+        * fast/dom/HTMLAnchorElement/anchor-no-multiple-windows.html: Added.
+        * fast/dom/Window/window-open-no-multiple-windows-expected.txt: Added.
+        * fast/dom/Window/window-open-no-multiple-windows.html: Added.
+        * fast/forms/post-popup-no-multiple-windows-expected.txt: Added.
+        * fast/forms/post-popup-no-multiple-windows.html: Added.
+        * platform/chromium/fast/dom/HTMLAnchorElement/anchor-no-multiple-windows-expected.txt: Added.
+        * platform/chromium/fast/dom/Window/window-open-no-multiple-windows-expected.txt: Added.
+        * platform/chromium/fast/forms/post-popup-no-multiple-windows-expected.txt: Added.
+
 2012-10-25  Florin Malita  <fmal...@chromium.org>
 
         [Chromium] Unreviewed rebaseline after https://bugs.webkit.org/show_bug.cgi?id=99874.

Added: trunk/LayoutTests/fast/dom/HTMLAnchorElement/anchor-no-multiple-windows-expected.txt (0 => 132478)


--- trunk/LayoutTests/fast/dom/HTMLAnchorElement/anchor-no-multiple-windows-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/dom/HTMLAnchorElement/anchor-no-multiple-windows-expected.txt	2012-10-25 13:20:32 UTC (rev 132478)
@@ -0,0 +1 @@
+FAIL: Popup opened in a new window
Property changes on: trunk/LayoutTests/fast/dom/HTMLAnchorElement/anchor-no-multiple-windows-expected.txt
___________________________________________________________________

Added: svn:eol-style

Added: trunk/LayoutTests/fast/dom/HTMLAnchorElement/anchor-no-multiple-windows.html (0 => 132478)


--- trunk/LayoutTests/fast/dom/HTMLAnchorElement/anchor-no-multiple-windows.html	                        (rev 0)
+++ trunk/LayoutTests/fast/dom/HTMLAnchorElement/anchor-no-multiple-windows.html	2012-10-25 13:20:32 UTC (rev 132478)
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+if (window.testRunner) {
+    testRunner.dumpAsText();
+    testRunner.setCanOpenWindows(true);
+    testRunner.overridePreference('WebKitSupportsMultipleWindows', false);
+    testRunner.waitUntilDone();
+}
+
+function click(elmt)
+{
+    var event = document.createEvent('MouseEvent');
+    event.initEvent('click', true, true);
+    elmt.dispatchEvent(event);
+}
+
+function runTest()
+{
+    if (window.testRunner)
+        var windowCount = testRunner.windowCount();
+    var link = document.getElementById("link");
+    click(link);
+    if (window.testRunner) {
+        if (windowCount != testRunner.windowCount())
+            document.writeln('FAIL: Popup opened in a new window');
+        else
+            document.writeln('PASS: Popup opened in the same window');
+        testRunner.notifyDone();
+    }
+}
+
+window.addEventListener('load', runTest, true);
+</script>
+</head>
+<body>
+You need popups to be enabled to run this test.
+<a id="link" target="_blank" href="" test passes if this page opens in the same window</body></html>">Click me!</a>
+</body>
+</html>
Property changes on: trunk/LayoutTests/fast/dom/HTMLAnchorElement/anchor-no-multiple-windows.html
___________________________________________________________________

Added: svn:eol-style

Added: trunk/LayoutTests/fast/dom/Window/window-open-no-multiple-windows-expected.txt (0 => 132478)


--- trunk/LayoutTests/fast/dom/Window/window-open-no-multiple-windows-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/dom/Window/window-open-no-multiple-windows-expected.txt	2012-10-25 13:20:32 UTC (rev 132478)
@@ -0,0 +1 @@
+FAIL: Popup opened in a new window
Property changes on: trunk/LayoutTests/fast/dom/Window/window-open-no-multiple-windows-expected.txt
___________________________________________________________________

Added: svn:eol-style

Added: trunk/LayoutTests/fast/dom/Window/window-open-no-multiple-windows.html (0 => 132478)


--- trunk/LayoutTests/fast/dom/Window/window-open-no-multiple-windows.html	                        (rev 0)
+++ trunk/LayoutTests/fast/dom/Window/window-open-no-multiple-windows.html	2012-10-25 13:20:32 UTC (rev 132478)
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+if (window.testRunner) {
+    testRunner.dumpAsText();
+    testRunner.setCanOpenWindows(true);
+    testRunner.setPopupBlockingEnabled(false);
+    testRunner.overridePreference('WebKitSupportsMultipleWindows', false);
+    testRunner.waitUntilDone();
+}
+
+function runTest()
+{
+    if (window.testRunner)
+        var windowCount = testRunner.windowCount();
+    var result = window.open('data:text/html;charset=utf-8,<html><body>The test passes if this page opens in the same window</body></html>');
+    if (window.testRunner) {
+        if (!result)
+            document.writeln('FAIL: window.open failed. You need popups to be enabled to run this test.');
+        else if (windowCount != testRunner.windowCount())
+            document.writeln('FAIL: Popup opened in a new window');
+        else
+            document.writeln('PASS: Popup opened in the same window');
+        testRunner.notifyDone();
+    }
+}
+
+window.addEventListener('load', runTest, true);
+</script>
+</head>
+<body>
+You need popups to be enabled to run this test.
+</body>
+</html>
Property changes on: trunk/LayoutTests/fast/dom/Window/window-open-no-multiple-windows.html
___________________________________________________________________

Added: svn:eol-style

Added: trunk/LayoutTests/fast/forms/post-popup-no-multiple-windows-expected.txt (0 => 132478)


--- trunk/LayoutTests/fast/forms/post-popup-no-multiple-windows-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/forms/post-popup-no-multiple-windows-expected.txt	2012-10-25 13:20:32 UTC (rev 132478)
@@ -0,0 +1 @@
+FAIL: Popup opened in a new window
Property changes on: trunk/LayoutTests/fast/forms/post-popup-no-multiple-windows-expected.txt
___________________________________________________________________

Added: svn:eol-style

Added: trunk/LayoutTests/fast/forms/post-popup-no-multiple-windows.html (0 => 132478)


--- trunk/LayoutTests/fast/forms/post-popup-no-multiple-windows.html	                        (rev 0)
+++ trunk/LayoutTests/fast/forms/post-popup-no-multiple-windows.html	2012-10-25 13:20:32 UTC (rev 132478)
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+if (window.testRunner) {
+    testRunner.dumpAsText();
+    testRunner.setCanOpenWindows(true);
+    testRunner.overridePreference('WebKitSupportsMultipleWindows', false);
+    testRunner.waitUntilDone();
+}
+
+function click(elmt)
+{
+    var event = document.createEvent('MouseEvent');
+    event.initEvent('click', true, true);
+    elmt.dispatchEvent(event);
+}
+
+function runTest()
+{
+    if (window.testRunner)
+        testRunner.initialWindowCount = testRunner.windowCount();
+    var button = document.getElementById("post-button");
+    click(button);
+    if (window.testRunner) {
+        start = new Date();
+        testInterval = setInterval(checkIfDone, 1);
+    }
+}
+
+function checkIfDone ()
+{
+    if (testRunner.globalFlag) {
+        document.writeln('FAIL: Popup opened in a new window');
+        clearInterval(testInterval);
+        testRunner.notifyDone();
+    } else if ((new Date() - start) > 10000) {
+        document.writeln('FAIL: Popup did not open');
+        clearInterval(testInterval);
+        testRunner.notifyDone();
+    }
+}
+
+window.addEventListener('load', runTest, true);
+</script>
+</head>
+<body>
+  You need popups to be enabled to run this test.
+  <form method="post" target="_blank" action="" test() { if (!window.testRunner) return; testRunner.globalFlag=1; if (testRunner.initialWindowCount != testRunner.windowCount()) return; document.writeln('PASS: Popup opened in the same window'); testRunner.notifyDone(); }</script></head><body _onload_='test()'>The test passes if this page opens in the same window</body></html>">
+    <input id="post-button" type="submit" value="Click me!" />
+  </form>
+</body>
+</html>
Property changes on: trunk/LayoutTests/fast/forms/post-popup-no-multiple-windows.html
___________________________________________________________________

Added: svn:eol-style

Added: trunk/LayoutTests/platform/chromium/fast/dom/HTMLAnchorElement/anchor-no-multiple-windows-expected.txt (0 => 132478)


--- trunk/LayoutTests/platform/chromium/fast/dom/HTMLAnchorElement/anchor-no-multiple-windows-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/platform/chromium/fast/dom/HTMLAnchorElement/anchor-no-multiple-windows-expected.txt	2012-10-25 13:20:32 UTC (rev 132478)
@@ -0,0 +1 @@
+PASS: Popup opened in the same window
Property changes on: trunk/LayoutTests/platform/chromium/fast/dom/HTMLAnchorElement/anchor-no-multiple-windows-expected.txt
___________________________________________________________________

Added: svn:eol-style

Added: trunk/LayoutTests/platform/chromium/fast/dom/Window/window-open-no-multiple-windows-expected.txt (0 => 132478)


--- trunk/LayoutTests/platform/chromium/fast/dom/Window/window-open-no-multiple-windows-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/platform/chromium/fast/dom/Window/window-open-no-multiple-windows-expected.txt	2012-10-25 13:20:32 UTC (rev 132478)
@@ -0,0 +1 @@
+PASS: Popup opened in the same window
Property changes on: trunk/LayoutTests/platform/chromium/fast/dom/Window/window-open-no-multiple-windows-expected.txt
___________________________________________________________________

Added: svn:eol-style

Added: trunk/LayoutTests/platform/chromium/fast/forms/post-popup-no-multiple-windows-expected.txt (0 => 132478)


--- trunk/LayoutTests/platform/chromium/fast/forms/post-popup-no-multiple-windows-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/platform/chromium/fast/forms/post-popup-no-multiple-windows-expected.txt	2012-10-25 13:20:32 UTC (rev 132478)
@@ -0,0 +1 @@
+PASS: Popup opened in the same window
Property changes on: trunk/LayoutTests/platform/chromium/fast/forms/post-popup-no-multiple-windows-expected.txt
___________________________________________________________________

Added: svn:eol-style

Modified: trunk/Source/WebCore/ChangeLog (132477 => 132478)


--- trunk/Source/WebCore/ChangeLog	2012-10-25 13:05:04 UTC (rev 132477)
+++ trunk/Source/WebCore/ChangeLog	2012-10-25 13:20:32 UTC (rev 132478)
@@ -1,3 +1,31 @@
+2012-10-22  Mikhail Naganov  <mnaga...@chromium.org>
+
+        [Chromium] Add supportMultipleWindows setting, needed for Android
+        https://bugs.webkit.org/show_bug.cgi?id=99716
+
+        Reviewed by Adam Barth.
+
+        Add supportMultipleWindows settings for reusing the same view when
+        opening popups. This is required for emulating the behavior of
+        Android WebView. Adding into WebCore, as other ports might want to
+        use this setting in the future.
+
+        Tests: fast/dom/HTMLAnchorElement/anchor-no-multiple-windows.html
+               fast/dom/Window/window-open-no-multiple-windows.html
+               fast/forms/post-popup-no-multiple-windows.html
+
+        * loader/FrameLoader.cpp:
+        (WebCore::createWindow):
+        * page/ContextMenuController.cpp:
+        (WebCore::openNewWindow):
+        * page/Settings.cpp:
+        (WebCore::Settings::Settings):
+        (WebCore::Settings::setSupportsMultipleWindows):
+        (WebCore):
+        * page/Settings.h:
+        (Settings):
+        (WebCore::Settings::supportsMultipleWindows):
+
 2012-10-25  Alexander Pavlov  <apav...@chromium.org>
 
         Unreviewed, fix Web Inspector frontend compilability

Modified: trunk/Source/WebCore/loader/FrameLoader.cpp (132477 => 132478)


--- trunk/Source/WebCore/loader/FrameLoader.cpp	2012-10-25 13:05:04 UTC (rev 132477)
+++ trunk/Source/WebCore/loader/FrameLoader.cpp	2012-10-25 13:20:32 UTC (rev 132478)
@@ -3283,6 +3283,11 @@
     requestWithReferrer.resourceRequest().setHTTPReferrer(openerFrame->loader()->outgoingReferrer());
     FrameLoader::addHTTPOriginIfNeeded(requestWithReferrer.resourceRequest(), openerFrame->loader()->outgoingOrigin());
 
+    if (openerFrame->settings() && !openerFrame->settings()->supportsMultipleWindows()) {
+        created = false;
+        return openerFrame;
+    }
+
     Page* oldPage = openerFrame->page();
     if (!oldPage)
         return 0;

Modified: trunk/Source/WebCore/page/ContextMenuController.cpp (132477 => 132478)


--- trunk/Source/WebCore/page/ContextMenuController.cpp	2012-10-25 13:05:04 UTC (rev 132477)
+++ trunk/Source/WebCore/page/ContextMenuController.cpp	2012-10-25 13:20:32 UTC (rev 132478)
@@ -179,10 +179,14 @@
 {
     if (Page* oldPage = frame->page()) {
         FrameLoadRequest request(frame->document()->securityOrigin(), ResourceRequest(urlToLoad, frame->loader()->outgoingReferrer()));
-        if (Page* newPage = oldPage->chrome()->createWindow(frame, request, WindowFeatures(), NavigationAction(request.resourceRequest()))) {
-            newPage->mainFrame()->loader()->loadFrameRequest(request, false, false, 0, 0, MaybeSendReferrer);
+        Page* newPage = oldPage;
+        if (!frame->settings() || frame->settings()->supportsMultipleWindows()) {
+            newPage = oldPage->chrome()->createWindow(frame, request, WindowFeatures(), NavigationAction(request.resourceRequest()));
+            if (!newPage)
+                return;
             newPage->chrome()->show();
         }
+        newPage->mainFrame()->loader()->loadFrameRequest(request, false, false, 0, 0, MaybeSendReferrer);
     }
 }
 

Modified: trunk/Source/WebCore/page/Settings.cpp (132477 => 132478)


--- trunk/Source/WebCore/page/Settings.cpp	2012-10-25 13:05:04 UTC (rev 132477)
+++ trunk/Source/WebCore/page/Settings.cpp	2012-10-25 13:20:32 UTC (rev 132478)
@@ -168,6 +168,7 @@
     , m_allowUniversalAccessFromFileURLs(true)
     , m_allowFileAccessFromFileURLs(true)
     , m_javaScriptCanOpenWindowsAutomatically(false)
+    , m_supportsMultipleWindows(true)
     , m_javaScriptCanAccessClipboard(false)
     , m_shouldPrintBackgrounds(false)
     , m_textAreasAreResizable(false)
@@ -586,6 +587,11 @@
     m_javaScriptCanOpenWindowsAutomatically = _javascript_CanOpenWindowsAutomatically;
 }
 
+void Settings::setSupportsMultipleWindows(bool supportsMultipleWindows)
+{
+    m_supportsMultipleWindows = supportsMultipleWindows;
+}
+
 void Settings::setJavaScriptCanAccessClipboard(bool _javascript_CanAccessClipboard)
 {
     m_javaScriptCanAccessClipboard = _javascript_CanAccessClipboard;

Modified: trunk/Source/WebCore/page/Settings.h (132477 => 132478)


--- trunk/Source/WebCore/page/Settings.h	2012-10-25 13:05:04 UTC (rev 132477)
+++ trunk/Source/WebCore/page/Settings.h	2012-10-25 13:20:32 UTC (rev 132478)
@@ -152,6 +152,9 @@
         void setJavaScriptCanOpenWindowsAutomatically(bool);
         bool _javascript_CanOpenWindowsAutomatically() const { return m_javaScriptCanOpenWindowsAutomatically; }
 
+        void setSupportsMultipleWindows(bool);
+        bool supportsMultipleWindows() const { return m_supportsMultipleWindows; }
+
         void setJavaScriptCanAccessClipboard(bool);
         bool _javascript_CanAccessClipboard() const { return m_javaScriptCanAccessClipboard; }
 
@@ -704,6 +707,7 @@
         bool m_allowUniversalAccessFromFileURLs: 1;
         bool m_allowFileAccessFromFileURLs: 1;
         bool m_javaScriptCanOpenWindowsAutomatically : 1;
+        bool m_supportsMultipleWindows : 1;
         bool m_javaScriptCanAccessClipboard : 1;
         bool m_shouldPrintBackgrounds : 1;
         bool m_textAreasAreResizable : 1;

Modified: trunk/Source/WebKit/chromium/ChangeLog (132477 => 132478)


--- trunk/Source/WebKit/chromium/ChangeLog	2012-10-25 13:05:04 UTC (rev 132477)
+++ trunk/Source/WebKit/chromium/ChangeLog	2012-10-25 13:20:32 UTC (rev 132478)
@@ -1,3 +1,24 @@
+2012-10-22  Mikhail Naganov  <mnaga...@chromium.org>
+
+        [Chromium] Add supportMultipleWindows setting, needed for Android
+        https://bugs.webkit.org/show_bug.cgi?id=99716
+
+        Reviewed by Adam Barth.
+
+        Add supportMultipleWindows settings for reusing the same view when
+        opening popups. This is required for emulating the behavior of
+        Android WebView. Adding into WebCore, as other ports might want to
+        use this setting in the future.
+
+        * public/WebSettings.h:
+        * src/FrameLoaderClientImpl.cpp:
+        (WebKit::FrameLoaderClientImpl::dispatchCreatePage):
+        * src/WebSettingsImpl.cpp:
+        (WebKit::WebSettingsImpl::setSupportsMultipleWindows):
+        (WebKit):
+        * src/WebSettingsImpl.h:
+        (WebSettingsImpl):
+
 2012-10-24  Mihai Parparita  <mih...@chromium.org>
 
         [Chromium] Allow pushState and related history APIs to be disabled per context

Modified: trunk/Source/WebKit/chromium/public/WebSettings.h (132477 => 132478)


--- trunk/Source/WebKit/chromium/public/WebSettings.h	2012-10-25 13:05:04 UTC (rev 132477)
+++ trunk/Source/WebKit/chromium/public/WebSettings.h	2012-10-25 13:20:32 UTC (rev 132478)
@@ -148,6 +148,7 @@
     virtual void setShowPlatformLayerTree(bool) = 0;
     virtual void setShrinksStandaloneImagesToFit(bool) = 0;
     virtual void setStandardFontFamily(const WebString&, UScriptCode = USCRIPT_COMMON) = 0;
+    virtual void setSupportsMultipleWindows(bool) = 0;
     virtual void setSyncXHRInDocumentsEnabled(bool) = 0;
     virtual void setTextAreasAreResizable(bool) = 0;
     virtual void setTextAutosizingEnabled(bool) = 0;

Modified: trunk/Source/WebKit/chromium/src/FrameLoaderClientImpl.cpp (132477 => 132478)


--- trunk/Source/WebKit/chromium/src/FrameLoaderClientImpl.cpp	2012-10-25 13:05:04 UTC (rev 132477)
+++ trunk/Source/WebKit/chromium/src/FrameLoaderClientImpl.cpp	2012-10-25 13:20:32 UTC (rev 132478)
@@ -893,6 +893,9 @@
     ChromeClientImpl* chromeClient = static_cast<ChromeClientImpl*>(m_webFrame->frame()->page()->chrome()->client());
     chromeClient->setNewWindowNavigationPolicy(policy);
 
+    if (m_webFrame->frame()->settings() && !m_webFrame->frame()->settings()->supportsMultipleWindows())
+        return m_webFrame->frame();
+
     struct WindowFeatures features;
     Page* newPage = m_webFrame->frame()->page()->chrome()->createWindow(
         m_webFrame->frame(), FrameLoadRequest(m_webFrame->frame()->document()->securityOrigin()),

Modified: trunk/Source/WebKit/chromium/src/WebSettingsImpl.cpp (132477 => 132478)


--- trunk/Source/WebKit/chromium/src/WebSettingsImpl.cpp	2012-10-25 13:05:04 UTC (rev 132477)
+++ trunk/Source/WebKit/chromium/src/WebSettingsImpl.cpp	2012-10-25 13:20:32 UTC (rev 132478)
@@ -192,6 +192,11 @@
     m_settings->setJavaScriptCanOpenWindowsAutomatically(canOpenWindows);
 }
 
+void WebSettingsImpl::setSupportsMultipleWindows(bool supportsMultipleWindows)
+{
+    m_settings->setSupportsMultipleWindows(supportsMultipleWindows);
+}
+
 void WebSettingsImpl::setLoadsImagesAutomatically(bool loadsImagesAutomatically)
 {
     m_settings->setLoadsImagesAutomatically(loadsImagesAutomatically);

Modified: trunk/Source/WebKit/chromium/src/WebSettingsImpl.h (132477 => 132478)


--- trunk/Source/WebKit/chromium/src/WebSettingsImpl.h	2012-10-25 13:05:04 UTC (rev 132477)
+++ trunk/Source/WebKit/chromium/src/WebSettingsImpl.h	2012-10-25 13:20:32 UTC (rev 132478)
@@ -143,6 +143,7 @@
     virtual void setShowPlatformLayerTree(bool);
     virtual void setShrinksStandaloneImagesToFit(bool);
     virtual void setStandardFontFamily(const WebString&, UScriptCode = USCRIPT_COMMON);
+    virtual void setSupportsMultipleWindows(bool);
     virtual void setSyncXHRInDocumentsEnabled(bool);
     virtual void setTextAreasAreResizable(bool);
     virtual void setTextAutosizingEnabled(bool);

Modified: trunk/Tools/ChangeLog (132477 => 132478)


--- trunk/Tools/ChangeLog	2012-10-25 13:05:04 UTC (rev 132477)
+++ trunk/Tools/ChangeLog	2012-10-25 13:20:32 UTC (rev 132478)
@@ -1,3 +1,23 @@
+2012-10-22  Mikhail Naganov  <mnaga...@chromium.org>
+
+        [Chromium] Add supportMultipleWindows setting, needed for Android
+        https://bugs.webkit.org/show_bug.cgi?id=99716
+
+        Reviewed by Adam Barth.
+
+        Add supportMultipleWindows settings for reusing the same view when
+        opening popups. This is required for emulating the behavior of
+        Android WebView. Adding into WebCore, as other ports might want to
+        use this setting in the future.
+
+        * DumpRenderTree/chromium/DRTTestRunner.cpp:
+        (DRTTestRunner::overridePreference):
+        * DumpRenderTree/chromium/WebPreferences.cpp:
+        (WebPreferences::reset):
+        (WebPreferences::applyTo):
+        * DumpRenderTree/chromium/WebPreferences.h:
+        (WebPreferences):
+
 2012-10-25  Sudarsana Nagineni  <sudarsana.nagin...@intel.com>
 
         [EFL][WK2] _javascript_ popups are not focused when opened

Modified: trunk/Tools/DumpRenderTree/chromium/DRTTestRunner.cpp (132477 => 132478)


--- trunk/Tools/DumpRenderTree/chromium/DRTTestRunner.cpp	2012-10-25 13:05:04 UTC (rev 132477)
+++ trunk/Tools/DumpRenderTree/chromium/DRTTestRunner.cpp	2012-10-25 13:20:32 UTC (rev 132478)
@@ -1560,6 +1560,8 @@
         prefs->webSecurityEnabled = cppVariantToBool(value);
     else if (key == "WebKitJavaScriptCanOpenWindowsAutomatically")
         prefs->_javascript_CanOpenWindowsAutomatically = cppVariantToBool(value);
+    else if (key == "WebKitSupportsMultipleWindows")
+        prefs->supportsMultipleWindows = cppVariantToBool(value);
     else if (key == "WebKitDisplayImagesKey")
         prefs->loadsImagesAutomatically = cppVariantToBool(value);
     else if (key == "WebKitPluginsEnabled")

Modified: trunk/Tools/DumpRenderTree/chromium/WebPreferences.cpp (132477 => 132478)


--- trunk/Tools/DumpRenderTree/chromium/WebPreferences.cpp	2012-10-25 13:05:04 UTC (rev 132477)
+++ trunk/Tools/DumpRenderTree/chromium/WebPreferences.cpp	2012-10-25 13:20:32 UTC (rev 132478)
@@ -85,6 +85,7 @@
     javaEnabled = false;
     _javascript_CanAccessClipboard = true;
     _javascript_CanOpenWindowsAutomatically = true;
+    supportsMultipleWindows = true;
     _javascript_Enabled = true;
     loadsImagesAutomatically = true;
     localStorageEnabled = true;
@@ -202,6 +203,7 @@
     settings->setJavaEnabled(javaEnabled);
     settings->setJavaScriptCanAccessClipboard(_javascript_CanAccessClipboard);
     settings->setJavaScriptCanOpenWindowsAutomatically(_javascript_CanOpenWindowsAutomatically);
+    settings->setSupportsMultipleWindows(supportsMultipleWindows);
     settings->setJavaScriptEnabled(_javascript_Enabled);
     settings->setLoadsImagesAutomatically(loadsImagesAutomatically);
     settings->setLocalStorageEnabled(localStorageEnabled);

Modified: trunk/Tools/DumpRenderTree/chromium/WebPreferences.h (132477 => 132478)


--- trunk/Tools/DumpRenderTree/chromium/WebPreferences.h	2012-10-25 13:05:04 UTC (rev 132477)
+++ trunk/Tools/DumpRenderTree/chromium/WebPreferences.h	2012-10-25 13:20:32 UTC (rev 132478)
@@ -87,6 +87,7 @@
     bool javaEnabled;
     bool _javascript_CanAccessClipboard;
     bool _javascript_CanOpenWindowsAutomatically;
+    bool supportsMultipleWindows;
     bool _javascript_Enabled;
     bool loadsImagesAutomatically;
     bool localStorageEnabled;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to