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

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

Issue 2751143003: Move FrameFetchContext::dispatchDidLoadResourceFromMemoryCache logic into ResourceFetcher (Closed)
Patch Set: addressed comments 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 347855020217e6cc2a729bdee30dadeb5848f728..69b6d57637b078222a9683b5498623af263a940a 100644
--- a/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp
+++ b/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp
@@ -301,20 +301,19 @@ static const int kMaxValidatedURLsSize = 10000;
void ResourceFetcher::requestLoadStarted(unsigned long identifier,
Resource* resource,
const FetchRequest& request,
- ResourceLoadStartType type,
+ RevalidationPolicy policy,
bool isStaticData) {
- if (type == ResourceLoadingFromCache &&
- resource->getStatus() == ResourceStatus::Cached &&
+ if (policy == Use && 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.resourceRequest());
}
if (isStaticData)
return;
- if (type == ResourceLoadingFromCache && !resource->stillNeedsLoad() &&
+ if (policy == Use && !resource->stillNeedsLoad() &&
!m_validatedURLs.contains(request.resourceRequest().url())) {
// Resources loaded from memory cache should be reported the first time
// they're used.
@@ -335,6 +334,30 @@ void ResourceFetcher::requestLoadStarted(unsigned long identifier,
m_validatedURLs.insert(request.resourceRequest().url());
}
+void ResourceFetcher::didLoadResourceFromMemoryCache(
+ unsigned long identifier,
+ Resource* resource,
+ const ResourceRequest& originalResourceRequest) {
+ ResourceRequest resourceRequest(resource->url());
+ resourceRequest.setFrameType(originalResourceRequest.frameType());
+ resourceRequest.setRequestContext(originalResourceRequest.requestContext());
+ context().dispatchDidLoadResourceFromMemoryCache(identifier, resourceRequest,
+ resource->response());
+ context().dispatchWillSendRequest(identifier, resourceRequest,
+ ResourceResponse() /* redirects */,
+ resource->options().initiatorInfo);
+ context().dispatchDidReceiveResponse(
+ identifier, resource->response(), resourceRequest.frameType(),
+ resourceRequest.requestContext(), resource,
+ FetchContext::ResourceResponseType::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());
@@ -618,10 +641,7 @@ 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, isStaticData);
m_documentResources.set(
MemoryCache::removeFragmentIdentifierIfNeeded(request.url()), resource);
@@ -1501,8 +1521,7 @@ void ResourceFetcher::emulateLoadStartedForInspector(
resource->lastResourceRequest().url(), request.options(),
SecurityViolationReportingPolicy::Report,
request.getOriginRestriction());
- requestLoadStarted(resource->identifier(), resource, request,
- ResourceLoadingFromCache);
+ requestLoadStarted(resource->identifier(), resource, request, Use);
}
ResourceFetcher::DeadResourceStatsRecorder::DeadResourceStatsRecorder()

Powered by Google App Engine
This is Rietveld 408576698