68.14.8 - docshell

This commit is contained in:
Fedor 2025-04-19 19:11:47 +03:00
parent 1217ab2f99
commit f9bcc75aaf
68 changed files with 110 additions and 215 deletions

View File

@ -1,23 +0,0 @@
<html xmlns="http://www.w3.org/1999/xhtml" class="reftest-wait">
<head>
<bindings xmlns="http://www.mozilla.org/xbl"><binding id="foo"><content>
<frame xmlns="http://www.w3.org/1999/xhtml"><children xmlns="http://www.mozilla.org/xbl"/></frame>
</content></binding></bindings>
<script>
function boom()
{
document.getElementById("span").style.MozBinding = "url('#foo')";
document.documentElement.removeAttribute("class");
}
</script>
</head>
<body onload="setTimeout(boom, 100);">
<span id="span"></span>
</body>
</html>

View File

@ -1,6 +1,5 @@
load 40929-1.html
load 369126-1.html
load 403574-1.xhtml
load 430124-1.html
load 430628-1.html
load 432114-1.html

View File

@ -116,6 +116,3 @@ LOCAL_INCLUDES += [
if CONFIG['CC_TYPE'] in ('clang', 'gcc'):
CXXFLAGS += ['-Wno-error=shadow']
if CONFIG['MOZ_LAYOUT_DEBUGGER']:
DEFINES['MOZ_LAYOUT_DEBUGGER'] = True

View File

@ -63,14 +63,14 @@ class CrashChannel final : public nsBaseChannel {
*/
static const RedirEntry kRedirMap[] = {
{"about", "chrome://global/content/aboutAbout.xhtml", 0},
{"addons", "chrome://mozapps/content/extensions/extensions.xul",
{"addons", "chrome://mozapps/content/extensions/extensions.xhtml",
nsIAboutModule::ALLOW_SCRIPT},
{"buildconfig", "chrome://global/content/buildconfig.html",
nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT},
{"checkerboard", "chrome://global/content/aboutCheckerboard.xhtml",
nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
nsIAboutModule::ALLOW_SCRIPT},
{"config", "chrome://global/content/config.xul", 0},
{"config", "chrome://global/content/config.xhtml", 0},
#ifdef MOZ_CRASHREPORTER
{"crashes", "chrome://global/content/crashes.xhtml", 0},
#endif

View File

@ -5190,7 +5190,7 @@ nsDocShell::SetParentNativeWindow(nativeWindow aParentNativeWindow) {
NS_IMETHODIMP
nsDocShell::GetNativeHandle(nsAString& aNativeHandle) {
// the nativeHandle should be accessed from nsIXULWindow
// the nativeHandle should be accessed from nsIAppWindow
return NS_ERROR_NOT_IMPLEMENTED;
}
@ -9417,18 +9417,6 @@ nsresult nsDocShell::InternalLoad(nsDocShellLoadState* aLoadState,
!StaticPrefs::extensions_webextensions_remote()) {
break;
}
#ifdef MOZ_LAYOUT_DEBUGGER
// Also allow loads in the layout debugger window.
nsCOMPtr<nsIDocShellTreeItem> rootItem;
GetRootTreeItem(getter_AddRefs(rootItem));
nsCOMPtr<nsIWebNavigation> root = do_QueryInterface(rootItem);
nsCOMPtr<nsIURI> rootURL;
root->GetCurrentURI(getter_AddRefs(rootURL));
if (rootURL && rootURL->GetSpecOrDefault().EqualsLiteral(
"chrome://layoutdebug/content/layoutdebug.xul")) {
break;
}
#endif
// Final exception for some legacy automated tests:
if (xpc::IsInAutomation() &&
Preferences::GetBool("security.allow_unsafe_parent_loads", false)) {

View File

@ -353,7 +353,7 @@ nsDocShellTreeOwner::SizeShellTo(nsIDocShellTreeItem* aShellItem, int32_t aCX,
if (browserChild) {
// The XUL window to resize is in the parent process, but there we
// won't be able to get aShellItem to do the hack in
// nsXULWindow::SizeShellTo, so let's send the width and height of
// AppWindow::SizeShellTo, so let's send the width and height of
// aShellItem too.
nsCOMPtr<nsIBaseWindow> shellAsWin(do_QueryInterface(aShellItem));
NS_ENSURE_TRUE(shellAsWin, NS_ERROR_FAILURE);
@ -581,7 +581,7 @@ nsDocShellTreeOwner::SetParentNativeWindow(nativeWindow aParentNativeWindow) {
NS_IMETHODIMP
nsDocShellTreeOwner::GetNativeHandle(nsAString& aNativeHandle) {
// the nativeHandle should be accessed from nsIXULWindow
// the nativeHandle should be accessed from nsIAppWindow
return NS_ERROR_NOT_IMPLEMENTED;
}

View File

@ -22,7 +22,7 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Security-Policy" content="default-src chrome:" />
<meta http-equiv="Content-Security-Policy" content="default-src chrome:; object-src 'none'" />
<title>&loadError.label;</title>
<link rel="stylesheet" href="chrome://global/skin/netError.css" type="text/css" media="all" />
<!-- If the location of the favicon is changed here, the FAVICON_ERRORPAGE_URL symbol in

View File

@ -84,7 +84,7 @@
}, nextTest, 20);
yield undefined;
is(gFindBar._findField.inputField.value, "A generic page",
is(gFindBar._findField.value, "A generic page",
"expected text not present in find input field");
is(TestWindow.getWindow().getSelection().toString().toLowerCase(),
"a generic page",

View File

@ -6,86 +6,85 @@ support-files =
662200c.html
89419.html
92598_nostore.html
bug112564_window.xul
bug113934_window.xul
bug215405_window.xul
bug112564_window.xhtml
bug113934_window.xhtml
bug215405_window.xhtml
bug293235.html
bug293235_p2.html
bug293235_window.xul
bug293235_window.xhtml
bug294258_testcase.html
bug294258_window.xul
bug298622_window.xul
bug294258_window.xhtml
bug298622_window.xhtml
bug301397_1.html
bug301397_2.html
bug301397_3.html
bug301397_4.html
bug301397_window.xul
bug301397_window.xhtml
bug303267.html
bug303267_window.xul
bug311007_window.xul
bug321671_window.xul
bug303267_window.xhtml
bug311007_window.xhtml
bug321671_window.xhtml
bug360511_case1.html
bug360511_case2.html
bug360511_window.xul
bug364461_window.xul
bug396519_window.xul
bug396649_window.xul
bug449778_window.xul
bug449780_window.xul
bug454235-subframe.xul
bug582176_window.xul
bug608669.xul
bug662200_window.xul
bug690056_window.xul
bug360511_window.xhtml
bug364461_window.xhtml
bug396519_window.xhtml
bug396649_window.xhtml
bug449778_window.xhtml
bug449780_window.xhtml
bug454235-subframe.xhtml
bug582176_window.xhtml
bug608669.xhtml
bug662200_window.xhtml
bug690056_window.xhtml
bug846906.html
bug89419_window.xul
bug89419_window.xhtml
bug909218.html
bug909218.js
bug92598_window.xul
bug92598_window.xhtml
docshell_helpers.js
file_viewsource_forbidden_in_iframe.html
generic.html
mozFrameType_window.xul
mozFrameType_window.xhtml
test_docRedirect.sjs
[test_allowContentRetargeting.html]
[test_bug112564.xul]
[test_bug113934.xul]
[test_bug215405.xul]
[test_bug293235.xul]
[test_bug112564.xhtml]
[test_bug113934.xhtml]
[test_bug215405.xhtml]
[test_bug293235.xhtml]
skip-if = true # bug 1393441
[test_bug294258.xul]
[test_bug298622.xul]
[test_bug301397.xul]
[test_bug294258.xhtml]
[test_bug298622.xhtml]
[test_bug301397.xhtml]
skip-if = (os == 'win' && processor == 'aarch64') # bug 1533819
[test_bug303267.xul]
[test_bug311007.xul]
[test_bug321671.xul]
[test_bug360511.xul]
[test_bug364461.xul]
[test_bug303267.xhtml]
[test_bug311007.xhtml]
[test_bug321671.xhtml]
[test_bug360511.xhtml]
[test_bug364461.xhtml]
skip-if = (os == 'win' && processor == 'aarch64') # bug 1533814
[test_bug396519.xul]
[test_bug396649.xul]
[test_bug396519.xhtml]
[test_bug396649.xhtml]
[test_bug428288.html]
[test_bug449778.xul]
[test_bug449780.xul]
[test_bug453650.xul]
[test_bug454235.xul]
[test_bug456980.xul]
[test_bug565388.xul]
skip-if = os == 'linux' || os == 'mac' # Bug 1026815
[test_bug582176.xul]
[test_bug608669.xul]
[test_bug662200.xul]
[test_bug690056.xul]
[test_bug789773.xul]
[test_bug846906.xul]
[test_bug89419.xul]
[test_bug449778.xhtml]
[test_bug449780.xhtml]
[test_bug453650.xhtml]
[test_bug454235.xhtml]
[test_bug456980.xhtml]
[test_bug565388.xhtml]
skip-if = true # Bug 1026815,Bug 1546159
[test_bug582176.xhtml]
[test_bug608669.xhtml]
[test_bug662200.xhtml]
[test_bug690056.xhtml]
[test_bug789773.xhtml]
[test_bug846906.xhtml]
[test_bug89419.xhtml]
[test_bug909218.html]
[test_bug92598.xul]
[test_mozFrameType.xul]
[test_principalInherit.xul]
[test_private_hidden_window.html]
[test_viewsource_forbidden_in_iframe.xul]
[test_bug92598.xhtml]
[test_mozFrameType.xhtml]
[test_principalInherit.xhtml]
[test_viewsource_forbidden_in_iframe.xhtml]
skip-if = true # bug 1019315
[test_docRedirect.xul]
[test_docRedirect.xhtml]

View File

@ -8,7 +8,7 @@
#
# perl gen_template.pl -b 303267
#
# Writes test case template files test_bug303267.xul and bug303267_window.xul
# Writes test case template files test_bug303267.xhtml and bug303267_window.xhtml
# to the current directory.
use FindBin;
@ -18,7 +18,7 @@ GetOptions("b=i"=> \$bug_number);
$template = "$FindBin::RealBin/test.template.txt";
open(IN,$template) or die("Failed to open input file for reading.");
open(OUT, ">>test_bug" . $bug_number . ".xul") or die("Failed to open output file for appending.");
open(OUT, ">>test_bug" . $bug_number . ".xhtml") or die("Failed to open output file for appending.");
while((defined(IN)) && ($line = <IN>)) {
$line =~ s/{BUGNUMBER}/$bug_number/g;
print OUT $line;
@ -29,7 +29,7 @@ close(OUT);
$template = "$FindBin::RealBin/window.template.txt";
open(IN,$template) or die("Failed to open input file for reading.");
open(OUT, ">>bug" . $bug_number . "_window.xul") or die("Failed to open output file for appending.");
open(OUT, ">>bug" . $bug_number . "_window.xhtml") or die("Failed to open output file for appending.");
while((defined(IN)) && ($line = <IN>)) {
$line =~ s/{BUGNUMBER}/$bug_number/g;
print OUT $line;

View File

@ -28,7 +28,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=112564
/** Test for Bug 112564 **/
SimpleTest.waitForExplicitFinish();
window.open("bug112564_window.xul", "bug112564",
window.open("bug112564_window.xhtm", "bug112564",
"chrome,width=600,height=600");
]]>

View File

@ -21,7 +21,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=113934
SimpleTest.waitForExplicitFinish();
addLoadEvent(function() {
window.open("bug113934_window.xul?content", "bug113934",
window.open("bug113934_window.xhtml?content", "bug113934",
"chrome,width=800,height=800");
});

View File

@ -28,7 +28,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=215405
/** Test for Bug 215405 **/
SimpleTest.waitForExplicitFinish();
window.open("bug215405_window.xul", "bug215405",
window.open("bug215405_window.xhtml", "bug215405",
"chrome,width=600,height=600");
]]>

View File

@ -29,7 +29,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=293235.xul
/** Test for Bug 293235 **/
SimpleTest.waitForExplicitFinish();
window.open("bug293235_window.xul", "bug293235",
window.open("bug293235_window.xhtml", "bug293235",
"chrome,width=600,height=600");
]]>

View File

@ -29,7 +29,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=294258.xul
/** Test for Bug 294258 **/
SimpleTest.waitForExplicitFinish();
window.open("bug294258_window.xul", "bug294258",
window.open("bug294258_window.xhtml", "bug294258",
"chrome,width=600,height=600");
]]>

View File

@ -29,7 +29,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=298622.xul
/** Test for Bug 298622 **/
SimpleTest.waitForExplicitFinish();
window.open("bug298622_window.xul", "bug298622",
window.open("bug298622_window.xhtml", "bug298622",
"chrome,width=600,height=600");
]]>

View File

@ -29,7 +29,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=301397.xul
/** Test for Bug 301397 **/
SimpleTest.waitForExplicitFinish();
window.open("bug301397_window.xul", "bug301397",
window.open("bug301397_window.xhtml", "bug301397",
"chrome,width=600,height=600");
]]>

View File

@ -30,7 +30,7 @@ SimpleTest.expectAssertions(0, 1);
/** Test for Bug 303267 **/
SimpleTest.waitForExplicitFinish();
window.open("bug303267_window.xul", "bug303267",
window.open("bug303267_window.xhtml", "bug303267",
"chrome,width=600,height=600");
]]>

View File

@ -33,7 +33,7 @@ if (navigator.platform.startsWith("Win")) {
/** Test for Bug 311007 **/
SimpleTest.waitForExplicitFinish();
window.open("bug311007_window.xul", "bug311007",
window.open("bug311007_window.xhtml", "bug311007",
"chrome,width=600,height=600");
]]>

View File

@ -29,7 +29,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=321671.xul
/** Test for Bug 321671 **/
SimpleTest.waitForExplicitFinish();
window.open("bug321671_window.xul", "bug321671",
window.open("bug321671_window.xhtml", "bug321671",
"chrome,width=600,height=600,scrollbars");
]]>

View File

@ -30,7 +30,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=360511.xul
/** Test for Bug 360511 **/
SimpleTest.waitForExplicitFinish();
window.open("bug360511_window.xul", "bug360511",
window.open("bug360511_window.xhtml", "bug360511",
"chrome,scrollbars,width=600,height=600");
]]>

View File

@ -34,7 +34,7 @@ SpecialPowers.pushPrefEnv({
}, runTests);
function runTests() {
window.open("bug364461_window.xul", "bug364461",
window.open("bug364461_window.xhtml", "bug364461",
"chrome,width=600,height=600");
}
]]>

View File

@ -21,7 +21,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=396519
/** Test for Bug 396519 **/
SimpleTest.waitForExplicitFinish();
window.open("bug396519_window.xul", "bug396519",
window.open("bug396519_window.xhtml", "bug396519",
"chrome,width=600,height=600");
]]></script>

View File

@ -32,7 +32,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=396649.xul
/** Test for Bug 396649 **/
SimpleTest.waitForExplicitFinish();
window.open("bug396649_window.xul", "bug396649",
window.open("bug396649_window.xhtml", "bug396649",
"chrome,width=600,height=600,scrollbars");
]]>

View File

@ -21,7 +21,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=449778
SimpleTest.waitForExplicitFinish();
addLoadEvent(function() {
window.open("bug449778_window.xul", "bug449778",
window.open("bug449778_window.xhtml", "bug449778",
"chrome,width=800,height=800");
});

View File

@ -21,7 +21,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=449780
SimpleTest.waitForExplicitFinish();
addLoadEvent(function() {
window.open("bug449780_window.xul", "bug449780",
window.open("bug449780_window.xhtml", "bug449780",
"chrome,width=800,height=800");
});

View File

@ -20,7 +20,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=453650
nextTest();
function* runTests() {
var iframe = document.createElement("iframe");
var iframe = document.createXULElement("iframe");
iframe.style.width = "300px";
iframe.style.height = "300px";
iframe.setAttribute("src", "data:text/html,<h1 id='h'>hello</h1>");

View File

@ -49,7 +49,7 @@ function doTest() {
]]></script>
<box flex="1" style="visibility: hidden; border:5px black solid">
<browser style="border:5px blue solid" id="hiddenBrowser" src="bug454235-subframe.xul"/>
<browser style="border:5px yellow solid" id="offScreenBrowser" src="bug454235-subframe.xul"/>
<browser style="border:5px blue solid" id="hiddenBrowser" src="bug454235-subframe.xhtml"/>
<browser style="border:5px yellow solid" id="offScreenBrowser" src="bug454235-subframe.xhtml"/>
</box>
</window>

View File

@ -21,7 +21,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=456980
SimpleTest.waitForExplicitFinish();
addLoadEvent(function() {
window.open("bug113934_window.xul?chrome", "bug456980",
window.open("bug113934_window.xhtml?chrome", "bug456980",
"chrome,width=800,height=800");
});

View File

@ -29,7 +29,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=582176.xul
/** Test for Bug 582176 **/
SimpleTest.waitForExplicitFinish();
window.open("bug582176_window.xul", "bug582176",
window.open("bug582176_window.xhtml", "bug582176",
"chrome,width=600,height=600");
]]>

View File

@ -53,14 +53,14 @@ function* doTest() {
is(notificationCount, 1, "after created window");
// Try loading in the window
testWin.location = "bug608669.xul";
testWin.location = "bug608669.xhtml";
window.onmessage = nextTest;
yield undefined;
is(notificationCount, 1, "after first load");
is(testWin.x, "y", "reused window");
// Try loading again in the window
testWin.location = "bug608669.xul?x";
testWin.location = "bug608669.xhtml?x";
window.onmessage = nextTest;
yield undefined;
is(notificationCount, 2, "after second load");

View File

@ -29,7 +29,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=662200.xul
/** Test for Bug 662200 **/
SimpleTest.waitForExplicitFinish();
window.open("bug662200_window.xul", "bug662200",
window.open("bug662200_window.xhtml", "bug662200",
"chrome,width=600,height=600");
]]>

View File

@ -19,7 +19,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=690056
<![CDATA[
/** Test for Bug 690056 **/
SimpleTest.waitForExplicitFinish();
window.open("bug690056_window.xul", "bug690056",
window.open("bug690056_window.xhtml", "bug690056",
"chrome,width=600,height=600");
]]>
</script>

View File

@ -59,7 +59,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=789773
function finishTest() {
webProgress.removeProgressListener(testProgressListener);
ok(true, "Loaded the popup window without spinning forever in the event loop!");
ok(calledListenerForBrowserChromeURL, "Should have called the progress listener for browser.xul");
ok(calledListenerForBrowserChromeURL, "Should have called the progress listener for browser.xhtml");
popup.close();
SimpleTest.finish();
}

View File

@ -38,7 +38,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=846906
var document = webNavigation.document;
ok(document, "Should be able to get document");
var iframe = document.createElement("iframe");
var iframe = document.createXULElement("iframe");
ok(iframe, "Should be able to create iframe");
iframe.onload = function () {

View File

@ -29,7 +29,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=89419.xul
/** Test for Bug 89419 **/
SimpleTest.waitForExplicitFinish();
window.open("bug89419_window.xul", "bug89419",
window.open("bug89419_window.xhtml", "bug89419",
"chrome,width=600,height=600");
]]>

View File

@ -28,7 +28,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=92598
/** Test for Bug 92598 **/
SimpleTest.waitForExplicitFinish();
window.open("bug92598_window.xul", "bug92598",
window.open("bug92598_window.xhtml", "bug92598",
"chrome,width=600,height=600");
]]>

View File

@ -32,7 +32,7 @@ if (navigator.platform.startsWith("Win")) {
SimpleTest.waitForExplicitFinish();
addLoadEvent(function () {
window.open("mozFrameType_window.xul", "mozFrameType",
window.open("mozFrameType_window.xhtml", "mozFrameType",
"chrome,width=600,height=600");
});

View File

@ -38,7 +38,7 @@ var gFrame;
// matters when these tests fail (produces better error messages).
var tests = [
function testInheritFromParent(cb) {
gFrame = document.createElement("iframe");
gFrame = document.createXULElement("iframe");
loadListener(gFrame, function () {
is(window.inheritedFromParent, true, "load in type=content iframe inherited principal of same type parent");
cb();
@ -63,7 +63,7 @@ var tests = [
'<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"/>';
let newWin = window.openDialog(xulWinURL, "chrome_window", "chrome");
loadListener(newWin, function () {
let frame = newWin.document.createElement("iframe");
let frame = newWin.document.createXULElement("iframe");
frame.setAttribute("type", "content");
frame.setAttribute("src", "javascript:'1';");
loadListener(frame, function () {

View File

@ -1,65 +0,0 @@
<!DOCTYPE HTML>
<html>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=829383
-->
<head>
<title>Test for Bug 829383</title>
<script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css" />
</head>
<body>
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=829383">Mozilla Bug 829383</a>
<p id="display"></p>
<div id="content" style="display: none">
<iframe name="target"></iframe>
</div>
<pre id="test">
<script class="testbody" type="text/javascript">
SimpleTest.waitForExplicitFinish();
var mainWindow = window.docShell.rootTreeItem.domWindow;
// We need to wait for the hidden window to load, but can't access
// an event target for a regular event listener.
var hidden = mainWindow.Services.appShell.hiddenPrivateDOMWindow;
function isNotLoaded() {
return !["complete", "interactive"].includes(hidden.document.readyState);
}
if (isNotLoaded()) {
setTimeout(function poll() {
if (isNotLoaded()) {
setTimeout(poll, 100);
return;
}
onHiddenPrivateWindowReady();
}, 4);
} else {
onHiddenPrivateWindowReady();
}
function onHiddenPrivateWindowReady() {
var iframe = hidden.document.createElement("iframe");
iframe.src = "generic.html";
hidden.document.body.appendChild(iframe);
var win = mainWindow.OpenBrowserWindow({private: true});
win.addEventListener("load", function() {
win.close();
win = null;
}, {once: true});
}
function observer(aSubject, aTopic, aData) {
is(aTopic, "last-pb-context-exited", "Unexpected observer topic");
mainWindow.Services.obs.removeObserver(observer, "last-pb-context-exited");
SimpleTest.finish();
}
mainWindow.Services.obs.addObserver(observer, "last-pb-context-exited");
</script>
</pre>
</body>
</html>

View File

@ -30,7 +30,7 @@
//
function testIterator()
{
// Test steps go here. See bug303267_window.xul for an example.
// Test steps go here. See bug303267_window.xhtml for an example.
// Tell the framework the test is finished. Include the final 'yield'
// statement to prevent a StopIteration exception from being thrown.

View File

@ -30,7 +30,7 @@ add_task(async function() {
let chromeFlags = win.docShell.treeOwner
.QueryInterface(Ci.nsIInterfaceRequestor)
.getInterface(Ci.nsIXULWindow).chromeFlags;
.getInterface(Ci.nsIAppWindow).chromeFlags;
// In the multi-process case, the new window will have the
// CHROME_REMOTE_WINDOW flag set.