Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(718)

Side by Side Diff: third_party/WebKit/Source/web/ChromeClientImpl.cpp

Issue 2479663002: Move compositor InputHandler from RenderViewImpl to RenderWidget. (Closed)
Patch Set: Rebase to master@{#429880}. Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698