Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2438)

Unified Diff: android_webview/native/aw_web_contents_delegate.cc

Issue 239793002: Handle media access permission request (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: android_webview/native/aw_web_contents_delegate.cc
diff --git a/android_webview/native/aw_web_contents_delegate.cc b/android_webview/native/aw_web_contents_delegate.cc
index 3c5c40efa238c8cbfb98b35553acad77e066347a..c3c941e3f6669d8b2734f22ae7b78ac396a33e6d 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,25 @@ 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;
+ }
+
+ // AwPermissionRequest owns the MediaAccessPermissionRequest.
+ scoped_refptr<AwPermissionRequest> permission_request =
+ new AwPermissionRequest(new MediaAccessPermissionRequest(request,
+ callback));
+ aw_contents->GetPermissionRequestHandler()->SendRequest(permission_request);
mkosiba (inactive) 2014/04/17 10:34:06 could the PermissionRequestHandler be a member of
michaelbai 2014/04/22 20:53:51 Considering about the geolocation implementation,
mkosiba (inactive) 2014/04/23 18:04:40 ok. thanks for the explanation!
+}
+
static void FilesSelectedInChooser(
JNIEnv* env, jclass clazz,
jint process_id, jint render_id, jint mode_flags,

Powered by Google App Engine
This is Rietveld 408576698