diff options
Diffstat (limited to 'Source/WebCore/manual-tests/bugzilla-48077.html')
-rw-r--r-- | Source/WebCore/manual-tests/bugzilla-48077.html | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/Source/WebCore/manual-tests/bugzilla-48077.html b/Source/WebCore/manual-tests/bugzilla-48077.html new file mode 100644 index 0000000..67bb1f1 --- /dev/null +++ b/Source/WebCore/manual-tests/bugzilla-48077.html @@ -0,0 +1,87 @@ +<html> +<!-- +This test case is used to prove HTMLParserScheduler should be suspended when page loading is deferred. See https://bugs.webkit.org/show_bug.cgi?id=48077. +However, this test case can work only when customHTMLTokenizerChunkSize() is equal to or smaller than 256. To reproduce the problem with other settings, try +adding more tags into body. + +To use the test case, open it in browser, when the alert shows up, wait for a few seconds, and close the alert. If it shows "Error detected", that means the problem exists. +--> +<script> +var showingAlert = false; + +function log(message, replace) +{ + if (replace) + document.getElementById("result").innerHTML = message; + else + document.getElementById("result").innerHTML += "<br>" + message; +} + +function showAlert() +{ + showingAlert = true; + alert("Test"); + showingAlert = false; +} + +// Insert a script element so the script will be executed when the resource is loaded. +function insertScript() +{ + var head = document.getElementsByTagName("head")[0]; + var myScript = document.createElement('script'); + myScript.type = 'text/javascript'; + myScript.src = 'resources/bugzilla-48077.js'; + head.appendChild(myScript); +} +function check() +{ + // Check JS re-entrancy. If showingAlert is true, we are still in showAlert(). + if (showingAlert) + log("Error detected!", false); + else + log("No error detected.", false); +} + +// Do a time consuming job so we can make HTML parser run over time limit. +function logTime() +{ + // time consuming job; + var startTime = new Date(); + do { + var currentTime = new Date(); + log(currentTime, true); + } while (currentTime - startTime < 1000); +} +</script> +<body> +<p id="result"></p> + +<script> +insertScript(); +</script> + +<!-- Time consuming job to make HTML parser run over chunk time limit --> +<script> +logTime(); +</script> + +<!-- Lots of tags to make HTML parser run over chunk size limit --> +<a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a> + +<!-- Time consuming job to make HTML parser run over chunk time limit --> +<script> +logTime(); +</script> + +<!-- Lots of tags to make HTML parser run over chunk size limit --> +<a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a><a>1</a> + + +<script> +check(); +</script> + + + +</body> +</html>
\ No newline at end of file |