Bug 1304492 - use frameloader's context to get contentPrincipal, r?mconley draft
authorGijs Kruitbosch <gijskruitbosch@gmail.com>
Mon, 26 Sep 2016 14:47:31 +0100
changeset 417698 5ebfba7a3d45de48fa628163f160c4d2f323dca4
parent 416020 560b2c805bf7bebeb3ceebc495a81b2aa4c0c755
child 532139 a54ec703148fbd634800d0479863234de676e36f
push id30456
push usergijskruitbosch@gmail.com
push dateMon, 26 Sep 2016 16:09:32 +0000
reviewersmconley
bugs1304492
milestone52.0a1
Bug 1304492 - use frameloader's context to get contentPrincipal, r?mconley MozReview-Commit-ID: DdzGwIJye14
toolkit/content/widgets/remote-browser.xml
--- a/toolkit/content/widgets/remote-browser.xml
+++ b/toolkit/content/widgets/remote-browser.xml
@@ -364,19 +364,21 @@
            * the <browser> element may not be initialized yet.
            */
 
           this._remoteWebNavigation = Components.classes["@mozilla.org/remote-web-navigation;1"]
                                                 .createInstance(Components.interfaces.nsIWebNavigation);
           this._remoteWebNavigationImpl = this._remoteWebNavigation.wrappedJSObject;
           this._remoteWebNavigationImpl.swapBrowser(this);
 
-          // Initialize to the null principal
-          let Services = Components.utils.import("resource://gre/modules/Services.jsm", {}).Services
-          this._contentPrincipal = Services.scriptSecurityManager.createNullPrincipal({});
+          // Initialize contentPrincipal to the about:blank principal for this loadcontext
+          let {Services} = Components.utils.import("resource://gre/modules/Services.jsm", {});
+          let aboutBlank = Services.io.newURI("about:blank", null, null);
+          let ssm = Services.scriptSecurityManager;
+          this._contentPrincipal = ssm.getLoadContextCodebasePrincipal(aboutBlank, this.loadContext);
 
           this.messageManager.addMessageListener("Browser:Init", this);
           this.messageManager.addMessageListener("DOMTitleChanged", this);
           this.messageManager.addMessageListener("ImageDocumentLoaded", this);
           this.messageManager.addMessageListener("FullZoomChange", this);
           this.messageManager.addMessageListener("TextZoomChange", this);
           this.messageManager.addMessageListener("ZoomChangeUsingMouseWheel", this);
           this.messageManager.addMessageListener("DOMFullscreen:RequestExit", this);