Skip to content
Newer
Older
100644 87 lines (72 sloc) 3.58 KB
e74263f 2011-01-06 Yong Li <yoli@rim.com>
commit-queue@webkit.org authored
1 <html>
2 <!--
3 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.
4 However, this test case can work only when customHTMLTokenizerChunkSize() is equal to or smaller than 256. To reproduce the problem with other settings, try
5 adding more tags into body.
6
7 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.
8 -->
9 <script>
10 var showingAlert = false;
11
12 function log(message, replace)
13 {
14 if (replace)
15 document.getElementById("result").innerHTML = message;
16 else
17 document.getElementById("result").innerHTML += "<br>" + message;
18 }
19
20 function showAlert()
21 {
22 showingAlert = true;
23 alert("Test");
24 showingAlert = false;
25 }
26
27 // Insert a script element so the script will be executed when the resource is loaded.
28 function insertScript()
29 {
30 var head = document.getElementsByTagName("head")[0];
31 var myScript = document.createElement('script');
32 myScript.type = 'text/javascript';
33 myScript.src = 'resources/bugzilla-48077.js';
34 head.appendChild(myScript);
35 }
36 function check()
37 {
38 // Check JS re-entrancy. If showingAlert is true, we are still in showAlert().
39 if (showingAlert)
40 log("Error detected!", false);
41 else
42 log("No error detected.", false);
43 }
44
45 // Do a time consuming job so we can make HTML parser run over time limit.
46 function logTime()
47 {
48 // time consuming job;
49 var startTime = new Date();
50 do {
51 var currentTime = new Date();
52 log(currentTime, true);
53 } while (currentTime - startTime < 1000);
54 }
55 </script>
56 <body>
57 <p id="result"></p>
58
59 <script>
60 insertScript();
61 </script>
62
63 <!-- Time consuming job to make HTML parser run over chunk time limit -->
64 <script>
65 logTime();
66 </script>
67
68 <!-- Lots of tags to make HTML parser run over chunk size limit -->
69 <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>
70
71 <!-- Time consuming job to make HTML parser run over chunk time limit -->
72 <script>
73 logTime();
74 </script>
75
76 <!-- Lots of tags to make HTML parser run over chunk size limit -->
77 <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>
78
79
80 <script>
81 check();
82 </script>
83
84
85
86 </body>
87 </html>
Something went wrong with that request. Please try again.