74 lines
1.6 KiB
HTML
74 lines
1.6 KiB
HTML
<script>
|
|
|
|
if (window.testRunner) {
|
|
testRunner.dumpAsText();
|
|
testRunner.dumpChildFramesAsText();
|
|
testRunner.waitUntilDone();
|
|
}
|
|
|
|
function log(msg) {
|
|
document.getElementById("logger").innerHTML += msg + "<br>";
|
|
}
|
|
|
|
var object = "aaaaaaaaaa";
|
|
for (var i = 0; i < 16; ++i)
|
|
object += object;
|
|
|
|
function click()
|
|
{
|
|
if (!eventSender)
|
|
return;
|
|
|
|
var button = document.getElementById("button");
|
|
eventSender.mouseMoveTo(button.offsetLeft + 5, button.offsetTop + 5);
|
|
eventSender.mouseDown();
|
|
eventSender.mouseUp();
|
|
}
|
|
|
|
window.onload = click;
|
|
|
|
var count = 1;
|
|
|
|
function clicked()
|
|
{
|
|
try {
|
|
history.pushState(object, object, object);
|
|
} catch (e) {
|
|
log("Unexpected exception: " + e);
|
|
if (window.testRunner)
|
|
testRunner.notifyDone();
|
|
}
|
|
|
|
log("Parent frame successfully added item: " + count + " times");
|
|
++count;
|
|
|
|
if (count > 10) {
|
|
openFrame();
|
|
return;
|
|
}
|
|
|
|
setTimeout(click, 0);
|
|
}
|
|
|
|
function iframeLoaded()
|
|
{
|
|
document.getElementById("button").onclick = window.frames[0].iframeClicked;
|
|
click();
|
|
}
|
|
|
|
function openFrame()
|
|
{
|
|
var iframe = document.createElement('iframe');
|
|
iframe.src = 'resources/pushstate-iframe.html'
|
|
iframe.onload = iframeLoaded;
|
|
document.body.appendChild(iframe);
|
|
}
|
|
|
|
</script>
|
|
<body>
|
|
Test should not crash.<br>
|
|
Test does pushState both from the main frame and from an iframe and makes sure they both count against the main frame document's size limit.<br>
|
|
<button id="button" onclick="clicked();">Click to test pushState through a user gesture</button>
|
|
<div id="logger"></div>
|
|
</body>
|