Diff
Modified: trunk/Source/WebCore/ChangeLog (230951 => 230952)
--- trunk/Source/WebCore/ChangeLog 2018-04-24 08:31:19 UTC (rev 230951)
+++ trunk/Source/WebCore/ChangeLog 2018-04-24 09:24:55 UTC (rev 230952)
@@ -1,3 +1,44 @@
+2018-04-24 Zan Dobersek <[email protected]>
+
+ [CoordGraphics] Remove unused fixed layout functionality
+ https://bugs.webkit.org/show_bug.cgi?id=184908
+
+ Reviewed by Carlos Garcia Campos.
+
+ Ports using the CoordinatedGraphics subsystem don't expose fixed layout
+ support. As such, we're able to remove a lot of unused code and
+ unnecessary USE(COORDINATED_GRAPHICS) special cases in generic sections
+ in both WebCore and WebKit.
+
+ With fixed layout not available for use to users of the GTK+ and WPE
+ ports, we can remove the ScrollingCoordinatorCoordinatedGraphics
+ implementation, making room for an implementation that inherits from
+ AsyncScrollingCoordinator in the future. For that purpose the
+ ScrollingCoordinator::create() function is moved into the
+ ScrollingCoordinatorCoordinatedGraphics.cpp file already.
+
+ This also enables removing delegatedScrollRequested() method from
+ HostWindow and the inheriting ChromeClient interface.
+
+ * loader/EmptyClients.h:
+ * page/Chrome.cpp:
+ (WebCore::Chrome::delegatedScrollRequested): Deleted.
+ * page/Chrome.h:
+ * page/ChromeClient.h:
+ * page/scrolling/ScrollingCoordinator.cpp:
+ (WebCore::ScrollingCoordinator::create):
+ * page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp:
+ (WebCore::ScrollingCoordinator::create):
+ (WebCore::ScrollingCoordinatorCoordinatedGraphics::ScrollingCoordinatorCoordinatedGraphics): Deleted.
+ (WebCore::ScrollingCoordinatorCoordinatedGraphics::attachToStateTree): Deleted.
+ (WebCore::ScrollingCoordinatorCoordinatedGraphics::detachFromStateTree): Deleted.
+ (WebCore::ScrollingCoordinatorCoordinatedGraphics::clearStateTree): Deleted.
+ (WebCore::ScrollingCoordinatorCoordinatedGraphics::updateNodeLayer): Deleted.
+ (WebCore::ScrollingCoordinatorCoordinatedGraphics::updateNodeViewportConstraints): Deleted.
+ (WebCore::ScrollingCoordinatorCoordinatedGraphics::requestScrollPositionUpdate): Deleted.
+ * page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.h: Removed.
+ * platform/HostWindow.h:
+
2018-04-24 Daniel Bates <[email protected]>
Attempt to fix the Apple Internal build following r230922
Modified: trunk/Source/WebCore/loader/EmptyClients.h (230951 => 230952)
--- trunk/Source/WebCore/loader/EmptyClients.h 2018-04-24 08:31:19 UTC (rev 230951)
+++ trunk/Source/WebCore/loader/EmptyClients.h 2018-04-24 09:24:55 UTC (rev 230952)
@@ -106,10 +106,6 @@
void invalidateContentsForSlowScroll(const IntRect&) final { }
void scroll(const IntSize&, const IntRect&, const IntRect&) final { }
-#if USE(COORDINATED_GRAPHICS)
- void delegatedScrollRequested(const IntPoint&) final { }
-#endif
-
IntPoint screenToRootView(const IntPoint& p) const final { return p; }
IntRect rootViewToScreen(const IntRect& r) const final { return r; }
Modified: trunk/Source/WebCore/page/Chrome.cpp (230951 => 230952)
--- trunk/Source/WebCore/page/Chrome.cpp 2018-04-24 08:31:19 UTC (rev 230951)
+++ trunk/Source/WebCore/page/Chrome.cpp 2018-04-24 09:24:55 UTC (rev 230952)
@@ -92,13 +92,6 @@
InspectorInstrumentation::didScroll(m_page);
}
-#if USE(COORDINATED_GRAPHICS)
-void Chrome::delegatedScrollRequested(const IntPoint& scrollPoint)
-{
- m_client.delegatedScrollRequested(scrollPoint);
-}
-#endif
-
IntPoint Chrome::screenToRootView(const IntPoint& point) const
{
return m_client.screenToRootView(point);
Modified: trunk/Source/WebCore/page/Chrome.h (230951 => 230952)
--- trunk/Source/WebCore/page/Chrome.h 2018-04-24 08:31:19 UTC (rev 230951)
+++ trunk/Source/WebCore/page/Chrome.h 2018-04-24 09:24:55 UTC (rev 230952)
@@ -71,9 +71,6 @@
void invalidateContentsAndRootView(const IntRect&) override;
void invalidateContentsForSlowScroll(const IntRect&) override;
void scroll(const IntSize&, const IntRect&, const IntRect&) override;
-#if USE(COORDINATED_GRAPHICS)
- void delegatedScrollRequested(const IntPoint& scrollPoint) override;
-#endif
IntPoint screenToRootView(const IntPoint&) const override;
IntRect rootViewToScreen(const IntRect&) const override;
#if PLATFORM(IOS)
Modified: trunk/Source/WebCore/page/ChromeClient.h (230951 => 230952)
--- trunk/Source/WebCore/page/ChromeClient.h 2018-04-24 08:31:19 UTC (rev 230951)
+++ trunk/Source/WebCore/page/ChromeClient.h 2018-04-24 09:24:55 UTC (rev 230952)
@@ -164,10 +164,6 @@
virtual void invalidateContentsForSlowScroll(const IntRect&) = 0;
virtual void scroll(const IntSize&, const IntRect&, const IntRect&) = 0;
-#if USE(COORDINATED_GRAPHICS)
- virtual void delegatedScrollRequested(const IntPoint&) = 0;
-#endif
-
virtual IntPoint screenToRootView(const IntPoint&) const = 0;
virtual IntRect rootViewToScreen(const IntRect&) const = 0;
Modified: trunk/Source/WebCore/page/scrolling/ScrollingCoordinator.cpp (230951 => 230952)
--- trunk/Source/WebCore/page/scrolling/ScrollingCoordinator.cpp 2018-04-24 08:31:19 UTC (rev 230951)
+++ trunk/Source/WebCore/page/scrolling/ScrollingCoordinator.cpp 2018-04-24 09:24:55 UTC (rev 230952)
@@ -44,19 +44,11 @@
#include <wtf/text/StringBuilder.h>
#include <wtf/text/TextStream.h>
-#if USE(COORDINATED_GRAPHICS)
-#include "ScrollingCoordinatorCoordinatedGraphics.h"
-#endif
-
namespace WebCore {
-#if !PLATFORM(COCOA)
+#if !PLATFORM(COCOA) && !USE(COORDINATED_GRAPHICS)
Ref<ScrollingCoordinator> ScrollingCoordinator::create(Page* page)
{
-#if USE(COORDINATED_GRAPHICS)
- return adoptRef(*new ScrollingCoordinatorCoordinatedGraphics(page));
-#endif
-
return adoptRef(*new ScrollingCoordinator(page));
}
#endif
Modified: trunk/Source/WebCore/page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp (230951 => 230952)
--- trunk/Source/WebCore/page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp 2018-04-24 08:31:19 UTC (rev 230951)
+++ trunk/Source/WebCore/page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp 2018-04-24 09:24:55 UTC (rev 230952)
@@ -24,89 +24,18 @@
*/
#include "config.h"
-#include "ScrollingCoordinatorCoordinatedGraphics.h"
+#include "ScrollingCoordinator.h"
#if USE(COORDINATED_GRAPHICS)
-#include "CoordinatedGraphicsLayer.h"
-#include "FrameView.h"
-#include "HostWindow.h"
-#include "Page.h"
-#include "RenderLayer.h"
-#include "RenderLayerBacking.h"
-#include "ScrollingConstraints.h"
-#include "ScrollingStateFixedNode.h"
-#include "ScrollingStateScrollingNode.h"
-#include "ScrollingStateStickyNode.h"
-#include "ScrollingStateTree.h"
-
namespace WebCore {
-ScrollingCoordinatorCoordinatedGraphics::ScrollingCoordinatorCoordinatedGraphics(Page* page)
- : ScrollingCoordinator(page)
- , m_scrollingStateTree(std::make_unique<ScrollingStateTree>())
+Ref<ScrollingCoordinator> ScrollingCoordinator::create(Page* page)
{
+ // FIXME: Return an object implementing AsyncScrollingCoordinator.
+ return adoptRef(*new ScrollingCoordinator(page));
}
-ScrollingCoordinatorCoordinatedGraphics::~ScrollingCoordinatorCoordinatedGraphics() = default;
-
-ScrollingNodeID ScrollingCoordinatorCoordinatedGraphics::attachToStateTree(ScrollingNodeType nodeType, ScrollingNodeID newNodeID, ScrollingNodeID parentID)
-{
- return m_scrollingStateTree->attachNode(nodeType, newNodeID, parentID);
-}
-
-void ScrollingCoordinatorCoordinatedGraphics::detachFromStateTree(ScrollingNodeID nodeID)
-{
- auto* node = m_scrollingStateTree->stateNodeForID(nodeID);
- if (node && node->nodeType() == FixedNode)
- downcast<CoordinatedGraphicsLayer>(*static_cast<GraphicsLayer*>(node->layer())).setFixedToViewport(false);
-
- m_scrollingStateTree->detachNode(nodeID);
-}
-
-void ScrollingCoordinatorCoordinatedGraphics::clearStateTree()
-{
- m_scrollingStateTree->clear();
-}
-
-void ScrollingCoordinatorCoordinatedGraphics::updateNodeLayer(ScrollingNodeID nodeID, GraphicsLayer* graphicsLayer)
-{
- auto* node = m_scrollingStateTree->stateNodeForID(nodeID);
- if (!node)
- return;
-
- node->setLayer(graphicsLayer);
-}
-
-void ScrollingCoordinatorCoordinatedGraphics::updateNodeViewportConstraints(ScrollingNodeID nodeID, const ViewportConstraints& constraints)
-{
- auto* node = m_scrollingStateTree->stateNodeForID(nodeID);
- if (!node)
- return;
-
- switch (constraints.constraintType()) {
- case ViewportConstraints::FixedPositionConstraint: {
- auto& layer = node->layer();
- if (layer.representsGraphicsLayer())
- downcast<CoordinatedGraphicsLayer>(static_cast<GraphicsLayer*>(layer))->setFixedToViewport(true);
- break;
- }
- case ViewportConstraints::StickyPositionConstraint:
- break; // FIXME : Support sticky elements.
- default:
- ASSERT_NOT_REACHED();
- }
-}
-
-bool ScrollingCoordinatorCoordinatedGraphics::requestScrollPositionUpdate(FrameView& frameView, const IntPoint& scrollPosition)
-{
- if (!frameView.delegatesScrolling())
- return false;
-
- frameView.hostWindow()->delegatedScrollRequested(scrollPosition);
- return true;
-}
-
} // namespace WebCore
#endif // USE(COORDINATED_GRAPHICS)
Deleted: trunk/Source/WebCore/page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.h (230951 => 230952)
--- trunk/Source/WebCore/page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.h 2018-04-24 08:31:19 UTC (rev 230951)
+++ trunk/Source/WebCore/page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.h 2018-04-24 09:24:55 UTC (rev 230952)
@@ -1,56 +0,0 @@
-/*
- * Copyright (C) 2013 Nokia Corporation and/or its subsidiary(-ies).
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#pragma once
-
-#if USE(COORDINATED_GRAPHICS)
-
-#include "ScrollingCoordinator.h"
-
-namespace WebCore {
-
-class ScrollingStateTree;
-
-class ScrollingCoordinatorCoordinatedGraphics : public ScrollingCoordinator {
-public:
- explicit ScrollingCoordinatorCoordinatedGraphics(Page*);
- virtual ~ScrollingCoordinatorCoordinatedGraphics();
-
- ScrollingNodeID attachToStateTree(ScrollingNodeType, ScrollingNodeID newNodeID, ScrollingNodeID parentID) override;
- void detachFromStateTree(ScrollingNodeID) override;
- void clearStateTree() override;
-
- void updateNodeLayer(ScrollingNodeID, GraphicsLayer*) override;
- void updateNodeViewportConstraints(ScrollingNodeID, const ViewportConstraints&) override;
-
- bool requestScrollPositionUpdate(FrameView&, const IntPoint&) override;
-
-private:
- std::unique_ptr<ScrollingStateTree> m_scrollingStateTree;
-};
-
-} // namespace WebCore
-
-#endif // USE(COORDINATED_GRAPHICS)
Modified: trunk/Source/WebCore/platform/HostWindow.h (230951 => 230952)
--- trunk/Source/WebCore/platform/HostWindow.h 2018-04-24 08:31:19 UTC (rev 230951)
+++ trunk/Source/WebCore/platform/HostWindow.h 2018-04-24 09:24:55 UTC (rev 230952)
@@ -50,11 +50,6 @@
// Requests the host invalidate the contents, not the root view. This is the slow path for scrolling.
virtual void invalidateContentsForSlowScroll(const IntRect& updateRect) = 0;
-#if USE(COORDINATED_GRAPHICS)
- // Requests the host to do the actual scrolling. This is only used in combination with a tiled backing store.
- virtual void delegatedScrollRequested(const IntPoint& scrollPoint) = 0;
-#endif
-
// Methods for doing coordinate conversions to and from screen coordinates.
virtual IntPoint screenToRootView(const IntPoint&) const = 0;
virtual IntRect rootViewToScreen(const IntRect&) const = 0;
Modified: trunk/Source/WebKit/ChangeLog (230951 => 230952)
--- trunk/Source/WebKit/ChangeLog 2018-04-24 08:31:19 UTC (rev 230951)
+++ trunk/Source/WebKit/ChangeLog 2018-04-24 09:24:55 UTC (rev 230952)
@@ -1,5 +1,35 @@
2018-04-24 Zan Dobersek <[email protected]>
+ [CoordGraphics] Remove unused fixed layout functionality
+ https://bugs.webkit.org/show_bug.cgi?id=184908
+
+ Reviewed by Carlos Garcia Campos.
+
+ Ports using the CoordinatedGraphics subsystem don't expose fixed layout
+ support. As such, we're able to remove a lot of unused code and
+ unnecessary USE(COORDINATED_GRAPHICS) special cases in generic sections
+ in both WebCore and WebKit.
+
+ Remove USE(COORDINATED_GRAPHICS) special-casing from the
+ WebPage::setUseFixedLayout() method. This is not possible to enable for
+ the GTK+ and WPE ports that use the CoordinatedGraphics subsytem via
+ API. Removing all this unlocks removing considerable amounts of dead
+ code and complexities in CoordinatedGraphics.
+
+ WebChromeClient::delegatedScrollRequested() method is removed, along
+ with the WebPage::pageDidRequestScroll() method that was only called
+ from there.
+
+ * WebProcess/WebCoreSupport/WebChromeClient.cpp:
+ (WebKit::WebChromeClient::delegatedScrollRequested): Deleted.
+ * WebProcess/WebCoreSupport/WebChromeClient.h:
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::setUseFixedLayout):
+ (WebKit::WebPage::pageDidRequestScroll): Deleted.
+ * WebProcess/WebPage/WebPage.h:
+
+2018-04-24 Zan Dobersek <[email protected]>
+
[CoordGraphics] Avoid painting backing stores for zero-opacity layers
https://bugs.webkit.org/show_bug.cgi?id=184143
Modified: trunk/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp (230951 => 230952)
--- trunk/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp 2018-04-24 08:31:19 UTC (rev 230951)
+++ trunk/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp 2018-04-24 09:24:55 UTC (rev 230952)
@@ -549,13 +549,6 @@
m_page.drawingArea()->scroll(intersection(scrollRect, clipRect), scrollDelta);
}
-#if USE(COORDINATED_GRAPHICS)
-void WebChromeClient::delegatedScrollRequested(const IntPoint& scrollOffset)
-{
- m_page.pageDidRequestScroll(scrollOffset);
-}
-#endif
-
IntPoint WebChromeClient::screenToRootView(const IntPoint& point) const
{
return m_page.screenToRootView(point);
Modified: trunk/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h (230951 => 230952)
--- trunk/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h 2018-04-24 08:31:19 UTC (rev 230951)
+++ trunk/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h 2018-04-24 09:24:55 UTC (rev 230952)
@@ -109,10 +109,6 @@
void invalidateContentsForSlowScroll(const WebCore::IntRect&) final;
void scroll(const WebCore::IntSize& scrollDelta, const WebCore::IntRect& scrollRect, const WebCore::IntRect& clipRect) final;
-#if USE(COORDINATED_GRAPHICS)
- void delegatedScrollRequested(const WebCore::IntPoint& scrollOffset) final;
-#endif
-
WebCore::IntPoint screenToRootView(const WebCore::IntPoint&) const final;
WebCore::IntRect rootViewToScreen(const WebCore::IntRect&) const final;
Modified: trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp (230951 => 230952)
--- trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp 2018-04-24 08:31:19 UTC (rev 230951)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp 2018-04-24 09:24:55 UTC (rev 230952)
@@ -1753,26 +1753,11 @@
#if !PLATFORM(IOS)
m_page->settings().setFixedElementsLayoutRelativeToFrame(fixed);
#endif
-#if USE(COORDINATED_GRAPHICS)
- m_page->settings().setAcceleratedCompositingForFixedPositionEnabled(fixed);
- m_page->settings().setDelegatesPageScaling(fixed);
- m_page->settings().setScrollingCoordinatorEnabled(fixed);
-#endif
-#if USE(COORDINATED_GRAPHICS) && ENABLE(SMOOTH_SCROLLING)
- // Delegated scrolling will be enabled when the FrameView is created if fixed layout is enabled.
- // Ensure we don't do animated scrolling in the WebProcess in that case.
- m_page->settings().setScrollAnimatorEnabled(!fixed);
-#endif
-
FrameView* view = mainFrameView();
if (!view)
return;
-#if USE(COORDINATED_GRAPHICS)
- view->setDelegatesScrolling(fixed);
- view->setPaintsEntireContents(fixed);
-#endif
view->setUseFixedLayout(fixed);
if (!fixed)
setFixedLayoutSize(IntSize());
@@ -2171,15 +2156,6 @@
frame->loader().history().saveScrollPositionAndViewStateToItem(frame->loader().history().currentItem());
}
-#if USE(COORDINATED_GRAPHICS)
-void WebPage::pageDidRequestScroll(const IntPoint& point)
-{
-#if USE(COORDINATED_GRAPHICS_THREADED)
- drawingArea()->scroll(IntRect(point, IntSize()), IntSize());
-#endif
-}
-#endif
-
#if ENABLE(CONTEXT_MENUS)
WebContextMenu* WebPage::contextMenu()
{
Modified: trunk/Source/WebKit/WebProcess/WebPage/WebPage.h (230951 => 230952)
--- trunk/Source/WebKit/WebProcess/WebPage/WebPage.h 2018-04-24 08:31:19 UTC (rev 230951)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebPage.h 2018-04-24 09:24:55 UTC (rev 230952)
@@ -656,10 +656,6 @@
void pageDidScroll();
-#if USE(COORDINATED_GRAPHICS)
- void pageDidRequestScroll(const WebCore::IntPoint&);
-#endif
-
#if ENABLE(CONTEXT_MENUS)
WebContextMenu* contextMenu();
WebContextMenu* contextMenuAtPointInWindow(const WebCore::IntPoint&);