Index: chrome/browser/resources/settings/passwords_and_forms_page/autofill_section.js |
diff --git a/chrome/browser/resources/settings/passwords_and_forms_page/autofill_section.js b/chrome/browser/resources/settings/passwords_and_forms_page/autofill_section.js |
index 3cfa7102bf39ec613367cfb284658088b593d54f..0a7dff75c10fa0789dc77cf144e69e86a8d70264 100644 |
--- a/chrome/browser/resources/settings/passwords_and_forms_page/autofill_section.js |
+++ b/chrome/browser/resources/settings/passwords_and_forms_page/autofill_section.js |
@@ -146,325 +146,325 @@ AutofillManagerImpl.prototype = { |
}; |
(function() { |
- 'use strict'; |
- |
- Polymer({ |
- is: 'settings-autofill-section', |
- |
- behaviors: [I18nBehavior], |
- |
- properties: { |
- /** |
- * An array of saved addresses. |
- * @type {!Array<!AutofillManager.AddressEntry>} |
- */ |
- addresses: Array, |
- |
- /** |
- * The model for any address related action menus or dialogs. |
- * @private {?chrome.autofillPrivate.AddressEntry} |
- */ |
- activeAddress: Object, |
- |
- /** @private */ |
- showAddressDialog_: Boolean, |
- |
- /** |
- * An array of saved credit cards. |
- * @type {!Array<!AutofillManager.CreditCardEntry>} |
- */ |
- creditCards: Array, |
- |
- /** |
- * The model for any credit card related action menus or dialogs. |
- * @private {?chrome.autofillPrivate.CreditCardEntry} |
- */ |
- activeCreditCard: Object, |
- |
- /** @private */ |
- showCreditCardDialog_: Boolean, |
- }, |
- |
- listeners: { |
- 'save-address': 'saveAddress_', |
- 'save-credit-card': 'saveCreditCard_', |
- }, |
+'use strict'; |
- /** |
- * The element to return focus to, when the currently active dialog is |
- * closed. |
- * @private {?HTMLElement} |
- */ |
- activeDialogAnchor_: null, |
+Polymer({ |
+ is: 'settings-autofill-section', |
- /** |
- * @type {AutofillManager} |
- * @private |
- */ |
- autofillManager_: null, |
+ behaviors: [I18nBehavior], |
+ properties: { |
/** |
- * @type {?function(!Array<!AutofillManager.AddressEntry>)} |
- * @private |
+ * An array of saved addresses. |
+ * @type {!Array<!AutofillManager.AddressEntry>} |
*/ |
- setAddressesListener_: null, |
+ addresses: Array, |
/** |
- * @type {?function(!Array<!AutofillManager.CreditCardEntry>)} |
- * @private |
+ * The model for any address related action menus or dialogs. |
+ * @private {?chrome.autofillPrivate.AddressEntry} |
*/ |
- setCreditCardsListener_: null, |
- |
- /** @override */ |
- attached: function() { |
- // Create listener functions. |
- /** @type {function(!Array<!AutofillManager.AddressEntry>)} */ |
- var setAddressesListener = function(list) { |
- this.addresses = list; |
- }.bind(this); |
- |
- /** @type {function(!Array<!AutofillManager.CreditCardEntry>)} */ |
- var setCreditCardsListener = function(list) { |
- this.creditCards = list; |
- }.bind(this); |
- |
- // Remember the bound reference in order to detach. |
- this.setAddressesListener_ = setAddressesListener; |
- this.setCreditCardsListener_ = setCreditCardsListener; |
- |
- // Set the managers. These can be overridden by tests. |
- this.autofillManager_ = AutofillManagerImpl.getInstance(); |
- |
- // Request initial data. |
- this.autofillManager_.getAddressList(setAddressesListener); |
- this.autofillManager_.getCreditCardList(setCreditCardsListener); |
- |
- // Listen for changes. |
- this.autofillManager_.addAddressListChangedListener(setAddressesListener); |
- this.autofillManager_.addCreditCardListChangedListener( |
- setCreditCardsListener); |
- }, |
- |
- /** @override */ |
- detached: function() { |
- this.autofillManager_.removeAddressListChangedListener( |
- /** @type {function(!Array<!AutofillManager.AddressEntry>)} */( |
- this.setAddressesListener_)); |
- this.autofillManager_.removeCreditCardListChangedListener( |
- /** @type {function(!Array<!AutofillManager.CreditCardEntry>)} */( |
- this.setCreditCardsListener_)); |
- }, |
+ activeAddress: Object, |
+ |
+ /** @private */ |
+ showAddressDialog_: Boolean, |
/** |
- * Formats the expiration date so it's displayed as MM/YYYY. |
- * @param {!chrome.autofillPrivate.CreditCardEntry} item |
- * @return {string} |
- * @private |
+ * An array of saved credit cards. |
+ * @type {!Array<!AutofillManager.CreditCardEntry>} |
*/ |
- expiration_: function(item) { |
- return item.expirationMonth + '/' + item.expirationYear; |
- }, |
+ creditCards: Array, |
/** |
- * Open the address action menu. |
- * @param {!Event} e The polymer event. |
- * @private |
+ * The model for any credit card related action menus or dialogs. |
+ * @private {?chrome.autofillPrivate.CreditCardEntry} |
*/ |
- onAddressMenuTap_: function(e) { |
- var menuEvent = /** @type {!{model: !{item: !Object}}} */(e); |
+ activeCreditCard: Object, |
- /* TODO(scottchen): drop the [dataHost][dataHost] once this bug is fixed: |
- https://github.com/Polymer/polymer/issues/2574 */ |
- var item = menuEvent.model['dataHost']['dataHost'].item; |
+ /** @private */ |
+ showCreditCardDialog_: Boolean, |
+ }, |
- // Copy item so dialog won't update model on cancel. |
- this.activeAddress = /** @type {!chrome.autofillPrivate.AddressEntry} */( |
- Object.assign({}, item)); |
+ listeners: { |
+ 'save-address': 'saveAddress_', |
+ 'save-credit-card': 'saveCreditCard_', |
+ }, |
- var dotsButton = /** @type {!HTMLElement} */ (Polymer.dom(e).localTarget); |
- /** @type {!CrActionMenuElement} */ ( |
- this.$.addressSharedMenu).showAt(dotsButton); |
- this.activeDialogAnchor_ = dotsButton; |
- }, |
+ /** |
+ * The element to return focus to, when the currently active dialog is |
+ * closed. |
+ * @private {?HTMLElement} |
+ */ |
+ activeDialogAnchor_: null, |
- /** |
- * Handles tapping on the "Add address" button. |
- * @param {!Event} e The polymer event. |
- * @private |
- */ |
- onAddAddressTap_: function(e) { |
- e.preventDefault(); |
- this.activeAddress = {}; |
- this.showAddressDialog_ = true; |
- this.activeDialogAnchor_ = this.$.addAddress; |
- }, |
+ /** |
+ * @type {AutofillManager} |
+ * @private |
+ */ |
+ autofillManager_: null, |
- /** @private */ |
- onAddressDialogClosed_: function() { |
- this.showAddressDialog_ = false; |
- cr.ui.focusWithoutInk(assert(this.activeDialogAnchor_)); |
- this.activeDialogAnchor_ = null; |
- }, |
+ /** |
+ * @type {?function(!Array<!AutofillManager.AddressEntry>)} |
+ * @private |
+ */ |
+ setAddressesListener_: null, |
- /** |
- * Handles tapping on the "Edit" address button. |
- * @param {!Event} e The polymer event. |
- * @private |
- */ |
- onMenuEditAddressTap_: function(e) { |
- e.preventDefault(); |
- this.showAddressDialog_ = true; |
- this.$.addressSharedMenu.close(); |
- }, |
+ /** |
+ * @type {?function(!Array<!AutofillManager.CreditCardEntry>)} |
+ * @private |
+ */ |
+ setCreditCardsListener_: null, |
- /** @private */ |
- onRemoteEditAddressTap_: function() { |
- window.open(this.i18n('manageAddressesUrl')); |
- }, |
+ /** @override */ |
+ attached: function() { |
+ // Create listener functions. |
+ /** @type {function(!Array<!AutofillManager.AddressEntry>)} */ |
+ var setAddressesListener = function(list) { |
+ this.addresses = list; |
+ }.bind(this); |
+ |
+ /** @type {function(!Array<!AutofillManager.CreditCardEntry>)} */ |
+ var setCreditCardsListener = function(list) { |
+ this.creditCards = list; |
+ }.bind(this); |
+ |
+ // Remember the bound reference in order to detach. |
+ this.setAddressesListener_ = setAddressesListener; |
+ this.setCreditCardsListener_ = setCreditCardsListener; |
+ |
+ // Set the managers. These can be overridden by tests. |
+ this.autofillManager_ = AutofillManagerImpl.getInstance(); |
+ |
+ // Request initial data. |
+ this.autofillManager_.getAddressList(setAddressesListener); |
+ this.autofillManager_.getCreditCardList(setCreditCardsListener); |
+ |
+ // Listen for changes. |
+ this.autofillManager_.addAddressListChangedListener(setAddressesListener); |
+ this.autofillManager_.addCreditCardListChangedListener( |
+ setCreditCardsListener); |
+ }, |
- /** |
- * Handles tapping on the "Remove" address button. |
- * @private |
- */ |
- onMenuRemoveAddressTap_: function() { |
- this.autofillManager_.removeAddress( |
- /** @type {string} */(this.activeAddress.guid)); |
- this.$.addressSharedMenu.close(); |
- }, |
+ /** @override */ |
+ detached: function() { |
+ this.autofillManager_.removeAddressListChangedListener( |
+ /** @type {function(!Array<!AutofillManager.AddressEntry>)} */ ( |
+ this.setAddressesListener_)); |
+ this.autofillManager_.removeCreditCardListChangedListener( |
+ /** @type {function(!Array<!AutofillManager.CreditCardEntry>)} */ ( |
+ this.setCreditCardsListener_)); |
+ }, |
- /** |
- * Opens the credit card action menu. |
- * @param {!Event} e The polymer event. |
- * @private |
- */ |
- onCreditCardMenuTap_: function(e) { |
- var menuEvent = /** @type {!{model: !{item: !Object}}} */(e); |
+ /** |
+ * Formats the expiration date so it's displayed as MM/YYYY. |
+ * @param {!chrome.autofillPrivate.CreditCardEntry} item |
+ * @return {string} |
+ * @private |
+ */ |
+ expiration_: function(item) { |
+ return item.expirationMonth + '/' + item.expirationYear; |
+ }, |
- /* TODO(scottchen): drop the [dataHost][dataHost] once this bug is fixed: |
- https://github.com/Polymer/polymer/issues/2574 */ |
- var item = menuEvent.model['dataHost']['dataHost'].item; |
+ /** |
+ * Open the address action menu. |
+ * @param {!Event} e The polymer event. |
+ * @private |
+ */ |
+ onAddressMenuTap_: function(e) { |
+ var menuEvent = /** @type {!{model: !{item: !Object}}} */ (e); |
- // Copy item so dialog won't update model on cancel. |
- this.activeCreditCard = |
- /** @type {!chrome.autofillPrivate.CreditCardEntry} */( |
- Object.assign({}, item)); |
+ /* TODO(scottchen): drop the [dataHost][dataHost] once this bug is fixed: |
+ https://github.com/Polymer/polymer/issues/2574 */ |
+ var item = menuEvent.model['dataHost']['dataHost'].item; |
- var dotsButton = /** @type {!HTMLElement} */ (Polymer.dom(e).localTarget); |
- /** @type {!CrActionMenuElement} */ ( |
- this.$.creditCardSharedMenu).showAt(dotsButton); |
- this.activeDialogAnchor_ = dotsButton; |
- }, |
+ // Copy item so dialog won't update model on cancel. |
+ this.activeAddress = /** @type {!chrome.autofillPrivate.AddressEntry} */ ( |
+ Object.assign({}, item)); |
- /** |
- * Handles tapping on the "Add credit card" button. |
- * @param {!Event} e |
- * @private |
- */ |
- onAddCreditCardTap_: function(e) { |
- e.preventDefault(); |
- var date = new Date(); // Default to current month/year. |
- var expirationMonth = date.getMonth() + 1; // Months are 0 based. |
- this.activeCreditCard = { |
- expirationMonth: expirationMonth.toString(), |
- expirationYear: date.getFullYear().toString(), |
- }; |
- this.showCreditCardDialog_ = true; |
- this.activeDialogAnchor_ = this.$.addCreditCard; |
- }, |
+ var dotsButton = /** @type {!HTMLElement} */ (Polymer.dom(e).localTarget); |
+ /** @type {!CrActionMenuElement} */ (this.$.addressSharedMenu) |
+ .showAt(dotsButton); |
+ this.activeDialogAnchor_ = dotsButton; |
+ }, |
- /** @private */ |
- onCreditCardDialogClosed_: function() { |
- this.showCreditCardDialog_ = false; |
- cr.ui.focusWithoutInk(assert(this.activeDialogAnchor_)); |
- this.activeDialogAnchor_ = null; |
- }, |
+ /** |
+ * Handles tapping on the "Add address" button. |
+ * @param {!Event} e The polymer event. |
+ * @private |
+ */ |
+ onAddAddressTap_: function(e) { |
+ e.preventDefault(); |
+ this.activeAddress = {}; |
+ this.showAddressDialog_ = true; |
+ this.activeDialogAnchor_ = this.$.addAddress; |
+ }, |
- /** |
- * Handles tapping on the "Edit" credit card button. |
- * @param {!Event} e The polymer event. |
- * @private |
- */ |
- onMenuEditCreditCardTap_: function(e) { |
- e.preventDefault(); |
+ /** @private */ |
+ onAddressDialogClosed_: function() { |
+ this.showAddressDialog_ = false; |
+ cr.ui.focusWithoutInk(assert(this.activeDialogAnchor_)); |
+ this.activeDialogAnchor_ = null; |
+ }, |
- if (this.activeCreditCard.metadata.isLocal) |
- this.showCreditCardDialog_ = true; |
- else |
- this.onRemoteEditCreditCardTap_(); |
+ /** |
+ * Handles tapping on the "Edit" address button. |
+ * @param {!Event} e The polymer event. |
+ * @private |
+ */ |
+ onMenuEditAddressTap_: function(e) { |
+ e.preventDefault(); |
+ this.showAddressDialog_ = true; |
+ this.$.addressSharedMenu.close(); |
+ }, |
- this.$.creditCardSharedMenu.close(); |
- }, |
+ /** @private */ |
+ onRemoteEditAddressTap_: function() { |
+ window.open(this.i18n('manageAddressesUrl')); |
+ }, |
- /** @private */ |
- onRemoteEditCreditCardTap_: function() { |
- window.open(this.i18n('manageCreditCardsUrl')); |
- }, |
+ /** |
+ * Handles tapping on the "Remove" address button. |
+ * @private |
+ */ |
+ onMenuRemoveAddressTap_: function() { |
+ this.autofillManager_.removeAddress( |
+ /** @type {string} */ (this.activeAddress.guid)); |
+ this.$.addressSharedMenu.close(); |
+ }, |
- /** |
- * Handles tapping on the "Remove" credit card button. |
- * @private |
- */ |
- onMenuRemoveCreditCardTap_: function() { |
- this.autofillManager_.removeCreditCard( |
- /** @type {string} */(this.activeCreditCard.guid)); |
- this.$.creditCardSharedMenu.close(); |
- }, |
+ /** |
+ * Opens the credit card action menu. |
+ * @param {!Event} e The polymer event. |
+ * @private |
+ */ |
+ onCreditCardMenuTap_: function(e) { |
+ var menuEvent = /** @type {!{model: !{item: !Object}}} */ (e); |
+ |
+ /* TODO(scottchen): drop the [dataHost][dataHost] once this bug is fixed: |
+ https://github.com/Polymer/polymer/issues/2574 */ |
+ var item = menuEvent.model['dataHost']['dataHost'].item; |
+ |
+ // Copy item so dialog won't update model on cancel. |
+ this.activeCreditCard = |
+ /** @type {!chrome.autofillPrivate.CreditCardEntry} */ ( |
+ Object.assign({}, item)); |
+ |
+ var dotsButton = /** @type {!HTMLElement} */ (Polymer.dom(e).localTarget); |
+ /** @type {!CrActionMenuElement} */ (this.$.creditCardSharedMenu) |
+ .showAt(dotsButton); |
+ this.activeDialogAnchor_ = dotsButton; |
+ }, |
- /** |
- * Handles tapping on the "Clear copy" button for cached credit cards. |
- * @private |
- */ |
- onMenuClearCreditCardTap_: function() { |
- this.autofillManager_.clearCachedCreditCard( |
- /** @type {string} */(this.activeCreditCard.guid)); |
- this.$.creditCardSharedMenu.close(); |
- }, |
+ /** |
+ * Handles tapping on the "Add credit card" button. |
+ * @param {!Event} e |
+ * @private |
+ */ |
+ onAddCreditCardTap_: function(e) { |
+ e.preventDefault(); |
+ var date = new Date(); // Default to current month/year. |
+ var expirationMonth = date.getMonth() + 1; // Months are 0 based. |
+ this.activeCreditCard = { |
+ expirationMonth: expirationMonth.toString(), |
+ expirationYear: date.getFullYear().toString(), |
+ }; |
+ this.showCreditCardDialog_ = true; |
+ this.activeDialogAnchor_ = this.$.addCreditCard; |
+ }, |
- /** |
- * The 3-dot menu should not be shown if the card is entirely remote. |
- * @param {!chrome.autofillPrivate.AutofillMetadata} metadata |
- * @return {boolean} |
- * @private |
- */ |
- showDots_: function(metadata) { |
- return !!(metadata.isLocal || metadata.isCached); |
- }, |
+ /** @private */ |
+ onCreditCardDialogClosed_: function() { |
+ this.showCreditCardDialog_ = false; |
+ cr.ui.focusWithoutInk(assert(this.activeDialogAnchor_)); |
+ this.activeDialogAnchor_ = null; |
+ }, |
- /** |
- * Returns true if the list exists and has items. |
- * @param {Array<Object>} list |
- * @return {boolean} |
- * @private |
- */ |
- hasSome_: function(list) { |
- return !!(list && list.length); |
- }, |
+ /** |
+ * Handles tapping on the "Edit" credit card button. |
+ * @param {!Event} e The polymer event. |
+ * @private |
+ */ |
+ onMenuEditCreditCardTap_: function(e) { |
+ e.preventDefault(); |
- /** |
- * Listens for the save-address event, and calls the private API. |
- * @param {!Event} event |
- * @private |
- */ |
- saveAddress_: function(event) { |
- this.autofillManager_.saveAddress(event.detail); |
- }, |
+ if (this.activeCreditCard.metadata.isLocal) |
+ this.showCreditCardDialog_ = true; |
+ else |
+ this.onRemoteEditCreditCardTap_(); |
- /** |
- * Listens for the save-credit-card event, and calls the private API. |
- * @param {!Event} event |
- * @private |
- */ |
- saveCreditCard_: function(event) { |
- this.autofillManager_.saveCreditCard(event.detail); |
- }, |
+ this.$.creditCardSharedMenu.close(); |
+ }, |
- /** |
- * @private |
- * @param {boolean} toggleValue |
- * @return {string} |
- */ |
- getOnOffLabel_: function(toggleValue) { |
- return toggleValue ? this.i18n('toggleOn') : this.i18n('toggleOff'); |
- } |
- }); |
+ /** @private */ |
+ onRemoteEditCreditCardTap_: function() { |
+ window.open(this.i18n('manageCreditCardsUrl')); |
+ }, |
+ |
+ /** |
+ * Handles tapping on the "Remove" credit card button. |
+ * @private |
+ */ |
+ onMenuRemoveCreditCardTap_: function() { |
+ this.autofillManager_.removeCreditCard( |
+ /** @type {string} */ (this.activeCreditCard.guid)); |
+ this.$.creditCardSharedMenu.close(); |
+ }, |
+ |
+ /** |
+ * Handles tapping on the "Clear copy" button for cached credit cards. |
+ * @private |
+ */ |
+ onMenuClearCreditCardTap_: function() { |
+ this.autofillManager_.clearCachedCreditCard( |
+ /** @type {string} */ (this.activeCreditCard.guid)); |
+ this.$.creditCardSharedMenu.close(); |
+ }, |
+ |
+ /** |
+ * The 3-dot menu should not be shown if the card is entirely remote. |
+ * @param {!chrome.autofillPrivate.AutofillMetadata} metadata |
+ * @return {boolean} |
+ * @private |
+ */ |
+ showDots_: function(metadata) { |
+ return !!(metadata.isLocal || metadata.isCached); |
+ }, |
+ |
+ /** |
+ * Returns true if the list exists and has items. |
+ * @param {Array<Object>} list |
+ * @return {boolean} |
+ * @private |
+ */ |
+ hasSome_: function(list) { |
+ return !!(list && list.length); |
+ }, |
+ |
+ /** |
+ * Listens for the save-address event, and calls the private API. |
+ * @param {!Event} event |
+ * @private |
+ */ |
+ saveAddress_: function(event) { |
+ this.autofillManager_.saveAddress(event.detail); |
+ }, |
+ |
+ /** |
+ * Listens for the save-credit-card event, and calls the private API. |
+ * @param {!Event} event |
+ * @private |
+ */ |
+ saveCreditCard_: function(event) { |
+ this.autofillManager_.saveCreditCard(event.detail); |
+ }, |
+ |
+ /** |
+ * @private |
+ * @param {boolean} toggleValue |
+ * @return {string} |
+ */ |
+ getOnOffLabel_: function(toggleValue) { |
+ return toggleValue ? this.i18n('toggleOn') : this.i18n('toggleOff'); |
+ } |
+}); |
})(); |