Commit d8d04d04 authored by Guido Urdaneta's avatar Guido Urdaneta Committed by Commit Bot

Use embedder frame in WebVideoPermissionHelper::CheckMediaAccessPermission

This CL makes CheckMediaAccessPermission pass the main RenderFrameHost
of the embedder WebContents instead of the original RenderFrameHost.

This makes it work similarly to RequestMediaAccessPermission(), which
uses the embedder WebContents instead of the original WebContents, and
fixes an issue with device enumerations when using ChromeOS logins,
where the permission check always failed.
Note that CheckMediaAccessPermission() originally used the embedder
WebContents until the switch to RenderFrameHost in crrev.com/540967.

Bug: 1086756
Change-Id: I5342c8d2617144caca7e451af0f12f31b5c6bb5e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2294807Reviewed-by: default avatarLucas Gadani <lfg@chromium.org>
Reviewed-by: default avatarKinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Guido Urdaneta <guidou@chromium.org>
Cr-Commit-Position: refs/heads/master@{#791201}
parent 15517f1a
...@@ -282,7 +282,7 @@ class MediaDevicesDispatcherHostTest ...@@ -282,7 +282,7 @@ class MediaDevicesDispatcherHostTest
enumerated_devices_[blink::MEDIA_DEVICE_TYPE_AUDIO_OUTPUT].empty()); enumerated_devices_[blink::MEDIA_DEVICE_TYPE_AUDIO_OUTPUT].empty());
EXPECT_FALSE(DoesContainRawIds(enumerated_devices_)); EXPECT_FALSE(DoesContainRawIds(enumerated_devices_));
#if defined(OS_ANDROID) || defined(OS_CHROMEOS) #if defined(OS_ANDROID)
EXPECT_TRUE(DoesEveryDeviceMapToRawId(enumerated_devices_, origin_)); EXPECT_TRUE(DoesEveryDeviceMapToRawId(enumerated_devices_, origin_));
#else #else
EXPECT_EQ(DoesEveryDeviceMapToRawId(enumerated_devices_, origin_), EXPECT_EQ(DoesEveryDeviceMapToRawId(enumerated_devices_, origin_),
......
...@@ -193,7 +193,7 @@ const base::Feature kEnableNewCanvas2DAPI{"EnableNewCanvas2DAPI", ...@@ -193,7 +193,7 @@ const base::Feature kEnableNewCanvas2DAPI{"EnableNewCanvas2DAPI",
// TODO(crbug.com/1019176): remove the feature in M89. // TODO(crbug.com/1019176): remove the feature in M89.
const base::Feature kEnumerateDevicesHideDeviceIDs{ const base::Feature kEnumerateDevicesHideDeviceIDs{
"EnumerateDevicesHideDeviceIDs", "EnumerateDevicesHideDeviceIDs",
#if defined(OS_ANDROID) || defined(OS_CHROMEOS) #if defined(OS_ANDROID)
base::FEATURE_DISABLED_BY_DEFAULT base::FEATURE_DISABLED_BY_DEFAULT
#else #else
base::FEATURE_ENABLED_BY_DEFAULT base::FEATURE_ENABLED_BY_DEFAULT
......
...@@ -214,7 +214,9 @@ bool WebViewPermissionHelper::CheckMediaAccessPermission( ...@@ -214,7 +214,9 @@ bool WebViewPermissionHelper::CheckMediaAccessPermission(
return web_view_guest() return web_view_guest()
->embedder_web_contents() ->embedder_web_contents()
->GetDelegate() ->GetDelegate()
->CheckMediaAccessPermission(render_frame_host, security_origin, type); ->CheckMediaAccessPermission(
web_view_guest()->web_contents()->GetOuterWebContentsFrame(),
security_origin, type);
} }
void WebViewPermissionHelper::OnMediaPermissionResponse( void WebViewPermissionHelper::OnMediaPermissionResponse(
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment