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

Reply via email to