diff options
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/android/webkit/UserPackage.java | 10 | ||||
| -rw-r--r-- | core/java/android/webkit/WebViewFactory.java | 30 |
2 files changed, 18 insertions, 22 deletions
diff --git a/core/java/android/webkit/UserPackage.java b/core/java/android/webkit/UserPackage.java index 404bcf453aaf..f53b5d6a7cd7 100644 --- a/core/java/android/webkit/UserPackage.java +++ b/core/java/android/webkit/UserPackage.java @@ -20,6 +20,7 @@ import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.UserInfo; +import android.os.Build; import android.os.UserManager; import java.util.ArrayList; @@ -77,6 +78,15 @@ public class UserPackage { & ApplicationInfo.PRIVATE_FLAG_HIDDEN) == 0)); } + /** + * Returns whether the package represented by {@param packageInfo} targets a sdk version + * supported by the current framework version. + */ + public static boolean hasCorrectTargetSdkVersion(PackageInfo packageInfo) { + // TODO(gsennton) use Build.VERSION_CODES.O when that has been updated. + return packageInfo.applicationInfo.targetSdkVersion > Build.VERSION_CODES.N_MR1; + } + public UserInfo getUserInfo() { return mUserInfo; } diff --git a/core/java/android/webkit/WebViewFactory.java b/core/java/android/webkit/WebViewFactory.java index d7a49e46a236..0906d1a1e034 100644 --- a/core/java/android/webkit/WebViewFactory.java +++ b/core/java/android/webkit/WebViewFactory.java @@ -145,18 +145,10 @@ public final class WebViewFactory { /** * @hide */ - public static Class<WebViewFactoryProvider> getWebViewProviderClass( ClassLoader clazzLoader) - throws ClassNotFoundException{ - try { - return (Class<WebViewFactoryProvider>) Class.forName(CHROMIUM_WEBVIEW_FACTORY, - true, clazzLoader); - } catch (ClassNotFoundException e) { - // TODO: This loads the provider which is not built for O, should be removed - // before the release. - return (Class<WebViewFactoryProvider>) Class.forName( - "com.android.webview.chromium.WebViewChromiumFactoryProvider", - true, clazzLoader); - } + public static Class<WebViewFactoryProvider> getWebViewProviderClass(ClassLoader clazzLoader) + throws ClassNotFoundException { + return (Class<WebViewFactoryProvider>) Class.forName(CHROMIUM_WEBVIEW_FACTORY, + true, clazzLoader); } /** @@ -225,15 +217,10 @@ public final class WebViewFactory { } } - Trace.traceBegin(Trace.TRACE_TAG_WEBVIEW, "providerClass.newInstance()"); + Trace.traceBegin(Trace.TRACE_TAG_WEBVIEW, "WebViewFactoryProvider invocation"); try { - if (staticFactory != null) { - sProviderInstance = (WebViewFactoryProvider) - staticFactory.invoke(null, new WebViewDelegate()); - } else { - sProviderInstance = providerClass.getConstructor(WebViewDelegate.class) - .newInstance(new WebViewDelegate()); - } + sProviderInstance = (WebViewFactoryProvider) + staticFactory.invoke(null, new WebViewDelegate()); if (DEBUG) Log.v(LOGTAG, "Loaded provider: " + sProviderInstance); return sProviderInstance; } catch (Exception e) { @@ -384,8 +371,7 @@ public final class WebViewFactory { Trace.traceBegin(Trace.TRACE_TAG_WEBVIEW, "Class.forName()"); try { return getWebViewProviderClass(clazzLoader); - } - finally { + } finally { Trace.traceEnd(Trace.TRACE_TAG_WEBVIEW); } } catch (ClassNotFoundException e) { |
