Title: [208381] trunk
Revision
208381
Author
[email protected]
Date
2016-11-04 02:35:36 -0700 (Fri, 04 Nov 2016)

Log Message

[Win] Page visibility tests are timing out.
https://bugs.webkit.org/show_bug.cgi?id=164363

Reviewed by Brent Fulgham.

Source/WebKit/win:

Add method to set page visibility.

* Interfaces/IWebViewPrivate.idl:
* WebView.cpp:
(WebView::QueryInterface):
(WebView::findString):
(WebView::setVisibilityState):
* WebView.h:

Tools:

Implement methods to set page visibility.

* DumpRenderTree/win/TestRunnerWin.cpp:
(TestRunner::resetPageVisibility):
(TestRunner::setPageVisibility):

LayoutTests:

Unskip page visibility tests.

* platform/win/TestExpectations:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (208380 => 208381)


--- trunk/LayoutTests/ChangeLog	2016-11-04 06:37:09 UTC (rev 208380)
+++ trunk/LayoutTests/ChangeLog	2016-11-04 09:35:36 UTC (rev 208381)
@@ -1,3 +1,14 @@
+2016-11-04  Per Arne Vollan  <[email protected]>
+
+        [Win] Page visibility tests are timing out.
+        https://bugs.webkit.org/show_bug.cgi?id=164363
+
+        Reviewed by Brent Fulgham.
+
+        Unskip page visibility tests.
+
+        * platform/win/TestExpectations:
+
 2016-11-03  Antti Koivisto  <[email protected]>
 
         REGRESSION (r207669): Crash under SVGRenderSupport::updateMaskedAncestorShouldIsolateBlending

Modified: trunk/LayoutTests/platform/win/TestExpectations (208380 => 208381)


--- trunk/LayoutTests/platform/win/TestExpectations	2016-11-04 06:37:09 UTC (rev 208380)
+++ trunk/LayoutTests/platform/win/TestExpectations	2016-11-04 09:35:36 UTC (rev 208381)
@@ -2709,11 +2709,7 @@
 webkit.org/b/97026 [ Release ] fast/events/keydown-leftright-keys.html [ Failure ]
 webkit.org/b/97026 [ Debug ] fast/events/keydown-leftright-keys.html [ Skip ] # Debug Assertion
 # fast/events/page-visibility tests timeout.
-webkit.org/b/121509 fast/events/page-visibility-iframe-delete-test.html [ Skip ] #  [ Timeout ]
 webkit.org/b/121509 fast/events/wheelevent-mousewheel-interaction.html [ Skip ] #  [ Timeout ]
-webkit.org/b/121509 fast/events/page-visibility-iframe-propagation-test.html [ Skip ] #  [ Timeout ]
-webkit.org/b/121509 fast/events/page-visibility-transition-test.html [ Skip ] #  [ Timeout ]
-webkit.org/b/121509 fast/events/page-visibility-iframe-move-test.html [ Skip ] #  [ Timeout ]
 fast/events/special-key-events-in-input-text.html [ Failure ]
 fast/events/attribute-listener-cloned-from-frameless-doc-context.html [ Pass Failure ]
 [ Release ] fast/events/drag-outside-window.html [ Pass Timeout ]

Modified: trunk/Source/WebKit/win/ChangeLog (208380 => 208381)


--- trunk/Source/WebKit/win/ChangeLog	2016-11-04 06:37:09 UTC (rev 208380)
+++ trunk/Source/WebKit/win/ChangeLog	2016-11-04 09:35:36 UTC (rev 208381)
@@ -1,3 +1,19 @@
+2016-11-04  Per Arne Vollan  <[email protected]>
+
+        [Win] Page visibility tests are timing out.
+        https://bugs.webkit.org/show_bug.cgi?id=164363
+
+        Reviewed by Brent Fulgham.
+
+        Add method to set page visibility.
+
+        * Interfaces/IWebViewPrivate.idl:
+        * WebView.cpp:
+        (WebView::QueryInterface):
+        (WebView::findString):
+        (WebView::setVisibilityState):
+        * WebView.h:
+
 2016-11-01  Ryosuke Niwa  <[email protected]>
 
         Remove CUSTOM_ELEMENTS build flag

Modified: trunk/Source/WebKit/win/Interfaces/IWebViewPrivate.idl (208380 => 208381)


--- trunk/Source/WebKit/win/Interfaces/IWebViewPrivate.idl	2016-11-04 06:37:09 UTC (rev 208380)
+++ trunk/Source/WebKit/win/Interfaces/IWebViewPrivate.idl	2016-11-04 09:35:36 UTC (rev 208381)
@@ -336,3 +336,15 @@
     HRESULT layerTreeAsString([out] BSTR*);
     HRESULT findString([in] BSTR, [in] WebFindOptions, [out] BOOL* found); 
 }
+
+typedef enum {
+    WebPageVisibilityStateVisible,
+    WebPageVisibilityStateHidden,
+    WebPageVisibilityStatePrerender
+} WebPageVisibilityState;
+
+[ uuid(793565B9-5168-4FF4-B841-1BE78DB1B1F8) ]
+interface IWebViewPrivate4 : IWebViewPrivate3
+{
+    HRESULT setVisibilityState([in] WebPageVisibilityState);
+}

Modified: trunk/Source/WebKit/win/WebView.cpp (208380 => 208381)


--- trunk/Source/WebKit/win/WebView.cpp	2016-11-04 06:37:09 UTC (rev 208380)
+++ trunk/Source/WebKit/win/WebView.cpp	2016-11-04 09:35:36 UTC (rev 208381)
@@ -2887,6 +2887,8 @@
         *ppvObject = static_cast<IWebViewPrivate2*>(this);
     else if (IsEqualGUID(riid, IID_IWebViewPrivate3))
         *ppvObject = static_cast<IWebViewPrivate3*>(this);
+    else if (IsEqualGUID(riid, IID_IWebViewPrivate4))
+        *ppvObject = static_cast<IWebViewPrivate4*>(this);
     else if (IsEqualGUID(riid, IID_IWebIBActions))
         *ppvObject = static_cast<IWebIBActions*>(this);
     else if (IsEqualGUID(riid, IID_IWebViewCSS))
@@ -7794,3 +7796,16 @@
     *found = m_page->findString(toString(string), options);
     return S_OK;
 }
+
+HRESULT WebView::setVisibilityState(WebPageVisibilityState visibilityState)
+{
+    if (!m_page)
+        return E_FAIL;
+    
+    m_page->setIsVisible(visibilityState == WebPageVisibilityStateVisible);
+
+    if (visibilityState == WebPageVisibilityStatePrerender)
+        m_page->setIsPrerender();
+
+    return S_OK;
+}

Modified: trunk/Source/WebKit/win/WebView.h (208380 => 208381)


--- trunk/Source/WebKit/win/WebView.h	2016-11-04 06:37:09 UTC (rev 208380)
+++ trunk/Source/WebKit/win/WebView.h	2016-11-04 09:35:36 UTC (rev 208381)
@@ -87,7 +87,7 @@
 
 class WebView 
     : public IWebView
-    , public IWebViewPrivate3
+    , public IWebViewPrivate4
     , public IWebIBActions
     , public IWebViewCSS
     , public IWebViewEditing
@@ -399,6 +399,9 @@
     HRESULT STDMETHODCALLTYPE layerTreeAsString(_Deref_opt_out_ BSTR*);
     HRESULT STDMETHODCALLTYPE findString(_In_ BSTR, WebFindOptions, _Deref_opt_out_ BOOL*);
 
+    // IWebViewPrivate4
+    HRESULT STDMETHODCALLTYPE setVisibilityState(WebPageVisibilityState);
+
     // WebView
     bool shouldUseEmbeddedView(const WTF::String& mimeType) const;
 

Modified: trunk/Tools/ChangeLog (208380 => 208381)


--- trunk/Tools/ChangeLog	2016-11-04 06:37:09 UTC (rev 208380)
+++ trunk/Tools/ChangeLog	2016-11-04 09:35:36 UTC (rev 208381)
@@ -1,3 +1,16 @@
+2016-11-04  Per Arne Vollan  <[email protected]>
+
+        [Win] Page visibility tests are timing out.
+        https://bugs.webkit.org/show_bug.cgi?id=164363
+
+        Reviewed by Brent Fulgham.
+
+        Implement methods to set page visibility.
+
+        * DumpRenderTree/win/TestRunnerWin.cpp:
+        (TestRunner::resetPageVisibility):
+        (TestRunner::setPageVisibility):
+
 2016-11-03  Simon Fraser  <[email protected]>
 
         Give all the geometry classes a single-argument scale() function for consistency

Modified: trunk/Tools/DumpRenderTree/win/TestRunnerWin.cpp (208380 => 208381)


--- trunk/Tools/DumpRenderTree/win/TestRunnerWin.cpp	2016-11-04 06:37:09 UTC (rev 208380)
+++ trunk/Tools/DumpRenderTree/win/TestRunnerWin.cpp	2016-11-04 09:35:36 UTC (rev 208381)
@@ -1312,12 +1312,36 @@
 
 void TestRunner::resetPageVisibility()
 {
-    // FIXME: Implement this.
+    COMPtr<IWebView> webView;
+    if (FAILED(frame->webView(&webView)))
+        return;
+
+    COMPtr<IWebViewPrivate4> viewPrivate;
+    if (FAILED(webView->QueryInterface(&viewPrivate)))
+        return;
+
+    viewPrivate->setVisibilityState(WebPageVisibilityStateVisible);
 }
 
-void TestRunner::setPageVisibility(const char*)
+void TestRunner::setPageVisibility(const char* newVisibility)
 {
-    // FIXME: Implement this.
+    if (!newVisibility)
+        return;
+
+    COMPtr<IWebView> webView;
+    if (FAILED(frame->webView(&webView)))
+        return;
+
+    COMPtr<IWebViewPrivate4> viewPrivate;
+    if (FAILED(webView->QueryInterface(&viewPrivate)))
+        return;
+
+    if (!strcmp(newVisibility, "visible"))
+        viewPrivate->setVisibilityState(WebPageVisibilityStateVisible);
+    else if (!strcmp(newVisibility, "hidden"))
+        viewPrivate->setVisibilityState(WebPageVisibilityStateHidden);
+    else if (!strcmp(newVisibility, "prerender"))
+        viewPrivate->setVisibilityState(WebPageVisibilityStatePrerender);
 }
 
 void TestRunner::grantWebNotificationPermission(JSStringRef origin)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to