[webkit-changes] [WebKit/WebKit] 7bce33: REGRESSION (270808 at main): [macOS WK1 x86] platform...
Jean-Yves Avenard
noreply at github.com
Thu Nov 16 19:54:35 PST 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 7bce33def568ee52c281a3e95db38d735d209157
https://github.com/WebKit/WebKit/commit/7bce33def568ee52c281a3e95db38d735d209157
Author: Jean-Yves Avenard <jya at apple.com>
Date: 2023-11-16 (Thu, 16 Nov 2023)
Changed paths:
M Source/WebCore/platform/graphics/SourceBufferPrivate.cpp
M Source/WebCore/platform/graphics/SourceBufferPrivate.h
M Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm
M Source/WebCore/platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp
M Source/WebCore/platform/mock/mediasource/MockSourceBufferPrivate.cpp
M Source/WebKit/WebProcess/GPU/media/SourceBufferPrivateRemote.cpp
Log Message:
-----------
REGRESSION (270808 at main): [macOS WK1 x86] platform/mac/media/encrypted-media/fps-generateRequest.html is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=264975
rdar://118524493
Reviewed by Jer Noble.
Ensure WeakPtr is accessed after being first checked.
We make m_client a private SourceBufferPrivate member and add a client()
method instead.
Fly-by ensure consistency for check by called `isAttached()` instead.
Covered by existing tests.
* Source/WebCore/platform/graphics/SourceBufferPrivate.cpp:
(WebCore::SourceBufferPrivate::setBufferedRanges):
(WebCore::SourceBufferPrivate::didReceiveInitializationSegment):
(WebCore::SourceBufferPrivate::append):
(WebCore::SourceBufferPrivate::processPendingMediaSamples):
(WebCore::SourceBufferPrivate::processMediaSample):
(WebCore::SourceBufferPrivate::client const):
* Source/WebCore/platform/graphics/SourceBufferPrivate.h:
* Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm: The base class already notifies the client about the size being used.
So remove this extra notification to ensure consistency between all implementations.
(WebCore::SourceBufferPrivateAVFObjC::appendInternal):
(WebCore::SourceBufferPrivateAVFObjC::layerDidReceiveError):
* Source/WebCore/platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:
(WebCore::SourceBufferPrivateGStreamer::appendInternal):
(WebCore::SourceBufferPrivateGStreamer::platformMaximumBufferSize const):
* Source/WebCore/platform/mock/mediasource/MockSourceBufferPrivate.cpp: Remove the need to check for m_client, this is done in the base class already.
(WebCore::MockSourceBufferPrivate::didReceiveInitializationSegment):
(WebCore::MockSourceBufferPrivate::didReceiveSample):
* Source/WebKit/WebProcess/GPU/media/SourceBufferPrivateRemote.cpp:
(WebKit::SourceBufferPrivateRemote::~SourceBufferPrivateRemote):
(WebKit::SourceBufferPrivateRemote::sourceBufferPrivateDidReceiveInitializationSegment):
(WebKit::SourceBufferPrivateRemote::sourceBufferPrivateAppendComplete):
(WebKit::SourceBufferPrivateRemote::sourceBufferPrivateHighestPresentationTimestampChanged):
(WebKit::SourceBufferPrivateRemote::sourceBufferPrivateDurationChanged):
(WebKit::SourceBufferPrivateRemote::sourceBufferPrivateDidParseSample):
(WebKit::SourceBufferPrivateRemote::sourceBufferPrivateDidDropSample):
(WebKit::SourceBufferPrivateRemote::sourceBufferPrivateDidReceiveRenderingError):
(WebKit::SourceBufferPrivateRemote::sourceBufferPrivateReportExtraMemoryCost):
Canonical link: https://commits.webkit.org/270862@main
More information about the webkit-changes
mailing list