From 6bf0a5cb5034a7e684dcc3500e841785237ce2dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 19:32:43 +0200 Subject: Adding upstream version 1:115.7.0. Signed-off-by: Daniel Baumann --- ...rowser_aboutNewTab_bookmarksToolbarNewWindow.js | 82 ++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 browser/base/content/test/about/browser_aboutNewTab_bookmarksToolbarNewWindow.js (limited to 'browser/base/content/test/about/browser_aboutNewTab_bookmarksToolbarNewWindow.js') diff --git a/browser/base/content/test/about/browser_aboutNewTab_bookmarksToolbarNewWindow.js b/browser/base/content/test/about/browser_aboutNewTab_bookmarksToolbarNewWindow.js new file mode 100644 index 0000000000..19c990bbbc --- /dev/null +++ b/browser/base/content/test/about/browser_aboutNewTab_bookmarksToolbarNewWindow.js @@ -0,0 +1,82 @@ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +requestLongerTimeout(2); + +const testCases = [ + { + name: "bookmarks_toolbar_shown_on_newtab_newTabEnabled", + newTabEnabled: true, + }, + { + name: "bookmarks_toolbar_shown_on_newtab", + newTabEnabled: false, + }, +]; + +async function test_bookmarks_toolbar_visibility({ newTabEnabled }) { + await SpecialPowers.pushPrefEnv({ + set: [["browser.newtabpage.enabled", newTabEnabled]], + }); + + // Ensure the toolbar doesnt become visible at any point before the tab finishes loading + + let url = + getRootDirectory(gTestPath).replace( + "chrome://mochitests/content", + "https://example.com" + ) + "slow_loading_page.sjs"; + + let startTime = Date.now(); + let newWindowOpened = BrowserTestUtils.domWindowOpened(); + let beforeShown = TestUtils.topicObserved("browser-window-before-show"); + + openTrustedLinkIn(url, "window"); + + let newWin = await newWindowOpened; + let slowSiteLoaded = BrowserTestUtils.firstBrowserLoaded(newWin, false); + + function checkToolbarIsCollapsed(win, message) { + let toolbar = win.document.getElementById("PersonalToolbar"); + ok(toolbar && toolbar.collapsed, message); + } + + await beforeShown; + checkToolbarIsCollapsed( + newWin, + "Toolbar is initially hidden on the new window" + ); + + function onToolbarMutation() { + checkToolbarIsCollapsed(newWin, "Toolbar should remain collapsed"); + } + let toolbarMutationObserver = new newWin.MutationObserver(onToolbarMutation); + toolbarMutationObserver.observe( + newWin.document.getElementById("PersonalToolbar"), + { + attributeFilter: ["collapsed"], + } + ); + + info("Waiting for the slow site to load"); + await slowSiteLoaded; + info(`Window opened and slow site loaded in: ${Date.now() - startTime}ms`); + + checkToolbarIsCollapsed(newWin, "Finally, the toolbar is still hidden"); + + toolbarMutationObserver.disconnect(); + await BrowserTestUtils.closeWindow(newWin); +} + +// Make separate tasks for each test case, so we get more useful stack traces on failure +for (let testData of testCases) { + let tmp = { + async [testData.name]() { + info("testing with: " + JSON.stringify(testData)); + await test_bookmarks_toolbar_visibility(testData); + }, + }; + add_task(tmp[testData.name]); +} -- cgit v1.2.3