Commit e627902b authored by japhet@chromium.org's avatar japhet@chromium.org

Merge a couple of memory cache hit notifications

Both dispatchDidLoadResourceFromMemoryCache() and
sendRemainingDelegateMessages() are only called when a cache
hit occurs. Combine their logic into dispatchDidLoadResourceFromMemoryCache().

BUG=

Review URL: https://codereview.chromium.org/1309533002

git-svn-id: svn://svn.chromium.org/blink/trunk@201017 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 326629b1
......@@ -66,7 +66,7 @@ void FetchContext::dispatchWillSendRequest(unsigned long, ResourceRequest&, cons
{
}
void FetchContext::dispatchDidLoadResourceFromMemoryCache(const ResourceRequest&, const ResourceResponse&)
void FetchContext::dispatchDidLoadResourceFromMemoryCache(const Resource*)
{
}
......@@ -90,10 +90,6 @@ void FetchContext::dispatchDidFail(unsigned long, const ResourceError&, bool)
{
}
void FetchContext::sendRemainingDelegateMessages(unsigned long, const ResourceResponse&, int)
{
}
void FetchContext::willStartLoadingResource(ResourceRequest&)
{
}
......
......@@ -74,13 +74,12 @@ public:
virtual void dispatchDidChangeResourcePriority(unsigned long identifier, ResourceLoadPriority, int intraPriorityValue);
virtual void dispatchWillSendRequest(unsigned long identifier, ResourceRequest&, const ResourceResponse& redirectResponse, const FetchInitiatorInfo& = FetchInitiatorInfo());
virtual void dispatchDidLoadResourceFromMemoryCache(const ResourceRequest&, const ResourceResponse&);
virtual void dispatchDidLoadResourceFromMemoryCache(const Resource*);
virtual void dispatchDidReceiveResponse(unsigned long identifier, const ResourceResponse&, ResourceLoader* = 0);
virtual void dispatchDidReceiveData(unsigned long identifier, const char* data, int dataLength, int encodedDataLength);
virtual void dispatchDidDownloadData(unsigned long identifier, int dataLength, int encodedDataLength);
virtual void dispatchDidFinishLoading(unsigned long identifier, double finishTime, int64_t encodedDataLength);
virtual void dispatchDidFail(unsigned long identifier, const ResourceError&, bool isInternalRequest);
virtual void sendRemainingDelegateMessages(unsigned long identifier, const ResourceResponse&, int dataLength);
virtual bool shouldLoadNewResource(Resource::Type) const { return false; }
virtual void willStartLoadingResource(ResourceRequest&);
......
......@@ -256,8 +256,8 @@ static const int kMaxValidatedURLsSize = 10000;
void ResourceFetcher::requestLoadStarted(Resource* resource, const FetchRequest& request, ResourceLoadStartType type, bool isStaticData)
{
if (type == ResourceLoadingFromCache)
notifyLoadedFromMemoryCache(resource);
if (type == ResourceLoadingFromCache && resource->status() == Resource::Cached && !m_validatedURLs.contains(resource->url()))
context().dispatchDidLoadResourceFromMemoryCache(resource);
if (isStaticData)
return;
......@@ -790,19 +790,6 @@ void ResourceFetcher::garbageCollectDocumentResources()
m_documentResources.removeAll(resourcesToDelete);
}
void ResourceFetcher::notifyLoadedFromMemoryCache(Resource* resource)
{
if (resource->status() != Resource::Cached || m_validatedURLs.contains(resource->url()))
return;
ResourceRequest request(resource->url());
unsigned long identifier = createUniqueIdentifier();
context().dispatchDidLoadResourceFromMemoryCache(request, resource->response());
// FIXME: If willSendRequest changes the request, we don't respect it.
willSendRequest(identifier, request, ResourceResponse(), resource->options().initiatorInfo);
context().sendRemainingDelegateMessages(identifier, resource->response(), resource->encodedSize());
}
int ResourceFetcher::requestCount() const
{
return m_loaders ? m_loaders->size() : 0;
......
......@@ -165,8 +165,6 @@ private:
static bool resourceNeedsLoad(Resource*, const FetchRequest&, RevalidationPolicy);
void notifyLoadedFromMemoryCache(Resource*);
void garbageCollectDocumentResourcesTimerFired(Timer<ResourceFetcher>*);
void resourceTimingReportTimerFired(Timer<ResourceFetcher>*);
......
......@@ -34,6 +34,7 @@
#include "bindings/core/v8/ScriptController.h"
#include "core/dom/Document.h"
#include "core/fetch/ClientHintsPreferences.h"
#include "core/fetch/UniqueIdentifier.h"
#include "core/frame/FrameConsole.h"
#include "core/frame/FrameHost.h"
#include "core/frame/FrameView.h"
......@@ -221,11 +222,6 @@ void FrameFetchContext::dispatchWillSendRequest(unsigned long identifier, Resour
InspectorInstrumentation::willSendRequest(frame(), identifier, ensureLoaderForNotifications(), request, redirectResponse, initiatorInfo);
}
void FrameFetchContext::dispatchDidLoadResourceFromMemoryCache(const ResourceRequest& request, const ResourceResponse& response)
{
frame()->loader().client()->dispatchDidLoadResourceFromMemoryCache(request, response);
}
void FrameFetchContext::dispatchDidReceiveResponse(unsigned long identifier, const ResourceResponse& response, ResourceLoader* resourceLoader)
{
MixedContentChecker::checkMixedPrivatePublic(frame(), response.remoteIPAddress());
......@@ -280,14 +276,20 @@ void FrameFetchContext::dispatchDidFail(unsigned long identifier, const Resource
frame()->console().didFailLoading(identifier, error);
}
void FrameFetchContext::sendRemainingDelegateMessages(unsigned long identifier, const ResourceResponse& response, int dataLength)
void FrameFetchContext::dispatchDidLoadResourceFromMemoryCache(const Resource* resource)
{
ResourceRequest request(resource->url());
unsigned long identifier = createUniqueIdentifier();
frame()->loader().client()->dispatchDidLoadResourceFromMemoryCache(request, resource->response());
dispatchWillSendRequest(identifier, request, ResourceResponse(), resource->options().initiatorInfo);
InspectorInstrumentation::markResourceAsCached(frame(), identifier);
if (!response.isNull())
dispatchDidReceiveResponse(identifier, response);
if (!resource->response().isNull())
dispatchDidReceiveResponse(identifier, resource->response());
if (dataLength > 0)
dispatchDidReceiveData(identifier, 0, dataLength, 0);
if (resource->encodedSize() > 0)
dispatchDidReceiveData(identifier, 0, resource->encodedSize(), 0);
dispatchDidFinishLoading(identifier, 0, 0);
}
......
......@@ -72,13 +72,12 @@ public:
ResourceRequestCachePolicy resourceRequestCachePolicy(const ResourceRequest&, Resource::Type) const override;
void dispatchDidChangeResourcePriority(unsigned long identifier, ResourceLoadPriority, int intraPriorityValue) override;
void dispatchWillSendRequest(unsigned long identifier, ResourceRequest&, const ResourceResponse& redirectResponse, const FetchInitiatorInfo& = FetchInitiatorInfo()) override;
void dispatchDidLoadResourceFromMemoryCache(const ResourceRequest&, const ResourceResponse&) override;
void dispatchDidLoadResourceFromMemoryCache(const Resource*) override;
void dispatchDidReceiveResponse(unsigned long identifier, const ResourceResponse&, ResourceLoader* = 0) override;
void dispatchDidReceiveData(unsigned long identifier, const char* data, int dataLength, int encodedDataLength) override;
void dispatchDidDownloadData(unsigned long identifier, int dataLength, int encodedDataLength) override;
void dispatchDidFinishLoading(unsigned long identifier, double finishTime, int64_t encodedDataLength) override;
void dispatchDidFail(unsigned long identifier, const ResourceError&, bool isInternalRequest) override;
void sendRemainingDelegateMessages(unsigned long identifier, const ResourceResponse&, int dataLength) override;
bool shouldLoadNewResource(Resource::Type) const override;
void willStartLoadingResource(ResourceRequest&) override;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment