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

Reply via email to