| OLD | NEW |
| 1 // Copyright 2011 The Chromium Authors. All rights reserved. | 1 // Copyright 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "cc/trees/layer_tree_host.h" | 5 #include "cc/trees/layer_tree_host.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <algorithm> | 10 #include <algorithm> |
| (...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 166 LayerTreeHost::~LayerTreeHost() { | 166 LayerTreeHost::~LayerTreeHost() { |
| 167 // Track when we're inside a main frame to see if compositor is being | 167 // Track when we're inside a main frame to see if compositor is being |
| 168 // destroyed midway which causes a crash. crbug.com/654672 | 168 // destroyed midway which causes a crash. crbug.com/654672 |
| 169 DCHECK(!inside_main_frame_); | 169 DCHECK(!inside_main_frame_); |
| 170 TRACE_EVENT0("cc", "LayerTreeHostInProcess::~LayerTreeHostInProcess"); | 170 TRACE_EVENT0("cc", "LayerTreeHostInProcess::~LayerTreeHostInProcess"); |
| 171 | 171 |
| 172 // Clear any references into the LayerTreeHost. | 172 // Clear any references into the LayerTreeHost. |
| 173 mutator_host_->SetMutatorHostClient(nullptr); | 173 mutator_host_->SetMutatorHostClient(nullptr); |
| 174 | 174 |
| 175 // We must clear any pointers into the layer tree prior to destroying it. | 175 // We must clear any pointers into the layer tree prior to destroying it. |
| 176 RegisterViewportLayers(nullptr, nullptr, nullptr, nullptr); | 176 RegisterViewportLayers(nullptr, nullptr, nullptr, nullptr, nullptr, nullptr); |
| 177 | 177 |
| 178 if (root_layer_) { | 178 if (root_layer_) { |
| 179 root_layer_->SetLayerTreeHost(nullptr); | 179 root_layer_->SetLayerTreeHost(nullptr); |
| 180 | 180 |
| 181 // The root layer must be destroyed before the layer tree. We've made a | 181 // The root layer must be destroyed before the layer tree. We've made a |
| 182 // contract with our animation controllers that the animation_host will | 182 // contract with our animation controllers that the animation_host will |
| 183 // outlive them, and we must make good. | 183 // outlive them, and we must make good. |
| 184 root_layer_ = nullptr; | 184 root_layer_ = nullptr; |
| 185 } | 185 } |
| 186 | 186 |
| (...skipping 712 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 899 // Reset gpu rasterization tracking. | 899 // Reset gpu rasterization tracking. |
| 900 // This flag is sticky until a new tree comes along. | 900 // This flag is sticky until a new tree comes along. |
| 901 ResetGpuRasterizationTracking(); | 901 ResetGpuRasterizationTracking(); |
| 902 | 902 |
| 903 SetNeedsFullTreeSync(); | 903 SetNeedsFullTreeSync(); |
| 904 } | 904 } |
| 905 | 905 |
| 906 void LayerTreeHost::RegisterViewportLayers( | 906 void LayerTreeHost::RegisterViewportLayers( |
| 907 scoped_refptr<Layer> overscroll_elasticity_layer, | 907 scoped_refptr<Layer> overscroll_elasticity_layer, |
| 908 scoped_refptr<Layer> page_scale_layer, | 908 scoped_refptr<Layer> page_scale_layer, |
| 909 scoped_refptr<Layer> inner_viewport_container_layer, |
| 910 scoped_refptr<Layer> outer_viewport_container_layer, |
| 909 scoped_refptr<Layer> inner_viewport_scroll_layer, | 911 scoped_refptr<Layer> inner_viewport_scroll_layer, |
| 910 scoped_refptr<Layer> outer_viewport_scroll_layer) { | 912 scoped_refptr<Layer> outer_viewport_scroll_layer) { |
| 911 DCHECK(!inner_viewport_scroll_layer || | 913 DCHECK(!inner_viewport_scroll_layer || |
| 912 inner_viewport_scroll_layer != outer_viewport_scroll_layer); | 914 inner_viewport_scroll_layer != outer_viewport_scroll_layer); |
| 913 overscroll_elasticity_layer_ = overscroll_elasticity_layer; | 915 overscroll_elasticity_layer_ = overscroll_elasticity_layer; |
| 914 page_scale_layer_ = page_scale_layer; | 916 page_scale_layer_ = page_scale_layer; |
| 917 inner_viewport_container_layer_ = inner_viewport_container_layer; |
| 918 outer_viewport_container_layer_ = outer_viewport_container_layer; |
| 915 inner_viewport_scroll_layer_ = inner_viewport_scroll_layer; | 919 inner_viewport_scroll_layer_ = inner_viewport_scroll_layer; |
| 916 outer_viewport_scroll_layer_ = outer_viewport_scroll_layer; | 920 outer_viewport_scroll_layer_ = outer_viewport_scroll_layer; |
| 917 } | 921 } |
| 918 | 922 |
| 919 void LayerTreeHost::RegisterSelection(const LayerSelection& selection) { | 923 void LayerTreeHost::RegisterSelection(const LayerSelection& selection) { |
| 920 if (selection_ == selection) | 924 if (selection_ == selection) |
| 921 return; | 925 return; |
| 922 | 926 |
| 923 selection_ = selection; | 927 selection_ = selection; |
| 924 SetNeedsCommit(); | 928 SetNeedsCommit(); |
| (...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1166 EventListenerClass::kMouseWheel, | 1170 EventListenerClass::kMouseWheel, |
| 1167 event_listener_properties(EventListenerClass::kMouseWheel)); | 1171 event_listener_properties(EventListenerClass::kMouseWheel)); |
| 1168 tree_impl->set_event_listener_properties( | 1172 tree_impl->set_event_listener_properties( |
| 1169 EventListenerClass::kTouchEndOrCancel, | 1173 EventListenerClass::kTouchEndOrCancel, |
| 1170 event_listener_properties(EventListenerClass::kTouchEndOrCancel)); | 1174 event_listener_properties(EventListenerClass::kTouchEndOrCancel)); |
| 1171 | 1175 |
| 1172 if (page_scale_layer_ && inner_viewport_scroll_layer_) { | 1176 if (page_scale_layer_ && inner_viewport_scroll_layer_) { |
| 1173 tree_impl->SetViewportLayersFromIds( | 1177 tree_impl->SetViewportLayersFromIds( |
| 1174 overscroll_elasticity_layer_ ? overscroll_elasticity_layer_->id() | 1178 overscroll_elasticity_layer_ ? overscroll_elasticity_layer_->id() |
| 1175 : Layer::INVALID_ID, | 1179 : Layer::INVALID_ID, |
| 1176 page_scale_layer_->id(), inner_viewport_scroll_layer_->id(), | 1180 page_scale_layer_->id(), |
| 1181 inner_viewport_container_layer_ ? inner_viewport_container_layer_->id() |
| 1182 : Layer::INVALID_ID, |
| 1183 outer_viewport_container_layer_ ? outer_viewport_container_layer_->id() |
| 1184 : Layer::INVALID_ID, |
| 1185 inner_viewport_scroll_layer_->id(), |
| 1177 outer_viewport_scroll_layer_ ? outer_viewport_scroll_layer_->id() | 1186 outer_viewport_scroll_layer_ ? outer_viewport_scroll_layer_->id() |
| 1178 : Layer::INVALID_ID); | 1187 : Layer::INVALID_ID); |
| 1179 DCHECK(inner_viewport_scroll_layer_->IsContainerForFixedPositionLayers()); | 1188 DCHECK(inner_viewport_scroll_layer_->IsContainerForFixedPositionLayers()); |
| 1180 } else { | 1189 } else { |
| 1181 tree_impl->ClearViewportLayers(); | 1190 tree_impl->ClearViewportLayers(); |
| 1182 } | 1191 } |
| 1183 | 1192 |
| 1184 tree_impl->RegisterSelection(selection_); | 1193 tree_impl->RegisterSelection(selection_); |
| 1185 | 1194 |
| 1186 tree_impl->PushPageScaleFromMainThread( | 1195 tree_impl->PushPageScaleFromMainThread( |
| (...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1475 void LayerTreeHost::SetNeedsDisplayOnAllLayers() { | 1484 void LayerTreeHost::SetNeedsDisplayOnAllLayers() { |
| 1476 for (auto* layer : *this) | 1485 for (auto* layer : *this) |
| 1477 layer->SetNeedsDisplay(); | 1486 layer->SetNeedsDisplay(); |
| 1478 } | 1487 } |
| 1479 | 1488 |
| 1480 void LayerTreeHost::SetHasCopyRequest(bool has_copy_request) { | 1489 void LayerTreeHost::SetHasCopyRequest(bool has_copy_request) { |
| 1481 has_copy_request_ = has_copy_request; | 1490 has_copy_request_ = has_copy_request; |
| 1482 } | 1491 } |
| 1483 | 1492 |
| 1484 } // namespace cc | 1493 } // namespace cc |
| OLD | NEW |