Index: chrome/browser/prerender/prerender_util.cc |
diff --git a/chrome/browser/prerender/prerender_util.cc b/chrome/browser/prerender/prerender_util.cc |
index e7ae9d1072ae262a9cbeeaa8ee8c505d05caf1ab..1081f5b59719379a914ba5c2eee533f2081bf189 100644 |
--- a/chrome/browser/prerender/prerender_util.cc |
+++ b/chrome/browser/prerender/prerender_util.cc |
@@ -22,53 +22,6 @@ namespace prerender { |
namespace { |
-const char kModPagespeedHeader[] = "X-Mod-Pagespeed"; |
-const char kPageSpeedHeader[] = "X-Page-Speed"; |
-const char kPagespeedServerHistogram[] = |
- "Prerender.PagespeedHeader.ServerCounts"; |
-const char kPagespeedVersionHistogram[] = |
- "Prerender.PagespeedHeader.VersionCounts"; |
- |
-enum PagespeedHeaderServerType { |
- PAGESPEED_TOTAL_RESPONSES = 0, |
- PAGESPEED_MOD_PAGESPEED_SERVER = 1, |
- PAGESPEED_NGX_PAGESPEED_SERVER = 2, |
- PAGESPEED_PAGESPEED_SERVICE_SERVER = 3, |
- PAGESPEED_UNKNOWN_SERVER = 4, |
- PAGESPEED_SERVER_MAXIMUM = 5 |
-}; |
- |
-// Private function to parse the PageSpeed version number and encode it in |
-// buckets 2 through 99: if it is in the format a.b.c.d-e the bucket will be |
-// 2 + 2 * (max(c, 10) - 10) + (d > 1 ? 1 : 0); if it is not in this format |
-// we return zero. |
-int GetXModPagespeedBucketFromVersion(const std::string& version) { |
- int a, b, c, d, e; |
- int num_parsed = sscanf(version.c_str(), "%d.%d.%d.%d-%d", |
- &a, &b, &c, &d, &e); |
- int output = 0; |
- if (num_parsed == 5) { |
- output = 2; |
- if (c > 10) |
- output += 2 * (c - 10); |
- if (d > 1) |
- output++; |
- if (output < 2 || output > 99) |
- output = 0; |
- } |
- return output; |
-} |
- |
-// Private function to parse the X-Page-Speed header value and determine |
-// whether it is in the PageSpeed Service format, namely m_n_dc were m_n is |
-// a version number and dc is an encoded 2-character value. |
-bool IsPageSpeedServiceVersionNumber(const std::string& version) { |
- int a, b; |
- char c, d, e; // e is to detect EOL as we check that it /isn't/ converted. |
- int num_parsed = sscanf(version.c_str(), "%d_%d_%c%c%c", &a, &b, &c, &d, &e); |
- return (num_parsed == 4); |
-} |
- |
enum PrerenderSchemeCancelReason { |
PRERENDER_SCHEME_CANCEL_REASON_EXTERNAL_PROTOCOL, |
PRERENDER_SCHEME_CANCEL_REASON_DATA, |
@@ -163,82 +116,6 @@ bool IsControlGroupExperiment(uint8 experiment_id) { |
return experiment_id == 7 || experiment_id == 8; |
} |
-void GatherPagespeedData(const ResourceType resource_type, |
- const GURL& request_url, |
- const net::HttpResponseHeaders* response_headers) { |
- if (resource_type != content::RESOURCE_TYPE_MAIN_FRAME || |
- !request_url.SchemeIsHTTPOrHTTPS()) |
- return; |
- |
- // bucket 0 counts every response seen. |
- UMA_HISTOGRAM_ENUMERATION(kPagespeedServerHistogram, |
- PAGESPEED_TOTAL_RESPONSES, |
- PAGESPEED_SERVER_MAXIMUM); |
- if (!response_headers) |
- return; |
- |
- void* iter = NULL; |
- std::string name; |
- std::string value; |
- while (response_headers->EnumerateHeaderLines(&iter, &name, &value)) { |
- if (name == kModPagespeedHeader) { |
- // Bucket 1 counts occurences of the X-Mod-Pagespeed header. |
- UMA_HISTOGRAM_ENUMERATION(kPagespeedServerHistogram, |
- PAGESPEED_MOD_PAGESPEED_SERVER, |
- PAGESPEED_SERVER_MAXIMUM); |
- if (!value.empty()) { |
- // If the header value is in the X-Mod-Pagespeed version number format |
- // then increment the appropriate bucket, otherwise increment bucket 1, |
- // which is the catch-all "unknown version number" bucket. |
- int bucket = GetXModPagespeedBucketFromVersion(value); |
- if (bucket > 0) { |
- UMA_HISTOGRAM_SPARSE_SLOWLY(kPagespeedVersionHistogram, bucket); |
- } else { |
- UMA_HISTOGRAM_SPARSE_SLOWLY(kPagespeedVersionHistogram, 1); |
- } |
- } |
- break; |
- } else if (name == kPageSpeedHeader) { |
- // X-Page-Speed header versions are either in the X-Mod-Pagespeed format, |
- // indicating an nginx installation, or they're in the PageSpeed Service |
- // format, indicating a PSS installation, or in some other format, |
- // indicating an unknown installation [possibly IISpeed]. |
- if (!value.empty()) { |
- int bucket = GetXModPagespeedBucketFromVersion(value); |
- if (bucket > 0) { |
- // Bucket 2 counts occurences of the X-Page-Speed header with a |
- // value in the X-Mod-Pagespeed version number format. We also |
- // count these responses in the version histogram. |
- UMA_HISTOGRAM_ENUMERATION(kPagespeedServerHistogram, |
- PAGESPEED_NGX_PAGESPEED_SERVER, |
- PAGESPEED_SERVER_MAXIMUM); |
- UMA_HISTOGRAM_SPARSE_SLOWLY(kPagespeedVersionHistogram, bucket); |
- } else if (IsPageSpeedServiceVersionNumber(value)) { |
- // Bucket 3 counts occurences of the X-Page-Speed header with a |
- // value in the PageSpeed Service version number format. |
- UMA_HISTOGRAM_ENUMERATION(kPagespeedServerHistogram, |
- PAGESPEED_PAGESPEED_SERVICE_SERVER, |
- PAGESPEED_SERVER_MAXIMUM); |
- } else { |
- // Bucket 4 counts occurences of all other values. |
- UMA_HISTOGRAM_ENUMERATION(kPagespeedServerHistogram, |
- PAGESPEED_UNKNOWN_SERVER, |
- PAGESPEED_SERVER_MAXIMUM); |
- } |
- } |
- break; |
- } |
- } |
-} |
- |
-void URLRequestResponseStarted(net::URLRequest* request) { |
- const content::ResourceRequestInfo* info = |
- content::ResourceRequestInfo::ForRequest(request); |
- GatherPagespeedData(info->GetResourceType(), |
- request->url(), |
- request->response_headers()); |
-} |
- |
void ReportPrerenderExternalURL() { |
ReportPrerenderSchemeCancelReason( |
PRERENDER_SCHEME_CANCEL_REASON_EXTERNAL_PROTOCOL); |