- Revision
- 156656
- Author
- jer.no...@apple.com
- Date
- 2013-09-30 09:09:37 -0700 (Mon, 30 Sep 2013)
Log Message
REGRESSION(r156546): media/video-no-audio.html broken
https://bugs.webkit.org/show_bug.cgi?id=122049
Reviewed by Eric Carlson.
Source/WebCore:
Now that our video elements have audio tracks, use their presence or
absense to show or hide the volume controls.
* Modules/mediacontrols/mediaControlsApple.js:
(Controller):
(Controller.prototype.addVideoListeners): Listen for audioTrack changes.
(Controller.prototype.removeVideoListeners): Stop listening to same.
(Controller.prototype.handleAudioTrackChange): Call this.updateHasAudio()
(Controller.prototype.handleAudioTrackAdd): Ditto.
(Controller.prototype.handleAudioTrackRemove): Ditto.
(Controller.prototype.updateHasAudio): Hide the volume controls if no
audioTracks are present, and vice versa.
LayoutTests:
* platform/mac/TestExpectations:
* platform/mac/media/video-no-audio-expected.txt:
Modified Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (156655 => 156656)
--- trunk/LayoutTests/ChangeLog 2013-09-30 15:43:34 UTC (rev 156655)
+++ trunk/LayoutTests/ChangeLog 2013-09-30 16:09:37 UTC (rev 156656)
@@ -1,5 +1,15 @@
2013-09-27 Jer Noble <jer.no...@apple.com>
+ REGRESSION(r156546): media/video-no-audio.html broken
+ https://bugs.webkit.org/show_bug.cgi?id=122049
+
+ Reviewed by Eric Carlson.
+
+ * platform/mac/TestExpectations:
+ * platform/mac/media/video-no-audio-expected.txt:
+
+2013-09-27 Jer Noble <jer.no...@apple.com>
+
[Mac] Add AudioTrack support to MediaPlayerPrivateAVFObC.
https://bugs.webkit.org/show_bug.cgi?id=122043
Modified: trunk/LayoutTests/platform/mac/TestExpectations (156655 => 156656)
--- trunk/LayoutTests/platform/mac/TestExpectations 2013-09-30 15:43:34 UTC (rev 156655)
+++ trunk/LayoutTests/platform/mac/TestExpectations 2013-09-30 16:09:37 UTC (rev 156656)
@@ -1358,7 +1358,6 @@
webkit.org/b/122021 media/video-controls-visible-exiting-fullscreen.html
webkit.org/b/122021 media/video-display-toggle.html
webkit.org/b/122021 media/video-empty-source.html
-webkit.org/b/122021 media/video-no-audio.html
webkit.org/b/122021 media/video-rtl.html
webkit.org/b/122021 media/video-volume-slider.html
webkit.org/b/122021 media/volume-bar-empty-when-muted.html
Modified: trunk/LayoutTests/platform/mac/media/video-no-audio-expected.txt (156655 => 156656)
--- trunk/LayoutTests/platform/mac/media/video-no-audio-expected.txt 2013-09-30 15:43:34 UTC (rev 156655)
+++ trunk/LayoutTests/platform/mac/media/video-no-audio-expected.txt 2013-09-30 16:09:37 UTC (rev 156656)
@@ -14,22 +14,28 @@
RenderFlexibleBox {DIV} at (0,0) size 352x288
layer at (8,305) size 352x25
RenderFlexibleBox {DIV} at (0,263) size 352x25
- RenderButton {INPUT} at (6,3) size 18x18
- RenderButton {INPUT} at (32,4) size 16x16
- RenderFlexibleBox {DIV} at (49,5) size 273x15
- RenderSlider {INPUT} at (45,2) size 183x13
- RenderFlexibleBox {DIV} at (0,0) size 183x13
- RenderBlock {DIV} at (0,2) size 183x8
- RenderBlock {DIV} at (0,0) size 10x8
- RenderButton {INPUT} at (329,4) size 16x16
- RenderBlock {DIV} at (322,12) size 0x0
+layer at (14,309) size 16x16
+ RenderButton {BUTTON} at (6,4) size 16x16 [color=#FFFFFF]
+layer at (40,310) size 16x16
+ RenderButton {BUTTON} at (32,5) size 16x16 [color=#FFFFFF]
+layer at (57,312) size 273x11
+ RenderFlexibleBox {DIV} at (49,7) size 273x11
layer at (57,312) size 45x11
- RenderFlexibleBox {DIV} at (0,2) size 45x11 [color=#FFFFFF]
+ RenderFlexibleBox {DIV} at (0,0) size 45x11 [color=#FFFFFF]
RenderBlock (anonymous) at (9,0) size 26x11
RenderText {#text} at (0,0) size 26x11
text run at (0,0) width 26: "00:00"
layer at (285,312) size 45x11
- RenderFlexibleBox {DIV} at (228,2) size 45x11 [color=#FFFFFF]
+ RenderFlexibleBox {DIV} at (228,0) size 45x11 [color=#FFFFFF]
RenderBlock (anonymous) at (7,0) size 31x11
RenderText {#text} at (0,0) size 31x11
text run at (0,0) width 31: "-00:09"
+layer at (104,313) size 179x9
+ RenderFlexibleBox {DIV} at (47,1) size 179x9
+ RenderSlider {INPUT} at (0,0) size 179x9 [color=#909090] [bgcolor=#000000]
+ RenderFlexibleBox {DIV} at (0,0) size 179x9
+ RenderBlock {DIV} at (0,1) size 179x6
+layer at (104,314) size 6x6
+ RenderBlock {DIV} at (0,0) size 6x6 [bgcolor=#FFFFFF]
+layer at (337,310) size 16x16
+ RenderButton {BUTTON} at (329,5) size 16x16 [color=#FFFFFF]
Modified: trunk/Source/WebCore/ChangeLog (156655 => 156656)
--- trunk/Source/WebCore/ChangeLog 2013-09-30 15:43:34 UTC (rev 156655)
+++ trunk/Source/WebCore/ChangeLog 2013-09-30 16:09:37 UTC (rev 156656)
@@ -1,3 +1,23 @@
+2013-09-27 Jer Noble <jer.no...@apple.com>
+
+ REGRESSION(r156546): media/video-no-audio.html broken
+ https://bugs.webkit.org/show_bug.cgi?id=122049
+
+ Reviewed by Eric Carlson.
+
+ Now that our video elements have audio tracks, use their presence or
+ absense to show or hide the volume controls.
+
+ * Modules/mediacontrols/mediaControlsApple.js:
+ (Controller):
+ (Controller.prototype.addVideoListeners): Listen for audioTrack changes.
+ (Controller.prototype.removeVideoListeners): Stop listening to same.
+ (Controller.prototype.handleAudioTrackChange): Call this.updateHasAudio()
+ (Controller.prototype.handleAudioTrackAdd): Ditto.
+ (Controller.prototype.handleAudioTrackRemove): Ditto.
+ (Controller.prototype.updateHasAudio): Hide the volume controls if no
+ audioTracks are present, and vice versa.
+
2013-09-30 Jer Noble <jer.no...@apple.com>
Unreviewed Mac-Lion build fix.
Modified: trunk/Source/WebCore/Modules/mediacontrols/mediaControlsApple.js (156655 => 156656)
--- trunk/Source/WebCore/Modules/mediacontrols/mediaControlsApple.js 2013-09-30 15:43:34 UTC (rev 156655)
+++ trunk/Source/WebCore/Modules/mediacontrols/mediaControlsApple.js 2013-09-30 16:09:37 UTC (rev 156656)
@@ -25,6 +25,7 @@
this.updateCaptionButton();
this.updateCaptionContainer();
this.updateVolume();
+ this.updateHasAudio();
};
/* Enums */
@@ -112,6 +113,11 @@
this.listenFor(this.video.textTracks, 'addtrack', this.handleTextTrackAdd);
this.listenFor(this.video.textTracks, 'removetrack', this.handleTextTrackRemove);
+ /* audio tracks */
+ this.listenFor(this.video.audioTracks, 'change', this.updateHasAudio);
+ this.listenFor(this.video.audioTracks, 'addtrack', this.updateHasAudio);
+ this.listenFor(this.video.audioTracks, 'removetrack', this.updateHasAudio);
+
/* controls attribute */
this.controlsObserver = new MutationObserver(this.handleControlsChange.bind(this));
this.controlsObserver.observe(this.video, { attributes: true, attributeFilter: ['controls'] });
@@ -128,6 +134,11 @@
this.stopListeningFor(this.video.textTracks, 'addtrack', this.handleTextTrackAdd);
this.stopListeningFor(this.video.textTracks, 'removetrack', this.handleTextTrackRemove);
+ /* audio tracks */
+ this.stopListeningFor(this.video.audioTracks, 'change', this.updateHasAudio);
+ this.stopListeningFor(this.video.audioTracks, 'addtrack', this.updateHasAudio);
+ this.stopListeningFor(this.video.audioTracks, 'removetrack', this.updateHasAudio);
+
/* controls attribute */
this.controlsObserver.disconnect();
delete(this.controlsObserver);
@@ -914,6 +925,14 @@
delete this.captionMenuItems;
},
+ updateHasAudio: function()
+ {
+ if (this.video.audioTracks.length)
+ this.controls.muteBox.classList.remove(this.ClassNames.hidden);
+ else
+ this.controls.muteBox.classList.add(this.ClassNames.hidden);
+ },
+
updateVolume: function()
{
if (this.video.muted || !this.video.volume) {