Index: third_party/WebKit/Source/web/WebPagePopupImpl.cpp |
diff --git a/third_party/WebKit/Source/web/WebPagePopupImpl.cpp b/third_party/WebKit/Source/web/WebPagePopupImpl.cpp |
index 880e19fa3abdc023744b1266cc2903d4b36b1115..300d9389bdada6b6d103394069105caba074f092 100644 |
--- a/third_party/WebKit/Source/web/WebPagePopupImpl.cpp |
+++ b/third_party/WebKit/Source/web/WebPagePopupImpl.cpp |
@@ -163,44 +163,46 @@ class PagePopupChromeClient final : public EmptyChromeClient { |
} |
void setEventListenerProperties( |
+ LocalFrame* frame, |
WebEventListenerClass eventClass, |
WebEventListenerProperties properties) override { |
- if (m_popup->m_layerTreeView) { |
- m_popup->m_layerTreeView->setEventListenerProperties(eventClass, |
- properties); |
+ DCHECK(frame->isMainFrame()); |
+ WebWidgetClient* client = m_popup->widgetClient(); |
+ if (WebLayerTreeView* layerTreeView = m_popup->m_layerTreeView) { |
+ layerTreeView->setEventListenerProperties(eventClass, properties); |
if (eventClass == WebEventListenerClass::TouchStartOrMove) { |
- m_popup->widgetClient()->hasTouchEventHandlers( |
+ client->hasTouchEventHandlers( |
properties != WebEventListenerProperties::Nothing || |
- eventListenerProperties(WebEventListenerClass::TouchEndOrCancel) != |
+ eventListenerProperties(frame, |
+ WebEventListenerClass::TouchEndOrCancel) != |
WebEventListenerProperties::Nothing); |
} else if (eventClass == WebEventListenerClass::TouchEndOrCancel) { |
- m_popup->widgetClient()->hasTouchEventHandlers( |
+ client->hasTouchEventHandlers( |
properties != WebEventListenerProperties::Nothing || |
- eventListenerProperties(WebEventListenerClass::TouchStartOrMove) != |
+ eventListenerProperties(frame, |
+ WebEventListenerClass::TouchStartOrMove) != |
WebEventListenerProperties::Nothing); |
} |
} else { |
- m_popup->widgetClient()->hasTouchEventHandlers(true); |
+ client->hasTouchEventHandlers(true); |
} |
} |
WebEventListenerProperties eventListenerProperties( |
+ LocalFrame*, |
WebEventListenerClass eventClass) const override { |
- if (m_popup->m_layerTreeView) |
+ if (m_popup->m_layerTreeView) { |
return m_popup->m_layerTreeView->eventListenerProperties(eventClass); |
+ } |
return WebEventListenerProperties::Nothing; |
} |
- void setHasScrollEventHandlers(bool hasEventHandlers) override { |
+ void setHasScrollEventHandlers(LocalFrame* frame, |
+ bool hasEventHandlers) override { |
+ DCHECK(frame->isMainFrame()); |
if (m_popup->m_layerTreeView) |
m_popup->m_layerTreeView->setHaveScrollEventHandlers(hasEventHandlers); |
} |
- bool hasScrollEventHandlers() const override { |
- if (m_popup->m_layerTreeView) |
- return m_popup->m_layerTreeView->haveScrollEventHandlers(); |
- return false; |
- } |
- |
void setTouchAction(TouchAction touchAction) override { |
if (WebViewClient* client = m_popup->m_webView->client()) |
client->setTouchAction(static_cast<WebTouchAction>(touchAction)); |