summaryrefslogtreecommitdiffstats
path: root/webkit
diff options
context:
space:
mode:
authorenne@chromium.org <enne@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-07-04 00:39:52 +0000
committerenne@chromium.org <enne@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-07-04 00:39:52 +0000
commitbfa63bcb251b00dc6d7aaacec05cd3b0373159a9 (patch)
treee07668e0f42d7a96b7985cbc86cab578965fd622 /webkit
parent71fb73a3af934182951b12219b29b5281752c533 (diff)
downloadchromium_src-bfa63bcb251b00dc6d7aaacec05cd3b0373159a9.zip
chromium_src-bfa63bcb251b00dc6d7aaacec05cd3b0373159a9.tar.gz
chromium_src-bfa63bcb251b00dc6d7aaacec05cd3b0373159a9.tar.bz2
Update scroll layer positions in WebLayerImpl
This is step 1 of a 3 step patch to disentangle Layer positions and scroll offsets. When scrolling frames, RLC always sets the layer position to be the negative scroll position. In order to remove this from Blink, duplicate that work in the compositor bindings. Step 2 is to make RLC not set scroll position when scrolling goes through the ScrollingCoordinator. See: https://codereview.chromium.org/18187004 Step 3 is to revert this patch and consider scroll offset when computing draw transforms. It's currently ignored. See: https://codereview.chromium.org/18400003 R=jamesr@chromium.org BUG=256381 Review URL: https://chromiumcodereview.appspot.com/18405003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@210086 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit')
-rw-r--r--webkit/renderer/compositor_bindings/web_layer_impl.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/webkit/renderer/compositor_bindings/web_layer_impl.cc b/webkit/renderer/compositor_bindings/web_layer_impl.cc
index 4f3a3b8..c8ea7c3 100644
--- a/webkit/renderer/compositor_bindings/web_layer_impl.cc
+++ b/webkit/renderer/compositor_bindings/web_layer_impl.cc
@@ -227,6 +227,11 @@ void WebLayerImpl::setForceRenderSurface(bool force_render_surface) {
void WebLayerImpl::setScrollPosition(WebKit::WebPoint position) {
layer_->SetScrollOffset(gfx::Point(position).OffsetFromOrigin());
+ // TODO(enne): Blink currently always updates scroll offset and layer position
+ // in tandem for frames in RenderLayerCompositor::frameViewDidScroll.
+ // So that this can be removed in Blink, temporarily do that work here.
+ // See: http://crbug.com/256381
+ layer_->SetPosition(gfx::PointAtOffsetFromOrigin(-layer_->scroll_offset()));
}
WebKit::WebPoint WebLayerImpl::scrollPosition() const {