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