Title: [144200] trunk/Source/WebKit/blackberry
Revision
144200
Author
[email protected]
Date
2013-02-27 09:12:37 -0800 (Wed, 27 Feb 2013)

Log Message

[BlackBerry] The virtual keyboard hides part of Signing In dialog
https://bugs.webkit.org/show_bug.cgi?id=110836

Patch by Sean Wang <[email protected]> on 2013-02-27
Reviewed by Yong Li.

PR # 283427 Internally reviewed by Mike Fenton.

Store form credentials before _javascript_ "onSubmit" event and notify
webpage client to save credentials after that event since _javascript_
may check credentials and stop the submission in its event handler.

* WebCoreSupport/CredentialTransformData.cpp:
(WebCore::CredentialTransformData::CredentialTransformData):
(WebCore):
* WebCoreSupport/CredentialTransformData.h:
(CredentialTransformData):
* WebCoreSupport/FrameLoaderClientBlackBerry.cpp:
(WebCore::FrameLoaderClientBlackBerry::dispatchWillSubmitForm):
(WebCore::FrameLoaderClientBlackBerry::dispatchWillSendSubmitEvent):
* WebCoreSupport/FrameLoaderClientBlackBerry.h:
(FrameLoaderClientBlackBerry):

Modified Paths

Diff

Modified: trunk/Source/WebKit/blackberry/ChangeLog (144199 => 144200)


--- trunk/Source/WebKit/blackberry/ChangeLog	2013-02-27 17:07:37 UTC (rev 144199)
+++ trunk/Source/WebKit/blackberry/ChangeLog	2013-02-27 17:12:37 UTC (rev 144200)
@@ -1,3 +1,27 @@
+2013-02-27  Sean Wang  <[email protected]>
+
+        [BlackBerry] The virtual keyboard hides part of Signing In dialog
+        https://bugs.webkit.org/show_bug.cgi?id=110836
+
+        Reviewed by Yong Li.
+
+        PR # 283427 Internally reviewed by Mike Fenton.
+
+        Store form credentials before _javascript_ "onSubmit" event and notify
+        webpage client to save credentials after that event since _javascript_
+        may check credentials and stop the submission in its event handler.
+
+        * WebCoreSupport/CredentialTransformData.cpp:
+        (WebCore::CredentialTransformData::CredentialTransformData):
+        (WebCore):
+        * WebCoreSupport/CredentialTransformData.h:
+        (CredentialTransformData):
+        * WebCoreSupport/FrameLoaderClientBlackBerry.cpp:
+        (WebCore::FrameLoaderClientBlackBerry::dispatchWillSubmitForm):
+        (WebCore::FrameLoaderClientBlackBerry::dispatchWillSendSubmitEvent):
+        * WebCoreSupport/FrameLoaderClientBlackBerry.h:
+        (FrameLoaderClientBlackBerry):
+
 2013-02-27  Mike Fenton  <[email protected]>
 
         [BlackBerry] Accept key events even when composing region is active.

Modified: trunk/Source/WebKit/blackberry/WebCoreSupport/CredentialTransformData.cpp (144199 => 144200)


--- trunk/Source/WebKit/blackberry/WebCoreSupport/CredentialTransformData.cpp	2013-02-27 17:07:37 UTC (rev 144199)
+++ trunk/Source/WebKit/blackberry/WebCoreSupport/CredentialTransformData.cpp	2013-02-27 17:12:37 UTC (rev 144200)
@@ -111,6 +111,14 @@
 
 } // namespace
 
+CredentialTransformData::CredentialTransformData()
+    : m_userNameElement(0)
+    , m_passwordElement(0)
+    , m_oldPasswordElement(0)
+    , m_isValid(false)
+{
+}
+
 CredentialTransformData::CredentialTransformData(HTMLFormElement* form, bool isForSaving)
     : m_userNameElement(0)
     , m_passwordElement(0)

Modified: trunk/Source/WebKit/blackberry/WebCoreSupport/CredentialTransformData.h (144199 => 144200)


--- trunk/Source/WebKit/blackberry/WebCoreSupport/CredentialTransformData.h	2013-02-27 17:07:37 UTC (rev 144199)
+++ trunk/Source/WebKit/blackberry/WebCoreSupport/CredentialTransformData.h	2013-02-27 17:12:37 UTC (rev 144200)
@@ -29,6 +29,7 @@
 struct CredentialTransformData {
     // If the provided form is suitable for password completion, isValid() will
     // return true;
+    CredentialTransformData();
     CredentialTransformData(HTMLFormElement*, bool isForSaving = false);
     CredentialTransformData(const KURL&, const ProtectionSpace&, const Credential&);
 

Modified: trunk/Source/WebKit/blackberry/WebCoreSupport/FrameLoaderClientBlackBerry.cpp (144199 => 144200)


--- trunk/Source/WebKit/blackberry/WebCoreSupport/FrameLoaderClientBlackBerry.cpp	2013-02-27 17:07:37 UTC (rev 144199)
+++ trunk/Source/WebKit/blackberry/WebCoreSupport/FrameLoaderClientBlackBerry.cpp	2013-02-27 17:12:37 UTC (rev 144200)
@@ -772,16 +772,23 @@
 {
     // FIXME: Stub.
     (m_frame->loader()->policyChecker()->*function)(PolicyUse);
+#if ENABLE(BLACKBERRY_CREDENTIAL_PERSIST)
+    if (m_formCredentials.isValid())
+        credentialManager().saveCredentialIfConfirmed(m_webPagePrivate, m_formCredentials);
+#endif
 }
 
 void FrameLoaderClientBlackBerry::dispatchWillSendSubmitEvent(PassRefPtr<FormState> prpFormState)
 {
+#if ENABLE(BLACKBERRY_CREDENTIAL_PERSIST)
+    m_formCredentials = CredentialTransformData();
+#endif
     if (!m_webPagePrivate->m_webSettings->isPrivateBrowsingEnabled()) {
         if (m_webPagePrivate->m_webSettings->isFormAutofillEnabled())
             m_webPagePrivate->m_autofillManager->saveTextFields(prpFormState->form());
 #if ENABLE(BLACKBERRY_CREDENTIAL_PERSIST)
         if (m_webPagePrivate->m_webSettings->isCredentialAutofillEnabled())
-            credentialManager().saveCredentialIfConfirmed(m_webPagePrivate, CredentialTransformData(prpFormState->form(), true));
+            m_formCredentials = CredentialTransformData(prpFormState->form(), true);
 #endif
     }
 }

Modified: trunk/Source/WebKit/blackberry/WebCoreSupport/FrameLoaderClientBlackBerry.h (144199 => 144200)


--- trunk/Source/WebKit/blackberry/WebCoreSupport/FrameLoaderClientBlackBerry.h	2013-02-27 17:07:37 UTC (rev 144199)
+++ trunk/Source/WebKit/blackberry/WebCoreSupport/FrameLoaderClientBlackBerry.h	2013-02-27 17:12:37 UTC (rev 144200)
@@ -19,6 +19,7 @@
 #ifndef FrameLoaderClientBlackBerry_h
 #define FrameLoaderClientBlackBerry_h
 
+#include "CredentialTransformData.h"
 #include "DocumentLoader.h"
 #include "Frame.h"
 #include "FrameLoaderClient.h"
@@ -218,6 +219,9 @@
     bool m_cancelLoadOnNextData;
 
     bool m_wasProvisionalLoadTriggeredByUserGesture;
+#if ENABLE(BLACKBERRY_CREDENTIAL_PERSIST)
+    CredentialTransformData m_formCredentials;
+#endif
 };
 
 } // WebCore
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to