[webkit-changes] [WebKit/WebKit] 5f3622: NEW TEST [ MacOS ] imported/w3c/web-platform-tests...

Jean-Yves Avenard noreply at github.com
Fri Feb 23 19:04:04 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 5f3622e3b24527b6a58d4b50c69f1a68e4709eea
      https://github.com/WebKit/WebKit/commit/5f3622e3b24527b6a58d4b50c69f1a68e4709eea
  Author: Jean-Yves Avenard <jya at apple.com>
  Date:   2024-02-23 (Fri, 23 Feb 2024)

  Changed paths:
    M LayoutTests/platform/mac-wk2/TestExpectations
    M Source/WebKit/GPUProcess/media/RemoteMediaSourceProxy.cpp
    M Source/WebKit/GPUProcess/media/RemoteSourceBufferProxy.cpp
    M Source/WebKit/GPUProcess/media/RemoteSourceBufferProxy.h
    M Source/WebKit/WebProcess/GPU/media/MediaSourcePrivateRemote.cpp
    M Source/WebKit/WebProcess/GPU/media/SourceBufferPrivateRemote.cpp
    M Source/WebKit/WebProcess/GPU/media/SourceBufferPrivateRemote.h
    M Source/WebKit/WebProcess/GPU/media/SourceBufferPrivateRemoteMessageReceiver.messages.in

  Log Message:
  -----------
  NEW TEST [ MacOS ] imported/w3c/web-platform-tests/media-source/dedicated-worker/mediasource-worker-detach-element.html is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=269871
rdar://123404489

Reviewed by Youenn Fablet.

When shutting down the RemoteMediaSourceProxy in the GPUP we would send
a asynchronous message to the MediaSourcePrivateRemote in the WP which in
turn would have disconnected all the SourceBufferPrivateRemote.
However, it was possible at this stage that the MediaSource in a worker
to itself have started to shutdown and detaching all existing SourceBuffer.
At this stage, the MediaSourcePrivateRemote::m_sourceBuffers would have
been emptied and be unable to disconnect them.

So we split the shutdown of the RemoteMediaSourceProxy and of the
RemoteSourceBufferProxy so that they each inform their respective
remotes to start shutting down.
Similar to what the RemoteMediaSourceProxy does when being shutdown by
the RemoteMediaPlayerProxy, it will now tell all RemoteSourceBufferProxies
to shutdown, which in turn will shutdown the source buffers in the
web process.
Only once that message been sent that it will continue tearing down the
proxies.

Covered by re-enabled test.
* LayoutTests/platform/mac-wk2/TestExpectations:
* Source/WebKit/GPUProcess/media/RemoteMediaSourceProxy.cpp:
(WebKit::RemoteMediaSourceProxy::disconnect):
(WebKit::RemoteMediaSourceProxy::shutdown):
* Source/WebKit/GPUProcess/media/RemoteSourceBufferProxy.cpp:
(WebKit::RemoteSourceBufferProxy::shutdown):
* Source/WebKit/GPUProcess/media/RemoteSourceBufferProxy.h:
* Source/WebKit/WebProcess/GPU/media/MediaSourcePrivateRemote.cpp:
(WebKit::MediaSourcePrivateRemote::MessageReceiver::mediaSourcePrivateShuttingDown):
* Source/WebKit/WebProcess/GPU/media/SourceBufferPrivateRemote.cpp:
(WebKit::SourceBufferPrivateRemote::removedFromMediaSource):
(WebKit::SourceBufferPrivateRemote::MessageReceiver::sourceBufferPrivateShuttingDown):
* Source/WebKit/WebProcess/GPU/media/SourceBufferPrivateRemote.h:
* Source/WebKit/WebProcess/GPU/media/SourceBufferPrivateRemoteMessageReceiver.messages.in:

Canonical link: https://commits.webkit.org/275268@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