Chromium Code Reviews| Index: Source/core/fetch/ResourceFetcher.cpp |
| diff --git a/Source/core/fetch/ResourceFetcher.cpp b/Source/core/fetch/ResourceFetcher.cpp |
| index 605967270e987fe01f0348d5ef04a2d3eb21e3dd..b1247d988e137dde51fc11f00916d5650de2e375 100644 |
| --- a/Source/core/fetch/ResourceFetcher.cpp |
| +++ b/Source/core/fetch/ResourceFetcher.cpp |
| @@ -59,6 +59,7 @@ |
| #include "core/page/Performance.h" |
| #include "core/page/ResourceTimingInfo.h" |
| #include "core/page/Settings.h" |
| +#include "core/platform/HistogramSupport.h" |
| #include "core/platform/Logging.h" |
| #include "core/platform/chromium/TraceEvent.h" |
| #include "public/platform/Platform.h" |
| @@ -71,8 +72,17 @@ |
| #define PRELOAD_DEBUG 0 |
| namespace WebCore { |
| +namespace { |
|
abarth-chromium
2013/09/13 17:38:18
We usually have a blank line above anonymous names
Philippe
2013/09/16 11:47:21
Done.
|
| -static Resource* createResource(Resource::Type type, const ResourceRequest& request, const String& charset) |
| +// Used for histograms. |
|
abarth-chromium
2013/09/13 17:38:18
No need for this comment.
Philippe
2013/09/16 11:47:21
Done.
|
| +enum ActionUponResourceRequest { |
| + LoadResource = 0, |
| + RevalidateResource = 1, |
| + UseResourceFromCache = 2, |
| + ActionUponResourceRequestBoundaryValue = 3, |
|
abarth-chromium
2013/09/13 17:38:18
No need to list these numbers explicitly.
What is
Philippe
2013/09/16 11:47:21
Boundary value is the terminology used in Histogra
|
| +}; |
| + |
| +Resource* createResource(Resource::Type type, const ResourceRequest& request, const String& charset) |
| { |
| switch (type) { |
| case Resource::Image: |
| @@ -106,7 +116,7 @@ static Resource* createResource(Resource::Type type, const ResourceRequest& requ |
| return 0; |
| } |
| -static ResourceLoadPriority loadPriority(Resource::Type type, const FetchRequest& request) |
| +ResourceLoadPriority loadPriority(Resource::Type type, const FetchRequest& request) |
| { |
| if (request.priority() != ResourceLoadPriorityUnresolved) |
| return request.priority(); |
| @@ -140,7 +150,7 @@ static ResourceLoadPriority loadPriority(Resource::Type type, const FetchRequest |
| return ResourceLoadPriorityUnresolved; |
| } |
| -static Resource* resourceFromDataURIRequest(const ResourceRequest& request) |
| +Resource* resourceFromDataURIRequest(const ResourceRequest& request) |
| { |
| const KURL& url = request.url(); |
| ASSERT(url.protocolIsData()); |
| @@ -161,6 +171,8 @@ static Resource* resourceFromDataURIRequest(const ResourceRequest& request) |
| return resource; |
| } |
| +} // namespace |
| + |
| ResourceFetcher::ResourceFetcher(DocumentLoader* documentLoader) |
| : m_document(0) |
| , m_documentLoader(documentLoader) |
| @@ -541,13 +553,27 @@ ResourcePtr<Resource> ResourceFetcher::requestResource(Resource::Type type, Fetc |
| // Fall through |
| case Load: |
| resource = loadResource(type, request, request.charset()); |
| + HistogramSupport::histogramEnumeration( |
| + "Renderer.ResourceFetcher.ActionUponResourceRequest", LoadResource, |
|
abarth-chromium
2013/09/13 17:38:18
Renderer -> WebCore
Philippe
2013/09/16 11:47:21
Done.
|
| + ActionUponResourceRequestBoundaryValue); |
| break; |
| case Revalidate: |
| resource = revalidateResource(request, resource.get()); |
| + HistogramSupport::histogramEnumeration( |
| + "Renderer.ResourceFetcher.ActionUponResourceRequest", RevalidateResource, |
| + ActionUponResourceRequestBoundaryValue); |
| break; |
| case Use: |
| resource->updateForAccess(); |
| notifyLoadedFromMemoryCache(resource.get()); |
| + HistogramSupport::histogramEnumeration( |
| + "Renderer.ResourceFetcher.ActionUponResourceRequest", UseResourceFromCache, |
| + ActionUponResourceRequestBoundaryValue); |
| + HistogramSupport::histogramEnumeration( |
| + "Renderer.ResourceFetcher.ResourceHasClientUponCacheHit", resource->hasClients(), 2); |
| + HistogramSupport::histogramEnumeration( |
| + "Renderer.ResourceFetcher.ResourceTypeUponCacheHit", resource->type(), |
| + Resource::TypeBoundaryValue); |
| break; |
| } |