| OLD | NEW |
| 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 android.annotation.TargetApi; | 7 import android.annotation.TargetApi; |
| 8 import android.content.ActivityNotFoundException; | 8 import android.content.ActivityNotFoundException; |
| 9 import android.content.Context; | 9 import android.content.Context; |
| 10 import android.content.Intent; | 10 import android.content.Intent; |
| 11 import android.content.IntentFilter; | 11 import android.content.IntentFilter; |
| 12 import android.net.ConnectivityManager; | 12 import android.net.ConnectivityManager; |
| 13 import android.net.Network; | 13 import android.net.Network; |
| 14 import android.net.NetworkCapabilities; | 14 import android.net.NetworkCapabilities; |
| 15 import android.net.NetworkInfo; | 15 import android.net.NetworkInfo; |
| 16 import android.net.wifi.WifiInfo; | 16 import android.net.wifi.WifiInfo; |
| 17 import android.net.wifi.WifiManager; | 17 import android.net.wifi.WifiManager; |
| 18 import android.os.Build; | 18 import android.os.Build; |
| 19 import android.security.KeyChain; | 19 import android.security.KeyChain; |
| 20 import android.security.NetworkSecurityPolicy; |
| 20 import android.telephony.TelephonyManager; | 21 import android.telephony.TelephonyManager; |
| 21 import android.util.Log; | 22 import android.util.Log; |
| 22 | 23 |
| 23 import org.chromium.base.annotations.CalledByNative; | 24 import org.chromium.base.annotations.CalledByNative; |
| 24 import org.chromium.base.annotations.CalledByNativeUnchecked; | 25 import org.chromium.base.annotations.CalledByNativeUnchecked; |
| 25 | 26 |
| 27 import java.lang.reflect.Method; |
| 26 import java.net.NetworkInterface; | 28 import java.net.NetworkInterface; |
| 27 import java.net.SocketException; | 29 import java.net.SocketException; |
| 28 import java.net.URLConnection; | 30 import java.net.URLConnection; |
| 29 import java.security.KeyStoreException; | 31 import java.security.KeyStoreException; |
| 30 import java.security.NoSuchAlgorithmException; | 32 import java.security.NoSuchAlgorithmException; |
| 31 import java.security.cert.CertificateException; | 33 import java.security.cert.CertificateException; |
| 32 import java.util.Enumeration; | 34 import java.util.Enumeration; |
| 33 | 35 |
| 34 /** | 36 /** |
| 35 * This class implements net utilities required by the net component. | 37 * This class implements net utilities required by the net component. |
| (...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 236 final WifiInfo wifiInfo = intent.getParcelableExtra(WifiManager.EXTR
A_WIFI_INFO); | 238 final WifiInfo wifiInfo = intent.getParcelableExtra(WifiManager.EXTR
A_WIFI_INFO); |
| 237 if (wifiInfo != null) { | 239 if (wifiInfo != null) { |
| 238 final String ssid = wifiInfo.getSSID(); | 240 final String ssid = wifiInfo.getSSID(); |
| 239 if (ssid != null) { | 241 if (ssid != null) { |
| 240 return ssid; | 242 return ssid; |
| 241 } | 243 } |
| 242 } | 244 } |
| 243 } | 245 } |
| 244 return ""; | 246 return ""; |
| 245 } | 247 } |
| 248 |
| 249 /** |
| 250 * Returns true if cleartext traffic to |host| is allowed by the current app
. Always true on L |
| 251 * and older. |
| 252 */ |
| 253 @TargetApi(Build.VERSION_CODES.N) |
| 254 @CalledByNative |
| 255 private static boolean isCleartextPermitted(String host) { |
| 256 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { |
| 257 NetworkSecurityPolicy policy = NetworkSecurityPolicy.getInstance(); |
| 258 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { |
| 259 return policy.isCleartextTrafficPermitted(host); |
| 260 } |
| 261 return policy.isCleartextTrafficPermitted(); |
| 262 } |
| 263 return true; |
| 264 } |
| 265 |
| 266 /** |
| 267 * Helper for tests that simulates an app disallowing cleartext traffic enti
rely. |
| 268 */ |
| 269 @TargetApi(Build.VERSION_CODES.M) |
| 270 @CalledByNative |
| 271 private static void setUpSecurityPolicyForTesting() throws Exception { |
| 272 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { |
| 273 Method setCleartextTrafficPermitted = NetworkSecurityPolicy.class.ge
tDeclaredMethod( |
| 274 "setCleartextTrafficPermitted", boolean.class); |
| 275 setCleartextTrafficPermitted.invoke(NetworkSecurityPolicy.getInstanc
e(), false); |
| 276 } |
| 277 } |
| 246 } | 278 } |
| OLD | NEW |