Commit 58274f4e authored by Nate Fischer's avatar Nate Fischer Committed by Commit Bot

Code inclusion: add setSafeBrowsingAllowlist boundary interface

This adds setSafeBrowsingAllowlist (behind the DEV_SUFFIX) and
deprecates the setSafeBrowsingWhitelist boundary interface. These are
functionally similar, although setSafeBrowsingAllowlist accepts a
Set<String> since this is a more appropriate data type.

This adds an UMA counter for the new API and adds missing enum labels
for other APIs.

This CL also renames a couple references to the old API to be
SET_SAFE_BROWSING_ALLOWLIST_DEPRECATED_NAME instead, to minimize
non-inclusive terminology.

Fixed: 1108667
Test: N/A
Change-Id: I49ef11e4346e631e14b822943abb6482837d60a4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2321523
Auto-Submit: Nate Fischer <ntfschr@chromium.org>
Commit-Queue: Laís Minchillo <laisminchillo@chromium.org>
Reviewed-by: default avatarLaís Minchillo <laisminchillo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#792830}
parent 64965359
...@@ -9,12 +9,14 @@ import android.net.Uri; ...@@ -9,12 +9,14 @@ import android.net.Uri;
import android.webkit.ValueCallback; import android.webkit.ValueCallback;
import java.util.List; import java.util.List;
import java.util.Set;
/** /**
* Boundary interface for WebViewFactoryProvider.Statics. * Boundary interface for WebViewFactoryProvider.Statics.
*/ */
public interface StaticsBoundaryInterface { public interface StaticsBoundaryInterface {
void initSafeBrowsing(Context context, ValueCallback<Boolean> callback); void initSafeBrowsing(Context context, ValueCallback<Boolean> callback);
void setSafeBrowsingAllowlist(Set<String> hosts, ValueCallback<Boolean> callback);
void setSafeBrowsingWhitelist(List<String> hosts, ValueCallback<Boolean> callback); void setSafeBrowsingWhitelist(List<String> hosts, ValueCallback<Boolean> callback);
Uri getSafeBrowsingPrivacyPolicyUrl(); Uri getSafeBrowsingPrivacyPolicyUrl();
boolean isMultiProcessEnabled(); boolean isMultiProcessEnabled();
......
...@@ -47,6 +47,9 @@ public class Features { ...@@ -47,6 +47,9 @@ public class Features {
// WebViewCompat.startSafeBrowsing // WebViewCompat.startSafeBrowsing
public static final String START_SAFE_BROWSING = "START_SAFE_BROWSING"; public static final String START_SAFE_BROWSING = "START_SAFE_BROWSING";
// WebViewCompat.setSafeBrowsingAllowlist
public static final String SAFE_BROWSING_ALLOWLIST = "SAFE_BROWSING_ALLOWLIST";
// WebViewCompat.setSafeBrowsingWhitelist // WebViewCompat.setSafeBrowsingWhitelist
public static final String SAFE_BROWSING_WHITELIST = "SAFE_BROWSING_WHITELIST"; public static final String SAFE_BROWSING_WHITELIST = "SAFE_BROWSING_WHITELIST";
......
...@@ -25,7 +25,9 @@ import org.chromium.support_lib_boundary.util.BoundaryInterfaceReflectionUtil; ...@@ -25,7 +25,9 @@ import org.chromium.support_lib_boundary.util.BoundaryInterfaceReflectionUtil;
import org.chromium.support_lib_boundary.util.Features; import org.chromium.support_lib_boundary.util.Features;
import java.lang.reflect.InvocationHandler; import java.lang.reflect.InvocationHandler;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Set;
/** /**
* Support library glue version of WebViewChromiumFactoryProvider. * Support library glue version of WebViewChromiumFactoryProvider.
...@@ -42,6 +44,7 @@ class SupportLibWebViewChromiumFactory implements WebViewProviderFactoryBoundary ...@@ -42,6 +44,7 @@ class SupportLibWebViewChromiumFactory implements WebViewProviderFactoryBoundary
Features.SAFE_BROWSING_ENABLE, Features.SAFE_BROWSING_ENABLE,
Features.DISABLED_ACTION_MODE_MENU_ITEMS, Features.DISABLED_ACTION_MODE_MENU_ITEMS,
Features.START_SAFE_BROWSING, Features.START_SAFE_BROWSING,
Features.SAFE_BROWSING_ALLOWLIST + Features.DEV_SUFFIX,
Features.SAFE_BROWSING_WHITELIST, Features.SAFE_BROWSING_WHITELIST,
Features.SAFE_BROWSING_PRIVACY_POLICY_URL, Features.SAFE_BROWSING_PRIVACY_POLICY_URL,
Features.SERVICE_WORKER_BASIC_USAGE, Features.SERVICE_WORKER_BASIC_USAGE,
...@@ -110,7 +113,7 @@ class SupportLibWebViewChromiumFactory implements WebViewProviderFactoryBoundary ...@@ -110,7 +113,7 @@ class SupportLibWebViewChromiumFactory implements WebViewProviderFactoryBoundary
ApiCall.SERVICE_WORKER_SETTINGS_SET_BLOCK_NETWORK_LOADS, ApiCall.SERVICE_WORKER_SETTINGS_SET_BLOCK_NETWORK_LOADS,
ApiCall.SERVICE_WORKER_SETTINGS_SET_CACHE_MODE, ApiCall.SERVICE_WORKER_SETTINGS_SET_CACHE_MODE,
ApiCall.SET_PROXY_OVERRIDE, ApiCall.SET_PROXY_OVERRIDE,
ApiCall.SET_SAFE_BROWSING_WHITELIST, ApiCall.SET_SAFE_BROWSING_ALLOWLIST_DEPRECATED_NAME,
ApiCall.SET_SERVICE_WORKER_CLIENT, ApiCall.SET_SERVICE_WORKER_CLIENT,
ApiCall.SET_WEBVIEW_RENDERER_CLIENT, ApiCall.SET_WEBVIEW_RENDERER_CLIENT,
ApiCall.TRACING_CONTROLLER_IS_TRACING, ApiCall.TRACING_CONTROLLER_IS_TRACING,
...@@ -137,7 +140,8 @@ class SupportLibWebViewChromiumFactory implements WebViewProviderFactoryBoundary ...@@ -137,7 +140,8 @@ class SupportLibWebViewChromiumFactory implements WebViewProviderFactoryBoundary
ApiCall.WEB_SETTINGS_SET_WILL_SUPPRESS_ERROR_PAGE, ApiCall.WEB_SETTINGS_SET_WILL_SUPPRESS_ERROR_PAGE,
ApiCall.WEBVIEW_RENDERER_TERMINATE, ApiCall.WEBVIEW_RENDERER_TERMINATE,
ApiCall.ADD_DOCUMENT_START_SCRIPT, ApiCall.ADD_DOCUMENT_START_SCRIPT,
ApiCall.REMOVE_DOCUMENT_START_SCRIPT}) ApiCall.REMOVE_DOCUMENT_START_SCRIPT,
ApiCall.SET_SAFE_BROWSING_ALLOWLIST})
public @interface ApiCall { public @interface ApiCall {
int ADD_WEB_MESSAGE_LISTENER = 0; int ADD_WEB_MESSAGE_LISTENER = 0;
int CLEAR_PROXY_OVERRIDE = 1; int CLEAR_PROXY_OVERRIDE = 1;
...@@ -165,7 +169,7 @@ class SupportLibWebViewChromiumFactory implements WebViewProviderFactoryBoundary ...@@ -165,7 +169,7 @@ class SupportLibWebViewChromiumFactory implements WebViewProviderFactoryBoundary
int SERVICE_WORKER_SETTINGS_SET_BLOCK_NETWORK_LOADS = 23; int SERVICE_WORKER_SETTINGS_SET_BLOCK_NETWORK_LOADS = 23;
int SERVICE_WORKER_SETTINGS_SET_CACHE_MODE = 24; int SERVICE_WORKER_SETTINGS_SET_CACHE_MODE = 24;
int SET_PROXY_OVERRIDE = 25; int SET_PROXY_OVERRIDE = 25;
int SET_SAFE_BROWSING_WHITELIST = 26; int SET_SAFE_BROWSING_ALLOWLIST_DEPRECATED_NAME = 26;
int SET_SERVICE_WORKER_CLIENT = 27; int SET_SERVICE_WORKER_CLIENT = 27;
int SET_WEBVIEW_RENDERER_CLIENT = 28; int SET_WEBVIEW_RENDERER_CLIENT = 28;
int TRACING_CONTROLLER_IS_TRACING = 29; int TRACING_CONTROLLER_IS_TRACING = 29;
...@@ -193,7 +197,8 @@ class SupportLibWebViewChromiumFactory implements WebViewProviderFactoryBoundary ...@@ -193,7 +197,8 @@ class SupportLibWebViewChromiumFactory implements WebViewProviderFactoryBoundary
int WEBVIEW_RENDERER_TERMINATE = 51; int WEBVIEW_RENDERER_TERMINATE = 51;
int ADD_DOCUMENT_START_SCRIPT = 52; int ADD_DOCUMENT_START_SCRIPT = 52;
int REMOVE_DOCUMENT_START_SCRIPT = 53; int REMOVE_DOCUMENT_START_SCRIPT = 53;
int COUNT = 54; int SET_SAFE_BROWSING_ALLOWLIST = 54;
int COUNT = 55;
} }
// clang-format on // clang-format on
...@@ -238,9 +243,16 @@ class SupportLibWebViewChromiumFactory implements WebViewProviderFactoryBoundary ...@@ -238,9 +243,16 @@ class SupportLibWebViewChromiumFactory implements WebViewProviderFactoryBoundary
mSharedStatics.initSafeBrowsing(context, CallbackConverter.fromValueCallback(callback)); mSharedStatics.initSafeBrowsing(context, CallbackConverter.fromValueCallback(callback));
} }
@Override
public void setSafeBrowsingAllowlist(Set<String> hosts, ValueCallback<Boolean> callback) {
recordApiCall(ApiCall.SET_SAFE_BROWSING_ALLOWLIST);
mSharedStatics.setSafeBrowsingAllowlist(
new ArrayList<>(hosts), CallbackConverter.fromValueCallback(callback));
}
@Override @Override
public void setSafeBrowsingWhitelist(List<String> hosts, ValueCallback<Boolean> callback) { public void setSafeBrowsingWhitelist(List<String> hosts, ValueCallback<Boolean> callback) {
recordApiCall(ApiCall.SET_SAFE_BROWSING_WHITELIST); recordApiCall(ApiCall.SET_SAFE_BROWSING_ALLOWLIST_DEPRECATED_NAME);
mSharedStatics.setSafeBrowsingAllowlist( mSharedStatics.setSafeBrowsingAllowlist(
hosts, CallbackConverter.fromValueCallback(callback)); hosts, CallbackConverter.fromValueCallback(callback));
} }
......
...@@ -2181,7 +2181,7 @@ Unknown properties are collapsed to zero. --> ...@@ -2181,7 +2181,7 @@ Unknown properties are collapsed to zero. -->
<int value="25" label="SET_PROXY_OVERRIDE"> <int value="25" label="SET_PROXY_OVERRIDE">
ProxyController#setProxyOverride(Executor,Runnable) ProxyController#setProxyOverride(Executor,Runnable)
</int> </int>
<int value="26" label="SET_SAFE_BROWSING_WHITELIST"> <int value="26" label="SET_SAFE_BROWSING_ALLOWLIST_DEPRECATED_NAME">
WebViewCompat#setSafeBrowsingWhitelist(List(String),ValueCallback(Boolean)) WebViewCompat#setSafeBrowsingWhitelist(List(String),ValueCallback(Boolean))
</int> </int>
<int value="27" label="SET_SERVICE_WORKER_CLIENT"> <int value="27" label="SET_SERVICE_WORKER_CLIENT">
...@@ -2257,6 +2257,15 @@ Unknown properties are collapsed to zero. --> ...@@ -2257,6 +2257,15 @@ Unknown properties are collapsed to zero. -->
<int value="51" label="WEBVIEW_RENDERER_TERMINATE"> <int value="51" label="WEBVIEW_RENDERER_TERMINATE">
WebViewRenderProcess#terminate() WebViewRenderProcess#terminate()
</int> </int>
<int value="52" label="ADD_DOCUMENT_START_SCRIPT">
WebViewCompat#addDocumentStartJavaScript(String,String[])
</int>
<int value="53" label="REMOVE_DOCUMENT_START_SCRIPT">
ScriptReference#remove()
</int>
<int value="54" label="SET_SAFE_BROWSING_ALLOWLIST">
WebViewCompat#setSafeBrowsingAllowlist(Set(String),ValueCallback(Boolean))
</int>
</enum> </enum>
<enum name="ANGLEProgramCacheResult"> <enum name="ANGLEProgramCacheResult">
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment