Title: [242377] trunk/Source/WebKit
- Revision
- 242377
- Author
- [email protected]
- Date
- 2019-03-04 12:54:45 -0800 (Mon, 04 Mar 2019)
Log Message
Fix crashes when NetworkResourceLoader/NetworkLoadChecker are destroyed during HTTPS upgrade check
https://bugs.webkit.org/show_bug.cgi?id=195238
<rdar://problem/47598656>
Patch by Alex Christensen <[email protected]> on 2019-03-04
Reviewed by Chris Dumez.
* NetworkProcess/NetworkLoadChecker.cpp:
(WebKit::NetworkLoadChecker::checkRequest):
Modified Paths
Diff
Modified: trunk/Source/WebKit/ChangeLog (242376 => 242377)
--- trunk/Source/WebKit/ChangeLog 2019-03-04 20:39:33 UTC (rev 242376)
+++ trunk/Source/WebKit/ChangeLog 2019-03-04 20:54:45 UTC (rev 242377)
@@ -1,3 +1,14 @@
+2019-03-04 Alex Christensen <[email protected]>
+
+ Fix crashes when NetworkResourceLoader/NetworkLoadChecker are destroyed during HTTPS upgrade check
+ https://bugs.webkit.org/show_bug.cgi?id=195238
+ <rdar://problem/47598656>
+
+ Reviewed by Chris Dumez.
+
+ * NetworkProcess/NetworkLoadChecker.cpp:
+ (WebKit::NetworkLoadChecker::checkRequest):
+
2019-03-04 Brady Eidson <[email protected]>
Correctly handle sandbox extensions when the same WKWebView loads multiple file:// URLs.
Modified: trunk/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp (242376 => 242377)
--- trunk/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp 2019-03-04 20:39:33 UTC (rev 242376)
+++ trunk/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp 2019-03-04 20:54:45 UTC (rev 242377)
@@ -224,7 +224,9 @@
{
ResourceRequest originalRequest = request;
- applyHTTPSUpgradeIfNeeded(WTFMove(request), [this, client, handler = WTFMove(handler), originalRequest = WTFMove(originalRequest)](auto request) mutable {
+ applyHTTPSUpgradeIfNeeded(WTFMove(request), [this, weakThis = makeWeakPtr(*this), client, handler = WTFMove(handler), originalRequest = WTFMove(originalRequest)](auto request) mutable {
+ if (!weakThis)
+ return handler({ ResourceError { ResourceError::Type::Cancellation }});
if (auto* contentSecurityPolicy = this->contentSecurityPolicy()) {
if (this->isRedirected()) {
@@ -238,7 +240,7 @@
}
#if ENABLE(CONTENT_EXTENSIONS)
- this->processContentExtensionRulesForLoad(WTFMove(request), [this, handler = WTFMove(handler), originalRequest = WTFMove(originalRequest)](auto result) mutable {
+ this->processContentExtensionRulesForLoad(WTFMove(request), [this, weakThis = WTFMove(weakThis), handler = WTFMove(handler), originalRequest = WTFMove(originalRequest)](auto result) mutable {
if (!result.has_value()) {
ASSERT(result.error().isCancellation());
handler(WTFMove(result.error()));
@@ -249,6 +251,8 @@
return;
}
+ if (!weakThis)
+ return handler({ ResourceError { ResourceError::Type::Cancellation }});
this->continueCheckingRequestOrDoSyntheticRedirect(WTFMove(originalRequest), WTFMove(result.value().request), WTFMove(handler));
});
#else
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes