Thu, 22 Jan 2015 13:21:57 +0100
Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6
michael@0 | 1 | /* Any copyright is dedicated to the public domain. |
michael@0 | 2 | http://creativecommons.org/publicdomain/zero/1.0/ */ |
michael@0 | 3 | |
michael@0 | 4 | // Bug 742944 - Do window.open from inside <iframe mozbrowser>. But then |
michael@0 | 5 | // reject the call. This shouldn't cause problems (crashes, leaks). |
michael@0 | 6 | |
michael@0 | 7 | "use strict"; |
michael@0 | 8 | SimpleTest.waitForExplicitFinish(); |
michael@0 | 9 | browserElementTestHelpers.setEnabledPref(true); |
michael@0 | 10 | browserElementTestHelpers.addPermission(); |
michael@0 | 11 | |
michael@0 | 12 | function runTest() { |
michael@0 | 13 | var iframe = document.createElement('iframe'); |
michael@0 | 14 | SpecialPowers.wrap(iframe).mozbrowser = true; |
michael@0 | 15 | |
michael@0 | 16 | iframe.addEventListener('mozbrowseropenwindow', function(e) { |
michael@0 | 17 | ok(e.detail.url.indexOf('does_not_exist.html') != -1, |
michael@0 | 18 | 'Opened URL; got ' + e.detail.url); |
michael@0 | 19 | is(e.detail.name, ''); |
michael@0 | 20 | is(e.detail.features, ''); |
michael@0 | 21 | |
michael@0 | 22 | // Don't add e.detail.frameElement to the DOM, so the window.open is |
michael@0 | 23 | // effectively blocked. |
michael@0 | 24 | e.preventDefault(); |
michael@0 | 25 | }); |
michael@0 | 26 | |
michael@0 | 27 | iframe.addEventListener('mozbrowsershowmodalprompt', function(e) { |
michael@0 | 28 | var msg = e.detail.message; |
michael@0 | 29 | if (msg.indexOf('success:') == 0) { |
michael@0 | 30 | ok(true, msg); |
michael@0 | 31 | } |
michael@0 | 32 | else if (msg == 'finish') { |
michael@0 | 33 | SimpleTest.finish(); |
michael@0 | 34 | } |
michael@0 | 35 | else { |
michael@0 | 36 | ok(false, msg); |
michael@0 | 37 | } |
michael@0 | 38 | }); |
michael@0 | 39 | |
michael@0 | 40 | iframe.src = 'file_browserElement_OpenWindowRejected.html'; |
michael@0 | 41 | document.body.appendChild(iframe); |
michael@0 | 42 | } |
michael@0 | 43 | |
michael@0 | 44 | addEventListener('testready', runTest); |