Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 7a82d30fc628c316d55262d810c6e1becca57529
      
https://github.com/WebKit/WebKit/commit/7a82d30fc628c316d55262d810c6e1becca57529
  Author: Jer Noble <[email protected]>
  Date:   2023-04-30 (Sun, 30 Apr 2023)

  Changed paths:
    M Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp
    M Source/WebKit/GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp

  Log Message:
  -----------
  [WK2] Audio playing from closed tab (facebook.com)
https://bugs.webkit.org/show_bug.cgi?id=256152
rdar://106866813

Reviewed by Eric Carlson and Andy Estes.

The GPUConnectionToWebProcess's m_remoteMediaPlayerManagerProxy object is only
destroyed/cleared when the GPUConnectionToWebProcess itself is destroyed. This
may not happen for various reasons (reusing the connection, etc.) when the page
itself is closed. Rather than rely on the connection's destruction to clear
the object keeping playback alive, clear the RemoteMediaPlayerManagerProxy when
the connection receives the DidClose message, like many other objects owned by
the connection.

The RemoteMediaplayerManagerProxy had a pre-existing `clear()` method declared
but not implemented. Move the code from the destructor into a newly implemented
`clear()` method, and call it from the destructor.

* Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::didClose):
* Source/WebKit/GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp:
(WebKit::RemoteMediaPlayerManagerProxy::~RemoteMediaPlayerManagerProxy):
(WebKit::RemoteMediaPlayerManagerProxy::clear):

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


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

Reply via email to