HLS streams in <video> elements report false for webkitSupportsFullscreen.
HLS streams will report a duration before they determine whether they have a video track. So scripts listening for durationchange events on a <video> element will ask whether the element supports full screen, and will be told "no", because they do not yet have a video track. This made sense when using the old, webkit-specific full screen mode. However, now that any element can be taken into full screen using the new FULLSCREEN_API, this restriction is rather arbitrary. If the FULLSCREEN_API is enabled and supported, bypass the hasVideo() check in supportsFullscreen().
Created attachment 142319 [details] Patch
Created attachment 142323 [details] Patch Removed extraneous added file; updated Skipped list to unskip newly passing test.
<rdar://problem/11430261>
Comment on attachment 142323 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=142323&action=review > Source/WebCore/ChangeLog:3 > + HLS streams in <video> elements report false for webkitSupportsFullscreen. This should be updated. > Source/WebCore/ChangeLog:15 > + With the new Full Screen API, the restriction that only video elements with > + video tracks can enter full screen seems arbitrary. HLS streams will occasionally > + determine they have video tracks long after loadedmetadata, which breaks websites > + who check for webkitSupportsFullscreen(). Relax the restriction on > + webkitSupportsFullscreen() for ports where the Full Screen API is enabled and > + supported so as to no longer require hasVideo(). The HLS detail probably isn't worth mentioning in the change log, the same timing detail could happen for other formats or media engines. > LayoutTests/media/media-fullscreen-inline.html:28 > - }, > + } Making sure this test will work in old versions of IE? ;-)
Comment on attachment 142323 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=142323&action=review >> Source/WebCore/ChangeLog:3 >> + HLS streams in <video> elements report false for webkitSupportsFullscreen. > > This should be updated. Already done. >> Source/WebCore/ChangeLog:15 >> + supported so as to no longer require hasVideo(). > > The HLS detail probably isn't worth mentioning in the change log, the same timing detail could happen for other formats or media engines. Sure thing. I'll genericize this detail. Thanks!
Committed r117326: <http://trac.webkit.org/changeset/117326>