New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 775372 link

Starred by 1 user

Issue metadata

Status: Started
Owner:
OOO until 4th Feb
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 3
Type: Bug
Team-Security-UX



Sign in to add a comment

There are edge cases where requesting media permissions on Android may return the wrong result internally (and possibly to the developer)

Project Member Reported by raymes@chromium.org, Oct 17 2017

Issue description

There are some cases where the interaction between Chrome-level and android level permissions may cause the wrong result to be returned to the developer. Specifically:
1) -If both camera and mic are requested
-Mic has been previously allowed in Chrome, but the android level permission is disabled
-The user is prompted for the Chrome camera permission
-Internally, mic will be reported as allowed even though it was not allowed by Android 
(note that this is not a security issue because the Android level permission will always take effect)

2) If we need to show an Android system-level prompt to update permissions (using PermissionUpdateInfoBarDelegate::Create) but the Android window doesn't exist for some reason, success may be returned internally even when the Android-level permission has not been obtained.
 
Components: Privacy

Comment 2 by raymes@chromium.org, Oct 18 2017

I don't think this has any privacy implications. 

Comment 3 by est...@chromium.org, Nov 10 2017

Labels: Hotlist-EnamelAndFriendsFixIt

Comment 4 by est...@chromium.org, Feb 18 2018

Labels: -Hotlist-EnamelAndFriendsFixIt
Project Member

Comment 5 by bugdroid1@chromium.org, Mar 7 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/56be77e8a992cce1928cf116217a0610f0846cd9

commit 56be77e8a992cce1928cf116217a0610f0846cd9
Author: Dmitry Lapin <ripp@yandex-team.ru>
Date: Wed Mar 07 04:41:42 2018

Fixes mic/cam permissions requesting on Android

Fix for cases under paragraph 1, as described in the Bug.
This patch covers all combination of given and requesting permissions:
given can be: Chrome/Android mic/cam permissions (16 combinations), and
requesting can be: mic, cam and both (3 combination).
It was broken with this patch:
https://chromium-review.googlesource.com/c/chromium/src/+/722485

R=raymes@chromium.org,timloh@chromium.org

TEST=Mic Chrome permission was granted, but Mic Android permission was
revoked; request for mic permission - the infobar requesting mic
permission should be shown.

Bug: 775372
Change-Id: Ic2bf2fa727cd914f4bc202bda9e7590d1dc629fb
Reviewed-on: https://chromium-review.googlesource.com/945990
Commit-Queue: Raymes Khoury <raymes@chromium.org>
Reviewed-by: Raymes Khoury <raymes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#541334}
[modify] https://crrev.com/56be77e8a992cce1928cf116217a0610f0846cd9/chrome/browser/media/webrtc/media_stream_devices_controller.cc

Project Member

Comment 6 by bugdroid1@chromium.org, Jun 7 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d6eb0c60433edd4f0bc0b6435a57a9143a6ff265

commit d6eb0c60433edd4f0bc0b6435a57a9143a6ff265
Author: Iker Jamardo <ijamardo@chromium.org>
Date: Thu Jun 07 18:10:20 2018

Request camera permission when AR features are requested.

Adds a new XRSessionRequest structure to be passed when the
RequestSession call is made to be able to pass information like
user gesture. The RequestSession now requests camera permission
in ARCoreDevice. The code to ask for camera permission has been
copied and adapted from
src/chrome/browser/media/webrtc/media_stream_devices_controller.cc
and a re-check for the Android OS level camera permission is still
needed.

Bug:  835037 ,  845160 , 775372
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_vr
Change-Id: Iecabc3927beb6106a1ada5289f3af3ecffd48ed8
Reviewed-on: https://chromium-review.googlesource.com/1055677
Commit-Queue: Iker Jamardo <ijamardo@chromium.org>
Reviewed-by: David Dorwin <ddorwin@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Bill Orr <billorr@chromium.org>
Reviewed-by: Raymes Khoury <raymes@chromium.org>
Reviewed-by: Michael Thiessen <mthiesse@chromium.org>
Cr-Commit-Position: refs/heads/master@{#565347}
[modify] https://crrev.com/d6eb0c60433edd4f0bc0b6435a57a9143a6ff265/chrome/browser/android/vr/arcore_device/arcore_device.cc
[modify] https://crrev.com/d6eb0c60433edd4f0bc0b6435a57a9143a6ff265/chrome/browser/android/vr/arcore_device/arcore_device.h
[modify] https://crrev.com/d6eb0c60433edd4f0bc0b6435a57a9143a6ff265/chrome/browser/android/vr/arcore_device/arcore_gl.cc
[modify] https://crrev.com/d6eb0c60433edd4f0bc0b6435a57a9143a6ff265/chrome/browser/android/vr/arcore_device/arcore_gl.h
[modify] https://crrev.com/d6eb0c60433edd4f0bc0b6435a57a9143a6ff265/chrome/browser/android/vr/arcore_device/arcore_gl_thread.cc
[modify] https://crrev.com/d6eb0c60433edd4f0bc0b6435a57a9143a6ff265/chrome/browser/android/vr/arcore_device/arcore_gl_thread.h
[modify] https://crrev.com/d6eb0c60433edd4f0bc0b6435a57a9143a6ff265/chrome/browser/android/vr/arcore_device/arcore_impl.h
[modify] https://crrev.com/d6eb0c60433edd4f0bc0b6435a57a9143a6ff265/chrome/browser/geolocation/geolocation_permission_context_android.cc
[modify] https://crrev.com/d6eb0c60433edd4f0bc0b6435a57a9143a6ff265/chrome/browser/media/webrtc/media_stream_devices_controller.cc
[modify] https://crrev.com/d6eb0c60433edd4f0bc0b6435a57a9143a6ff265/chrome/browser/permissions/permission_update_infobar_delegate_android.cc
[modify] https://crrev.com/d6eb0c60433edd4f0bc0b6435a57a9143a6ff265/chrome/browser/permissions/permission_update_infobar_delegate_android.h
[modify] https://crrev.com/d6eb0c60433edd4f0bc0b6435a57a9143a6ff265/chrome/browser/vr/service/vr_display_host.cc
[modify] https://crrev.com/d6eb0c60433edd4f0bc0b6435a57a9143a6ff265/chrome/browser/vr/service/vr_display_host.h
[modify] https://crrev.com/d6eb0c60433edd4f0bc0b6435a57a9143a6ff265/device/vr/public/mojom/vr_service.mojom
[modify] https://crrev.com/d6eb0c60433edd4f0bc0b6435a57a9143a6ff265/device/vr/test/mock_vr_display_impl.cc
[modify] https://crrev.com/d6eb0c60433edd4f0bc0b6435a57a9143a6ff265/device/vr/test/mock_vr_display_impl.h
[modify] https://crrev.com/d6eb0c60433edd4f0bc0b6435a57a9143a6ff265/device/vr/vr_device.h
[modify] https://crrev.com/d6eb0c60433edd4f0bc0b6435a57a9143a6ff265/device/vr/vr_device_base.cc
[modify] https://crrev.com/d6eb0c60433edd4f0bc0b6435a57a9143a6ff265/device/vr/vr_device_base.h
[modify] https://crrev.com/d6eb0c60433edd4f0bc0b6435a57a9143a6ff265/device/vr/vr_device_base_unittest.cc
[modify] https://crrev.com/d6eb0c60433edd4f0bc0b6435a57a9143a6ff265/device/vr/vr_display_impl.cc
[modify] https://crrev.com/d6eb0c60433edd4f0bc0b6435a57a9143a6ff265/device/vr/vr_display_impl.h
[modify] https://crrev.com/d6eb0c60433edd4f0bc0b6435a57a9143a6ff265/device/vr/vr_display_impl_unittest.cc
[modify] https://crrev.com/d6eb0c60433edd4f0bc0b6435a57a9143a6ff265/third_party/blink/renderer/modules/xr/xr_device.cc

Labels: M-69
Owner: raymes@chromium.org
Status: Started (was: Available)
raymes: Does the CL above fix this issue?

Sign in to add a comment