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

Side by Side Diff: cc/trees/layer_tree_host.cc

Issue 2707243005: Discard compositor frames from unloaded web content (Closed)
Patch Set: Review comment addressed Created 3 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 unified diff | Download patch
OLDNEW
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 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 LayerTreeHost::LayerTreeHost(InitParams* params, CompositorMode mode) 94 LayerTreeHost::LayerTreeHost(InitParams* params, CompositorMode mode)
95 : micro_benchmark_controller_(this), 95 : micro_benchmark_controller_(this),
96 compositor_mode_(mode), 96 compositor_mode_(mode),
97 ui_resource_manager_(base::MakeUnique<UIResourceManager>()), 97 ui_resource_manager_(base::MakeUnique<UIResourceManager>()),
98 client_(params->client), 98 client_(params->client),
99 rendering_stats_instrumentation_(RenderingStatsInstrumentation::Create()), 99 rendering_stats_instrumentation_(RenderingStatsInstrumentation::Create()),
100 settings_(*params->settings), 100 settings_(*params->settings),
101 debug_state_(settings_.initial_debug_state), 101 debug_state_(settings_.initial_debug_state),
102 id_(s_layer_tree_host_sequence_number.GetNext() + 1), 102 id_(s_layer_tree_host_sequence_number.GetNext() + 1),
103 task_graph_runner_(params->task_graph_runner), 103 task_graph_runner_(params->task_graph_runner),
104 content_source_id_(0),
104 event_listener_properties_(), 105 event_listener_properties_(),
105 mutator_host_(params->mutator_host), 106 mutator_host_(params->mutator_host),
106 image_worker_task_runner_(params->image_worker_task_runner) { 107 image_worker_task_runner_(params->image_worker_task_runner) {
107 DCHECK(task_graph_runner_); 108 DCHECK(task_graph_runner_);
108 109
109 mutator_host_->SetMutatorHostClient(this); 110 mutator_host_->SetMutatorHostClient(this);
110 111
111 rendering_stats_instrumentation_->set_record_rendering_stats( 112 rendering_stats_instrumentation_->set_record_rendering_stats(
112 debug_state_.RecordRenderingStats()); 113 debug_state_.RecordRenderingStats());
113 } 114 }
(...skipping 840 matching lines...) Expand 10 before | Expand all | Expand 10 after
954 955
955 void LayerTreeHost::SetDeviceColorSpace( 956 void LayerTreeHost::SetDeviceColorSpace(
956 const gfx::ColorSpace& device_color_space) { 957 const gfx::ColorSpace& device_color_space) {
957 if (device_color_space_ == device_color_space) 958 if (device_color_space_ == device_color_space)
958 return; 959 return;
959 device_color_space_ = device_color_space; 960 device_color_space_ = device_color_space;
960 LayerTreeHostCommon::CallFunctionForEveryLayer( 961 LayerTreeHostCommon::CallFunctionForEveryLayer(
961 this, [](Layer* layer) { layer->SetNeedsDisplay(); }); 962 this, [](Layer* layer) { layer->SetNeedsDisplay(); });
962 } 963 }
963 964
965 void LayerTreeHost::SetContentSourceId(uint32_t id) {
966 if (content_source_id_ == id)
967 return;
968 content_source_id_ = id;
969 SetNeedsCommit();
970 }
971
964 void LayerTreeHost::RegisterLayer(Layer* layer) { 972 void LayerTreeHost::RegisterLayer(Layer* layer) {
965 DCHECK(!LayerById(layer->id())); 973 DCHECK(!LayerById(layer->id()));
966 DCHECK(!in_paint_layer_contents_); 974 DCHECK(!in_paint_layer_contents_);
967 layer_id_map_[layer->id()] = layer; 975 layer_id_map_[layer->id()] = layer;
968 if (layer->element_id()) { 976 if (layer->element_id()) {
969 mutator_host_->RegisterElement(layer->element_id(), 977 mutator_host_->RegisterElement(layer->element_id(),
970 ElementListType::ACTIVE); 978 ElementListType::ACTIVE);
971 } 979 }
972 } 980 }
973 981
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
1124 tree_impl->set_bottom_controls_height(bottom_controls_height_); 1132 tree_impl->set_bottom_controls_height(bottom_controls_height_);
1125 tree_impl->PushBrowserControlsFromMainThread(top_controls_shown_ratio_); 1133 tree_impl->PushBrowserControlsFromMainThread(top_controls_shown_ratio_);
1126 tree_impl->elastic_overscroll()->PushFromMainThread(elastic_overscroll_); 1134 tree_impl->elastic_overscroll()->PushFromMainThread(elastic_overscroll_);
1127 if (tree_impl->IsActiveTree()) 1135 if (tree_impl->IsActiveTree())
1128 tree_impl->elastic_overscroll()->PushPendingToActive(); 1136 tree_impl->elastic_overscroll()->PushPendingToActive();
1129 1137
1130 tree_impl->set_painted_device_scale_factor(painted_device_scale_factor_); 1138 tree_impl->set_painted_device_scale_factor(painted_device_scale_factor_);
1131 1139
1132 tree_impl->SetDeviceColorSpace(device_color_space_); 1140 tree_impl->SetDeviceColorSpace(device_color_space_);
1133 1141
1142 tree_impl->set_content_source_id(content_source_id_);
1143
1134 if (pending_page_scale_animation_) { 1144 if (pending_page_scale_animation_) {
1135 tree_impl->SetPendingPageScaleAnimation( 1145 tree_impl->SetPendingPageScaleAnimation(
1136 std::move(pending_page_scale_animation_)); 1146 std::move(pending_page_scale_animation_));
1137 } 1147 }
1138 1148
1139 DCHECK(!tree_impl->ViewportSizeInvalid()); 1149 DCHECK(!tree_impl->ViewportSizeInvalid());
1140 1150
1141 tree_impl->set_has_ever_been_drawn(false); 1151 tree_impl->set_has_ever_been_drawn(false);
1142 } 1152 }
1143 1153
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
1263 LayerListReverseIterator<Layer> LayerTreeHost::rend() { 1273 LayerListReverseIterator<Layer> LayerTreeHost::rend() {
1264 return LayerListReverseIterator<Layer>(nullptr); 1274 return LayerListReverseIterator<Layer>(nullptr);
1265 } 1275 }
1266 1276
1267 void LayerTreeHost::SetNeedsDisplayOnAllLayers() { 1277 void LayerTreeHost::SetNeedsDisplayOnAllLayers() {
1268 for (auto* layer : *this) 1278 for (auto* layer : *this)
1269 layer->SetNeedsDisplay(); 1279 layer->SetNeedsDisplay();
1270 } 1280 }
1271 1281
1272 } // namespace cc 1282 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698