Mac: Incorrect rendering of <audio> controls
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 12 Mar 2013 21:53:19 +0000 (21:53 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 12 Mar 2013 21:53:19 +0000 (21:53 +0000)
https://bugs.webkit.org/show_bug.cgi?id=110913

Patch by Christian Biesinger <cbiesinger@chromium.org> on 2013-03-12
Reviewed by Tony Chang.

Source/WebCore:

Covered by existing tests under media/.

* css/mediaControls.css:
(audio::-webkit-media-controls-timeline-container, video::-webkit-media-controls-timeline-container):
(audio::-webkit-media-controls-timeline, video::-webkit-media-controls-timeline):
The timeline container and the timeline need min-width: 0 so that they can shrink if needed.
* css/mediaControlsQuickTime.css:
(audio::-webkit-media-controls-timeline-container, video::-webkit-media-controls-timeline-container):
(audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):
(audio::-webkit-media-controls-time-remaining-display, video::-webkit-media-controls-time-remaining-display):
The timeline container also needs flex-start to ensure that it never overlaps
the play/rewind buttons. The current-time and remaining-time displays need min-width: 0 so that the hack
in RenderMediaControls.cpp works correctly - otherwise, RenderFlexibleBox tries to use the preferred width
of the time displays, which is wrong when they try to hide themselves.

LayoutTests:

* platform/mac/media/audio-controls-rendering-expected.txt:
* platform/mac/media/controls-after-reload-expected.txt:
* platform/mac/media/controls-strict-expected.txt:
* platform/mac/media/controls-styling-strict-expected.txt:
* platform/mac/media/controls-without-preload-expected.txt:
* platform/mac/media/video-controls-rendering-expected.txt:
* platform/mac/media/video-display-toggle-expected.txt:
* platform/mac/media/video-no-audio-expected.txt:
* platform/mac/media/video-playing-and-pause-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@145588 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 files changed:
LayoutTests/ChangeLog
LayoutTests/platform/mac/media/audio-controls-rendering-expected.txt
LayoutTests/platform/mac/media/controls-after-reload-expected.txt
LayoutTests/platform/mac/media/controls-strict-expected.txt
LayoutTests/platform/mac/media/controls-styling-strict-expected.txt
LayoutTests/platform/mac/media/controls-without-preload-expected.txt
LayoutTests/platform/mac/media/video-controls-rendering-expected.txt
LayoutTests/platform/mac/media/video-display-toggle-expected.txt
LayoutTests/platform/mac/media/video-no-audio-expected.txt
LayoutTests/platform/mac/media/video-playing-and-pause-expected.txt
Source/WebCore/ChangeLog
Source/WebCore/css/mediaControls.css
Source/WebCore/css/mediaControlsQuickTime.css

index e03a43a..391b458 100644 (file)
@@ -1,3 +1,20 @@
+2013-03-12  Christian Biesinger  <cbiesinger@chromium.org>
+
+        Mac: Incorrect rendering of <audio> controls
+        https://bugs.webkit.org/show_bug.cgi?id=110913
+
+        Reviewed by Tony Chang.
+
+        * platform/mac/media/audio-controls-rendering-expected.txt:
+        * platform/mac/media/controls-after-reload-expected.txt:
+        * platform/mac/media/controls-strict-expected.txt:
+        * platform/mac/media/controls-styling-strict-expected.txt:
+        * platform/mac/media/controls-without-preload-expected.txt:
+        * platform/mac/media/video-controls-rendering-expected.txt:
+        * platform/mac/media/video-display-toggle-expected.txt:
+        * platform/mac/media/video-no-audio-expected.txt:
+        * platform/mac/media/video-playing-and-pause-expected.txt:
+
 2013-03-12  Ryosuke Niwa  <rniwa@webkit.org>
 
         Some canvas tests only fail on Mac EWS
index bfc478b..818e9b3 100644 (file)
@@ -20,23 +20,13 @@ layer at (8,42) size 200x25
   RenderFlexibleBox {DIV} at (0,0) size 200x25
     RenderButton {INPUT} at (6,3) size 18x18
     RenderButton {INPUT} at (32,4) size 16x17
-    RenderFlexibleBox {DIV} at (49,5) size 219x15
-      RenderSlider {INPUT} at (45,2) size 129x13
-        RenderFlexibleBox {DIV} at (0,0) size 129x13
-          RenderBlock {DIV} at (0,2) size 129x9
+    RenderFlexibleBox {DIV} at (49,5) size 126x15
+      RenderSlider {INPUT} at (0,2) size 126x13
+        RenderFlexibleBox {DIV} at (0,0) size 126x13
+          RenderBlock {DIV} at (0,2) size 126x9
             RenderBlock {DIV} at (0,0) size 10x8
-    RenderBlock {DIV} at (268,6) size 25x13
-layer at (57,49) size 45x11
-  RenderFlexibleBox {DIV} at (0,2) size 45x11 [color=#FFFFFF]
-    RenderBlock (anonymous) at (9,0) size 27x11
-      RenderText {#text} at (0,0) size 26x11
-        text run at (0,0) width 26: "00:00"
-layer at (231,49) size 45x11
-  RenderFlexibleBox {DIV} at (174,2) 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:07"
-layer at (278,49) size 14x12
+    RenderBlock {DIV} at (175,6) size 25x13
+layer at (185,49) size 14x12
   RenderButton zI: 1 {INPUT} at (2,0) size 14x12
 layer at (8,85) size 320x25
   RenderFlexibleBox {DIV} at (0,0) size 320x25
@@ -45,21 +35,11 @@ layer at (8,85) size 320x25
     RenderButton {INPUT} at (6,3) size 18x18
     RenderButton {INPUT} at (32,4) size 16x17
     RenderFlexibleBox {DIV} at (49,5) size 246x15
-      RenderSlider {INPUT} at (45,2) size 156x13
-        RenderFlexibleBox {DIV} at (0,0) size 156x13
-          RenderBlock {DIV} at (0,2) size 156x9
+      RenderSlider {INPUT} at (0,2) size 246x13
+        RenderFlexibleBox {DIV} at (0,0) size 246x13
+          RenderBlock {DIV} at (0,2) size 246x9
             RenderBlock {DIV} at (0,0) size 10x8
     RenderBlock {DIV} at (295,6) size 25x13
-layer at (57,92) size 45x11
-  RenderFlexibleBox {DIV} at (0,2) size 45x11 [color=#FFFFFF]
-    RenderBlock (anonymous) at (9,0) size 27x11
-      RenderText {#text} at (0,0) size 26x11
-        text run at (0,0) width 26: "00:00"
-layer at (258,92) size 45x11
-  RenderFlexibleBox {DIV} at (201,2) 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:07"
 layer at (305,92) size 14x12
   RenderButton zI: 1 {INPUT} at (2,0) size 14x12
 layer at (8,128) size 320x100
@@ -71,20 +51,10 @@ layer at (8,203) size 320x25
     RenderButton {INPUT} at (6,3) size 18x18
     RenderButton {INPUT} at (32,4) size 16x17
     RenderFlexibleBox {DIV} at (49,5) size 246x15
-      RenderSlider {INPUT} at (45,2) size 156x13
-        RenderFlexibleBox {DIV} at (0,0) size 156x13
-          RenderBlock {DIV} at (0,2) size 156x9
+      RenderSlider {INPUT} at (0,2) size 246x13
+        RenderFlexibleBox {DIV} at (0,0) size 246x13
+          RenderBlock {DIV} at (0,2) size 246x9
             RenderBlock {DIV} at (0,0) size 10x8
     RenderBlock {DIV} at (295,6) size 25x13
-layer at (57,210) size 45x11
-  RenderFlexibleBox {DIV} at (0,2) size 45x11 [color=#FFFFFF]
-    RenderBlock (anonymous) at (9,0) size 27x11
-      RenderText {#text} at (0,0) size 26x11
-        text run at (0,0) width 26: "00:00"
-layer at (258,210) size 45x11
-  RenderFlexibleBox {DIV} at (201,2) 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:07"
 layer at (305,210) size 14x12
   RenderButton zI: 1 {INPUT} at (2,0) size 14x12
index fd20910..5694ea1 100644 (file)
@@ -16,22 +16,12 @@ layer at (8,257) size 320x25
   RenderFlexibleBox {DIV} at (0,215) size 320x25
     RenderButton {INPUT} at (6,3) size 18x18
     RenderButton {INPUT} at (32,4) size 16x17
-    RenderFlexibleBox {DIV} at (49,5) size 219x15
-      RenderSlider {INPUT} at (45,2) size 129x13
-        RenderFlexibleBox {DIV} at (0,0) size 129x13
-          RenderBlock {DIV} at (0,2) size 129x9
+    RenderFlexibleBox {DIV} at (49,5) size 216x15
+      RenderSlider {INPUT} at (0,2) size 216x13
+        RenderFlexibleBox {DIV} at (0,0) size 216x13
+          RenderBlock {DIV} at (0,2) size 216x9
             RenderBlock {DIV} at (0,0) size 10x8
-    RenderButton {INPUT} at (300,4) size 16x17
-    RenderBlock {DIV} at (268,6) size 25x13
-layer at (57,264) size 45x11
-  RenderFlexibleBox {DIV} at (0,2) size 45x11 [color=#FFFFFF]
-    RenderBlock (anonymous) at (9,0) size 27x11
-      RenderText {#text} at (0,0) size 26x11
-        text run at (0,0) width 26: "00:00"
-layer at (231,264) size 45x11
-  RenderFlexibleBox {DIV} at (174,2) 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:06"
-layer at (278,264) size 14x12
+    RenderButton {INPUT} at (297,4) size 16x17
+    RenderBlock {DIV} at (265,6) size 25x13
+layer at (275,264) size 14x12
   RenderButton zI: 1 {INPUT} at (2,0) size 14x12
index 5d7d92d..e711ba8 100644 (file)
@@ -16,22 +16,12 @@ layer at (8,265) size 320x25
   RenderFlexibleBox {DIV} at (0,215) size 320x25
     RenderButton {INPUT} at (6,3) size 18x18
     RenderButton {INPUT} at (32,4) size 16x17
-    RenderFlexibleBox {DIV} at (49,5) size 219x15
-      RenderSlider {INPUT} at (45,2) size 129x13
-        RenderFlexibleBox {DIV} at (0,0) size 129x13
-          RenderBlock {DIV} at (0,2) size 129x9
+    RenderFlexibleBox {DIV} at (49,5) size 216x15
+      RenderSlider {INPUT} at (0,2) size 216x13
+        RenderFlexibleBox {DIV} at (0,0) size 216x13
+          RenderBlock {DIV} at (0,2) size 216x9
             RenderBlock {DIV} at (0,0) size 10x8
-    RenderButton {INPUT} at (300,4) size 16x17
-    RenderBlock {DIV} at (268,6) size 25x13
-layer at (57,272) size 45x11
-  RenderFlexibleBox {DIV} at (0,2) size 45x11 [color=#FFFFFF]
-    RenderBlock (anonymous) at (9,0) size 27x11
-      RenderText {#text} at (0,0) size 26x11
-        text run at (0,0) width 26: "00:00"
-layer at (231,272) size 45x11
-  RenderFlexibleBox {DIV} at (174,2) 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:06"
-layer at (278,272) size 14x12
+    RenderButton {INPUT} at (297,4) size 16x17
+    RenderBlock {DIV} at (265,6) size 25x13
+layer at (275,272) size 14x12
   RenderButton zI: 1 {INPUT} at (2,0) size 14x12
index de24cbb..f6c19bb 100644 (file)
@@ -20,24 +20,14 @@ layer at (8,265) size 320x25
   RenderFlexibleBox {DIV} at (0,215) size 320x25
     RenderButton {INPUT} at (6,3) size 18x18
     RenderButton {INPUT} at (32,4) size 16x17
-    RenderFlexibleBox {DIV} at (49,5) size 219x15
-      RenderSlider {INPUT} at (45,2) size 129x13
-        RenderFlexibleBox {DIV} at (0,0) size 129x13
-          RenderBlock {DIV} at (0,2) size 129x9
+    RenderFlexibleBox {DIV} at (49,5) size 216x15
+      RenderSlider {INPUT} at (0,2) size 216x13
+        RenderFlexibleBox {DIV} at (0,0) size 216x13
+          RenderBlock {DIV} at (0,2) size 216x9
             RenderBlock {DIV} at (0,0) size 10x8
-    RenderButton {INPUT} at (300,4) size 16x17
-    RenderBlock {DIV} at (268,6) size 25x13
-layer at (57,272) size 45x11
-  RenderFlexibleBox {DIV} at (0,2) size 45x11 [color=#FFFFFF]
-    RenderBlock (anonymous) at (9,0) size 27x11
-      RenderText {#text} at (0,0) size 26x11
-        text run at (0,0) width 26: "00:00"
-layer at (231,272) size 45x11
-  RenderFlexibleBox {DIV} at (174,2) 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:06"
-layer at (278,272) size 14x12
+    RenderButton {INPUT} at (297,4) size 16x17
+    RenderBlock {DIV} at (265,6) size 25x13
+layer at (275,272) size 14x12
   RenderButton zI: 1 {INPUT} at (2,0) size 14x12
 layer at (332,50) size 320x240
   RenderFlexibleBox {DIV} at (0,0) size 320x240
@@ -45,22 +35,12 @@ layer at (332,265) size 320x25
   RenderFlexibleBox {DIV} at (0,215) size 320x25
     RenderButton {INPUT} at (6,3) size 18x18
     RenderButton {INPUT} at (32,4) size 16x17
-    RenderFlexibleBox {DIV} at (49,5) size 219x15
-      RenderSlider {INPUT} at (45,2) size 129x13
-        RenderFlexibleBox {DIV} at (0,0) size 129x13
-          RenderBlock {DIV} at (0,2) size 129x9
+    RenderFlexibleBox {DIV} at (49,5) size 216x15
+      RenderSlider {INPUT} at (0,2) size 216x13
+        RenderFlexibleBox {DIV} at (0,0) size 216x13
+          RenderBlock {DIV} at (0,2) size 216x9
             RenderBlock {DIV} at (0,0) size 10x8
-    RenderButton {INPUT} at (300,4) size 16x17
-    RenderBlock {DIV} at (268,6) size 25x13
-layer at (381,272) size 45x11
-  RenderFlexibleBox {DIV} at (0,2) size 45x11 [color=#FFFFFF]
-    RenderBlock (anonymous) at (9,0) size 27x11
-      RenderText {#text} at (0,0) size 26x11
-        text run at (0,0) width 26: "00:00"
-layer at (555,272) size 45x11
-  RenderFlexibleBox {DIV} at (174,2) 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:06"
-layer at (602,272) size 14x12
+    RenderButton {INPUT} at (297,4) size 16x17
+    RenderBlock {DIV} at (265,6) size 25x13
+layer at (599,272) size 14x12
   RenderButton zI: 1 {INPUT} at (2,0) size 14x12
index d787004..f7199bb 100644 (file)
@@ -16,22 +16,12 @@ layer at (8,257) size 320x25
   RenderFlexibleBox {DIV} at (0,215) size 320x25
     RenderButton {INPUT} at (6,3) size 18x18
     RenderButton {INPUT} at (32,4) size 16x17
-    RenderFlexibleBox {DIV} at (49,5) size 219x15
-      RenderSlider {INPUT} at (45,2) size 129x13
-        RenderFlexibleBox {DIV} at (0,0) size 129x13
-          RenderBlock {DIV} at (0,2) size 129x9
+    RenderFlexibleBox {DIV} at (49,5) size 216x15
+      RenderSlider {INPUT} at (0,2) size 216x13
+        RenderFlexibleBox {DIV} at (0,0) size 216x13
+          RenderBlock {DIV} at (0,2) size 216x9
             RenderBlock {DIV} at (0,0) size 10x8
-    RenderButton {INPUT} at (300,4) size 16x17
-    RenderBlock {DIV} at (268,6) size 25x13
-layer at (57,264) size 45x11
-  RenderFlexibleBox {DIV} at (0,2) size 45x11 [color=#FFFFFF]
-    RenderBlock (anonymous) at (9,0) size 27x11
-      RenderText {#text} at (0,0) size 26x11
-        text run at (0,0) width 26: "00:00"
-layer at (231,264) size 45x11
-  RenderFlexibleBox {DIV} at (174,2) 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:06"
-layer at (278,264) size 14x12
+    RenderButton {INPUT} at (297,4) size 16x17
+    RenderBlock {DIV} at (265,6) size 25x13
+layer at (275,264) size 14x12
   RenderButton zI: 1 {INPUT} at (2,0) size 14x12
index a07c462..c407abf 100644 (file)
@@ -21,24 +21,14 @@ layer at (8,257) size 320x25
   RenderFlexibleBox {DIV} at (0,215) size 320x25
     RenderButton {INPUT} at (6,3) size 18x18
     RenderButton {INPUT} at (32,4) size 16x17
-    RenderFlexibleBox {DIV} at (49,5) size 219x15
-      RenderSlider {INPUT} at (45,2) size 129x13
-        RenderFlexibleBox {DIV} at (0,0) size 129x13
-          RenderBlock {DIV} at (0,2) size 129x9
+    RenderFlexibleBox {DIV} at (49,5) size 216x15
+      RenderSlider {INPUT} at (0,2) size 216x13
+        RenderFlexibleBox {DIV} at (0,0) size 216x13
+          RenderBlock {DIV} at (0,2) size 216x9
             RenderBlock {DIV} at (0,0) size 10x8
-    RenderButton {INPUT} at (300,4) size 16x17
-    RenderBlock {DIV} at (268,6) size 25x13
-layer at (57,264) size 45x11
-  RenderFlexibleBox {DIV} at (0,2) size 45x11 [color=#FFFFFF]
-    RenderBlock (anonymous) at (9,0) size 27x11
-      RenderText {#text} at (0,0) size 26x11
-        text run at (0,0) width 26: "00:00"
-layer at (231,264) size 45x11
-  RenderFlexibleBox {DIV} at (174,2) 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:06"
-layer at (278,264) size 14x12
+    RenderButton {INPUT} at (297,4) size 16x17
+    RenderBlock {DIV} at (265,6) size 25x13
+layer at (275,264) size 14x12
   RenderButton zI: 1 {INPUT} at (2,0) size 14x12
 layer at (8,282) size 320x240
   RenderFlexibleBox {DIV} at (0,0) size 320x240
@@ -46,24 +36,14 @@ layer at (8,497) size 320x25
   RenderFlexibleBox {DIV} at (0,215) size 320x25
     RenderButton {INPUT} at (6,3) size 18x18
     RenderButton {INPUT} at (32,4) size 16x17
-    RenderFlexibleBox {DIV} at (49,5) size 219x15
-      RenderSlider {INPUT} at (45,2) size 129x13
-        RenderFlexibleBox {DIV} at (0,0) size 129x13
-          RenderBlock {DIV} at (0,2) size 129x9
+    RenderFlexibleBox {DIV} at (49,5) size 216x15
+      RenderSlider {INPUT} at (0,2) size 216x13
+        RenderFlexibleBox {DIV} at (0,0) size 216x13
+          RenderBlock {DIV} at (0,2) size 216x9
             RenderBlock {DIV} at (0,0) size 10x8
-    RenderButton {INPUT} at (300,4) size 16x17
-    RenderBlock {DIV} at (268,6) size 25x13
-layer at (57,504) size 45x11
-  RenderFlexibleBox {DIV} at (0,2) size 45x11 [color=#FFFFFF]
-    RenderBlock (anonymous) at (9,0) size 27x11
-      RenderText {#text} at (0,0) size 26x11
-        text run at (0,0) width 26: "00:00"
-layer at (231,504) size 45x11
-  RenderFlexibleBox {DIV} at (174,2) 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:06"
-layer at (278,504) size 14x12
+    RenderButton {INPUT} at (297,4) size 16x17
+    RenderBlock {DIV} at (265,6) size 25x13
+layer at (275,504) size 14x12
   RenderButton zI: 1 {INPUT} at (2,0) size 14x12
 layer at (8,522) size 320x240
   RenderVideo {VIDEO} at (8,522) size 320x240
@@ -73,22 +53,12 @@ layer at (8,737) size 320x25
   RenderFlexibleBox {DIV} at (0,215) size 320x25
     RenderButton {INPUT} at (6,3) size 18x18
     RenderButton {INPUT} at (32,4) size 16x17
-    RenderFlexibleBox {DIV} at (49,5) size 219x15
-      RenderSlider {INPUT} at (45,2) size 129x13
-        RenderFlexibleBox {DIV} at (0,0) size 129x13
-          RenderBlock {DIV} at (0,2) size 129x9
+    RenderFlexibleBox {DIV} at (49,5) size 216x15
+      RenderSlider {INPUT} at (0,2) size 216x13
+        RenderFlexibleBox {DIV} at (0,0) size 216x13
+          RenderBlock {DIV} at (0,2) size 216x9
             RenderBlock {DIV} at (0,0) size 10x8
-    RenderButton {INPUT} at (300,4) size 16x17
-    RenderBlock {DIV} at (268,6) size 25x13
-layer at (57,744) size 45x11
-  RenderFlexibleBox {DIV} at (0,2) size 45x11 [color=#FFFFFF]
-    RenderBlock (anonymous) at (9,0) size 27x11
-      RenderText {#text} at (0,0) size 26x11
-        text run at (0,0) width 26: "00:00"
-layer at (231,744) size 45x11
-  RenderFlexibleBox {DIV} at (174,2) 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:06"
-layer at (278,744) size 14x12
+    RenderButton {INPUT} at (297,4) size 16x17
+    RenderBlock {DIV} at (265,6) size 25x13
+layer at (275,744) size 14x12
   RenderButton zI: 1 {INPUT} at (2,0) size 14x12
index ed62e00..ef19ca6 100644 (file)
@@ -15,22 +15,12 @@ layer at (8,241) size 320x25
   RenderFlexibleBox {DIV} at (0,215) size 320x25
     RenderButton {INPUT} at (6,3) size 18x18
     RenderButton {INPUT} at (32,4) size 16x17
-    RenderFlexibleBox {DIV} at (49,5) size 219x15
-      RenderSlider {INPUT} at (45,2) size 129x13
-        RenderFlexibleBox {DIV} at (0,0) size 129x13
-          RenderBlock {DIV} at (0,2) size 129x9
+    RenderFlexibleBox {DIV} at (49,5) size 216x15
+      RenderSlider {INPUT} at (0,2) size 216x13
+        RenderFlexibleBox {DIV} at (0,0) size 216x13
+          RenderBlock {DIV} at (0,2) size 216x9
             RenderBlock {DIV} at (0,0) size 10x8
-    RenderButton {INPUT} at (300,4) size 16x17
-    RenderBlock {DIV} at (268,6) size 25x13
-layer at (57,248) size 45x11
-  RenderFlexibleBox {DIV} at (0,2) size 45x11 [color=#FFFFFF]
-    RenderBlock (anonymous) at (9,0) size 27x11
-      RenderText {#text} at (0,0) size 26x11
-        text run at (0,0) width 26: "00:00"
-layer at (231,248) size 45x11
-  RenderFlexibleBox {DIV} at (174,2) 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:06"
-layer at (278,248) size 14x12
+    RenderButton {INPUT} at (297,4) size 16x17
+    RenderBlock {DIV} at (265,6) size 25x13
+layer at (275,248) size 14x12
   RenderButton zI: 1 {INPUT} at (2,0) size 14x12
index 2b02508..489db8e 100644 (file)
@@ -17,19 +17,9 @@ layer at (8,305) size 352x25
     RenderButton {INPUT} at (6,3) size 18x18
     RenderButton {INPUT} at (32,4) size 16x17
     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 183x9
+      RenderSlider {INPUT} at (0,2) size 273x13
+        RenderFlexibleBox {DIV} at (0,0) size 273x13
+          RenderBlock {DIV} at (0,2) size 273x9
             RenderBlock {DIV} at (0,0) size 10x8
     RenderButton {INPUT} at (329,4) size 16x17
     RenderBlock {DIV} at (322,12) size 0x1
-layer at (57,312) size 45x11
-  RenderFlexibleBox {DIV} at (0,2) size 45x11 [color=#FFFFFF]
-    RenderBlock (anonymous) at (9,0) size 27x11
-      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]
-    RenderBlock (anonymous) at (7,0) size 31x11
-      RenderText {#text} at (0,0) size 31x11
-        text run at (0,0) width 31: "-00:09"
index 989f9f5..a45345a 100644 (file)
@@ -17,22 +17,12 @@ layer at (8,283) size 320x25
   RenderFlexibleBox {DIV} at (0,215) size 320x25
     RenderButton {INPUT} at (6,3) size 18x18
     RenderButton {INPUT} at (32,4) size 16x17
-    RenderFlexibleBox {DIV} at (49,5) size 219x15
-      RenderSlider {INPUT} at (45,2) size 129x13
-        RenderFlexibleBox {DIV} at (0,0) size 129x13
-          RenderBlock {DIV} at (0,2) size 129x9
+    RenderFlexibleBox {DIV} at (49,5) size 216x15
+      RenderSlider {INPUT} at (0,2) size 216x13
+        RenderFlexibleBox {DIV} at (0,0) size 216x13
+          RenderBlock {DIV} at (0,2) size 216x9
             RenderBlock {DIV} at (0,0) size 10x8
-    RenderButton {INPUT} at (300,4) size 16x17
-    RenderBlock {DIV} at (268,6) size 25x13
-layer at (57,290) size 45x11
-  RenderFlexibleBox {DIV} at (0,2) size 45x11 [color=#FFFFFF]
-    RenderBlock (anonymous) at (9,0) size 27x11
-      RenderText {#text} at (0,0) size 26x11
-        text run at (0,0) width 26: "00:00"
-layer at (231,290) size 45x11
-  RenderFlexibleBox {DIV} at (174,2) 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:06"
-layer at (278,290) size 14x12
+    RenderButton {INPUT} at (297,4) size 16x17
+    RenderBlock {DIV} at (265,6) size 25x13
+layer at (275,290) size 14x12
   RenderButton zI: 1 {INPUT} at (2,0) size 14x12
index e8ab2d2..fd632c2 100644 (file)
@@ -1,3 +1,25 @@
+2013-03-12  Christian Biesinger  <cbiesinger@chromium.org>
+
+        Mac: Incorrect rendering of <audio> controls
+        https://bugs.webkit.org/show_bug.cgi?id=110913
+
+        Reviewed by Tony Chang.
+
+        Covered by existing tests under media/.
+
+        * css/mediaControls.css:
+        (audio::-webkit-media-controls-timeline-container, video::-webkit-media-controls-timeline-container):
+        (audio::-webkit-media-controls-timeline, video::-webkit-media-controls-timeline):
+        The timeline container and the timeline need min-width: 0 so that they can shrink if needed.
+        * css/mediaControlsQuickTime.css:
+        (audio::-webkit-media-controls-timeline-container, video::-webkit-media-controls-timeline-container):
+        (audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):
+        (audio::-webkit-media-controls-time-remaining-display, video::-webkit-media-controls-time-remaining-display):
+        The timeline container also needs flex-start to ensure that it never overlaps
+        the play/rewind buttons. The current-time and remaining-time displays need min-width: 0 so that the hack
+        in RenderMediaControls.cpp works correctly - otherwise, RenderFlexibleBox tries to use the preferred width
+        of the time displays, which is wrong when they try to hide themselves.
+
 2013-03-12  Alexey Proskuryakov  <ap@apple.com>
 
         Improve logging in ResourceHandleMac.mm
index 5873d5f..58093e4 100644 (file)
@@ -104,6 +104,7 @@ audio::-webkit-media-controls-timeline-container, video::-webkit-media-controls-
     -webkit-flex: 1 1;
     -webkit-user-select: none;
     height: 16px;
+    min-width: 0;
 }
 
 audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display {
@@ -124,6 +125,7 @@ audio::-webkit-media-controls-timeline, video::-webkit-media-controls-timeline {
     border: initial;
     color: inherit;
     margin: initial;
+    min-width: 0;
 }
 
 audio::-webkit-media-controls-volume-slider, video::-webkit-media-controls-volume-slider {
index 502de7c..d9b2218 100644 (file)
@@ -65,7 +65,7 @@ audio::-webkit-media-controls-timeline-container, video::-webkit-media-controls-
     -webkit-appearance: none;
     -webkit-flex-direction: row;
     -webkit-align-items: center;
-    -webkit-justify-content: center;
+    -webkit-justify-content: flex-start;
     -webkit-flex: 1 1;
     text-align: right;
     height: auto;
@@ -82,6 +82,7 @@ audio::-webkit-media-controls-current-time-display, video::-webkit-media-control
     font-size: 9px;
     overflow: hidden;
     width: 45px;
+    min-width: 0; /* needed due to flexbox */
     color: white;
     text-shadow: black 0px 1px 1px;
 
@@ -104,6 +105,7 @@ audio::-webkit-media-controls-time-remaining-display, video::-webkit-media-contr
     font-size: 9px;
     overflow: hidden;
     width: 45px;
+    min-width: 0; /* needed due to flexbox */
     color: white;
     text-shadow: black 0px 1px 1px;