diff --git a/dom/browser-element/mochitest/Makefile.in b/dom/browser-element/mochitest/Makefile.in index 655344bf731c..dc82fe3b420f 100644 --- a/dom/browser-element/mochitest/Makefile.in +++ b/dom/browser-element/mochitest/Makefile.in @@ -81,6 +81,9 @@ MOCHITEST_FILES = \ browserElement_OpenWindowRejected.js \ test_browserElement_inproc_OpenWindowRejected.html \ file_browserElement_OpenWindowRejected.html \ + browserElement_OpenWindowDifferentOrigin.js \ + test_browserElement_inproc_OpenWindowDifferentOrigin.html \ + file_browserElement_OpenWindowDifferentOrigin.html \ browserElement_SecurityChange.js \ test_browserElement_inproc_SecurityChange.html \ file_browserElement_SecurityChange.html \ @@ -130,6 +133,7 @@ MOCHITEST_FILES += \ test_browserElement_oop_OpenWindow.html \ test_browserElement_oop_OpenWindowInFrame.html \ test_browserElement_oop_OpenWindowRejected.html \ + test_browserElement_oop_OpenWindowDifferentOrigin.html \ test_browserElement_oop_SecurityChange.html \ test_browserElement_oop_BackForward.html \ test_browserElement_oop_Reload.html \ diff --git a/dom/browser-element/mochitest/browserElement_OpenWindowDifferentOrigin.js b/dom/browser-element/mochitest/browserElement_OpenWindowDifferentOrigin.js new file mode 100644 index 000000000000..458098e9bb60 --- /dev/null +++ b/dom/browser-element/mochitest/browserElement_OpenWindowDifferentOrigin.js @@ -0,0 +1,42 @@ +/* Any copyright is dedicated to the public domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +// Bug 769182 - window.open to a different origin should load the page. + +"use strict"; +SimpleTest.waitForExplicitFinish(); + +function runTest() { + browserElementTestHelpers.setEnabledPref(true); + browserElementTestHelpers.addToWhitelist(); + + var iframe = document.createElement('iframe'); + iframe.mozbrowser = true; + + iframe.addEventListener('mozbrowseropenwindow', function(e) { + ok(true, 'Got first window.open call'); + + e.detail.frameElement.addEventListener('mozbrowseropenwindow', function(e) { + ok(true, 'Got second window.open call'); + document.body.appendChild(e.detail.frameElement); + }); + + e.detail.frameElement.addEventListener('mozbrowsershowmodalprompt', function(e) { + ok(true, 'Got alert from second window.'); + SimpleTest.finish(); + }); + + document.body.appendChild(e.detail.frameElement); + }); + + // DifferentOrigin.html?1 calls + // + // window.open('http://example.com/.../DifferentOrigin.html?2'), + // + // which calls alert(). + + iframe.src = 'http://example.org/tests/dom/browser-element/mochitest/file_browserElement_OpenWindowDifferentOrigin.html?1'; + document.body.appendChild(iframe); +} + +runTest(); diff --git a/dom/browser-element/mochitest/file_browserElement_OpenWindowDifferentOrigin.html b/dom/browser-element/mochitest/file_browserElement_OpenWindowDifferentOrigin.html new file mode 100644 index 000000000000..dc08f341c4cd --- /dev/null +++ b/dom/browser-element/mochitest/file_browserElement_OpenWindowDifferentOrigin.html @@ -0,0 +1,18 @@ + + + +
+ + + + + diff --git a/dom/browser-element/mochitest/test_browserElement_inproc_OpenWindowDifferentOrigin.html b/dom/browser-element/mochitest/test_browserElement_inproc_OpenWindowDifferentOrigin.html new file mode 100644 index 000000000000..327ff8960fab --- /dev/null +++ b/dom/browser-element/mochitest/test_browserElement_inproc_OpenWindowDifferentOrigin.html @@ -0,0 +1,13 @@ + + + + Test of browser element. + + + + + + + + diff --git a/dom/browser-element/mochitest/test_browserElement_oop_OpenWindowDifferentOrigin.html b/dom/browser-element/mochitest/test_browserElement_oop_OpenWindowDifferentOrigin.html new file mode 100644 index 000000000000..327ff8960fab --- /dev/null +++ b/dom/browser-element/mochitest/test_browserElement_oop_OpenWindowDifferentOrigin.html @@ -0,0 +1,13 @@ + + + + Test of browser element. + + + + + + + +