Use formal API for ActivityThread to set proxy
Add setHttpProxyConfiguration to the public API, and use ConnectivityManager APIs from ActivityThread (instead of hidden APIs) to get/set the proxy for an app process. The default proxy is now initialized with getDefaultProxy instead of getProxyForNetwork(null); this should not make a difference, as nothing should have called bindProcessToNetwork at that point yet. Bug: 174436414 Test: m; device boots Merged-In: Ifb516194ecde1567cea4b6806946091cdcf2f015 Change-Id: I06b797eeae54609aecdc0afe1df4e6c602a17a69
This commit is contained in:
@@ -4608,7 +4608,7 @@ public class ConnectivityManager {
|
||||
// Set HTTP proxy system properties to match network.
|
||||
// TODO: Deprecate this static method and replace it with a non-static version.
|
||||
try {
|
||||
Proxy.setHttpProxySystemProperty(getInstance().getDefaultProxy());
|
||||
Proxy.setHttpProxyConfiguration(getInstance().getDefaultProxy());
|
||||
} catch (SecurityException e) {
|
||||
// The process doesn't have ACCESS_NETWORK_STATE, so we can't fetch the proxy.
|
||||
Log.e(TAG, "Can't set proxy properties", e);
|
||||
|
||||
@@ -16,8 +16,10 @@
|
||||
|
||||
package android.net;
|
||||
|
||||
import android.annotation.Nullable;
|
||||
import android.annotation.SdkConstant;
|
||||
import android.annotation.SdkConstant.SdkConstantType;
|
||||
import android.annotation.SystemApi;
|
||||
import android.compat.annotation.UnsupportedAppUsage;
|
||||
import android.content.Context;
|
||||
import android.os.Build;
|
||||
@@ -185,7 +187,19 @@ public final class Proxy {
|
||||
|
||||
/** @hide */
|
||||
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
|
||||
public static final void setHttpProxySystemProperty(ProxyInfo p) {
|
||||
@Deprecated
|
||||
public static void setHttpProxySystemProperty(ProxyInfo p) {
|
||||
setHttpProxyConfiguration(p);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set HTTP proxy configuration for the process to match the provided ProxyInfo.
|
||||
*
|
||||
* If the provided ProxyInfo is null, the proxy configuration will be cleared.
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
|
||||
public static void setHttpProxyConfiguration(@Nullable ProxyInfo p) {
|
||||
String host = null;
|
||||
String port = null;
|
||||
String exclList = null;
|
||||
@@ -196,11 +210,11 @@ public final class Proxy {
|
||||
exclList = ProxyUtils.exclusionListAsString(p.getExclusionList());
|
||||
pacFileUrl = p.getPacFileUrl();
|
||||
}
|
||||
setHttpProxySystemProperty(host, port, exclList, pacFileUrl);
|
||||
setHttpProxyConfiguration(host, port, exclList, pacFileUrl);
|
||||
}
|
||||
|
||||
/** @hide */
|
||||
public static final void setHttpProxySystemProperty(String host, String port, String exclList,
|
||||
public static void setHttpProxyConfiguration(String host, String port, String exclList,
|
||||
Uri pacFileUrl) {
|
||||
if (exclList != null) exclList = exclList.replace(",", "|");
|
||||
if (false) Log.d(TAG, "setHttpProxySystemProperty :"+host+":"+port+" - "+exclList);
|
||||
|
||||
Reference in New Issue
Block a user