blob: d0fbf41ea9bcf59c2ef394aa1cfbfe37f8d7aef6 [file] [log] [blame]
<script>
if (window.testRunner) {
testRunner.dumpAsText();
testRunner.waitUntilDone();
}
function log(msg) {
document.getElementById("logger").innerHTML += msg + "<br>";
}
function loaded()
{
// Make a 512k character string, which computes as 1mb of payload.
var object = "12345678";
for (var i = 0; i < 16; ++i)
object += object;
log("The total payload is currently 60+mb. Pushing a 1mb object brings that 61+mb.");
try {
history.pushState(0, 0, object);
log("It fit.");
} catch (e) {
log("Unexpected exception pushing 1mb:" + e);
}
log("The total payload is currently 61+mb. Replacing the last 1mb with 2mb brings that to 62+mb.");
object += object;
try {
history.replaceState(0, 0, object);
log("It fit.");
} catch (e) {
log("Unexpected exception replacing 1mb with 2mb:" + e);
}
log("The total payload is currently 62+mb. Replacing the last 2mb with 4mb brings that to 64+mb, and should not fit.");
object += object;
try {
history.replaceState(0, 0, object);
log("It fit, but should not have.");
} catch (e) {
log("Expected exception replacing 2mb with 4mb:" + e);
}
if (window.testRunner)
testRunner.notifyDone();
}
window.onload = loaded;
</script>
<body>
<div id="logger"></div>
</body>