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

Unified Diff: cc/trees/tree_synchronizer.cc

Issue 1057283003: Remove parts of //cc we aren't using (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 9 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
« no previous file with comments | « cc/trees/tree_synchronizer.h ('k') | cc/trees/tree_synchronizer_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/trees/tree_synchronizer.cc
diff --git a/cc/trees/tree_synchronizer.cc b/cc/trees/tree_synchronizer.cc
deleted file mode 100644
index 095195fd1a920b3f6a559d049de14b7d4920edee..0000000000000000000000000000000000000000
--- a/cc/trees/tree_synchronizer.cc
+++ /dev/null
@@ -1,311 +0,0 @@
-// Copyright 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "cc/trees/tree_synchronizer.h"
-
-#include <set>
-
-#include "base/containers/hash_tables.h"
-#include "base/containers/scoped_ptr_hash_map.h"
-#include "base/logging.h"
-#include "base/trace_event/trace_event.h"
-#include "cc/animation/scrollbar_animation_controller.h"
-#include "cc/input/scrollbar.h"
-#include "cc/layers/layer.h"
-#include "cc/layers/layer_impl.h"
-#include "cc/layers/scrollbar_layer_impl_base.h"
-#include "cc/layers/scrollbar_layer_interface.h"
-
-namespace cc {
-
-typedef base::ScopedPtrHashMap<int, LayerImpl> ScopedPtrLayerImplMap;
-typedef base::hash_map<int, LayerImpl*> RawPtrLayerImplMap;
-
-void CollectExistingLayerImplRecursive(ScopedPtrLayerImplMap* old_layers,
- scoped_ptr<LayerImpl> layer_impl) {
- 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();
- ++it)
- CollectExistingLayerImplRecursive(old_layers, children.take(it));
-
- CollectExistingLayerImplRecursive(old_layers, layer_impl->TakeMaskLayer());
- CollectExistingLayerImplRecursive(old_layers, layer_impl->TakeReplicaLayer());
-
- int id = layer_impl->id();
- old_layers->set(id, layer_impl.Pass());
-}
-
-template <typename LayerType>
-scoped_ptr<LayerImpl> SynchronizeTreesInternal(
- LayerType* layer_root,
- scoped_ptr<LayerImpl> old_layer_impl_root,
- LayerTreeImpl* tree_impl) {
- DCHECK(tree_impl);
-
- TRACE_EVENT0("cc", "TreeSynchronizer::SynchronizeTrees");
- ScopedPtrLayerImplMap old_layers;
- RawPtrLayerImplMap new_layers;
-
- CollectExistingLayerImplRecursive(&old_layers, old_layer_impl_root.Pass());
-
- scoped_ptr<LayerImpl> new_tree = SynchronizeTreesRecursive(
- &new_layers, &old_layers, layer_root, tree_impl);
-
- UpdateScrollbarLayerPointersRecursive(&new_layers, layer_root);
-
- return new_tree.Pass();
-}
-
-scoped_ptr<LayerImpl> TreeSynchronizer::SynchronizeTrees(
- Layer* layer_root,
- scoped_ptr<LayerImpl> old_layer_impl_root,
- LayerTreeImpl* tree_impl) {
- return SynchronizeTreesInternal(
- layer_root, old_layer_impl_root.Pass(), tree_impl);
-}
-
-scoped_ptr<LayerImpl> TreeSynchronizer::SynchronizeTrees(
- LayerImpl* layer_root,
- scoped_ptr<LayerImpl> old_layer_impl_root,
- LayerTreeImpl* tree_impl) {
- return SynchronizeTreesInternal(
- layer_root, old_layer_impl_root.Pass(), tree_impl);
-}
-
-template <typename LayerType>
-scoped_ptr<LayerImpl> ReuseOrCreateLayerImpl(RawPtrLayerImplMap* new_layers,
- ScopedPtrLayerImplMap* old_layers,
- LayerType* layer,
- LayerTreeImpl* tree_impl) {
- scoped_ptr<LayerImpl> layer_impl = old_layers->take(layer->id());
-
- if (!layer_impl)
- layer_impl = layer->CreateLayerImpl(tree_impl);
-
- (*new_layers)[layer->id()] = layer_impl.get();
- return layer_impl.Pass();
-}
-
-template <typename LayerType>
-scoped_ptr<LayerImpl> SynchronizeTreesRecursiveInternal(
- RawPtrLayerImplMap* new_layers,
- ScopedPtrLayerImplMap* old_layers,
- LayerType* layer,
- LayerTreeImpl* tree_impl) {
- if (!layer)
- return nullptr;
-
- scoped_ptr<LayerImpl> layer_impl =
- ReuseOrCreateLayerImpl(new_layers, old_layers, layer, tree_impl);
-
- layer_impl->ClearChildList();
- for (size_t i = 0; i < layer->children().size(); ++i) {
- layer_impl->AddChild(SynchronizeTreesRecursiveInternal(
- new_layers, old_layers, layer->child_at(i), tree_impl));
- }
-
- layer_impl->SetMaskLayer(SynchronizeTreesRecursiveInternal(
- new_layers, old_layers, layer->mask_layer(), tree_impl));
- layer_impl->SetReplicaLayer(SynchronizeTreesRecursiveInternal(
- new_layers, old_layers, layer->replica_layer(), tree_impl));
-
- return layer_impl.Pass();
-}
-
-scoped_ptr<LayerImpl> SynchronizeTreesRecursive(
- RawPtrLayerImplMap* new_layers,
- ScopedPtrLayerImplMap* old_layers,
- Layer* layer,
- LayerTreeImpl* tree_impl) {
- return SynchronizeTreesRecursiveInternal(
- new_layers, old_layers, layer, tree_impl);
-}
-
-scoped_ptr<LayerImpl> SynchronizeTreesRecursive(
- RawPtrLayerImplMap* new_layers,
- ScopedPtrLayerImplMap* old_layers,
- LayerImpl* layer,
- LayerTreeImpl* tree_impl) {
- return SynchronizeTreesRecursiveInternal(
- 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;
- DCHECK(scrollbar_layer_impl);
-
- scrollbar_layer->PushScrollClipPropertiesTo(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
-template <typename LayerType>
-void TreeSynchronizer::PushPropertiesInternal(
- LayerType* layer,
- LayerImpl* layer_impl,
- size_t* num_dependents_need_push_properties_for_parent) {
- if (!layer) {
- DCHECK(!layer_impl);
- return;
- }
-
- DCHECK_EQ(layer->id(), layer_impl->id());
-
- bool push_layer = layer->needs_push_properties();
- bool recurse_on_children_and_dependents =
- layer->descendant_needs_push_properties();
-
- if (push_layer)
- layer->PushPropertiesTo(layer_impl);
- else if (layer->ToScrollbarLayer())
- layer->ToScrollbarLayer()->PushScrollClipPropertiesTo(layer_impl);
-
- size_t num_dependents_need_push_properties = 0;
- if (recurse_on_children_and_dependents) {
- PushPropertiesInternal(layer->mask_layer(),
- layer_impl->mask_layer(),
- &num_dependents_need_push_properties);
- PushPropertiesInternal(layer->replica_layer(),
- layer_impl->replica_layer(),
- &num_dependents_need_push_properties);
-
- const OwnedLayerImplList& impl_children = layer_impl->children();
- DCHECK_EQ(layer->children().size(), impl_children.size());
-
- for (size_t i = 0; i < layer->children().size(); ++i) {
- PushPropertiesInternal(layer->child_at(i),
- impl_children[i],
- &num_dependents_need_push_properties);
- }
-
- // When PushPropertiesTo completes for a layer, it may still keep
- // its needs_push_properties() state if the layer must push itself
- // every PushProperties tree walk. Here we keep track of those layers, and
- // ensure that their ancestors know about them for the next PushProperties
- // tree walk.
- layer->num_dependents_need_push_properties_ =
- num_dependents_need_push_properties;
- }
-
- bool add_self_to_parent = num_dependents_need_push_properties > 0 ||
- layer->needs_push_properties();
- *num_dependents_need_push_properties_for_parent += add_self_to_parent ? 1 : 0;
-}
-
-static void CheckScrollAndClipPointersRecursive(Layer* layer,
- LayerImpl* layer_impl) {
- DCHECK_EQ(!!layer, !!layer_impl);
- if (!layer)
- return;
-
- // Having a scroll parent on the impl thread implies having one the main
- // thread, too. The main thread may have a scroll parent that is not in the
- // tree because it's been removed but not deleted. In this case, the layer
- // impl will have no scroll parent. Same argument applies for clip parents and
- // scroll/clip children.
- DCHECK(!layer_impl->scroll_parent() || !!layer->scroll_parent());
- DCHECK(!layer_impl->clip_parent() || !!layer->clip_parent());
- DCHECK(!layer_impl->scroll_children() || !!layer->scroll_children());
- DCHECK(!layer_impl->clip_children() || !!layer->clip_children());
-
- if (layer_impl->scroll_parent())
- DCHECK_EQ(layer->scroll_parent()->id(), layer_impl->scroll_parent()->id());
-
- if (layer_impl->clip_parent())
- DCHECK_EQ(layer->clip_parent()->id(), layer_impl->clip_parent()->id());
-
- if (layer_impl->scroll_children()) {
- for (std::set<Layer*>::iterator it = layer->scroll_children()->begin();
- it != layer->scroll_children()->end();
- ++it) {
- DCHECK_EQ((*it)->scroll_parent(), layer);
- }
- for (std::set<LayerImpl*>::iterator it =
- layer_impl->scroll_children()->begin();
- it != layer_impl->scroll_children()->end();
- ++it) {
- DCHECK_EQ((*it)->scroll_parent(), layer_impl);
- }
- }
-
- if (layer_impl->clip_children()) {
- for (std::set<Layer*>::iterator it = layer->clip_children()->begin();
- it != layer->clip_children()->end();
- ++it) {
- DCHECK_EQ((*it)->clip_parent(), layer);
- }
- for (std::set<LayerImpl*>::iterator it =
- layer_impl->clip_children()->begin();
- it != layer_impl->clip_children()->end();
- ++it) {
- DCHECK_EQ((*it)->clip_parent(), layer_impl);
- }
- }
-
- for (size_t i = 0u; i < layer->children().size(); ++i) {
- CheckScrollAndClipPointersRecursive(layer->child_at(i),
- layer_impl->child_at(i));
- }
-}
-
-void TreeSynchronizer::PushProperties(Layer* layer,
- LayerImpl* layer_impl) {
- size_t num_dependents_need_push_properties = 0;
- PushPropertiesInternal(
- layer, layer_impl, &num_dependents_need_push_properties);
-#if DCHECK_IS_ON()
- CheckScrollAndClipPointersRecursive(layer, layer_impl);
-#endif
-}
-
-void TreeSynchronizer::PushProperties(LayerImpl* layer, LayerImpl* layer_impl) {
- size_t num_dependents_need_push_properties = 0;
- PushPropertiesInternal(
- layer, layer_impl, &num_dependents_need_push_properties);
-}
-
-} // namespace cc
« no previous file with comments | « cc/trees/tree_synchronizer.h ('k') | cc/trees/tree_synchronizer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698