Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(8)

Unified Diff: cc/trees/tree_synchronizer.cc

Issue 23983047: Pinch/Zoom Infrastructure & Plumbing CL (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Backup 2013.10.29 Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: cc/trees/tree_synchronizer.cc
diff --git a/cc/trees/tree_synchronizer.cc b/cc/trees/tree_synchronizer.cc
index 48a9d5bd966e35bb9ca6e8dafc797efde999d537..651aaed7997eb9ae58a004bf7df4813dc4f54171 100644
--- a/cc/trees/tree_synchronizer.cc
+++ b/cc/trees/tree_synchronizer.cc
@@ -25,6 +25,13 @@ void CollectExistingLayerImplRecursive(ScopedPtrLayerImplMap* old_layers,
if (!layer_impl)
return;
+ layer_impl->ClearScrollbars();
+ if (ScrollbarLayerImplBase* scrollbar_layer =
+ layer_impl->ToScrollbarLayer()) {
+ scrollbar_layer->ClearClipLayer();
+ scrollbar_layer->ClearScrollLayer();
+ }
+
OwnedLayerImplList& children = layer_impl->children();
for (OwnedLayerImplList::iterator it = children.begin();
it != children.end();
@@ -54,8 +61,6 @@ scoped_ptr<LayerImpl> SynchronizeTreesInternal(
scoped_ptr<LayerImpl> new_tree = SynchronizeTreesRecursive(
&new_layers, &old_layers, layer_root, tree_impl);
- UpdateScrollbarLayerPointersRecursive(&new_layers, layer_root);
-
return new_tree.Pass();
}
@@ -112,11 +117,6 @@ scoped_ptr<LayerImpl> SynchronizeTreesRecursiveInternal(
layer_impl->SetReplicaLayer(SynchronizeTreesRecursiveInternal(
new_layers, old_layers, layer->replica_layer(), tree_impl));
- // Remove all dangling pointers. The pointers will be setup later in
- // UpdateScrollbarLayerPointersRecursive phase
- layer_impl->SetHorizontalScrollbarLayer(NULL);
- layer_impl->SetVerticalScrollbarLayer(NULL);
-
return layer_impl.Pass();
}
@@ -138,54 +138,6 @@ scoped_ptr<LayerImpl> SynchronizeTreesRecursive(
new_layers, old_layers, layer, tree_impl);
}
-template <typename LayerType, typename ScrollbarLayerType>
-void UpdateScrollbarLayerPointersRecursiveInternal(
- const RawPtrLayerImplMap* new_layers,
- LayerType* layer) {
- if (!layer)
- return;
-
- for (size_t i = 0; i < layer->children().size(); ++i) {
- UpdateScrollbarLayerPointersRecursiveInternal<
- LayerType, ScrollbarLayerType>(new_layers, layer->child_at(i));
- }
-
- ScrollbarLayerType* scrollbar_layer = layer->ToScrollbarLayer();
- if (!scrollbar_layer)
- return;
-
- RawPtrLayerImplMap::const_iterator iter =
- new_layers->find(layer->id());
- ScrollbarLayerImplBase* scrollbar_layer_impl =
- iter != new_layers->end()
- ? static_cast<ScrollbarLayerImplBase*>(iter->second)
- : NULL;
- iter = new_layers->find(scrollbar_layer->ScrollLayerId());
- LayerImpl* scroll_layer_impl =
- iter != new_layers->end() ? iter->second : NULL;
-
- DCHECK(scrollbar_layer_impl);
- DCHECK(scroll_layer_impl);
-
- if (scrollbar_layer->orientation() == HORIZONTAL)
- scroll_layer_impl->SetHorizontalScrollbarLayer(scrollbar_layer_impl);
- else
- scroll_layer_impl->SetVerticalScrollbarLayer(scrollbar_layer_impl);
-}
-
-void UpdateScrollbarLayerPointersRecursive(const RawPtrLayerImplMap* new_layers,
- Layer* layer) {
- UpdateScrollbarLayerPointersRecursiveInternal<Layer, ScrollbarLayerInterface>(
- new_layers, layer);
-}
-
-void UpdateScrollbarLayerPointersRecursive(const RawPtrLayerImplMap* new_layers,
- LayerImpl* layer) {
- UpdateScrollbarLayerPointersRecursiveInternal<
- LayerImpl,
- ScrollbarLayerImplBase>(new_layers, layer);
-}
-
// static
void TreeSynchronizer::SetNumDependentsNeedPushProperties(
Layer* layer, size_t num) {

Powered by Google App Engine
This is Rietveld 408576698