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

Commit 6568cf18 authored by Chad Brubaker's avatar Chad Brubaker
Browse files

Refactor NetworkSecurityPolicy to be pluggable

This allows us to keep the logic for the NetworkSecurityPolicy in the
framework instead of in libcore.

Change-Id: I4bf494f79c27729cb17d93d90a91319492270ce9
parent 6fea6611
Loading
Loading
Loading
Loading
+35 −0
Original line number Diff line number Diff line
/**
 * Copyright (c) 2015, The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package android.security;

/**
 * Android framework's implementation of {@link libcore.net.NetworkSecurityPolicy}.
 *
 * @hide
 */
public class FrameworkNetworkSecurityPolicy extends libcore.net.NetworkSecurityPolicy {
    private final boolean mCleartextTrafficPermitted;

    public FrameworkNetworkSecurityPolicy(boolean cleartextTrafficPermitted) {
        mCleartextTrafficPermitted = cleartextTrafficPermitted;
    }

    @Override
    public boolean isCleartextTrafficPermitted() {
        return mCleartextTrafficPermitted;
    }
}
+3 −2
Original line number Diff line number Diff line
@@ -60,7 +60,7 @@ public class NetworkSecurityPolicy {
     * <p>NOTE: {@link android.webkit.WebView} does not honor this flag.
     */
    public boolean isCleartextTrafficPermitted() {
        return libcore.net.NetworkSecurityPolicy.isCleartextTrafficPermitted();
        return libcore.net.NetworkSecurityPolicy.getInstance().isCleartextTrafficPermitted();
    }

    /**
@@ -72,6 +72,7 @@ public class NetworkSecurityPolicy {
     * @hide
     */
    public void setCleartextTrafficPermitted(boolean permitted) {
        libcore.net.NetworkSecurityPolicy.setCleartextTrafficPermitted(permitted);
        FrameworkNetworkSecurityPolicy policy = new FrameworkNetworkSecurityPolicy(permitted);
        libcore.net.NetworkSecurityPolicy.setInstance(policy);
    }
}