summaryrefslogtreecommitdiffstats
path: root/components/domain_reliability
diff options
context:
space:
mode:
authorttuttle <ttuttle@chromium.org>2015-04-23 21:16:45 -0700
committerCommit bot <commit-bot@chromium.org>2015-04-24 04:17:20 +0000
commit50ff1a27f7e6c1b7855c55f9d02c8b27e9140f0b (patch)
tree54d50a38e512c5dae8293ebb079e860fb8b82224 /components/domain_reliability
parentb605e72e1b07f9b7501882c31ec422d05c1794bf (diff)
downloadchromium_src-50ff1a27f7e6c1b7855c55f9d02c8b27e9140f0b.zip
chromium_src-50ff1a27f7e6c1b7855c55f9d02c8b27e9140f0b.tar.gz
chromium_src-50ff1a27f7e6c1b7855c55f9d02c8b27e9140f0b.tar.bz2
Domain Reliability: Add was_proxied field to beacons.
This makes it explicit why server_ip is blank when the connection was proxied, so we can tell when it's blank because of a bug instead. BUG= Review URL: https://codereview.chromium.org/1088933007 Cr-Commit-Position: refs/heads/master@{#326739}
Diffstat (limited to 'components/domain_reliability')
-rw-r--r--components/domain_reliability/beacon.cc1
-rw-r--r--components/domain_reliability/beacon.h3
-rw-r--r--components/domain_reliability/context_unittest.cc7
-rw-r--r--components/domain_reliability/monitor.cc1
4 files changed, 10 insertions, 2 deletions
diff --git a/components/domain_reliability/beacon.cc b/components/domain_reliability/beacon.cc
index 0d7abf7..2a85c53 100644
--- a/components/domain_reliability/beacon.cc
+++ b/components/domain_reliability/beacon.cc
@@ -33,6 +33,7 @@ Value* DomainReliabilityBeacon::ToValue(
beacon_value->Set("failure_data", failure_value);
}
beacon_value->SetString("server_ip", server_ip);
+ beacon_value->SetBoolean("was_proxied", was_proxied);
beacon_value->SetString("protocol", protocol);
if (http_response_code >= 0)
beacon_value->SetInteger("http_response_code", http_response_code);
diff --git a/components/domain_reliability/beacon.h b/components/domain_reliability/beacon.h
index cb5ed8c..aba7bf9 100644
--- a/components/domain_reliability/beacon.h
+++ b/components/domain_reliability/beacon.h
@@ -39,6 +39,9 @@ struct DOMAIN_RELIABILITY_EXPORT DomainReliabilityBeacon {
int chrome_error;
// IP address of the server the request went to.
std::string server_ip;
+ // Whether the request went through a proxy. If true, |server_ip| will be
+ // empty.
+ bool was_proxied;
// Protocol used to make the request.
std::string protocol;
// HTTP response code returned by the server, or -1 if none was received.
diff --git a/components/domain_reliability/context_unittest.cc b/components/domain_reliability/context_unittest.cc
index 8633c48..8025021 100644
--- a/components/domain_reliability/context_unittest.cc
+++ b/components/domain_reliability/context_unittest.cc
@@ -30,6 +30,7 @@ DomainReliabilityBeacon MakeBeacon(MockableTime* time) {
beacon.status = "ok";
beacon.chrome_error = net::OK;
beacon.server_ip = "127.0.0.1";
+ beacon.was_proxied = false;
beacon.protocol = "HTTP";
beacon.http_response_code = 200;
beacon.elapsed = base::TimeDelta::FromMilliseconds(250);
@@ -179,7 +180,8 @@ TEST_F(DomainReliabilityContextTest, ReportUpload) {
"\"http_response_code\":200,\"network_changed\":false,"
"\"protocol\":\"HTTP\",\"request_age_ms\":300250,"
"\"request_elapsed_ms\":250,\"resource\":\"always_report\","
- "\"server_ip\":\"127.0.0.1\",\"status\":\"ok\"}],"
+ "\"server_ip\":\"127.0.0.1\",\"status\":\"ok\","
+ "\"was_proxied\":false}],"
"\"reporter\":\"test-reporter\","
"\"resources\":[{\"failed_requests\":0,\"name\":\"always_report\","
"\"successful_requests\":1}]}";
@@ -216,7 +218,8 @@ TEST_F(DomainReliabilityContextTest, ReportUpload_NetworkChanged) {
"\"http_response_code\":200,\"network_changed\":true,"
"\"protocol\":\"HTTP\",\"request_age_ms\":300250,"
"\"request_elapsed_ms\":250,\"resource\":\"always_report\","
- "\"server_ip\":\"127.0.0.1\",\"status\":\"ok\"}],"
+ "\"server_ip\":\"127.0.0.1\",\"status\":\"ok\","
+ "\"was_proxied\":false}],"
"\"reporter\":\"test-reporter\","
"\"resources\":[{\"failed_requests\":0,\"name\":\"always_report\","
"\"successful_requests\":1}]}";
diff --git a/components/domain_reliability/monitor.cc b/components/domain_reliability/monitor.cc
index bd86ad9..83a6af1 100644
--- a/components/domain_reliability/monitor.cc
+++ b/components/domain_reliability/monitor.cc
@@ -280,6 +280,7 @@ void DomainReliabilityMonitor::OnRequestLegComplete(
beacon.http_response_code = response_code;
beacon.start_time = request.load_timing_info.request_start;
beacon.elapsed = time_->NowTicks() - beacon.start_time;
+ beacon.was_proxied = request.response_info.was_fetched_via_proxy;
beacon.domain = request.url.host();
context_manager_.RouteBeacon(request.url, beacon);
}