browser_duplicate_history.js (969B)
1 ChromeUtils.defineESModuleGetters(this, { 2 SessionStore: "resource:///modules/sessionstore/SessionStore.sys.mjs", 3 TabStateCache: "resource:///modules/sessionstore/TabStateCache.sys.mjs", 4 }); 5 6 add_task(async function () { 7 await BrowserTestUtils.withNewTab( 8 "http://example.com", 9 async function (aBrowser) { 10 let tab = gBrowser.getTabForBrowser(aBrowser); 11 await TabStateFlusher.flush(aBrowser); 12 let before = TabStateCache.get(aBrowser.permanentKey); 13 14 let newTab = SessionStore.duplicateTab(window, tab); 15 await Promise.all([ 16 BrowserTestUtils.browserLoaded(newTab.linkedBrowser), 17 TestUtils.topicObserved("sessionstore-debug-tab-restored"), 18 ]); 19 let after = TabStateCache.get(newTab.linkedBrowser.permanentKey); 20 21 isnot( 22 before.history.entries, 23 after.history.entries, 24 "The entry objects should not be shared" 25 ); 26 27 BrowserTestUtils.removeTab(newTab); 28 } 29 ); 30 });