summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGustav Sennton <gsennton@google.com>2018-02-15 01:11:48 +0000
committerandroid-build-merger <android-build-merger@google.com>2018-02-15 01:11:48 +0000
commitdb640b591a80ffc93470d923969fe4fe85aa38bd (patch)
tree9f71fed4dadda8194d3e9d5078659bcdb812bb16
parentcb5e083e36c470b85ecd88ee8490a55946a78c61 (diff)
parent2dcef84ac923ce1a9c064676f52d74ca8121f2eb (diff)
downloadwebview_support_interfaces-db640b591a80ffc93470d923969fe4fe85aa38bd.tar.gz
[WebView] Add directory for interfaces between support library and glue
am: 2dcef84ac9 Change-Id: I538754bfcb0082bf1dd6b7c626e26337efea8f58
-rw-r--r--BUILD.gn19
-rw-r--r--DEPS10
-rw-r--r--src/org/chromium/support_lib_boundary/VisualStateCallbackInterface.java9
-rw-r--r--src/org/chromium/support_lib_boundary/WebSettingsInterface.java16
-rw-r--r--src/org/chromium/support_lib_boundary/WebViewProvider.java16
-rw-r--r--src/org/chromium/support_lib_boundary/WebViewProviderFactory.java16
6 files changed, 86 insertions, 0 deletions
diff --git a/BUILD.gn b/BUILD.gn
new file mode 100644
index 0000000..66f2fee
--- /dev/null
+++ b/BUILD.gn
@@ -0,0 +1,19 @@
+# Copyright 2017 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/config/android/config.gni")
+import("//build/config/android/rules.gni")
+
+android_library("boundary_interface_java") {
+ java_files = [
+ "src/org/chromium/support_lib_boundary/VisualStateCallbackInterface.java",
+ "src/org/chromium/support_lib_boundary/WebSettingsInterface.java",
+ "src/org/chromium/support_lib_boundary/WebViewProvider.java",
+ "src/org/chromium/support_lib_boundary/WebViewProviderFactory.java",
+ ]
+
+ # We can't use ANY deps here, the support library should be able to build
+ # these interfaces without any other chromium dependencies.
+ deps = []
+}
diff --git a/DEPS b/DEPS
new file mode 100644
index 0000000..7721534
--- /dev/null
+++ b/DEPS
@@ -0,0 +1,10 @@
+
+# This directory cannot depend on ANYTHING else in chromium
+# These negative rules just rule out some of the major components.
+include_rules = [
+ "-base",
+ "-chrome",
+ "-components",
+ "-content",
+ "-services",
+]
diff --git a/src/org/chromium/support_lib_boundary/VisualStateCallbackInterface.java b/src/org/chromium/support_lib_boundary/VisualStateCallbackInterface.java
new file mode 100644
index 0000000..1511191
--- /dev/null
+++ b/src/org/chromium/support_lib_boundary/VisualStateCallbackInterface.java
@@ -0,0 +1,9 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.support_lib_boundary;
+
+/**
+ */
+public interface VisualStateCallbackInterface { void onComplete(long requestId); }
diff --git a/src/org/chromium/support_lib_boundary/WebSettingsInterface.java b/src/org/chromium/support_lib_boundary/WebSettingsInterface.java
new file mode 100644
index 0000000..c138afb
--- /dev/null
+++ b/src/org/chromium/support_lib_boundary/WebSettingsInterface.java
@@ -0,0 +1,16 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.support_lib_boundary;
+
+// Technically this interface is not needed until we add a method to WebSettings with an
+// android.webkit parameter or android.webkit return value. But for forwards compatibility all
+// app-facing classes should have a boundary-interface that the WebView glue layer can build
+// against.
+/**
+ */
+public interface WebSettingsInterface {
+ void setSafeBrowsingEnabled(boolean enabled);
+ boolean getSafeBrowsingEnabled();
+}
diff --git a/src/org/chromium/support_lib_boundary/WebViewProvider.java b/src/org/chromium/support_lib_boundary/WebViewProvider.java
new file mode 100644
index 0000000..977902d
--- /dev/null
+++ b/src/org/chromium/support_lib_boundary/WebViewProvider.java
@@ -0,0 +1,16 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.support_lib_boundary;
+
+import java.lang.reflect.InvocationHandler;
+
+/**
+ */
+public interface WebViewProvider {
+ void insertVisualStateCallback(long requestId,
+ InvocationHandler
+ /* org.chromium.sup_lib_boundary.VisualStateCallback */ callbackInvoHandler);
+ InvocationHandler /* org.chromium.sup_lib_boundary.WebSettingsInterface */ getSettings();
+}
diff --git a/src/org/chromium/support_lib_boundary/WebViewProviderFactory.java b/src/org/chromium/support_lib_boundary/WebViewProviderFactory.java
new file mode 100644
index 0000000..734e281
--- /dev/null
+++ b/src/org/chromium/support_lib_boundary/WebViewProviderFactory.java
@@ -0,0 +1,16 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.support_lib_boundary;
+
+import java.lang.reflect.InvocationHandler;
+
+/**
+ */
+public interface WebViewProviderFactory {
+ // android.webkit.WebViewProvider is in the SystemApi, not public, so we pass it as an Object
+ // here.
+ InvocationHandler /* org.chromium.sup_lib_boundary.WebViewProvider */ createWebView(
+ Object /* android.webkit.WebViewProvider */ webviewProvider);
+}