| 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) {
|
|
|