[webkit-reviews] review granted: [Bug 222293] [GPUP] Use a WeakPtr of GPUConnectionToWebProcess instead of a reference in some media related objects : [Attachment 421258] Patch

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue Feb 23 11:10:55 PST 2021


Eric Carlson <eric.carlson at apple.com> has granted Peng Liu
<peng.liu6 at apple.com>'s request for review:
Bug 222293: [GPUP] Use a WeakPtr of GPUConnectionToWebProcess instead of a
reference in some media related objects
https://bugs.webkit.org/show_bug.cgi?id=222293

Attachment 421258: Patch

https://bugs.webkit.org/attachment.cgi?id=421258&action=review




--- Comment #3 from Eric Carlson <eric.carlson at apple.com> ---
Comment on attachment 421258
  --> https://bugs.webkit.org/attachment.cgi?id=421258
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=421258&action=review

> Source/WebKit/GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp:204
>  const Logger& RemoteMediaPlayerManagerProxy::logger() const
>  {
> -    return m_gpuConnectionToWebProcess.logger();
> +    ASSERT(m_gpuConnectionToWebProcess);
> +    return m_gpuConnectionToWebProcess->logger();
>  }

This won't go well if the connection to the web process goes away. 

You should probably change it to `RemoteMediaPlayerManagerProxy::loggerPtr()`,
and change the log sites that called this to use `*_LOG_IF(loggerPtr(), ...`

> Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:140
> +    ASSERT(m_manager.gpuConnectionToWebProcess());
> +    m_mediaSourceProxy = adoptRef(*new
RemoteMediaSourceProxy(*m_manager.gpuConnectionToWebProcess(),
mediaSourceIdentifier, webMParserEnabled, *this));

This will crash in a release build, so you should rearrange the code so you can
return a configuration that signals an error if the web process is gone.

> Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:255
> +    ASSERT(m_manager.gpuConnectionToWebProcess());

This will also crash and needs to be restructured.

> Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:381
> +    ASSERT(m_manager.gpuConnectionToWebProcess());

Ditto.

> Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:415
> +    ASSERT(m_manager.gpuConnectionToWebProcess());

Ditto

> Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:486
> +    ASSERT(m_manager.gpuConnectionToWebProcess());

Ditto

> Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:508
> +    ASSERT(m_manager.gpuConnectionToWebProcess());

Ditto

> Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:530
> +    ASSERT(m_manager.gpuConnectionToWebProcess());

Ditto

> Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:622
> +    ASSERT(m_manager.gpuConnectionToWebProcess());

Ditto

> Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:820
> +    ASSERT(m_manager.gpuConnectionToWebProcess());

Ditto

> Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:851
> +    ASSERT(m_manager.gpuConnectionToWebProcess());

Ditto

> Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:859
> +    ASSERT(m_manager.gpuConnectionToWebProcess());

Ditto

> Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:867
> +    ASSERT(m_manager.gpuConnectionToWebProcess());

Ditto

> Source/WebKit/GPUProcess/media/RemoteMediaSourceProxy.cpp:55
> +    ASSERT(m_connectionToWebProcess);

Ditto

> Source/WebKit/GPUProcess/media/RemoteSourceBufferProxy.cpp:63
> +   
m_connectionToWebProcess->messageReceiverMap().removeMessageReceiver(Messages::
RemoteSourceBufferProxy::messageReceiverName(), m_identifier.toUInt64());

Ditto


More information about the webkit-reviews mailing list