diff options
author | Aashna <aashnajena@google.com> | 2023-11-14 18:52:53 +0000 |
---|---|---|
committer | Copybara-Service <copybara-worker@google.com> | 2023-11-14 10:58:42 -0800 |
commit | f047724010e0caccfafebb541e0253d987cb151b (patch) | |
tree | 61d6d3d32f7e796aada5b197aae00c85ae47dd4b | |
parent | d5bfe6361a31c97f1049683c3407b627dfbfdc90 (diff) | |
download | webview_support_interfaces-f047724010e0caccfafebb541e0253d987cb151b.tar.gz |
Add support for get/set WebView Media Integrity API config AndroidX API
Plumbing for following AndroidX APIs:
- getWebViewMediaIntegrityApiStatus
- setWebViewMediaIntegrityApiStatus
Perform explicit conversion between boundary interface status types and
internal config status types in case both accidentally diverge at some
point.
Design Doc: go/wv-pia-design-androidx
Bug: b/301393651
Change-Id: I01bbfde44ea308d13c951750c15363cd99ce5390
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5002172
Reviewed-by: Michael van Ouwerkerk <mvanouwerkerk@chromium.org>
Commit-Queue: Aashna Jena <aashnajena@google.com>
Auto-Submit: Aashna Jena <aashnajena@google.com>
Reviewed-by: Peter Beverloo <peter@chromium.org>
Reviewed-by: Peter Pakkenberg <pbirk@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1224423}
NOKEYCHECK=True
GitOrigin-RevId: ab8cc3d83dcf4df23f2b81a4d38112ca0dc42ba3
-rw-r--r-- | src/org/chromium/support_lib_boundary/WebSettingsBoundaryInterface.java | 19 | ||||
-rw-r--r-- | src/org/chromium/support_lib_boundary/util/Features.java | 5 |
2 files changed, 24 insertions, 0 deletions
diff --git a/src/org/chromium/support_lib_boundary/WebSettingsBoundaryInterface.java b/src/org/chromium/support_lib_boundary/WebSettingsBoundaryInterface.java index f41fcb0..8555ea2 100644 --- a/src/org/chromium/support_lib_boundary/WebSettingsBoundaryInterface.java +++ b/src/org/chromium/support_lib_boundary/WebSettingsBoundaryInterface.java @@ -9,8 +9,10 @@ package org.chromium.support_lib_boundary; // app-facing classes should have a boundary-interface that the WebView glue layer can build // against. +import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.util.Map; import java.util.Set; @@ -79,4 +81,21 @@ public interface WebSettingsBoundaryInterface { @AttributionBehavior int getAttributionBehavior(); + + @Target(ElementType.TYPE_USE) + @Retention(RetentionPolicy.SOURCE) + @interface WebViewMediaIntegrityApiStatus { + int DISABLED = 0; + int ENABLED_WITHOUT_APP_IDENTITY = 1; + int ENABLED = 2; + } + + void setWebViewMediaIntegrityApiStatus( + @WebViewMediaIntegrityApiStatus int defaultPermission, + Map<String, @WebViewMediaIntegrityApiStatus Integer> permissionConfig); + + @WebViewMediaIntegrityApiStatus + int getWebViewMediaIntegrityApiDefaultStatus(); + + Map<String, @WebViewMediaIntegrityApiStatus Integer> getWebViewMediaIntegrityApiOverrideRules(); } diff --git a/src/org/chromium/support_lib_boundary/util/Features.java b/src/org/chromium/support_lib_boundary/util/Features.java index 20200e1..d2e99f3 100644 --- a/src/org/chromium/support_lib_boundary/util/Features.java +++ b/src/org/chromium/support_lib_boundary/util/Features.java @@ -266,4 +266,9 @@ public class Features { // WebSettingsCompat.setAttributionBehavior // WebSettingsCompat.getAttributionBehavior public static final String ATTRIBUTION_BEHAVIOR = "ATTRIBUTION_BEHAVIOR"; + + // WebSettingsCompat.setWebViewMediaIntegrityApiStatus + // WebSettingsCompat.getWebViewMediaIntegrityApiDefaultStatus + // WebSettingsCompat.getWebViewMediaIntegrityApiOverrideRules + public static final String WEBVIEW_MEDIA_INTEGRITY_API_STATUS = "WEBVIEW_INTEGRITY_API_STATUS"; } |