summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAashna <aashnajena@google.com>2023-11-14 18:52:53 +0000
committerCopybara-Service <copybara-worker@google.com>2023-11-14 10:58:42 -0800
commitf047724010e0caccfafebb541e0253d987cb151b (patch)
tree61d6d3d32f7e796aada5b197aae00c85ae47dd4b
parentd5bfe6361a31c97f1049683c3407b627dfbfdc90 (diff)
downloadwebview_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.java19
-rw-r--r--src/org/chromium/support_lib_boundary/util/Features.java5
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";
}