Bug 1336763 - Don't ask content process for permission to unload a window if it never set an onbeforeunload event handler. r?dao draft
authorMike Conley <mconley@mozilla.com>
Thu, 13 Apr 2017 19:13:34 -0400
changeset 570383 9d72e1703e33bdafaa4f3c81d1cd65cef3c71ee8
parent 570382 093547d34bd6fdd0ef8a934f97a46288314058ff
child 570384 830afcae08b9cc5efc7364b073664e716ea342b0
push id56469
push usermconley@mozilla.com
push dateFri, 28 Apr 2017 19:52:42 +0000
reviewersdao
bugs1336763
milestone55.0a1
Bug 1336763 - Don't ask content process for permission to unload a window if it never set an onbeforeunload event handler. r?dao MozReview-Commit-ID: JfNz5SdKRTN
toolkit/content/widgets/remote-browser.xml
--- a/toolkit/content/widgets/remote-browser.xml
+++ b/toolkit/content/widgets/remote-browser.xml
@@ -297,16 +297,23 @@
           });
         ]]>
         </body>
       </method>
 
       <method name="permitUnload">
         <body>
         <![CDATA[
+          let { frameLoader } = this.QueryInterface(Components.interfaces.nsIFrameLoaderOwner);
+          let tabParent = frameLoader.tabParent;
+
+          if (!tabParent.hasBeforeUnload) {
+            return { permitUnload: true, timedOut: false };
+          }
+
           const kTimeout = 5000;
 
           let finished = false;
           let responded = false;
           let permitUnload;
           let id = this._permitUnloadId++;
           let mm = this.messageManager;
           let Services = Components.utils.import("resource://gre/modules/Services.jsm", {}).Services;