Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2009 Google Inc. All rights reserved. | 2 * Copyright (C) 2009 Google Inc. All rights reserved. |
| 3 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). | 3 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions are | 6 * modification, are permitted provided that the following conditions are |
| 7 * met: | 7 * met: |
| 8 * | 8 * |
| 9 * * Redistributions of source code must retain the above copyright | 9 * * Redistributions of source code must retain the above copyright |
| 10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
| (...skipping 901 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 912 String message = String("Blocked ") + dialogTypeToString(dialogType) + "('" + | 912 String message = String("Blocked ") + dialogTypeToString(dialogType) + "('" + |
| 913 dialogMessage + "') during " + | 913 dialogMessage + "') during " + |
| 914 dismissalTypeToString(dismissalType) + "."; | 914 dismissalTypeToString(dismissalType) + "."; |
| 915 m_webView->mainFrame()->addMessageToConsole( | 915 m_webView->mainFrame()->addMessageToConsole( |
| 916 WebConsoleMessage(WebConsoleMessage::LevelError, message)); | 916 WebConsoleMessage(WebConsoleMessage::LevelError, message)); |
| 917 | 917 |
| 918 return false; | 918 return false; |
| 919 } | 919 } |
| 920 | 920 |
| 921 void ChromeClientImpl::setEventListenerProperties( | 921 void ChromeClientImpl::setEventListenerProperties( |
| 922 LocalFrame* frame, | |
| 922 WebEventListenerClass eventClass, | 923 WebEventListenerClass eventClass, |
| 923 WebEventListenerProperties properties) { | 924 WebEventListenerProperties properties) { |
| 924 if (WebLayerTreeView* treeView = m_webView->layerTreeView()) { | 925 WebLocalFrameImpl* webFrame = WebLocalFrameImpl::fromFrame(frame); |
| 926 if (!webFrame || webFrame->localRoot() == m_webView->mainFrame()) { | |
| 927 setEventListenerProperties(m_webView->layerTreeView(), eventClass, | |
| 928 properties); | |
| 929 } else { | |
| 930 WebFrameWidgetBase* widget = webFrame->localRoot()->frameWidget(); | |
| 931 // The widget may be nullptr in some unit tests. | |
|
dcheng
2016/11/10 07:46:11
How many tests does this break? If possible, we sh
wjmaclean
2016/11/10 15:57:15
I realize I missed a case, this isn't just broken
dcheng
2016/11/11 08:51:52
Can you clarify what you mean?
wjmaclean
2016/11/11 15:40:51
The event listener properties are stored as an arr
dcheng
2016/11/11 22:32:11
I don't think we can expose that to the layer tree
| |
| 932 if (!widget) { | |
| 933 LOG(INFO) << "Null frameWidget."; | |
|
dcheng
2016/11/10 07:46:11
Nit: remove this LOG
wjmaclean
2016/11/10 15:57:15
Done.
| |
| 934 return; | |
| 935 } | |
| 936 | |
| 937 WebWidgetClient* client = widget->client(); | |
| 938 // TODO(wjmaclean): Do we need to inform the WebView about these also? | |
| 939 setEventListenerProperties(client->layerTreeView(), eventClass, properties); | |
| 940 } | |
| 941 } | |
| 942 | |
| 943 void ChromeClientImpl::setEventListenerProperties( | |
| 944 WebLayerTreeView* treeView, | |
| 945 WebEventListenerClass eventClass, | |
| 946 WebEventListenerProperties properties) { | |
| 947 if (treeView) { | |
| 925 treeView->setEventListenerProperties(eventClass, properties); | 948 treeView->setEventListenerProperties(eventClass, properties); |
| 926 if (eventClass == WebEventListenerClass::TouchStartOrMove) { | 949 if (eventClass == WebEventListenerClass::TouchStartOrMove) { |
| 927 m_webView->hasTouchEventHandlers( | 950 m_webView->hasTouchEventHandlers( |
| 928 properties != WebEventListenerProperties::Nothing || | 951 properties != WebEventListenerProperties::Nothing || |
| 929 eventListenerProperties(WebEventListenerClass::TouchEndOrCancel) != | 952 eventListenerProperties(treeView, |
| 953 WebEventListenerClass::TouchEndOrCancel) != | |
| 930 WebEventListenerProperties::Nothing); | 954 WebEventListenerProperties::Nothing); |
| 931 } else if (eventClass == WebEventListenerClass::TouchEndOrCancel) { | 955 } else if (eventClass == WebEventListenerClass::TouchEndOrCancel) { |
| 932 m_webView->hasTouchEventHandlers( | 956 m_webView->hasTouchEventHandlers( |
| 933 properties != WebEventListenerProperties::Nothing || | 957 properties != WebEventListenerProperties::Nothing || |
| 934 eventListenerProperties(WebEventListenerClass::TouchStartOrMove) != | 958 eventListenerProperties(treeView, |
| 959 WebEventListenerClass::TouchStartOrMove) != | |
| 935 WebEventListenerProperties::Nothing); | 960 WebEventListenerProperties::Nothing); |
| 936 } | 961 } |
| 937 } else { | 962 } else { |
| 938 m_webView->hasTouchEventHandlers(true); | 963 m_webView->hasTouchEventHandlers(true); |
| 939 } | 964 } |
| 940 } | 965 } |
| 941 | 966 |
| 942 void ChromeClientImpl::beginLifecycleUpdates() { | 967 void ChromeClientImpl::beginLifecycleUpdates() { |
| 943 if (WebLayerTreeView* treeView = m_webView->layerTreeView()) { | 968 if (WebLayerTreeView* treeView = m_webView->layerTreeView()) { |
| 944 treeView->setDeferCommits(false); | 969 treeView->setDeferCommits(false); |
| 945 treeView->setNeedsBeginFrame(); | 970 treeView->setNeedsBeginFrame(); |
| 946 } | 971 } |
| 947 } | 972 } |
| 948 | 973 |
| 949 WebEventListenerProperties ChromeClientImpl::eventListenerProperties( | 974 WebEventListenerProperties ChromeClientImpl::eventListenerProperties( |
| 975 LocalFrame* frame, | |
| 950 WebEventListenerClass eventClass) const { | 976 WebEventListenerClass eventClass) const { |
| 951 if (WebLayerTreeView* treeView = m_webView->layerTreeView()) | 977 WebLocalFrameImpl* webFrame = WebLocalFrameImpl::fromFrame(frame); |
| 978 if (!webFrame || webFrame->localRoot() == m_webView->mainFrame()) | |
| 979 return eventListenerProperties(m_webView->layerTreeView(), eventClass); | |
| 980 | |
| 981 WebWidgetClient* client = | |
| 982 WebLocalFrameImpl::fromFrame(frame)->localRoot()->frameWidget()->client(); | |
| 983 return eventListenerProperties(client->layerTreeView(), eventClass); | |
| 984 } | |
| 985 | |
| 986 WebEventListenerProperties ChromeClientImpl::eventListenerProperties( | |
| 987 WebLayerTreeView* treeView, | |
| 988 WebEventListenerClass eventClass) const { | |
| 989 if (treeView) | |
| 952 return treeView->eventListenerProperties(eventClass); | 990 return treeView->eventListenerProperties(eventClass); |
| 953 return WebEventListenerProperties::Nothing; | 991 return WebEventListenerProperties::Nothing; |
| 954 } | 992 } |
| 955 | 993 |
| 956 void ChromeClientImpl::setHasScrollEventHandlers(bool hasEventHandlers) { | 994 void ChromeClientImpl::setHasScrollEventHandlers(bool hasEventHandlers) { |
| 957 if (WebLayerTreeView* treeView = m_webView->layerTreeView()) | 995 if (WebLayerTreeView* treeView = m_webView->layerTreeView()) |
| 958 treeView->setHaveScrollEventHandlers(hasEventHandlers); | 996 treeView->setHaveScrollEventHandlers(hasEventHandlers); |
| 959 } | 997 } |
| 960 | 998 |
| 961 bool ChromeClientImpl::hasScrollEventHandlers() const { | 999 bool ChromeClientImpl::hasScrollEventHandlers() const { |
| (...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1159 if (RuntimeEnabledFeatures::presentationEnabled()) | 1197 if (RuntimeEnabledFeatures::presentationEnabled()) |
| 1160 PresentationController::provideTo(frame, client->presentationClient()); | 1198 PresentationController::provideTo(frame, client->presentationClient()); |
| 1161 if (RuntimeEnabledFeatures::audioOutputDevicesEnabled()) | 1199 if (RuntimeEnabledFeatures::audioOutputDevicesEnabled()) |
| 1162 provideAudioOutputDeviceClientTo(frame, | 1200 provideAudioOutputDeviceClientTo(frame, |
| 1163 AudioOutputDeviceClientImpl::create()); | 1201 AudioOutputDeviceClientImpl::create()); |
| 1164 if (RuntimeEnabledFeatures::installedAppEnabled()) | 1202 if (RuntimeEnabledFeatures::installedAppEnabled()) |
| 1165 InstalledAppController::provideTo(frame, client->installedAppClient()); | 1203 InstalledAppController::provideTo(frame, client->installedAppClient()); |
| 1166 } | 1204 } |
| 1167 | 1205 |
| 1168 } // namespace blink | 1206 } // namespace blink |
| OLD | NEW |