summaryrefslogtreecommitdiffstats
path: root/android_webview/native/aw_web_contents_delegate.cc
diff options
context:
space:
mode:
authormichaelbai@chromium.org <michaelbai@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-01 17:54:13 +0000
committermichaelbai@chromium.org <michaelbai@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-01 17:54:13 +0000
commit32e2d4aacf5d229b8a1093b65be843b5bdb108f1 (patch)
treef80d4e4ef85587baf5fa46614626f1fffd6d1d9a /android_webview/native/aw_web_contents_delegate.cc
parent9add968b325d9dc9c46276fa0de34df5777d0887 (diff)
downloadchromium_src-32e2d4aacf5d229b8a1093b65be843b5bdb108f1.zip
chromium_src-32e2d4aacf5d229b8a1093b65be843b5bdb108f1.tar.gz
chromium_src-32e2d4aacf5d229b8a1093b65be843b5bdb108f1.tar.bz2
This patch is also implements the general permission request.
- AwPermissionRequest wraps a permission request. - AwPermissionRequestDelegate interface should be implemented by specific permission request like media access permission request. - PermissionRequestHandler, send the request to AwContentsClient or Cancel a ongoing request. NOTRY=true BUG=363301 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=267495 Review URL: https://codereview.chromium.org/239793002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@267576 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'android_webview/native/aw_web_contents_delegate.cc')
-rw-r--r--android_webview/native/aw_web_contents_delegate.cc19
1 files changed, 19 insertions, 0 deletions
diff --git a/android_webview/native/aw_web_contents_delegate.cc b/android_webview/native/aw_web_contents_delegate.cc
index 3c5c40e..c91f6d3 100644
--- a/android_webview/native/aw_web_contents_delegate.cc
+++ b/android_webview/native/aw_web_contents_delegate.cc
@@ -8,6 +8,8 @@
#include "android_webview/browser/find_helper.h"
#include "android_webview/native/aw_contents.h"
#include "android_webview/native/aw_contents_io_thread_client_impl.h"
+#include "android_webview/native/permission/media_access_permission_request.h"
+#include "android_webview/native/permission/permission_request_handler.h"
#include "base/android/jni_array.h"
#include "base/android/jni_string.h"
#include "base/android/scoped_java_ref.h"
@@ -18,6 +20,7 @@
#include "content/public/browser/render_view_host.h"
#include "content/public/browser/web_contents.h"
#include "content/public/common/file_chooser_params.h"
+#include "content/public/common/media_stream_request.h"
#include "jni/AwWebContentsDelegate_jni.h"
#include "ui/shell_dialogs/selected_file_info.h"
@@ -188,6 +191,22 @@ void AwWebContentsDelegate::ActivateContents(WebContents* contents) {
}
}
+void AwWebContentsDelegate::RequestMediaAccessPermission(
+ WebContents* web_contents,
+ const content::MediaStreamRequest& request,
+ const content::MediaResponseCallback& callback) {
+ AwContents* aw_contents = AwContents::FromWebContents(web_contents);
+ if (!aw_contents) {
+ callback.Run(content::MediaStreamDevices(),
+ content::MEDIA_DEVICE_INVALID_STATE,
+ scoped_ptr<content::MediaStreamUI>().Pass());
+ return;
+ }
+ aw_contents->GetPermissionRequestHandler()->SendRequest(
+ scoped_ptr<AwPermissionRequestDelegate>(
+ new MediaAccessPermissionRequest(request, callback)));
+}
+
static void FilesSelectedInChooser(
JNIEnv* env, jclass clazz,
jint process_id, jint render_id, jint mode_flags,