Skip to content

Commit

Permalink
Use thread safe weak pointers in RemoteMediaResourceManager
Browse files Browse the repository at this point in the history
https://bugs.webkit.org/show_bug.cgi?id=259716

Reviewed by Andy Estes.

Use ThreadSafeWeakPtr in RemoteMediaResourceManager.

* Source/WebCore/platform/graphics/PlatformMediaResourceLoader.h:
* Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.cpp:
(WebKit::RemoteMediaResourceManager::addMediaResource):
(WebKit::RemoteMediaResourceManager::responseReceived):
(WebKit::RemoteMediaResourceManager::redirectReceived):
(WebKit::RemoteMediaResourceManager::dataSent):
(WebKit::RemoteMediaResourceManager::dataReceived):
(WebKit::RemoteMediaResourceManager::accessControlCheckFailed):
(WebKit::RemoteMediaResourceManager::loadFailed):
(WebKit::RemoteMediaResourceManager::loadFinished):
* Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.h:

Canonical link: https://commits.webkit.org/266600@main
  • Loading branch information
rniwa committed Aug 4, 2023
1 parent bdf80b8 commit bae6285
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ class PlatformMediaResourceLoader : public ThreadSafeRefCounted<PlatformMediaRes
PlatformMediaResourceLoader() = default;
};

class PlatformMediaResource : public ThreadSafeRefCounted<PlatformMediaResource, WTF::DestructionThread::Main> {
class PlatformMediaResource : public ThreadSafeRefCountedAndCanMakeThreadSafeWeakPtr<PlatformMediaResource, WTF::DestructionThread::Main> {
WTF_MAKE_NONCOPYABLE(PlatformMediaResource); WTF_MAKE_FAST_ALLOCATED;
public:
PlatformMediaResource() = default;
Expand Down
16 changes: 8 additions & 8 deletions Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ RemoteMediaResourceManager::~RemoteMediaResourceManager()
void RemoteMediaResourceManager::addMediaResource(RemoteMediaResourceIdentifier remoteMediaResourceIdentifier, RemoteMediaResource& remoteMediaResource)
{
ASSERT(!m_remoteMediaResources.contains(remoteMediaResourceIdentifier));
m_remoteMediaResources.add(remoteMediaResourceIdentifier, &remoteMediaResource);
m_remoteMediaResources.add(remoteMediaResourceIdentifier, ThreadSafeWeakPtr { remoteMediaResource });
}

void RemoteMediaResourceManager::removeMediaResource(RemoteMediaResourceIdentifier remoteMediaResourceIdentifier)
Expand All @@ -62,7 +62,7 @@ void RemoteMediaResourceManager::removeMediaResource(RemoteMediaResourceIdentifi

void RemoteMediaResourceManager::responseReceived(RemoteMediaResourceIdentifier identifier, const ResourceResponse& response, bool didPassAccessControlCheck, CompletionHandler<void(ShouldContinuePolicyCheck)>&& completionHandler)
{
auto* resource = m_remoteMediaResources.get(identifier);
auto resource = m_remoteMediaResources.get(identifier).get();
if (!resource) {
completionHandler(ShouldContinuePolicyCheck::No);
return;
Expand All @@ -73,7 +73,7 @@ void RemoteMediaResourceManager::responseReceived(RemoteMediaResourceIdentifier

void RemoteMediaResourceManager::redirectReceived(RemoteMediaResourceIdentifier identifier, ResourceRequest&& request, const ResourceResponse& response, CompletionHandler<void(WebCore::ResourceRequest&&)>&& completionHandler)
{
auto* resource = m_remoteMediaResources.get(identifier);
auto resource = m_remoteMediaResources.get(identifier).get();
if (!resource) {
completionHandler({ });
return;
Expand All @@ -84,7 +84,7 @@ void RemoteMediaResourceManager::redirectReceived(RemoteMediaResourceIdentifier

void RemoteMediaResourceManager::dataSent(RemoteMediaResourceIdentifier identifier, uint64_t bytesSent, uint64_t totalBytesToBeSent)
{
auto* resource = m_remoteMediaResources.get(identifier);
auto resource = m_remoteMediaResources.get(identifier).get();
if (!resource)
return;

Expand All @@ -93,7 +93,7 @@ void RemoteMediaResourceManager::dataSent(RemoteMediaResourceIdentifier identifi

void RemoteMediaResourceManager::dataReceived(RemoteMediaResourceIdentifier identifier, IPC::SharedBufferReference&& buffer, CompletionHandler<void(std::optional<SharedMemory::Handle>&&)>&& completionHandler)
{
auto* resource = m_remoteMediaResources.get(identifier);
auto resource = m_remoteMediaResources.get(identifier).get();
if (!resource)
return completionHandler(std::nullopt);

Expand All @@ -111,7 +111,7 @@ void RemoteMediaResourceManager::dataReceived(RemoteMediaResourceIdentifier iden

void RemoteMediaResourceManager::accessControlCheckFailed(RemoteMediaResourceIdentifier identifier, const ResourceError& error)
{
auto* resource = m_remoteMediaResources.get(identifier);
auto resource = m_remoteMediaResources.get(identifier).get();
if (!resource)
return;

Expand All @@ -120,7 +120,7 @@ void RemoteMediaResourceManager::accessControlCheckFailed(RemoteMediaResourceIde

void RemoteMediaResourceManager::loadFailed(RemoteMediaResourceIdentifier identifier, const ResourceError& error)
{
auto* resource = m_remoteMediaResources.get(identifier);
auto resource = m_remoteMediaResources.get(identifier).get();
if (!resource)
return;

Expand All @@ -129,7 +129,7 @@ void RemoteMediaResourceManager::loadFailed(RemoteMediaResourceIdentifier identi

void RemoteMediaResourceManager::loadFinished(RemoteMediaResourceIdentifier identifier, const NetworkLoadMetrics& metrics)
{
auto* resource = m_remoteMediaResources.get(identifier);
auto resource = m_remoteMediaResources.get(identifier).get();
if (!resource)
return;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ class RemoteMediaResourceManager
void loadFailed(RemoteMediaResourceIdentifier, const WebCore::ResourceError&);
void loadFinished(RemoteMediaResourceIdentifier, const WebCore::NetworkLoadMetrics&);

HashMap<RemoteMediaResourceIdentifier, RemoteMediaResource*> m_remoteMediaResources;
HashMap<RemoteMediaResourceIdentifier, ThreadSafeWeakPtr<RemoteMediaResource>> m_remoteMediaResources;
};

} // namespace WebKit
Expand Down

0 comments on commit bae6285

Please sign in to comment.