Title: [231713] trunk
- Revision
- 231713
- Author
- [email protected]
- Date
- 2018-05-11 12:05:36 -0700 (Fri, 11 May 2018)
Log Message
LinkLoader fails to remove CachedResourceClient in some cases
https://bugs.webkit.org/show_bug.cgi?id=185553
<rdar://problem/36879656>
Reviewed by Geoffrey Garen.
Source/WebCore:
Test: http/tests/preload/link-preload-client-remove.html
* loader/LinkLoader.cpp:
(WebCore::LinkLoader::loadLink):
If there is a link preload already in progress, we fail to clear the client for the ongoing load.
This may leave the CachedResource client map in a bad state.
LayoutTests:
* http/tests/preload/link-preload-client-remove-expected.txt: Added.
* http/tests/preload/link-preload-client-remove.html: Added.
Modified Paths
Added Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (231712 => 231713)
--- trunk/LayoutTests/ChangeLog 2018-05-11 18:59:37 UTC (rev 231712)
+++ trunk/LayoutTests/ChangeLog 2018-05-11 19:05:36 UTC (rev 231713)
@@ -1,3 +1,14 @@
+2018-05-11 Antti Koivisto <[email protected]>
+
+ LinkLoader fails to remove CachedResourceClient in some cases
+ https://bugs.webkit.org/show_bug.cgi?id=185553
+ <rdar://problem/36879656>
+
+ Reviewed by Geoffrey Garen.
+
+ * http/tests/preload/link-preload-client-remove-expected.txt: Added.
+ * http/tests/preload/link-preload-client-remove.html: Added.
+
2018-05-11 Charles Vazac <[email protected]>
Runtime feature flag for Server-Timing
Added: trunk/LayoutTests/http/tests/preload/link-preload-client-remove-expected.txt (0 => 231713)
--- trunk/LayoutTests/http/tests/preload/link-preload-client-remove-expected.txt (rev 0)
+++ trunk/LayoutTests/http/tests/preload/link-preload-client-remove-expected.txt 2018-05-11 19:05:36 UTC (rev 231713)
@@ -0,0 +1 @@
+Test that restarting link preload doesn't assert or crash.
Added: trunk/LayoutTests/http/tests/preload/link-preload-client-remove.html (0 => 231713)
--- trunk/LayoutTests/http/tests/preload/link-preload-client-remove.html (rev 0)
+++ trunk/LayoutTests/http/tests/preload/link-preload-client-remove.html 2018-05-11 19:05:36 UTC (rev 231713)
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<script>
+if (window.testRunner) {
+ testRunner.dumpAsText()
+ testRunner.waitUntilDone();
+ window.addEventListener("load", function() {
+ testRunner.notifyDone();
+ });
+}
+</script>
+<link id=link rel=preload href="" as=fetch>
+<body>
+Test that restarting link preload doesn't assert or crash.
+</body>
+<script>
+link.setAttribute("rel", "preload");
+</script>
Modified: trunk/Source/WebCore/ChangeLog (231712 => 231713)
--- trunk/Source/WebCore/ChangeLog 2018-05-11 18:59:37 UTC (rev 231712)
+++ trunk/Source/WebCore/ChangeLog 2018-05-11 19:05:36 UTC (rev 231713)
@@ -1,3 +1,19 @@
+2018-05-11 Antti Koivisto <[email protected]>
+
+ LinkLoader fails to remove CachedResourceClient in some cases
+ https://bugs.webkit.org/show_bug.cgi?id=185553
+ <rdar://problem/36879656>
+
+ Reviewed by Geoffrey Garen.
+
+ Test: http/tests/preload/link-preload-client-remove.html
+
+ * loader/LinkLoader.cpp:
+ (WebCore::LinkLoader::loadLink):
+
+ If there is a link preload already in progress, we fail to clear the client for the ongoing load.
+ This may leave the CachedResource client map in a bad state.
+
2018-05-11 Charles Vazac <[email protected]>
Runtime feature flag for Server-Timing
Modified: trunk/Source/WebCore/loader/LinkLoader.cpp (231712 => 231713)
--- trunk/Source/WebCore/loader/LinkLoader.cpp 2018-05-11 18:59:37 UTC (rev 231712)
+++ trunk/Source/WebCore/loader/LinkLoader.cpp 2018-05-11 19:05:36 UTC (rev 231713)
@@ -301,10 +301,10 @@
if (m_client.shouldLoadLink()) {
auto resourceClient = preloadIfNeeded(relAttribute, href, document, as, media, mimeType, crossOrigin, this);
+ if (m_preloadResourceClient)
+ m_preloadResourceClient->clear();
if (resourceClient)
m_preloadResourceClient = WTFMove(resourceClient);
- else if (m_preloadResourceClient)
- m_preloadResourceClient->clear();
}
prefetchIfNeeded(relAttribute, href, document);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes