diff options
author | ccameron <ccameron@chromium.org> | 2014-11-21 11:25:18 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-11-21 19:26:28 +0000 |
commit | 8230b68b226157ab9c41b7bd9ad5bc7cd8c47cd6 (patch) | |
tree | e95bc21822dc3ac280723cc37e2484b9dfdb8ad8 /mojo/services | |
parent | 686ccaf7fa0333c873f500264a766dcd40879d81 (diff) | |
download | chromium_src-8230b68b226157ab9c41b7bd9ad5bc7cd8c47cd6.zip chromium_src-8230b68b226157ab9c41b7bd9ad5bc7cd8c47cd6.tar.gz chromium_src-8230b68b226157ab9c41b7bd9ad5bc7cd8c47cd6.tar.bz2 |
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}
Diffstat (limited to 'mojo/services')
-rw-r--r-- | mojo/services/html_viewer/weblayertreeview_impl.cc | 27 | ||||
-rw-r--r-- | mojo/services/html_viewer/weblayertreeview_impl.h | 6 |
2 files changed, 30 insertions, 3 deletions
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<const cc_blink::WebLayerImpl*>(overscrollElasticityLayer) + ->layer(), static_cast<const cc_blink::WebLayerImpl*>(pageScaleLayer)->layer(), static_cast<const cc_blink::WebLayerImpl*>(innerViewportScrollLayer) ->layer(), // The outer viewport layer will only exist when using pinch virtual // viewports. - outerViewportScrollLayer ? static_cast<const cc_blink::WebLayerImpl*>( - outerViewportScrollLayer)->layer() - : NULL); + outerViewportScrollLayer + ? static_cast<const cc_blink::WebLayerImpl*>(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<const cc_blink::WebLayerImpl*>(pageScaleLayer)->layer(), + static_cast<const cc_blink::WebLayerImpl*>(innerViewportScrollLayer) + ->layer(), + // The outer viewport layer will only exist when using pinch virtual + // viewports. + outerViewportScrollLayer + ? static_cast<const cc_blink::WebLayerImpl*>(outerViewportScrollLayer) + ->layer() + : NULL); } void WebLayerTreeViewImpl::clearViewportLayers() { layer_tree_host_->RegisterViewportLayers(scoped_refptr<cc::Layer>(), scoped_refptr<cc::Layer>(), + scoped_refptr<cc::Layer>(), scoped_refptr<cc::Layer>()); } 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; |