Changeset 143463 in webkit
- Timestamp:
- Feb 20, 2013 7:30:15 AM (11 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 27 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r143458 r143463 1 2013-02-20 Xabier Rodriguez Calvar <calvaris@igalia.com> 2 3 [Gtk] HTML5 Media controls require a design refresh 4 https://bugs.webkit.org/show_bug.cgi?id=83869 5 6 Tests flagged and rebaselines. 7 8 Reviewed by Philippe Normand. 9 10 * platform/gtk/TestExpectations: Tests flagged and removed some 11 other flags. 12 * platform/gtk/accessibility/media-element-expected.txt: Rebaseline 13 * platform/gtk/fast/hidpi/video-controls-in-hidpi-expected.txt: Rebaseline 14 * platform/gtk/fast/layers/video-layer-expected.png: Rebaseline 15 * platform/gtk/fast/layers/video-layer-expected.txt: Rebaseline 16 * platform/gtk/http/tests/media/video-buffered-range-contains-currentTime-expected.png: Rebaseline 17 * platform/gtk/media/audio-repaint-expected.png: Rebaseline 18 * platform/gtk/media/audio-repaint-expected.txt: Rebaseline 19 * platform/gtk/media/controls-styling-strict-expected.png: Rebaseline 20 * platform/gtk/media/video-controls-rendering-expected.png: Rebaseline 21 * platform/gtk/media/video-empty-source-expected.txt: Rebaseline 22 * platform/gtk/media/video-no-audio-expected.txt: Rebaseline 23 * platform/gtk/media/video-volume-slider-expected.txt: Rebaseline 24 * platform/gtk/media/video-zoom-controls-expected.txt: Rebaseline 25 * platform/gtk/media/video-zoom-expected.png: Rebaseline 26 1 27 2013-02-20 Dominik Röttsches <dominik.rottsches@intel.com> 2 28 -
trunk/LayoutTests/platform/gtk/TestExpectations
r143445 r143463 476 476 webkit.org/b/103771 media/track/track-in-band-cues-added-once.html [ Timeout ] 477 477 webkit.org/b/103771 media/track/track-in-band-style.html [ Timeout ] 478 479 #Incorrect rebaseline 480 webkit.org/b/107818 media/controls-styling.html [ Failure ] 481 482 # New chromium based controls 483 webkit.org/b/107825 fullscreen/video-controls-drag.html [ Failure ] 484 webkit.org/b/107825 media/audio-delete-while-step-button-clicked.html [ Failure ] 485 webkit.org/b/107825 media/media-volume-slider-rendered-below.html [ Failure ] 486 webkit.org/b/107825 media/nodesFromRect-shadowContent.html [ Failure ] 487 webkit.org/b/107825 media/video-zoom-controls.html [ Failure ] 488 webkit.org/b/107825 media/video-controls-fullscreen-volume.html [ Failure ] 489 webkit.org/b/107825 media/media-controls-clone.html [ Failure ] 478 490 479 491 #//////////////////////////////////////////////////////////////////////////////////////// … … 1450 1462 webkit.org/b/109469 fast/events/mouse-cursor-image-set.html [ Timeout ] 1451 1463 1452 webkit.org/b/83869 fast/hidpi/video-controls-in-hidpi.html [ Failure ]1453 webkit.org/b/83869 fast/layers/video-layer.html [ Failure ]1454 webkit.org/b/83869 media/audio-repaint.html [ Failure ]1455 webkit.org/b/83869 media/controls-styling.html [ Failure ]1456 webkit.org/b/83869 media/media-controls-clone.html [ Failure ]1457 webkit.org/b/83869 media/video-empty-source.html [ Failure ]1458 webkit.org/b/83869 media/video-no-audio.html [ Failure ]1459 webkit.org/b/83869 media/video-volume-slider.html [ Failure ]1460 webkit.org/b/83869 media/video-zoom-controls.html [ Failure ]1461 1462 1464 webkit.org/b/110089 fast/exclusions/shape-inside/shape-inside-circle.html [ ImageOnlyFailure ] 1463 1465 webkit.org/b/110089 fast/exclusions/shape-inside/shape-inside-ellipse.html [ ImageOnlyFailure ] -
trunk/LayoutTests/platform/gtk/accessibility/media-element-expected.txt
r131708 r143463 9 9 10 10 11 description: AXDescription: play12 role: AXRole: AX Button11 description: AXDescription: video element controller 12 role: AXRole: AXToolbar 13 13 14 14 15 description: AXDescription:16 role: AXRole: AXSlider15 description: AXDescription: play 16 role: AXRole: AXButton 17 17 18 18 19 description: AXDescription: fast reverse20 role: AXRole: AXButton19 description: AXDescription: 20 role: AXRole: AXSlider 21 21 22 22 23 description: AXDescription: fast forward24 role: AXRole: AXButton23 description: AXDescription: enter fullscreen 24 role: AXRole: AXButton 25 25 26 26 27 description: AXDescription: enter fullscreen 28 role: AXRole: AXButton 29 30 31 description: AXDescription: mute 32 role: AXRole: AXButton 27 description: AXDescription: mute 28 role: AXRole: AXButton 33 29 34 30 -
trunk/LayoutTests/platform/gtk/fast/hidpi/video-controls-in-hidpi-expected.txt
r142947 r143463 13 13 layer at (8,26) size 300x150 14 14 RenderFlexibleBox {DIV} at (0,0) size 300x150 15 layer at (8,26) size 300x150 scrollHeight 160 16 RenderFlexibleBox {DIV} at (0,0) size 300x150 17 RenderButton {INPUT} at (0,130) size 20x20 18 RenderFlexibleBox {DIV} at (20,130) size 240x20 [border: none (1px solid #FFFFFF33) none (1px solid #FFFFFF33)] 19 RenderBlock (anonymous) at (1,0) size 65x30 20 RenderFlexibleBox {DIV} at (0,0) size 65x30 21 RenderBlock (anonymous) at (5,5) size 55x20 22 RenderText {#text} at (0,0) size 55x12 23 text run at (0,0) width 55: "00:00 / 00:00" 24 RenderSlider {INPUT} at (66,0) size 173x20 25 RenderFlexibleBox {DIV} at (2,0) size 169x20 26 RenderBlock {DIV} at (0,4) size 169x12 27 RenderBlock {DIV} at (0,0) size 12x12 28 RenderButton {INPUT} at (260,130) size 20x20 29 RenderButton {INPUT} at (280,130) size 20x20 30 RenderBlock {DIV} at (300,150) size 0x0 15 RenderBlock {DIV} at (0,110) size 300x40 16 layer at (13,141) size 290x30 17 RenderFlexibleBox {DIV} at (5,5) size 290x30 [bgcolor=#141414CC] 18 RenderButton {INPUT} at (9,0) size 30x30 19 RenderSlider {INPUT} at (49,11) size 179x8 [color=#E6E6E659] 20 RenderFlexibleBox {DIV} at (0,0) size 179x8 [border: (1px solid #E6E6E659)] 21 RenderBlock {DIV} at (1,-2) size 191x12 22 RenderBlock {DIV} at (-7,0) size 12x12 [color=#FFFFFF] 23 RenderFlexibleBox {DIV} at (243,0) size 32x30 [color=#FFFFFF] 24 RenderBlock (anonymous) at (0,0) size 32x30 25 RenderText {#text} at (0,7) size 32x15 26 text run at (0,7) width 32: "00:00" -
trunk/LayoutTests/platform/gtk/fast/layers/video-layer-expected.txt
r142947 r143463 18 18 layer at (59,111) size 300x150 19 19 RenderFlexibleBox {DIV} at (1,1) size 300x150 20 layer at (59,111) size 300x150 scrollHeight 160 21 RenderFlexibleBox {DIV} at (0,0) size 300x150 22 RenderButton {INPUT} at (0,130) size 20x20 23 RenderFlexibleBox {DIV} at (20,130) size 240x20 [border: none (1px solid #FFFFFF33) none (1px solid #FFFFFF33)] 24 RenderBlock (anonymous) at (1,0) size 65x30 25 RenderFlexibleBox {DIV} at (0,0) size 65x30 26 RenderBlock (anonymous) at (5,5) size 55x20 27 RenderText {#text} at (0,0) size 55x12 28 text run at (0,0) width 55: "00:00 / 00:00" 29 RenderSlider {INPUT} at (66,0) size 173x20 30 RenderFlexibleBox {DIV} at (2,0) size 169x20 31 RenderBlock {DIV} at (0,4) size 169x12 32 RenderBlock {DIV} at (0,0) size 12x12 33 RenderButton {INPUT} at (260,130) size 20x20 34 RenderButton {INPUT} at (280,130) size 20x20 35 RenderBlock {DIV} at (300,150) size 0x0 20 RenderBlock {DIV} at (0,110) size 300x40 21 layer at (64,226) size 290x30 22 RenderFlexibleBox {DIV} at (5,5) size 290x30 [bgcolor=#141414CC] 23 RenderButton {INPUT} at (9,0) size 30x30 24 RenderSlider {INPUT} at (49,11) size 179x8 [color=#E6E6E659] 25 RenderFlexibleBox {DIV} at (0,0) size 179x8 [border: (1px solid #E6E6E659)] 26 RenderBlock {DIV} at (1,-2) size 191x12 27 RenderBlock {DIV} at (-7,0) size 12x12 [color=#FFFFFF] 28 RenderFlexibleBox {DIV} at (243,0) size 32x30 [color=#FFFFFF] 29 RenderBlock (anonymous) at (0,0) size 32x30 30 RenderText {#text} at (0,7) size 32x15 31 text run at (0,7) width 32: "00:00" -
trunk/LayoutTests/platform/gtk/media/audio-repaint-expected.txt
r142947 r143463 8 8 text run at (0,0) width 609: "This tests that in a html document with inline audio content, the media element repaints correctly " 9 9 text run at (609,0) width 90: "while playing." 10 RenderBlock (anonymous) at (0,34) size 784x139 11 RenderMedia {AUDIO} at (0,0) size 300x20 12 RenderBR {BR} at (300,20) size 0x0 13 RenderBR {BR} at (300,65) size 0x0 14 RenderBR {BR} at (300,139) size 0x0 15 layer at (8,62) size 300x20 16 RenderMedia {AUDIO} at (0,20) size 300x20 17 layer at (8,62) size 300x20 18 RenderFlexibleBox {DIV} at (0,0) size 300x20 19 layer at (8,62) size 300x20 scrollHeight 30 20 RenderFlexibleBox {DIV} at (0,0) size 300x20 21 RenderButton {INPUT} at (0,0) size 20x20 22 RenderFlexibleBox {DIV} at (20,0) size 220x20 [border: none (1px solid #FFFFFF33) none (1px solid #FFFFFF33)] 23 RenderBlock (anonymous) at (1,0) size 65x30 24 RenderFlexibleBox {DIV} at (0,0) size 65x30 25 RenderBlock (anonymous) at (5,5) size 55x20 26 RenderText {#text} at (0,0) size 55x12 27 text run at (0,0) width 55: "00:00 / 00:01" 28 RenderSlider {INPUT} at (66,0) size 153x20 29 RenderFlexibleBox {DIV} at (2,0) size 149x20 30 RenderBlock {DIV} at (0,4) size 149x12 31 RenderBlock {DIV} at (68,0) size 12x12 32 RenderButton {INPUT} at (240,0) size 20x20 33 RenderButton {INPUT} at (260,0) size 20x20 34 RenderBlock {DIV} at (280,0) size 20x20 35 layer at (288,62) size 20x20 36 RenderButton zI: 2 {INPUT} at (0,0) size 20x20 37 layer at (8,42) size 300x20 38 RenderFlexibleBox {DIV} at (0,0) size 300x20 39 layer at (8,42) size 300x20 scrollHeight 30 40 RenderFlexibleBox {DIV} at (0,0) size 300x20 41 RenderButton {INPUT} at (0,0) size 20x20 42 RenderFlexibleBox {DIV} at (20,0) size 220x20 [border: none (1px solid #FFFFFF33) none (1px solid #FFFFFF33)] 43 RenderBlock (anonymous) at (1,0) size 65x30 44 RenderFlexibleBox {DIV} at (0,0) size 65x30 45 RenderBlock (anonymous) at (5,5) size 55x20 46 RenderText {#text} at (0,0) size 55x12 47 text run at (0,0) width 55: "00:00 / 00:01" 48 RenderSlider {INPUT} at (66,0) size 153x20 49 RenderFlexibleBox {DIV} at (2,0) size 149x20 50 RenderBlock {DIV} at (0,4) size 149x12 51 RenderBlock {DIV} at (68,0) size 12x12 52 RenderButton {INPUT} at (240,0) size 20x20 53 RenderButton {INPUT} at (260,0) size 20x20 54 RenderBlock {DIV} at (280,0) size 20x20 55 layer at (288,42) size 20x20 56 RenderButton zI: 2 {INPUT} at (0,0) size 20x20 57 layer at (8,134) size 300x20 58 RenderMedia {AUDIO} at (0,92) size 300x20 59 layer at (8,134) size 300x20 60 RenderFlexibleBox {DIV} at (0,0) size 300x20 61 layer at (8,134) size 300x20 scrollHeight 30 62 RenderFlexibleBox {DIV} at (0,0) size 300x20 63 RenderButton {INPUT} at (0,0) size 20x20 64 RenderFlexibleBox {DIV} at (20,0) size 220x20 [border: none (1px solid #FFFFFF33) none (1px solid #FFFFFF33)] 65 RenderBlock (anonymous) at (1,0) size 65x30 66 RenderFlexibleBox {DIV} at (0,0) size 65x30 67 RenderBlock (anonymous) at (5,5) size 55x20 68 RenderText {#text} at (0,0) size 55x12 69 text run at (0,0) width 55: "00:00 / 00:01" 70 RenderSlider {INPUT} at (66,0) size 153x20 71 RenderFlexibleBox {DIV} at (2,0) size 149x20 72 RenderBlock {DIV} at (0,4) size 149x12 73 RenderBlock {DIV} at (68,0) size 12x12 74 RenderButton {INPUT} at (240,0) size 20x20 75 RenderButton {INPUT} at (260,0) size 20x20 76 RenderBlock {DIV} at (280,0) size 20x20 10 RenderBlock (anonymous) at (0,34) size 784x169 11 RenderMedia {AUDIO} at (0,0) size 300x30 12 RenderBR {BR} at (300,30) size 0x0 13 RenderBR {BR} at (300,85) size 0x0 14 RenderBR {BR} at (300,169) size 0x0 15 layer at (8,72) size 300x30 16 RenderMedia {AUDIO} at (0,30) size 300x30 17 layer at (8,72) size 300x30 18 RenderFlexibleBox {DIV} at (0,0) size 300x30 19 RenderBlock {DIV} at (0,0) size 300x30 20 layer at (8,72) size 300x30 21 RenderFlexibleBox {DIV} at (0,0) size 300x30 [bgcolor=#141414CC] 22 RenderButton {INPUT} at (9,0) size 30x30 23 RenderSlider {INPUT} at (49,11) size 115x8 [color=#E6E6E659] 24 RenderFlexibleBox {DIV} at (0,0) size 115x8 [border: (1px solid #E6E6E659)] 25 RenderBlock {DIV} at (1,-2) size 127x12 26 RenderBlock {DIV} at (50,0) size 12x12 [color=#FFFFFF] 27 RenderFlexibleBox {DIV} at (179,0) size 74x30 [color=#FFFFFF] 28 RenderBlock (anonymous) at (0,0) size 74x30 29 RenderText {#text} at (0,7) size 74x15 30 text run at (0,7) width 74: "00:00 / 00:01" 31 RenderButton {INPUT} at (261,0) size 30x30 32 layer at (8,42) size 300x30 33 RenderFlexibleBox {DIV} at (0,0) size 300x30 34 RenderBlock {DIV} at (0,0) size 300x30 35 layer at (8,42) size 300x30 36 RenderFlexibleBox {DIV} at (0,0) size 300x30 [bgcolor=#141414CC] 37 RenderButton {INPUT} at (9,0) size 30x30 38 RenderSlider {INPUT} at (49,11) size 115x8 [color=#E6E6E659] 39 RenderFlexibleBox {DIV} at (0,0) size 115x8 [border: (1px solid #E6E6E659)] 40 RenderBlock {DIV} at (1,-2) size 127x12 41 RenderBlock {DIV} at (50,0) size 12x12 [color=#FFFFFF] 42 RenderFlexibleBox {DIV} at (179,0) size 74x30 [color=#FFFFFF] 43 RenderBlock (anonymous) at (0,0) size 74x30 44 RenderText {#text} at (0,7) size 74x15 45 text run at (0,7) width 74: "00:00 / 00:01" 46 RenderButton {INPUT} at (261,0) size 30x30 47 layer at (8,154) size 300x30 48 RenderMedia {AUDIO} at (0,112) size 300x30 49 layer at (8,154) size 300x30 50 RenderFlexibleBox {DIV} at (0,0) size 300x30 51 RenderBlock {DIV} at (0,0) size 300x30 52 layer at (8,154) size 300x30 53 RenderFlexibleBox {DIV} at (0,0) size 300x30 [bgcolor=#141414CC] 54 RenderButton {INPUT} at (9,0) size 30x30 55 RenderSlider {INPUT} at (49,11) size 115x8 [color=#E6E6E659] 56 RenderFlexibleBox {DIV} at (0,0) size 115x8 [border: (1px solid #E6E6E659)] 57 RenderBlock {DIV} at (1,-2) size 127x12 58 RenderBlock {DIV} at (50,0) size 12x12 [color=#FFFFFF] 59 RenderFlexibleBox {DIV} at (179,0) size 74x30 [color=#FFFFFF] 60 RenderBlock (anonymous) at (0,0) size 74x30 61 RenderText {#text} at (0,7) size 74x15 62 text run at (0,7) width 74: "00:00 / 00:01" 63 RenderButton {INPUT} at (261,0) size 30x30 -
trunk/LayoutTests/platform/gtk/media/video-empty-source-expected.txt
r142947 r143463 13 13 layer at (9,43) size 300x150 14 14 RenderFlexibleBox {DIV} at (1,1) size 300x150 15 layer at (9,43) size 300x150 scrollHeight 160 16 RenderFlexibleBox {DIV} at (0,0) size 300x150 17 RenderButton {INPUT} at (0,130) size 20x20 18 RenderFlexibleBox {DIV} at (20,130) size 240x20 [border: none (1px solid #FFFFFF33) none (1px solid #FFFFFF33)] 19 RenderBlock (anonymous) at (1,0) size 65x30 20 RenderFlexibleBox {DIV} at (0,0) size 65x30 21 RenderBlock (anonymous) at (5,5) size 55x20 22 RenderText {#text} at (0,0) size 55x12 23 text run at (0,0) width 55: "00:00 / 00:00" 24 RenderSlider {INPUT} at (66,0) size 173x20 25 RenderFlexibleBox {DIV} at (2,0) size 169x20 26 RenderBlock {DIV} at (0,4) size 169x12 27 RenderBlock {DIV} at (0,0) size 12x12 28 RenderButton {INPUT} at (260,130) size 20x20 29 RenderButton {INPUT} at (280,130) size 20x20 30 RenderBlock {DIV} at (300,150) size 0x0 15 RenderBlock {DIV} at (0,110) size 300x40 16 layer at (14,158) size 290x30 17 RenderFlexibleBox {DIV} at (5,5) size 290x30 [bgcolor=#141414CC] 18 RenderButton {INPUT} at (9,0) size 30x30 19 RenderSlider {INPUT} at (49,11) size 179x8 [color=#E6E6E659] 20 RenderFlexibleBox {DIV} at (0,0) size 179x8 [border: (1px solid #E6E6E659)] 21 RenderBlock {DIV} at (1,-2) size 191x12 22 RenderBlock {DIV} at (-7,0) size 12x12 [color=#FFFFFF] 23 RenderFlexibleBox {DIV} at (243,0) size 32x30 [color=#FFFFFF] 24 RenderBlock (anonymous) at (0,0) size 32x30 25 RenderText {#text} at (0,7) size 32x15 26 text run at (0,7) width 32: "00:00" -
trunk/LayoutTests/platform/gtk/media/video-no-audio-expected.txt
r142947 r143463 13 13 layer at (8,42) size 352x288 14 14 RenderFlexibleBox {DIV} at (0,0) size 352x288 15 layer at (8,42) size 352x288 scrollHeight 298 16 RenderFlexibleBox {DIV} at (0,0) size 352x288 17 RenderButton {INPUT} at (0,268) size 20x20 18 RenderFlexibleBox {DIV} at (20,268) size 272x20 [border: none (1px solid #FFFFFF33) none (1px solid #FFFFFF33)] 19 RenderBlock (anonymous) at (1,0) size 65x30 20 RenderFlexibleBox {DIV} at (0,0) size 65x30 21 RenderBlock (anonymous) at (5,5) size 55x20 22 RenderText {#text} at (0,0) size 55x12 23 text run at (0,0) width 55: "00:00 / 00:09" 24 RenderSlider {INPUT} at (66,0) size 205x20 25 RenderFlexibleBox {DIV} at (2,0) size 201x20 26 RenderBlock {DIV} at (0,4) size 201x12 27 RenderBlock {DIV} at (0,0) size 12x12 28 RenderButton {INPUT} at (292,268) size 20x20 29 RenderButton {INPUT} at (312,268) size 20x20 30 RenderButton {INPUT} at (332,268) size 20x20 31 RenderBlock {DIV} at (352,288) size 0x0 15 RenderBlock {DIV} at (0,248) size 352x40 16 layer at (13,295) size 342x30 17 RenderFlexibleBox {DIV} at (5,5) size 342x30 [bgcolor=#141414CC] 18 RenderButton {INPUT} at (9,0) size 30x30 19 RenderSlider {INPUT} at (49,11) size 199x8 [color=#E6E6E659] 20 RenderFlexibleBox {DIV} at (0,0) size 199x8 [border: (1px solid #E6E6E659)] 21 RenderBlock {DIV} at (1,-2) size 211x12 22 RenderBlock {DIV} at (-7,0) size 12x12 [color=#FFFFFF] 23 RenderFlexibleBox {DIV} at (263,0) size 32x30 [color=#FFFFFF] 24 RenderBlock (anonymous) at (0,0) size 32x30 25 RenderText {#text} at (0,7) size 32x15 26 text run at (0,7) width 32: "00:09" 27 RenderButton {INPUT} at (303,0) size 30x30 -
trunk/LayoutTests/platform/gtk/media/video-volume-slider-expected.txt
r135953 r143463 17 17 RenderVideo {VIDEO} at (0,54) size 320x240 18 18 layer at (8,62) size 320x240 19 RenderDeprecatedFlexibleBox (relative positioned) {DIV} at (0,0) size 320x240 20 layer at (8,62) size 320x240 scrollHeight 250 21 RenderDeprecatedFlexibleBox (relative positioned) {DIV} at (0,0) size 320x240 22 RenderButton {INPUT} at (0,220) size 20x20 23 RenderDeprecatedFlexibleBox {DIV} at (20,220) size 220x20 [border: none (1px solid #FFFFFF33) none (1px solid #FFFFFF33)] 24 RenderBlock (anonymous) at (1,0) size 65x30 25 RenderDeprecatedFlexibleBox {DIV} at (0,0) size 65x30 26 RenderBlock (anonymous) at (5,5) size 55x20 27 RenderText {#text} at (0,0) size 55x12 28 text run at (0,0) width 55: "00:00 / 00:06" 29 RenderSlider {INPUT} at (66,0) size 153x20 30 RenderFlexibleBox {DIV} at (2,0) size 149x20 31 RenderBlock {DIV} at (0,4) size 149x12 32 RenderBlock {DIV} at (0,0) size 12x12 33 RenderButton {INPUT} at (240,220) size 20x20 34 RenderButton {INPUT} at (260,220) size 20x20 35 RenderButton {INPUT} at (280,220) size 20x20 36 RenderBlock {DIV} at (300,220) size 20x20 37 layer at (308,182) size 20x100 38 RenderBlock (positioned) zI: 1 {DIV} at (300,120) size 20x100 39 layer at (311,187) size 14x95 40 RenderSlider {INPUT} at (3,5) size 14x95 41 RenderFlexibleBox {DIV} at (0,0) size 14x95 42 RenderBlock {DIV} at (0,0) size 14x95 43 RenderBlock {DIV} at (0,20) size 14x31 44 layer at (308,282) size 20x20 45 RenderButton zI: 2 {INPUT} at (0,0) size 20x20 19 RenderFlexibleBox {DIV} at (0,0) size 320x240 20 RenderBlock {DIV} at (0,200) size 320x40 21 layer at (13,267) size 310x30 22 RenderFlexibleBox {DIV} at (5,5) size 310x30 [bgcolor=#141414CC] 23 RenderButton {INPUT} at (9,0) size 30x30 24 RenderSlider {INPUT} at (49,11) size 135x8 [color=#E6E6E659] 25 RenderFlexibleBox {DIV} at (0,0) size 135x8 [border: (1px solid #E6E6E659)] 26 RenderBlock {DIV} at (1,-2) size 147x12 27 RenderBlock {DIV} at (-7,0) size 12x12 [color=#FFFFFF] 28 RenderFlexibleBox {DIV} at (199,0) size 32x30 [color=#FFFFFF] 29 RenderBlock (anonymous) at (0,0) size 32x30 30 RenderText {#text} at (0,7) size 32x15 31 text run at (0,7) width 32: "00:06" 32 RenderButton {INPUT} at (239,0) size 30x30 33 RenderButton {INPUT} at (271,0) size 30x30 34 layer at (284,167) size 30x100 35 RenderBlock (positioned) zI: 2 {DIV} at (271,-100) size 30x100 36 RenderSlider {INPUT} at (11,10) size 8x80 [color=#E6E6E659] 37 RenderFlexibleBox {DIV} at (0,0) size 8x80 [border: (1px solid #E6E6E659)] 38 RenderBlock {DIV} at (-2,-6) size 12x92 39 RenderBlock {DIV} at (0,25) size 12x12 [color=#FFFFFF] -
trunk/LayoutTests/platform/gtk/media/video-zoom-controls-expected.txt
r142947 r143463 11 11 layer at (57,85) size 240x180 12 12 RenderFlexibleBox {DIV} at (0,0) size 240x180 13 layer at (57,85) size 240x180 scrollHeight 194 14 RenderFlexibleBox {DIV} at (0,0) size 240x180 15 RenderButton {INPUT} at (0,150) size 30x30 16 RenderFlexibleBox {DIV} at (30,150) size 90x30 [border: none (1px solid #FFFFFF33) none (1px solid #FFFFFF33)] 17 RenderBlock (anonymous) at (1,0) size 88x44 18 RenderFlexibleBox {DIV} at (88,0) size 0x44 19 RenderBlock (anonymous) at (7,7) size 74x30 20 RenderText {#text} at (15,0) size 44x35 21 text run at (15,0) width 44: "00:00 /" 22 text run at (19,17) width 36: "00:06" 23 RenderSlider {INPUT} at (89,0) size 6x30 24 RenderFlexibleBox {DIV} at (3,0) size 0x30 25 RenderBlock {DIV} at (0,9) size 0x12 26 RenderBlock {DIV} at (0,0) size 12x12 27 RenderButton {INPUT} at (120,150) size 30x30 28 RenderButton {INPUT} at (150,150) size 30x30 29 RenderButton {INPUT} at (180,150) size 30x30 30 RenderBlock {DIV} at (210,150) size 30x30 31 layer at (267,235) size 30x30 32 RenderButton zI: 2 {INPUT} at (0,0) size 30x30 13 RenderBlock {DIV} at (0,120) size 240x60 14 layer at (64,212) size 226x45 15 RenderFlexibleBox {DIV} at (7,7) size 226x45 [bgcolor=#141414CC] 16 RenderButton {INPUT} at (13,0) size 45x45 17 RenderSlider {INPUT} at (72,16) size 37x12 [color=#E6E6E659] 18 RenderFlexibleBox {DIV} at (0,0) size 37x12 [border: (1px solid #E6E6E659)] 19 RenderBlock {DIV} at (1,-3) size 56x18 20 RenderBlock {DIV} at (-10,0) size 18x18 [color=#FFFFFF] 21 RenderFlexibleBox {DIV} at (131,0) size 108x45 [color=#FFFFFF] 22 RenderBlock (anonymous) at (0,0) size 108x45 23 RenderText {#text} at (0,11) size 108x23 24 text run at (0,11) width 108: "00:00 / 00:06" 25 RenderButton {INPUT} at (251,0) size 45x45 26 RenderButton {INPUT} at (299,0) size 45x45 33 27 layer at (57,310) size 240x180 34 28 RenderVideo {VIDEO} at (45,298) size 240x180 35 29 layer at (57,310) size 240x180 36 30 RenderFlexibleBox {DIV} at (0,0) size 240x180 37 layer at (57,310) size 240x180 scrollHeight 194 38 RenderFlexibleBox {DIV} at (0,0) size 240x180 39 RenderButton {INPUT} at (0,150) size 30x30 40 RenderFlexibleBox {DIV} at (30,150) size 90x30 [border: none (1px solid #FFFFFF33) none (1px solid #FFFFFF33)] 41 RenderBlock (anonymous) at (1,0) size 88x44 42 RenderFlexibleBox {DIV} at (88,0) size 0x44 43 RenderBlock (anonymous) at (7,7) size 74x30 44 RenderText {#text} at (15,0) size 44x35 45 text run at (15,0) width 44: "00:00 /" 46 text run at (19,17) width 36: "00:06" 47 RenderSlider {INPUT} at (89,0) size 6x30 48 RenderFlexibleBox {DIV} at (3,0) size 0x30 49 RenderBlock {DIV} at (0,9) size 0x12 50 RenderBlock {DIV} at (0,0) size 12x12 51 RenderButton {INPUT} at (120,150) size 30x30 52 RenderButton {INPUT} at (150,150) size 30x30 53 RenderButton {INPUT} at (180,150) size 30x30 54 RenderBlock {DIV} at (210,150) size 30x30 55 layer at (267,460) size 30x30 backgroundClip at (74,291) size 240x180 clip at (74,291) size 240x180 outlineClip at (74,291) size 240x180 56 RenderButton zI: 2 {INPUT} at (0,0) size 30x30 31 RenderBlock {DIV} at (0,120) size 240x60 32 layer at (64,437) size 226x45 33 RenderFlexibleBox {DIV} at (7,7) size 226x45 [bgcolor=#141414CC] 34 RenderButton {INPUT} at (13,0) size 45x45 35 RenderSlider {INPUT} at (72,16) size 37x12 [color=#E6E6E659] 36 RenderFlexibleBox {DIV} at (0,0) size 37x12 [border: (1px solid #E6E6E659)] 37 RenderBlock {DIV} at (1,-3) size 56x18 38 RenderBlock {DIV} at (-10,0) size 18x18 [color=#FFFFFF] 39 RenderFlexibleBox {DIV} at (131,0) size 108x45 [color=#FFFFFF] 40 RenderBlock (anonymous) at (0,0) size 108x45 41 RenderText {#text} at (0,11) size 108x23 42 text run at (0,11) width 108: "00:00 / 00:06" 43 RenderButton {INPUT} at (251,0) size 45x45 44 RenderButton {INPUT} at (299,0) size 45x45 -
trunk/Source/WebCore/ChangeLog
r143462 r143463 1 2013-02-20 Xabier Rodriguez Calvar <calvaris@igalia.com> and Martin Robinson <mrobinson@igalia.com> 2 3 [Gtk] HTML5 Media controls require a design refresh 4 https://bugs.webkit.org/show_bug.cgi?id=83869 5 6 Created new controls that depend less on Gtk and more in CSS. 7 8 Reviewed by Philippe Normand. 9 10 * GNUmakefile.list.am: Added compilation for MediaControlsGtk.cpp 11 and MediaControlsGtk.h 12 * css/mediaControlsGtk.css: Taken from Chromium and adapted for 13 WebKitGtk+. 14 * html/shadow/MediaControlsGtk.cpp: Added. 15 (WebCore): Added MediaControlsGtk class. 16 (WebCore::MediaControlsGtk::MediaControlsGtk): Class constructor 17 (WebCore::MediaControls::create): Creates the Gtk+ controls 18 components. 19 (WebCore::MediaControlsGtk::createControls): Creates the Gtk+ 20 controls components. 21 (WebCore::MediaControlsGtk::initializeControls): Initializes all 22 media controls. 23 (WebCore::MediaControlsGtk::setMediaController): Sets the media 24 controller. 25 (WebCore::MediaControlsGtk::reset): Resets the controllers. 26 (WebCore::MediaControlsGtk::playbackStarted): Invoked when the 27 playback starts 28 (WebCore::MediaControlsGtk::updateCurrentTimeDisplay): Updates the 29 controls when the current time shall be updated. 30 (WebCore::MediaControlsGtk::changedMute): Updates the controls 31 then the mute changes. 32 (WebCore::MediaControlsGtk::showVolumeSlider): Invoked when the 33 volume slider is meant to be shown. 34 (WebCore::MediaControlsGtk::createTextTrackDisplay): Creates the 35 track display. Though it is not used by us, it needs to be created 36 to prevent immediate crashes when loading a video. 37 * html/shadow/MediaControlsGtk.h: Added. 38 (WebCore): Added the MediaControlsGtk class. 39 (MediaControlsGtk): Added the MediaControlsGtk class. 40 * platform/gtk/RenderThemeGtk.cpp: 41 (WebCore): Added getStockSymbolicIconForWidgetType function 42 signature to load symbolic icons. 43 (WebCore::supportsFocus): Added media control widgets to support 44 focus so that the focus ring is not painted by WebCore. 45 (WebCore::RenderThemeGtk::paintMediaButton): Added the symbolic 46 icon support. It supports now normal and symbolic icons at the 47 same time. 48 (WebCore::RenderThemeGtk::paintMediaFullscreenButton): Added the 49 symbolic icon support. 50 (WebCore::RenderThemeGtk::paintMediaMuteButton): Added the 51 symbolic icon support. 52 (WebCore::RenderThemeGtk::paintMediaPlayButton): Added the 53 symbolic icon support. 54 (WebCore::RenderThemeGtk::paintMediaSeekBackButton): Added the 55 symbolic icon support. 56 (WebCore::RenderThemeGtk::paintMediaSeekForwardButton): Added the 57 symbolic icon support. 58 (WebCore::borderRadiiFromStyle): Created the radii info from the 59 style. 60 (WebCore::RenderThemeGtk::paintMediaSliderTrack): Removed the 61 background and the Gtk widget support as it is painted with 62 CSS. Also paint the time ranges with the CSS style. 63 (WebCore::RenderThemeGtk::paintMediaSliderThumb): Paint slider 64 thumb according to the CSS parameters. 65 (WebCore::RenderThemeGtk::paintMediaVolumeSliderContainer): 66 Delegates in the CSS. 67 (WebCore::RenderThemeGtk::paintMediaVolumeSliderTrack): Fills the 68 track up to the volume level and delegates the border in the CSS. 69 (WebCore::RenderThemeGtk::paintMediaVolumeSliderThumb): Delegates 70 in the paintMediaSliderThumb method so the thumb is painted the 71 same with the CSS parameters. 72 (WebCore::RenderThemeGtk::paintMediaCurrentTime): Removed the Gtk 73 background to use only CSS. 74 * platform/gtk/RenderThemeGtk.h: 75 (RenderThemeGtk): Changed paintMediaButton to support the symbolic 76 and normal icons at the same time. 77 * platform/gtk/RenderThemeGtk2.cpp: 78 (WebCore::RenderThemeGtk::adjustSliderThumbSize): Not adjusting 79 the thumb size and letting the CSS decide that for media slider. 80 (WebCore::getStockSymbolicIconForWidgetType): Implemented as a 81 fallback to the normal stock icons. 82 * platform/gtk/RenderThemeGtk3.cpp: 83 (WebCore): 84 (WebCore::RenderThemeGtk::adjustSliderThumbSize): Not adjusting 85 the thumb size and letting the CSS decide that for the media 86 sliders. 87 (WebCore::getStockSymbolicIconForWidgetType): Added this function 88 to load symbolic icons. It falls back to normal icons if the 89 symbolic is not found. 90 1 91 2013-02-20 Andras Becsi <andras.becsi@digia.com> 2 92 -
trunk/Source/WebCore/GNUmakefile.list.am
r143422 r143463 3671 3671 Source/WebCore/html/shadow/MediaControls.cpp \ 3672 3672 Source/WebCore/html/shadow/MediaControls.h \ 3673 Source/WebCore/html/shadow/MediaControls Apple.cpp \3674 Source/WebCore/html/shadow/MediaControls Apple.h \3673 Source/WebCore/html/shadow/MediaControlsGtk.cpp \ 3674 Source/WebCore/html/shadow/MediaControlsGtk.h \ 3675 3675 Source/WebCore/html/shadow/MeterShadowElement.cpp \ 3676 3676 Source/WebCore/html/shadow/MeterShadowElement.h \ -
trunk/Source/WebCore/css/mediaControlsGtk.css
r142947 r143463 1 1 /* 2 * WebKitGTK+ specific overrides for HTML5 media elements. 2 * Copyright (C) 2009 Apple Inc. All rights reserved. 3 * Copyright (C) 2009 Google Inc. 4 * Copyright (C) 2012 Zan Dobersek <zandobersek@gmail.com> 5 * Copyright (C) 2012 Igalia S.L. 3 6 * 4 * Copyright (C) 2009 Zan Dobersek <zandobersek@gmail.com> 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions 9 * are met: 10 * 1. Redistributions of source code must retain the above copyright 11 * notice, this list of conditions and the following disclaimer. 12 * 2. Redistributions in binary form must reproduce the above copyright 13 * notice, this list of conditions and the following disclaimer in the 14 * documentation and/or other materials provided with the distribution. 5 15 * 6 * This library is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU Library General Public 8 * License as published by the Free Software Foundation; either 9 * version 2 of the License, or (at your option) any later version. 10 * 11 * This library is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * Library General Public License for more details. 15 * 16 * You should have received a copy of the GNU Library General Public License 17 * along with this library; see the file COPYING.LIB. If not, write to 18 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 19 * Boston, MA 02110-1301, USA. 20 * 16 * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY 17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 19 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR 20 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 21 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 22 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 23 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 25 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 21 26 */ 22 27 28 /* These are based on the Chromium media controls */ 29 30 body:-webkit-full-page-media { 31 background-color: rgb(0, 0, 0); 32 } 33 23 34 audio { 24 height: 20px;25 35 width: 300px; 36 height: 30px; 37 } 38 39 audio:-webkit-full-page-media, video:-webkit-full-page-media { 40 max-height: 100%; 41 max-width: 100%; 42 } 43 44 audio:-webkit-full-page-media::-webkit-media-controls-panel, 45 video:-webkit-full-page-media::-webkit-media-controls-panel { 46 bottom: 0px; 47 } 48 49 ::-webkit-media-controls { 50 display: -webkit-flex; 51 -webkit-flex-direction: column; 52 -webkit-justify-content: flex-end; 53 -webkit-align-items: center; 54 } 55 56 audio::-webkit-media-controls-enclosure, video::-webkit-media-controls-enclosure { 57 width: 100%; 58 max-width: 800px; 59 height: 30px; 60 bottom: 0; 61 text-indent: 0; 62 padding: 0; 63 box-sizing: border-box; 64 overflow: visible; 65 } 66 67 video::-webkit-media-controls-enclosure { 68 padding: 5px; 69 height: 40px; 26 70 } 27 71 28 72 audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel { 29 -webkit-align-items: flex-end; 30 text-align: right; 31 height: 100%; 73 display: -webkit-flex; 74 -webkit-flex-direction: row; 75 -webkit-align-items: center; 76 -webkit-justify-content: flex-start; 77 bottom: auto; 78 height: 30px; 79 background-color: rgba(20, 20, 20, 0.8); 80 border-radius: 5px; 81 overflow: visible; 32 82 } 33 83 34 84 audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button { 35 width: 20px; 36 height: 20px; 37 position: relative; 38 z-index: 2; 85 -webkit-appearance: media-mute-button; 86 display: -webkit-flex; 87 -webkit-flex: none; 88 border: none; 89 box-sizing: border-box; 90 width: 30px; 91 height: 30px; 92 line-height: 30px; 93 margin: 0 9px 0 -7px; 39 94 } 40 95 41 96 audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-button { 42 width: 20px; 43 height: 20px; 44 } 45 46 audio::-webkit-media-controls-timeline-container, video::-webkit-media-controls-timeline-container { 47 height: 20px; 48 border-left: 1px solid rgba(255, 255, 255, 0.2); 49 border-right: 1px solid rgba(255, 255, 255, 0.2); 50 } 51 52 audio::-webkit-media-controls-timeline, video::-webkit-media-controls-timeline { 53 height: 20px; 54 } 55 56 audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display { 97 -webkit-appearance: media-play-button; 98 display: -webkit-flex; 99 -webkit-flex: none; 100 border: none; 101 box-sizing: border-box; 102 width: 30px; 103 height: 30px; 104 line-height: 30px; 105 margin: 0 9px; 106 } 107 108 audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display, 109 audio::-webkit-media-controls-time-remaining-display, video::-webkit-media-controls-time-remaining-display { 57 110 -webkit-appearance: media-current-time-display; 58 111 -webkit-user-select: none; 59 display: inline-block; 60 height: 20px; 61 62 padding: 5px; 63 64 text-align: center; 65 font-size: 10px; 66 } 67 68 audio::-webkit-media-controls-seek-back-button, video::-webkit-media-controls-seek-back-button { 69 width: 20px; 70 height: 20px; 71 } 72 73 audio::-webkit-media-controls-seek-forward-button, video::-webkit-media-controls-seek-forward-button { 74 width: 20px; 75 height: 20px; 76 } 77 78 audio::-webkit-media-controls-fullscreen-button, video::-webkit-media-controls-fullscreen-button { 79 width: 20px; 80 height: 20px; 112 -webkit-flex: none; 113 display: block; 114 border: none; 115 cursor: default; 116 117 height: 30px; 118 margin: 0 15px 0 0; 119 120 line-height: 30px; 121 font-family: -webkit-small-control; 122 font-size: 13px; 123 font-weight: normal; 124 font-style: normal; 125 color: white; 126 127 letter-spacing: normal; 128 word-spacing: normal; 129 text-transform: none; 130 text-indent: 0; 131 text-shadow: none; 132 text-decoration: none; 133 } 134 135 audio::-webkit-media-controls-timeline, video::-webkit-media-controls-timeline { 136 -webkit-appearance: media-slider; 137 display: -webkit-flex; 138 -webkit-flex: 1 1 auto; 139 height: 8px; 140 margin: 0 15px 0 1px; 141 padding: 0; 142 background-color: transparent; 143 min-width: 25px; 144 border-radius: 4px; 145 color: rgba(230, 230, 230, 0.35); 81 146 } 82 147 … … 84 149 -webkit-appearance: media-volume-slider-container; 85 150 position: absolute; 151 padding: 0; 86 152 height: 100px; 87 width: 20px; 88 bottom: 20px; 89 z-index: 1; 153 width: 30px; 154 bottom: 30px; 155 z-index: 2; 156 background-color: rgba(20, 20, 20, 0.8); 157 right: 9px; 158 border-radius: 5px 5px 0px 0px; 90 159 } 91 160 92 161 audio::-webkit-media-controls-volume-slider, video::-webkit-media-controls-volume-slider { 93 162 -webkit-appearance: media-volume-slider; 94 display: inline; 95 position: absolute; 96 width: 14px; 97 height: 95px; 98 99 left: 3px; 100 top: 5px; 101 } 163 display: -webkit-flex; 164 -webkit-align-items: center; 165 -webkit-flex-direction: column; 166 box-sizing: border-box; 167 height: 80px; 168 width: 8px; 169 margin: 10px auto; 170 border-radius: 4px; 171 background-color: transparent; 172 color: rgba(230, 230, 230, 0.35); 173 } 174 175 audio::-webkit-media-controls-volume-slider-container input[type="range"]::-webkit-media-slider-container > div, video::-webkit-media-controls-volume-slider-container input[type="range"]::-webkit-media-slider-container > div { 176 margin: -7px 0; 177 } 178 179 audio::-webkit-media-controls-volume-slider-container input[type="range"]::-webkit-media-slider-thumb, video::-webkit-media-controls-volume-slider-container input[type="range"]::-webkit-media-slider-thumb { 180 -webkit-appearance: media-volume-sliderthumb; 181 width: 12px; 182 height: 12px; 183 border-radius: 3px; 184 color: white; 185 margin: 0; 186 } 187 188 input[type="range"]::-webkit-media-slider-container { 189 display: -webkit-flex; 190 -webkit-align-items: center; 191 -webkit-flex-direction: row; /* This property is updated by C++ code. */ 192 box-sizing: border-box; 193 height: 100%; 194 width: 100%; 195 border: 1px solid rgba(230, 230, 230, 0.35); 196 border-radius: 4px; 197 background-color: transparent; 198 } 199 200 /* The negative right margin causes the track to overflow its container. */ 201 input[type="range"]::-webkit-media-slider-container > div { 202 margin-right: -14px; 203 } 204 205 input[type="range"]::-webkit-media-slider-thumb { 206 -webkit-appearance: media-sliderthumb; 207 width: 12px; 208 height: 12px; 209 border-radius: 3px; 210 color: white; 211 margin-left: -7px; 212 margin-right: -7px; 213 } 214 215 audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button { 216 -webkit-appearance: media-toggle-closed-captions-button; 217 display: -webkit-flex; 218 -webkit-flex: none; 219 border: none; 220 box-sizing: border-box; 221 width: 30px; 222 height: 30px; 223 line-height: 30px; 224 margin: 0 9px 0 -7px; 225 } 226 227 audio::-webkit-media-controls-fullscreen-button, video::-webkit-media-controls-fullscreen-button { 228 -webkit-appearance: media-enter-fullscreen-button; 229 display: -webkit-flex; 230 -webkit-flex: none; 231 border: none; 232 box-sizing: border-box; 233 width: 30px; 234 height: 30px; 235 line-height: 30px; 236 margin: 0 9px 0 -7px; 237 } -
trunk/Source/WebCore/platform/gtk/RenderThemeGtk.cpp
r142271 r143463 46 46 #include "TimeRanges.h" 47 47 #include "UserAgentStyleSheets.h" 48 #include <cmath> 48 49 #include <gdk/gdk.h> 49 50 #include <glib.h> … … 60 61 // definition depends on including glib.h, negating the benefit of using a forward declaration. 61 62 extern GRefPtr<GdkPixbuf> getStockIconForWidgetType(GType, const char* iconName, gint direction, gint state, gint iconSize); 63 extern GRefPtr<GdkPixbuf> getStockSymbolicIconForWidgetType(GType widgetType, const char* symbolicIconName, const char *fallbackStockIconName, gint direction, gint state, gint iconSize); 62 64 63 65 using namespace HTMLNames; … … 74 76 75 77 return static_cast<HTMLMediaElement*>(mediaNode); 76 }77 78 static GtkIconSize getMediaButtonIconSize(int mediaIconSize)79 {80 GtkIconSize iconSize = gtk_icon_size_from_name("webkit-media-button-size");81 if (!iconSize)82 iconSize = gtk_icon_size_register("webkit-media-button-size", mediaIconSize, mediaIconSize);83 return iconSize;84 78 } 85 79 … … 128 122 , m_mediaIconSize(16) 129 123 , m_mediaSliderHeight(14) 130 , m_mediaSliderThumbWidth(12)131 , m_mediaSliderThumbHeight(12)132 124 { 133 125 platformInit(); … … 151 143 case SliderHorizontalPart: 152 144 case SliderVerticalPart: 145 case MediaPlayButtonPart: 146 case MediaVolumeSliderPart: 147 case MediaMuteButtonPart: 148 case MediaEnterFullscreenButtonPart: 149 case MediaSliderPart: 153 150 return true; 154 151 default: … … 494 491 #endif 495 492 496 void RenderThemeGtk::adjustMediaSliderThumbSize(RenderStyle* style) const 497 { 498 ASSERT(style->appearance() == MediaSliderThumbPart); 499 style->setWidth(Length(m_mediaSliderThumbWidth, Fixed)); 500 style->setHeight(Length(m_mediaSliderThumbHeight, Fixed)); 501 } 502 503 bool RenderThemeGtk::paintMediaButton(RenderObject* renderObject, GraphicsContext* context, const IntRect& rect, const char* iconName) 504 { 505 GRefPtr<GdkPixbuf> icon = getStockIconForWidgetType(GTK_TYPE_CONTAINER, iconName, 506 gtkTextDirection(renderObject->style()->direction()), 507 gtkIconState(this, renderObject), 508 getMediaButtonIconSize(m_mediaIconSize)); 493 bool RenderThemeGtk::paintMediaButton(RenderObject* renderObject, GraphicsContext* context, const IntRect& rect, const char* symbolicIconName, const char* fallbackStockIconName) 494 { 509 495 IntRect iconRect(rect.x() + (rect.width() - m_mediaIconSize) / 2, 510 496 rect.y() + (rect.height() - m_mediaIconSize) / 2, 511 497 m_mediaIconSize, m_mediaIconSize); 512 context->fillRect(FloatRect(rect), m_panelColor, ColorSpaceDeviceRGB); 498 GRefPtr<GdkPixbuf> icon = getStockSymbolicIconForWidgetType(GTK_TYPE_CONTAINER, symbolicIconName, fallbackStockIconName, 499 gtkTextDirection(renderObject->style()->direction()), gtkIconState(this, renderObject), iconRect.width()); 513 500 paintGdkPixbuf(context, icon.get(), iconRect); 514 501 return false; … … 522 509 bool RenderThemeGtk::paintMediaFullscreenButton(RenderObject* renderObject, const PaintInfo& paintInfo, const IntRect& rect) 523 510 { 524 return paintMediaButton(renderObject, paintInfo.context, rect, GTK_STOCK_FULLSCREEN);511 return paintMediaButton(renderObject, paintInfo.context, rect, "view-fullscreen-symbolic", GTK_STOCK_FULLSCREEN); 525 512 } 526 513 … … 531 518 return false; 532 519 533 return paintMediaButton(renderObject, paintInfo.context, rect, mediaElement->muted() ? "audio-volume-muted" : "audio-volume-high"); 520 bool muted = mediaElement->muted(); 521 return paintMediaButton(renderObject, paintInfo.context, rect, 522 muted ? "audio-volume-muted-symbolic" : "audio-volume-high-symbolic", 523 muted ? "audio-volume-muted" : "audio-volume-high"); 534 524 } 535 525 … … 542 532 return false; 543 533 544 return paintMediaButton(renderObject, paintInfo.context, rect, mediaControlElementType(node) == MediaPlayButton ? GTK_STOCK_MEDIA_PLAY : GTK_STOCK_MEDIA_PAUSE); 534 bool play = mediaControlElementType(node) == MediaPlayButton; 535 return paintMediaButton(renderObject, paintInfo.context, rect, 536 play ? "media-playback-start-symbolic" : "media-playback-pause-symbolic", 537 play ? GTK_STOCK_MEDIA_PLAY : GTK_STOCK_MEDIA_PAUSE); 545 538 } 546 539 547 540 bool RenderThemeGtk::paintMediaSeekBackButton(RenderObject* renderObject, const PaintInfo& paintInfo, const IntRect& rect) 548 541 { 549 return paintMediaButton(renderObject, paintInfo.context, rect, GTK_STOCK_MEDIA_REWIND);542 return paintMediaButton(renderObject, paintInfo.context, rect, "media-seek-backward-symbolic", GTK_STOCK_MEDIA_REWIND); 550 543 } 551 544 552 545 bool RenderThemeGtk::paintMediaSeekForwardButton(RenderObject* renderObject, const PaintInfo& paintInfo, const IntRect& rect) 553 546 { 554 return paintMediaButton(renderObject, paintInfo.context, rect, GTK_STOCK_MEDIA_FORWARD); 547 return paintMediaButton(renderObject, paintInfo.context, rect, "media-seek-forward-symbolic", GTK_STOCK_MEDIA_FORWARD); 548 } 549 550 static RoundedRect::Radii borderRadiiFromStyle(RenderStyle* style) 551 { 552 return RoundedRect::Radii( 553 IntSize(style->borderTopLeftRadius().width().intValue(), style->borderTopLeftRadius().height().intValue()), 554 IntSize(style->borderTopRightRadius().width().intValue(), style->borderTopRightRadius().height().intValue()), 555 IntSize(style->borderBottomLeftRadius().width().intValue(), style->borderBottomLeftRadius().height().intValue()), 556 IntSize(style->borderBottomRightRadius().width().intValue(), style->borderBottomRightRadius().height().intValue())); 555 557 } 556 558 557 559 bool RenderThemeGtk::paintMediaSliderTrack(RenderObject* o, const PaintInfo& paintInfo, const IntRect& r) 558 560 { 559 GraphicsContext* context = paintInfo.context;560 561 context->fillRect(FloatRect(r), m_panelColor, ColorSpaceDeviceRGB);562 context->fillRect(FloatRect(IntRect(r.x(), r.y() + (r.height() - m_mediaSliderHeight) / 2,563 r.width(), m_mediaSliderHeight)), m_sliderColor, ColorSpaceDeviceRGB);564 565 RenderStyle* style = o->style();566 561 HTMLMediaElement* mediaElement = toParentMediaElement(o); 567 568 562 if (!mediaElement) 569 563 return false; 570 564 571 // Draw the buffered ranges. This code is highly inspired from 572 // Chrome for the gradient code. 573 float mediaDuration = mediaElement->duration(); 574 RefPtr<TimeRanges> timeRanges = mediaElement->buffered(); 575 IntRect trackRect = r; 576 int totalWidth = trackRect.width(); 577 578 trackRect.inflate(-style->borderLeftWidth()); 565 GraphicsContext* context = paintInfo.context; 579 566 context->save(); 580 567 context->setStrokeStyle(NoStroke); 581 568 569 float mediaDuration = mediaElement->duration(); 570 float totalTrackWidth = r.width(); 571 RenderStyle* style = o->style(); 572 RefPtr<TimeRanges> timeRanges = mediaElement->buffered(); 582 573 for (unsigned index = 0; index < timeRanges->length(); ++index) { 583 574 float start = timeRanges->start(index, IGNORE_EXCEPTION); 584 575 float end = timeRanges->end(index, IGNORE_EXCEPTION); 585 int width = ((end - start) * totalWidth) / mediaDuration; 586 IntRect rangeRect; 587 if (!index) { 588 rangeRect = trackRect; 589 rangeRect.setWidth(width); 590 } else { 591 rangeRect.setLocation(IntPoint(trackRect.x() + start / mediaDuration* totalWidth, trackRect.y())); 592 rangeRect.setSize(IntSize(width, trackRect.height())); 593 } 594 595 // Don't bother drawing empty range. 596 if (rangeRect.isEmpty()) 576 float startRatio = start / mediaDuration; 577 float lengthRatio = (end - start) / mediaDuration; 578 if (!lengthRatio) 597 579 continue; 598 580 599 IntPoint sliderTopLeft = rangeRect.location(); 600 IntPoint sliderTopRight = sliderTopLeft; 601 sliderTopRight.move(0, rangeRect.height()); 602 603 RefPtr<Gradient> gradient = Gradient::create(sliderTopLeft, sliderTopRight); 604 Color startColor = m_panelColor; 605 gradient->addColorStop(0.0, startColor); 606 gradient->addColorStop(1.0, Color(startColor.red() / 2, startColor.green() / 2, startColor.blue() / 2, startColor.alpha())); 607 608 context->setFillGradient(gradient); 609 context->fillRect(rangeRect); 581 IntRect rangeRect(r); 582 rangeRect.setWidth(lengthRatio * totalTrackWidth); 583 if (index) 584 rangeRect.move(startRatio * totalTrackWidth, 0); 585 context->fillRoundedRect(RoundedRect(rangeRect, borderRadiiFromStyle(style)), style->visitedDependentColor(CSSPropertyColor), style->colorSpace()); 610 586 } 611 587 … … 616 592 bool RenderThemeGtk::paintMediaSliderThumb(RenderObject* o, const PaintInfo& paintInfo, const IntRect& r) 617 593 { 618 // Make the thumb nicer with rounded corners.619 paintInfo.context->fillRoundedRect( r, IntSize(3, 3), IntSize(3, 3), IntSize(3, 3), IntSize(3, 3), m_sliderThumbColor, ColorSpaceDeviceRGB);594 RenderStyle* style = o->style(); 595 paintInfo.context->fillRoundedRect(RoundedRect(r, borderRadiiFromStyle(style)), style->visitedDependentColor(CSSPropertyColor), style->colorSpace()); 620 596 return false; 621 597 } … … 623 599 bool RenderThemeGtk::paintMediaVolumeSliderContainer(RenderObject*, const PaintInfo& paintInfo, const IntRect& rect) 624 600 { 601 return true; 602 } 603 604 bool RenderThemeGtk::paintMediaVolumeSliderTrack(RenderObject* renderObject, const PaintInfo& paintInfo, const IntRect& rect) 605 { 606 HTMLMediaElement* mediaElement = toParentMediaElement(renderObject); 607 if (!mediaElement) 608 return true; 609 610 float volume = mediaElement->volume(); 611 if (!volume) 612 return true; 613 625 614 GraphicsContext* context = paintInfo.context; 626 context->fillRect(FloatRect(rect), m_panelColor, ColorSpaceDeviceRGB); 615 context->save(); 616 context->setStrokeStyle(NoStroke); 617 618 int rectHeight = rect.height(); 619 float trackHeight = rectHeight * volume; 620 RenderStyle* style = renderObject->style(); 621 IntRect volumeRect(rect); 622 volumeRect.move(0, rectHeight - trackHeight); 623 volumeRect.setHeight(ceil(trackHeight)); 624 625 context->fillRoundedRect(RoundedRect(volumeRect, borderRadiiFromStyle(style)), 626 style->visitedDependentColor(CSSPropertyColor), style->colorSpace()); 627 context->restore(); 628 627 629 return false; 628 630 } 629 631 630 bool RenderThemeGtk::paintMediaVolumeSliderTrack(RenderObject* renderObject, const PaintInfo& paintInfo, const IntRect& rect)631 {632 return paintSliderTrack(renderObject, paintInfo, rect);633 }634 635 632 bool RenderThemeGtk::paintMediaVolumeSliderThumb(RenderObject* renderObject, const PaintInfo& paintInfo, const IntRect& rect) 636 633 { 637 return paint SliderThumb(renderObject, paintInfo, rect);634 return paintMediaSliderThumb(renderObject, paintInfo, rect); 638 635 } 639 636 … … 645 642 bool RenderThemeGtk::paintMediaCurrentTime(RenderObject* renderObject, const PaintInfo& paintInfo, const IntRect& rect) 646 643 { 647 GraphicsContext* context = paintInfo.context;648 649 context->fillRect(FloatRect(rect), m_panelColor, ColorSpaceDeviceRGB);650 644 return false; 651 645 } -
trunk/Source/WebCore/platform/gtk/RenderThemeGtk.h
r140339 r143463 162 162 void initMediaColors(); 163 163 void initMediaButtons(); 164 void adjustMediaSliderThumbSize(RenderStyle*) const;165 164 virtual bool hasOwnDisabledStateHandlingFor(ControlPart) const; 166 165 virtual bool paintMediaFullscreenButton(RenderObject*, const PaintInfo&, const IntRect&); … … 197 196 198 197 #if ENABLE(VIDEO) 199 bool paintMediaButton(RenderObject*, GraphicsContext*, const IntRect&, const char* iconName);198 bool paintMediaButton(RenderObject*, GraphicsContext*, const IntRect&, const char* symbolicIconName, const char* fallbackStockIconName); 200 199 #endif 201 200 … … 209 208 const int m_mediaIconSize; 210 209 const int m_mediaSliderHeight; 211 const int m_mediaSliderThumbWidth;212 const int m_mediaSliderThumbHeight;213 210 214 211 #ifdef GTK_API_VERSION_2 -
trunk/Source/WebCore/platform/gtk/RenderThemeGtk2.cpp
r126359 r143463 529 529 { 530 530 ControlPart part = style->appearance(); 531 #if ENABLE(VIDEO) 532 if (part == MediaSliderThumbPart) { 533 adjustMediaSliderThumbSize(style); 531 if (part != SliderThumbHorizontalPart && part != SliderThumbVerticalPart) 534 532 return; 535 }536 #endif537 533 538 534 GtkWidget* widget = part == SliderThumbHorizontalPart ? gtkHScale() : gtkVScale(); … … 671 667 } 672 668 669 GRefPtr<GdkPixbuf> getStockSymbolicIconForWidgetType(GType widgetType, const char* symbolicIconName, const char *fallbackStockIconName, gint direction, gint state, gint iconSize) 670 { 671 return getStockIconForWidgetType(widgetType, fallbackStockIconName, direction, state, iconSize); 672 } 673 673 674 674 Color RenderThemeGtk::platformActiveSelectionBackgroundColor() const -
trunk/Source/WebCore/platform/gtk/RenderThemeGtk3.cpp
r137602 r143463 709 709 { 710 710 ControlPart part = style->appearance(); 711 #if ENABLE(VIDEO) 712 if (part == MediaSliderThumbPart) { 713 adjustMediaSliderThumbSize(style); 711 if (part != SliderThumbHorizontalPart && part != SliderThumbVerticalPart) 714 712 return; 715 }716 #endif717 713 718 714 gint sliderWidth, sliderLength; … … 900 896 } 901 897 898 GRefPtr<GdkPixbuf> getStockSymbolicIconForWidgetType(GType widgetType, const char* symbolicIconName, const char *fallbackStockIconName, gint direction, gint state, gint iconSize) 899 { 900 GtkStyleContext* context = getStyleContext(widgetType); 901 902 gtk_style_context_save(context); 903 904 guint flags = 0; 905 if (state == GTK_STATE_PRELIGHT) 906 flags |= GTK_STATE_FLAG_PRELIGHT; 907 else if (state == GTK_STATE_INSENSITIVE) 908 flags |= GTK_STATE_FLAG_INSENSITIVE; 909 910 gtk_style_context_set_state(context, static_cast<GtkStateFlags>(flags)); 911 gtk_style_context_set_direction(context, static_cast<GtkTextDirection>(direction)); 912 GtkIconInfo* info = gtk_icon_theme_lookup_icon(gtk_icon_theme_get_default(), symbolicIconName, iconSize, 913 static_cast<GtkIconLookupFlags>(GTK_ICON_LOOKUP_FORCE_SVG | GTK_ICON_LOOKUP_FORCE_SIZE)); 914 GdkPixbuf* icon = 0; 915 if (info) { 916 icon = gtk_icon_info_load_symbolic_for_context(info, context, 0, 0); 917 gtk_icon_info_free(info); 918 } 919 920 gtk_style_context_restore(context); 921 922 if (!icon) 923 return getStockIconForWidgetType(widgetType, fallbackStockIconName, direction, state, iconSize); 924 925 return adoptGRef(icon); 926 } 927 902 928 Color RenderThemeGtk::platformActiveSelectionBackgroundColor() const 903 929 { -
trunk/Tools/ChangeLog
r143457 r143463 1 2013-02-20 Xabier Rodriguez Calvar <calvaris@igalia.com> 2 3 [Gtk] HTML5 Media controls require a design refresh 4 https://bugs.webkit.org/show_bug.cgi?id=83869 5 6 Reviewed by Philippe Normand. 7 8 * DumpRenderTree/gtk/DumpRenderTree.cpp: 9 (initializeGtkFontSettings): Added gnome as default icon theme for 10 the DRT. 11 * WebKitTestRunner/InjectedBundle/gtk/ActivateFontsGtk.cpp: 12 (WTR::initializeGtkSettings): Added gnome as default icon theme for 13 the WTR. 14 * gtk/jhbuild.modules: Added gnome-icon-theme-symbolic as external 15 dependency. 16 1 17 2013-02-20 Jochen Eisinger <jochen@chromium.org> 2 18 -
trunk/Tools/DumpRenderTree/gtk/DumpRenderTree.cpp
r142509 r143463 174 174 "gtk-xft-hinting", 0, 175 175 "gtk-font-name", "Liberation Sans 12", 176 "gtk-icon-theme-name", "gnome", 176 177 NULL); 177 178 gdk_screen_set_resolution(gdk_screen_get_default(), 96.0); -
trunk/Tools/WebKitTestRunner/InjectedBundle/gtk/ActivateFontsGtk.cpp
r140969 r143463 51 51 "gtk-font-name", "Liberation Sans 12", 52 52 "gtk-theme-name", "Raleigh", 53 "gtk-icon-theme-name", "gnome", 53 54 "gtk-xft-rgba", "none", NULL); 54 55 } -
trunk/Tools/gtk/jhbuild.modules
r143345 r143463 18 18 <dep package="glib-networking"/> 19 19 <dep package="gnome-icon-theme"/> 20 <dep package="gnome-icon-theme-symbolic"/> 20 21 <dep package="gnome-themes-standard"/> 21 22 <dep package="libsoup"/> … … 194 195 </autotools> 195 196 197 <autotools id="gnome-icon-theme-symbolic" autogen-sh="configure"> 198 <dependencies> 199 <dep package="gtk+"/> 200 </dependencies> 201 <branch module="pub/GNOME/sources/gnome-icon-theme-symbolic/3.2/gnome-icon-theme-symbolic-3.2.1.tar.xz" version="3.2.1" 202 repo="ftp.gnome.org" 203 hash="sha256:a558af2f87f761f00421f49c1addd2149b70228158e09327fa861219ac1a63cb" 204 md5sum="94137d3c256f2cc80298a9bef15d68c4"> 205 </branch> 206 </autotools> 207 196 208 <autotools id="gnome-themes-standard" autogen-sh="configure"> 197 209 <dependencies>
Note: See TracChangeset
for help on using the changeset viewer.