Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Test the max size of the data parameter of push/replaceState</title>
<script src="/tests/SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" href="/tests/SimpleTest/test.css"/>
<script>
SimpleTest.waitForExplicitFinish();
function test() {
let tooLarge = SpecialPowers.getIntPref("browser.history.maxStateObjectSize");
let allowed = Math.floor(tooLarge / 2);
history.pushState(new Array(allowed).join("a"), "");
ok(true, "Adding a state should succeed.");
try {
history.pushState(new Array(tooLarge).join("a"), "");
ok(false, "Adding a too large state object should fail.");
} catch(ex) {
ok(true, "Adding a too large state object should fail.");
}
SimpleTest.finish();
}
</script>
</head>
<body onload="test()">
<p id="display"></p>
<div id="content" style="display: none"></div>
<pre id="test"></pre>
</body>
</html>