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

Issue 596786 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
OOO until 4th Feb
Closed: Sep 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Bug
Team-Security-UX

Blocked on:
issue 458606

Blocking:
issue 734889



Sign in to add a comment

AudioCapture/VideoCapture permissions should be controllable through PermissionManager/PermissionContext

Project Member Reported by tsergeant@chromium.org, Mar 22 2016

Issue description

MediaStreamDevicePermissionContext is currently bare-bones and does not support some of important PermissionContextBase methods. Instead, this logic is pushed upwards into specialised classes (MediaPermission, MediaStreamDevicesController, ...).

We should refactor this implementation to make greater use of the infrastructure provided by PermissionContext. This will simplify the code and allow the audio/video permissions to be managed through the Permissions API.

 
Cc: hta@chromium.org
+hta@. I believe he told me someone might start working on WebRTC permissions.
Cc: mlamouri@chromium.org

Comment 3 by raymes@chromium.org, Mar 22 2016

hta: please let us know if you were planning to take this up, we don't want to tread on your toes!
Blockedon: 458606
Project Member

Comment 5 by bugdroid1@chromium.org, Jun 10 2016

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

commit e5d5c191121280aa0223615b10d8ab21197ff9b2
Author: tsergeant <tsergeant@chromium.org>
Date: Fri Jun 10 03:35:25 2016

Media permissions: Remove plumbing for insecure pepper requests in Chrome

Previously, getUserMedia requests would not persist decisions on
insecure origins, but media requests from insecure origins through
Pepper would be persisted. However, since M47, getUserMedia requests
from insecure origins are blocked in the renderer, so differentiating
between pepper and non-pepper requests is no longer necessary to know
whether to store the permission decision (any such request is a
Pepper request and can be stored).

This CL removes the plumbing for Pepper requests from the media
permission layer, since it is no longer needed.

BUG= 596786 

Review-Url: https://codereview.chromium.org/1828803003
Cr-Commit-Position: refs/heads/master@{#399078}

[modify] https://crrev.com/e5d5c191121280aa0223615b10d8ab21197ff9b2/chrome/browser/media/media_permission.cc
[modify] https://crrev.com/e5d5c191121280aa0223615b10d8ab21197ff9b2/chrome/browser/media/media_permission.h
[modify] https://crrev.com/e5d5c191121280aa0223615b10d8ab21197ff9b2/chrome/browser/media/media_stream_device_permission_context.cc
[modify] https://crrev.com/e5d5c191121280aa0223615b10d8ab21197ff9b2/chrome/browser/media/media_stream_device_permission_context.h
[modify] https://crrev.com/e5d5c191121280aa0223615b10d8ab21197ff9b2/chrome/browser/media/media_stream_device_permissions.cc
[modify] https://crrev.com/e5d5c191121280aa0223615b10d8ab21197ff9b2/chrome/browser/media/media_stream_device_permissions.h
[modify] https://crrev.com/e5d5c191121280aa0223615b10d8ab21197ff9b2/chrome/browser/media/media_stream_devices_controller.cc
[modify] https://crrev.com/e5d5c191121280aa0223615b10d8ab21197ff9b2/chrome/browser/media/media_stream_devices_controller_browsertest.cc
[modify] https://crrev.com/e5d5c191121280aa0223615b10d8ab21197ff9b2/chrome/browser/media/permission_bubble_media_access_handler.cc
[modify] https://crrev.com/e5d5c191121280aa0223615b10d8ab21197ff9b2/chrome/browser/policy/policy_browsertest.cc

Project Member

Comment 6 by bugdroid1@chromium.org, Jun 15 2016

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

commit e5d5c191121280aa0223615b10d8ab21197ff9b2
Author: tsergeant <tsergeant@chromium.org>
Date: Fri Jun 10 03:35:25 2016

Media permissions: Remove plumbing for insecure pepper requests in Chrome

Previously, getUserMedia requests would not persist decisions on
insecure origins, but media requests from insecure origins through
Pepper would be persisted. However, since M47, getUserMedia requests
from insecure origins are blocked in the renderer, so differentiating
between pepper and non-pepper requests is no longer necessary to know
whether to store the permission decision (any such request is a
Pepper request and can be stored).

This CL removes the plumbing for Pepper requests from the media
permission layer, since it is no longer needed.

BUG= 596786 

Review-Url: https://codereview.chromium.org/1828803003
Cr-Commit-Position: refs/heads/master@{#399078}

[modify] https://crrev.com/e5d5c191121280aa0223615b10d8ab21197ff9b2/chrome/browser/media/media_permission.cc
[modify] https://crrev.com/e5d5c191121280aa0223615b10d8ab21197ff9b2/chrome/browser/media/media_permission.h
[modify] https://crrev.com/e5d5c191121280aa0223615b10d8ab21197ff9b2/chrome/browser/media/media_stream_device_permission_context.cc
[modify] https://crrev.com/e5d5c191121280aa0223615b10d8ab21197ff9b2/chrome/browser/media/media_stream_device_permission_context.h
[modify] https://crrev.com/e5d5c191121280aa0223615b10d8ab21197ff9b2/chrome/browser/media/media_stream_device_permissions.cc
[modify] https://crrev.com/e5d5c191121280aa0223615b10d8ab21197ff9b2/chrome/browser/media/media_stream_device_permissions.h
[modify] https://crrev.com/e5d5c191121280aa0223615b10d8ab21197ff9b2/chrome/browser/media/media_stream_devices_controller.cc
[modify] https://crrev.com/e5d5c191121280aa0223615b10d8ab21197ff9b2/chrome/browser/media/media_stream_devices_controller_browsertest.cc
[modify] https://crrev.com/e5d5c191121280aa0223615b10d8ab21197ff9b2/chrome/browser/media/permission_bubble_media_access_handler.cc
[modify] https://crrev.com/e5d5c191121280aa0223615b10d8ab21197ff9b2/chrome/browser/policy/policy_browsertest.cc

Components: Internals>Permissions>Model

Comment 8 by raymes@chromium.org, Nov 29 2016

Components: -Internals>Permissions

Comment 9 by raymes@chromium.org, Feb 16 2017

Cc: -raymes@chromium.org -hta@chromium.org -mlamouri@chromium.org timloh@chromium.org
Owner: raymes@chromium.org
Project Member

Comment 11 by bugdroid1@chromium.org, Feb 23 2017

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

commit 6b9217880b3814ec933c74beb183375ec840cfaa
Author: raymes <raymes@chromium.org>
Date: Thu Feb 23 00:20:51 2017

Move media permission checking logic for ChromeOS login pages

Currently the permission checking logic for ChromeOS login pages (which is used
to determine whether to allow webcam access for SAML login pages) is contained
in WebUILoginView and not with the other permission-checking logic for media
permissions. This has several impacts, one of which is to do with correctness
(see below) but the other is that it makes it hard to refactor the media
permissions code. The flow of the media permissions code is:
1) Do some device checks
2) Do some perission checks
3) Show a prompt if needed
4) Store permission decisions
5) Allow/deny access and update some state based on success

Currently the custom permission checks in WebUILoginView fit in somewhere
between 2 and 3. It means that we need to exit the existing flow and
re-enter it at the right point (4), which means that we need to expose a
complex API for permissions. By moving this logic into (2) itself, we can
refactor the permissions code to have a simpler, more sensible API.

This CL results in a slight behavioral changes, which more than likely fix
an existing bug. Currently, the permission will be granted in the login view,
if the user had previously manually granted permissioni to that origin in a
regular browsing session. Now, the only URLs that will be granted access are
those listed in the kLoginVideoCaptureAllowedUrls pref.

BUG= 596786 

Review-Url: https://codereview.chromium.org/2696703006
Cr-Commit-Position: refs/heads/master@{#452300}

[modify] https://crrev.com/6b9217880b3814ec933c74beb183375ec840cfaa/chrome/browser/chromeos/login/saml/saml_browsertest.cc
[modify] https://crrev.com/6b9217880b3814ec933c74beb183375ec840cfaa/chrome/browser/chromeos/login/ui/webui_login_view.cc
[modify] https://crrev.com/6b9217880b3814ec933c74beb183375ec840cfaa/chrome/browser/media/webrtc/media_permission.cc
[modify] https://crrev.com/6b9217880b3814ec933c74beb183375ec840cfaa/chrome/browser/media/webrtc/media_permission.h
[modify] https://crrev.com/6b9217880b3814ec933c74beb183375ec840cfaa/chrome/browser/media/webrtc/media_stream_devices_controller.cc
[modify] https://crrev.com/6b9217880b3814ec933c74beb183375ec840cfaa/chrome/browser/media/webrtc/permission_bubble_media_access_handler.cc

Project Member

Comment 12 by bugdroid1@chromium.org, Feb 27 2017

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

commit 1417353d43fb4bed6a21dc62edc35c371eba984a
Author: raymes <raymes@chromium.org>
Date: Mon Feb 27 07:46:01 2017

Move logic to show permission prompts into MediaStreamDevicesController

This moves the logic for showing media permission prompts into a static
function in MediaStreamDevicesController. This is part of a refactoring
to change media permissions to use the PermissionManager codepaths to
match the way all other permissions in Chrome work.

PermissionManager does a combination of checking the permission status and
showing the prompt if needed. So we need to re-arrange the media permission
logic such that these pieces of logic are together. This CL shields consumers
of MediaStreamDevicesController from needing to show the prompt themselves.

TBR=achuith@chromium.org,mgiuca@chromium.org

BUG= 596786 

Review-Url: https://codereview.chromium.org/2706813004
Cr-Commit-Position: refs/heads/master@{#453167}

[modify] https://crrev.com/1417353d43fb4bed6a21dc62edc35c371eba984a/chrome/browser/chromeos/login/ui/webui_login_view.cc
[modify] https://crrev.com/1417353d43fb4bed6a21dc62edc35c371eba984a/chrome/browser/media/webrtc/media_stream_devices_controller.cc
[modify] https://crrev.com/1417353d43fb4bed6a21dc62edc35c371eba984a/chrome/browser/media/webrtc/media_stream_devices_controller.h
[modify] https://crrev.com/1417353d43fb4bed6a21dc62edc35c371eba984a/chrome/browser/media/webrtc/media_stream_devices_controller_browsertest.cc
[modify] https://crrev.com/1417353d43fb4bed6a21dc62edc35c371eba984a/chrome/browser/media/webrtc/permission_bubble_media_access_handler.cc
[modify] https://crrev.com/1417353d43fb4bed6a21dc62edc35c371eba984a/chrome/browser/ui/app_list/start_page_service.cc

Project Member

Comment 13 by bugdroid1@chromium.org, Mar 6 2017

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

commit 2d2d7d754045d63fd75aaee27026d27ae1e2fdab
Author: raymes <raymes@chromium.org>
Date: Mon Mar 06 22:16:33 2017

Make MediaStreamDevicesController tests go through the RequestPermissions API

In https://codereview.chromium.org/2706813004/ the consumers of
MediaStreamDevicesController were changed to use a static RequestPermissions
function instead of constructing the object directly. This facilitated moving
the prompting logic closer to the permission status checking logic which will
help us move to using PermissionManager to request permissions.

This CL does the same things for tests that are consumers of
MediaStreamDevicesController. This ensures that if we move any logic out of the
class and into the static entry point, that tests will continue to work
correctly.

In order to do this it means that tests still need a way to simulate
accepting permission prompts. Previously they did this by operating directly on
the MediaStreamDevicesController object, but that has been taken away. It has
been replaced by a private version of the entry point:
RequestPermissionsWithDelegate. This allows them to pass in a delegate which
can be used to determine whether prompts have been shown and to accept/deny
them.

The big benefit of this approach is that the delegate has been given the same
API as the MockPermissionPromptFactory. MockPermissionPromptFactory is the
class that is used to simulate/control permission prompts in tests of all other
permissions that use PermissionRequestManager. So, when the refactoring in
 https://crbug.com/606138  is completed, we can replace the Delegate with a
MockPermissionPromptFactory and the tests themselves will not need to be
altered.

BUG= 596786 

Review-Url: https://codereview.chromium.org/2711883003
Cr-Commit-Position: refs/heads/master@{#454974}

[modify] https://crrev.com/2d2d7d754045d63fd75aaee27026d27ae1e2fdab/chrome/browser/media/webrtc/media_stream_devices_controller.cc
[modify] https://crrev.com/2d2d7d754045d63fd75aaee27026d27ae1e2fdab/chrome/browser/media/webrtc/media_stream_devices_controller.h
[modify] https://crrev.com/2d2d7d754045d63fd75aaee27026d27ae1e2fdab/chrome/browser/media/webrtc/media_stream_devices_controller_browsertest.cc
[modify] https://crrev.com/2d2d7d754045d63fd75aaee27026d27ae1e2fdab/chrome/browser/policy/policy_browsertest.cc

Project Member

Comment 14 by bugdroid1@chromium.org, Mar 9 2017

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

commit f6104d499c9b96a1309360c378edfb24ad3d0028
Author: raymes <raymes@chromium.org>
Date: Thu Mar 09 01:20:18 2017

Add PermissionManager::GetPermissionStatusForFrame function

This adds a function to PermissionManager which allows checking the
permission for a particular RenderFrameHost. Some permission checks
depend on the exact context of the requesting frame. For example:
-For permission delegation we need to know the FeaturePolicy associated
with the frame, which is attached to the RenderFrameHost
-Some ChromeOS media-related permission checks require the
RenderFrameHost. These currently live in media_permissions.cc but it
would be good to move them into the PermissionContext subclass.
-Android permission checks currently require the WebContents in order to
determine their state.

A frame isn't always available when we want to determine the status of a
permission, so when it's not available the old version of the function
which takes in origins can be used. GetPermissionStatusForFrame should
always perform more checks than GetPermissionStatus and tend to be used
wherever possible.

The RenderFrameHost is passed down to the
PermissionContextBase::GetPermissionStatus. At this internal level of
the code, its value may be nullptr if the call does not originate from a
frame context. Subclasses should always check the RenderFrameHost before
using it.

TBR=peter@chromium.org,tommycli@chromium.org,xhwang@chromium.org,michaeln@chromium.org
BUG= 596786 

Review-Url: https://codereview.chromium.org/2723983004
Cr-Commit-Position: refs/heads/master@{#455621}

[modify] https://crrev.com/f6104d499c9b96a1309360c378edfb24ad3d0028/chrome/browser/geolocation/geolocation_permission_context_android.cc
[modify] https://crrev.com/f6104d499c9b96a1309360c378edfb24ad3d0028/chrome/browser/geolocation/geolocation_permission_context_android.h
[modify] https://crrev.com/f6104d499c9b96a1309360c378edfb24ad3d0028/chrome/browser/media/midi_permission_context_unittest.cc
[modify] https://crrev.com/f6104d499c9b96a1309360c378edfb24ad3d0028/chrome/browser/media/protected_media_identifier_permission_context.cc
[modify] https://crrev.com/f6104d499c9b96a1309360c378edfb24ad3d0028/chrome/browser/media/protected_media_identifier_permission_context.h
[modify] https://crrev.com/f6104d499c9b96a1309360c378edfb24ad3d0028/chrome/browser/media/webrtc/media_stream_device_permission_context.cc
[modify] https://crrev.com/f6104d499c9b96a1309360c378edfb24ad3d0028/chrome/browser/media/webrtc/media_stream_device_permission_context.h
[modify] https://crrev.com/f6104d499c9b96a1309360c378edfb24ad3d0028/chrome/browser/media/webrtc/media_stream_device_permission_context_unittest.cc
[modify] https://crrev.com/f6104d499c9b96a1309360c378edfb24ad3d0028/chrome/browser/notifications/notification_permission_context.cc
[modify] https://crrev.com/f6104d499c9b96a1309360c378edfb24ad3d0028/chrome/browser/notifications/notification_permission_context.h
[modify] https://crrev.com/f6104d499c9b96a1309360c378edfb24ad3d0028/chrome/browser/notifications/notification_permission_context_unittest.cc
[modify] https://crrev.com/f6104d499c9b96a1309360c378edfb24ad3d0028/chrome/browser/permissions/permission_context_base.cc
[modify] https://crrev.com/f6104d499c9b96a1309360c378edfb24ad3d0028/chrome/browser/permissions/permission_context_base.h
[modify] https://crrev.com/f6104d499c9b96a1309360c378edfb24ad3d0028/chrome/browser/permissions/permission_context_base_unittest.cc
[modify] https://crrev.com/f6104d499c9b96a1309360c378edfb24ad3d0028/chrome/browser/permissions/permission_manager.cc
[modify] https://crrev.com/f6104d499c9b96a1309360c378edfb24ad3d0028/chrome/browser/permissions/permission_manager.h
[modify] https://crrev.com/f6104d499c9b96a1309360c378edfb24ad3d0028/chrome/browser/plugins/flash_permission_context.cc
[modify] https://crrev.com/f6104d499c9b96a1309360c378edfb24ad3d0028/chrome/browser/plugins/flash_permission_context.h
[modify] https://crrev.com/f6104d499c9b96a1309360c378edfb24ad3d0028/chrome/browser/storage/durable_storage_permission_context.cc
[modify] https://crrev.com/f6104d499c9b96a1309360c378edfb24ad3d0028/chrome/browser/storage/durable_storage_permission_context_unittest.cc

Project Member

Comment 15 by bugdroid1@chromium.org, Mar 9 2017

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

commit c5ea96944724669ccfd65035a89a434f1fbe27cf
Author: raymes <raymes@chromium.org>
Date: Thu Mar 09 01:38:47 2017

Hoist device logic out of permissions check in MediaStreamDevicesController

Currently the logic to check whether devices are available for a WebRTC request
is nested between various permissions checks. This CL hoists that logic out
such that it occurs before any other permission checks occur.

BUG= 596786 

Review-Url: https://codereview.chromium.org/2728573002
Cr-Commit-Position: refs/heads/master@{#455627}

[modify] https://crrev.com/c5ea96944724669ccfd65035a89a434f1fbe27cf/chrome/browser/media/webrtc/media_permission.cc
[modify] https://crrev.com/c5ea96944724669ccfd65035a89a434f1fbe27cf/chrome/browser/media/webrtc/media_permission.h
[modify] https://crrev.com/c5ea96944724669ccfd65035a89a434f1fbe27cf/chrome/browser/media/webrtc/media_stream_devices_controller.cc
[modify] https://crrev.com/c5ea96944724669ccfd65035a89a434f1fbe27cf/chrome/browser/media/webrtc/media_stream_devices_controller.h

Project Member

Comment 16 by bugdroid1@chromium.org, Mar 13 2017

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

commit 79f22a61dfa4d5a026bd3c75b8b04bbcdeae0c1d
Author: raymes <raymes@chromium.org>
Date: Mon Mar 13 05:28:10 2017

Add requesting origin param to PermissionManager::GetPermissionStatusForFrame

GetPermissionStatusForFrame was currently added to facilitate permission
checks which require knowledge of the frame that is the source of the
permission request. Although we can determine the origin of that frame
directly through GetLastCommittedURL, we can't currently make the assumption
in Chrome that this origin matches the one passed down to various
callsites of GetPermissionStatus currently. crbug.com/698985 is
investigating that issue, however there are other reasons to have this
function, such as using it to incorporate Android permission checks and adding
permission delegation checks. Hence we pass in the requesting origin as well
for now and hopefully we can remove it again when crbug.com/698985 is resolved.

BUG= 596786 

Review-Url: https://codereview.chromium.org/2745453002
Cr-Commit-Position: refs/heads/master@{#456324}

[modify] https://crrev.com/79f22a61dfa4d5a026bd3c75b8b04bbcdeae0c1d/chrome/browser/permissions/permission_manager.cc
[modify] https://crrev.com/79f22a61dfa4d5a026bd3c75b8b04bbcdeae0c1d/chrome/browser/permissions/permission_manager.h

Project Member

Comment 17 by bugdroid1@chromium.org, Mar 16 2017

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

commit 392df422aa3725fa4493b7453caeda569b70118a
Author: raymes <raymes@chromium.org>
Date: Thu Mar 16 04:37:01 2017

Remove media requesting code from StartPageService::StartPageWebContentsDelegate

It looks like this code was added for the old hotwording extension which
was removed. It's hard to tell how
MediaStreamDevicesController::ReqestPermission would be working from
this context if it was being used.

BUG= 596786 

Review-Url: https://codereview.chromium.org/2747943003
Cr-Commit-Position: refs/heads/master@{#457351}

[modify] https://crrev.com/392df422aa3725fa4493b7453caeda569b70118a/chrome/browser/ui/app_list/start_page_service.cc

This issue broke Chrome OS login "Create new user -> Select User Image -> Take Photo" functionality. (And the same UI for creating Supervised Users).

Project Member

Comment 19 by bugdroid1@chromium.org, Apr 5 2017

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

commit ba45071136a37deb60e5ce17d25432a7f2e9aeae
Author: raymes <raymes@chromium.org>
Date: Wed Apr 05 23:10:58 2017

DCHECK that the security origin for a media request isn't empty

Currently we return an error if the origin for a media request is empty.
However it doesn't appear that this codepath can be reached even by following
the instructions on the comment associated with the code. Add a DCHECK that
this can't happen instead.

The enum value isn't removed because it's used in a histogram, instead it's
renamed with _DEPRECATED. We may also want to use it at a later time.

BUG= 596786 

Review-Url: https://codereview.chromium.org/2753013002
Cr-Commit-Position: refs/heads/master@{#462259}

[modify] https://crrev.com/ba45071136a37deb60e5ce17d25432a7f2e9aeae/chrome/browser/media/webrtc/media_permission.cc
[modify] https://crrev.com/ba45071136a37deb60e5ce17d25432a7f2e9aeae/content/public/common/media_stream_request.h
[modify] https://crrev.com/ba45071136a37deb60e5ce17d25432a7f2e9aeae/content/renderer/media/user_media_client_impl.cc

Project Member

Comment 20 by bugdroid1@chromium.org, Apr 10 2017

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

commit 93b8c34db71156846a5c60d71b8ae447cbd5165a
Author: raymes <raymes@chromium.org>
Date: Mon Apr 10 01:29:26 2017

Remove IsUserAcceptAllowed check from storing media permission decision

IsUserAcceptAllowed returns whether the Android permission can be granted as
well as whether the tab is showing. These things are important to check when
deciding whether permission should be granted to an origin, but they are not
important to check when deciding whether to store a permission decision a user
has made. As such we can remove this check.

BUG= 596786 

Review-Url: https://codereview.chromium.org/2801553002
Cr-Commit-Position: refs/heads/master@{#463164}

[modify] https://crrev.com/93b8c34db71156846a5c60d71b8ae447cbd5165a/chrome/browser/media/webrtc/media_stream_devices_controller.cc

Project Member

Comment 21 by bugdroid1@chromium.org, Apr 11 2017

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

commit 3bc708ecbaf8b268843a706e50de59a7bc7905f2
Author: raymes <raymes@chromium.org>
Date: Tue Apr 11 00:38:24 2017

Change MediaStreamDevicesController::RequestPermissions to use the requesting WebContents

This changes MediaStreamDevicesController::RequestPermissions to use the
WebContents associated with the RenderFrameHost specified in the
request. This is important because we will be switching
RequestPermissions to call into PermissionManager::GetPermissionStatus
and PermissionManager::RequestPermissions which will take a
RenderFrameHost and not a WebContents. Some tests are fixed to work
correctly.

BUG= 596786 

Review-Url: https://codereview.chromium.org/2746853002
Cr-Commit-Position: refs/heads/master@{#463467}

[modify] https://crrev.com/3bc708ecbaf8b268843a706e50de59a7bc7905f2/chrome/browser/media/webrtc/media_stream_devices_controller.cc
[modify] https://crrev.com/3bc708ecbaf8b268843a706e50de59a7bc7905f2/chrome/browser/media/webrtc/media_stream_devices_controller.h
[modify] https://crrev.com/3bc708ecbaf8b268843a706e50de59a7bc7905f2/chrome/browser/media/webrtc/media_stream_devices_controller_browsertest.cc
[modify] https://crrev.com/3bc708ecbaf8b268843a706e50de59a7bc7905f2/chrome/browser/media/webrtc/permission_bubble_media_access_handler.cc
[modify] https://crrev.com/3bc708ecbaf8b268843a706e50de59a7bc7905f2/chrome/browser/permissions/permission_request_manager_browsertest.cc
[modify] https://crrev.com/3bc708ecbaf8b268843a706e50de59a7bc7905f2/chrome/browser/policy/policy_browsertest.cc

Project Member

Comment 23 by bugdroid1@chromium.org, Apr 18 2017

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

commit 799cbeb7126756f38d29d4bdf88a2efe417ad862
Author: raymes <raymes@chromium.org>
Date: Tue Apr 18 02:37:59 2017

Remove the MediaPermissionStatus helper class

Originally MediaPermissionStatus was added to facilitate moving some of
the permissions logic out of MediaStreamDevicesController. It turns out
that it is simpler to move the permission request logic out instead, as
is done in the followup CL: https://codereview.chromium.org/2811913002

This CL removes that helper class and moves the functionality back into
GetContentSetting.

BUG= 596786 

Review-Url: https://codereview.chromium.org/2810743004
Cr-Commit-Position: refs/heads/master@{#465111}

[modify] https://crrev.com/799cbeb7126756f38d29d4bdf88a2efe417ad862/chrome/browser/media/webrtc/media_stream_devices_controller.cc
[modify] https://crrev.com/799cbeb7126756f38d29d4bdf88a2efe417ad862/chrome/browser/media/webrtc/media_stream_devices_controller.h

Project Member

Comment 24 by bugdroid1@chromium.org, Apr 19 2017

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

commit 6093fbaf1efb92bfde140f4dbe17e7b38c2fa39f
Author: raymes <raymes@chromium.org>
Date: Wed Apr 19 00:38:13 2017

Simplify RecordPermissionAction and Android permission callback

This simplifies RecordPermissionAction and the Android permission
callback in MediaStreamDevicesController. RecordPermissionAction is
changed to pass in whether mic/camera are being requested rather than
passing in the entire request.

The Android OS permission callback is changed in several ways:
1) The callback used to be a standalone function, which then called into
member functions in MediaStreamDevicesController. It now just calls into
a member function directly, removing a layer of indirection.
2) It used to call into PermissionGranted on success which would then call
RunCallback with the appropriate arguments. Instead we just call
RunCallback directly in that case, as no modifying of the content
settings values is needed.
3) It used to call into ForcePermissionDeniedTemporarily in the denial
case. This would call RunCallback with CONTENT_SETTING_BLOCK passed for
both mic/camera. This is actually slightly incorrect, and we only need
to change the settings that were previously CONTENT_SETTING_ALLOW to
BLOCK (as the setting may not have been requested at all). This is done
and then RunCallback is called directly.
4) set_persist() does not need to be called as settings are only
persisted when they are initially set to CONTENT_SETTING_ASK. That
cannot be the case at the point this code is reached.

BUG= 596786 

Review-Url: https://codereview.chromium.org/2815933003
Cr-Commit-Position: refs/heads/master@{#465440}

[modify] https://crrev.com/6093fbaf1efb92bfde140f4dbe17e7b38c2fa39f/chrome/browser/media/webrtc/media_stream_devices_controller.cc
[modify] https://crrev.com/6093fbaf1efb92bfde140f4dbe17e7b38c2fa39f/chrome/browser/media/webrtc/media_stream_devices_controller.h

Project Member

Comment 25 by bugdroid1@chromium.org, Apr 20 2017

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

commit 8a32f1b172e3ee37f98766eac4f8de5dc58dba8f
Author: raymes <raymes@chromium.org>
Date: Thu Apr 20 05:20:26 2017

Pull code associated with a Media PermissionRequest out of MediaStreamDevicesController

This pulls the code associated with a Media PermissionRequest out of
MediaStreamDevicesController. This code is only used for PermissionRequests
that are made using the legacy media permission prompting code. Permission
requests that will go through the PermissionManager will not use this code so
it can be deleted once  crbug.com/606138  is fixed.

BUG= 596786 
TBR=sergeyu@chromium.org,pastarmovj@chromium.org

Review-Url: https://codereview.chromium.org/2811913002
Cr-Commit-Position: refs/heads/master@{#465904}

[modify] https://crrev.com/8a32f1b172e3ee37f98766eac4f8de5dc58dba8f/chrome/browser/media/webrtc/media_stream_devices_controller.cc
[modify] https://crrev.com/8a32f1b172e3ee37f98766eac4f8de5dc58dba8f/chrome/browser/media/webrtc/media_stream_devices_controller.h
[modify] https://crrev.com/8a32f1b172e3ee37f98766eac4f8de5dc58dba8f/chrome/browser/media/webrtc/media_stream_devices_controller_browsertest.cc
[modify] https://crrev.com/8a32f1b172e3ee37f98766eac4f8de5dc58dba8f/chrome/browser/media/webrtc/media_stream_infobar_delegate_android.cc
[modify] https://crrev.com/8a32f1b172e3ee37f98766eac4f8de5dc58dba8f/chrome/browser/media/webrtc/media_stream_infobar_delegate_android.h
[modify] https://crrev.com/8a32f1b172e3ee37f98766eac4f8de5dc58dba8f/chrome/browser/permissions/permission_dialog_delegate.cc
[modify] https://crrev.com/8a32f1b172e3ee37f98766eac4f8de5dc58dba8f/chrome/browser/permissions/permission_dialog_delegate.h
[modify] https://crrev.com/8a32f1b172e3ee37f98766eac4f8de5dc58dba8f/chrome/browser/permissions/permission_request_manager_browsertest.cc
[modify] https://crrev.com/8a32f1b172e3ee37f98766eac4f8de5dc58dba8f/chrome/browser/policy/policy_browsertest.cc

Project Member

Comment 26 by bugdroid1@chromium.org, Apr 23 2017

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

commit 583e49bd24f395a014cc4ac9c51cc8b359fe97a3
Author: raymes <raymes@chromium.org>
Date: Sun Apr 23 22:49:11 2017

Simplify the code for updating Android permissions in MediaStreamDevicesController

Currently the checks for whether to update Android permissions happen
twice: once in the constructor of MediaStreamDevicesController and once
in the static RequestPermissionsWithDelegate function, where the
permissions will be requested. This is currently needed because if the
check fails, RunCallback can be run from inside the constructor.

This CL refactors that code to eliminate the duplication. The call to
RunCallback no longer occurs in the constructor, instead a function is
exposed: RequestFinishedNoPrompt() which calls RunCallback if no
permission prompt needs to be shown.

Since RunCallback is no longer called from the constructor, we need to
also track the value of the denial reason so that it is known at the
time RequestFinishedNoPrompt is called. This is stored in a member
variable. The values of the content setting are also tracked in member
variables and updated through the lifetime of the request.

BUG= 596786 

Review-Url: https://codereview.chromium.org/2814993003
Cr-Commit-Position: refs/heads/master@{#466569}

[modify] https://crrev.com/583e49bd24f395a014cc4ac9c51cc8b359fe97a3/chrome/browser/media/webrtc/media_stream_devices_controller.cc
[modify] https://crrev.com/583e49bd24f395a014cc4ac9c51cc8b359fe97a3/chrome/browser/media/webrtc/media_stream_devices_controller.h

Project Member

Comment 27 by bugdroid1@chromium.org, Apr 27 2017

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

commit 8c5be5dd012c0fd37a655748e561e5f8f92b6112
Author: raymes <raymes@chromium.org>
Date: Thu Apr 27 07:29:11 2017

Add a virtual destructor to PermissionPromptDelegate

This is needed so that subclass destructors will be called when
destroying a PermissionPromptDelegate pointer. This currently has no
impact on behavior since there are no subclass destructors.

BUG= 596786 

Review-Url: https://codereview.chromium.org/2836093006
Cr-Commit-Position: refs/heads/master@{#467617}

[modify] https://crrev.com/8c5be5dd012c0fd37a655748e561e5f8f92b6112/chrome/browser/media/webrtc/media_stream_devices_controller.h

Project Member

Comment 28 by bugdroid1@chromium.org, May 1 2017

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

commit 96988faed343f078f05d0f364ce5de260d068be0
Author: raymes <raymes@chromium.org>
Date: Mon May 01 00:50:41 2017

Make media permission requests go through the PermissionManager

This CL adds a feature flag which, when enabled, causes media requests to call
into PermissionManager::RequestPermissions in order to display a permission
prompt (among other things). The feature flag is added because this results in
the UI changing, and also won't work on Android until we have unified the
permission request codepaths (see  https://crbug.com/606138 ).

BUG= 596786 

Review-Url: https://codereview.chromium.org/2829123003
Cr-Commit-Position: refs/heads/master@{#468265}

[modify] https://crrev.com/96988faed343f078f05d0f364ce5de260d068be0/chrome/browser/media/webrtc/media_stream_device_permission_context.cc
[modify] https://crrev.com/96988faed343f078f05d0f364ce5de260d068be0/chrome/browser/media/webrtc/media_stream_device_permission_context.h
[modify] https://crrev.com/96988faed343f078f05d0f364ce5de260d068be0/chrome/browser/media/webrtc/media_stream_devices_controller.cc
[modify] https://crrev.com/96988faed343f078f05d0f364ce5de260d068be0/chrome/browser/media/webrtc/media_stream_devices_controller.h
[modify] https://crrev.com/96988faed343f078f05d0f364ce5de260d068be0/chrome/browser/permissions/permission_request.h
[modify] https://crrev.com/96988faed343f078f05d0f364ce5de260d068be0/chrome/browser/permissions/permission_request_impl.cc
[modify] https://crrev.com/96988faed343f078f05d0f364ce5de260d068be0/chrome/browser/permissions/permission_util.cc
[modify] https://crrev.com/96988faed343f078f05d0f364ce5de260d068be0/chrome/common/chrome_features.cc
[modify] https://crrev.com/96988faed343f078f05d0f364ce5de260d068be0/chrome/common/chrome_features.h
[modify] https://crrev.com/96988faed343f078f05d0f364ce5de260d068be0/tools/metrics/histograms/histograms.xml

Project Member

Comment 29 by bugdroid1@chromium.org, May 1 2017

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

commit 22831c3c2b720f6fe0c8570912d72ce039abf72c
Author: raymes <raymes@chromium.org>
Date: Mon May 01 04:35:34 2017

Add PermissionDialogTests for grouped Media requests

This adds tests to PermissionDialogTests that test Media requests with
the kUsePermissionManagerForMediaRequests feature enabled. When this
feature is enabled, media permissions can be requested in the same way
as other permissions.

Once the feature flag is removed, the old behavior that is being tested
can also be removed.

BUG= 596786 

Review-Url: https://codereview.chromium.org/2838873004
Cr-Commit-Position: refs/heads/master@{#468283}

[modify] https://crrev.com/22831c3c2b720f6fe0c8570912d72ce039abf72c/chrome/browser/permissions/permission_request_manager_browsertest.cc

Project Member

Comment 30 by bugdroid1@chromium.org, May 3 2017

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

commit db97ef8df226e314878defd22582184a6b0f7ec9
Author: raymes <raymes@chromium.org>
Date: Wed May 03 04:29:15 2017

Update MediaStreamDevicesControllerTest to test with kUsePermissionManagerForMediaRequests feature enabled

This updates MediaStreamDevicesControllerTest to run tests with the
kUsePermissionManagerForMediaRequests flag enabled (as well as without it) by
using a paramaterized test.

A few other changes that were needed to make the test work:
1) |prompt_delegate_| is not used for testing when the feature is enabled.
Instead, |prompt_factory_| is used to check the assumptions about what prompts
are shown. The functions on these 2 objects are slightly different, so
functions in the test harness have been introduced to encapsulate them
(SetPromptResponseType, TotalPromptRequestCount, WasPermissionShown,
ResetPromptCounters).
2) MockPermissionPromptFactory was modified to make it possible to test whether
a specific permission type had been displayed in a prompt.
3) RequestPermissions runs asynchronously. So a RunLoop is used to make
execution of it synchronous for the test.
4) A small bug in PermissionRequestManager::DoAutoResponseForTesting was fixed
where an assumption was made that the function would only be called for single
permission requests (not grouped ones).

BUG= 596786 
TBR=tommycli@chromium.org

Review-Url: https://codereview.chromium.org/2835863003
Cr-Commit-Position: refs/heads/master@{#468891}

[modify] https://crrev.com/db97ef8df226e314878defd22582184a6b0f7ec9/chrome/browser/media/webrtc/media_stream_devices_controller_browsertest.cc
[modify] https://crrev.com/db97ef8df226e314878defd22582184a6b0f7ec9/chrome/browser/permissions/permission_request_manager.cc
[modify] https://crrev.com/db97ef8df226e314878defd22582184a6b0f7ec9/chrome/browser/permissions/permission_request_manager_browsertest.cc
[modify] https://crrev.com/db97ef8df226e314878defd22582184a6b0f7ec9/chrome/browser/permissions/permissions_browsertest.cc
[modify] https://crrev.com/db97ef8df226e314878defd22582184a6b0f7ec9/chrome/browser/plugins/flash_permission_browsertest.cc
[modify] https://crrev.com/db97ef8df226e314878defd22582184a6b0f7ec9/chrome/browser/ui/permission_bubble/mock_permission_prompt.cc
[modify] https://crrev.com/db97ef8df226e314878defd22582184a6b0f7ec9/chrome/browser/ui/permission_bubble/mock_permission_prompt_factory.cc
[modify] https://crrev.com/db97ef8df226e314878defd22582184a6b0f7ec9/chrome/browser/ui/permission_bubble/mock_permission_prompt_factory.h

Project Member

Comment 31 by bugdroid1@chromium.org, Jun 16 2017

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

commit 9ea317b97a564286aadf81bfe3d2bcb1d0e642cc
Author: raymes <raymes@chromium.org>
Date: Fri Jun 16 11:10:15 2017

Only enable kUsePermissionManagerForMediaRequests when the PermissionRequestManager is used

This adds a check which ensures that the PermissionManager is used to
request permission for Media requests only when the
PermissionRequestManager is enabled. If it's not enabled, the grouped
request won't work correctly.

BUG= 596786 

Review-Url: https://codereview.chromium.org/2941943002
Cr-Commit-Position: refs/heads/master@{#480017}

[modify] https://crrev.com/9ea317b97a564286aadf81bfe3d2bcb1d0e642cc/chrome/browser/media/webrtc/media_stream_devices_controller.cc

Blocking: 734889
Cc: raymes@chromium.org
 Issue 671052  has been merged into this issue.
Cc: tsergeant@chromium.org
 Issue 671053  has been merged into this issue.
Project Member

Comment 35 by bugdroid1@chromium.org, Jun 22 2017

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

commit 02958eaa8c765b0bc65c020bb1dd1d1fd0792de0
Author: timloh <timloh@chromium.org>
Date: Thu Jun 22 04:57:47 2017

Flip UseGroupedPermissionInfobars and UsePermissionManagerForMediaRequests

This patch enables by default the flags UseGroupedPermissionInfobars and
UsePermissionManagerForMediaRequests. This means that media permissions
(mic, camera) will go through the PermissionManager like every other
permission, and Android will use the PermissionRequestManager instead of
the PermissionQueueController.

There are some minor UI changes here, mostly ones which users will never
notice, although of note is grouped mic+camera permissions on desktop
will now use two separate list items rather than one.

BUG= 606138 , 596786 ,734889

Review-Url: https://codereview.chromium.org/2937183002
Cr-Commit-Position: refs/heads/master@{#481443}

[modify] https://crrev.com/02958eaa8c765b0bc65c020bb1dd1d1fd0792de0/chrome/common/chrome_features.cc

Project Member

Comment 36 by bugdroid1@chromium.org, Sep 6 2017

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

commit 8786fb3d9918669bc40cb9816e5bbd197430b4b8
Author: Timothy Loh <timloh@chromium.org>
Date: Wed Sep 06 03:04:05 2017

Remove old PermissionQueueController and media request code

We recently undertook a refactoring of how permissions are requested on
Android and how media (mic/camera) permissions are requested on all
platforms. These are enabled in M61, so at this point there's no point
in keeping the old code around.

Bug:  596786 ,  606138 
Change-Id: I8cf64fbb62f2da6cf506fee7103f8367384fd92e
Reviewed-on: https://chromium-review.googlesource.com/648828
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Reviewed-by: Raymes Khoury <raymes@chromium.org>
Commit-Queue: Timothy Loh <timloh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#499863}
[modify] https://crrev.com/8786fb3d9918669bc40cb9816e5bbd197430b4b8/chrome/browser/BUILD.gn
[modify] https://crrev.com/8786fb3d9918669bc40cb9816e5bbd197430b4b8/chrome/browser/chrome_quota_permission_context.cc
[delete] https://crrev.com/c5d6a1ef85a97b8aaa2d5d52b0676fda9e683a13/chrome/browser/download/download_request_infobar_delegate_android.cc
[delete] https://crrev.com/c5d6a1ef85a97b8aaa2d5d52b0676fda9e683a13/chrome/browser/download/download_request_infobar_delegate_android.h
[delete] https://crrev.com/c5d6a1ef85a97b8aaa2d5d52b0676fda9e683a13/chrome/browser/download/download_request_infobar_delegate_unittest.cc
[modify] https://crrev.com/8786fb3d9918669bc40cb9816e5bbd197430b4b8/chrome/browser/download/download_request_limiter.cc
[modify] https://crrev.com/8786fb3d9918669bc40cb9816e5bbd197430b4b8/chrome/browser/download/download_request_limiter_unittest.cc
[delete] https://crrev.com/c5d6a1ef85a97b8aaa2d5d52b0676fda9e683a13/chrome/browser/geolocation/geolocation_infobar_delegate_android.cc
[delete] https://crrev.com/c5d6a1ef85a97b8aaa2d5d52b0676fda9e683a13/chrome/browser/geolocation/geolocation_infobar_delegate_android.h
[delete] https://crrev.com/c5d6a1ef85a97b8aaa2d5d52b0676fda9e683a13/chrome/browser/media/midi_permission_infobar_delegate_android.cc
[delete] https://crrev.com/c5d6a1ef85a97b8aaa2d5d52b0676fda9e683a13/chrome/browser/media/midi_permission_infobar_delegate_android.h
[delete] https://crrev.com/c5d6a1ef85a97b8aaa2d5d52b0676fda9e683a13/chrome/browser/media/protected_media_identifier_infobar_delegate_android.cc
[delete] https://crrev.com/c5d6a1ef85a97b8aaa2d5d52b0676fda9e683a13/chrome/browser/media/protected_media_identifier_infobar_delegate_android.h
[modify] https://crrev.com/8786fb3d9918669bc40cb9816e5bbd197430b4b8/chrome/browser/media/webrtc/media_stream_device_permission_context.cc
[modify] https://crrev.com/8786fb3d9918669bc40cb9816e5bbd197430b4b8/chrome/browser/media/webrtc/media_stream_devices_controller.cc
[modify] https://crrev.com/8786fb3d9918669bc40cb9816e5bbd197430b4b8/chrome/browser/media/webrtc/media_stream_devices_controller.h
[modify] https://crrev.com/8786fb3d9918669bc40cb9816e5bbd197430b4b8/chrome/browser/media/webrtc/media_stream_devices_controller_browsertest.cc
[delete] https://crrev.com/c5d6a1ef85a97b8aaa2d5d52b0676fda9e683a13/chrome/browser/media/webrtc/media_stream_infobar_delegate_android.cc
[delete] https://crrev.com/c5d6a1ef85a97b8aaa2d5d52b0676fda9e683a13/chrome/browser/media/webrtc/media_stream_infobar_delegate_android.h
[delete] https://crrev.com/c5d6a1ef85a97b8aaa2d5d52b0676fda9e683a13/chrome/browser/notifications/notification_permission_infobar_delegate.cc
[delete] https://crrev.com/c5d6a1ef85a97b8aaa2d5d52b0676fda9e683a13/chrome/browser/notifications/notification_permission_infobar_delegate.h
[modify] https://crrev.com/8786fb3d9918669bc40cb9816e5bbd197430b4b8/chrome/browser/permissions/permission_context_base.cc
[modify] https://crrev.com/8786fb3d9918669bc40cb9816e5bbd197430b4b8/chrome/browser/permissions/permission_context_base.h
[modify] https://crrev.com/8786fb3d9918669bc40cb9816e5bbd197430b4b8/chrome/browser/permissions/permission_context_base_unittest.cc
[modify] https://crrev.com/8786fb3d9918669bc40cb9816e5bbd197430b4b8/chrome/browser/permissions/permission_dialog_delegate.cc
[modify] https://crrev.com/8786fb3d9918669bc40cb9816e5bbd197430b4b8/chrome/browser/permissions/permission_dialog_delegate.h
[delete] https://crrev.com/c5d6a1ef85a97b8aaa2d5d52b0676fda9e683a13/chrome/browser/permissions/permission_infobar_delegate.cc
[delete] https://crrev.com/c5d6a1ef85a97b8aaa2d5d52b0676fda9e683a13/chrome/browser/permissions/permission_infobar_delegate.h
[delete] https://crrev.com/c5d6a1ef85a97b8aaa2d5d52b0676fda9e683a13/chrome/browser/permissions/permission_queue_controller.cc
[delete] https://crrev.com/c5d6a1ef85a97b8aaa2d5d52b0676fda9e683a13/chrome/browser/permissions/permission_queue_controller.h
[delete] https://crrev.com/c5d6a1ef85a97b8aaa2d5d52b0676fda9e683a13/chrome/browser/permissions/permission_queue_controller_unittest.cc
[modify] https://crrev.com/8786fb3d9918669bc40cb9816e5bbd197430b4b8/chrome/browser/permissions/permission_request_manager.cc
[modify] https://crrev.com/8786fb3d9918669bc40cb9816e5bbd197430b4b8/chrome/browser/permissions/permission_request_manager.h
[modify] https://crrev.com/8786fb3d9918669bc40cb9816e5bbd197430b4b8/chrome/browser/permissions/permission_request_manager_browsertest.cc
[modify] https://crrev.com/8786fb3d9918669bc40cb9816e5bbd197430b4b8/chrome/browser/policy/policy_browsertest.cc
[modify] https://crrev.com/8786fb3d9918669bc40cb9816e5bbd197430b4b8/chrome/browser/ui/android/infobars/permission_infobar.cc
[modify] https://crrev.com/8786fb3d9918669bc40cb9816e5bbd197430b4b8/chrome/browser/ui/android/infobars/permission_infobar.h
[modify] https://crrev.com/8786fb3d9918669bc40cb9816e5bbd197430b4b8/chrome/common/chrome_features.cc
[modify] https://crrev.com/8786fb3d9918669bc40cb9816e5bbd197430b4b8/chrome/common/chrome_features.h
[modify] https://crrev.com/8786fb3d9918669bc40cb9816e5bbd197430b4b8/chrome/test/BUILD.gn
[modify] https://crrev.com/8786fb3d9918669bc40cb9816e5bbd197430b4b8/components/infobars/core/infobar_delegate.cc
[modify] https://crrev.com/8786fb3d9918669bc40cb9816e5bbd197430b4b8/components/infobars/core/infobar_delegate.h

Status: Fixed (was: Assigned)

Sign in to add a comment