/* Any copyright is dedicated to the Public Domain. * http://creativecommons.org/publicdomain/zero/1.0/ */ "use strict"; Services.scriptloader.loadSubScript( "chrome://mochitests/content/browser/remote/cdp/test/browser/head.js", this ); const { PollPromise } = ChromeUtils.importESModule( "chrome://remote/content/shared/Sync.sys.mjs" ); const BASE_ORIGIN = "https://example.com"; const BASE_PATH = `${BASE_ORIGIN}/browser/remote/cdp/test/browser/page`; const FRAMESET_MULTI_URL = `${BASE_PATH}/doc_frameset_multi.html`; const FRAMESET_NESTED_URL = `${BASE_PATH}/doc_frameset_nested.html`; const FRAMESET_SINGLE_URL = `${BASE_PATH}/doc_frameset_single.html`; const PAGE_FRAME_URL = `${BASE_PATH}/doc_frame.html`; const PAGE_URL = `${BASE_PATH}/doc_empty.html`; const TIMEOUT_SET_HISTORY_INDEX = 1000; function assertHistoryEntries(history, expectedData, expectedIndex) { const { currentIndex, entries } = history; is(currentIndex, expectedIndex, "Got expected current index"); is( entries.length, expectedData.length, "Found expected count of history entries" ); entries.forEach((entry, index) => { ok(!!entry.id, "History entry has an id set"); is( entry.url, expectedData[index].url, "History entry has the correct URL set" ); is( entry.userTypedURL, expectedData[index].userTypedURL, "History entry has the correct user typed URL set" ); is( entry.title, expectedData[index].title, "History entry has the correct title set" ); }); } function generateHistoryData(count) { const data = []; for (let index = 0; index < count; index++) { const url = toDataURL(`