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

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

Issue 2546213003: Implement net/ support for Android's NetworkSecurityPolicy (Closed)
Patch Set: More comments Created 4 years 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 | net/android/network_library.h » ('j') | net/url_request/url_request_http_job.cc » ('J')
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 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
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 }
OLDNEW
« no previous file with comments | « no previous file | net/android/network_library.h » ('j') | net/url_request/url_request_http_job.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698