Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 21a364afcaee057528c71ae022e8140e5882c414
      
https://github.com/WebKit/WebKit/commit/21a364afcaee057528c71ae022e8140e5882c414
  Author: Phinehas Fuachie <[email protected]>
  Date:   2026-05-22 (Fri, 22 May 2026)

  Changed paths:
    M Source/WebCore/html/MediaElementSession.cpp
    M Source/WebCore/page/Quirks.cpp
    M Source/WebCore/page/Quirks.h
    M Source/WebCore/page/QuirksData.h

  Log Message:
  -----------
  rdar://166727225 theguardian.com: media controls don’t disappear in full 
screen after scrubbing through media. It only disappears after user taps video 
to pause then unpause
https://bugs.webkit.org/show_bug.cgi?id=315346
rdar://166727225

Reviewed by Jer Noble.

Tapping the big YouTube play overlay on theguardian.com causes the embed to 
load but the video
never starts: YouTube's IFrame API reports unstarted -> buffering -> unstarted 
-> silence and no
onError. Scrubbing and tapping play on the bottom controls then starts playback 
normally. Symptom
is distinct from the original report fixed by 7089525bc66b and reverted by 
9e811461e652 due to
apple.com/events and Netflix regressions (rdar://174184152, rdar://175186857).

Root cause: the parent click's user activation never reaches the cross-origin 
YouTube web process.
RemoteDOMWindow::postMessage carries no UserGestureToken across IPC, the 
cross-process activation
sync added in 8b0e7a8b2343 explicitly excludes cross-origin descendants, and 
allow="autoplay" is
not honored by WebKit's PermissionsPolicy. As a result 
Document::processingUserGestureForMedia()
returns false in the YouTube process and 
MediaElementSession::playbackStateChangePermitted denies
<video>.play().

Add a per-site quirk that grants playback for a YouTube embed Document when its 
top frame is
theguardian.com. Scope is iOS only. This is a stopgap pending a holistic fix 
(Feature::Autoplay in
PermissionsPolicy, and/or forwarding the user gesture across postMessage IPC).

* Source/WebCore/html/MediaElementSession.cpp:
(WebCore::MediaElementSession::playbackStateChangePermitted const):
* Source/WebCore/page/Quirks.cpp:
* Source/WebCore/page/Quirks.h:
* Source/WebCore/page/QuirksData.h:

Canonical link: https://commits.webkit.org/313743@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to