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