From 8965377b699cebf37f150b8c97e1f594eadf4895 Mon Sep 17 00:00:00 2001 From: Tao Bai Date: Wed, 17 Jun 2015 17:34:07 -0700 Subject: [PATCH] Add WebView permission MIDI sysex Change-Id: I0d27e8ca48ee35b02dddc5d85ecfebfdaa3ec8cb --- api/current.txt | 1 + api/system-current.txt | 1 + .../android/webkit/PermissionRequest.java | 19 +++++++++++++++++++ 3 files changed, 21 insertions(+) diff --git a/api/current.txt b/api/current.txt index c27778411556c..7d58bdbed558e 100644 --- a/api/current.txt +++ b/api/current.txt @@ -38798,6 +38798,7 @@ package android.webkit { method public abstract java.lang.String[] getResources(); method public abstract void grant(java.lang.String[]); field public static final java.lang.String RESOURCE_AUDIO_CAPTURE = "android.webkit.resource.AUDIO_CAPTURE"; + field public static final java.lang.String RESOURCE_MIDI_SYSEX = "android.webkit.resource.MIDI_SYSEX"; field public static final java.lang.String RESOURCE_PROTECTED_MEDIA_ID = "android.webkit.resource.PROTECTED_MEDIA_ID"; field public static final java.lang.String RESOURCE_VIDEO_CAPTURE = "android.webkit.resource.VIDEO_CAPTURE"; } diff --git a/api/system-current.txt b/api/system-current.txt index dd05c1b53550c..2e2a23a533823 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -41131,6 +41131,7 @@ package android.webkit { method public abstract java.lang.String[] getResources(); method public abstract void grant(java.lang.String[]); field public static final java.lang.String RESOURCE_AUDIO_CAPTURE = "android.webkit.resource.AUDIO_CAPTURE"; + field public static final java.lang.String RESOURCE_MIDI_SYSEX = "android.webkit.resource.MIDI_SYSEX"; field public static final java.lang.String RESOURCE_PROTECTED_MEDIA_ID = "android.webkit.resource.PROTECTED_MEDIA_ID"; field public static final java.lang.String RESOURCE_VIDEO_CAPTURE = "android.webkit.resource.VIDEO_CAPTURE"; } diff --git a/core/java/android/webkit/PermissionRequest.java b/core/java/android/webkit/PermissionRequest.java index 6ad639c1c58f3..18ec334d0283a 100644 --- a/core/java/android/webkit/PermissionRequest.java +++ b/core/java/android/webkit/PermissionRequest.java @@ -26,6 +26,16 @@ import android.net.Uri; * * Either {@link #grant(String[]) grant()} or {@link #deny()} must be called in UI * thread to respond to the request. + * + * New protected resources whose names are not defined here may be requested in + * future versions of WebView, even when running on an older Android release. To + * avoid unintentionally granting requests for new permissions, you should pass the + * specific permissions you intend to grant to {@link #grant(String[]) grant()}, + * and avoid writing code like this example: + *
+ * permissionRequest.grant(permissionRequest.getResources())  // This is wrong!!!
+ * 
+ * See the WebView's release notes for information about new protected resources. */ public abstract class PermissionRequest { /** @@ -43,6 +53,15 @@ public abstract class PermissionRequest { */ public final static String RESOURCE_PROTECTED_MEDIA_ID = "android.webkit.resource.PROTECTED_MEDIA_ID"; + /** + * Resource will allow sysex messages to be sent to or received from MIDI devices. These + * messages are privileged operations, e.g. modifying sound libraries and sampling data, or + * even updating the MIDI device's firmware. + * + * Permission may be requested for this resource in API levels 21 and above, if the Android + * device has been updated to WebView 45 or above. + */ + public final static String RESOURCE_MIDI_SYSEX = "android.webkit.resource.MIDI_SYSEX"; /** * Call this method to get the origin of the web page which is trying to access