browser(webkit): abort interception if loader reached termial state (#2776)
This commit is contained in:
parent
55a07dbf4d
commit
c6df8fd507
|
|
@ -1 +1 @@
|
|||
1294
|
||||
1295
|
||||
|
|
|
|||
|
|
@ -2614,7 +2614,7 @@ index ddbb5d5347f3beabe3cfab201d6838c896d21e39..25f1798cad5a4ef135a27d3bd5146798
|
|||
class Page;
|
||||
class SecurityOrigin;
|
||||
diff --git a/Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp b/Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp
|
||||
index 1ccc5f5de274bd263c8bec5c72fe417ea99534fd..5dac8d209b4d2f19eee3471ba4a3cd530a691b65 100644
|
||||
index 1ccc5f5de274bd263c8bec5c72fe417ea99534fd..f1c538d44e1a33dc4d5159007392c765cc3920e7 100644
|
||||
--- a/Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp
|
||||
+++ b/Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp
|
||||
@@ -44,6 +44,7 @@
|
||||
|
|
@ -2660,7 +2660,19 @@ index 1ccc5f5de274bd263c8bec5c72fe417ea99534fd..5dac8d209b4d2f19eee3471ba4a3cd53
|
|||
}
|
||||
|
||||
bool InspectorNetworkAgent::shouldInterceptRequest(const ResourceRequest& request)
|
||||
@@ -1291,6 +1298,8 @@ void InspectorNetworkAgent::interceptRequestWithResponse(ErrorString& errorStrin
|
||||
@@ -1179,6 +1186,11 @@ void InspectorNetworkAgent::interceptWithRequest(ErrorString& errorString, const
|
||||
}
|
||||
|
||||
auto& loader = *pendingRequest->m_loader;
|
||||
+ if (loader.reachedTerminalState()) {
|
||||
+ errorString = "Unable to intercept request, it has already been processed"_s;
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
ResourceRequest request = loader.request();
|
||||
if (url)
|
||||
request.setURL(URL({ }, *url));
|
||||
@@ -1291,6 +1303,8 @@ void InspectorNetworkAgent::interceptRequestWithResponse(ErrorString& errorStrin
|
||||
response.setHTTPHeaderFields(WTFMove(explicitHeaders));
|
||||
response.setHTTPHeaderField(HTTPHeaderName::ContentType, response.mimeType());
|
||||
loader->didReceiveResponse(response, [loader, buffer = data.releaseNonNull()]() mutable {
|
||||
|
|
@ -2669,7 +2681,7 @@ index 1ccc5f5de274bd263c8bec5c72fe417ea99534fd..5dac8d209b4d2f19eee3471ba4a3cd53
|
|||
if (buffer->size())
|
||||
loader->didReceiveBuffer(WTFMove(buffer), buffer->size(), DataPayloadWholeResource);
|
||||
loader->didFinishLoading(NetworkLoadMetrics());
|
||||
@@ -1335,6 +1344,11 @@ void InspectorNetworkAgent::interceptRequestWithError(ErrorString& errorString,
|
||||
@@ -1335,6 +1349,11 @@ void InspectorNetworkAgent::interceptRequestWithError(ErrorString& errorString,
|
||||
loader.didFail(error);
|
||||
}
|
||||
|
||||
|
|
@ -2681,7 +2693,7 @@ index 1ccc5f5de274bd263c8bec5c72fe417ea99534fd..5dac8d209b4d2f19eee3471ba4a3cd53
|
|||
bool InspectorNetworkAgent::shouldTreatAsText(const String& mimeType)
|
||||
{
|
||||
return startsWithLettersIgnoringASCIICase(mimeType, "text/")
|
||||
@@ -1376,6 +1390,12 @@ Optional<String> InspectorNetworkAgent::textContentForCachedResource(CachedResou
|
||||
@@ -1376,6 +1395,12 @@ Optional<String> InspectorNetworkAgent::textContentForCachedResource(CachedResou
|
||||
return WTF::nullopt;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue