summaryrefslogtreecommitdiffstats
path: root/mojo/services
diff options
context:
space:
mode:
authorccameron <ccameron@chromium.org>2014-11-21 11:25:18 -0800
committerCommit bot <commit-bot@chromium.org>2014-11-21 19:26:28 +0000
commit8230b68b226157ab9c41b7bd9ad5bc7cd8c47cd6 (patch)
treee95bc21822dc3ac280723cc37e2484b9dfdb8ad8 /mojo/services
parent686ccaf7fa0333c873f500264a766dcd40879d81 (diff)
downloadchromium_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.cc27
-rw-r--r--mojo/services/html_viewer/weblayertreeview_impl.h6
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;