Support bottom-right anchored fixed-position elements during a pinch gesture
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 28 Mar 2013 21:50:39 +0000 (21:50 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 28 Mar 2013 21:50:39 +0000 (21:50 +0000)
commit49f338c27d8f301a9b6145a77e9cf29f18e58843
tree7dcfb54166fad2eb6dc9bec67ed160520970e0e1
parent4392f263e6915e22f03e9d6f854725e429ddd3d3
Support bottom-right anchored fixed-position elements during a pinch gesture
https://bugs.webkit.org/show_bug.cgi?id=111670

Patch by Tien-Ren Chen <trchen@chromium.org> on 2013-03-28
Reviewed by James Robinson.

Source/Platform:

Added WebLayerPositionConstraint for layers that need position
adjustment during threaded scrolling.
Currently it is only used for fixed-position layers.

* Platform.gypi:
* chromium/public/WebLayer.h:
(WebKit):
(WebLayer):
(WebKit::WebLayer::setPositionConstraint):
(WebKit::WebLayer::positionConstraint):
(WebKit::WebLayer::setFixedToContainerLayer):
(WebKit::WebLayer::fixedToContainerLayer):
* chromium/public/WebLayerPositionConstraint.h: Added.
(WebKit):
(WebLayerPositionConstraint):
(WebKit::WebLayerPositionConstraint::WebLayerPositionConstraint):
(WebKit::WebLayerPositionConstraint::fixedPosition):

Source/WebCore:

This patch adds support to bottom-right fixed-position elements by
introducing WebLayerPositionConstraint to WebLayer.

No new tests. Can't test until chromium patch landed.

* page/scrolling/ScrollingCoordinator.h:
(WebCore::ScrollingCoordinator::updateLayerPositionConstraint):
* page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
(WebCore::clearPositionConstraintExceptForLayer):
(WebCore):
(WebCore::computePositionConstraint):
(WebCore::ScrollingCoordinatorChromium::updateLayerPositionConstraint):
* page/scrolling/chromium/ScrollingCoordinatorChromium.h:
(ScrollingCoordinatorChromium):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::registerScrollingLayers):
* rendering/RenderLayerBacking.h:
(WebCore::RenderLayerBacking::contentsContainmentLayer):
(RenderLayerBacking):
* rendering/RenderLayerCompositor.cpp:
* rendering/RenderLayerCompositor.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@147163 268f45cc-cd09-0410-ab3c-d52691b4dbfc
12 files changed:
Source/Platform/ChangeLog
Source/Platform/Platform.gypi
Source/Platform/chromium/public/WebLayer.h
Source/Platform/chromium/public/WebLayerPositionConstraint.h [new file with mode: 0644]
Source/WebCore/ChangeLog
Source/WebCore/page/scrolling/ScrollingCoordinator.h
Source/WebCore/page/scrolling/chromium/ScrollingCoordinatorChromium.cpp
Source/WebCore/page/scrolling/chromium/ScrollingCoordinatorChromium.h
Source/WebCore/rendering/RenderLayerBacking.cpp
Source/WebCore/rendering/RenderLayerBacking.h
Source/WebCore/rendering/RenderLayerCompositor.cpp
Source/WebCore/rendering/RenderLayerCompositor.h