fune/browser/components/sessionstore/test/browser_restore_srcdoc.js
Kashav Madan 1a33a37654 Bug 1715852 - Fix SessionHistoryEntry::mSrcdocData to work with session restore, r=peterv
Not setting mIsSrcdocEntry causes us to drop srcdoc data and not set
INTERNAL_LOAD_FLAGS_IS_SRCDOC in FillLoadInfo for srcdoc restores.

Differential Revision: https://phabricator.services.mozilla.com/D117479
2021-06-15 13:34:01 +00:00

44 lines
1.1 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
function makeURL(srcdocValue) {
return `data:text/html;charset=utf-8,<iframe srcdoc="${srcdocValue}">`;
}
async function runTest(srcdocValue) {
forgetClosedWindows();
// Open a new tab.
let tab = BrowserTestUtils.addTab(gBrowser, makeURL(srcdocValue));
await promiseBrowserLoaded(tab.linkedBrowser);
// Close that tab.
await promiseRemoveTabAndSessionState(tab);
// Restore that tab.
tab = ss.undoCloseTab(window, 0);
await promiseTabRestored(tab);
// Verify contents were restored correctly.
let iframe = await SpecialPowers.spawn(
tab.linkedBrowser,
[],
() => content.document.querySelector("iframe").browsingContext
);
await SpecialPowers.spawn(iframe, [srcdocValue], text => {
Assert.equal(content.document.body.innerText, text, "Didn't load neterror");
});
// Cleanup.
gBrowser.removeTab(tab);
}
add_task(async function test_non_blank() {
await runTest("value");
});
add_task(async function test_blank() {
await runTest("");
});