commit 925954a31989b464f472796d67e5a59cca113251
parent 5458f648958f245a1886c168a85b7516ecc993fe
Author: Tanvi Manku <tanvi.manku@gmail.com>
Date: Mon, 5 Jan 2026 22:58:10 +0000
Bug 2007540 - Fix timing issue so that add buttons are displayed after browser restart. r=mtigley,credential-management-reviewers,akulyk
Differential Revision: https://phabricator.services.mozilla.com/D277721
Diffstat:
2 files changed, 33 insertions(+), 2 deletions(-)
diff --git a/browser/components/preferences/main.js b/browser/components/preferences/main.js
@@ -1443,12 +1443,27 @@ Preferences.addSetting({
Preferences.addSetting({
id: "add-payment-button",
deps: ["saveAndFillPayments"],
+ setup: (emitChange, _, setting) => {
+ function updateDepsAndChange() {
+ setting._deps = null;
+ emitChange();
+ }
+ Services.obs.addObserver(
+ updateDepsAndChange,
+ "formautofill-preferences-initialized"
+ );
+ return () =>
+ Services.obs.removeObserver(
+ updateDepsAndChange,
+ "formautofill-preferences-initialized"
+ );
+ },
onUserClick: ({ target }) => {
target.ownerGlobal.gSubDialog.open(
"chrome://formautofill/content/editCreditCard.xhtml"
);
},
- disabled: ({ saveAndFillPayments }) => !saveAndFillPayments.value,
+ disabled: ({ saveAndFillPayments }) => !saveAndFillPayments?.value,
});
Preferences.addSetting({
@@ -1942,10 +1957,25 @@ Preferences.addSetting({
Preferences.addSetting({
id: "add-address-button",
deps: ["saveAndFillAddresses"],
+ setup: (emitChange, _, setting) => {
+ function updateDepsAndChange() {
+ setting._deps = null;
+ emitChange();
+ }
+ Services.obs.addObserver(
+ updateDepsAndChange,
+ "formautofill-preferences-initialized"
+ );
+ return () =>
+ Services.obs.removeObserver(
+ updateDepsAndChange,
+ "formautofill-preferences-initialized"
+ );
+ },
onUserClick: () => {
FormAutofillPreferences.prototype.openEditAddressDialog(undefined, window);
},
- disabled: ({ saveAndFillAddresses }) => !saveAndFillAddresses.value,
+ disabled: ({ saveAndFillAddresses }) => !saveAndFillAddresses?.value,
});
Preferences.addSetting({
diff --git a/toolkit/components/formautofill/FormAutofillPreferences.sys.mjs b/toolkit/components/formautofill/FormAutofillPreferences.sys.mjs
@@ -195,6 +195,7 @@ export class FormAutofillPreferences {
addressesGroup.getSetting = win.Preferences.getSetting.bind(
win.Preferences
);
+ Services.obs.notifyObservers(win, "formautofill-preferences-initialized");
}
async initializePaymentsStorage() {