Title: [175812] trunk/Source/WebCore
Revision
175812
Author
eric.carl...@apple.com
Date
2014-11-10 10:35:17 -0800 (Mon, 10 Nov 2014)

Log Message

[iOS] wireless playback placeholder UI doesn't always draw
https://bugs.webkit.org/show_bug.cgi?id=138548

While it is important to only listen for the 'webkitplaybacktargetavailabilitychanged' event
when we are displaying inline controls because listening for it increases power consumption,
we should always listen for the 'webkitcurrentplaybacktargetiswirelesschanged' event because
it controls whether or not we draw the placeholder UI which is always visible during wireless
playback.

Reviewed by Brent Fulgham.

* Modules/mediacontrols/mediaControlsiOS.js:
(ControllerIOS.prototype.addVideoListeners): Always listen for the
    'webkitcurrentplaybacktargetiswirelesschanged' event.
(ControllerIOS.prototype.removeVideoListeners): Always stop listening for the
    'webkitcurrentplaybacktargetiswirelesschanged' event.
(ControllerIOS.prototype.handleStartPlaybackButtonTouchEnd): Call updateControls so we update
    the type of controls rendered and start listening for wireless target changes immediately.
(ControllerIOS.prototype.setShouldListenForPlaybackTargetAvailabilityEvent): Don't start and stop
    listening for 'webkitcurrentplaybacktargetiswirelesschanged', we should always listen for it.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (175811 => 175812)


--- trunk/Source/WebCore/ChangeLog	2014-11-10 18:04:27 UTC (rev 175811)
+++ trunk/Source/WebCore/ChangeLog	2014-11-10 18:35:17 UTC (rev 175812)
@@ -1,3 +1,26 @@
+2014-11-10  Eric Carlson  <eric.carl...@apple.com>
+
+        [iOS] wireless playback placeholder UI doesn't always draw
+        https://bugs.webkit.org/show_bug.cgi?id=138548
+
+        While it is important to only listen for the 'webkitplaybacktargetavailabilitychanged' event
+        when we are displaying inline controls because listening for it increases power consumption,
+        we should always listen for the 'webkitcurrentplaybacktargetiswirelesschanged' event because
+        it controls whether or not we draw the placeholder UI which is always visible during wireless
+        playback.
+
+        Reviewed by Brent Fulgham.
+
+        * Modules/mediacontrols/mediaControlsiOS.js:
+        (ControllerIOS.prototype.addVideoListeners): Always listen for the
+            'webkitcurrentplaybacktargetiswirelesschanged' event.
+        (ControllerIOS.prototype.removeVideoListeners): Always stop listening for the 
+            'webkitcurrentplaybacktargetiswirelesschanged' event.
+        (ControllerIOS.prototype.handleStartPlaybackButtonTouchEnd): Call updateControls so we update 
+            the type of controls rendered and start listening for wireless target changes immediately.
+        (ControllerIOS.prototype.setShouldListenForPlaybackTargetAvailabilityEvent): Don't start and stop 
+            listening for 'webkitcurrentplaybacktargetiswirelesschanged', we should always listen for it.
+
 2014-11-10  Csaba Osztrogonác  <o...@webkit.org>
 
         Crash in WebCore::Node::getFlag

Modified: trunk/Source/WebCore/Modules/mediacontrols/mediaControlsiOS.js (175811 => 175812)


--- trunk/Source/WebCore/Modules/mediacontrols/mediaControlsiOS.js	2014-11-10 18:04:27 UTC (rev 175811)
+++ trunk/Source/WebCore/Modules/mediacontrols/mediaControlsiOS.js	2014-11-10 18:35:17 UTC (rev 175812)
@@ -32,6 +32,7 @@
 
         this.listenFor(this.video, 'webkitbeginfullscreen', this.handleFullscreenChange);
         this.listenFor(this.video, 'webkitendfullscreen', this.handleFullscreenChange);
+        this.listenFor(this.video, 'webkitcurrentplaybacktargetiswirelesschanged', this.handleWirelessPlaybackChange);
     },
 
     removeVideoListeners: function() {
@@ -39,6 +40,7 @@
 
         this.stopListeningFor(this.video, 'webkitbeginfullscreen', this.handleFullscreenChange);
         this.stopListeningFor(this.video, 'webkitendfullscreen', this.handleFullscreenChange);
+        this.stopListeningFor(this.video, 'webkitcurrentplaybacktargetiswirelesschanged', this.handleWirelessPlaybackChange);
 
         this.setShouldListenForPlaybackTargetAvailabilityEvent(false);
     },
@@ -472,6 +474,7 @@
             return true;
 
         this.video.play();
+        this.updateControls();
 
         return true;
     },
@@ -553,13 +556,10 @@
             return;
 
         this.isListeningForPlaybackTargetAvailabilityEvent = shouldListen;
-        if (shouldListen) {
-            this.listenFor(this.video, 'webkitcurrentplaybacktargetiswirelesschanged', this.handleWirelessPlaybackChange);
+        if (shouldListen)
             this.listenFor(this.video, 'webkitplaybacktargetavailabilitychanged', this.handleWirelessTargetAvailableChange);
-        } else {
-            this.stopListeningFor(this.video, 'webkitcurrentplaybacktargetiswirelesschanged', this.handleWirelessPlaybackChange);
+        else
             this.stopListeningFor(this.video, 'webkitplaybacktargetavailabilitychanged', this.handleWirelessTargetAvailableChange);
-        }
     },
 
     get pageScaleFactor()
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to