Loading caps/tests/mochitest/test_principal_extendedorigin_appid_appstatus.html +3 −2 Original line number Diff line number Diff line Loading @@ -364,6 +364,7 @@ function checkIFrame(aFrame, data) { checkedCount++; if (checkedCount == checksTodo) { SpecialPowers.removePermission("browser", "http://example.org"); SimpleTest.finish(); } else { gTestRunner.next(); Loading Loading @@ -428,8 +429,8 @@ function runTest() { var gTestRunner = runTest(); SpecialPowers.pushPrefEnv({'set': [["dom.mozBrowserFramesEnabled", true], ["dom.mozBrowserFramesWhitelist", "http://example.org"]]}, SpecialPowers.addPermission("browser", true, "http://example.org"); SpecialPowers.pushPrefEnv({'set':[["dom.mozBrowserFramesEnabled", true]]}, function() { gTestRunner.next(); }); </script> Loading content/base/test/test_ipc_messagemanager_blob.html +2 −11 Original line number Diff line number Diff line Loading @@ -73,6 +73,7 @@ messages[receivedMessageIndex++], "Got correct round-tripped response"); if (receivedMessageIndex == messages.length) { SpecialPowers.removePermission("browser", document); SimpleTest.finish(); } }); Loading @@ -90,21 +91,11 @@ addEventListener("load", function() { info("Got load event."); let whitelist; try { whitelist = SpecialPowers.getCharPref("dom.mozBrowserFramesWhitelist") + ", "; } catch (e) { whitelist = ""; } whitelist += window.location.protocol + "//" + window.location.host; SpecialPowers.addPermission("browser", true, document); SpecialPowers.pushPrefEnv({ "set": [ ["dom.ipc.browser_frames.oop_by_default", true], ["dom.mozBrowserFramesEnabled", true], ["dom.mozBrowserFramesWhitelist", whitelist], ["browser.pageThumbs.enabled", false] ] }, runTests); Loading content/html/content/src/nsGenericHTMLFrameElement.cpp +9 −11 Original line number Diff line number Diff line Loading @@ -12,6 +12,7 @@ #include "nsIAppsService.h" #include "nsServiceManagerUtils.h" #include "nsIDOMApplicationRegistry.h" #include "nsIPermissionManager.h" using namespace mozilla; using namespace mozilla::dom; Loading Loading @@ -290,18 +291,15 @@ nsGenericHTMLFrameElement::GetReallyIsBrowser(bool *aOut) } // Fail if the node principal isn't trusted. // TODO: check properly for mozApps rights when mozApps will be less hacky. nsIPrincipal *principal = NodePrincipal(); nsCOMPtr<nsIURI> principalURI; principal->GetURI(getter_AddRefs(principalURI)); if (!nsContentUtils::IsSystemPrincipal(principal) && !nsContentUtils::URIIsChromeOrInPref(principalURI, "dom.mozBrowserFramesWhitelist")) { return NS_OK; } // Otherwise, succeed. *aOut = true; nsCOMPtr<nsIPermissionManager> permMgr = do_GetService(NS_PERMISSIONMANAGER_CONTRACTID); NS_ENSURE_STATE(permMgr); PRUint32 permission = nsIPermissionManager::DENY_ACTION; nsresult rv = permMgr->TestPermissionFromPrincipal(principal, "browser", &permission); NS_ENSURE_SUCCESS(rv, NS_OK); *aOut = permission == nsIPermissionManager::ALLOW_ACTION; return NS_OK; } Loading dom/browser-element/mochitest/browserElementTestHelpers.js +16 −15 Original line number Diff line number Diff line Loading @@ -49,14 +49,6 @@ const browserElementTestHelpers = { this._setBoolPref('dom.mozBrowserFramesEnabled', value); }, getWhitelistPref: function() { return this._getCharPref('dom.mozBrowserFramesWhitelist'); }, setWhitelistPref: function(whitelist) { this._setCharPref('dom.mozBrowserFramesWhitelist', whitelist); }, getOOPDisabledPref: function() { return this._getBoolPref('dom.ipc.tabs.disabled'); }, Loading @@ -81,25 +73,35 @@ const browserElementTestHelpers = { this._setBoolPref('browser.pageThumbs.enabled', value); }, addToWhitelist: function() { var whitelist = this.getWhitelistPref(); whitelist += ', http://' + window.location.host + ', '; this.setWhitelistPref(whitelist); addPermission: function() { SpecialPowers.addPermission("browser", true, document); this.tempPermissions.push(location.href) }, removeAllTempPermissions: function() { for(var i = 0; i < this.tempPermissions.length; i++) { SpecialPowers.removePermission("browser", this.tempPermissions[i]); } }, addPermissionForUrl: function(url) { SpecialPowers.addPermission("browser", true, url); this.tempPermissions.push(url); }, restoreOriginalPrefs: function() { this.setEnabledPref(this.origEnabledPref); this.setWhitelistPref(this.origWhitelistPref); this.setOOPDisabledPref(this.origOOPDisabledPref); this.setOOPByDefaultPref(this.origOOPByDefaultPref); this.setPageThumbsEnabledPref(this.origPageThumbsEnabledPref); this.removeAllTempPermissions(); }, 'origEnabledPref': null, 'origWhitelistPref': null, 'origOOPDisabledPref': null, 'origOOPByDefaultPref': null, 'origPageThumbsEnabledPref': null, 'tempPermissions': [], // Some basically-empty pages from different domains you can load. 'emptyPage1': 'http://example.com' + Loading @@ -117,7 +119,6 @@ const browserElementTestHelpers = { }; browserElementTestHelpers.origEnabledPref = browserElementTestHelpers.getEnabledPref(); browserElementTestHelpers.origWhitelistPref = browserElementTestHelpers.getWhitelistPref(); browserElementTestHelpers.origOOPDisabledPref = browserElementTestHelpers.getOOPDisabledPref(); browserElementTestHelpers.origOOPByDefaultPref = browserElementTestHelpers.getOOPByDefaultPref(); browserElementTestHelpers.origPageThumbsEnabledPref = browserElementTestHelpers.getPageThumbsEnabledPref(); Loading dom/browser-element/mochitest/browserElement_Alert.js +1 −1 Original line number Diff line number Diff line Loading @@ -12,7 +12,7 @@ var mm; function runTest() { browserElementTestHelpers.setEnabledPref(true); browserElementTestHelpers.addToWhitelist(); browserElementTestHelpers.addPermission(); iframe = document.createElement('iframe'); iframe.mozbrowser = true; Loading Loading
caps/tests/mochitest/test_principal_extendedorigin_appid_appstatus.html +3 −2 Original line number Diff line number Diff line Loading @@ -364,6 +364,7 @@ function checkIFrame(aFrame, data) { checkedCount++; if (checkedCount == checksTodo) { SpecialPowers.removePermission("browser", "http://example.org"); SimpleTest.finish(); } else { gTestRunner.next(); Loading Loading @@ -428,8 +429,8 @@ function runTest() { var gTestRunner = runTest(); SpecialPowers.pushPrefEnv({'set': [["dom.mozBrowserFramesEnabled", true], ["dom.mozBrowserFramesWhitelist", "http://example.org"]]}, SpecialPowers.addPermission("browser", true, "http://example.org"); SpecialPowers.pushPrefEnv({'set':[["dom.mozBrowserFramesEnabled", true]]}, function() { gTestRunner.next(); }); </script> Loading
content/base/test/test_ipc_messagemanager_blob.html +2 −11 Original line number Diff line number Diff line Loading @@ -73,6 +73,7 @@ messages[receivedMessageIndex++], "Got correct round-tripped response"); if (receivedMessageIndex == messages.length) { SpecialPowers.removePermission("browser", document); SimpleTest.finish(); } }); Loading @@ -90,21 +91,11 @@ addEventListener("load", function() { info("Got load event."); let whitelist; try { whitelist = SpecialPowers.getCharPref("dom.mozBrowserFramesWhitelist") + ", "; } catch (e) { whitelist = ""; } whitelist += window.location.protocol + "//" + window.location.host; SpecialPowers.addPermission("browser", true, document); SpecialPowers.pushPrefEnv({ "set": [ ["dom.ipc.browser_frames.oop_by_default", true], ["dom.mozBrowserFramesEnabled", true], ["dom.mozBrowserFramesWhitelist", whitelist], ["browser.pageThumbs.enabled", false] ] }, runTests); Loading
content/html/content/src/nsGenericHTMLFrameElement.cpp +9 −11 Original line number Diff line number Diff line Loading @@ -12,6 +12,7 @@ #include "nsIAppsService.h" #include "nsServiceManagerUtils.h" #include "nsIDOMApplicationRegistry.h" #include "nsIPermissionManager.h" using namespace mozilla; using namespace mozilla::dom; Loading Loading @@ -290,18 +291,15 @@ nsGenericHTMLFrameElement::GetReallyIsBrowser(bool *aOut) } // Fail if the node principal isn't trusted. // TODO: check properly for mozApps rights when mozApps will be less hacky. nsIPrincipal *principal = NodePrincipal(); nsCOMPtr<nsIURI> principalURI; principal->GetURI(getter_AddRefs(principalURI)); if (!nsContentUtils::IsSystemPrincipal(principal) && !nsContentUtils::URIIsChromeOrInPref(principalURI, "dom.mozBrowserFramesWhitelist")) { return NS_OK; } // Otherwise, succeed. *aOut = true; nsCOMPtr<nsIPermissionManager> permMgr = do_GetService(NS_PERMISSIONMANAGER_CONTRACTID); NS_ENSURE_STATE(permMgr); PRUint32 permission = nsIPermissionManager::DENY_ACTION; nsresult rv = permMgr->TestPermissionFromPrincipal(principal, "browser", &permission); NS_ENSURE_SUCCESS(rv, NS_OK); *aOut = permission == nsIPermissionManager::ALLOW_ACTION; return NS_OK; } Loading
dom/browser-element/mochitest/browserElementTestHelpers.js +16 −15 Original line number Diff line number Diff line Loading @@ -49,14 +49,6 @@ const browserElementTestHelpers = { this._setBoolPref('dom.mozBrowserFramesEnabled', value); }, getWhitelistPref: function() { return this._getCharPref('dom.mozBrowserFramesWhitelist'); }, setWhitelistPref: function(whitelist) { this._setCharPref('dom.mozBrowserFramesWhitelist', whitelist); }, getOOPDisabledPref: function() { return this._getBoolPref('dom.ipc.tabs.disabled'); }, Loading @@ -81,25 +73,35 @@ const browserElementTestHelpers = { this._setBoolPref('browser.pageThumbs.enabled', value); }, addToWhitelist: function() { var whitelist = this.getWhitelistPref(); whitelist += ', http://' + window.location.host + ', '; this.setWhitelistPref(whitelist); addPermission: function() { SpecialPowers.addPermission("browser", true, document); this.tempPermissions.push(location.href) }, removeAllTempPermissions: function() { for(var i = 0; i < this.tempPermissions.length; i++) { SpecialPowers.removePermission("browser", this.tempPermissions[i]); } }, addPermissionForUrl: function(url) { SpecialPowers.addPermission("browser", true, url); this.tempPermissions.push(url); }, restoreOriginalPrefs: function() { this.setEnabledPref(this.origEnabledPref); this.setWhitelistPref(this.origWhitelistPref); this.setOOPDisabledPref(this.origOOPDisabledPref); this.setOOPByDefaultPref(this.origOOPByDefaultPref); this.setPageThumbsEnabledPref(this.origPageThumbsEnabledPref); this.removeAllTempPermissions(); }, 'origEnabledPref': null, 'origWhitelistPref': null, 'origOOPDisabledPref': null, 'origOOPByDefaultPref': null, 'origPageThumbsEnabledPref': null, 'tempPermissions': [], // Some basically-empty pages from different domains you can load. 'emptyPage1': 'http://example.com' + Loading @@ -117,7 +119,6 @@ const browserElementTestHelpers = { }; browserElementTestHelpers.origEnabledPref = browserElementTestHelpers.getEnabledPref(); browserElementTestHelpers.origWhitelistPref = browserElementTestHelpers.getWhitelistPref(); browserElementTestHelpers.origOOPDisabledPref = browserElementTestHelpers.getOOPDisabledPref(); browserElementTestHelpers.origOOPByDefaultPref = browserElementTestHelpers.getOOPByDefaultPref(); browserElementTestHelpers.origPageThumbsEnabledPref = browserElementTestHelpers.getPageThumbsEnabledPref(); Loading
dom/browser-element/mochitest/browserElement_Alert.js +1 −1 Original line number Diff line number Diff line Loading @@ -12,7 +12,7 @@ var mm; function runTest() { browserElementTestHelpers.setEnabledPref(true); browserElementTestHelpers.addToWhitelist(); browserElementTestHelpers.addPermission(); iframe = document.createElement('iframe'); iframe.mozbrowser = true; Loading