Title: [212530] branches/safari-603-branch/Source/WebCore
Revision
212530
Author
matthew_han...@apple.com
Date
2017-02-16 21:28:18 -0800 (Thu, 16 Feb 2017)

Log Message

Merge r212330. rdar://problem/29899473

Modified Paths

Diff

Modified: branches/safari-603-branch/Source/WebCore/ChangeLog (212529 => 212530)


--- branches/safari-603-branch/Source/WebCore/ChangeLog	2017-02-17 05:28:16 UTC (rev 212529)
+++ branches/safari-603-branch/Source/WebCore/ChangeLog	2017-02-17 05:28:18 UTC (rev 212530)
@@ -1,5 +1,21 @@
 2017-02-16  Matthew Hanson  <matthew_han...@apple.com>
 
+        Merge r212330. rdar://problem/29899473
+
+    2017-02-14  Brady Eidson  <beid...@apple.com>
+
+            Speculative fix for: Crash in DocumentThreadableLoader::redirectReceived.
+            <rdar://problem/29899473> and https://bugs.webkit.org/show_bug.cgi?id=168337
+
+            Reviewed by Geoffrey Garen.
+
+            No new tests (Unable to find a reproduction).
+
+            * loader/DocumentThreadableLoader.cpp:
+            (WebCore::DocumentThreadableLoader::loadRequest):
+
+2017-02-16  Matthew Hanson  <matthew_han...@apple.com>
+
         Merge r212316. rdar://problem/30504444
 
     2017-02-13  Dean Jackson  <d...@apple.com>

Modified: branches/safari-603-branch/Source/WebCore/loader/DocumentThreadableLoader.cpp (212529 => 212530)


--- branches/safari-603-branch/Source/WebCore/loader/DocumentThreadableLoader.cpp	2017-02-17 05:28:16 UTC (rev 212529)
+++ branches/safari-603-branch/Source/WebCore/loader/DocumentThreadableLoader.cpp	2017-02-17 05:28:18 UTC (rev 212530)
@@ -361,6 +361,8 @@
 
 void DocumentThreadableLoader::loadRequest(ResourceRequest&& request, SecurityCheckPolicy securityCheck)
 {
+    Ref<DocumentThreadableLoader> protectedThis(*this);
+
     // Any credential should have been removed from the cross-site requests.
     const URL& requestURL = request.url();
     m_options.securityCheck = securityCheck;
@@ -382,6 +384,11 @@
         newRequest.setOrigin(&securityOrigin());
 
         ASSERT(!m_resource);
+        if (m_resource) {
+            CachedResourceHandle<CachedRawResource> resource = std::exchange(m_resource, nullptr);
+            resource->removeClient(*this);
+        }
+
         // We create an URL here as the request will be moved in requestRawResource
         URL requestUrl = newRequest.resourceRequest().url();
         m_resource = m_document.cachedResourceLoader().requestRawResource(WTFMove(newRequest));
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to