Title: [107320] branches/chromium/1025

Diff

Copied: branches/chromium/1025/LayoutTests/http/tests/appcache/deferred-events-delete-while-raising-timer-expected.txt (from rev 107023, trunk/LayoutTests/http/tests/appcache/deferred-events-delete-while-raising-timer-expected.txt) (0 => 107320)


--- branches/chromium/1025/LayoutTests/http/tests/appcache/deferred-events-delete-while-raising-timer-expected.txt	                        (rev 0)
+++ branches/chromium/1025/LayoutTests/http/tests/appcache/deferred-events-delete-while-raising-timer-expected.txt	2012-02-10 01:17:24 UTC (rev 107320)
@@ -0,0 +1,4 @@
+Test the destruction of an iframe while deferred events are being raised does not crash the system.
+
+SUCCESS
+

Copied: branches/chromium/1025/LayoutTests/http/tests/appcache/deferred-events-delete-while-raising-timer.html (from rev 107023, trunk/LayoutTests/http/tests/appcache/deferred-events-delete-while-raising-timer.html) (0 => 107320)


--- branches/chromium/1025/LayoutTests/http/tests/appcache/deferred-events-delete-while-raising-timer.html	                        (rev 0)
+++ branches/chromium/1025/LayoutTests/http/tests/appcache/deferred-events-delete-while-raising-timer.html	2012-02-10 01:17:24 UTC (rev 107320)
@@ -0,0 +1,21 @@
+<html>
+<script>
+if (window.layoutTestController) {
+  layoutTestController.dumpAsText();
+  layoutTestController.waitUntilDone();
+}
+
+window._onmessage_ = function() {
+  document.getElementById('result').innerHTML = "SUCCESS";
+  if (window.layoutTestController)
+    layoutTestController.notifyDone();
+}
+
+function killChildFrame() {
+  document.body.removeChild(document.getElementsByTagName("iframe")[0]);
+}
+</script>
+<p>Test the destruction of an iframe while deferred events are being raised does not crash the system.</p>
+<div id="result">FAILURE</div>
+<iframe src=""
+</html>

Copied: branches/chromium/1025/LayoutTests/http/tests/appcache/resources/deferred-events-delete-while-raising-timer-1.html (from rev 107023, trunk/LayoutTests/http/tests/appcache/resources/deferred-events-delete-while-raising-timer-1.html) (0 => 107320)


--- branches/chromium/1025/LayoutTests/http/tests/appcache/resources/deferred-events-delete-while-raising-timer-1.html	                        (rev 0)
+++ branches/chromium/1025/LayoutTests/http/tests/appcache/resources/deferred-events-delete-while-raising-timer-1.html	2012-02-10 01:17:24 UTC (rev 107320)
@@ -0,0 +1,14 @@
+<html manifest="THIS_FILE_DOES_NOT_EXIST.manifest">
+<script src=""
+<script>
+window.applicationCache._onchecking_ = function() {
+  parent.postMessage("hello", "*");
+  parent.killChildFrame();
+}
+
+function killChildFrame() {
+  document.body.removeChild(document.getElementsByTagName("iframe")[0]);
+}
+</script>
+<iframe src=""
+</html>

Copied: branches/chromium/1025/LayoutTests/http/tests/appcache/resources/deferred-events-delete-while-raising-timer-2.html (from rev 107023, trunk/LayoutTests/http/tests/appcache/resources/deferred-events-delete-while-raising-timer-2.html) (0 => 107320)


--- branches/chromium/1025/LayoutTests/http/tests/appcache/resources/deferred-events-delete-while-raising-timer-2.html	                        (rev 0)
+++ branches/chromium/1025/LayoutTests/http/tests/appcache/resources/deferred-events-delete-while-raising-timer-2.html	2012-02-10 01:17:24 UTC (rev 107320)
@@ -0,0 +1,8 @@
+<html manifest="THIS_FILE_DOES_NOT_EXIST.manifest">
+<script src=""
+<script>
+window.applicationCache._onchecking_ = function() {
+  parent.killChildFrame();
+}
+</script>
+</html>

Modified: branches/chromium/1025/Source/WebCore/loader/FrameLoader.cpp (107319 => 107320)


--- branches/chromium/1025/Source/WebCore/loader/FrameLoader.cpp	2012-02-10 01:17:23 UTC (rev 107319)
+++ branches/chromium/1025/Source/WebCore/loader/FrameLoader.cpp	2012-02-10 01:17:24 UTC (rev 107320)
@@ -750,6 +750,8 @@
 
 void FrameLoader::checkTimerFired(Timer<FrameLoader>*)
 {
+    RefPtr<Frame> protect(m_frame);
+
     if (Page* page = m_frame->page()) {
         if (page->defersLoading())
             return;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to