Index: LayoutTests/fast/dom/StyleSheet/stylesheet-move-between-documents-crash.html |
diff --git a/LayoutTests/fast/dom/StyleSheet/stylesheet-move-between-documents-crash.html b/LayoutTests/fast/dom/StyleSheet/stylesheet-move-between-documents-crash.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..cf51280b327ec95f237a75602194915512639ab8 |
--- /dev/null |
+++ b/LayoutTests/fast/dom/StyleSheet/stylesheet-move-between-documents-crash.html |
@@ -0,0 +1,53 @@ |
+<script> |
+if (window.testRunner) |
+ testRunner.waitUntilDone(); |
+ |
+var iframe; |
+var div; |
+ |
+function start() { |
+ iframe = document.createElement('iframe'); |
+ iframe.src='resources/stylesheet-move-iframe1.xml'; |
+ document.getElementById('store_div').appendChild(iframe); |
+ window.setTimeout('startrly()', 100); |
+} |
+ |
+function startrly() { |
+ if (location.hash == '#done') { |
+ document.write('PASS'); |
+ if (window.testRunner) { |
+ testRunner.dumpAsText(); |
+ testRunner.notifyDone(); |
+ } |
+ return; |
+ } |
+ var count = 0; |
+ if (location.hash !== "") |
+ count = parseInt(location.hash.substr(1)); |
+ if (count < 10) { |
+ ++count; |
+ location.hash = '#' + count; |
+ } else { |
+ location.hash = 'done'; |
+ } |
+ div = document.createElement('div'); |
+ // <marquee> is special as it is implemented using Blink-in-JS (JS code runs for |
+ // creating a custom element and a shadow root) and invokes its attachedCallback |
+ // from C++ code, which can cause a special race condition with reloading when |
+ // it is moved between different documents. |
+ var marquee = document.createElement('marquee'); |
+ document.body.appendChild(marquee); |
+ document.body.scrollIntoView(false); |
+ |
+ var iframe2 = document.createElement('iframe'); |
+ iframe2.src = 'resources/stylesheet-move-iframe2.html'; |
+ document.body.appendChild(iframe2); |
+ |
+ document.body.appendChild(iframe.contentDocument.firstChild); |
+ div.appendChild(marquee); |
+ window.setTimeout('location.reload();',20); |
+} |
+</script> |
+<body onload="start()"> |
+<div id="store_div"></div> |
+</script> |