/* * Copyright (C) 2016 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 com.android.server.webkit; import android.content.Context; import android.content.pm.PackageInfo; import android.content.pm.PackageManager.NameNotFoundException; import android.database.ContentObserver; import android.webkit.UserPackage; import android.webkit.WebViewProviderInfo; import java.util.List; /** * System interface for the WebViewUpdateService. * This interface provides a way to test the WebView preparation mechanism - during normal use this * interface is implemented using calls to the Android framework, but by providing an alternative * implementation we can test the WebView preparation logic without reaching other framework code. * * @hide */ public interface SystemInterface { public WebViewProviderInfo[] getWebViewPackages(); public int onWebViewProviderChanged(PackageInfo packageInfo); public long getFactoryPackageVersion(String packageName) throws NameNotFoundException; public String getUserChosenWebViewProvider(Context context); public void updateUserSetting(Context context, String newProviderName); public void killPackageDependents(String packageName); public boolean isFallbackLogicEnabled(); public void enableFallbackLogic(boolean enable); public void uninstallAndDisablePackageForAllUsers(Context context, String packageName); public void enablePackageForAllUsers(Context context, String packageName, boolean enable); public void enablePackageForUser(String packageName, boolean enable, int userId); public boolean systemIsDebuggable(); public PackageInfo getPackageInfoForProvider(WebViewProviderInfo configInfo) throws NameNotFoundException; /** * Get the PackageInfos of all users for the package represented by {@param configInfo}. * @return an array of UserPackages for a certain package, each UserPackage being belonging to a * certain user. The returned array can contain null PackageInfos if the given package * is uninstalled for some user. */ public List getPackageInfoForProviderAllUsers(Context context, WebViewProviderInfo configInfo); public int getMultiProcessSetting(Context context); public void setMultiProcessSetting(Context context, int value); public void notifyZygote(boolean enableMultiProcess); public boolean isMultiProcessDefaultEnabled(); }