browser_fullscreen_tab_preview.js (2438B)
1 /* Any copyright is dedicated to the Public Domain. 2 http://creativecommons.org/publicdomain/zero/1.0/ */ 3 4 "use strict"; 5 6 // This test ensures dismissing a tab preview does not hide the nav toolbox 7 // when browser.fullscreen.autohide is true. 8 9 add_setup(async () => { 10 await SpecialPowers.pushPrefEnv({ 11 set: [ 12 ["browser.fullscreen.autohide", true], 13 ["browser.tabs.hoverPreview.enabled", true], 14 ["ui.tooltip.delay_ms", 0], 15 ], 16 }); 17 }); 18 19 add_task(async function testTabPreview() { 20 let tab = BrowserTestUtils.addTab(gBrowser, "about:blank", { 21 skipAnimation: true, 22 }); 23 let onFullscreenEnter = Promise.all([ 24 BrowserTestUtils.waitForEvent(window, "fullscreen"), 25 BrowserTestUtils.waitForEvent( 26 window, 27 "sizemodechange", 28 false, 29 () => window.fullScreen 30 ), 31 ]); 32 document.getElementById("View:FullScreen").doCommand(); 33 await onFullscreenEnter; 34 await waitForFocus(window); 35 36 // make sure the toolbox is visible if it's autohidden 37 let onToolboxShown = TestUtils.topicObserved( 38 "fullscreen-nav-toolbox", 39 (subject, data) => data == "shown" 40 ); 41 FullScreen.showNavToolbox(); 42 info("Waiting for the nav toolbox to be shown"); 43 await onToolboxShown; 44 45 let tabPreviewPanel = document.getElementById("tab-preview-panel"); 46 // open tab preview 47 const previewShown = BrowserTestUtils.waitForPopupEvent( 48 tabPreviewPanel, 49 "shown" 50 ); 51 EventUtils.synthesizeMouse( 52 tab, 53 1, 54 1, 55 { 56 type: "mousemove", 57 }, 58 window 59 ); 60 info("waiting for preview to show"); 61 await previewShown; 62 63 // close tab preview 64 const previewHidden = BrowserTestUtils.waitForPopupEvent( 65 tabPreviewPanel, 66 "hidden" 67 ); 68 EventUtils.synthesizeMouse( 69 document.getElementById("tabs-newtab-button"), 70 1, 71 1, 72 { type: "mousemove" } 73 ); 74 info("waiting for preview to hide"); 75 await previewHidden; 76 // navtoolbox should still be visible 77 Assert.ok( 78 !FullScreen._isChromeCollapsed, 79 "Toolbar remains visible after tab preview is hidden" 80 ); 81 BrowserTestUtils.removeTab(tab); 82 let onExitFullscreen = Promise.all([ 83 BrowserTestUtils.waitForEvent(window, "fullscreen"), 84 BrowserTestUtils.waitForEvent( 85 window, 86 "sizemodechange", 87 false, 88 () => !window.fullScreen 89 ), 90 ]); 91 document.getElementById("View:FullScreen").doCommand(); 92 info("waiting for fullscreen exit"); 93 await onExitFullscreen; 94 });