Chromium Code Reviews| 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_impl.h" | 5 #include "cc/trees/layer_tree_host_impl.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 2202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2213 TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("compositor-worker"), | 2213 TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("compositor-worker"), |
| 2214 "LayerTreeHostImpl::SetLayerTreeMutator"); | 2214 "LayerTreeHostImpl::SetLayerTreeMutator"); |
| 2215 mutator_ = std::move(mutator); | 2215 mutator_ = std::move(mutator); |
| 2216 mutator_->SetClient(this); | 2216 mutator_->SetClient(this); |
| 2217 } | 2217 } |
| 2218 | 2218 |
| 2219 LayerImpl* LayerTreeHostImpl::ViewportMainScrollLayer() { | 2219 LayerImpl* LayerTreeHostImpl::ViewportMainScrollLayer() { |
| 2220 return viewport()->MainScrollLayer(); | 2220 return viewport()->MainScrollLayer(); |
| 2221 } | 2221 } |
| 2222 | 2222 |
| 2223 void LayerTreeHostImpl::SetScrollbarsHidden(int layer_id, bool hidden) { | |
| 2224 scrollbars_hidden_map_[layer_id] = hidden; | |
| 2225 client_->SetNeedsCommitOnImplThread(); | |
|
aelias_OOO_until_Jul13
2016/10/26 19:01:03
Please check if any of the map entries changed and
bokan
2016/10/27 20:56:46
The map is cleared on each commit so that it conta
aelias_OOO_until_Jul13
2016/10/27 21:22:09
OK. Though with that bit added to LayerImpl, the
| |
| 2226 } | |
| 2227 | |
| 2223 void LayerTreeHostImpl::CleanUpTileManagerAndUIResources() { | 2228 void LayerTreeHostImpl::CleanUpTileManagerAndUIResources() { |
| 2224 ClearUIResources(); | 2229 ClearUIResources(); |
| 2225 tile_manager_.FinishTasksAndCleanUp(); | 2230 tile_manager_.FinishTasksAndCleanUp(); |
| 2226 resource_pool_ = nullptr; | 2231 resource_pool_ = nullptr; |
| 2227 single_thread_synchronous_task_graph_runner_ = nullptr; | 2232 single_thread_synchronous_task_graph_runner_ = nullptr; |
| 2228 image_decode_controller_ = nullptr; | 2233 image_decode_controller_ = nullptr; |
| 2229 | 2234 |
| 2230 // We've potentially just freed a large number of resources on our various | 2235 // We've potentially just freed a large number of resources on our various |
| 2231 // contexts. Flushing now helps ensure these are cleaned up quickly | 2236 // contexts. Flushing now helps ensure these are cleaned up quickly |
| 2232 // preventing driver cache growth. See crbug.com/643251 | 2237 // preventing driver cache growth. See crbug.com/643251 |
| (...skipping 1106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3339 static void CollectScrollDeltas(ScrollAndScaleSet* scroll_info, | 3344 static void CollectScrollDeltas(ScrollAndScaleSet* scroll_info, |
| 3340 LayerTreeImpl* tree_impl) { | 3345 LayerTreeImpl* tree_impl) { |
| 3341 if (tree_impl->LayerListIsEmpty()) | 3346 if (tree_impl->LayerListIsEmpty()) |
| 3342 return; | 3347 return; |
| 3343 | 3348 |
| 3344 int inner_viewport_layer_id = | 3349 int inner_viewport_layer_id = |
| 3345 tree_impl->InnerViewportScrollLayer() | 3350 tree_impl->InnerViewportScrollLayer() |
| 3346 ? tree_impl->InnerViewportScrollLayer()->id() | 3351 ? tree_impl->InnerViewportScrollLayer()->id() |
| 3347 : Layer::INVALID_ID; | 3352 : Layer::INVALID_ID; |
| 3348 | 3353 |
| 3349 return tree_impl->property_trees()->scroll_tree.CollectScrollDeltas( | 3354 tree_impl->property_trees()->scroll_tree.CollectScrollDeltas( |
| 3350 scroll_info, inner_viewport_layer_id); | 3355 scroll_info, inner_viewport_layer_id); |
| 3351 } | 3356 } |
| 3352 | 3357 |
| 3358 static void CollectScrollbarUpdates( | |
| 3359 ScrollAndScaleSet* scroll_info, | |
| 3360 std::unordered_map<int, bool>* scrollbars_hidden_map) { | |
| 3361 scroll_info->scrollbars.reserve(scrollbars_hidden_map->size()); | |
| 3362 for (auto& pair : *scrollbars_hidden_map) { | |
| 3363 scroll_info->scrollbars.push_back( | |
| 3364 LayerTreeHostCommon::ScrollbarsUpdateInfo(pair.first, pair.second)); | |
| 3365 } | |
| 3366 scrollbars_hidden_map->clear(); | |
| 3367 } | |
| 3368 | |
| 3353 std::unique_ptr<ScrollAndScaleSet> LayerTreeHostImpl::ProcessScrollDeltas() { | 3369 std::unique_ptr<ScrollAndScaleSet> LayerTreeHostImpl::ProcessScrollDeltas() { |
| 3354 std::unique_ptr<ScrollAndScaleSet> scroll_info(new ScrollAndScaleSet()); | 3370 std::unique_ptr<ScrollAndScaleSet> scroll_info(new ScrollAndScaleSet()); |
| 3355 | 3371 |
| 3356 CollectScrollDeltas(scroll_info.get(), active_tree_.get()); | 3372 CollectScrollDeltas(scroll_info.get(), active_tree_.get()); |
| 3373 CollectScrollbarUpdates(scroll_info.get(), &scrollbars_hidden_map_); | |
| 3357 scroll_info->page_scale_delta = | 3374 scroll_info->page_scale_delta = |
| 3358 active_tree_->page_scale_factor()->PullDeltaForMainThread(); | 3375 active_tree_->page_scale_factor()->PullDeltaForMainThread(); |
| 3359 scroll_info->top_controls_delta = | 3376 scroll_info->top_controls_delta = |
| 3360 active_tree()->top_controls_shown_ratio()->PullDeltaForMainThread(); | 3377 active_tree()->top_controls_shown_ratio()->PullDeltaForMainThread(); |
| 3361 scroll_info->elastic_overscroll_delta = | 3378 scroll_info->elastic_overscroll_delta = |
| 3362 active_tree_->elastic_overscroll()->PullDeltaForMainThread(); | 3379 active_tree_->elastic_overscroll()->PullDeltaForMainThread(); |
| 3363 scroll_info->swap_promises.swap(swap_promises_for_main_thread_scroll_update_); | 3380 scroll_info->swap_promises.swap(swap_promises_for_main_thread_scroll_update_); |
| 3364 | 3381 |
| 3365 return scroll_info; | 3382 return scroll_info; |
| 3366 } | 3383 } |
| (...skipping 717 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4084 if (is_visible) { | 4101 if (is_visible) { |
| 4085 worker_context_visibility_ = | 4102 worker_context_visibility_ = |
| 4086 worker_context->CacheController()->ClientBecameVisible(); | 4103 worker_context->CacheController()->ClientBecameVisible(); |
| 4087 } else { | 4104 } else { |
| 4088 worker_context->CacheController()->ClientBecameNotVisible( | 4105 worker_context->CacheController()->ClientBecameNotVisible( |
| 4089 std::move(worker_context_visibility_)); | 4106 std::move(worker_context_visibility_)); |
| 4090 } | 4107 } |
| 4091 } | 4108 } |
| 4092 | 4109 |
| 4093 } // namespace cc | 4110 } // namespace cc |
| OLD | NEW |