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()