Bug 1430077 - Broadcast Marionette:Deregister once. r?whimboo draft
authorAndreas Tolfsen <ato@sny.no>
Fri, 12 Jan 2018 13:24:54 +0000
changeset 720393 6dc2b42bd9a6a6bddccfa65fda546681c41cd2f7
parent 720380 b7d66e4e60ef177ec9ae687daa29443ae4a2acfc
child 720394 9b442cc25743b97341b66e9ff97b3a4ff109be13
push id95535
push userbmo:ato@sny.no
push dateMon, 15 Jan 2018 14:06:36 +0000
reviewerswhimboo
bugs1430077
milestone59.0a1
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
testing/marionette/driver.js
--- 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}`);
       }