Bug 1400665 - Add a explicit check for fieldDetail to avoid calling a method of "undefined". r=lchang draft
authorRay Lin <ralin@mozilla.com>
Tue, 19 Sep 2017 11:34:07 +0800
changeset 667390 2114b7ca3e2df3aa5afe43f49a9715c704bd3f15
parent 666598 30a386ff1192cba08a2f899343f81f6946bc6148
child 732363 e60a96056f94f9d3e166257e3d3e17b4082dd299
push id80688
push userbmo:ralin@mozilla.com
push dateWed, 20 Sep 2017 01:22:08 +0000
reviewerslchang
bugs1400665
milestone57.0a1
Bug 1400665 - Add a explicit check for fieldDetail to avoid calling a method of "undefined". r=lchang MozReview-Commit-ID: EeYhje0b4c1
browser/extensions/formautofill/FormAutofillHandler.jsm
--- a/browser/extensions/formautofill/FormAutofillHandler.jsm
+++ b/browser/extensions/formautofill/FormAutofillHandler.jsm
@@ -170,20 +170,27 @@ FormAutofillHandler.prototype = {
 
     return validDetails;
   },
 
   getFieldDetailByName(fieldName) {
     return this.fieldDetails.find(detail => detail.fieldName == fieldName);
   },
 
-  getFieldDetailsByElement(element) {
-    let fieldDetail = this.fieldDetails.find(
+  getFieldDetailByElement(element) {
+    return this.fieldDetails.find(
       detail => detail.elementWeakRef.get() == element
     );
+  },
+
+  getFieldDetailsByElement(element) {
+    let fieldDetail = this.getFieldDetailByElement(element);
+    if (!fieldDetail) {
+      return [];
+    }
     if (FormAutofillUtils.isAddressField(fieldDetail.fieldName)) {
       return this.address.fieldDetails;
     }
     if (FormAutofillUtils.isCreditCardField(fieldDetail.fieldName)) {
       return this.creditCard.fieldDetails;
     }
     return [];
   },