Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b01c6855 authored by Jason Monk's avatar Jason Monk Committed by Android (Google) Code Review
Browse files

Merge "Switch PacUrl storage from String to Uri"

parents 590afb8b 83520b95
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -47,6 +47,7 @@ import android.hardware.display.DisplayManagerGlobal;
import android.net.IConnectivityManager;
import android.net.Proxy;
import android.net.ProxyInfo;
import android.net.Uri;
import android.opengl.GLUtils;
import android.os.AsyncTask;
import android.os.Binder;
@@ -839,7 +840,7 @@ public final class ActivityThread {
            InetAddress.clearDnsCache();
        }

        public void setHttpProxy(String host, String port, String exclList, String pacFileUrl) {
        public void setHttpProxy(String host, String port, String exclList, Uri pacFileUrl) {
            Proxy.setHttpProxySystemProperty(host, port, exclList, pacFileUrl);
        }

+4 −3
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ import android.content.pm.ProviderInfo;
import android.content.pm.ServiceInfo;
import android.content.res.CompatibilityInfo;
import android.content.res.Configuration;
import android.net.Uri;
import android.os.Binder;
import android.os.Bundle;
import android.os.Debug;
@@ -339,7 +340,7 @@ public abstract class ApplicationThreadNative extends Binder
            final String proxy = data.readString();
            final String port = data.readString();
            final String exclList = data.readString();
            final String pacFileUrl = data.readString();
            final Uri pacFileUrl = Uri.CREATOR.createFromParcel(data);
            setHttpProxy(proxy, port, exclList, pacFileUrl);
            return true;
        }
@@ -1008,13 +1009,13 @@ class ApplicationThreadProxy implements IApplicationThread {
    }

    public void setHttpProxy(String proxy, String port, String exclList,
            String pacFileUrl) throws RemoteException {
            Uri pacFileUrl) throws RemoteException {
        Parcel data = Parcel.obtain();
        data.writeInterfaceToken(IApplicationThread.descriptor);
        data.writeString(proxy);
        data.writeString(port);
        data.writeString(exclList);
        data.writeString(pacFileUrl);
        pacFileUrl.writeToParcel(data, 0);
        mRemote.transact(SET_HTTP_PROXY_TRANSACTION, data, null, IBinder.FLAG_ONEWAY);
        data.recycle();
    }
+2 −1
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ import android.content.pm.ProviderInfo;
import android.content.pm.ServiceInfo;
import android.content.res.CompatibilityInfo;
import android.content.res.Configuration;
import android.net.Uri;
import android.os.Bundle;
import android.os.Debug;
import android.os.ParcelFileDescriptor;
@@ -106,7 +107,7 @@ public interface IApplicationThread extends IInterface {
    void updateTimeZone() throws RemoteException;
    void clearDnsCache() throws RemoteException;
    void setHttpProxy(String proxy, String port, String exclList,
            String pacFileUrl) throws RemoteException;
            Uri pacFileUrl) throws RemoteException;
    void processInBackground() throws RemoteException;
    void dumpService(FileDescriptor fd, IBinder servicetoken, String[] args)
            throws RemoteException;
+4 −6
Original line number Diff line number Diff line
@@ -273,21 +273,19 @@ public final class Proxy {
        String host = null;
        String port = null;
        String exclList = null;
        String pacFileUrl = null;
        Uri pacFileUrl = Uri.EMPTY;
        if (p != null) {
            host = p.getHost();
            port = Integer.toString(p.getPort());
            exclList = p.getExclusionListAsString();
            if (p.getPacFileUrl() != null) {
                pacFileUrl = p.getPacFileUrl().toString();
            }
            pacFileUrl = p.getPacFileUrl();
        }
        setHttpProxySystemProperty(host, port, exclList, pacFileUrl);
    }

    /** @hide */
    public static final void setHttpProxySystemProperty(String host, String port, String exclList,
            String pacFileUrl) {
            Uri pacFileUrl) {
        if (exclList != null) exclList = exclList.replace(",", "|");
        if (false) Log.d(TAG, "setHttpProxySystemProperty :"+host+":"+port+" - "+exclList);
        if (host != null) {
@@ -311,7 +309,7 @@ public final class Proxy {
            System.clearProperty("http.nonProxyHosts");
            System.clearProperty("https.nonProxyHosts");
        }
        if (!TextUtils.isEmpty(pacFileUrl)) {
        if (!Uri.EMPTY.equals(pacFileUrl)) {
            ProxySelector.setDefault(new PacProxySelector());
        } else {
            ProxySelector.setDefault(sDefaultProxySelector);
+37 −17
Original line number Diff line number Diff line
@@ -44,7 +44,7 @@ public class ProxyInfo implements Parcelable {
    private String mExclusionList;
    private String[] mParsedExclusionList;

    private String mPacFileUrl;
    private Uri mPacFileUrl;
    /**
     *@hide
     */
@@ -85,7 +85,7 @@ public class ProxyInfo implements Parcelable {
     * at the specified URL.
     */
    public static ProxyInfo buildPacProxy(Uri pacUri) {
        return new ProxyInfo(pacUri.toString());
        return new ProxyInfo(pacUri);
    }

    /**
@@ -96,27 +96,45 @@ public class ProxyInfo implements Parcelable {
        mHost = host;
        mPort = port;
        setExclusionList(exclList);
        mPacFileUrl = Uri.EMPTY;
    }

    /**
     * Create a ProxyProperties that points at a PAC URL.
     * @hide
     */
    public ProxyInfo(String pacFileUrl) {
    public ProxyInfo(Uri pacFileUrl) {
        mHost = LOCAL_HOST;
        mPort = LOCAL_PORT;
        setExclusionList(LOCAL_EXCL_LIST);
        if (pacFileUrl == null) {
            throw new NullPointerException();
        }
        mPacFileUrl = pacFileUrl;
    }

    /**
     * Create a ProxyProperties that points at a PAC URL.
     * @hide
     */
    public ProxyInfo(String pacFileUrl) {
        mHost = LOCAL_HOST;
        mPort = LOCAL_PORT;
        setExclusionList(LOCAL_EXCL_LIST);
        mPacFileUrl = Uri.parse(pacFileUrl);
    }

    /**
     * Only used in PacManager after Local Proxy is bound.
     * @hide
     */
    public ProxyInfo(String pacFileUrl, int localProxyPort) {
    public ProxyInfo(Uri pacFileUrl, int localProxyPort) {
        mHost = LOCAL_HOST;
        mPort = localProxyPort;
        setExclusionList(LOCAL_EXCL_LIST);
        if (pacFileUrl == null) {
            throw new NullPointerException();
        }
        mPacFileUrl = pacFileUrl;
    }

@@ -125,7 +143,7 @@ public class ProxyInfo implements Parcelable {
        mPort = port;
        mExclusionList = exclList;
        mParsedExclusionList = parsedExclList;
        mPacFileUrl = null;
        mPacFileUrl = Uri.EMPTY;
    }

    // copy constructor instead of clone
@@ -137,6 +155,9 @@ public class ProxyInfo implements Parcelable {
            mHost = source.getHost();
            mPort = source.getPort();
            mPacFileUrl = source.mPacFileUrl;
            if (mPacFileUrl == null) {
                mPacFileUrl = Uri.EMPTY;
            }
            mExclusionList = source.getExclusionListAsString();
            mParsedExclusionList = source.mParsedExclusionList;
        }
@@ -158,10 +179,7 @@ public class ProxyInfo implements Parcelable {
     * no PAC script.
     */
    public Uri getPacFileUrl() {
        if (TextUtils.isEmpty(mPacFileUrl)) {
            return null;
        }
        return Uri.parse(mPacFileUrl);
        return mPacFileUrl;
    }

    /**
@@ -210,7 +228,7 @@ public class ProxyInfo implements Parcelable {
     * @hide
     */
    public boolean isValid() {
        if (!TextUtils.isEmpty(mPacFileUrl)) return true;
        if (!Uri.EMPTY.equals(mPacFileUrl)) return true;
        return Proxy.PROXY_VALID == Proxy.validate(mHost == null ? "" : mHost,
                                                mPort == 0 ? "" : Integer.toString(mPort),
                                                mExclusionList == null ? "" : mExclusionList);
@@ -234,7 +252,7 @@ public class ProxyInfo implements Parcelable {
    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        if (mPacFileUrl != null) {
        if (!Uri.EMPTY.equals(mPacFileUrl)) {
            sb.append("PAC Script: ");
            sb.append(mPacFileUrl);
        } else if (mHost != null) {
@@ -257,13 +275,15 @@ public class ProxyInfo implements Parcelable {
        ProxyInfo p = (ProxyInfo)o;
        // If PAC URL is present in either then they must be equal.
        // Other parameters will only be for fall back.
        if (!TextUtils.isEmpty(mPacFileUrl)) {
        if (!Uri.EMPTY.equals(mPacFileUrl)) {
            return mPacFileUrl.equals(p.getPacFileUrl()) && mPort == p.mPort;
        }
        if (!TextUtils.isEmpty(p.mPacFileUrl)) {
        if (!Uri.EMPTY.equals(p.mPacFileUrl)) {
            return false;
        }
        if (mExclusionList != null && !mExclusionList.equals(p.getExclusionListAsString())) {
            return false;
        }
        if (mExclusionList != null && !mExclusionList.equals(p.getExclusionListAsString())) return false;
        if (mHost != null && p.getHost() != null && mHost.equals(p.getHost()) == false) {
            return false;
        }
@@ -296,9 +316,9 @@ public class ProxyInfo implements Parcelable {
     * @hide
     */
    public void writeToParcel(Parcel dest, int flags) {
        if (mPacFileUrl != null) {
        if (!Uri.EMPTY.equals(mPacFileUrl)) {
            dest.writeByte((byte)1);
            dest.writeString(mPacFileUrl);
            mPacFileUrl.writeToParcel(dest, 0);
            dest.writeInt(mPort);
            return;
        } else {
@@ -325,7 +345,7 @@ public class ProxyInfo implements Parcelable {
                String host = null;
                int port = 0;
                if (in.readByte() != 0) {
                    String url = in.readString();
                    Uri url = Uri.CREATOR.createFromParcel(in);
                    int localPort = in.readInt();
                    return new ProxyInfo(url, localPort);
                }
Loading