[webkit-changes] [WebKit/WebKit] 875ade: [iOS] Adopt -[AVCaptureSession initWithMediaEnviro...

aestes noreply at github.com
Fri Dec 8 15:45:12 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 875ade367c7e1aac927afd76a29bc9abb53ea19d
      https://github.com/WebKit/WebKit/commit/875ade367c7e1aac927afd76a29bc9abb53ea19d
  Author: Andy Estes <aestes at apple.com>
  Date:   2023-12-08 (Fri, 08 Dec 2023)

  Changed paths:
    M Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.cpp
    M Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.h
    M Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm
    M Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp
    M Source/WebKit/GPUProcess/GPUConnectionToWebProcess.h
    M Source/WebKit/GPUProcess/GPUConnectionToWebProcess.messages.in
    M Source/WebKit/GPUProcess/cocoa/GPUConnectionToWebProcessCocoa.mm
    M Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp
    M Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.h
    M Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in
    M Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm
    M Source/WebKit/WebProcess/GPU/GPUProcessConnection.cpp
    M Source/WebKit/WebProcess/GPU/GPUProcessConnection.h
    M Source/WebKit/WebProcess/WebPage/Cocoa/WebPageCocoa.mm
    M Source/WebKit/WebProcess/WebPage/WebPage.cpp
    M Source/WebKit/WebProcess/WebPage/WebPage.h
    M Source/WebKit/WebProcess/WebPage/WebPage.messages.in
    M Source/WebKit/WebProcess/cocoa/RemoteRealtimeMediaSource.h
    M Source/WebKit/WebProcess/cocoa/RemoteRealtimeMediaSourceProxy.cpp
    M Source/WebKit/WebProcess/cocoa/RemoteRealtimeMediaSourceProxy.h

  Log Message:
  -----------
  [iOS] Adopt -[AVCaptureSession initWithMediaEnvironment:]
https://bugs.webkit.org/show_bug.cgi?id=266084
rdar://118949622

Reviewed by Tim Horton.

Adopted -[AVCaptureSession initWithMediaEnvironment:] when creating an AVCaptureSession in
AVVideoCaptureSource. This requires plumbing the associated media environment identifier
WebPage(Proxy).

* Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.h: Added a getter/setter for
m_currentMediaEnvironment.
* Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm:
(WebCore::AVVideoCaptureSource::setupSession): Forward-declared -initWithMediaEnvironment: and
called it if AVCaptureSession responds to it and we have a non-empty media environment.

* Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp:
* Source/WebKit/GPUProcess/GPUConnectionToWebProcess.h:
* Source/WebKit/GPUProcess/GPUConnectionToWebProcess.messages.in:
* Source/WebKit/GPUProcess/cocoa/GPUConnectionToWebProcessCocoa.mm:
(WebKit::GPUConnectionToWebProcess::mediaEnvironment):
(WebKit::GPUConnectionToWebProcess::setMediaEnvironment): Added a SetMediaEnvironment message that
WebPage sends to tell the GPU process the media environment for a given PageIdentifier. Stored the
media environments in a map keyed by PageIdentifier.

* Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
(WebKit::UserMediaCaptureManagerProxy::startProducingData):
* Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.h:
(WebKit::UserMediaCaptureManagerProxy::ConnectionProxy::setCurrentMediaEnvironment): Sets the
current media environment prior to calling startProducingData (which will create an
AVCaptureSession).

* Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in: Included a pageIdentifier
in the StartProducingData message.

* Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::setMediaCapability): Sent WebPage::SetMediaEnvironment when the media
capability changes.

* Source/WebKit/WebProcess/GPU/GPUProcessConnection.cpp:
(WebKit::GPUProcessConnection::setMediaEnvironment):
* Source/WebKit/WebProcess/GPU/GPUProcessConnection.h:
* Source/WebKit/WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
(WebKit::WebPage::setMediaEnvironment): Sent GPUConnectionToWebProcess::SetMediaEnvironment to the
GPU process.

(WebKit::WebPage::gpuProcessConnectionDidBecomeAvailable):
(WebKit::WebPage::~WebPage): Sent GPUConnectionToWebProcess::SetMediaEnvironment when the GPU
process becomes available or the WebPage is deallocated.

* Source/WebKit/WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::mediaEnvironment const): Added a getter/setter for m_mediaEnvironment.

* Source/WebKit/WebProcess/WebPage/WebPage.messages.in: Defined WebPage::SetMediaEnvironment.

* Source/WebKit/WebProcess/cocoa/RemoteRealtimeMediaSource.h:
* Source/WebKit/WebProcess/cocoa/RemoteRealtimeMediaSourceProxy.cpp:
(WebKit::RemoteRealtimeMediaSourceProxy::startProducingData):
* Source/WebKit/WebProcess/cocoa/RemoteRealtimeMediaSourceProxy.h: Plumbed a PageIdentifier through
startProducingData.

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




More information about the webkit-changes mailing list