Bug 219399

Summary: [Media] Play promise rejection in HTMLMediaElement
Product: WebKit Reporter: ArekW <wojtas.arkadiusz>
Component: MediaAssignee: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Normal CC: eric.carlson, fjimenez, jer.noble, peng.liu6, smoley, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=200344

Description ArekW 2020-12-01 08:23:04 PST
The HTMLMediaElement rejects play promise when the webpage's playback call sequence is:

1) create a video element
2) call video.play()
3) sets the src attribute

That sequence in WPEWebkit is not handled correctly. Setting the src attribute results in play promise rejection. I have compared that with chromium and it handles that situation in a different way.

The algorithm is described here:
https://html.spec.whatwg.org/multipage/media.html#media-element-load-algorithm

In the chromium the HTMLMediaElement cancels events, resolve promises that are scheduled to be resolved and rejects play promises that are scheduled to be rejected (Step 3 and 4). The rest of the play promises are not touched (unless step 6 takes place).

In webkit's step 3: all events and promises are rejected. It is done by cancelPendingEventsAndCallbacks.
Comment 1 Radar WebKit Bug Importer 2020-12-07 11:19:27 PST
<rdar://problem/72055839>