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

Side by Side Diff: net/android/java/src/org/chromium/net/NetworkChangeNotifierAutoDetect.java

Issue 2873133004: Revert histograms for crbug.com/677365 as they're no longer needed. (Closed)
Patch Set: deprecate histograms Created 3 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 | « no previous file | tools/metrics/histograms/histograms.xml » ('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 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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 package org.chromium.net; 5 package org.chromium.net;
6 6
7 import static android.net.ConnectivityManager.TYPE_VPN; 7 import static android.net.ConnectivityManager.TYPE_VPN;
8 import static android.net.NetworkCapabilities.NET_CAPABILITY_INTERNET; 8 import static android.net.NetworkCapabilities.NET_CAPABILITY_INTERNET;
9 import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_VPN; 9 import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_VPN;
10 import static android.net.NetworkCapabilities.TRANSPORT_VPN; 10 import static android.net.NetworkCapabilities.TRANSPORT_VPN;
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 } 79 }
80 80
81 // WiFi SSID, always non-null to facilitate .equals() 81 // WiFi SSID, always non-null to facilitate .equals()
82 public String getWifiSsid() { 82 public String getWifiSsid() {
83 return mWifiSsid; 83 return mWifiSsid;
84 } 84 }
85 } 85 }
86 86
87 /** Queries the ConnectivityManager for information about the current connec tion. */ 87 /** Queries the ConnectivityManager for information about the current connec tion. */
88 static class ConnectivityManagerDelegate { 88 static class ConnectivityManagerDelegate {
89 private static final int NETWORK_INFO_DISCONNECTED = 0;
90 private static final int NETWORK_INFO_CONNECTED = 1;
91 private static final int NETWORK_INFO_ANDROID_API_LEVEL_TOO_OLD_FOR_UNBL OCKING = 2;
92 private static final int NETWORK_INFO_NOT_BLOCKED = 3;
93 private static final int NETWORK_INFO_APP_NOT_IN_FOREGROUND = 4;
94 private static final int NETWORK_INFO_UNBLOCKED = 5;
95 private static final int NETWORK_INFO_BOUNDARY = 6;
96
97 private final ConnectivityManager mConnectivityManager; 89 private final ConnectivityManager mConnectivityManager;
98 90
99 ConnectivityManagerDelegate(Context context) { 91 ConnectivityManagerDelegate(Context context) {
100 mConnectivityManager = 92 mConnectivityManager =
101 (ConnectivityManager) context.getSystemService(Context.CONNE CTIVITY_SERVICE); 93 (ConnectivityManager) context.getSystemService(Context.CONNE CTIVITY_SERVICE);
102 } 94 }
103 95
104 // For testing. 96 // For testing.
105 ConnectivityManagerDelegate() { 97 ConnectivityManagerDelegate() {
106 // All the methods below should be overridden. 98 // All the methods below should be overridden.
107 mConnectivityManager = null; 99 mConnectivityManager = null;
108 } 100 }
109 101
110 /** 102 /**
111 * @return the info of the network that is available to this app. 103 * @return the info of the network that is available to this app.
112 */ 104 */
113 @TargetApi(Build.VERSION_CODES.LOLLIPOP) 105 @TargetApi(Build.VERSION_CODES.LOLLIPOP)
114 private NetworkInfo getActiveNetworkInfo() { 106 private NetworkInfo getActiveNetworkInfo() {
115 final NetworkInfo networkInfo = mConnectivityManager.getActiveNetwor kInfo(); 107 final NetworkInfo networkInfo = mConnectivityManager.getActiveNetwor kInfo();
116 if (networkInfo == null) { 108 if (networkInfo == null) {
117 recordGetActiveNetworkInfoResult(NETWORK_INFO_DISCONNECTED);
118 return null; 109 return null;
119 } 110 }
120 111
121 if (networkInfo.isConnected()) { 112 if (networkInfo.isConnected()) {
122 recordGetActiveNetworkInfoResult(NETWORK_INFO_CONNECTED);
123 return networkInfo; 113 return networkInfo;
124 } 114 }
125 115
126 // If |networkInfo| is BLOCKED, but the app is in the foreground, th en it's likely that 116 // If |networkInfo| is BLOCKED, but the app is in the foreground, th en it's likely that
127 // Android hasn't finished updating the network access permissions a s BLOCKED is only 117 // Android hasn't finished updating the network access permissions a s BLOCKED is only
128 // meant for apps in the background. See https://crbug.com/677365 f or more details. 118 // meant for apps in the background. See https://crbug.com/677365 f or more details.
129 if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { 119 if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
130 // https://crbug.com/677365 primarily affects only Lollipop and higher versions. 120 // https://crbug.com/677365 primarily affects only Lollipop and higher versions.
131 recordGetActiveNetworkInfoResult(
132 NETWORK_INFO_ANDROID_API_LEVEL_TOO_OLD_FOR_UNBLOCKING);
133 return null; 121 return null;
134 } 122 }
135 123
136 if (networkInfo.getDetailedState() != NetworkInfo.DetailedState.BLOC KED) { 124 if (networkInfo.getDetailedState() != NetworkInfo.DetailedState.BLOC KED) {
137 // Network state is not blocked which implies that network acces s is 125 // Network state is not blocked which implies that network acces s is
138 // unavailable (not just blocked to this app). 126 // unavailable (not just blocked to this app).
139 recordGetActiveNetworkInfoResult(NETWORK_INFO_NOT_BLOCKED);
140 return null; 127 return null;
141 } 128 }
142 129
143 if (ApplicationStatus.getStateForApplication() 130 if (ApplicationStatus.getStateForApplication()
144 != ApplicationState.HAS_RUNNING_ACTIVITIES) { 131 != ApplicationState.HAS_RUNNING_ACTIVITIES) {
145 // The app is not in the foreground. 132 // The app is not in the foreground.
146 recordGetActiveNetworkInfoResult(NETWORK_INFO_APP_NOT_IN_FOREGRO UND);
147 return null; 133 return null;
148 } 134 }
149 recordGetActiveNetworkInfoResult(NETWORK_INFO_UNBLOCKED);
150 return networkInfo; 135 return networkInfo;
151 } 136 }
152 137
153 /** 138 /**
154 * Records the result of querying the network info of the current active network.
155 * @param result Result of querying the network info of the current acti ve network.
156 */
157 private static void recordGetActiveNetworkInfoResult(int result) {
158 assert result >= 0 && result < NETWORK_INFO_BOUNDARY;
159 RecordHistogram.recordEnumeratedHistogram(
160 "NCN.GetActiveNetworkInfoResult", result, NETWORK_INFO_BOUND ARY);
161 }
162
163 /**
164 * Returns connection type and status information about the current 139 * Returns connection type and status information about the current
165 * default network. 140 * default network.
166 */ 141 */
167 NetworkState getNetworkState(WifiManagerDelegate wifiManagerDelegate) { 142 NetworkState getNetworkState(WifiManagerDelegate wifiManagerDelegate) {
168 final NetworkInfo networkInfo = getActiveNetworkInfo(); 143 final NetworkInfo networkInfo = getActiveNetworkInfo();
169 if (networkInfo == null) { 144 if (networkInfo == null) {
170 return new NetworkState(false, -1, -1, null); 145 return new NetworkState(false, -1, -1, null);
171 } 146 }
172 // If Wifi, then fetch SSID also 147 // If Wifi, then fetch SSID also
173 if (networkInfo.getType() == ConnectivityManager.TYPE_WIFI) { 148 if (networkInfo.getType() == ConnectivityManager.TYPE_WIFI) {
(...skipping 913 matching lines...) Expand 10 before | Expand all | Expand 10 after
1087 return network.getNetworkHandle(); 1062 return network.getNetworkHandle();
1088 } else { 1063 } else {
1089 // NOTE(pauljensen): This depends on Android framework implementatio n details. These 1064 // NOTE(pauljensen): This depends on Android framework implementatio n details. These
1090 // details cannot change because Lollipop is long since released. 1065 // details cannot change because Lollipop is long since released.
1091 // NetIDs are only 16-bit so use parseInt. This function returns a l ong because 1066 // NetIDs are only 16-bit so use parseInt. This function returns a l ong because
1092 // getNetworkHandle() returns a long. 1067 // getNetworkHandle() returns a long.
1093 return Integer.parseInt(network.toString()); 1068 return Integer.parseInt(network.toString());
1094 } 1069 }
1095 } 1070 }
1096 } 1071 }
OLDNEW
« no previous file with comments | « no previous file | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698