Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(416)

Unified Diff: third_party/WebKit/Source/core/inspector/InspectorNetworkAgent.cpp

Issue 2519893002: Stop dispatching encoded-data-length on each data chunk arrival (Closed)
Patch Set: fix Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/inspector/InspectorNetworkAgent.cpp
diff --git a/third_party/WebKit/Source/core/inspector/InspectorNetworkAgent.cpp b/third_party/WebKit/Source/core/inspector/InspectorNetworkAgent.cpp
index 7a8cae8fb94cd591574bea7c0d7262addc5b0431..1526e0512007fa109a9cbb99004fc9afcb473adf 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorNetworkAgent.cpp
+++ b/third_party/WebKit/Source/core/inspector/InspectorNetworkAgent.cpp
@@ -725,7 +725,7 @@ void InspectorNetworkAgent::didReceiveResourceResponse(
// following didReceiveResponse as there will be no calls to didReceiveData
// from the network stack.
if (isNotModified && cachedResource && cachedResource->encodedSize())
- didReceiveData(frame, identifier, 0, cachedResource->encodedSize(), 0);
+ didReceiveData(frame, identifier, 0, cachedResource->encodedSize());
}
static bool isErrorStatusCode(int statusCode) {
@@ -735,8 +735,7 @@ static bool isErrorStatusCode(int statusCode) {
void InspectorNetworkAgent::didReceiveData(LocalFrame*,
unsigned long identifier,
const char* data,
- int dataLength,
- int encodedDataLength) {
+ int dataLength) {
String requestId = IdentifiersFactory::requestId(identifier);
if (data) {
@@ -751,7 +750,7 @@ void InspectorNetworkAgent::didReceiveData(LocalFrame*,
}
frontend()->dataReceived(requestId, monotonicallyIncreasingTime(), dataLength,
- encodedDataLength);
+ 0);
dgozman 2016/11/22 17:54:13 This is a regression - when large request is proce
yhirano 2016/11/29 13:55:06 Yes, this CL changes the behavior. Is the notifica
}
void InspectorNetworkAgent::didFinishLoading(unsigned long identifier,
@@ -760,12 +759,20 @@ void InspectorNetworkAgent::didFinishLoading(unsigned long identifier,
String requestId = IdentifiersFactory::requestId(identifier);
NetworkResourcesData::ResourceData const* resourceData =
m_resourcesData->data(requestId);
- if (resourceData &&
- (!resourceData->cachedResource() ||
- resourceData->cachedResource()->getDataBufferingPolicy() ==
- DoNotBufferData ||
- isErrorStatusCode(resourceData->httpStatusCode()))) {
- m_resourcesData->maybeAddResourceData(requestId, "", 0);
+ if (resourceData) {
+ if (!resourceData->cachedResource() ||
+ resourceData->cachedResource()->getDataBufferingPolicy() ==
+ DoNotBufferData ||
+ isErrorStatusCode(resourceData->httpStatusCode())) {
+ m_resourcesData->maybeAddResourceData(requestId, "", 0);
+ }
+ if (encodedDataLength != resourceData->rawHeaderSize() &&
+ encodedDataLength != -1) {
+ // Dispatch a dataReceived event to update |encodedDataLength|.
+ frontend()->dataReceived(
+ requestId, monotonicallyIncreasingTime(), 0,
+ encodedDataLength - std::max(resourceData->rawHeaderSize(), 0));
+ }
}
m_resourcesData->maybeDecodeDataToContent(requestId);
@@ -788,9 +795,20 @@ void InspectorNetworkAgent::didReceiveCORSRedirectResponse(
}
void InspectorNetworkAgent::didFailLoading(unsigned long identifier,
- const ResourceError& error) {
+ const ResourceError& error,
+ int64_t encodedDataLength) {
String requestId = IdentifiersFactory::requestId(identifier);
bool canceled = error.isCancellation();
+ NetworkResourcesData::ResourceData const* resourceData =
+ m_resourcesData->data(requestId);
+ if (resourceData && encodedDataLength != resourceData->rawHeaderSize() &&
+ encodedDataLength != -1) {
+ // Dispatch a dataReceived event to update |encodedDataLength|.
+ frontend()->dataReceived(
+ requestId, monotonicallyIncreasingTime(), 0,
+ encodedDataLength - std::max(resourceData->rawHeaderSize(), 0));
+ }
+
frontend()->loadingFailed(requestId, monotonicallyIncreasingTime(),
InspectorPageAgent::resourceTypeJson(
m_resourcesData->resourceType(requestId)),

Powered by Google App Engine
This is Rietveld 408576698