Title: [205733] releases/WebKitGTK/webkit-2.14/Source/WebKit2
- Revision
- 205733
- Author
- [email protected]
- Date
- 2016-09-09 03:48:21 -0700 (Fri, 09 Sep 2016)
Log Message
Merge r205537 - [GTK][Threaded Compositor] Several flaky tests
https://bugs.webkit.org/show_bug.cgi?id=161242
Reviewed by Michael Catanzaro.
Source/WebKit2:
Reset the viewport attributes on SimpleViewportController when viewport attributes change and fixed layout is
not used. We were only updating the viewport attributes when fixed layout was used, but not resetting them again
when it's no longer used. That caused that reference tests run after fast/fixed-layout/fixed-layout.html or
compositing/fixed-with-fixed-layout.html in the same worker thread were incorrectly rendered.
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::dispatchViewportPropertiesDidChange): Remove ifdefs and call
WebPage::viewportPropertiesDidChange() unconditionally.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setSize): Pass current page viewport arguments to sendViewportAttributesChanged().
(WebKit::WebPage::sendViewportAttributesChanged): It now receives the viewport arguments.
(WebKit::WebPage::viewportPropertiesDidChange): Move the iOS implementation from WebPageIOS.mm and for
coordinated graphics call sendViewportAttributesChanged() when fixed layout is used or reset the viewport
attributes when not used in case of threaded compositor.
* WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::viewportPropertiesDidChange): Moved out of iOS ifdef.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::viewportPropertiesDidChange): Deleted.
Modified Paths
Diff
Modified: releases/WebKitGTK/webkit-2.14/Source/WebKit2/ChangeLog (205732 => 205733)
--- releases/WebKitGTK/webkit-2.14/Source/WebKit2/ChangeLog 2016-09-09 10:35:22 UTC (rev 205732)
+++ releases/WebKitGTK/webkit-2.14/Source/WebKit2/ChangeLog 2016-09-09 10:48:21 UTC (rev 205733)
@@ -1,3 +1,29 @@
+2016-09-06 Carlos Garcia Campos <[email protected]>
+
+ [GTK][Threaded Compositor] Several flaky tests
+ https://bugs.webkit.org/show_bug.cgi?id=161242
+
+ Reviewed by Michael Catanzaro.
+
+ Reset the viewport attributes on SimpleViewportController when viewport attributes change and fixed layout is
+ not used. We were only updating the viewport attributes when fixed layout was used, but not resetting them again
+ when it's no longer used. That caused that reference tests run after fast/fixed-layout/fixed-layout.html or
+ compositing/fixed-with-fixed-layout.html in the same worker thread were incorrectly rendered.
+
+ * WebProcess/WebCoreSupport/WebChromeClient.cpp:
+ (WebKit::WebChromeClient::dispatchViewportPropertiesDidChange): Remove ifdefs and call
+ WebPage::viewportPropertiesDidChange() unconditionally.
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::setSize): Pass current page viewport arguments to sendViewportAttributesChanged().
+ (WebKit::WebPage::sendViewportAttributesChanged): It now receives the viewport arguments.
+ (WebKit::WebPage::viewportPropertiesDidChange): Move the iOS implementation from WebPageIOS.mm and for
+ coordinated graphics call sendViewportAttributesChanged() when fixed layout is used or reset the viewport
+ attributes when not used in case of threaded compositor.
+ * WebProcess/WebPage/WebPage.h:
+ (WebKit::WebPage::viewportPropertiesDidChange): Moved out of iOS ifdef.
+ * WebProcess/WebPage/ios/WebPageIOS.mm:
+ (WebKit::WebPage::viewportPropertiesDidChange): Deleted.
+
2016-09-01 Simon Fraser <[email protected]>
Use TemporaryChange<> to maintain m_userIsInteracting
Modified: releases/WebKitGTK/webkit-2.14/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp (205732 => 205733)
--- releases/WebKitGTK/webkit-2.14/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp 2016-09-09 10:35:22 UTC (rev 205732)
+++ releases/WebKitGTK/webkit-2.14/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp 2016-09-09 10:48:21 UTC (rev 205733)
@@ -924,16 +924,7 @@
void WebChromeClient::dispatchViewportPropertiesDidChange(const ViewportArguments& viewportArguments) const
{
- UNUSED_PARAM(viewportArguments);
-#if PLATFORM(IOS)
m_page->viewportPropertiesDidChange(viewportArguments);
-#endif
-#if USE(COORDINATED_GRAPHICS)
- if (!m_page->useFixedLayout())
- return;
-
- m_page->sendViewportAttributesChanged();
-#endif
}
void WebChromeClient::notifyScrollerThumbIsVisibleInRect(const IntRect& scrollerThumb)
Modified: releases/WebKitGTK/webkit-2.14/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (205732 => 205733)
--- releases/WebKitGTK/webkit-2.14/Source/WebKit2/WebProcess/WebPage/WebPage.cpp 2016-09-09 10:35:22 UTC (rev 205732)
+++ releases/WebKitGTK/webkit-2.14/Source/WebKit2/WebProcess/WebPage/WebPage.cpp 2016-09-09 10:48:21 UTC (rev 205733)
@@ -1359,12 +1359,12 @@
#if USE(COORDINATED_GRAPHICS)
if (view->useFixedLayout())
- sendViewportAttributesChanged();
+ sendViewportAttributesChanged(m_page->viewportArguments());
#endif
}
#if USE(COORDINATED_GRAPHICS)
-void WebPage::sendViewportAttributesChanged()
+void WebPage::sendViewportAttributesChanged(const ViewportArguments& viewportArguments)
{
FrameView* view = m_page->mainFrame().view();
ASSERT(view && view->useFixedLayout());
@@ -1382,7 +1382,7 @@
int deviceWidth = (settings.deviceWidth() > 0) ? settings.deviceWidth() : m_viewSize.width();
int deviceHeight = (settings.deviceHeight() > 0) ? settings.deviceHeight() : m_viewSize.height();
- ViewportAttributes attr = computeViewportAttributes(m_page->viewportArguments(), minimumLayoutFallbackWidth, deviceWidth, deviceHeight, 1, m_viewSize);
+ ViewportAttributes attr = computeViewportAttributes(viewportArguments, minimumLayoutFallbackWidth, deviceWidth, deviceHeight, 1, m_viewSize);
// If no layout was done yet set contentFixedOrigin to (0,0).
IntPoint contentFixedOrigin = view->didFirstLayout() ? view->fixedVisibleContentRect().location() : IntPoint();
@@ -1711,6 +1711,28 @@
return view->fixedLayoutSize();
}
+void WebPage::viewportPropertiesDidChange(const ViewportArguments& viewportArguments)
+{
+#if PLATFORM(IOS)
+ if (m_viewportConfiguration.setViewportArguments(viewportArguments))
+ viewportConfigurationChanged();
+#endif
+
+#if USE(COORDINATED_GRAPHICS)
+ FrameView* view = m_page->mainFrame().view();
+ if (view && view->useFixedLayout())
+ sendViewportAttributesChanged(viewportArguments);
+#if USE(COORDINATED_GRAPHICS_THREADED)
+ else if (auto* layerTreeHost = m_drawingArea->layerTreeHost())
+ layerTreeHost->didChangeViewportProperties(ViewportAttributes());
+#endif
+#endif
+
+#if !PLATFORM(IOS) && !USE(COORDINATED_GRAPHICS)
+ UNUSED_PARAM(viewportArguments);
+#endif
+}
+
void WebPage::listenForLayoutMilestones(uint32_t milestones)
{
if (!m_page)
Modified: releases/WebKitGTK/webkit-2.14/Source/WebKit2/WebProcess/WebPage/WebPage.h (205732 => 205733)
--- releases/WebKitGTK/webkit-2.14/Source/WebKit2/WebProcess/WebPage/WebPage.h 2016-09-09 10:35:22 UTC (rev 205732)
+++ releases/WebKitGTK/webkit-2.14/Source/WebKit2/WebProcess/WebPage/WebPage.h 2016-09-09 10:48:21 UTC (rev 205733)
@@ -501,11 +501,12 @@
void elementDidBlur(WebCore::Node*);
void resetAssistedNodeForFrame(WebFrame*);
+ void viewportPropertiesDidChange(const WebCore::ViewportArguments&);
+
#if PLATFORM(IOS)
WebCore::FloatSize screenSize() const;
WebCore::FloatSize availableScreenSize() const;
int32_t deviceOrientation() const { return m_deviceOrientation; }
- void viewportPropertiesDidChange(const WebCore::ViewportArguments&);
void didReceiveMobileDocType(bool);
void setUseTestingViewportConfiguration(bool useTestingViewport) { m_useTestingViewportConfiguration = useTestingViewport; }
@@ -594,7 +595,6 @@
void pageDidScroll();
#if USE(COORDINATED_GRAPHICS)
void pageDidRequestScroll(const WebCore::IntPoint&);
- void sendViewportAttributesChanged();
#endif
#if USE(COORDINATED_GRAPHICS_MULTIPROCESS)
@@ -1124,6 +1124,10 @@
void hideFindUI();
void countStringMatches(const String&, uint32_t findOptions, uint32_t maxMatchCount);
+#if USE(COORDINATED_GRAPHICS)
+ void sendViewportAttributesChanged(const WebCore::ViewportArguments&);
+#endif
+
#if USE(COORDINATED_GRAPHICS_MULTIPROCESS)
void findZoomableAreaForPoint(const WebCore::IntPoint&, const WebCore::IntSize& area);
#endif
Modified: releases/WebKitGTK/webkit-2.14/Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm (205732 => 205733)
--- releases/WebKitGTK/webkit-2.14/Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm 2016-09-09 10:35:22 UTC (rev 205732)
+++ releases/WebKitGTK/webkit-2.14/Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm 2016-09-09 10:48:21 UTC (rev 205733)
@@ -207,12 +207,6 @@
return m_availableScreenSize;
}
-void WebPage::viewportPropertiesDidChange(const ViewportArguments& viewportArguments)
-{
- if (m_viewportConfiguration.setViewportArguments(viewportArguments))
- viewportConfigurationChanged();
-}
-
void WebPage::didReceiveMobileDocType(bool isMobileDoctype)
{
if (isMobileDoctype)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes