Add support for WebSettingsCompat. am: 6903c25f93 am: 91bf122a2d
am: a9c4bbe23f

Change-Id: I229408184e2c63b9ffd8428670b069c0371bb081
diff --git a/BUILD.gn b/BUILD.gn
index 0a73e73..378e626 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -12,6 +12,7 @@
     "src/org/chromium/support_lib_boundary/WebSettingsBoundaryInterface.java",
     "src/org/chromium/support_lib_boundary/WebViewProviderBoundaryInterface.java",
     "src/org/chromium/support_lib_boundary/WebViewProviderFactoryBoundaryInterface.java",
+    "src/org/chromium/support_lib_boundary/WebkitToCompatConverterBoundaryInterface.java",
   ]
 
   # We can't use ANY deps here, the support library should be able to build
diff --git a/src/org/chromium/support_lib_boundary/WebSettingsBoundaryInterface.java b/src/org/chromium/support_lib_boundary/WebSettingsBoundaryInterface.java
index 4ee8d6b..428a3cc 100644
--- a/src/org/chromium/support_lib_boundary/WebSettingsBoundaryInterface.java
+++ b/src/org/chromium/support_lib_boundary/WebSettingsBoundaryInterface.java
@@ -9,8 +9,15 @@
 // app-facing classes should have a boundary-interface that the WebView glue layer can build
 // against.
 /**
+ * Boundary interface for WebSettingsCompat.
  */
 public interface WebSettingsBoundaryInterface {
+    void setOffscreenPreRaster(boolean enabled);
+    boolean getOffscreenPreRaster();
+
     void setSafeBrowsingEnabled(boolean enabled);
     boolean getSafeBrowsingEnabled();
+
+    void setDisabledActionModeMenuItems(int menuItems);
+    int getDisabledActionModeMenuItems();
 }
diff --git a/src/org/chromium/support_lib_boundary/WebViewProviderFactoryBoundaryInterface.java b/src/org/chromium/support_lib_boundary/WebViewProviderFactoryBoundaryInterface.java
index 47ff918..21bd49c 100644
--- a/src/org/chromium/support_lib_boundary/WebViewProviderFactoryBoundaryInterface.java
+++ b/src/org/chromium/support_lib_boundary/WebViewProviderFactoryBoundaryInterface.java
@@ -11,5 +11,6 @@
 /**
  */
 public interface WebViewProviderFactoryBoundaryInterface {
-    /* SupportLibraryWebViewProvider */ InvocationHandler createWebView(WebView webview);
+    /* SupportLibraryWebViewChromium */ InvocationHandler createWebView(WebView webview);
+    /* SupportLibWebkitToCompatConverter */ InvocationHandler getWebkitToCompatConverter();
 }
diff --git a/src/org/chromium/support_lib_boundary/WebkitToCompatConverterBoundaryInterface.java b/src/org/chromium/support_lib_boundary/WebkitToCompatConverterBoundaryInterface.java
new file mode 100644
index 0000000..95068cf
--- /dev/null
+++ b/src/org/chromium/support_lib_boundary/WebkitToCompatConverterBoundaryInterface.java
@@ -0,0 +1,17 @@
+// Copyright 2018 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 android.webkit.WebSettings;
+
+import java.lang.reflect.InvocationHandler;
+
+/**
+ * Boundary interface for a class used for converting webkit objects into Compat (support library)
+ * objects.
+ */
+public interface WebkitToCompatConverterBoundaryInterface {
+    /* SupportLibraryWebSettings */ InvocationHandler convertSettings(WebSettings webSettings);
+}