1
0
Fork 0
firefox/browser/components/sessionstore/test/browser_463206.js
Daniel Baumann 5e9a113729
Adding upstream version 140.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-25 09:37:52 +02:00

120 lines
2.7 KiB
JavaScript

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
const MOCHI_ROOT = ROOT.replace(
"chrome://mochitests/content/",
"http://mochi.test:8888/"
);
if (gFissionBrowser) {
addCoopTask(
"browser_463206_sample.html",
test_restore_text_data_subframes,
HTTPSROOT
);
}
addNonCoopTask(
"browser_463206_sample.html",
test_restore_text_data_subframes,
HTTPSROOT
);
addNonCoopTask(
"browser_463206_sample.html",
test_restore_text_data_subframes,
HTTPROOT
);
addNonCoopTask(
"browser_463206_sample.html",
test_restore_text_data_subframes,
MOCHI_ROOT
);
async function test_restore_text_data_subframes(aURL) {
// Add a new tab.
let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser, aURL);
await setPropertyOfFormField(
tab.linkedBrowser,
"#out1",
"value",
Date.now().toString(16)
);
await setPropertyOfFormField(
tab.linkedBrowser,
"input[name='1|#out2']",
"value",
Math.random()
);
await setPropertyOfFormField(
tab.linkedBrowser.browsingContext.children[0].children[1],
"#in1",
"value",
new Date()
);
// Duplicate the tab.
let tab2 = gBrowser.duplicateTab(tab);
let browser2 = tab2.linkedBrowser;
await promiseTabRestored(tab2);
isnot(
await getPropertyOfFormField(browser2, "#out1", "value"),
await getPropertyOfFormField(
browser2.browsingContext.children[1],
"#out1",
"value"
),
"text isn't reused for frames"
);
isnot(
await getPropertyOfFormField(browser2, "input[name='1|#out2']", "value"),
"",
"text containing | and # is correctly restored"
);
is(
await getPropertyOfFormField(
browser2.browsingContext.children[1],
"#out2",
"value"
),
"",
"id prefixes can't be faked"
);
// Query a few values from the top and its child frames.
await SpecialPowers.spawn(tab2.linkedBrowser, [], async function () {
// Bug 588077
// XXX(farre): disabling this, because it started passing more heavily on Windows.
/*
let in1ValFrame0_1 = await SpecialPowers.spawn(
content.frames[0],
[],
async function() {
return SpecialPowers.spawn(content.frames[1], [], async function() {
return content.document.getElementById("in1").value;
});
}
);
todo_is(in1ValFrame0_1, "", "id prefixes aren't mixed up");
*/
});
is(
await getPropertyOfFormField(
browser2.browsingContext.children[1].children[0],
"#in1",
"value"
),
"",
"id prefixes aren't mixed up"
);
// Cleanup.
gBrowser.removeTab(tab2);
gBrowser.removeTab(tab);
}