Title: [242723] trunk/Source/WebKit
Revision
242723
Author
[email protected]
Date
2019-03-11 12:07:38 -0700 (Mon, 11 Mar 2019)

Log Message

REGRESSION: ( r240978-r240985 ) [ iOS Release ] Layout Test imported/w3c/web-platform-tests/xhr/send-redirect-post-upload.htm is crashing
https://bugs.webkit.org/show_bug.cgi?id=194523

Patch by Alex Christensen <[email protected]> on 2019-03-11
Reviewed by Alexey Proskuryakov.

Attempt another workaround to prevent crashes.

* NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
* NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTaskCocoa::~NetworkDataTaskCocoa):
* NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:task:needNewBodyStream:]):

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (242722 => 242723)


--- trunk/Source/WebKit/ChangeLog	2019-03-11 18:59:23 UTC (rev 242722)
+++ trunk/Source/WebKit/ChangeLog	2019-03-11 19:07:38 UTC (rev 242723)
@@ -1,3 +1,18 @@
+2019-03-11  Alex Christensen  <[email protected]>
+
+        REGRESSION: ( r240978-r240985 ) [ iOS Release ] Layout Test imported/w3c/web-platform-tests/xhr/send-redirect-post-upload.htm is crashing
+        https://bugs.webkit.org/show_bug.cgi?id=194523
+
+        Reviewed by Alexey Proskuryakov.
+
+        Attempt another workaround to prevent crashes.
+
+        * NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
+        * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
+        (WebKit::NetworkDataTaskCocoa::~NetworkDataTaskCocoa):
+        * NetworkProcess/cocoa/NetworkSessionCocoa.mm:
+        (-[WKNetworkSessionDelegate URLSession:task:needNewBodyStream:]):
+
 2019-03-11  Ryan Haddad  <[email protected]>
 
         Unreviewed, rolling out r242688, r242643, r242624.

Modified: trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.h (242722 => 242723)


--- trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.h	2019-03-11 18:59:23 UTC (rev 242722)
+++ trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.h	2019-03-11 19:07:38 UTC (rev 242723)
@@ -83,8 +83,6 @@
 
     String description() const override;
 
-    void setShouldExtendTaskLifetime(bool shouldExtendTaskLifetime) { m_shouldExtendTaskLifetime = shouldExtendTaskLifetime; }
-
 private:
     NetworkDataTaskCocoa(NetworkSession&, NetworkDataTaskClient&, const WebCore::ResourceRequest&, uint64_t frameID, uint64_t pageID, WebCore::StoredCredentialsPolicy, WebCore::ContentSniffingPolicy, WebCore::ContentEncodingSniffingPolicy, bool shouldClearReferrerOnHTTPSToHTTPRedirect, PreconnectOnly, bool dataTaskIsForMainFrameNavigation, Optional<NetworkActivityTracker>);
 
@@ -106,9 +104,6 @@
     uint64_t m_frameID;
     uint64_t m_pageID;
 
-    // FIXME: This is only needed until rdar://problem/28233746 is fixed.
-    bool m_shouldExtendTaskLifetime { false };
-
 #if ENABLE(RESOURCE_LOAD_STATISTICS)
     bool m_hasBeenSetToUseStatelessCookieStorage { false };
 #endif

Modified: trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm (242722 => 242723)


--- trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm	2019-03-11 18:59:23 UTC (rev 242722)
+++ trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm	2019-03-11 19:07:38 UTC (rev 242723)
@@ -261,9 +261,6 @@
         ASSERT(cocoaSession.m_dataTaskMapWithoutState.get([m_task taskIdentifier]) == this);
         cocoaSession.m_dataTaskMapWithoutState.remove([m_task taskIdentifier]);
     }
-    
-    if (m_shouldExtendTaskLifetime)
-        RunLoop::main().dispatch([task = WTFMove(m_task)] { });
 }
 
 void NetworkDataTaskCocoa::restrictRequestReferrerToOriginIfNeeded(WebCore::ResourceRequest& request, bool shouldBlockCookies)

Modified: trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm (242722 => 242723)


--- trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm	2019-03-11 18:59:23 UTC (rev 242722)
+++ trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm	2019-03-11 19:07:38 UTC (rev 242723)
@@ -383,8 +383,10 @@
         return;
     }
 
-    networkDataTask->setShouldExtendTaskLifetime(true);
-    completionHandler(WebCore::createHTTPBodyNSInputStream(*body).get());
+    // FIXME: Call the completionHandler immediately once rdar://problem/28233746 is fixed.
+    RunLoop::main().dispatch([body = makeRef(*body), completionHandler = makeBlockPtr(completionHandler)] {
+        completionHandler(WebCore::createHTTPBodyNSInputStream(body.get()).get());
+    });
 }
 
 #if HAVE(CFNETWORK_WITH_IGNORE_HSTS) && ENABLE(RESOURCE_LOAD_STATISTICS)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to