Index: Source/web/WebViewImpl.cpp |
diff --git a/Source/web/WebViewImpl.cpp b/Source/web/WebViewImpl.cpp |
index 4ba3f0cac83701f6a1535202b38c4d5ba6022374..2a345e9bf0cb8b35860545a4954f7ab1498fc279 100644 |
--- a/Source/web/WebViewImpl.cpp |
+++ b/Source/web/WebViewImpl.cpp |
@@ -1827,6 +1827,17 @@ const WebInputEvent* WebViewImpl::m_currentInputEvent = 0; |
bool WebViewImpl::handleInputEvent(const WebInputEvent& inputEvent) |
{ |
UserGestureNotifier notifier(m_autofillClient, &m_userGestureObserved); |
+ // On the first input event since page load, |notifier| instructs the |
+ // autofill client to unblock values of password input fields of any forms |
+ // on the page. There is a single input event, GestureTap, which can both |
+ // be the first event after page load, and cause a form submission. In that |
+ // case, the form submission happens before the autofill client is told |
+ // to unblock the password values, and so the password values are not |
+ // submitted. To avoid that, GestureTap is handled explicitly: |
+ if (inputEvent.type == WebInputEvent::GestureTap && m_autofillClient) { |
+ m_userGestureObserved = true; |
+ m_autofillClient->firstUserGestureObserved(); |
+ } |
TRACE_EVENT0("input", "WebViewImpl::handleInputEvent"); |
// If we've started a drag and drop operation, ignore input events until |