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)