Index: third_party/WebKit/Source/core/events/EventDispatcher.cpp |
diff --git a/third_party/WebKit/Source/core/events/EventDispatcher.cpp b/third_party/WebKit/Source/core/events/EventDispatcher.cpp |
index 5f13a7d4a30854abb4e7e82c5899dde7541c13dc..87ca7ac58fe2db12abebc5e3cba79fe83f329a56 100644 |
--- a/third_party/WebKit/Source/core/events/EventDispatcher.cpp |
+++ b/third_party/WebKit/Source/core/events/EventDispatcher.cpp |
@@ -35,6 +35,7 @@ |
#include "core/frame/Deprecation.h" |
#include "core/frame/FrameView.h" |
#include "core/frame/LocalDOMWindow.h" |
+#include "core/frame/Settings.h" |
#include "core/frame/UseCounter.h" |
#include "core/inspector/InspectorTraceEvents.h" |
#include "platform/EventDispatchForbiddenScope.h" |
@@ -220,6 +221,16 @@ inline void EventDispatcher::dispatchEventPostProcess(EventDispatchHandlingState |
// should not have their default handlers invoked. |
bool isTrustedOrClick = !RuntimeEnabledFeatures::trustedEventsDefaultActionEnabled() || m_event->isTrusted() || isClick; |
+ // For Android WebView (distinguished by wideViewportQuirkEnabled) |
+ // enable untrusted events for mouse down on select elements because |
+ // fastclick.js seems to generate these. crbug.com/642698 |
+ // TODO(dtapuska): Change this to a target SDK quirk crbug.com/643705 |
+ if (!isTrustedOrClick && m_event->isMouseEvent() && m_event->type() == EventTypeNames::mousedown && isHTMLSelectElement(*m_node)) { |
+ if (Settings* settings = m_node->document().settings()) { |
+ isTrustedOrClick = settings->wideViewportQuirkEnabled(); |
+ } |
+ } |
+ |
// Call default event handlers. While the DOM does have a concept of preventing |
// default handling, the detail of which handlers are called is an internal |
// implementation detail and not part of the DOM. |