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

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

Issue 300323005: Route selection bounds updates through the compositor (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Updates Created 6 years, 6 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 <algorithm> 7 #include <algorithm>
8 #include <stack> 8 #include <stack>
9 #include <string> 9 #include <string>
10 10
(...skipping 10 matching lines...) Expand all
21 #include "cc/base/math_util.h" 21 #include "cc/base/math_util.h"
22 #include "cc/debug/devtools_instrumentation.h" 22 #include "cc/debug/devtools_instrumentation.h"
23 #include "cc/debug/rendering_stats_instrumentation.h" 23 #include "cc/debug/rendering_stats_instrumentation.h"
24 #include "cc/input/top_controls_manager.h" 24 #include "cc/input/top_controls_manager.h"
25 #include "cc/layers/heads_up_display_layer.h" 25 #include "cc/layers/heads_up_display_layer.h"
26 #include "cc/layers/heads_up_display_layer_impl.h" 26 #include "cc/layers/heads_up_display_layer_impl.h"
27 #include "cc/layers/layer.h" 27 #include "cc/layers/layer.h"
28 #include "cc/layers/layer_iterator.h" 28 #include "cc/layers/layer_iterator.h"
29 #include "cc/layers/painted_scrollbar_layer.h" 29 #include "cc/layers/painted_scrollbar_layer.h"
30 #include "cc/layers/render_surface.h" 30 #include "cc/layers/render_surface.h"
31 #include "cc/output/selection_handle.h"
31 #include "cc/resources/prioritized_resource_manager.h" 32 #include "cc/resources/prioritized_resource_manager.h"
32 #include "cc/resources/ui_resource_request.h" 33 #include "cc/resources/ui_resource_request.h"
33 #include "cc/trees/layer_tree_host_client.h" 34 #include "cc/trees/layer_tree_host_client.h"
34 #include "cc/trees/layer_tree_host_common.h" 35 #include "cc/trees/layer_tree_host_common.h"
35 #include "cc/trees/layer_tree_host_impl.h" 36 #include "cc/trees/layer_tree_host_impl.h"
36 #include "cc/trees/layer_tree_impl.h" 37 #include "cc/trees/layer_tree_impl.h"
37 #include "cc/trees/occlusion_tracker.h" 38 #include "cc/trees/occlusion_tracker.h"
38 #include "cc/trees/single_thread_proxy.h" 39 #include "cc/trees/single_thread_proxy.h"
39 #include "cc/trees/thread_proxy.h" 40 #include "cc/trees/thread_proxy.h"
40 #include "cc/trees/tree_synchronizer.h" 41 #include "cc/trees/tree_synchronizer.h"
(...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after
321 if (page_scale_layer_ && inner_viewport_scroll_layer_) { 322 if (page_scale_layer_ && inner_viewport_scroll_layer_) {
322 sync_tree->SetViewportLayersFromIds( 323 sync_tree->SetViewportLayersFromIds(
323 page_scale_layer_->id(), 324 page_scale_layer_->id(),
324 inner_viewport_scroll_layer_->id(), 325 inner_viewport_scroll_layer_->id(),
325 outer_viewport_scroll_layer_ ? outer_viewport_scroll_layer_->id() 326 outer_viewport_scroll_layer_ ? outer_viewport_scroll_layer_->id()
326 : Layer::INVALID_ID); 327 : Layer::INVALID_ID);
327 } else { 328 } else {
328 sync_tree->ClearViewportLayers(); 329 sync_tree->ClearViewportLayers();
329 } 330 }
330 331
332 sync_tree->RegisterSelection(
333 start_selection_layer_ ? start_selection_layer_->id() : 0,
334 start_selection_handle_,
335 end_selection_layer_ ? end_selection_layer_->id() : 0,
336 end_selection_handle_);
337
331 float page_scale_delta, sent_page_scale_delta; 338 float page_scale_delta, sent_page_scale_delta;
332 if (settings_.impl_side_painting) { 339 if (settings_.impl_side_painting) {
333 // Update the delta from the active tree, which may have 340 // Update the delta from the active tree, which may have
334 // adjusted its delta prior to the pending tree being created. 341 // adjusted its delta prior to the pending tree being created.
335 // This code is equivalent to that in LayerTreeImpl::SetPageScaleDelta. 342 // This code is equivalent to that in LayerTreeImpl::SetPageScaleDelta.
336 DCHECK_EQ(1.f, sync_tree->sent_page_scale_delta()); 343 DCHECK_EQ(1.f, sync_tree->sent_page_scale_delta());
337 page_scale_delta = host_impl->active_tree()->page_scale_delta(); 344 page_scale_delta = host_impl->active_tree()->page_scale_delta();
338 sent_page_scale_delta = host_impl->active_tree()->sent_page_scale_delta(); 345 sent_page_scale_delta = host_impl->active_tree()->sent_page_scale_delta();
339 } else { 346 } else {
340 page_scale_delta = sync_tree->page_scale_delta(); 347 page_scale_delta = sync_tree->page_scale_delta();
(...skipping 898 matching lines...) Expand 10 before | Expand all | Expand 10 after
1239 1246
1240 void LayerTreeHost::RegisterViewportLayers( 1247 void LayerTreeHost::RegisterViewportLayers(
1241 scoped_refptr<Layer> page_scale_layer, 1248 scoped_refptr<Layer> page_scale_layer,
1242 scoped_refptr<Layer> inner_viewport_scroll_layer, 1249 scoped_refptr<Layer> inner_viewport_scroll_layer,
1243 scoped_refptr<Layer> outer_viewport_scroll_layer) { 1250 scoped_refptr<Layer> outer_viewport_scroll_layer) {
1244 page_scale_layer_ = page_scale_layer; 1251 page_scale_layer_ = page_scale_layer;
1245 inner_viewport_scroll_layer_ = inner_viewport_scroll_layer; 1252 inner_viewport_scroll_layer_ = inner_viewport_scroll_layer;
1246 outer_viewport_scroll_layer_ = outer_viewport_scroll_layer; 1253 outer_viewport_scroll_layer_ = outer_viewport_scroll_layer;
1247 } 1254 }
1248 1255
1256 void LayerTreeHost::RegisterSelection(scoped_refptr<Layer> start_layer,
1257 const SelectionHandle& start_handle,
1258 scoped_refptr<Layer> end_layer,
1259 const SelectionHandle& end_handle) {
1260 if (start_selection_layer_.get() == start_layer.get() &&
1261 end_selection_layer_.get() == end_layer.get() &&
1262 start_selection_handle_ == start_handle &&
1263 end_selection_handle_ == end_handle)
1264 return;
1265
1266 start_selection_layer_ = start_layer;
1267 end_selection_layer_ = end_layer;
1268 start_selection_handle_ = start_handle;
1269 end_selection_handle_ = end_handle;
1270 SetNeedsCommit();
1271 }
1272
1249 int LayerTreeHost::ScheduleMicroBenchmark( 1273 int LayerTreeHost::ScheduleMicroBenchmark(
1250 const std::string& benchmark_name, 1274 const std::string& benchmark_name,
1251 scoped_ptr<base::Value> value, 1275 scoped_ptr<base::Value> value,
1252 const MicroBenchmark::DoneCallback& callback) { 1276 const MicroBenchmark::DoneCallback& callback) {
1253 return micro_benchmark_controller_.ScheduleRun( 1277 return micro_benchmark_controller_.ScheduleRun(
1254 benchmark_name, value.Pass(), callback); 1278 benchmark_name, value.Pass(), callback);
1255 } 1279 }
1256 1280
1257 bool LayerTreeHost::SendMessageToMicroBenchmark(int id, 1281 bool LayerTreeHost::SendMessageToMicroBenchmark(int id,
1258 scoped_ptr<base::Value> value) { 1282 scoped_ptr<base::Value> value) {
(...skipping 21 matching lines...) Expand all
1280 swap_promise_list_.push_back(swap_promise.Pass()); 1304 swap_promise_list_.push_back(swap_promise.Pass());
1281 } 1305 }
1282 1306
1283 void LayerTreeHost::BreakSwapPromises(SwapPromise::DidNotSwapReason reason) { 1307 void LayerTreeHost::BreakSwapPromises(SwapPromise::DidNotSwapReason reason) {
1284 for (size_t i = 0; i < swap_promise_list_.size(); i++) 1308 for (size_t i = 0; i < swap_promise_list_.size(); i++)
1285 swap_promise_list_[i]->DidNotSwap(reason); 1309 swap_promise_list_[i]->DidNotSwap(reason);
1286 swap_promise_list_.clear(); 1310 swap_promise_list_.clear();
1287 } 1311 }
1288 1312
1289 } // namespace cc 1313 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698