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 ...@@ -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) ...@@ -90,10 +90,6 @@ void FetchContext::dispatchDidFail(unsigned long, const ResourceError&, bool)
{ {
} }
void FetchContext::sendRemainingDelegateMessages(unsigned long, const ResourceResponse&, int)
{
}
void FetchContext::willStartLoadingResource(ResourceRequest&) void FetchContext::willStartLoadingResource(ResourceRequest&)
{ {
} }
......
...@@ -74,13 +74,12 @@ public: ...@@ -74,13 +74,12 @@ public:
virtual void dispatchDidChangeResourcePriority(unsigned long identifier, ResourceLoadPriority, int intraPriorityValue); virtual void dispatchDidChangeResourcePriority(unsigned long identifier, ResourceLoadPriority, int intraPriorityValue);
virtual void dispatchWillSendRequest(unsigned long identifier, ResourceRequest&, const ResourceResponse& redirectResponse, const FetchInitiatorInfo& = FetchInitiatorInfo()); 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 dispatchDidReceiveResponse(unsigned long identifier, const ResourceResponse&, ResourceLoader* = 0);
virtual void dispatchDidReceiveData(unsigned long identifier, const char* data, int dataLength, int encodedDataLength); 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 dispatchDidDownloadData(unsigned long identifier, int dataLength, int encodedDataLength);
virtual void dispatchDidFinishLoading(unsigned long identifier, double finishTime, int64_t encodedDataLength); virtual void dispatchDidFinishLoading(unsigned long identifier, double finishTime, int64_t encodedDataLength);
virtual void dispatchDidFail(unsigned long identifier, const ResourceError&, bool isInternalRequest); 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 bool shouldLoadNewResource(Resource::Type) const { return false; }
virtual void willStartLoadingResource(ResourceRequest&); virtual void willStartLoadingResource(ResourceRequest&);
......
...@@ -256,8 +256,8 @@ static const int kMaxValidatedURLsSize = 10000; ...@@ -256,8 +256,8 @@ static const int kMaxValidatedURLsSize = 10000;
void ResourceFetcher::requestLoadStarted(Resource* resource, const FetchRequest& request, ResourceLoadStartType type, bool isStaticData) void ResourceFetcher::requestLoadStarted(Resource* resource, const FetchRequest& request, ResourceLoadStartType type, bool isStaticData)
{ {
if (type == ResourceLoadingFromCache) if (type == ResourceLoadingFromCache && resource->status() == Resource::Cached && !m_validatedURLs.contains(resource->url()))
notifyLoadedFromMemoryCache(resource); context().dispatchDidLoadResourceFromMemoryCache(resource);
if (isStaticData) if (isStaticData)
return; return;
...@@ -790,19 +790,6 @@ void ResourceFetcher::garbageCollectDocumentResources() ...@@ -790,19 +790,6 @@ void ResourceFetcher::garbageCollectDocumentResources()
m_documentResources.removeAll(resourcesToDelete); 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 int ResourceFetcher::requestCount() const
{ {
return m_loaders ? m_loaders->size() : 0; return m_loaders ? m_loaders->size() : 0;
......
...@@ -165,8 +165,6 @@ private: ...@@ -165,8 +165,6 @@ private:
static bool resourceNeedsLoad(Resource*, const FetchRequest&, RevalidationPolicy); static bool resourceNeedsLoad(Resource*, const FetchRequest&, RevalidationPolicy);
void notifyLoadedFromMemoryCache(Resource*);
void garbageCollectDocumentResourcesTimerFired(Timer<ResourceFetcher>*); void garbageCollectDocumentResourcesTimerFired(Timer<ResourceFetcher>*);
void resourceTimingReportTimerFired(Timer<ResourceFetcher>*); void resourceTimingReportTimerFired(Timer<ResourceFetcher>*);
......
...@@ -34,6 +34,7 @@ ...@@ -34,6 +34,7 @@
#include "bindings/core/v8/ScriptController.h" #include "bindings/core/v8/ScriptController.h"
#include "core/dom/Document.h" #include "core/dom/Document.h"
#include "core/fetch/ClientHintsPreferences.h" #include "core/fetch/ClientHintsPreferences.h"
#include "core/fetch/UniqueIdentifier.h"
#include "core/frame/FrameConsole.h" #include "core/frame/FrameConsole.h"
#include "core/frame/FrameHost.h" #include "core/frame/FrameHost.h"
#include "core/frame/FrameView.h" #include "core/frame/FrameView.h"
...@@ -221,11 +222,6 @@ void FrameFetchContext::dispatchWillSendRequest(unsigned long identifier, Resour ...@@ -221,11 +222,6 @@ void FrameFetchContext::dispatchWillSendRequest(unsigned long identifier, Resour
InspectorInstrumentation::willSendRequest(frame(), identifier, ensureLoaderForNotifications(), request, redirectResponse, initiatorInfo); 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) void FrameFetchContext::dispatchDidReceiveResponse(unsigned long identifier, const ResourceResponse& response, ResourceLoader* resourceLoader)
{ {
MixedContentChecker::checkMixedPrivatePublic(frame(), response.remoteIPAddress()); MixedContentChecker::checkMixedPrivatePublic(frame(), response.remoteIPAddress());
...@@ -280,14 +276,20 @@ void FrameFetchContext::dispatchDidFail(unsigned long identifier, const Resource ...@@ -280,14 +276,20 @@ void FrameFetchContext::dispatchDidFail(unsigned long identifier, const Resource
frame()->console().didFailLoading(identifier, error); 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); InspectorInstrumentation::markResourceAsCached(frame(), identifier);
if (!response.isNull()) if (!resource->response().isNull())
dispatchDidReceiveResponse(identifier, response); dispatchDidReceiveResponse(identifier, resource->response());
if (dataLength > 0) if (resource->encodedSize() > 0)
dispatchDidReceiveData(identifier, 0, dataLength, 0); dispatchDidReceiveData(identifier, 0, resource->encodedSize(), 0);
dispatchDidFinishLoading(identifier, 0, 0); dispatchDidFinishLoading(identifier, 0, 0);
} }
......
...@@ -72,13 +72,12 @@ public: ...@@ -72,13 +72,12 @@ public:
ResourceRequestCachePolicy resourceRequestCachePolicy(const ResourceRequest&, Resource::Type) const override; ResourceRequestCachePolicy resourceRequestCachePolicy(const ResourceRequest&, Resource::Type) const override;
void dispatchDidChangeResourcePriority(unsigned long identifier, ResourceLoadPriority, int intraPriorityValue) override; void dispatchDidChangeResourcePriority(unsigned long identifier, ResourceLoadPriority, int intraPriorityValue) override;
void dispatchWillSendRequest(unsigned long identifier, ResourceRequest&, const ResourceResponse& redirectResponse, const FetchInitiatorInfo& = FetchInitiatorInfo()) 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 dispatchDidReceiveResponse(unsigned long identifier, const ResourceResponse&, ResourceLoader* = 0) override;
void dispatchDidReceiveData(unsigned long identifier, const char* data, int dataLength, int encodedDataLength) 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 dispatchDidDownloadData(unsigned long identifier, int dataLength, int encodedDataLength) override;
void dispatchDidFinishLoading(unsigned long identifier, double finishTime, int64_t encodedDataLength) override; void dispatchDidFinishLoading(unsigned long identifier, double finishTime, int64_t encodedDataLength) override;
void dispatchDidFail(unsigned long identifier, const ResourceError&, bool isInternalRequest) 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; bool shouldLoadNewResource(Resource::Type) const override;
void willStartLoadingResource(ResourceRequest&) 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