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

Side by Side Diff: components/domain_reliability/beacon.cc

Issue 2889163002: Remove raw DictionaryValue::Set in //components (Closed)
Patch Set: Nits 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/domain_reliability/beacon.h" 5 #include "components/domain_reliability/beacon.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/memory/ptr_util.h"
9 #include "base/values.h" 10 #include "base/values.h"
10 #include "components/domain_reliability/util.h" 11 #include "components/domain_reliability/util.h"
11 #include "net/base/net_errors.h" 12 #include "net/base/net_errors.h"
12 13
13 namespace domain_reliability { 14 namespace domain_reliability {
14 15
15 using base::Value; 16 using base::Value;
16 using base::DictionaryValue; 17 using base::DictionaryValue;
17 18
18 DomainReliabilityBeacon::DomainReliabilityBeacon() {} 19 DomainReliabilityBeacon::DomainReliabilityBeacon() {}
19 DomainReliabilityBeacon::DomainReliabilityBeacon( 20 DomainReliabilityBeacon::DomainReliabilityBeacon(
20 const DomainReliabilityBeacon& other) = default; 21 const DomainReliabilityBeacon& other) = default;
21 DomainReliabilityBeacon::~DomainReliabilityBeacon() {} 22 DomainReliabilityBeacon::~DomainReliabilityBeacon() {}
22 23
23 std::unique_ptr<Value> DomainReliabilityBeacon::ToValue( 24 std::unique_ptr<Value> DomainReliabilityBeacon::ToValue(
24 base::TimeTicks upload_time, 25 base::TimeTicks upload_time,
25 base::TimeTicks last_network_change_time, 26 base::TimeTicks last_network_change_time,
26 const GURL& collector_url, 27 const GURL& collector_url,
27 const std::vector<std::unique_ptr<std::string>>& path_prefixes) const { 28 const std::vector<std::unique_ptr<std::string>>& path_prefixes) const {
28 std::unique_ptr<DictionaryValue> beacon_value(new DictionaryValue()); 29 auto beacon_value = base::MakeUnique<DictionaryValue>();
29 DCHECK(url.is_valid()); 30 DCHECK(url.is_valid());
30 GURL sanitized_url = SanitizeURLForReport(url, collector_url, path_prefixes); 31 GURL sanitized_url = SanitizeURLForReport(url, collector_url, path_prefixes);
31 beacon_value->SetString("url", sanitized_url.spec()); 32 beacon_value->SetString("url", sanitized_url.spec());
32 beacon_value->SetString("status", status); 33 beacon_value->SetString("status", status);
33 if (!quic_error.empty()) 34 if (!quic_error.empty())
34 beacon_value->SetString("quic_error", quic_error); 35 beacon_value->SetString("quic_error", quic_error);
35 if (chrome_error != net::OK) { 36 if (chrome_error != net::OK) {
36 DictionaryValue* failure_value = new DictionaryValue(); 37 auto failure_value = base::MakeUnique<DictionaryValue>();
37 failure_value->SetString("custom_error", 38 failure_value->SetString("custom_error",
38 net::ErrorToString(chrome_error)); 39 net::ErrorToString(chrome_error));
39 beacon_value->Set("failure_data", failure_value); 40 beacon_value->Set("failure_data", std::move(failure_value));
40 } 41 }
41 beacon_value->SetString("server_ip", server_ip); 42 beacon_value->SetString("server_ip", server_ip);
42 beacon_value->SetBoolean("was_proxied", was_proxied); 43 beacon_value->SetBoolean("was_proxied", was_proxied);
43 beacon_value->SetString("protocol", protocol); 44 beacon_value->SetString("protocol", protocol);
44 if (details.quic_broken) 45 if (details.quic_broken)
45 beacon_value->SetBoolean("quic_broken", details.quic_broken); 46 beacon_value->SetBoolean("quic_broken", details.quic_broken);
46 if (details.quic_port_migration_detected) 47 if (details.quic_port_migration_detected)
47 beacon_value->SetBoolean("quic_port_migration_detected", 48 beacon_value->SetBoolean("quic_port_migration_detected",
48 details.quic_port_migration_detected); 49 details.quic_port_migration_detected);
49 if (http_response_code >= 0) 50 if (http_response_code >= 0)
50 beacon_value->SetInteger("http_response_code", http_response_code); 51 beacon_value->SetInteger("http_response_code", http_response_code);
51 beacon_value->SetInteger("request_elapsed_ms", elapsed.InMilliseconds()); 52 beacon_value->SetInteger("request_elapsed_ms", elapsed.InMilliseconds());
52 base::TimeDelta request_age = upload_time - start_time; 53 base::TimeDelta request_age = upload_time - start_time;
53 beacon_value->SetInteger("request_age_ms", request_age.InMilliseconds()); 54 beacon_value->SetInteger("request_age_ms", request_age.InMilliseconds());
54 bool network_changed = last_network_change_time > start_time; 55 bool network_changed = last_network_change_time > start_time;
55 beacon_value->SetBoolean("network_changed", network_changed); 56 beacon_value->SetBoolean("network_changed", network_changed);
56 beacon_value->SetDouble("sample_rate", sample_rate); 57 beacon_value->SetDouble("sample_rate", sample_rate);
57 return std::move(beacon_value); 58 return std::move(beacon_value);
58 } 59 }
59 60
60 } // namespace domain_reliability 61 } // namespace domain_reliability
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698