browser_pageinfo_previewBrowser.js (2029B)
1 const Cm = Components.manager; 2 3 async function testPreviewBrowser(pageInfo) { 4 await BrowserTestUtils.waitForEvent(pageInfo, "page-info-init"); 5 info("pageInfo initialized"); 6 let tree = pageInfo.document.getElementById("imagetree"); 7 Assert.ok(!!tree, "should have imagetree element"); 8 9 // i=0: <img> 10 // i=1: <video> 11 // i=2: <audio> 12 for (let i = 0; i < 3; i++) { 13 info("imagetree select " + i); 14 tree.view.selection.select(i); 15 tree.ensureRowIsVisible(i); 16 tree.focus(); 17 18 info("Waiting for the page-info-mediapreview-load event"); 19 await BrowserTestUtils.waitForEvent( 20 pageInfo, 21 "page-info-mediapreview-load" 22 ); 23 24 info("preview load " + i); 25 26 let mediaBrowser = pageInfo.document.getElementById("mediaBrowser"); 27 28 Assert.equal( 29 mediaBrowser.browsingContext.currentRemoteType, 30 "webIsolated=https://example.com", 31 "Preview mediaBrowser is running in a webIsolated process" 32 ); 33 34 Assert.equal( 35 gBrowser.selectedBrowser.browsingContext.group, 36 mediaBrowser.browsingContext.group, 37 "Preview browser is in the same group as the original page" 38 ); 39 } 40 } 41 42 async function test() { 43 waitForExplicitFinish(); 44 45 let url = 46 "https://example.com/browser/browser/base/content/test/pageinfo/image.html"; 47 gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser); 48 let loadPromise = BrowserTestUtils.browserLoaded( 49 gBrowser.selectedBrowser, 50 false, 51 url 52 ); 53 BrowserTestUtils.startLoadingURIString(gBrowser.selectedBrowser, url); 54 await loadPromise; 55 56 // Pass a dummy imageElement, if there isn't an imageElement, pageInfo.js 57 // will do a preview, however this sometimes will cause intermittent failures, 58 // see bug 1403365. 59 let pageInfo = BrowserCommands.pageInfo(url, "mediaTab", {}); 60 info("waitForEvent pageInfo"); 61 await BrowserTestUtils.waitForEvent(pageInfo, "load"); 62 63 info("calling testPreviewBrowser"); 64 await testPreviewBrowser(pageInfo); 65 66 pageInfo.close(); 67 gBrowser.removeCurrentTab(); 68 finish(); 69 }