mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Backout 99caa1f41fe1 (bug 797515) and a04b83c53297 (bug 789392) for M2 orange.
This commit is contained in:
parent
7cc0b8d488
commit
b3a7522e9a
@ -6548,10 +6548,9 @@ nsGlobalWindow::Close()
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
// Don't allow scripts from content to close non-app windows that were not
|
||||
// opened by script.
|
||||
if (!mDocShell->GetIsApp() &&
|
||||
!mHadOriginalOpener && !nsContentUtils::IsCallerTrustedForWrite()) {
|
||||
// Don't allow scripts from content to close windows
|
||||
// that were not opened by script
|
||||
if (!mHadOriginalOpener && !nsContentUtils::IsCallerTrustedForWrite()) {
|
||||
bool allowClose =
|
||||
Preferences::GetBool("dom.allow_scripts_to_close_windows", true);
|
||||
if (!allowClose) {
|
||||
|
@ -93,9 +93,6 @@ MOCHITEST_FILES = \
|
||||
browserElement_CloseFromOpener.js \
|
||||
test_browserElement_inproc_CloseFromOpener.html \
|
||||
file_browserElement_CloseFromOpener.html \
|
||||
browserElement_CloseApp.js \
|
||||
test_browserElement_inproc_CloseApp.html \
|
||||
file_browserElement_CloseApp.html \
|
||||
browserElement_OpenWindow.js \
|
||||
test_browserElement_inproc_OpenWindow.html \
|
||||
file_browserElement_Open1.html \
|
||||
@ -184,7 +181,6 @@ MOCHITEST_FILES += \
|
||||
test_browserElement_oop_PromptConfirm.html \
|
||||
test_browserElement_oop_Close.html \
|
||||
test_browserElement_oop_CloseFromOpener.html \
|
||||
test_browserElement_oop_CloseApp.html \
|
||||
test_browserElement_oop_OpenWindow.html \
|
||||
test_browserElement_oop_OpenWindowInFrame.html \
|
||||
test_browserElement_oop_OpenWindowRejected.html \
|
||||
|
@ -1,66 +0,0 @@
|
||||
/* Any copyright is dedicated to the public domain.
|
||||
http://creativecommons.org/publicdomain/zero/1.0/ */
|
||||
|
||||
// Bug 789392 - Test that apps frames can trigger mozbrowserclose by calling
|
||||
// window.close(), but browser frames cannot.
|
||||
"use strict";
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
function runTest() {
|
||||
browserElementTestHelpers.setEnabledPref(true);
|
||||
browserElementTestHelpers.addPermission();
|
||||
|
||||
// Our app frame and browser frame load the same content. That content calls
|
||||
// window.close() and then alert(). We should get a mozbrowserclose event on
|
||||
// the app frame before the mozbrowsershowmodalprompt, but not on the browser
|
||||
// frame.
|
||||
|
||||
var appFrame = document.createElement('iframe');
|
||||
appFrame.mozbrowser = true;
|
||||
appFrame.setAttribute('mozapp', 'http://example.org/manifest.webapp');
|
||||
|
||||
var browserFrame = document.createElement('iframe');
|
||||
browserFrame.mozbrowser = true;
|
||||
|
||||
var gotAppFrameClose = false;
|
||||
appFrame.addEventListener('mozbrowserclose', function() {
|
||||
ok(true, "Got close from app frame.");
|
||||
gotAppFrameClose = true;
|
||||
});
|
||||
|
||||
var gotAppFrameAlert = false;
|
||||
appFrame.addEventListener('mozbrowsershowmodalprompt', function() {
|
||||
ok(gotAppFrameClose, "Should have gotten app frame close by now.");
|
||||
ok(!gotAppFrameAlert, "Just one alert from the app frame.");
|
||||
gotAppFrameAlert = true;
|
||||
if (gotBrowserFrameAlert && gotAppFrameAlert) {
|
||||
SimpleTest.finish();
|
||||
}
|
||||
});
|
||||
|
||||
browserFrame.addEventListener('mozbrowserclose', function() {
|
||||
ok(false, "Got close from browser frame.");
|
||||
});
|
||||
|
||||
var gotBrowserFrameAlert = false;
|
||||
browserFrame.addEventListener('mozbrowsershowmodalprompt', function() {
|
||||
ok(!gotBrowserFrameAlert, "Just one browser frame alert.");
|
||||
gotBrowserFrameAlert = true;
|
||||
if (gotBrowserFrameAlert && gotAppFrameAlert) {
|
||||
SimpleTest.finish();
|
||||
}
|
||||
});
|
||||
|
||||
document.body.appendChild(appFrame);
|
||||
document.body.appendChild(browserFrame);
|
||||
|
||||
appFrame.src = 'http://example.org/tests/dom/browser-element/mochitest/file_browserElement_CloseApp.html';
|
||||
browserFrame.src = 'http://example.org/tests/dom/browser-element/mochitest/file_browserElement_CloseApp.html';
|
||||
}
|
||||
|
||||
// The test harness sets dom.allow_scripts_to_close_windows to true (as of
|
||||
// writing, anyway). But that means that browser tabs can close themselves,
|
||||
// which is what we want to test /can't/ happen! For the purposes of this
|
||||
// test (and normal browser operation), this pref should be false.
|
||||
SpecialPowers.pushPrefEnv({'set': [['dom.allow_scripts_to_close_windows', false]]}, runTest);
|
@ -1,12 +0,0 @@
|
||||
<html>
|
||||
<body>
|
||||
|
||||
file_browserElement_CloseApp.html
|
||||
|
||||
<script>
|
||||
window.close();
|
||||
alert('called close');
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
@ -1,13 +0,0 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<title>Test for Bug 789392</title>
|
||||
<script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<script type="application/javascript" src="browserElementTestHelpers.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
|
||||
</head>
|
||||
<body>
|
||||
<script type="application/javascript;version=1.7" src="browserElement_CloseApp.js">
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
@ -1,13 +0,0 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<title>Test for Bug 789392</title>
|
||||
<script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<script type="application/javascript" src="browserElementTestHelpers.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
|
||||
</head>
|
||||
<body>
|
||||
<script type="application/javascript;version=1.7" src="browserElement_CloseApp.js">
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
@ -774,12 +774,8 @@ ContentParent::~ContentParent()
|
||||
MOZ_ASSERT(!gNonAppContentParents ||
|
||||
!gNonAppContentParents->Contains(this));
|
||||
} else {
|
||||
// In general, we expect gAppContentParents->Get(mAppManifestURL) to be
|
||||
// NULL. But it could be that we created another ContentParent for this
|
||||
// app after we did this->ActorDestroy(), so the right check is that
|
||||
// gAppContentParent->Get(mAppManifestURL) != this.
|
||||
MOZ_ASSERT(!gAppContentParents ||
|
||||
gAppContentParents->Get(mAppManifestURL) != this);
|
||||
!gAppContentParents->Get(mAppManifestURL));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -130,7 +130,6 @@
|
||||
"dom/browser-element/mochitest/test_browserElement_inproc_AppFramePermission.html": "",
|
||||
"dom/browser-element/mochitest/test_browserElement_inproc_AppWindowNamespace.html": "TIMED_OUT, bug 783509",
|
||||
"dom/browser-element/mochitest/test_browserElement_inproc_SecurityChange.html": "TIMED_OUT, bug 766586",
|
||||
"dom/browser-element/mochitest/test_browserElement_inproc_CloseApp.html": "FAILS, bug 796982",
|
||||
"dom/devicestorage": "bug 781789 & bug 782275",
|
||||
"dom/imptests/editing/conformancetest/test_event.html": "",
|
||||
"dom/imptests/editing/conformancetest/test_runtest.html": "",
|
||||
|
Loading…
Reference in New Issue
Block a user