Title: [280326] trunk/Source/WebKit
- Revision
- 280326
- Author
- [email protected]
- Date
- 2021-07-26 17:02:30 -0700 (Mon, 26 Jul 2021)
Log Message
REGRESSION: [iOS] ASSERTION FAILED: !m_useCount in WebKit::SandboxExtension::~SandboxExtension()
https://bugs.webkit.org/show_bug.cgi?id=228171
<rdar://problem/80926509>
Reviewed by Eric Carlson.
SandboxExtension expects to be revoked before it is destroyed, something that is done by
RemoteMediaPlayerProxy::invalidate(). However, invalidate() won't be called if the
RemoteMediaPlayerManagerProxy is destroyed before all its proxies are invalidated.
Ensure every RemoteMediaPlayerProxy contained by the RemoteMediaPlayerManagerProxy is
invalidated in RemoteMediaPlayerManagerProxy's destructor.
* GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp:
(WebKit::RemoteMediaPlayerManagerProxy::~RemoteMediaPlayerManagerProxy):
* GPUProcess/media/RemoteMediaPlayerManagerProxy.h:
Modified Paths
Diff
Modified: trunk/Source/WebKit/ChangeLog (280325 => 280326)
--- trunk/Source/WebKit/ChangeLog 2021-07-26 23:58:23 UTC (rev 280325)
+++ trunk/Source/WebKit/ChangeLog 2021-07-27 00:02:30 UTC (rev 280326)
@@ -1,3 +1,22 @@
+2021-07-26 Jer Noble <[email protected]>
+
+ REGRESSION: [iOS] ASSERTION FAILED: !m_useCount in WebKit::SandboxExtension::~SandboxExtension()
+ https://bugs.webkit.org/show_bug.cgi?id=228171
+ <rdar://problem/80926509>
+
+ Reviewed by Eric Carlson.
+
+ SandboxExtension expects to be revoked before it is destroyed, something that is done by
+ RemoteMediaPlayerProxy::invalidate(). However, invalidate() won't be called if the
+ RemoteMediaPlayerManagerProxy is destroyed before all its proxies are invalidated.
+
+ Ensure every RemoteMediaPlayerProxy contained by the RemoteMediaPlayerManagerProxy is
+ invalidated in RemoteMediaPlayerManagerProxy's destructor.
+
+ * GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp:
+ (WebKit::RemoteMediaPlayerManagerProxy::~RemoteMediaPlayerManagerProxy):
+ * GPUProcess/media/RemoteMediaPlayerManagerProxy.h:
+
2021-07-26 Alex Christensen <[email protected]>
WKUserContentController.removeAllScriptMessageHandlers() doesn't release the message handlers
Modified: trunk/Source/WebKit/GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp (280325 => 280326)
--- trunk/Source/WebKit/GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp 2021-07-26 23:58:23 UTC (rev 280325)
+++ trunk/Source/WebKit/GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp 2021-07-27 00:02:30 UTC (rev 280326)
@@ -55,6 +55,10 @@
RemoteMediaPlayerManagerProxy::~RemoteMediaPlayerManagerProxy()
{
+ auto proxies = std::exchange(m_proxies, { });
+
+ for (auto& proxy : proxies.values())
+ proxy->invalidate();
}
void RemoteMediaPlayerManagerProxy::createMediaPlayer(MediaPlayerIdentifier identifier, MediaPlayerEnums::MediaEngineIdentifier engineIdentifier, RemoteMediaPlayerProxyConfiguration&& proxyConfiguration)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes