Bug 1430077 - Broadcast Marionette:Deregister once. r?whimboo
The global message manager reaches all browsers and all frames.
If Marionette was _not_ using the global message manager, this
would have been the correct approach.
MozReview-Commit-ID: HKrlfd9pzK2
--- a/testing/marionette/driver.js
+++ b/testing/marionette/driver.js
@@ -2762,23 +2762,17 @@ GeckoDriver.prototype.closeChromeWindow
};
/** Delete Marionette session. */
GeckoDriver.prototype.deleteSession = function() {
if (this.curBrowser !== null) {
// frame scripts can be safely reused
Preferences.set(CONTENT_LISTENER_PREF, false);
- // clean up state in each frame in each browser
- for (let win in this.browsers) {
- let browser = this.browsers[win];
- browser.knownFrames.forEach(() => {
- globalMessageManager.broadcastAsyncMessage("Marionette:Deregister");
- });
- }
+ globalMessageManager.broadcastAsyncMessage("Marionette:Deregister");
for (let win of this.windows) {
if (win.messageManager) {
win.messageManager.removeDelayedFrameScript(FRAME_SCRIPT);
} else {
logger.error(
`Could not remove listener from page ${win.location.href}`);
}