[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