[webkit-changes] [WebKit/WebKit] 07f45d: getUserMedia for video only should not trigger exp...

youennf noreply at github.com
Tue Dec 10 13:25:02 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 07f45d308dc38d21221c9f066bf430d7c650ef7a
      https://github.com/WebKit/WebKit/commit/07f45d308dc38d21221c9f066bf430d7c650ef7a
  Author: Youenn Fablet <youenn at apple.com>
  Date:   2024-12-10 (Tue, 10 Dec 2024)

  Changed paths:
    A LayoutTests/fast/mediastream/device-change-event-3-expected.txt
    A LayoutTests/fast/mediastream/device-change-event-3.html
    A LayoutTests/fast/mediastream/device-change-event-4-expected.txt
    A LayoutTests/fast/mediastream/device-change-event-4.html
    M LayoutTests/fast/mediastream/media-devices-enumerate-devices.html
    M LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/MediaDevices-enumerateDevices.https-expected.txt
    M Source/WebCore/Modules/mediastream/MediaDevices.cpp
    M Source/WebCore/Modules/mediastream/MediaDevices.h
    M Source/WebCore/Modules/mediastream/UserMediaRequest.cpp
    M Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp
    M Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.h

  Log Message:
  -----------
  getUserMedia for video only should not trigger exposure of microphone (and vice versa)
rdar://140917408
https://bugs.webkit.org/show_bug.cgi?id=284043

Reviewed by Eric Carlson.

MediaDevices is now responsible to fire devicechange events when:
- camera devices were not exposed before and getUserMedia for camera will start.
- microphone devices were not exposed before and getUserMedia for microphone will start.

Update UserMediaPermissionRequestManagerProxy to filter camera and microphone differently.
We thus keep track of frames granted for audio and video separately.

* LayoutTests/fast/mediastream/device-change-event-3-expected.txt: Added.
* LayoutTests/fast/mediastream/device-change-event-3.html: Added.
* LayoutTests/fast/mediastream/device-change-event-4-expected.txt: Added.
* LayoutTests/fast/mediastream/device-change-event-4.html: Added.
* LayoutTests/fast/mediastream/media-devices-enumerate-devices.html:
* LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/MediaDevices-enumerateDevices.https-expected.txt:
* Source/WebCore/Modules/mediastream/MediaDevices.cpp:
(WebCore::MediaDevices::exposeDevices):
(WebCore::MediaDevices::willStartMediaCapture):
* Source/WebCore/Modules/mediastream/MediaDevices.h:
* Source/WebCore/Modules/mediastream/UserMediaRequest.cpp:
(WebCore::UserMediaRequest::~UserMediaRequest):
(WebCore::UserMediaRequest::allow):
(WebCore::UserMediaRequest::stop):
* Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
(WebKit::UserMediaPermissionRequestManagerProxy::grantRequest):
(WebKit::UserMediaPermissionRequestManagerProxy::finishGrantingRequest):
(WebKit::UserMediaPermissionRequestManagerProxy::resetAccess):
(WebKit::UserMediaPermissionRequestManagerProxy::updateStoredRequests):
(WebKit::UserMediaPermissionRequestManagerProxy::wasGrantedVideoOrAudioAccess):
(WebKit::UserMediaPermissionRequestManagerProxy::wasGrantedAudioAccess):
(WebKit::UserMediaPermissionRequestManagerProxy::wasGrantedVideoAccess):
(WebKit::UserMediaPermissionRequestManagerProxy::computeFilteredDeviceList):
(WebKit::UserMediaPermissionRequestManagerProxy::enumerateMediaDevicesForFrame):
(WebKit::UserMediaPermissionRequestManagerProxy::watchdogTimerFired):
* Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.h:

Canonical link: https://commits.webkit.org/287629@main



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list