| Index: cc/trees/layer_tree_host_impl.cc
|
| diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc
|
| index d7559a11a91ee6dac61611d01011bc95558e7ce8..d78c1693eb86fadd921c82a2cca5bc98930c8d71 100644
|
| --- a/cc/trees/layer_tree_host_impl.cc
|
| +++ b/cc/trees/layer_tree_host_impl.cc
|
| @@ -610,8 +610,19 @@ LayerTreeHostImpl::EventListenerTypeForTouchStartAt(
|
| LayerImpl* layer_impl =
|
| active_tree_->FindLayerThatIsHitByPointInTouchHandlerRegion(
|
| device_viewport_point);
|
| - if (layer_impl == NULL)
|
| + if (layer_impl == NULL) {
|
| + // At present, TouchHandlerRegions are only set for LayerTrees serving the
|
| + // document's mainframe, i.e. LayerTrees that have a ViewPort defined. But
|
| + // subframes can still have touch handlers, so here we err on the side of
|
| + // caution and report a handler even if we don't know which layer it's on.
|
| + if ((active_tree_->event_listener_properties(
|
| + EventListenerClass::kTouchStartOrMove) ==
|
| + EventListenerProperties::kBlocking) &&
|
| + !active_tree_->OuterViewportScrollLayer()) {
|
| + return InputHandler::TouchStartEventListenerType::HANDLER;
|
| + }
|
| return InputHandler::TouchStartEventListenerType::NO_HANDLER;
|
| + }
|
|
|
| if (!CurrentlyScrollingLayer())
|
| return InputHandler::TouchStartEventListenerType::HANDLER;
|
|
|