fix: an open popup follows a network switch the background saves (closes #650)
When the background saves a network switch after the user approves a site's request, or another popup page saves one, an open popup now notices the stored record change and takes the new network from it, holding the lock, inside a save. It then leaves the page as a switch in Settings does: the stack is cut, every screen counts as not yet rendered, and the screen on top is drawn again. The cut and the redraw are now two functions in the Settings view that both paths call. A record already on the popup's network, such as its own Settings switch, changes nothing. The popup never switches the network itself. Model: opus-5-5
This commit is contained in:
@@ -867,6 +867,14 @@ step(
|
||||
"the page was not told of the approved switch: " +
|
||||
JSON.stringify(events),
|
||||
);
|
||||
// The popup, open all along, shows the new network
|
||||
// (https://git.eeqj.de/sneak/AutistMask/issues/650).
|
||||
await d.switchToWindow(env.popupWindow);
|
||||
await d.waitFor(
|
||||
"the open popup to show the testnet banner",
|
||||
`const banner = document.getElementById("debug-banner");
|
||||
return banner !== null && banner.textContent === "[TESTNET]";`,
|
||||
);
|
||||
|
||||
await openNetworkPrompt(env, "switch-restore", sepolia, mainnet);
|
||||
await d.click("#btn-approve-network");
|
||||
@@ -881,6 +889,10 @@ step(
|
||||
isDeepStrictEqual(await storedNetwork(env), before),
|
||||
"switching back did not restore the mainnet network and endpoints",
|
||||
);
|
||||
await d.waitFor(
|
||||
"the open popup to drop the testnet banner",
|
||||
`return document.getElementById("debug-banner") === null;`,
|
||||
);
|
||||
await d.switchToWindow(env.dappWindow);
|
||||
},
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user