| Index: cc/trees/layer_tree_host.cc
 | 
| diff --git a/cc/trees/layer_tree_host.cc b/cc/trees/layer_tree_host.cc
 | 
| index 2de6b3bbb022332de3fe965a969d7b23cd6bd0a7..c2e08ddd5085c379566aefd7c5d90d11d6c496da 100644
 | 
| --- a/cc/trees/layer_tree_host.cc
 | 
| +++ b/cc/trees/layer_tree_host.cc
 | 
| @@ -184,7 +184,7 @@ LayerTreeHost::LayerTreeHost(InitParams* params, CompositorMode mode)
 | 
|        background_color_(SK_ColorWHITE),
 | 
|        has_transparent_background_(false),
 | 
|        have_scroll_event_handlers_(false),
 | 
| -      have_wheel_event_handlers_(false),
 | 
| +      event_listener_properties_(),
 | 
|        did_complete_scale_animation_(false),
 | 
|        in_paint_layer_contents_(false),
 | 
|        id_(s_layer_tree_host_sequence_number.GetNext() + 1),
 | 
| @@ -401,7 +401,12 @@ void LayerTreeHost::FinishCommitOnImplThread(LayerTreeHostImpl* host_impl) {
 | 
|    sync_tree->set_background_color(background_color_);
 | 
|    sync_tree->set_has_transparent_background(has_transparent_background_);
 | 
|    sync_tree->set_have_scroll_event_handlers(have_scroll_event_handlers_);
 | 
| -  sync_tree->set_have_wheel_event_handlers(have_wheel_event_handlers_);
 | 
| +  sync_tree->set_event_listener_properties(
 | 
| +      EventListenerClass::kTouch,
 | 
| +      event_listener_properties(EventListenerClass::kTouch));
 | 
| +  sync_tree->set_event_listener_properties(
 | 
| +      EventListenerClass::kMouseWheel,
 | 
| +      event_listener_properties(EventListenerClass::kMouseWheel));
 | 
|  
 | 
|    if (page_scale_layer_.get() && inner_viewport_scroll_layer_.get()) {
 | 
|      sync_tree->SetViewportLayersFromIds(
 | 
| @@ -1124,11 +1129,14 @@ void LayerTreeHost::SetHaveScrollEventHandlers(bool have_event_handlers) {
 | 
|    SetNeedsCommit();
 | 
|  }
 | 
|  
 | 
| -void LayerTreeHost::SetHaveWheelEventHandlers(bool have_event_handlers) {
 | 
| -  if (have_wheel_event_handlers_ == have_event_handlers)
 | 
| +void LayerTreeHost::SetEventListenerProperties(
 | 
| +    EventListenerClass event_class,
 | 
| +    EventListenerProperties properties) {
 | 
| +  const size_t index = static_cast<size_t>(event_class);
 | 
| +  if (event_listener_properties_[index] == properties)
 | 
|      return;
 | 
|  
 | 
| -  have_wheel_event_handlers_ = have_event_handlers;
 | 
| +  event_listener_properties_[index] = properties;
 | 
|    SetNeedsCommit();
 | 
|  }
 | 
|  
 | 
| @@ -1458,7 +1466,10 @@ void LayerTreeHost::ToProtobufForCommit(proto::LayerTreeHost* proto) const {
 | 
|    proto->set_background_color(background_color_);
 | 
|    proto->set_has_transparent_background(has_transparent_background_);
 | 
|    proto->set_have_scroll_event_handlers(have_scroll_event_handlers_);
 | 
| -  proto->set_have_wheel_event_handlers(have_wheel_event_handlers_);
 | 
| +  proto->set_wheel_event_listener_properties(static_cast<uint32_t>(
 | 
| +      event_listener_properties(EventListenerClass::kMouseWheel)));
 | 
| +  proto->set_touch_event_listener_properties(static_cast<uint32_t>(
 | 
| +      event_listener_properties(EventListenerClass::kTouch)));
 | 
|    proto->set_in_paint_layer_contents(in_paint_layer_contents_);
 | 
|    proto->set_id(id_);
 | 
|    proto->set_next_commit_forces_redraw(next_commit_forces_redraw_);
 | 
| @@ -1525,7 +1536,13 @@ void LayerTreeHost::FromProtobufForCommit(const proto::LayerTreeHost& proto) {
 | 
|    background_color_ = proto.background_color();
 | 
|    has_transparent_background_ = proto.has_transparent_background();
 | 
|    have_scroll_event_handlers_ = proto.have_scroll_event_handlers();
 | 
| -  have_wheel_event_handlers_ = proto.have_wheel_event_handlers();
 | 
| +  event_listener_properties_[static_cast<size_t>(
 | 
| +      EventListenerClass::kMouseWheel)] =
 | 
| +      static_cast<EventListenerProperties>(
 | 
| +          proto.wheel_event_listener_properties());
 | 
| +  event_listener_properties_[static_cast<size_t>(EventListenerClass::kTouch)] =
 | 
| +      static_cast<EventListenerProperties>(
 | 
| +          proto.touch_event_listener_properties());
 | 
|    in_paint_layer_contents_ = proto.in_paint_layer_contents();
 | 
|    id_ = proto.id();
 | 
|    next_commit_forces_redraw_ = proto.next_commit_forces_redraw();
 | 
| 
 |