Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: c7be93fa40d309506d29618823d9b181e558e481 https://github.com/WebKit/WebKit/commit/c7be93fa40d309506d29618823d9b181e558e481 Author: Jer Noble <jer.no...@apple.com> Date: 2024-04-26 (Fri, 26 Apr 2024)
Changed paths: M Source/WebCore/Modules/mediasource/MediaSource.cpp M Source/WebCore/Modules/mediasource/MediaSource.h M Source/WebCore/platform/graphics/MediaSourcePrivate.cpp M Source/WebCore/platform/graphics/MediaSourcePrivate.h M Source/WebCore/platform/graphics/MediaSourcePrivateClient.h M Source/WebCore/platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h M Source/WebCore/platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm M Source/WebKit/GPUProcess/media/RemoteMediaSourceProxy.h M Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp Log Message: ----------- [macOS] REGRESSION(275831@main): Netflix can error out while scrubbing https://bugs.webkit.org/show_bug.cgi?id=273306 rdar://126654352 Reviewed by Eric Carlson. A race condition can occur where the MediaSource object in the WebContent process does not check the buffered ranges for the new currentTime after a seek, which leads to the readyState remaining at HAVE_METADATA, and the seeked event failing to fire. Ensure that the MediaSource checks its buffered ranges after a seek by adding an explicit "seeked()" method to MediaSourcePrivateClient to be used when a seek completes in a MediaPlayerPrivate, to notify the MediaSource to revalidate its buffered ranges. To avaid adding a new race condition, call this new "seeked()" method from MediaPlayerPrivateRemote, rather than from MediaSourcePrivateRemote, to ensure that the "official" time is fully updated before the MediaSource monitiors its source buffers. * Source/WebCore/Modules/mediasource/MediaSource.cpp: (WebCore::MediaSource::failedToCreateRenderer): (WebCore::MediaSource::seeked): * Source/WebCore/Modules/mediasource/MediaSource.h: * Source/WebCore/platform/graphics/MediaSourcePrivate.cpp: (WebCore::MediaSourcePrivate::seeked): * Source/WebCore/platform/graphics/MediaSourcePrivate.h: * Source/WebCore/platform/graphics/MediaSourcePrivateClient.h: * Source/WebCore/platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h: * Source/WebCore/platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm: (WebCore::MediaSourcePrivateAVFObjC::seeked): * Source/WebKit/GPUProcess/media/RemoteMediaSourceProxy.h: * Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp: (WebKit::MediaPlayerPrivateRemote::seeked): Canonical link: https://commits.webkit.org/278060@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes