| 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 897 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 908 String message = String("Blocked ") + dialogTypeToString(dialogType) + "('" + | 908 String message = String("Blocked ") + dialogTypeToString(dialogType) + "('" + |
| 909 dialogMessage + "') during " + | 909 dialogMessage + "') during " + |
| 910 dismissalTypeToString(dismissalType) + "."; | 910 dismissalTypeToString(dismissalType) + "."; |
| 911 m_webView->mainFrame()->addMessageToConsole( | 911 m_webView->mainFrame()->addMessageToConsole( |
| 912 WebConsoleMessage(WebConsoleMessage::LevelError, message)); | 912 WebConsoleMessage(WebConsoleMessage::LevelError, message)); |
| 913 | 913 |
| 914 return false; | 914 return false; |
| 915 } | 915 } |
| 916 | 916 |
| 917 void ChromeClientImpl::setEventListenerProperties( | 917 void ChromeClientImpl::setEventListenerProperties( |
| 918 LocalFrame* frame, |
| 918 WebEventListenerClass eventClass, | 919 WebEventListenerClass eventClass, |
| 919 WebEventListenerProperties properties) { | 920 WebEventListenerProperties properties) { |
| 920 if (WebLayerTreeView* treeView = m_webView->layerTreeView()) { | 921 WebLocalFrameImpl* webFrame = WebLocalFrameImpl::fromFrame(frame); |
| 922 if (!webFrame || webFrame->localRoot() == m_webView->mainFrame()) { |
| 923 setEventListenerProperties(m_webView->layerTreeView(), eventClass, |
| 924 properties); |
| 925 } else { |
| 926 WebWidgetClient* client = WebLocalFrameImpl::fromFrame(frame) |
| 927 ->localRoot() |
| 928 ->frameWidget() |
| 929 ->client(); |
| 930 // TODO(wjmaclean): Do we need to inform the WebView about these also? |
| 931 setEventListenerProperties(client->layerTreeView(), eventClass, properties); |
| 932 } |
| 933 } |
| 934 |
| 935 void ChromeClientImpl::setEventListenerProperties( |
| 936 WebLayerTreeView* treeView, |
| 937 WebEventListenerClass eventClass, |
| 938 WebEventListenerProperties properties) { |
| 939 if (treeView) { |
| 921 treeView->setEventListenerProperties(eventClass, properties); | 940 treeView->setEventListenerProperties(eventClass, properties); |
| 922 if (eventClass == WebEventListenerClass::TouchStartOrMove) { | 941 if (eventClass == WebEventListenerClass::TouchStartOrMove) { |
| 923 m_webView->hasTouchEventHandlers( | 942 m_webView->hasTouchEventHandlers( |
| 924 properties != WebEventListenerProperties::Nothing || | 943 properties != WebEventListenerProperties::Nothing || |
| 925 eventListenerProperties(WebEventListenerClass::TouchEndOrCancel) != | 944 eventListenerProperties(treeView, |
| 945 WebEventListenerClass::TouchEndOrCancel) != |
| 926 WebEventListenerProperties::Nothing); | 946 WebEventListenerProperties::Nothing); |
| 927 } else if (eventClass == WebEventListenerClass::TouchEndOrCancel) { | 947 } else if (eventClass == WebEventListenerClass::TouchEndOrCancel) { |
| 928 m_webView->hasTouchEventHandlers( | 948 m_webView->hasTouchEventHandlers( |
| 929 properties != WebEventListenerProperties::Nothing || | 949 properties != WebEventListenerProperties::Nothing || |
| 930 eventListenerProperties(WebEventListenerClass::TouchStartOrMove) != | 950 eventListenerProperties(treeView, |
| 951 WebEventListenerClass::TouchStartOrMove) != |
| 931 WebEventListenerProperties::Nothing); | 952 WebEventListenerProperties::Nothing); |
| 932 } | 953 } |
| 933 } else { | 954 } else { |
| 934 m_webView->hasTouchEventHandlers(true); | 955 m_webView->hasTouchEventHandlers(true); |
| 935 } | 956 } |
| 936 } | 957 } |
| 937 | 958 |
| 938 void ChromeClientImpl::beginLifecycleUpdates() { | 959 void ChromeClientImpl::beginLifecycleUpdates() { |
| 939 if (WebLayerTreeView* treeView = m_webView->layerTreeView()) { | 960 if (WebLayerTreeView* treeView = m_webView->layerTreeView()) { |
| 940 treeView->setDeferCommits(false); | 961 treeView->setDeferCommits(false); |
| 941 treeView->setNeedsBeginFrame(); | 962 treeView->setNeedsBeginFrame(); |
| 942 } | 963 } |
| 943 } | 964 } |
| 944 | 965 |
| 945 WebEventListenerProperties ChromeClientImpl::eventListenerProperties( | 966 WebEventListenerProperties ChromeClientImpl::eventListenerProperties( |
| 967 LocalFrame* frame, |
| 946 WebEventListenerClass eventClass) const { | 968 WebEventListenerClass eventClass) const { |
| 947 if (WebLayerTreeView* treeView = m_webView->layerTreeView()) | 969 WebLocalFrameImpl* webFrame = WebLocalFrameImpl::fromFrame(frame); |
| 970 if (!webFrame || webFrame->localRoot() == m_webView->mainFrame()) |
| 971 return eventListenerProperties(m_webView->layerTreeView(), eventClass); |
| 972 |
| 973 WebWidgetClient* client = |
| 974 WebLocalFrameImpl::fromFrame(frame)->localRoot()->frameWidget()->client(); |
| 975 return eventListenerProperties(client->layerTreeView(), eventClass); |
| 976 } |
| 977 |
| 978 WebEventListenerProperties ChromeClientImpl::eventListenerProperties( |
| 979 WebLayerTreeView* treeView, |
| 980 WebEventListenerClass eventClass) const { |
| 981 if (treeView) |
| 948 return treeView->eventListenerProperties(eventClass); | 982 return treeView->eventListenerProperties(eventClass); |
| 949 return WebEventListenerProperties::Nothing; | 983 return WebEventListenerProperties::Nothing; |
| 950 } | 984 } |
| 951 | 985 |
| 952 void ChromeClientImpl::setHasScrollEventHandlers(bool hasEventHandlers) { | 986 void ChromeClientImpl::setHasScrollEventHandlers(bool hasEventHandlers) { |
| 953 if (WebLayerTreeView* treeView = m_webView->layerTreeView()) | 987 if (WebLayerTreeView* treeView = m_webView->layerTreeView()) |
| 954 treeView->setHaveScrollEventHandlers(hasEventHandlers); | 988 treeView->setHaveScrollEventHandlers(hasEventHandlers); |
| 955 } | 989 } |
| 956 | 990 |
| 957 bool ChromeClientImpl::hasScrollEventHandlers() const { | 991 bool ChromeClientImpl::hasScrollEventHandlers() const { |
| (...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1155 if (RuntimeEnabledFeatures::presentationEnabled()) | 1189 if (RuntimeEnabledFeatures::presentationEnabled()) |
| 1156 PresentationController::provideTo(frame, client->presentationClient()); | 1190 PresentationController::provideTo(frame, client->presentationClient()); |
| 1157 if (RuntimeEnabledFeatures::audioOutputDevicesEnabled()) | 1191 if (RuntimeEnabledFeatures::audioOutputDevicesEnabled()) |
| 1158 provideAudioOutputDeviceClientTo(frame, | 1192 provideAudioOutputDeviceClientTo(frame, |
| 1159 AudioOutputDeviceClientImpl::create()); | 1193 AudioOutputDeviceClientImpl::create()); |
| 1160 if (RuntimeEnabledFeatures::installedAppEnabled()) | 1194 if (RuntimeEnabledFeatures::installedAppEnabled()) |
| 1161 InstalledAppController::provideTo(frame, client->installedAppClient()); | 1195 InstalledAppController::provideTo(frame, client->installedAppClient()); |
| 1162 } | 1196 } |
| 1163 | 1197 |
| 1164 } // namespace blink | 1198 } // namespace blink |
| OLD | NEW |