18b17926a78cc686504739730516c9b057d0672daGustav Sennton/*
28b17926a78cc686504739730516c9b057d0672daGustav Sennton * Copyright (C) 2016 The Android Open Source Project
38b17926a78cc686504739730516c9b057d0672daGustav Sennton *
48b17926a78cc686504739730516c9b057d0672daGustav Sennton * Licensed under the Apache License, Version 2.0 (the "License");
58b17926a78cc686504739730516c9b057d0672daGustav Sennton * you may not use this file except in compliance with the License.
68b17926a78cc686504739730516c9b057d0672daGustav Sennton * You may obtain a copy of the License at
78b17926a78cc686504739730516c9b057d0672daGustav Sennton *
88b17926a78cc686504739730516c9b057d0672daGustav Sennton *      http://www.apache.org/licenses/LICENSE-2.0
98b17926a78cc686504739730516c9b057d0672daGustav Sennton *
108b17926a78cc686504739730516c9b057d0672daGustav Sennton * Unless required by applicable law or agreed to in writing, software
118b17926a78cc686504739730516c9b057d0672daGustav Sennton * distributed under the License is distributed on an "AS IS" BASIS,
128b17926a78cc686504739730516c9b057d0672daGustav Sennton * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
138b17926a78cc686504739730516c9b057d0672daGustav Sennton * See the License for the specific language governing permissions and
148b17926a78cc686504739730516c9b057d0672daGustav Sennton * limitations under the License.
158b17926a78cc686504739730516c9b057d0672daGustav Sennton */
168b17926a78cc686504739730516c9b057d0672daGustav Sennton
178b17926a78cc686504739730516c9b057d0672daGustav Senntonpackage com.android.server.webkit;
188b17926a78cc686504739730516c9b057d0672daGustav Sennton
198b17926a78cc686504739730516c9b057d0672daGustav Senntonimport android.content.Context;
208b17926a78cc686504739730516c9b057d0672daGustav Senntonimport android.content.pm.PackageInfo;
21065b7e6ef588a11c82cee22012706e6c0e66d0a3Gustav Senntonimport android.content.pm.PackageManager.NameNotFoundException;
22065b7e6ef588a11c82cee22012706e6c0e66d0a3Gustav Senntonimport android.webkit.WebViewProviderInfo;
238b17926a78cc686504739730516c9b057d0672daGustav Sennton
248b17926a78cc686504739730516c9b057d0672daGustav Sennton/**
25065b7e6ef588a11c82cee22012706e6c0e66d0a3Gustav Sennton * System interface for the WebViewUpdateService.
268b17926a78cc686504739730516c9b057d0672daGustav Sennton * This interface provides a way to test the WebView preparation mechanism - during normal use this
278b17926a78cc686504739730516c9b057d0672daGustav Sennton * interface is implemented using calls to the Android framework, but by providing an alternative
288b17926a78cc686504739730516c9b057d0672daGustav Sennton * implementation we can test the WebView preparation logic without reaching other framework code.
29065b7e6ef588a11c82cee22012706e6c0e66d0a3Gustav Sennton *
308b17926a78cc686504739730516c9b057d0672daGustav Sennton * @hide
318b17926a78cc686504739730516c9b057d0672daGustav Sennton */
32065b7e6ef588a11c82cee22012706e6c0e66d0a3Gustav Senntonpublic interface SystemInterface {
338b17926a78cc686504739730516c9b057d0672daGustav Sennton    public WebViewProviderInfo[] getWebViewPackages();
348b17926a78cc686504739730516c9b057d0672daGustav Sennton    public int onWebViewProviderChanged(PackageInfo packageInfo);
359e8c0584faae06ad903b8b859c5a5e5b11d63257Hui Shu    public int getFactoryPackageVersion(String packageName) throws NameNotFoundException;
368b17926a78cc686504739730516c9b057d0672daGustav Sennton
378b17926a78cc686504739730516c9b057d0672daGustav Sennton    public String getUserChosenWebViewProvider(Context context);
388b17926a78cc686504739730516c9b057d0672daGustav Sennton    public void updateUserSetting(Context context, String newProviderName);
398b17926a78cc686504739730516c9b057d0672daGustav Sennton    public void killPackageDependents(String packageName);
40065b7e6ef588a11c82cee22012706e6c0e66d0a3Gustav Sennton
41065b7e6ef588a11c82cee22012706e6c0e66d0a3Gustav Sennton    public boolean isFallbackLogicEnabled();
42065b7e6ef588a11c82cee22012706e6c0e66d0a3Gustav Sennton    public void enableFallbackLogic(boolean enable);
43065b7e6ef588a11c82cee22012706e6c0e66d0a3Gustav Sennton
44065b7e6ef588a11c82cee22012706e6c0e66d0a3Gustav Sennton    public void uninstallAndDisablePackageForAllUsers(Context context, String packageName);
45065b7e6ef588a11c82cee22012706e6c0e66d0a3Gustav Sennton    public void enablePackageForAllUsers(Context context, String packageName, boolean enable);
46065b7e6ef588a11c82cee22012706e6c0e66d0a3Gustav Sennton    public void enablePackageForUser(String packageName, boolean enable, int userId);
47065b7e6ef588a11c82cee22012706e6c0e66d0a3Gustav Sennton
48065b7e6ef588a11c82cee22012706e6c0e66d0a3Gustav Sennton    public boolean systemIsDebuggable();
49065b7e6ef588a11c82cee22012706e6c0e66d0a3Gustav Sennton    public PackageInfo getPackageInfoForProvider(WebViewProviderInfo configInfo)
50065b7e6ef588a11c82cee22012706e6c0e66d0a3Gustav Sennton            throws NameNotFoundException;
518b17926a78cc686504739730516c9b057d0672daGustav Sennton}
52