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

Unified Diff: third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp

Issue 2751143003: Move FrameFetchContext::dispatchDidLoadResourceFromMemoryCache logic into ResourceFetcher (Closed)
Patch Set: . Created 3 years, 9 months 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/platform/loader/fetch/ResourceFetcher.cpp
diff --git a/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp b/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp
index c9fb59c24c2d89ae18c2be77d7093e2e95be6a1f..522431b2c623d3c7f6599c4e15351aeaf9efb60f 100644
--- a/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp
+++ b/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp
@@ -297,18 +297,18 @@ void ResourceFetcher::requestLoadStarted(unsigned long identifier,
const FetchRequest& request,
ResourceLoadStartType type,
bool isStaticData) {
- if (type == ResourceLoadingFromCache &&
+ if (type == ResourceLoadStartType::kFromMemoryCache &&
resource->getStatus() == ResourceStatus::Cached &&
!m_validatedURLs.contains(resource->url())) {
- context().dispatchDidLoadResourceFromMemoryCache(
- identifier, resource, request.resourceRequest().frameType(),
- request.resourceRequest().requestContext());
+ // Loaded from MemoryCache.
+ didLoadResourceFromMemoryCache(identifier, resource, request);
}
if (isStaticData)
return;
- if (type == ResourceLoadingFromCache && !resource->stillNeedsLoad() &&
+ if (type == ResourceLoadStartType::kFromMemoryCache &&
+ !resource->stillNeedsLoad() &&
!m_validatedURLs.contains(request.resourceRequest().url())) {
// Resources loaded from memory cache should be reported the first time
// they're used.
@@ -329,6 +329,37 @@ void ResourceFetcher::requestLoadStarted(unsigned long identifier,
m_validatedURLs.insert(request.resourceRequest().url());
}
+void ResourceFetcher::didLoadResourceFromMemoryCache(
+ unsigned long identifier,
+ Resource* resource,
+ const FetchRequest& request) {
Nate Chapin 2017/03/22 19:02:02 Nit: take const ResourceRequest& instead of const
kinuko 2017/03/24 13:51:51 Done.
+ context().dispatchDidLoadResourceFromMemoryCache(
+ identifier, request.resourceRequest(), resource->response());
Nate Chapin 2017/03/22 19:02:02 We're sending a different ResoruceRequest for disp
kinuko 2017/03/24 13:51:51 Done.
+ {
+ // dispatchWillSendRequest can modify resourceRequest, while we don't
+ // really use the modified request here.
+ // TODO(https://crbug.com/632580): Avoid allowing dispatchWillSendRequest
+ // to modify requests.
+ ResourceRequest resourceRequest(resource->url());
+ resourceRequest.setFrameType(request.resourceRequest().frameType());
+ resourceRequest.setRequestContext(
+ request.resourceRequest().requestContext());
+ context().dispatchWillSendRequest(identifier, resourceRequest,
+ ResourceResponse() /* redirects */,
+ resource->options().initiatorInfo);
+ }
+ context().dispatchDidReceiveResponse(
+ identifier, resource->response(), request.resourceRequest().frameType(),
+ request.resourceRequest().requestContext(), resource,
+ ResourceLoadStartType::kFromMemoryCache);
+
+ if (resource->encodedSize() > 0)
+ context().dispatchDidReceiveData(identifier, 0, resource->encodedSize());
+
+ context().dispatchDidFinishLoading(identifier, 0, 0,
+ resource->response().decodedBodyLength());
+}
+
static std::unique_ptr<TracedValue> urlForTraceEvent(const KURL& url) {
std::unique_ptr<TracedValue> value = TracedValue::create();
value->setString("url", url.getString());
@@ -608,10 +639,10 @@ Resource* ResourceFetcher::requestResource(
// If only the fragment identifiers differ, it is the same resource.
DCHECK(equalIgnoringFragmentIdentifier(resource->url(), request.url()));
- requestLoadStarted(
- identifier, resource, request,
- policy == Use ? ResourceLoadingFromCache : ResourceLoadingFromNetwork,
- isStaticData);
+ requestLoadStarted(identifier, resource, request,
+ policy == Use ? ResourceLoadStartType::kFromMemoryCache
+ : ResourceLoadStartType::kNotFromMemoryCache,
+ isStaticData);
m_documentResources.set(
MemoryCache::removeFragmentIdentifierIfNeeded(request.url()), resource);
@@ -1502,7 +1533,7 @@ void ResourceFetcher::emulateLoadStartedForInspector(
SecurityViolationReportingPolicy::Report,
request.getOriginRestriction());
requestLoadStarted(resource->identifier(), resource, request,
- ResourceLoadingFromCache);
+ ResourceLoadStartType::kFromMemoryCache);
}
ResourceFetcher::DeadResourceStatsRecorder::DeadResourceStatsRecorder()

Powered by Google App Engine
This is Rietveld 408576698