Backout 99caa1f41fe1 (bug 797515) and a04b83c53297 (bug 789392) for M2 orange.

This commit is contained in:
Ryan VanderMeulen 2012-10-03 21:59:41 -04:00
parent 7cc0b8d488
commit b3a7522e9a
8 changed files with 4 additions and 118 deletions

View File

@ -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) {

View File

@ -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 \

View File

@ -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);

View File

@ -1,12 +0,0 @@
<html>
<body>
file_browserElement_CloseApp.html
<script>
window.close();
alert('called close');
</script>
</body>
</html>

View File

@ -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>

View File

@ -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>

View File

@ -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));
}
}

View File

@ -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": "",