Changeset 280326 in webkit


Ignore:
Timestamp:
Jul 26, 2021, 5:02:30 PM (4 years ago)
Author:
jer.noble@apple.com
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:
Location:
trunk/Source/WebKit
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r280325 r280326  
     12021-07-26  Jer Noble  <jer.noble@apple.com>
     2
     3        REGRESSION: [iOS] ASSERTION FAILED: !m_useCount in WebKit::SandboxExtension::~SandboxExtension()
     4        https://bugs.webkit.org/show_bug.cgi?id=228171
     5        <rdar://problem/80926509>
     6
     7        Reviewed by Eric Carlson.
     8
     9        SandboxExtension expects to be revoked before it is destroyed, something that is done by
     10        RemoteMediaPlayerProxy::invalidate(). However, invalidate() won't be called if the
     11        RemoteMediaPlayerManagerProxy is destroyed before all its proxies are invalidated.
     12
     13        Ensure every RemoteMediaPlayerProxy contained by the RemoteMediaPlayerManagerProxy is
     14        invalidated in RemoteMediaPlayerManagerProxy's destructor.
     15
     16        * GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp:
     17        (WebKit::RemoteMediaPlayerManagerProxy::~RemoteMediaPlayerManagerProxy):
     18        * GPUProcess/media/RemoteMediaPlayerManagerProxy.h:
     19
    1202021-07-26  Alex Christensen  <achristensen@webkit.org>
    221
  • trunk/Source/WebKit/GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp

    r279017 r280326  
    5656RemoteMediaPlayerManagerProxy::~RemoteMediaPlayerManagerProxy()
    5757{
     58    auto proxies = std::exchange(m_proxies, { });
     59
     60    for (auto& proxy : proxies.values())
     61        proxy->invalidate();
    5862}
    5963
Note: See TracChangeset for help on using the changeset viewer.