Bug 1890427 - Part 10: Use an observer to regenerate backups on newtab links being blocked. r=backup-reviewers,kpatenio
Differential Revision: https://phabricator.services.mozilla.com/D218880
This commit is contained in:
@@ -3170,6 +3170,7 @@ export class BackupService extends EventTarget {
|
||||
Services.obs.addObserver(this.#observer, "perm-changed");
|
||||
Services.obs.addObserver(this.#observer, "cookie-changed");
|
||||
Services.obs.addObserver(this.#observer, "session-cookie-changed");
|
||||
Services.obs.addObserver(this.#observer, "newtab-linkBlocked");
|
||||
Services.obs.addObserver(this.#observer, "quit-application-granted");
|
||||
}
|
||||
|
||||
@@ -3207,6 +3208,7 @@ export class BackupService extends EventTarget {
|
||||
Services.obs.removeObserver(this.#observer, "perm-changed");
|
||||
Services.obs.removeObserver(this.#observer, "cookie-changed");
|
||||
Services.obs.removeObserver(this.#observer, "session-cookie-changed");
|
||||
Services.obs.removeObserver(this.#observer, "newtab-linkBlocked");
|
||||
Services.obs.removeObserver(this.#observer, "quit-application-granted");
|
||||
this.#observer = null;
|
||||
|
||||
@@ -3253,6 +3255,8 @@ export class BackupService extends EventTarget {
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "newtab-linkBlocked":
|
||||
// Intentional fall-through
|
||||
case "sanitizer-sanitization-complete": {
|
||||
this.#debounceRegeneration();
|
||||
break;
|
||||
|
||||
@@ -33,6 +33,9 @@ const { formAutofillStorage } = ChromeUtils.importESModule(
|
||||
const { Sanitizer } = ChromeUtils.importESModule(
|
||||
"resource:///modules/Sanitizer.sys.mjs"
|
||||
);
|
||||
const { NewTabUtils } = ChromeUtils.importESModule(
|
||||
"resource://gre/modules/NewTabUtils.sys.mjs"
|
||||
);
|
||||
|
||||
ExtensionTestUtils.init(this);
|
||||
AddonTestUtils.init(this);
|
||||
@@ -567,3 +570,14 @@ add_task(async function test_cookies_removed() {
|
||||
}, "Saw regeneration on all cookie removal.");
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Tests that backup regeneration occurs when newtab links are blocked.
|
||||
*/
|
||||
add_task(async function test_newtab_link_blocked() {
|
||||
NewTabUtils.init();
|
||||
|
||||
await expectRegeneration(async () => {
|
||||
NewTabUtils.activityStreamLinks.blockURL("https://example.com");
|
||||
}, "Saw regeneration on the blocking of a newtab link");
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user