Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: e7dc153729577d34dca4f67925ca49baaa9df73f
https://github.com/WebKit/WebKit/commit/e7dc153729577d34dca4f67925ca49baaa9df73f
Author: Phinehas Fuachie <[email protected]>
Date: 2026-03-27 (Fri, 27 Mar 2026)
Changed paths:
M
Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h
M
Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm
Log Message:
-----------
PiP video freezes after accessing Notification Center
https://bugs.webkit.org/show_bug.cgi?id=310836
rdar://168296734
Reviewed by Jer Noble.
When entering PiP via swipe-up from fullscreen, the app transitions to the
background, setting
m_applicationIsActive to false. If the PiP window is subsequently occluded
(e.g. by Notification
Center) and then revealed, AVFoundation posts a requiresFlushToResumeDecoding
notification.
However, setLayerRequiresFlush() was gated on m_applicationIsActive, so the
flush was skipped and
the video froze on a stale frame while audio continued playing.
Track fullscreen/PiP state via m_isInFullscreenOrPictureInPicture and allow the
flush to proceed
when the video layer is still visible in a PiP window, even though the app
itself is inactive.
*
Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::WTF_GUARDED_BY_CAPABILITY):
*
Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setLayerRequiresFlush):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::isInFullscreenOrPictureInPictureChanged):
Canonical link: https://commits.webkit.org/310100@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications