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

Unified Diff: components/data_reduction_proxy/core/browser/data_reduction_proxy_network_delegate.cc

Issue 2956703002: Adds Server Previews protocol UMA plus UMA for not accepting previews (Closed)
Patch Set: Fix merge issue for unittest wrt AlwaysOn and PreviewsDecider Created 3 years, 6 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: components/data_reduction_proxy/core/browser/data_reduction_proxy_network_delegate.cc
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_network_delegate.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_network_delegate.cc
index 465ec6cf16bb31ab35a54fef218ea4f3707994cb..12d3470d218e3703302faed8a5f15af200a9e7e8 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_network_delegate.cc
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_network_delegate.cc
@@ -43,6 +43,20 @@ namespace data_reduction_proxy {
namespace {
+// Values of the UMA DataReductionProxy.Protocol.AcceptTransform histogram
+// defined in metrics/histograms/histograms.xml. This enum must remain
+// synchronized with DataReductionProxyProtocolAcceptTransformEvent in
+// tools/metrics/histograms/enums.xml.
+enum AcceptTransformEvent {
+ LITE_PAGE_REQUESTED = 0,
+ LITE_PAGE_TRANSFORM_RECEIVED = 1,
+ EMPTY_IMAGE_POLICY_DIRECTIVE_RECEIVED = 2,
+ EMPTY_IMAGE_REQUESTED = 3,
+ EMPTY_IMAGE_TRANSFORM_RECEIVED = 4,
+ COMPRESSED_VIDEO_REQUESTED = 5,
+ ACCEPT_TRANSFORM_EVENT_BOUNDARY
+};
+
// Records the occurrence of |sample| in |name| histogram. UMA macros are not
// used because the |name| is not static.
void RecordNewContentLengthHistogram(const std::string& name, int64_t sample) {
@@ -165,6 +179,56 @@ void RecordContentLengthHistograms(bool lofi_low_header_added,
received_content_length);
}
+void RecordAcceptTransformEvent(AcceptTransformEvent event) {
+ UMA_HISTOGRAM_ENUMERATION("DataReductionProxy.Protocol.AcceptTransform",
+ event, ACCEPT_TRANSFORM_EVENT_BOUNDARY);
+}
+
+void RecordAcceptTransformSentUMA(
+ const net::HttpRequestHeaders& request_headers) {
+ switch (ParseRequestTransform(request_headers)) {
+ case TRANSFORM_LITE_PAGE:
+ RecordAcceptTransformEvent(LITE_PAGE_REQUESTED);
+ break;
+ case TRANSFORM_EMPTY_IMAGE:
+ RecordAcceptTransformEvent(EMPTY_IMAGE_REQUESTED);
+ break;
+ case TRANSFORM_COMPRESSED_VIDEO:
+ RecordAcceptTransformEvent(COMPRESSED_VIDEO_REQUESTED);
+ break;
+ case TRANSFORM_NONE:
+ break;
+ case TRANSFORM_PAGE_POLICIES_EMPTY_IMAGE:
+ NOTREACHED();
+ break;
+ }
+}
+
+void RecordAcceptTransformReceivedUMA(const net::URLRequest& request) {
+ net::HttpResponseHeaders* response_headers = request.response_headers();
+ if (!response_headers) {
+ return;
+ }
+
+ switch (ParseResponseTransform(*response_headers)) {
+ case TRANSFORM_LITE_PAGE:
+ RecordAcceptTransformEvent(LITE_PAGE_TRANSFORM_RECEIVED);
+ break;
+ case TRANSFORM_PAGE_POLICIES_EMPTY_IMAGE:
+ RecordAcceptTransformEvent(EMPTY_IMAGE_POLICY_DIRECTIVE_RECEIVED);
+ break;
+ case TRANSFORM_EMPTY_IMAGE:
+ RecordAcceptTransformEvent(EMPTY_IMAGE_TRANSFORM_RECEIVED);
+ break;
+ case TRANSFORM_NONE:
+ break;
+ case TRANSFORM_COMPRESSED_VIDEO:
+ // Compressed video response would instead be a redirect to resource.
+ NOTREACHED();
+ break;
+ }
+}
+
// Verifies that the chrome proxy related request headers are set correctly.
// |via_chrome_proxy| is true if the request is being fetched via Chrome Data
// Saver proxy.
@@ -373,6 +437,7 @@ void DataReductionProxyNetworkDelegate::OnBeforeSendHeadersInternal(
data_reduction_proxy_request_options_->AddRequestHeader(headers, page_id);
VerifyHttpRequestHeaders(true, *headers);
+ RecordAcceptTransformSentUMA(*headers);
}
void DataReductionProxyNetworkDelegate::OnBeforeRedirectInternal(
@@ -456,6 +521,7 @@ void DataReductionProxyNetworkDelegate::OnCompletedInternal(
CalculateAndRecordDataUsage(*request, request_type);
RecordContentLength(*request, request_type, original_content_length);
+ RecordAcceptTransformReceivedUMA(*request);
}
void DataReductionProxyNetworkDelegate::OnHeadersReceivedInternal(

Powered by Google App Engine
This is Rietveld 408576698