diff options
author | Ben Murdoch <benm@google.com> | 2014-04-04 21:19:37 +0100 |
---|---|---|
committer | Ben Murdoch <benm@google.com> | 2014-05-16 13:00:58 +0000 |
commit | 88ac9a5610dedad6614a35ce2d7b110733ab7167 (patch) | |
tree | 519ae76d3890ce59cf00d8a750ee102481d542e4 | |
parent | d4b5cb0f034e5d0bd1edc2676ae910084f9e04d9 (diff) | |
download | webview-88ac9a5610dedad6614a35ce2d7b110733ab7167.tar.gz |
Add NullWebViewFactoryProvider.
This is a WebView implementation that simply throws
UnsupportedOperationException for each entry point to
the WebView. Intended for devices that do not intend
to ship a WebView implementation.
Bug: 13438487
Change-Id: I6afa169fa31db82c45c0a507e265301e48ac79dc
(cherry picked from commit 4a3d672f44f1bc30aeed9cb53dfe34d6638a2ff8)
-rw-r--r-- | nullwebview/Android.mk | 31 | ||||
-rw-r--r-- | nullwebview/java/com/android/webview/nullwebview/NullWebViewFactoryProvider.java | 68 | ||||
-rw-r--r-- | nullwebview/proguard.flags | 11 |
3 files changed, 110 insertions, 0 deletions
diff --git a/nullwebview/Android.mk b/nullwebview/Android.mk new file mode 100644 index 0000000..a6f195e --- /dev/null +++ b/nullwebview/Android.mk @@ -0,0 +1,31 @@ +# +# Copyright (C) 2014 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. +# + +LOCAL_PATH := $(call my-dir) + +include $(CLEAR_VARS) + +LOCAL_MODULE := nullwebview + +LOCAL_MODULE_TAGS := optional + +LOCAL_SRC_FILES := $(call all-java-files-under, java) + +LOCAL_PROGUARD_ENABLED := full +LOCAL_PROGUARD_FLAG_FILES := proguard.flags + +include $(BUILD_JAVA_LIBRARY) + diff --git a/nullwebview/java/com/android/webview/nullwebview/NullWebViewFactoryProvider.java b/nullwebview/java/com/android/webview/nullwebview/NullWebViewFactoryProvider.java new file mode 100644 index 0000000..2f993cc --- /dev/null +++ b/nullwebview/java/com/android/webview/nullwebview/NullWebViewFactoryProvider.java @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2014 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.webview.nullwebview; + +import android.content.Context; +import android.webkit.CookieManager; +import android.webkit.GeolocationPermissions; +import android.webkit.WebIconDatabase; +import android.webkit.WebStorage; +import android.webkit.WebView; +import android.webkit.WebViewDatabase; +import android.webkit.WebViewFactoryProvider; +import android.webkit.WebViewProvider; + +public class NullWebViewFactoryProvider implements WebViewFactoryProvider { + + public NullWebViewFactoryProvider() { + } + + @Override + public WebViewFactoryProvider.Statics getStatics() { + throw new UnsupportedOperationException(); + } + + @Override + public WebViewProvider createWebView(WebView webView, WebView.PrivateAccess privateAccess) { + throw new UnsupportedOperationException(); + } + + @Override + public GeolocationPermissions getGeolocationPermissions() { + throw new UnsupportedOperationException(); + } + + @Override + public CookieManager getCookieManager() { + throw new UnsupportedOperationException(); + } + + @Override + public WebIconDatabase getWebIconDatabase() { + throw new UnsupportedOperationException(); + } + + @Override + public WebStorage getWebStorage() { + throw new UnsupportedOperationException(); + } + + @Override + public WebViewDatabase getWebViewDatabase(Context context) { + throw new UnsupportedOperationException(); + } +} diff --git a/nullwebview/proguard.flags b/nullwebview/proguard.flags new file mode 100644 index 0000000..a4021a6 --- /dev/null +++ b/nullwebview/proguard.flags @@ -0,0 +1,11 @@ +# Most of the flags in this file are duplicated to refer to both the pre- and +# post-jarjar remapping versions of the class names. This enables the same +# config file to be used whether jarjar is enabled or not. + + +# Keep the factory and its public members; it's the main entry point used by the +# framework. +-keep class com.android.webview.nullwebview.NullWebViewFactoryProvider { + public *; +} + |