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

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

Issue 1895303007: Non passive touch end or touch cancel listeners should not block scroll. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@2704
Patch Set: Created 4 years, 8 months 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 893 matching lines...) Expand 10 before | Expand all | Expand 10 after
904 bool ChromeClientImpl::shouldOpenModalDialogDuringPageDismissal(const DialogType & dialogType, const String& dialogMessage, Document::PageDismissalType dismissal Type) const 904 bool ChromeClientImpl::shouldOpenModalDialogDuringPageDismissal(const DialogType & dialogType, const String& dialogMessage, Document::PageDismissalType dismissal Type) const
905 { 905 {
906 String message = String("Blocked ") + dialogTypeToString(dialogType) + "('" + dialogMessage + "') during " + dismissalTypeToString(dismissalType) + "."; 906 String message = String("Blocked ") + dialogTypeToString(dialogType) + "('" + dialogMessage + "') during " + dismissalTypeToString(dismissalType) + ".";
907 m_webView->mainFrame()->addMessageToConsole(WebConsoleMessage(WebConsoleMess age::LevelError, message)); 907 m_webView->mainFrame()->addMessageToConsole(WebConsoleMessage(WebConsoleMess age::LevelError, message));
908 908
909 return false; 909 return false;
910 } 910 }
911 911
912 void ChromeClientImpl::setEventListenerProperties(WebEventListenerClass eventCla ss, WebEventListenerProperties properties) 912 void ChromeClientImpl::setEventListenerProperties(WebEventListenerClass eventCla ss, WebEventListenerProperties properties)
913 { 913 {
914 if (eventClass == WebEventListenerClass::Touch) 914 if (WebLayerTreeView* treeView = m_webView->layerTreeView()) {
915 m_webView->hasTouchEventHandlers(properties != WebEventListenerPropertie s::Nothing);
916
917 if (WebLayerTreeView* treeView = m_webView->layerTreeView())
918 treeView->setEventListenerProperties(eventClass, properties); 915 treeView->setEventListenerProperties(eventClass, properties);
916 if (eventClass == WebEventListenerClass::TouchStartOrMove) {
917 m_webView->hasTouchEventHandlers(properties != WebEventListenerPrope rties::Nothing || eventListenerProperties(WebEventListenerClass::TouchEndOrCance l) != WebEventListenerProperties::Nothing);
918 } else if (eventClass == WebEventListenerClass::TouchEndOrCancel) {
919 m_webView->hasTouchEventHandlers(properties != WebEventListenerPrope rties::Nothing || eventListenerProperties(WebEventListenerClass::TouchStartOrMov e) != WebEventListenerProperties::Nothing);
920 }
921 } else {
922 m_webView->hasTouchEventHandlers(true);
923 }
919 } 924 }
920 925
921 WebEventListenerProperties ChromeClientImpl::eventListenerProperties(WebEventLis tenerClass eventClass) const 926 WebEventListenerProperties ChromeClientImpl::eventListenerProperties(WebEventLis tenerClass eventClass) const
922 { 927 {
923 if (WebLayerTreeView* treeView = m_webView->layerTreeView()) 928 if (WebLayerTreeView* treeView = m_webView->layerTreeView())
924 return treeView->eventListenerProperties(eventClass); 929 return treeView->eventListenerProperties(eventClass);
925 return WebEventListenerProperties::Nothing; 930 return WebEventListenerProperties::Nothing;
926 } 931 }
927 932
928 void ChromeClientImpl::setHaveScrollEventHandlers(bool hasEventHandlers) 933 void ChromeClientImpl::setHasScrollEventHandlers(bool hasEventHandlers)
929 { 934 {
930 if (WebLayerTreeView* treeView = m_webView->layerTreeView()) 935 if (WebLayerTreeView* treeView = m_webView->layerTreeView())
931 treeView->setHaveScrollEventHandlers(hasEventHandlers); 936 treeView->setHaveScrollEventHandlers(hasEventHandlers);
932 } 937 }
933 938
934 bool ChromeClientImpl::haveScrollEventHandlers() const 939 bool ChromeClientImpl::hasScrollEventHandlers() const
935 { 940 {
936 if (WebLayerTreeView* treeView = m_webView->layerTreeView()) 941 if (WebLayerTreeView* treeView = m_webView->layerTreeView())
937 return treeView->haveScrollEventHandlers(); 942 return treeView->haveScrollEventHandlers();
938 return false; 943 return false;
939 } 944 }
940 945
941 void ChromeClientImpl::setTouchAction(TouchAction touchAction) 946 void ChromeClientImpl::setTouchAction(TouchAction touchAction)
942 { 947 {
943 if (WebViewClient* client = m_webView->client()) 948 if (WebViewClient* client = m_webView->client())
944 client->setTouchAction(static_cast<WebTouchAction>(touchAction)); 949 client->setTouchAction(static_cast<WebTouchAction>(touchAction));
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
1089 if (m_webView->pageImportanceSignals()) 1094 if (m_webView->pageImportanceSignals())
1090 m_webView->pageImportanceSignals()->setIssuedNonGetFetchFromScript(); 1095 m_webView->pageImportanceSignals()->setIssuedNonGetFetchFromScript();
1091 } 1096 }
1092 1097
1093 PassOwnPtr<WebFrameScheduler> ChromeClientImpl::createFrameScheduler(BlameContex t* blameContext) 1098 PassOwnPtr<WebFrameScheduler> ChromeClientImpl::createFrameScheduler(BlameContex t* blameContext)
1094 { 1099 {
1095 return adoptPtr(m_webView->scheduler()->createFrameScheduler(blameContext).r elease()); 1100 return adoptPtr(m_webView->scheduler()->createFrameScheduler(blameContext).r elease());
1096 } 1101 }
1097 1102
1098 } // namespace blink 1103 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/web/ChromeClientImpl.h ('k') | third_party/WebKit/Source/web/WebPagePopupImpl.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698