Index: LayoutTests/editing/inserting/insert-with-javascript-protocol-crash.html |
diff --git a/LayoutTests/editing/inserting/insert-with-javascript-protocol-crash.html b/LayoutTests/editing/inserting/insert-with-javascript-protocol-crash.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..6e256a6461a0af7f643987f0f2fa1c28409c9dbf |
--- /dev/null |
+++ b/LayoutTests/editing/inserting/insert-with-javascript-protocol-crash.html |
@@ -0,0 +1,37 @@ |
+<script> |
+onload = function() { |
+ document.execCommand('selectall'); |
+ var iframe = document.createElement('iframe'); |
+ iframe.onload = startIframe; |
+ document.documentElement.appendChild(iframe); |
+ document.body.textContent = 'PASS; NOT CRASHED'; |
+ if (window.testRunner) |
+ testRunner.dumpAsText(); |
+}; |
+ |
+function startIframe() |
+{ |
+ document.designMode = 'on'; |
+ document.execCommand('justifyfull'); |
+ document.execCommand('insertimage', false, 'x.gif'); |
+ document.execCommand('indent'); |
+ document.execCommand('inserthtml', false, '<iframe></iframe>') |
+ document.execCommand('inserthtml', false, '<iframe src="javascript:window.top.startIFrame2()"></iframe>'); |
+} |
+ |
+var counter = 0; |
+function startIFrame2() |
+{ |
+ try { |
+ ++counter; |
+ if (counter >= 22) |
+ return; |
+ document.execCommand('justifyleft'); |
+ document.execCommand('indent'); |
+ document.execCommand('forwardDelete'); |
+ } catch (e) { |
+ // Catch "Uncaught RangeError: Maximum call stack size exceeded." |
+ } |
+} |
+</script> |
+<body></body> |