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 Page;
|
||||||
class SecurityOrigin;
|
class SecurityOrigin;
|
||||||
diff --git a/Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp b/Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp
|
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
|
--- a/Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp
|
||||||
+++ b/Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp
|
+++ b/Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp
|
||||||
@@ -44,6 +44,7 @@
|
@@ -44,6 +44,7 @@
|
||||||
|
|
@ -2660,7 +2660,19 @@ index 1ccc5f5de274bd263c8bec5c72fe417ea99534fd..5dac8d209b4d2f19eee3471ba4a3cd53
|
||||||
}
|
}
|
||||||
|
|
||||||
bool InspectorNetworkAgent::shouldInterceptRequest(const ResourceRequest& request)
|
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.setHTTPHeaderFields(WTFMove(explicitHeaders));
|
||||||
response.setHTTPHeaderField(HTTPHeaderName::ContentType, response.mimeType());
|
response.setHTTPHeaderField(HTTPHeaderName::ContentType, response.mimeType());
|
||||||
loader->didReceiveResponse(response, [loader, buffer = data.releaseNonNull()]() mutable {
|
loader->didReceiveResponse(response, [loader, buffer = data.releaseNonNull()]() mutable {
|
||||||
|
|
@ -2669,7 +2681,7 @@ index 1ccc5f5de274bd263c8bec5c72fe417ea99534fd..5dac8d209b4d2f19eee3471ba4a3cd53
|
||||||
if (buffer->size())
|
if (buffer->size())
|
||||||
loader->didReceiveBuffer(WTFMove(buffer), buffer->size(), DataPayloadWholeResource);
|
loader->didReceiveBuffer(WTFMove(buffer), buffer->size(), DataPayloadWholeResource);
|
||||||
loader->didFinishLoading(NetworkLoadMetrics());
|
loader->didFinishLoading(NetworkLoadMetrics());
|
||||||
@@ -1335,6 +1344,11 @@ void InspectorNetworkAgent::interceptRequestWithError(ErrorString& errorString,
|
@@ -1335,6 +1349,11 @@ void InspectorNetworkAgent::interceptRequestWithError(ErrorString& errorString,
|
||||||
loader.didFail(error);
|
loader.didFail(error);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -2681,7 +2693,7 @@ index 1ccc5f5de274bd263c8bec5c72fe417ea99534fd..5dac8d209b4d2f19eee3471ba4a3cd53
|
||||||
bool InspectorNetworkAgent::shouldTreatAsText(const String& mimeType)
|
bool InspectorNetworkAgent::shouldTreatAsText(const String& mimeType)
|
||||||
{
|
{
|
||||||
return startsWithLettersIgnoringASCIICase(mimeType, "text/")
|
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;
|
return WTF::nullopt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue