Diff
Modified: trunk/LayoutTests/ChangeLog (120137 => 120138)
--- trunk/LayoutTests/ChangeLog 2012-06-12 23:16:51 UTC (rev 120137)
+++ trunk/LayoutTests/ChangeLog 2012-06-12 23:40:04 UTC (rev 120138)
@@ -1,3 +1,30 @@
+2012-06-12 Brady Eidson <beid...@apple.com>
+
+ https://bugs.webkit.org/show_bug.cgi?id=88928
+ [WK2] New http/tests/loading/* tests fail
+
+ There's some latent timing issue with WK2 tests that prevents us from getting the last load delegate callback
+ before finishing the test.
+
+ Fortunately for the sake of these tests the load delegate dumps are entirely irrelevant.
+ Moving them from http/tests/loading to http/tests/misc and getting new, cleaner results fixes this.
+
+ Rubberstamped by Darin Adler.
+
+ * http/tests/misc/embed-image-load-outlives-gc-without-crashing-expected.txt: Renamed from LayoutTests/http/tests/loading/embed-image-load-outlives-gc-without-crashing-expected.txt.
+ * http/tests/misc/embed-image-load-outlives-gc-without-crashing.html: Renamed from LayoutTests/http/tests/loading/embed-image-load-outlives-gc-without-crashing.html.
+ * http/tests/misc/image-input-type-outlives-gc-without-crashing-expected.txt: Renamed from LayoutTests/http/tests/loading/image-input-type-outlives-gc-without-crashing-expected.txt.
+ * http/tests/misc/image-input-type-outlives-gc-without-crashing.html: Renamed from LayoutTests/http/tests/loading/image-input-type-outlives-gc-without-crashing.html.
+ * http/tests/misc/image-load-outlives-gc-without-crashing-expected.txt: Renamed from LayoutTests/http/tests/loading/image-load-outlives-gc-without-crashing-expected.txt.
+ * http/tests/misc/image-load-outlives-gc-without-crashing.html: Renamed from LayoutTests/http/tests/loading/image-load-outlives-gc-without-crashing.html.
+ * http/tests/misc/object-image-load-outlives-gc-without-crashing-expected.txt: Renamed from LayoutTests/http/tests/loading/object-image-load-outlives-gc-without-crashing-expected.txt.
+ * http/tests/misc/object-image-load-outlives-gc-without-crashing.html: Renamed from LayoutTests/http/tests/loading/object-image-load-outlives-gc-without-crashing.html.
+ * http/tests/misc/resources/slowimage.php: Renamed from LayoutTests/http/tests/loading/resources/slowimage.php.
+ * http/tests/misc/svg-image-load-outlives-gc-without-crashing-expected.txt: Renamed from LayoutTests/http/tests/loading/svg-image-load-outlives-gc-without-crashing-expected.txt.
+ * http/tests/misc/svg-image-load-outlives-gc-without-crashing.html: Renamed from LayoutTests/http/tests/loading/svg-image-load-outlives-gc-without-crashing.html.
+ * http/tests/misc/video-poster-image-load-outlives-gc-without-crashing-expected.txt: Renamed from LayoutTests/http/tests/loading/video-poster-image-load-outlives-gc-without-crashing-expected.txt.
+ * http/tests/misc/video-poster-image-load-outlives-gc-without-crashing.html: Renamed from LayoutTests/http/tests/loading/video-poster-image-load-outlives-gc-without-crashing.html.
+
2012-06-12 Filip Pizlo <fpi...@apple.com>
DFG should not ASSERT if you have a double use of a variable that is not revealed to be a double
Deleted: trunk/LayoutTests/http/tests/loading/embed-image-load-outlives-gc-without-crashing-expected.txt (120137 => 120138)
--- trunk/LayoutTests/http/tests/loading/embed-image-load-outlives-gc-without-crashing-expected.txt 2012-06-12 23:16:51 UTC (rev 120137)
+++ trunk/LayoutTests/http/tests/loading/embed-image-load-outlives-gc-without-crashing-expected.txt 2012-06-12 23:40:04 UTC (rev 120138)
@@ -1,6 +0,0 @@
-main frame - didStartProvisionalLoadForFrame
-main frame - didCommitLoadForFrame
-main frame - didFinishDocumentLoadForFrame
-main frame - didFailLoadWithError
-This has an embed element representing an image. That embed element is wrapped in a div. It removes the div, forces garbage collection, and makes sure that the window load event does not fire. It also makes sure there is no crash.
-
Deleted: trunk/LayoutTests/http/tests/loading/embed-image-load-outlives-gc-without-crashing.html (120137 => 120138)
--- trunk/LayoutTests/http/tests/loading/embed-image-load-outlives-gc-without-crashing.html 2012-06-12 23:16:51 UTC (rev 120137)
+++ trunk/LayoutTests/http/tests/loading/embed-image-load-outlives-gc-without-crashing.html 2012-06-12 23:40:04 UTC (rev 120138)
@@ -1,53 +0,0 @@
-<script>
-
-if (window.layoutTestController) {
- layoutTestController.waitUntilDone();
- layoutTestController.dumpAsText();
-}
-
-function loaded() {
- // If the garbage collection causes the image load to stop and therefore causes the load event to fire on the main frame, we failed.
- alert("FAIL: The load event fired");
-
- if (window.layoutTestController)
- layoutTestController.notifyDone();
-}
-
-</script>
-<body _onload_="loaded();">
-
-This has an embed element representing an image. That embed element is wrapped in a div. It removes the div, forces garbage collection, and makes sure that the window load event does not fire. It also makes sure there is no crash.<br>
-<div id="thediv">
-<embed type="image/gif" src=""
-</embed>
-</div>
-</body>
-<script>
-
-function finished() {
- window.stop()
- if (window.layoutTestController)
- layoutTestController.notifyDone();
-}
-
-function forceGC() {
- if (this.GCController)
- GCController.collect();
- else {
- for (var i = 0; i < 10000; ++i) // Allocate a sufficient number of objects to force a GC.
- ({});
- }
-
- setTimeout("finished();", 0);
-}
-
-function removeTheDiv() {
- var element = window.document.getElementById("thediv");
- element.parentNode.removeChild(element);
- element = null;
- setTimeout("forceGC();", 0);
-}
-
-setTimeout("removeTheDiv();", 0);
-
-</script>
Deleted: trunk/LayoutTests/http/tests/loading/image-input-type-outlives-gc-without-crashing-expected.txt (120137 => 120138)
--- trunk/LayoutTests/http/tests/loading/image-input-type-outlives-gc-without-crashing-expected.txt 2012-06-12 23:16:51 UTC (rev 120137)
+++ trunk/LayoutTests/http/tests/loading/image-input-type-outlives-gc-without-crashing-expected.txt 2012-06-12 23:40:04 UTC (rev 120138)
@@ -1,6 +0,0 @@
-main frame - didStartProvisionalLoadForFrame
-main frame - didCommitLoadForFrame
-main frame - didFinishDocumentLoadForFrame
-main frame - didFailLoadWithError
-This test has a form with an input type=image element in it. The form is wrapped in a div. It removes the div, forces garbage collection, and makes sure that the window load event does not fire. It also makes sure there is no crash.
-
Deleted: trunk/LayoutTests/http/tests/loading/image-input-type-outlives-gc-without-crashing.html (120137 => 120138)
--- trunk/LayoutTests/http/tests/loading/image-input-type-outlives-gc-without-crashing.html 2012-06-12 23:16:51 UTC (rev 120137)
+++ trunk/LayoutTests/http/tests/loading/image-input-type-outlives-gc-without-crashing.html 2012-06-12 23:40:04 UTC (rev 120138)
@@ -1,54 +0,0 @@
-<script>
-
-if (window.layoutTestController) {
- layoutTestController.waitUntilDone();
- layoutTestController.dumpAsText();
-}
-
-function loaded() {
- // If the garbage collection causes the image load to stop and therefore causes the load event to fire on the main frame, we failed.
- alert("FAIL: The load event fired");
-
- if (window.layoutTestController)
- layoutTestController.notifyDone();
-}
-
-</script>
-<body _onload_="loaded();">
-
-This test has a form with an input type=image element in it. The form is wrapped in a div. It removes the div, forces garbage collection, and makes sure that the window load event does not fire. It also makes sure there is no crash.<br>
-<div id="thediv">
-<form>
-<input type="image" src=""
-</form>
-</div>
-</body>
-<script>
-
-function finished() {
- window.stop()
- if (window.layoutTestController)
- layoutTestController.notifyDone();
-}
-
-function forceGC() {
- if (this.GCController)
- GCController.collect();
- else {
- for (var i = 0; i < 10000; ++i) // Allocate a sufficient number of objects to force a GC.
- ({});
- }
-
- setTimeout("finished();", 0);
-}
-
-function removeTheDiv() {
- var element = window.document.getElementById("thediv");
- element.parentNode.removeChild(element);
- element = null;
- setTimeout("forceGC();", 0);
-}
-
-setTimeout("removeTheDiv();", 0);
-
-</script>
Deleted: trunk/LayoutTests/http/tests/loading/image-load-outlives-gc-without-crashing-expected.txt (120137 => 120138)
--- trunk/LayoutTests/http/tests/loading/image-load-outlives-gc-without-crashing-expected.txt 2012-06-12 23:16:51 UTC (rev 120137)
+++ trunk/LayoutTests/http/tests/loading/image-load-outlives-gc-without-crashing-expected.txt 2012-06-12 23:40:04 UTC (rev 120138)
@@ -1,6 +0,0 @@
-main frame - didStartProvisionalLoadForFrame
-main frame - didCommitLoadForFrame
-main frame - didFinishDocumentLoadForFrame
-main frame - didFailLoadWithError
-This test has an image inside a div. It removes the div, forces garbage collection, and makes sure that the window load event does not fire. It also makes sure there is no crash.
-
Deleted: trunk/LayoutTests/http/tests/loading/image-load-outlives-gc-without-crashing.html (120137 => 120138)
--- trunk/LayoutTests/http/tests/loading/image-load-outlives-gc-without-crashing.html 2012-06-12 23:16:51 UTC (rev 120137)
+++ trunk/LayoutTests/http/tests/loading/image-load-outlives-gc-without-crashing.html 2012-06-12 23:40:04 UTC (rev 120138)
@@ -1,52 +0,0 @@
-<script>
-
-if (window.layoutTestController) {
- layoutTestController.waitUntilDone();
- layoutTestController.dumpAsText();
-}
-
-function loaded() {
- // If the garbage collection causes the image load to stop and therefore causes the load event to fire on the main frame, we failed.
- alert("FAIL: The load event fired");
-
- if (window.layoutTestController)
- layoutTestController.notifyDone();
-}
-
-</script>
-<body _onload_="loaded();">
-
-This test has an image inside a div. It removes the div, forces garbage collection, and makes sure that the window load event does not fire. It also makes sure there is no crash.<br>
-<div id="thediv">
-<img src=""
-</div>
-</body>
-<script>
-
-function finished() {
- window.stop()
- if (window.layoutTestController)
- layoutTestController.notifyDone();
-}
-
-function forceGC() {
- if (this.GCController)
- GCController.collect();
- else {
- for (var i = 0; i < 10000; ++i) // Allocate a sufficient number of objects to force a GC.
- ({});
- }
-
- setTimeout("finished();", 0);
-}
-
-function removeTheDiv() {
- var element = window.document.getElementById("thediv");
- element.parentNode.removeChild(element);
- element = null;
- setTimeout("forceGC();", 0);
-}
-
-setTimeout("removeTheDiv();", 0);
-
-</script>
Deleted: trunk/LayoutTests/http/tests/loading/object-image-load-outlives-gc-without-crashing-expected.txt (120137 => 120138)
--- trunk/LayoutTests/http/tests/loading/object-image-load-outlives-gc-without-crashing-expected.txt 2012-06-12 23:16:51 UTC (rev 120137)
+++ trunk/LayoutTests/http/tests/loading/object-image-load-outlives-gc-without-crashing-expected.txt 2012-06-12 23:40:04 UTC (rev 120138)
@@ -1,6 +0,0 @@
-main frame - didStartProvisionalLoadForFrame
-main frame - didCommitLoadForFrame
-main frame - didFinishDocumentLoadForFrame
-main frame - didFailLoadWithError
-This has an object element representing an image. That object element is wrapped in a div. It removes the div, forces garbage collection, and makes sure that the window load event does not fire. It also makes sure there is no crash.
-
Deleted: trunk/LayoutTests/http/tests/loading/object-image-load-outlives-gc-without-crashing.html (120137 => 120138)
--- trunk/LayoutTests/http/tests/loading/object-image-load-outlives-gc-without-crashing.html 2012-06-12 23:16:51 UTC (rev 120137)
+++ trunk/LayoutTests/http/tests/loading/object-image-load-outlives-gc-without-crashing.html 2012-06-12 23:40:04 UTC (rev 120138)
@@ -1,53 +0,0 @@
-<script>
-
-if (window.layoutTestController) {
- layoutTestController.waitUntilDone();
- layoutTestController.dumpAsText();
-}
-
-function loaded() {
- // If the garbage collection causes the image load to stop and therefore causes the load event to fire on the main frame, we failed.
- alert("FAIL: The load event fired");
-
- if (window.layoutTestController)
- layoutTestController.notifyDone();
-}
-
-</script>
-<body _onload_="loaded();">
-
-This has an object element representing an image. That object element is wrapped in a div. It removes the div, forces garbage collection, and makes sure that the window load event does not fire. It also makes sure there is no crash.<br>
-<div id="thediv">
-<object type="image/gif" data=""
-</object>
-</div>
-</body>
-<script>
-
-function finished() {
- window.stop()
- if (window.layoutTestController)
- layoutTestController.notifyDone();
-}
-
-function forceGC() {
- if (this.GCController)
- GCController.collect();
- else {
- for (var i = 0; i < 10000; ++i) // Allocate a sufficient number of objects to force a GC.
- ({});
- }
-
- setTimeout("finished();", 0);
-}
-
-function removeTheDiv() {
- var element = window.document.getElementById("thediv");
- element.parentNode.removeChild(element);
- element = null;
- setTimeout("forceGC();", 0);
-}
-
-setTimeout("removeTheDiv();", 0);
-
-</script>
Deleted: trunk/LayoutTests/http/tests/loading/resources/slowimage.php (120137 => 120138)
--- trunk/LayoutTests/http/tests/loading/resources/slowimage.php 2012-06-12 23:16:51 UTC (rev 120137)
+++ trunk/LayoutTests/http/tests/loading/resources/slowimage.php 2012-06-12 23:40:04 UTC (rev 120138)
@@ -1,5 +0,0 @@
-<?php
-sleep(30);
-header('Cache-Control: no-cache, must-revalidate');
-header('Location: data:image/gif;base64,R0lGODlhAQABAJAAAMjIyAAAACwAAAAAAQABAAACAgQBADs%3D');
-?>
Deleted: trunk/LayoutTests/http/tests/loading/svg-image-load-outlives-gc-without-crashing-expected.txt (120137 => 120138)
--- trunk/LayoutTests/http/tests/loading/svg-image-load-outlives-gc-without-crashing-expected.txt 2012-06-12 23:16:51 UTC (rev 120137)
+++ trunk/LayoutTests/http/tests/loading/svg-image-load-outlives-gc-without-crashing-expected.txt 2012-06-12 23:40:04 UTC (rev 120138)
@@ -1,6 +0,0 @@
-main frame - didStartProvisionalLoadForFrame
-main frame - didCommitLoadForFrame
-main frame - didFinishDocumentLoadForFrame
-main frame - didFailLoadWithError
-This has an svg element that contains an svg image element. That svg element is wrapped in a div. It removes the div, forces garbage collection, and makes sure that the window load event does not fire. It also makes sure there is no crash.
-
Deleted: trunk/LayoutTests/http/tests/loading/svg-image-load-outlives-gc-without-crashing.html (120137 => 120138)
--- trunk/LayoutTests/http/tests/loading/svg-image-load-outlives-gc-without-crashing.html 2012-06-12 23:16:51 UTC (rev 120137)
+++ trunk/LayoutTests/http/tests/loading/svg-image-load-outlives-gc-without-crashing.html 2012-06-12 23:40:04 UTC (rev 120138)
@@ -1,54 +0,0 @@
-<script>
-
-if (window.layoutTestController) {
- layoutTestController.waitUntilDone();
- layoutTestController.dumpAsText();
-}
-
-function loaded() {
- // If the garbage collection causes the image load to stop and therefore causes the load event to fire on the main frame, we failed.
- alert("FAIL: The load event fired");
-
- if (window.layoutTestController)
- layoutTestController.notifyDone();
-}
-
-</script>
-<body _onload_="loaded();">
-
-This has an svg element that contains an svg image element. That svg element is wrapped in a div. It removes the div, forces garbage collection, and makes sure that the window load event does not fire. It also makes sure there is no crash.<br>
-<div id="thediv">
-<svg>
-<image xlink:href="" />
-</svg>
-</div>
-</body>
-<script>
-
-function finished() {
- window.stop()
- if (window.layoutTestController)
- layoutTestController.notifyDone();
-}
-
-function forceGC() {
- if (this.GCController)
- GCController.collect();
- else {
- for (var i = 0; i < 10000; ++i) // Allocate a sufficient number of objects to force a GC.
- ({});
- }
-
- setTimeout("finished();", 0);
-}
-
-function removeTheDiv() {
- var element = window.document.getElementById("thediv");
- element.parentNode.removeChild(element);
- element = null;
- setTimeout("forceGC();", 0);
-}
-
-setTimeout("removeTheDiv();", 0);
-
-</script>
Deleted: trunk/LayoutTests/http/tests/loading/video-poster-image-load-outlives-gc-without-crashing-expected.txt (120137 => 120138)
--- trunk/LayoutTests/http/tests/loading/video-poster-image-load-outlives-gc-without-crashing-expected.txt 2012-06-12 23:16:51 UTC (rev 120137)
+++ trunk/LayoutTests/http/tests/loading/video-poster-image-load-outlives-gc-without-crashing-expected.txt 2012-06-12 23:40:04 UTC (rev 120138)
@@ -1,6 +0,0 @@
-main frame - didStartProvisionalLoadForFrame
-main frame - didCommitLoadForFrame
-main frame - didFinishDocumentLoadForFrame
-main frame - didFailLoadWithError
-This has a video element with an image for its poster frame. That video element is wrapped in a div. It removes the div, forces garbage collection, and makes sure that the window load event does not fire. It also makes sure there is no crash.
-
Deleted: trunk/LayoutTests/http/tests/loading/video-poster-image-load-outlives-gc-without-crashing.html (120137 => 120138)
--- trunk/LayoutTests/http/tests/loading/video-poster-image-load-outlives-gc-without-crashing.html 2012-06-12 23:16:51 UTC (rev 120137)
+++ trunk/LayoutTests/http/tests/loading/video-poster-image-load-outlives-gc-without-crashing.html 2012-06-12 23:40:04 UTC (rev 120138)
@@ -1,53 +0,0 @@
-<script>
-
-if (window.layoutTestController) {
- layoutTestController.waitUntilDone();
- layoutTestController.dumpAsText();
-}
-
-function loaded() {
- // If the garbage collection causes the image load to stop and therefore causes the load event to fire on the main frame, we failed.
- alert("FAIL: The load event fired");
-
- if (window.layoutTestController)
- layoutTestController.notifyDone();
-}
-
-</script>
-<body _onload_="loaded();">
-
-This has a video element with an image for its poster frame. That video element is wrapped in a div. It removes the div, forces garbage collection, and makes sure that the window load event does not fire. It also makes sure there is no crash.<br>
-<div id="thediv">
-<video poster="resources/slowimage.php">
-</video>
-</div>
-</body>
-<script>
-
-function finished() {
- window.stop()
- if (window.layoutTestController)
- layoutTestController.notifyDone();
-}
-
-function forceGC() {
- if (this.GCController)
- GCController.collect();
- else {
- for (var i = 0; i < 10000; ++i) // Allocate a sufficient number of objects to force a GC.
- ({});
- }
-
- setTimeout("finished();", 0);
-}
-
-function removeTheDiv() {
- var element = window.document.getElementById("thediv");
- element.parentNode.removeChild(element);
- element = null;
- setTimeout("forceGC();", 0);
-}
-
-setTimeout("removeTheDiv();", 0);
-
-</script>
Copied: trunk/LayoutTests/http/tests/misc/embed-image-load-outlives-gc-without-crashing-expected.txt (from rev 120137, trunk/LayoutTests/http/tests/loading/embed-image-load-outlives-gc-without-crashing-expected.txt) (0 => 120138)
--- trunk/LayoutTests/http/tests/misc/embed-image-load-outlives-gc-without-crashing-expected.txt (rev 0)
+++ trunk/LayoutTests/http/tests/misc/embed-image-load-outlives-gc-without-crashing-expected.txt 2012-06-12 23:40:04 UTC (rev 120138)
@@ -0,0 +1,2 @@
+This has an embed element representing an image. That embed element is wrapped in a div. It removes the div, forces garbage collection, and makes sure that the window load event does not fire. It also makes sure there is no crash.
+
Copied: trunk/LayoutTests/http/tests/misc/embed-image-load-outlives-gc-without-crashing.html (from rev 120137, trunk/LayoutTests/http/tests/loading/embed-image-load-outlives-gc-without-crashing.html) (0 => 120138)
--- trunk/LayoutTests/http/tests/misc/embed-image-load-outlives-gc-without-crashing.html (rev 0)
+++ trunk/LayoutTests/http/tests/misc/embed-image-load-outlives-gc-without-crashing.html 2012-06-12 23:40:04 UTC (rev 120138)
@@ -0,0 +1,53 @@
+<script>
+
+if (window.layoutTestController) {
+ layoutTestController.waitUntilDone();
+ layoutTestController.dumpAsText();
+}
+
+function loaded() {
+ // If the garbage collection causes the image load to stop and therefore causes the load event to fire on the main frame, we failed.
+ alert("FAIL: The load event fired");
+
+ if (window.layoutTestController)
+ layoutTestController.notifyDone();
+}
+
+</script>
+<body _onload_="loaded();">
+
+This has an embed element representing an image. That embed element is wrapped in a div. It removes the div, forces garbage collection, and makes sure that the window load event does not fire. It also makes sure there is no crash.<br>
+<div id="thediv">
+<embed type="image/gif" src=""
+</embed>
+</div>
+</body>
+<script>
+
+function finished() {
+ window.stop()
+ if (window.layoutTestController)
+ layoutTestController.notifyDone();
+}
+
+function forceGC() {
+ if (this.GCController)
+ GCController.collect();
+ else {
+ for (var i = 0; i < 10000; ++i) // Allocate a sufficient number of objects to force a GC.
+ ({});
+ }
+
+ setTimeout("finished();", 0);
+}
+
+function removeTheDiv() {
+ var element = window.document.getElementById("thediv");
+ element.parentNode.removeChild(element);
+ element = null;
+ setTimeout("forceGC();", 0);
+}
+
+setTimeout("removeTheDiv();", 0);
+
+</script>
Copied: trunk/LayoutTests/http/tests/misc/image-input-type-outlives-gc-without-crashing-expected.txt (from rev 120137, trunk/LayoutTests/http/tests/loading/image-input-type-outlives-gc-without-crashing-expected.txt) (0 => 120138)
--- trunk/LayoutTests/http/tests/misc/image-input-type-outlives-gc-without-crashing-expected.txt (rev 0)
+++ trunk/LayoutTests/http/tests/misc/image-input-type-outlives-gc-without-crashing-expected.txt 2012-06-12 23:40:04 UTC (rev 120138)
@@ -0,0 +1,2 @@
+This test has a form with an input type=image element in it. The form is wrapped in a div. It removes the div, forces garbage collection, and makes sure that the window load event does not fire. It also makes sure there is no crash.
+
Copied: trunk/LayoutTests/http/tests/misc/image-input-type-outlives-gc-without-crashing.html (from rev 120137, trunk/LayoutTests/http/tests/loading/image-input-type-outlives-gc-without-crashing.html) (0 => 120138)
--- trunk/LayoutTests/http/tests/misc/image-input-type-outlives-gc-without-crashing.html (rev 0)
+++ trunk/LayoutTests/http/tests/misc/image-input-type-outlives-gc-without-crashing.html 2012-06-12 23:40:04 UTC (rev 120138)
@@ -0,0 +1,54 @@
+<script>
+
+if (window.layoutTestController) {
+ layoutTestController.waitUntilDone();
+ layoutTestController.dumpAsText();
+}
+
+function loaded() {
+ // If the garbage collection causes the image load to stop and therefore causes the load event to fire on the main frame, we failed.
+ alert("FAIL: The load event fired");
+
+ if (window.layoutTestController)
+ layoutTestController.notifyDone();
+}
+
+</script>
+<body _onload_="loaded();">
+
+This test has a form with an input type=image element in it. The form is wrapped in a div. It removes the div, forces garbage collection, and makes sure that the window load event does not fire. It also makes sure there is no crash.<br>
+<div id="thediv">
+<form>
+<input type="image" src=""
+</form>
+</div>
+</body>
+<script>
+
+function finished() {
+ window.stop()
+ if (window.layoutTestController)
+ layoutTestController.notifyDone();
+}
+
+function forceGC() {
+ if (this.GCController)
+ GCController.collect();
+ else {
+ for (var i = 0; i < 10000; ++i) // Allocate a sufficient number of objects to force a GC.
+ ({});
+ }
+
+ setTimeout("finished();", 0);
+}
+
+function removeTheDiv() {
+ var element = window.document.getElementById("thediv");
+ element.parentNode.removeChild(element);
+ element = null;
+ setTimeout("forceGC();", 0);
+}
+
+setTimeout("removeTheDiv();", 0);
+
+</script>
Copied: trunk/LayoutTests/http/tests/misc/image-load-outlives-gc-without-crashing-expected.txt (from rev 120137, trunk/LayoutTests/http/tests/loading/image-load-outlives-gc-without-crashing-expected.txt) (0 => 120138)
--- trunk/LayoutTests/http/tests/misc/image-load-outlives-gc-without-crashing-expected.txt (rev 0)
+++ trunk/LayoutTests/http/tests/misc/image-load-outlives-gc-without-crashing-expected.txt 2012-06-12 23:40:04 UTC (rev 120138)
@@ -0,0 +1,2 @@
+This test has an image inside a div. It removes the div, forces garbage collection, and makes sure that the window load event does not fire. It also makes sure there is no crash.
+
Copied: trunk/LayoutTests/http/tests/misc/image-load-outlives-gc-without-crashing.html (from rev 120137, trunk/LayoutTests/http/tests/loading/image-load-outlives-gc-without-crashing.html) (0 => 120138)
--- trunk/LayoutTests/http/tests/misc/image-load-outlives-gc-without-crashing.html (rev 0)
+++ trunk/LayoutTests/http/tests/misc/image-load-outlives-gc-without-crashing.html 2012-06-12 23:40:04 UTC (rev 120138)
@@ -0,0 +1,52 @@
+<script>
+
+if (window.layoutTestController) {
+ layoutTestController.waitUntilDone();
+ layoutTestController.dumpAsText();
+}
+
+function loaded() {
+ // If the garbage collection causes the image load to stop and therefore causes the load event to fire on the main frame, we failed.
+ alert("FAIL: The load event fired");
+
+ if (window.layoutTestController)
+ layoutTestController.notifyDone();
+}
+
+</script>
+<body _onload_="loaded();">
+
+This test has an image inside a div. It removes the div, forces garbage collection, and makes sure that the window load event does not fire. It also makes sure there is no crash.<br>
+<div id="thediv">
+<img src=""
+</div>
+</body>
+<script>
+
+function finished() {
+ window.stop()
+ if (window.layoutTestController)
+ layoutTestController.notifyDone();
+}
+
+function forceGC() {
+ if (this.GCController)
+ GCController.collect();
+ else {
+ for (var i = 0; i < 10000; ++i) // Allocate a sufficient number of objects to force a GC.
+ ({});
+ }
+
+ setTimeout("finished();", 0);
+}
+
+function removeTheDiv() {
+ var element = window.document.getElementById("thediv");
+ element.parentNode.removeChild(element);
+ element = null;
+ setTimeout("forceGC();", 0);
+}
+
+setTimeout("removeTheDiv();", 0);
+
+</script>
Copied: trunk/LayoutTests/http/tests/misc/object-image-load-outlives-gc-without-crashing-expected.txt (from rev 120137, trunk/LayoutTests/http/tests/loading/object-image-load-outlives-gc-without-crashing-expected.txt) (0 => 120138)
--- trunk/LayoutTests/http/tests/misc/object-image-load-outlives-gc-without-crashing-expected.txt (rev 0)
+++ trunk/LayoutTests/http/tests/misc/object-image-load-outlives-gc-without-crashing-expected.txt 2012-06-12 23:40:04 UTC (rev 120138)
@@ -0,0 +1,2 @@
+This has an object element representing an image. That object element is wrapped in a div. It removes the div, forces garbage collection, and makes sure that the window load event does not fire. It also makes sure there is no crash.
+
Copied: trunk/LayoutTests/http/tests/misc/object-image-load-outlives-gc-without-crashing.html (from rev 120137, trunk/LayoutTests/http/tests/loading/object-image-load-outlives-gc-without-crashing.html) (0 => 120138)
--- trunk/LayoutTests/http/tests/misc/object-image-load-outlives-gc-without-crashing.html (rev 0)
+++ trunk/LayoutTests/http/tests/misc/object-image-load-outlives-gc-without-crashing.html 2012-06-12 23:40:04 UTC (rev 120138)
@@ -0,0 +1,53 @@
+<script>
+
+if (window.layoutTestController) {
+ layoutTestController.waitUntilDone();
+ layoutTestController.dumpAsText();
+}
+
+function loaded() {
+ // If the garbage collection causes the image load to stop and therefore causes the load event to fire on the main frame, we failed.
+ alert("FAIL: The load event fired");
+
+ if (window.layoutTestController)
+ layoutTestController.notifyDone();
+}
+
+</script>
+<body _onload_="loaded();">
+
+This has an object element representing an image. That object element is wrapped in a div. It removes the div, forces garbage collection, and makes sure that the window load event does not fire. It also makes sure there is no crash.<br>
+<div id="thediv">
+<object type="image/gif" data=""
+</object>
+</div>
+</body>
+<script>
+
+function finished() {
+ window.stop()
+ if (window.layoutTestController)
+ layoutTestController.notifyDone();
+}
+
+function forceGC() {
+ if (this.GCController)
+ GCController.collect();
+ else {
+ for (var i = 0; i < 10000; ++i) // Allocate a sufficient number of objects to force a GC.
+ ({});
+ }
+
+ setTimeout("finished();", 0);
+}
+
+function removeTheDiv() {
+ var element = window.document.getElementById("thediv");
+ element.parentNode.removeChild(element);
+ element = null;
+ setTimeout("forceGC();", 0);
+}
+
+setTimeout("removeTheDiv();", 0);
+
+</script>
Copied: trunk/LayoutTests/http/tests/misc/resources/slowimage.php (from rev 120137, trunk/LayoutTests/http/tests/loading/resources/slowimage.php) (0 => 120138)
--- trunk/LayoutTests/http/tests/misc/resources/slowimage.php (rev 0)
+++ trunk/LayoutTests/http/tests/misc/resources/slowimage.php 2012-06-12 23:40:04 UTC (rev 120138)
@@ -0,0 +1,5 @@
+<?php
+sleep(30);
+header('Cache-Control: no-cache, must-revalidate');
+header('Location: data:image/gif;base64,R0lGODlhAQABAJAAAMjIyAAAACwAAAAAAQABAAACAgQBADs%3D');
+?>
Copied: trunk/LayoutTests/http/tests/misc/svg-image-load-outlives-gc-without-crashing-expected.txt (from rev 120137, trunk/LayoutTests/http/tests/loading/svg-image-load-outlives-gc-without-crashing-expected.txt) (0 => 120138)
--- trunk/LayoutTests/http/tests/misc/svg-image-load-outlives-gc-without-crashing-expected.txt (rev 0)
+++ trunk/LayoutTests/http/tests/misc/svg-image-load-outlives-gc-without-crashing-expected.txt 2012-06-12 23:40:04 UTC (rev 120138)
@@ -0,0 +1,2 @@
+This has an svg element that contains an svg image element. That svg element is wrapped in a div. It removes the div, forces garbage collection, and makes sure that the window load event does not fire. It also makes sure there is no crash.
+
Copied: trunk/LayoutTests/http/tests/misc/svg-image-load-outlives-gc-without-crashing.html (from rev 120137, trunk/LayoutTests/http/tests/loading/svg-image-load-outlives-gc-without-crashing.html) (0 => 120138)
--- trunk/LayoutTests/http/tests/misc/svg-image-load-outlives-gc-without-crashing.html (rev 0)
+++ trunk/LayoutTests/http/tests/misc/svg-image-load-outlives-gc-without-crashing.html 2012-06-12 23:40:04 UTC (rev 120138)
@@ -0,0 +1,54 @@
+<script>
+
+if (window.layoutTestController) {
+ layoutTestController.waitUntilDone();
+ layoutTestController.dumpAsText();
+}
+
+function loaded() {
+ // If the garbage collection causes the image load to stop and therefore causes the load event to fire on the main frame, we failed.
+ alert("FAIL: The load event fired");
+
+ if (window.layoutTestController)
+ layoutTestController.notifyDone();
+}
+
+</script>
+<body _onload_="loaded();">
+
+This has an svg element that contains an svg image element. That svg element is wrapped in a div. It removes the div, forces garbage collection, and makes sure that the window load event does not fire. It also makes sure there is no crash.<br>
+<div id="thediv">
+<svg>
+<image xlink:href="" />
+</svg>
+</div>
+</body>
+<script>
+
+function finished() {
+ window.stop()
+ if (window.layoutTestController)
+ layoutTestController.notifyDone();
+}
+
+function forceGC() {
+ if (this.GCController)
+ GCController.collect();
+ else {
+ for (var i = 0; i < 10000; ++i) // Allocate a sufficient number of objects to force a GC.
+ ({});
+ }
+
+ setTimeout("finished();", 0);
+}
+
+function removeTheDiv() {
+ var element = window.document.getElementById("thediv");
+ element.parentNode.removeChild(element);
+ element = null;
+ setTimeout("forceGC();", 0);
+}
+
+setTimeout("removeTheDiv();", 0);
+
+</script>
Copied: trunk/LayoutTests/http/tests/misc/video-poster-image-load-outlives-gc-without-crashing-expected.txt (from rev 120137, trunk/LayoutTests/http/tests/loading/video-poster-image-load-outlives-gc-without-crashing-expected.txt) (0 => 120138)
--- trunk/LayoutTests/http/tests/misc/video-poster-image-load-outlives-gc-without-crashing-expected.txt (rev 0)
+++ trunk/LayoutTests/http/tests/misc/video-poster-image-load-outlives-gc-without-crashing-expected.txt 2012-06-12 23:40:04 UTC (rev 120138)
@@ -0,0 +1,2 @@
+This has a video element with an image for its poster frame. That video element is wrapped in a div. It removes the div, forces garbage collection, and makes sure that the window load event does not fire. It also makes sure there is no crash.
+
Copied: trunk/LayoutTests/http/tests/misc/video-poster-image-load-outlives-gc-without-crashing.html (from rev 120137, trunk/LayoutTests/http/tests/loading/video-poster-image-load-outlives-gc-without-crashing.html) (0 => 120138)
--- trunk/LayoutTests/http/tests/misc/video-poster-image-load-outlives-gc-without-crashing.html (rev 0)
+++ trunk/LayoutTests/http/tests/misc/video-poster-image-load-outlives-gc-without-crashing.html 2012-06-12 23:40:04 UTC (rev 120138)
@@ -0,0 +1,53 @@
+<script>
+
+if (window.layoutTestController) {
+ layoutTestController.waitUntilDone();
+ layoutTestController.dumpAsText();
+}
+
+function loaded() {
+ // If the garbage collection causes the image load to stop and therefore causes the load event to fire on the main frame, we failed.
+ alert("FAIL: The load event fired");
+
+ if (window.layoutTestController)
+ layoutTestController.notifyDone();
+}
+
+</script>
+<body _onload_="loaded();">
+
+This has a video element with an image for its poster frame. That video element is wrapped in a div. It removes the div, forces garbage collection, and makes sure that the window load event does not fire. It also makes sure there is no crash.<br>
+<div id="thediv">
+<video poster="resources/slowimage.php">
+</video>
+</div>
+</body>
+<script>
+
+function finished() {
+ window.stop()
+ if (window.layoutTestController)
+ layoutTestController.notifyDone();
+}
+
+function forceGC() {
+ if (this.GCController)
+ GCController.collect();
+ else {
+ for (var i = 0; i < 10000; ++i) // Allocate a sufficient number of objects to force a GC.
+ ({});
+ }
+
+ setTimeout("finished();", 0);
+}
+
+function removeTheDiv() {
+ var element = window.document.getElementById("thediv");
+ element.parentNode.removeChild(element);
+ element = null;
+ setTimeout("forceGC();", 0);
+}
+
+setTimeout("removeTheDiv();", 0);
+
+</script>