Title: [139389] branches/chromium/1364/Source
- Revision
- 139389
- Author
- cev...@google.com
- Date
- 2013-01-10 17:30:13 -0800 (Thu, 10 Jan 2013)
Log Message
Merge 138173
BUG=166627
Review URL: https://codereview.chromium.org/11828063
Modified Paths
Diff
Modified: branches/chromium/1364/Source/WebCore/loader/LinkLoader.cpp (139388 => 139389)
--- branches/chromium/1364/Source/WebCore/loader/LinkLoader.cpp 2013-01-11 01:27:52 UTC (rev 139388)
+++ branches/chromium/1364/Source/WebCore/loader/LinkLoader.cpp 2013-01-11 01:30:13 UTC (rev 139389)
@@ -63,6 +63,10 @@
{
if (m_cachedLinkResource)
m_cachedLinkResource->removeClient(this);
+#if ENABLE(LINK_PRERENDER)
+ if (m_prerenderHandle)
+ m_prerenderHandle->removeClient();
+#endif
}
void LinkLoader::linkLoadTimerFired(Timer<LinkLoader>* timer)
@@ -172,6 +176,7 @@
#if ENABLE(LINK_PRERENDER)
if (m_prerenderHandle) {
m_prerenderHandle->cancel();
+ m_prerenderHandle->removeClient();
m_prerenderHandle.clear();
}
#endif
Modified: branches/chromium/1364/Source/WebKit/chromium/tests/PrerenderingTest.cpp (139388 => 139389)
--- branches/chromium/1364/Source/WebKit/chromium/tests/PrerenderingTest.cpp 2013-01-11 01:27:52 UTC (rev 139388)
+++ branches/chromium/1364/Source/WebKit/chromium/tests/PrerenderingTest.cpp 2013-01-11 01:30:13 UTC (rev 139389)
@@ -437,4 +437,23 @@
webPrerender.didStartPrerender();
}
+TEST_F(PrerenderingTest, FastRemoveElement)
+{
+ initialize("http://www.foo.com/", "prerender/single_prerender.html");
+
+ WebPrerender webPrerender = prerendererClient()->releaseWebPrerender();
+ EXPECT_FALSE(webPrerender.isNull());
+
+ EXPECT_EQ(1u, prerenderingSupport()->addCount(webPrerender));
+ EXPECT_EQ(1u, prerenderingSupport()->totalCount());
+
+ // Race removing & starting the prerender against each other, as if the element was removed very quickly.
+ executeScript("removePrerender()");
+ EXPECT_FALSE(webPrerender.isNull());
+ webPrerender.didStartPrerender();
+
+ // The page should be totally disconnected from the Prerender at this point, so the console should not have updated.
+ EXPECT_EQ(0u, consoleLength());
+}
+
} // namespace
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes