From 8230b68b226157ab9c41b7bd9ad5bc7cd8c47cd6 Mon Sep 17 00:00:00 2001 From: ccameron Date: Fri, 21 Nov 2014 11:25:18 -0800 Subject: Plumb scroll elasticity layer from Blink to cc Implement the 4-argument version of registerViewportLayers for all implementers of WebLayerTreeView. Add a scroll elasticity layer to cc::LayerTreeHost and through to cc::LayerTreeHostImpl. These layers are still optional, and most tests set them to NULL. Once the Blink side that pushes real layers through is completed, the scroll elasticity layer will be required. R=enne TBR=jam BUG=133097 Review URL: https://codereview.chromium.org/731863009 Cr-Commit-Position: refs/heads/master@{#305260} --- mojo/services/html_viewer/weblayertreeview_impl.cc | 27 +++++++++++++++++++--- mojo/services/html_viewer/weblayertreeview_impl.h | 6 +++++ 2 files changed, 30 insertions(+), 3 deletions(-) (limited to 'mojo') diff --git a/mojo/services/html_viewer/weblayertreeview_impl.cc b/mojo/services/html_viewer/weblayertreeview_impl.cc index 1f025a9..1251576 100644 --- a/mojo/services/html_viewer/weblayertreeview_impl.cc +++ b/mojo/services/html_viewer/weblayertreeview_impl.cc @@ -175,23 +175,44 @@ void WebLayerTreeViewImpl::registerForAnimations(blink::WebLayer* layer) { } void WebLayerTreeViewImpl::registerViewportLayers( + const blink::WebLayer* overscrollElasticityLayer, const blink::WebLayer* pageScaleLayer, const blink::WebLayer* innerViewportScrollLayer, const blink::WebLayer* outerViewportScrollLayer) { layer_tree_host_->RegisterViewportLayers( + static_cast(overscrollElasticityLayer) + ->layer(), static_cast(pageScaleLayer)->layer(), static_cast(innerViewportScrollLayer) ->layer(), // The outer viewport layer will only exist when using pinch virtual // viewports. - outerViewportScrollLayer ? static_cast( - outerViewportScrollLayer)->layer() - : NULL); + outerViewportScrollLayer + ? static_cast(outerViewportScrollLayer) + ->layer() + : NULL); +} + +void WebLayerTreeViewImpl::registerViewportLayers( + const blink::WebLayer* pageScaleLayer, + const blink::WebLayer* innerViewportScrollLayer, + const blink::WebLayer* outerViewportScrollLayer) { + layer_tree_host_->RegisterViewportLayers( + NULL, static_cast(pageScaleLayer)->layer(), + static_cast(innerViewportScrollLayer) + ->layer(), + // The outer viewport layer will only exist when using pinch virtual + // viewports. + outerViewportScrollLayer + ? static_cast(outerViewportScrollLayer) + ->layer() + : NULL); } void WebLayerTreeViewImpl::clearViewportLayers() { layer_tree_host_->RegisterViewportLayers(scoped_refptr(), scoped_refptr(), + scoped_refptr(), scoped_refptr()); } diff --git a/mojo/services/html_viewer/weblayertreeview_impl.h b/mojo/services/html_viewer/weblayertreeview_impl.h index a567aaf..7ec38a9 100644 --- a/mojo/services/html_viewer/weblayertreeview_impl.h +++ b/mojo/services/html_viewer/weblayertreeview_impl.h @@ -96,6 +96,12 @@ class WebLayerTreeViewImpl : public blink::WebLayerTreeView, virtual void setDeferCommits(bool defer_commits) {} virtual void registerForAnimations(blink::WebLayer* layer) override; virtual void registerViewportLayers( + const blink::WebLayer* overscrollElasticityLayer, + const blink::WebLayer* pageScaleLayerLayer, + const blink::WebLayer* innerViewportScrollLayer, + const blink::WebLayer* outerViewportScrollLayer) override; + // TODO(ccameron): Remove this when Blink no longer calls it. + virtual void registerViewportLayers( const blink::WebLayer* page_scale_layer, const blink::WebLayer* inner_viewport_scroll_layer, const blink::WebLayer* outer_viewport_scroll_layer) override; -- cgit v1.1