gecko/docshell/test/browser/browser_loadDisallowInherit.js
Gavin Sharp dd3b8d223c Bug 656815: make loading javascript: URIs in a docshell work for DISALLOW_INHERIT_OWNER loads, r=bz
--HG--
extra : rebase_source : 6b0e289ac80ffab967813b06e2e28f2842921b70
2011-05-13 10:40:22 -07:00

64 lines
1.7 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
function test() {
waitForExplicitFinish();
let tab = gBrowser.selectedTab = gBrowser.addTab();
registerCleanupFunction(function () {
gBrowser.removeTab(tab);
});
let browser = gBrowser.getBrowserForTab(tab);
function loadURL(url, flags, func) {
browser.addEventListener("load", function loadListener(e) {
if (browser.currentURI.spec != url)
return;
browser.removeEventListener(e.type, loadListener, true);
func();
}, true);
browser.loadURIWithFlags(url, flags, null, null, null);
}
// Load a normal http URL
function testURL(url, func) {
loadURL("http://example.com/", 0, function () {
let pagePrincipal = browser.contentPrincipal;
ok(pagePrincipal, "got principal for http:// page");
// Now load the URL normally
loadURL(url, 0, function () {
ok(browser.contentPrincipal.equals(pagePrincipal), url + " should inherit principal");
// Now load the URL and disallow inheriting the principal
let webNav = Components.interfaces.nsIWebNavigation;
loadURL(url, webNav.LOAD_FLAGS_DISALLOW_INHERIT_OWNER, function () {
let newPrincipal = browser.contentPrincipal;
ok(newPrincipal, "got inner principal");
ok(!newPrincipal.equals(pagePrincipal),
url + " should not inherit principal when loaded with DISALLOW_INHERIT_OWNER");
func();
});
});
});
}
let urls = [
"data:text/html,<body>hi",
"javascript:1;"
];
function nextTest() {
let url = urls.shift();
if (url)
testURL(url, nextTest);
else
finish();
}
nextTest();
}