• Andy Paicu's avatar
    Reland "Immediately stop media streams if users revokes consent" · ce25b7b6
    Andy Paicu authored
    This is a reland of 4e31d46a
    
    Original change's description:
    > Immediately stop media streams if users revokes consent
    >
    > Since camera and microphone are particularly sensitive permissions we
    > should be viligent and stop streams immediately when the user revokes
    > the permission.
    >
    > This CL uses the permission controller subscription functionality to
    > listen to permission changes on the relevant origins. Each DeviceRequest
    > will have up to 2 permission subscriptions (1 audio, 1 video). When
    > a permission is changed to non-Granted the specific DeviceRequest is
    > canceled. Subscriptions are removed when the DeviceRequest is deleted.
    >
    > Because MediaStreamManager is an IO thread class but
    > PermissionController is a UI thread class, this CL has to do a bit of
    > thread hoping:
    >
    > FinalizeStream(IO) > SubscribeToPermissionControllerOnUIThread(UI) >
    > SetPermissionSubscriptionIDs(IO) >(maybe)>
    > UnsubscribeFromPermissionControllerOnUIThread(UI)
    >
    > DeleteRequest(IO) > UnsubscribeFromPermissionControllerOnUIThread(UI)
    >
    > Bug: 1116435
    >
    > Change-Id: I6649125e028d607eeb7ba5701b710a715addf6f2
    > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2352790
    > Commit-Queue: Andy Paicu <andypaicu@chromium.org>
    > Reviewed-by: Guido Urdaneta <guidou@chromium.org>
    > Cr-Commit-Position: refs/heads/master@{#798564}
    
    Bug: 1116435
    Change-Id: Iede170df981bc69d025bcf66b029237977bc7a04
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2362288
    Commit-Queue: Andy Paicu <andypaicu@chromium.org>
    Reviewed-by: default avatarGuido Urdaneta <guidou@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#799549}
    ce25b7b6
webrtc_browsertest_base.h 11.1 KB