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

Side by Side Diff: net/base/logging_network_change_observer.cc

Issue 1973743004: Make LoggingNetworkChangeObserver log specific network changes (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@cronetlog
Patch Set: don't register if NetworkHandles not supported Created 4 years, 7 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
« no previous file with comments | « net/base/logging_network_change_observer.h ('k') | net/log/net_log_event_type_list.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2016 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2016 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 "net/base/logging_network_change_observer.h" 5 #include "net/base/logging_network_change_observer.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/strings/string_number_conversions.h"
11 #include "base/values.h"
10 #include "net/log/net_log.h" 12 #include "net/log/net_log.h"
11 13
12 namespace net { 14 namespace net {
13 15
14 LoggingNetworkChangeObserver::LoggingNetworkChangeObserver(net::NetLog* net_log) 16 namespace {
17
18 // Return a dictionary of values that provide information about a
19 // network-specific change. This also includes relevant current state
20 // like the default network, and the types of active networks.
21 std::unique_ptr<base::Value> NetworkSpecificNetLogCallback(
22 NetworkChangeNotifier::NetworkHandle network,
23 NetLogCaptureMode capture_mode) {
24 std::unique_ptr<base::DictionaryValue> dict(new base::DictionaryValue());
25 dict->SetInteger("changed_network_handle", network);
26 dict->SetString(
27 "changed_network_type",
28 NetworkChangeNotifier::ConnectionTypeToString(
29 NetworkChangeNotifier::GetNetworkConnectionType(network)));
30 dict->SetInteger("default_active_network_handle",
31 NetworkChangeNotifier::GetDefaultNetwork());
32 NetworkChangeNotifier::NetworkList networks;
33 NetworkChangeNotifier::GetConnectedNetworks(&networks);
34 for (NetworkChangeNotifier::NetworkHandle active_network : networks) {
35 dict->SetString(
36 "current_active_networks." + base::IntToString(active_network),
37 NetworkChangeNotifier::ConnectionTypeToString(
38 NetworkChangeNotifier::GetNetworkConnectionType(active_network)));
39 }
40 return std::move(dict);
41 }
42
43 } // namespace
44
45 LoggingNetworkChangeObserver::LoggingNetworkChangeObserver(NetLog* net_log)
15 : net_log_(net_log) { 46 : net_log_(net_log) {
16 net::NetworkChangeNotifier::AddIPAddressObserver(this); 47 NetworkChangeNotifier::AddIPAddressObserver(this);
17 net::NetworkChangeNotifier::AddConnectionTypeObserver(this); 48 NetworkChangeNotifier::AddConnectionTypeObserver(this);
18 net::NetworkChangeNotifier::AddNetworkChangeObserver(this); 49 NetworkChangeNotifier::AddNetworkChangeObserver(this);
50 if (NetworkChangeNotifier::AreNetworkHandlesSupported())
51 NetworkChangeNotifier::AddNetworkObserver(this);
19 } 52 }
20 53
21 LoggingNetworkChangeObserver::~LoggingNetworkChangeObserver() { 54 LoggingNetworkChangeObserver::~LoggingNetworkChangeObserver() {
22 net::NetworkChangeNotifier::RemoveIPAddressObserver(this); 55 NetworkChangeNotifier::RemoveIPAddressObserver(this);
23 net::NetworkChangeNotifier::RemoveConnectionTypeObserver(this); 56 NetworkChangeNotifier::RemoveConnectionTypeObserver(this);
24 net::NetworkChangeNotifier::RemoveNetworkChangeObserver(this); 57 NetworkChangeNotifier::RemoveNetworkChangeObserver(this);
58 if (NetworkChangeNotifier::AreNetworkHandlesSupported())
59 NetworkChangeNotifier::RemoveNetworkObserver(this);
25 } 60 }
26 61
27 void LoggingNetworkChangeObserver::OnIPAddressChanged() { 62 void LoggingNetworkChangeObserver::OnIPAddressChanged() {
28 VLOG(1) << "Observed a change to the network IP addresses"; 63 VLOG(1) << "Observed a change to the network IP addresses";
29 64
30 net_log_->AddGlobalEntry(net::NetLog::TYPE_NETWORK_IP_ADDRESSES_CHANGED); 65 net_log_->AddGlobalEntry(NetLog::TYPE_NETWORK_IP_ADDRESSES_CHANGED);
31 } 66 }
32 67
33 void LoggingNetworkChangeObserver::OnConnectionTypeChanged( 68 void LoggingNetworkChangeObserver::OnConnectionTypeChanged(
34 net::NetworkChangeNotifier::ConnectionType type) { 69 NetworkChangeNotifier::ConnectionType type) {
35 std::string type_as_string = 70 std::string type_as_string =
36 net::NetworkChangeNotifier::ConnectionTypeToString(type); 71 NetworkChangeNotifier::ConnectionTypeToString(type);
37 72
38 VLOG(1) << "Observed a change to network connectivity state " 73 VLOG(1) << "Observed a change to network connectivity state "
39 << type_as_string; 74 << type_as_string;
40 75
41 net_log_->AddGlobalEntry( 76 net_log_->AddGlobalEntry(
42 net::NetLog::TYPE_NETWORK_CONNECTIVITY_CHANGED, 77 NetLog::TYPE_NETWORK_CONNECTIVITY_CHANGED,
43 net::NetLog::StringCallback("new_connection_type", &type_as_string)); 78 NetLog::StringCallback("new_connection_type", &type_as_string));
44 } 79 }
45 80
46 void LoggingNetworkChangeObserver::OnNetworkChanged( 81 void LoggingNetworkChangeObserver::OnNetworkChanged(
47 net::NetworkChangeNotifier::ConnectionType type) { 82 NetworkChangeNotifier::ConnectionType type) {
48 std::string type_as_string = 83 std::string type_as_string =
49 net::NetworkChangeNotifier::ConnectionTypeToString(type); 84 NetworkChangeNotifier::ConnectionTypeToString(type);
50 85
51 VLOG(1) << "Observed a network change to state " << type_as_string; 86 VLOG(1) << "Observed a network change to state " << type_as_string;
52 87
53 net_log_->AddGlobalEntry( 88 net_log_->AddGlobalEntry(
54 net::NetLog::TYPE_NETWORK_CHANGED, 89 NetLog::TYPE_NETWORK_CHANGED,
55 net::NetLog::StringCallback("new_connection_type", &type_as_string)); 90 NetLog::StringCallback("new_connection_type", &type_as_string));
91 }
92
93 void LoggingNetworkChangeObserver::OnNetworkConnected(
94 NetworkChangeNotifier::NetworkHandle network) {
95 VLOG(1) << "Observed network " << network << " connect";
96
97 net_log_->AddGlobalEntry(NetLog::TYPE_SPECIFIC_NETWORK_CONNECTED,
98 base::Bind(&NetworkSpecificNetLogCallback, network));
99 }
100
101 void LoggingNetworkChangeObserver::OnNetworkDisconnected(
102 NetworkChangeNotifier::NetworkHandle network) {
103 VLOG(1) << "Observed network " << network << " disconnect";
104
105 net_log_->AddGlobalEntry(NetLog::TYPE_SPECIFIC_NETWORK_DISCONNECTED,
106 base::Bind(&NetworkSpecificNetLogCallback, network));
107 }
108
109 void LoggingNetworkChangeObserver::OnNetworkSoonToDisconnect(
110 NetworkChangeNotifier::NetworkHandle network) {
111 VLOG(1) << "Observed network " << network << " soon to disconnect";
112
113 net_log_->AddGlobalEntry(NetLog::TYPE_SPECIFIC_NETWORK_SOON_TO_DISCONNECT,
114 base::Bind(&NetworkSpecificNetLogCallback, network));
115 }
116
117 void LoggingNetworkChangeObserver::OnNetworkMadeDefault(
118 NetworkChangeNotifier::NetworkHandle network) {
119 VLOG(1) << "Observed network " << network << " made the default network";
120
121 net_log_->AddGlobalEntry(NetLog::TYPE_SPECIFIC_NETWORK_MADE_DEFAULT,
122 base::Bind(&NetworkSpecificNetLogCallback, network));
56 } 123 }
57 124
58 } // namespace net 125 } // namespace net
OLDNEW
« no previous file with comments | « net/base/logging_network_change_observer.h ('k') | net/log/net_log_event_type_list.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698