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

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

Issue 1577263004: Communicate whether passive event listeners exist to cc. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master_wheel_passive_listeners
Patch Set: Move to having fields on WebLayerTreeView Created 4 years, 10 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 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
177 visible_(false), 177 visible_(false),
178 page_scale_factor_(1.f), 178 page_scale_factor_(1.f),
179 min_page_scale_factor_(1.f), 179 min_page_scale_factor_(1.f),
180 max_page_scale_factor_(1.f), 180 max_page_scale_factor_(1.f),
181 has_gpu_rasterization_trigger_(false), 181 has_gpu_rasterization_trigger_(false),
182 content_is_suitable_for_gpu_rasterization_(true), 182 content_is_suitable_for_gpu_rasterization_(true),
183 gpu_rasterization_histogram_recorded_(false), 183 gpu_rasterization_histogram_recorded_(false),
184 background_color_(SK_ColorWHITE), 184 background_color_(SK_ColorWHITE),
185 has_transparent_background_(false), 185 has_transparent_background_(false),
186 have_scroll_event_handlers_(false), 186 have_scroll_event_handlers_(false),
187 have_wheel_event_handlers_(false), 187 event_listener_properties_(),
188 did_complete_scale_animation_(false), 188 did_complete_scale_animation_(false),
189 in_paint_layer_contents_(false), 189 in_paint_layer_contents_(false),
190 id_(s_layer_tree_host_sequence_number.GetNext() + 1), 190 id_(s_layer_tree_host_sequence_number.GetNext() + 1),
191 next_commit_forces_redraw_(false), 191 next_commit_forces_redraw_(false),
192 shared_bitmap_manager_(params->shared_bitmap_manager), 192 shared_bitmap_manager_(params->shared_bitmap_manager),
193 gpu_memory_buffer_manager_(params->gpu_memory_buffer_manager), 193 gpu_memory_buffer_manager_(params->gpu_memory_buffer_manager),
194 task_graph_runner_(params->task_graph_runner), 194 task_graph_runner_(params->task_graph_runner),
195 surface_id_namespace_(0u), 195 surface_id_namespace_(0u),
196 next_surface_sequence_(1u) { 196 next_surface_sequence_(1u) {
197 DCHECK(task_graph_runner_); 197 DCHECK(task_graph_runner_);
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
387 LayerImpl* hud_impl = LayerTreeHostCommon::FindLayerInSubtree( 387 LayerImpl* hud_impl = LayerTreeHostCommon::FindLayerInSubtree(
388 sync_tree->root_layer(), hud_layer_->id()); 388 sync_tree->root_layer(), hud_layer_->id());
389 sync_tree->set_hud_layer(static_cast<HeadsUpDisplayLayerImpl*>(hud_impl)); 389 sync_tree->set_hud_layer(static_cast<HeadsUpDisplayLayerImpl*>(hud_impl));
390 } else { 390 } else {
391 sync_tree->set_hud_layer(NULL); 391 sync_tree->set_hud_layer(NULL);
392 } 392 }
393 393
394 sync_tree->set_background_color(background_color_); 394 sync_tree->set_background_color(background_color_);
395 sync_tree->set_has_transparent_background(has_transparent_background_); 395 sync_tree->set_has_transparent_background(has_transparent_background_);
396 sync_tree->set_have_scroll_event_handlers(have_scroll_event_handlers_); 396 sync_tree->set_have_scroll_event_handlers(have_scroll_event_handlers_);
397 sync_tree->set_have_wheel_event_handlers(have_wheel_event_handlers_); 397 sync_tree->set_event_listener_properties(
398 EventListenerClass::kTouch,
399 event_listener_properties(EventListenerClass::kTouch));
400 sync_tree->set_event_listener_properties(
401 EventListenerClass::kMouseWheel,
402 event_listener_properties(EventListenerClass::kMouseWheel));
398 403
399 if (page_scale_layer_.get() && inner_viewport_scroll_layer_.get()) { 404 if (page_scale_layer_.get() && inner_viewport_scroll_layer_.get()) {
400 sync_tree->SetViewportLayersFromIds( 405 sync_tree->SetViewportLayersFromIds(
401 overscroll_elasticity_layer_.get() ? overscroll_elasticity_layer_->id() 406 overscroll_elasticity_layer_.get() ? overscroll_elasticity_layer_->id()
402 : Layer::INVALID_ID, 407 : Layer::INVALID_ID,
403 page_scale_layer_->id(), inner_viewport_scroll_layer_->id(), 408 page_scale_layer_->id(), inner_viewport_scroll_layer_->id(),
404 outer_viewport_scroll_layer_.get() ? outer_viewport_scroll_layer_->id() 409 outer_viewport_scroll_layer_.get() ? outer_viewport_scroll_layer_->id()
405 : Layer::INVALID_ID); 410 : Layer::INVALID_ID);
406 DCHECK(inner_viewport_scroll_layer_->IsContainerForFixedPositionLayers()); 411 DCHECK(inner_viewport_scroll_layer_->IsContainerForFixedPositionLayers());
407 } else { 412 } else {
(...skipping 702 matching lines...) Expand 10 before | Expand all | Expand 10 after
1110 } 1115 }
1111 1116
1112 void LayerTreeHost::SetHaveScrollEventHandlers(bool have_event_handlers) { 1117 void LayerTreeHost::SetHaveScrollEventHandlers(bool have_event_handlers) {
1113 if (have_scroll_event_handlers_ == have_event_handlers) 1118 if (have_scroll_event_handlers_ == have_event_handlers)
1114 return; 1119 return;
1115 1120
1116 have_scroll_event_handlers_ = have_event_handlers; 1121 have_scroll_event_handlers_ = have_event_handlers;
1117 SetNeedsCommit(); 1122 SetNeedsCommit();
1118 } 1123 }
1119 1124
1120 void LayerTreeHost::SetHaveWheelEventHandlers(bool have_event_handlers) { 1125 void LayerTreeHost::SetEventListenerProperties(EventListenerClass event_class,
1121 if (have_wheel_event_handlers_ == have_event_handlers) 1126 uint32_t properties) {
1127 const size_t index = static_cast<size_t>(event_class);
1128 if (event_listener_properties_[index] == properties)
1122 return; 1129 return;
1123 1130
1124 have_wheel_event_handlers_ = have_event_handlers; 1131 event_listener_properties_[index] = properties;
1125 SetNeedsCommit(); 1132 SetNeedsCommit();
1126 } 1133 }
1127 1134
1128 int LayerTreeHost::ScheduleMicroBenchmark( 1135 int LayerTreeHost::ScheduleMicroBenchmark(
1129 const std::string& benchmark_name, 1136 const std::string& benchmark_name,
1130 scoped_ptr<base::Value> value, 1137 scoped_ptr<base::Value> value,
1131 const MicroBenchmark::DoneCallback& callback) { 1138 const MicroBenchmark::DoneCallback& callback) {
1132 return micro_benchmark_controller_.ScheduleRun(benchmark_name, 1139 return micro_benchmark_controller_.ScheduleRun(benchmark_name,
1133 std::move(value), callback); 1140 std::move(value), callback);
1134 } 1141 }
(...skipping 309 matching lines...) Expand 10 before | Expand all | Expand 10 after
1444 proto->set_page_scale_factor(page_scale_factor_); 1451 proto->set_page_scale_factor(page_scale_factor_);
1445 proto->set_min_page_scale_factor(min_page_scale_factor_); 1452 proto->set_min_page_scale_factor(min_page_scale_factor_);
1446 proto->set_max_page_scale_factor(max_page_scale_factor_); 1453 proto->set_max_page_scale_factor(max_page_scale_factor_);
1447 Vector2dFToProto(elastic_overscroll_, proto->mutable_elastic_overscroll()); 1454 Vector2dFToProto(elastic_overscroll_, proto->mutable_elastic_overscroll());
1448 proto->set_has_gpu_rasterization_trigger(has_gpu_rasterization_trigger_); 1455 proto->set_has_gpu_rasterization_trigger(has_gpu_rasterization_trigger_);
1449 proto->set_content_is_suitable_for_gpu_rasterization( 1456 proto->set_content_is_suitable_for_gpu_rasterization(
1450 content_is_suitable_for_gpu_rasterization_); 1457 content_is_suitable_for_gpu_rasterization_);
1451 proto->set_background_color(background_color_); 1458 proto->set_background_color(background_color_);
1452 proto->set_has_transparent_background(has_transparent_background_); 1459 proto->set_has_transparent_background(has_transparent_background_);
1453 proto->set_have_scroll_event_handlers(have_scroll_event_handlers_); 1460 proto->set_have_scroll_event_handlers(have_scroll_event_handlers_);
1454 proto->set_have_wheel_event_handlers(have_wheel_event_handlers_); 1461 proto->set_wheel_event_listener_properties(
1462 event_listener_properties(EventListenerClass::kMouseWheel));
1463 proto->set_touch_event_listener_properties(
1464 event_listener_properties(EventListenerClass::kTouch));
1455 proto->set_in_paint_layer_contents(in_paint_layer_contents_); 1465 proto->set_in_paint_layer_contents(in_paint_layer_contents_);
1456 proto->set_id(id_); 1466 proto->set_id(id_);
1457 proto->set_next_commit_forces_redraw(next_commit_forces_redraw_); 1467 proto->set_next_commit_forces_redraw(next_commit_forces_redraw_);
1458 1468
1459 // Viewport layers. 1469 // Viewport layers.
1460 proto->set_overscroll_elasticity_layer_id( 1470 proto->set_overscroll_elasticity_layer_id(
1461 overscroll_elasticity_layer_ ? overscroll_elasticity_layer_->id() 1471 overscroll_elasticity_layer_ ? overscroll_elasticity_layer_->id()
1462 : Layer::INVALID_ID); 1472 : Layer::INVALID_ID);
1463 proto->set_page_scale_layer_id(page_scale_layer_ ? page_scale_layer_->id() 1473 proto->set_page_scale_layer_id(page_scale_layer_ ? page_scale_layer_->id()
1464 : Layer::INVALID_ID); 1474 : Layer::INVALID_ID);
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
1510 page_scale_factor_ = proto.page_scale_factor(); 1520 page_scale_factor_ = proto.page_scale_factor();
1511 min_page_scale_factor_ = proto.min_page_scale_factor(); 1521 min_page_scale_factor_ = proto.min_page_scale_factor();
1512 max_page_scale_factor_ = proto.max_page_scale_factor(); 1522 max_page_scale_factor_ = proto.max_page_scale_factor();
1513 elastic_overscroll_ = ProtoToVector2dF(proto.elastic_overscroll()); 1523 elastic_overscroll_ = ProtoToVector2dF(proto.elastic_overscroll());
1514 has_gpu_rasterization_trigger_ = proto.has_gpu_rasterization_trigger(); 1524 has_gpu_rasterization_trigger_ = proto.has_gpu_rasterization_trigger();
1515 content_is_suitable_for_gpu_rasterization_ = 1525 content_is_suitable_for_gpu_rasterization_ =
1516 proto.content_is_suitable_for_gpu_rasterization(); 1526 proto.content_is_suitable_for_gpu_rasterization();
1517 background_color_ = proto.background_color(); 1527 background_color_ = proto.background_color();
1518 has_transparent_background_ = proto.has_transparent_background(); 1528 has_transparent_background_ = proto.has_transparent_background();
1519 have_scroll_event_handlers_ = proto.have_scroll_event_handlers(); 1529 have_scroll_event_handlers_ = proto.have_scroll_event_handlers();
1520 have_wheel_event_handlers_ = proto.have_wheel_event_handlers(); 1530 event_listener_properties_[static_cast<size_t>(
1531 EventListenerClass::kMouseWheel)] =
1532 proto.wheel_event_listener_properties();
1533 event_listener_properties_[static_cast<size_t>(EventListenerClass::kTouch)] =
1534 proto.touch_event_listener_properties();
1521 in_paint_layer_contents_ = proto.in_paint_layer_contents(); 1535 in_paint_layer_contents_ = proto.in_paint_layer_contents();
1522 id_ = proto.id(); 1536 id_ = proto.id();
1523 next_commit_forces_redraw_ = proto.next_commit_forces_redraw(); 1537 next_commit_forces_redraw_ = proto.next_commit_forces_redraw();
1524 1538
1525 hud_layer_ = static_cast<HeadsUpDisplayLayer*>( 1539 hud_layer_ = static_cast<HeadsUpDisplayLayer*>(
1526 UpdateAndGetLayer(hud_layer_.get(), proto.hud_layer_id(), layer_id_map_)); 1540 UpdateAndGetLayer(hud_layer_.get(), proto.hud_layer_id(), layer_id_map_));
1527 overscroll_elasticity_layer_ = 1541 overscroll_elasticity_layer_ =
1528 UpdateAndGetLayer(overscroll_elasticity_layer_.get(), 1542 UpdateAndGetLayer(overscroll_elasticity_layer_.get(),
1529 proto.overscroll_elasticity_layer_id(), layer_id_map_); 1543 proto.overscroll_elasticity_layer_id(), layer_id_map_);
1530 page_scale_layer_ = UpdateAndGetLayer( 1544 page_scale_layer_ = UpdateAndGetLayer(
(...skipping 20 matching lines...) Expand all
1551 LayerTreeHostCommon::CallFunctionForSubtree( 1565 LayerTreeHostCommon::CallFunctionForSubtree(
1552 root_layer(), [seq_num](Layer* layer) { 1566 root_layer(), [seq_num](Layer* layer) {
1553 layer->set_property_tree_sequence_number(seq_num); 1567 layer->set_property_tree_sequence_number(seq_num);
1554 }); 1568 });
1555 1569
1556 surface_id_namespace_ = proto.surface_id_namespace(); 1570 surface_id_namespace_ = proto.surface_id_namespace();
1557 next_surface_sequence_ = proto.next_surface_sequence(); 1571 next_surface_sequence_ = proto.next_surface_sequence();
1558 } 1572 }
1559 1573
1560 } // namespace cc 1574 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698