summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Murdoch <benm@google.com>2014-04-04 21:19:37 +0100
committerBen Murdoch <benm@google.com>2014-05-16 13:00:58 +0000
commit88ac9a5610dedad6614a35ce2d7b110733ab7167 (patch)
tree519ae76d3890ce59cf00d8a750ee102481d542e4
parentd4b5cb0f034e5d0bd1edc2676ae910084f9e04d9 (diff)
downloadwebview-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.mk31
-rw-r--r--nullwebview/java/com/android/webview/nullwebview/NullWebViewFactoryProvider.java68
-rw-r--r--nullwebview/proguard.flags11
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 *;
+}
+