Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 875ade367c7e1aac927afd76a29bc9abb53ea19d
      
https://github.com/WebKit/WebKit/commit/875ade367c7e1aac927afd76a29bc9abb53ea19d
  Author: Andy Estes <[email protected]>
  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


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to