browser_frame_elements.js (2468B)
1 /* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ 2 /* vim: set ts=2 et sw=2 tw=80: */ 3 /* This Source Code Form is subject to the terms of the Mozilla Public 4 * License, v. 2.0. If a copy of the MPL was not distributed with this 5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 6 7 const TEST_URI = 8 "http://example.com/browser/dom/tests/browser/browser_frame_elements.html"; 9 10 add_task(async function test() { 11 await BrowserTestUtils.withNewTab( 12 { gBrowser, url: TEST_URI }, 13 async function (browser) { 14 // Confirm its embedder is the browser: 15 is( 16 browser.browsingContext.embedderElement, 17 browser, 18 "Embedder element for main window is xul:browser" 19 ); 20 21 await SpecialPowers.spawn(browser, [], startTests); 22 } 23 ); 24 }); 25 26 function startTests() { 27 info("Frame tests started"); 28 29 info("Checking top window"); 30 let gWindow = content; 31 Assert.equal(gWindow.top, gWindow, "gWindow is top"); 32 Assert.equal(gWindow.parent, gWindow, "gWindow is parent"); 33 34 info("Checking about:blank iframe"); 35 let iframeBlank = gWindow.document.querySelector("#iframe-blank"); 36 Assert.ok(iframeBlank, "Iframe exists on page"); 37 Assert.equal( 38 iframeBlank.browsingContext.embedderElement, 39 iframeBlank, 40 "Embedder element for iframe window is iframe" 41 ); 42 Assert.equal(iframeBlank.contentWindow.top, gWindow, "gWindow is top"); 43 Assert.equal(iframeBlank.contentWindow.parent, gWindow, "gWindow is parent"); 44 45 info("Checking iframe with data url src"); 46 let iframeDataUrl = gWindow.document.querySelector("#iframe-data-url"); 47 Assert.ok(iframeDataUrl, "Iframe exists on page"); 48 Assert.equal( 49 iframeDataUrl.browsingContext.embedderElement, 50 iframeDataUrl, 51 "Embedder element for iframe window is iframe" 52 ); 53 Assert.equal(iframeDataUrl.contentWindow.top, gWindow, "gWindow is top"); 54 Assert.equal( 55 iframeDataUrl.contentWindow.parent, 56 gWindow, 57 "gWindow is parent" 58 ); 59 60 info("Checking object with data url data attribute"); 61 let objectDataUrl = gWindow.document.querySelector("#object-data-url"); 62 Assert.ok(objectDataUrl, "Object exists on page"); 63 Assert.equal( 64 objectDataUrl.browsingContext.embedderElement, 65 objectDataUrl, 66 "Embedder element for object window is the object" 67 ); 68 Assert.equal(objectDataUrl.contentWindow.top, gWindow, "gWindow is top"); 69 Assert.equal( 70 objectDataUrl.contentWindow.parent, 71 gWindow, 72 "gWindow is parent" 73 ); 74 }