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

Reply via email to