Title: [164129] trunk/Source/WebCore
- Revision
- 164129
- Author
- jer.no...@apple.com
- Date
- 2014-02-14 13:19:24 -0800 (Fri, 14 Feb 2014)
Log Message
[MediaControls][iOS] Start playback button is visible when playing embedded YouTube
https://bugs.webkit.org/show_bug.cgi?id=128754
Reviewed by Eric Carlson.
Update shouldHaveStartPlaybackButton to match the behavior of the plugin proxy.
Add a accessor to determine whether playback has been requested:
* Modules/mediacontrols/MediaControlsHost.cpp:
(WebCore::MediaControlsHost::userGestureRequired):
* Modules/mediacontrols/MediaControlsHost.h:
* Modules/mediacontrols/MediaControlsHost.idl:
Update the logic of shouldHaveStartPlaybackButton.
* Modules/mediacontrols/mediaControlsiOS.js:
(ControllerIOS.prototype.shouldHaveStartPlaybackButton):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (164128 => 164129)
--- trunk/Source/WebCore/ChangeLog 2014-02-14 21:17:50 UTC (rev 164128)
+++ trunk/Source/WebCore/ChangeLog 2014-02-14 21:19:24 UTC (rev 164129)
@@ -1,5 +1,24 @@
2014-02-13 Jer Noble <jer.no...@apple.com>
+ [MediaControls][iOS] Start playback button is visible when playing embedded YouTube
+ https://bugs.webkit.org/show_bug.cgi?id=128754
+
+ Reviewed by Eric Carlson.
+
+ Update shouldHaveStartPlaybackButton to match the behavior of the plugin proxy.
+
+ Add a accessor to determine whether playback has been requested:
+ * Modules/mediacontrols/MediaControlsHost.cpp:
+ (WebCore::MediaControlsHost::userGestureRequired):
+ * Modules/mediacontrols/MediaControlsHost.h:
+ * Modules/mediacontrols/MediaControlsHost.idl:
+
+ Update the logic of shouldHaveStartPlaybackButton.
+ * Modules/mediacontrols/mediaControlsiOS.js:
+ (ControllerIOS.prototype.shouldHaveStartPlaybackButton):
+
+2014-02-13 Jer Noble <jer.no...@apple.com>
+
[MediaControls] Add support for a loading progress meter
https://bugs.webkit.org/show_bug.cgi?id=128651
Modified: trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.cpp (164128 => 164129)
--- trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.cpp 2014-02-14 21:17:50 UTC (rev 164128)
+++ trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.cpp 2014-02-14 21:19:24 UTC (rev 164129)
@@ -158,6 +158,11 @@
return m_mediaElement->supportsFullscreen();
}
+bool MediaControlsHost::userGestureRequired() const
+{
+ return !m_mediaElement->mediaSession().playbackPermitted(*m_mediaElement);
}
+}
+
#endif
Modified: trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.h (164128 => 164129)
--- trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.h 2014-02-14 21:17:50 UTC (rev 164128)
+++ trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.h 2014-02-14 21:19:24 UTC (rev 164129)
@@ -60,6 +60,7 @@
void updateTextTrackContainer();
bool mediaPlaybackAllowsInline() const;
bool supportsFullscreen();
+ bool userGestureRequired() const;
private:
MediaControlsHost(HTMLMediaElement*);
Modified: trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.idl (164128 => 164129)
--- trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.idl 2014-02-14 21:17:50 UTC (rev 164128)
+++ trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.idl 2014-02-14 21:19:24 UTC (rev 164129)
@@ -38,4 +38,5 @@
void updateTextTrackContainer();
readonly attribute boolean mediaPlaybackAllowsInline;
readonly attribute boolean supportsFullscreen;
+ readonly attribute boolean userGestureRequired;
};
Modified: trunk/Source/WebCore/Modules/mediacontrols/mediaControlsiOS.js (164128 => 164129)
--- trunk/Source/WebCore/Modules/mediacontrols/mediaControlsiOS.js 2014-02-14 21:17:50 UTC (rev 164128)
+++ trunk/Source/WebCore/Modules/mediacontrols/mediaControlsiOS.js 2014-02-14 21:19:24 UTC (rev 164129)
@@ -47,19 +47,24 @@
},
shouldHaveStartPlaybackButton: function() {
- if (this.video.error)
- return true;
+ var allowsInline = this.host.mediaPlaybackAllowsInline;
+ if (this.isAudio() && allowsInline)
+ return false;
+
if (this.isFullScreen())
return false;
- if (!this.host.mediaPlaybackAllowsInline)
- return true;
+ if (!this.video.currentSrc && this.video.error)
+ return false;
- if (this.video.readyState <= HTMLMediaElement.HAVE_METADATA)
- return true;
+ if (!this.video.controls && allowsInline)
+ return false;
- return false;
+ if (!this.host.userGestureRequired && allowsInline)
+ return false;
+
+ return true;
},
shouldHaveControls: function() {
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes