Index: components/autofill/ios/browser/resources/autofill_controller.js |
diff --git a/components/autofill/ios/browser/resources/autofill_controller.js b/components/autofill/ios/browser/resources/autofill_controller.js |
index 9e53e2d5b4ef067e456b4bc41bdb206519489152..e4bb095c9645fe7c9de6dc8db76641cc9c99815b 100644 |
--- a/components/autofill/ios/browser/resources/autofill_controller.js |
+++ b/components/autofill/ios/browser/resources/autofill_controller.js |
@@ -8,7 +8,8 @@ |
// representing an array of objects, each of which represents an Autofill form |
// with information about a form to be filled and/or submitted and it can be |
// translated to struct FormData |
-// (chromium/src/components/autofill/common/form_data.h) for further processing. |
+// (chromium/src/components/autofill/core/common/form_data.h) for further |
+// processing. |
/** |
* Namespace for this file. It depends on |__gCrWeb| having already been |
@@ -98,6 +99,11 @@ __gCrWeb.autofill.EXTRACT_MASK_OPTIONS = 1 << 2; |
__gCrWeb.autofill.lastAutoFilledElement = null; |
/** |
+ * The last element that was active (used to restore focus if necessary). |
+ */ |
+__gCrWeb.autofill.lastActiveElement = null; |
+ |
+/** |
* Scans DOM and returns a JSON string representation of forms and form |
* extraction results. |
* @param {int} requiredFields The minimum number of fields forms must have to |
@@ -126,12 +132,34 @@ __gCrWeb.autofill['extractForms'] = function(requiredFields, requirements) { |
}; |
/** |
- * Fills data into the active form field. |
+ * Stores the current active element. This is used to make the element active |
+ * again in case the web view loses focus when a dialog is presented over it. |
+ */ |
+__gCrWeb.autofill['storeActiveElement'] = function() { |
Dan Beam
2015/05/20 23:31:52
why are you missing ['braces'] and .dot notation?
Dan Beam
2015/05/20 23:32:06
s/missing/mixing
Justin Donnelly
2015/05/21 00:36:01
I don't know, I'm pretty new to working with this
dconnelly
2015/05/21 07:27:54
Yeah, it's some Closure compiler thing. The functi
|
+ __gCrWeb.autofill.lastActiveElement = document.activeElement; |
+} |
+ |
+/** |
+ * Clears the current active element by setting it to null. |
+ */ |
+__gCrWeb.autofill['clearActiveElement'] = function() { |
+ __gCrWeb.autofill.lastActiveElement = null; |
+} |
+ |
+/** |
+ * Fills data into the active form field. The active form field is either |
+ * document.activeElement or the value of lastActiveElement if that value is |
+ * non-null. |
* |
* @param {Object} data The data to fill in. |
*/ |
__gCrWeb.autofill['fillActiveFormField'] = function(data) { |
var activeElement = document.activeElement; |
+ if (__gCrWeb.autofill.lastActiveElement) { |
+ activeElement = __gCrWeb.autofill.lastActiveElement; |
+ activeElement.focus(); |
+ __gCrWeb.autofill.lastActiveElement = null; |
+ } |
if (data['name'] !== __gCrWeb['common'].nameForAutofill(activeElement)) { |
return; |
} |