Pier Angelo Vendrame pushed to branch base-browser-102.9.0esr-12.5-1 at The Tor Project / Applications / Tor Browser
Commits: adbf9acf by Pier Angelo Vendrame at 2023-04-04T09:51:56+00:00 fixup! Bug 40926: Implemented the New Identity feature
Bug 41711: Wait for the new window when doing new identity
(cherry picked from commit d23d3f2cf3cc5cb1d9895108b67489314501dd20) - - - - -
1 changed file:
- browser/components/newidentity/content/newidentity.js
Changes:
===================================== browser/components/newidentity/content/newidentity.js ===================================== @@ -57,6 +57,7 @@ XPCOMUtils.defineLazyGetter(this, "NewIdentityButton", () => { ); const consoleOptions = { maxLogLevel: "info", + maxLogLevelPref: "browser.new_identity.log_level", prefix: "NewIdentity", }; return new ConsoleAPI(consoleOptions); @@ -68,12 +69,11 @@ XPCOMUtils.defineLazyGetter(this, "NewIdentityButton", () => {
class NewIdentityImpl { async run() { - logger.debug("Disabling JS"); this.disableAllJS(); await this.clearState(); - this.broadcast(); - this.openNewWindow(); + await this.openNewWindow(); this.closeOldWindow(); + this.broadcast(); }
// Disable JS (as a defense-in-depth measure) @@ -389,7 +389,7 @@ XPCOMUtils.defineLazyGetter(this, "NewIdentityButton", () => { logger.info("Calling the clearDataService"); const flags = Services.clearData.CLEAR_ALL ^ Services.clearData.CLEAR_PASSWORDS; - return new Promise((resolve, reject) => { + return new Promise(resolve => { Services.clearData.deleteData(flags, { onDataDeleted(code) { if (code !== Cr.NS_OK) { @@ -425,11 +425,16 @@ XPCOMUtils.defineLazyGetter(this, "NewIdentityButton", () => {
openNewWindow() { logger.info("Opening a new window"); - // Open a new window with the default homepage - // We could pass {private: true} but we do not because we enforce - // browser.privatebrowsing.autostart = true. - // What about users that change settings? - OpenBrowserWindow(); + return new Promise(resolve => { + // Open a new window with the default homepage + // We could pass {private: true} but we do not because we enforce + // browser.privatebrowsing.autostart = true. + // What about users that change settings? + const win = OpenBrowserWindow(); + // This mechanism to know when the new window is ready is used by + // OpenBrowserWindow itself (see its definition in browser.js). + win.addEventListener("MozAfterPaint", () => resolve(), { once: true }); + }); }
closeOldWindow() {
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/adbf9acf...
tbb-commits@lists.torproject.org