[SCM] WebKit Debian packaging branch, webkit-1.3, updated. upstream/1.3.7-4207-g178b198

carlosgc at webkit.org carlosgc at webkit.org
Sun Feb 20 22:57:40 UTC 2011


The following commit has been merged in the webkit-1.3 branch:
commit a5e5328b03aef730c75eaac38601619ddbbadb62
Author: carlosgc at webkit.org <carlosgc at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Jan 14 17:27:45 2011 +0000

    2011-01-14  Philippe Normand  <pnormand at igalia.com>
    
            Reviewed by Martin Robinson.
    
            [GTK] Add volume slider to media player
            https://bugs.webkit.org/show_bug.cgi?id=51532
    
            * platform/gtk/Skipped:
            * platform/gtk/media/audio-controls-rendering-expected.txt:
            * platform/gtk/media/controls-after-reload-expected.txt:
            * platform/gtk/media/controls-strict-expected.txt:
            * platform/gtk/media/controls-styling-expected.txt:
            * platform/gtk/media/video-controls-rendering-expected.txt:
            * platform/gtk/media/video-display-toggle-expected.txt:
            * platform/gtk/media/video-empty-source-expected.txt:
            * platform/gtk/media/video-no-audio-expected.txt:
            * platform/gtk/media/video-volume-slider-expected.txt: Added.
    2011-01-14  Carlos Garcia Campos  <cgarcia at igalia.com>
    
            Reviewed by Martin Robinson.
    
            [GTK] Add volume slider to media player
            https://bugs.webkit.org/show_bug.cgi?id=51532
    
            * css/mediaControlsGtk.css:
            (audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel):
            (audio::-webkit-media-controls-volume-slider-container, video::-webkit-media-controls-volume-slider-container):
            (audio::-webkit-media-controls-volume-slider, video::-webkit-media-controls-volume-slider):
            * platform/gtk/RenderThemeGtk.cpp:
            (WebCore::RenderThemeGtk::adjustMediaSliderThumbSize):
            (WebCore::RenderThemeGtk::paintMediaVolumeSliderContainer):
            (WebCore::RenderThemeGtk::paintMediaVolumeSliderTrack):
            (WebCore::RenderThemeGtk::paintMediaVolumeSliderThumb):
            * platform/gtk/RenderThemeGtk.h:
            * platform/gtk/RenderThemeGtk2.cpp:
            (WebCore::RenderThemeGtk::paintSliderTrack):
            (WebCore::RenderThemeGtk::paintSliderThumb):
            (WebCore::RenderThemeGtk::adjustSliderThumbSize):
            * platform/gtk/RenderThemeGtk3.cpp:
            (WebCore::RenderThemeGtk::paintSliderTrack):
            (WebCore::RenderThemeGtk::paintSliderThumb):
            (WebCore::RenderThemeGtk::adjustSliderThumbSize):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@75798 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index e74d2f4..b47f27d 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,21 @@
+2011-01-14  Philippe Normand  <pnormand at igalia.com>
+
+        Reviewed by Martin Robinson.
+
+        [GTK] Add volume slider to media player
+        https://bugs.webkit.org/show_bug.cgi?id=51532
+
+        * platform/gtk/Skipped:
+        * platform/gtk/media/audio-controls-rendering-expected.txt:
+        * platform/gtk/media/controls-after-reload-expected.txt:
+        * platform/gtk/media/controls-strict-expected.txt:
+        * platform/gtk/media/controls-styling-expected.txt:
+        * platform/gtk/media/video-controls-rendering-expected.txt:
+        * platform/gtk/media/video-display-toggle-expected.txt:
+        * platform/gtk/media/video-empty-source-expected.txt:
+        * platform/gtk/media/video-no-audio-expected.txt:
+        * platform/gtk/media/video-volume-slider-expected.txt: Added.
+
 2011-01-14  Michael Saboff  <msaboff at apple.com>
 
         Reviewed by Oliver Hunt.
diff --git a/LayoutTests/platform/gtk/Skipped b/LayoutTests/platform/gtk/Skipped
index 2bb9ec4..e309ee3 100644
--- a/LayoutTests/platform/gtk/Skipped
+++ b/LayoutTests/platform/gtk/Skipped
@@ -2846,8 +2846,6 @@ media/video-display-toggle.html
 
 #   Tests generating new results
 media/video-aspect-ratio.html
-# This test requires media controls has a volume slider.
-media/video-volume-slider.html
 # Requires media engine closed caption support
 media/media-captions.html
 
diff --git a/LayoutTests/platform/gtk/media/audio-controls-rendering-expected.txt b/LayoutTests/platform/gtk/media/audio-controls-rendering-expected.txt
index 2143e91..2352087 100644
--- a/LayoutTests/platform/gtk/media/audio-controls-rendering-expected.txt
+++ b/LayoutTests/platform/gtk/media/audio-controls-rendering-expected.txt
@@ -48,16 +48,16 @@ layer at (8,121) size 320x100
   RenderMedia {AUDIO} at (8,121) size 320x100 [bgcolor=#0000FF]
 layer at (8,121) size 320x100
   RenderBlock (relative positioned) {DIV} at (0,0) size 320x100
-layer at (8,201) size 320x20 scrollHeight 30
-  RenderFlexibleBox (positioned) {DIV} at (0,80) size 320x20
-    RenderButton {INPUT} at (0,0) size 20x20
-    RenderFlexibleBox {DIV} at (20,0) size 240x20 [border: (1px solid #FFFFFF33) none (1px solid #FFFFFF33)]
+layer at (8,121) size 320x100 scrollHeight 110
+  RenderFlexibleBox (positioned) {DIV} at (0,0) size 320x100
+    RenderButton {INPUT} at (0,80) size 20x20
+    RenderFlexibleBox {DIV} at (20,80) size 240x20 [border: (1px solid #FFFFFF33) none (1px solid #FFFFFF33)]
       RenderBlock (anonymous) at (1,0) size 65x30
         RenderBlock {DIV} at (0,0) size 65x30
           RenderText {#text} at (5,5) size 55x12
             text run at (5,5) width 55: "00:00 / 00:07"
       RenderSlider {INPUT} at (66,0) size 173x20
         RenderBlock {DIV} at (2,4) size 12x12
-    RenderButton {INPUT} at (260,0) size 20x20
-    RenderButton {INPUT} at (280,0) size 20x20
-    RenderButton {INPUT} at (300,0) size 20x20
+    RenderButton {INPUT} at (260,80) size 20x20
+    RenderButton {INPUT} at (280,80) size 20x20
+    RenderButton {INPUT} at (300,80) size 20x20
diff --git a/LayoutTests/platform/gtk/media/controls-after-reload-expected.txt b/LayoutTests/platform/gtk/media/controls-after-reload-expected.txt
index e052c9d..3ae8c64 100644
--- a/LayoutTests/platform/gtk/media/controls-after-reload-expected.txt
+++ b/LayoutTests/platform/gtk/media/controls-after-reload-expected.txt
@@ -12,17 +12,17 @@ layer at (8,43) size 320x240
   RenderVideo {VIDEO} at (0,0) size 320x240
 layer at (8,43) size 320x240
   RenderBlock (relative positioned) {DIV} at (0,0) size 320x240
-layer at (8,263) size 320x20 scrollHeight 30
-  RenderFlexibleBox (positioned) {DIV} at (0,220) size 320x20
-    RenderButton {INPUT} at (0,0) size 20x20
-    RenderFlexibleBox {DIV} at (20,0) size 220x20 [border: (1px solid #FFFFFF33) none (1px solid #FFFFFF33)]
+layer at (8,43) size 320x240 scrollHeight 250
+  RenderFlexibleBox (positioned) {DIV} at (0,0) size 320x240
+    RenderButton {INPUT} at (0,220) size 20x20
+    RenderFlexibleBox {DIV} at (20,220) size 220x20 [border: (1px solid #FFFFFF33) none (1px solid #FFFFFF33)]
       RenderBlock (anonymous) at (1,0) size 65x30
         RenderBlock {DIV} at (0,0) size 65x30
           RenderText {#text} at (5,5) size 55x12
-            text run at (5,5) width 55: "00:00 / 00:00"
+            text run at (5,5) width 55: "00:00 / 00:06"
       RenderSlider {INPUT} at (66,0) size 153x20
         RenderBlock {DIV} at (2,4) size 12x12
-    RenderButton {INPUT} at (240,0) size 20x20
-    RenderButton {INPUT} at (260,0) size 20x20
-    RenderButton {INPUT} at (280,0) size 20x20
-    RenderButton {INPUT} at (300,0) size 20x20
+    RenderButton {INPUT} at (240,220) size 20x20
+    RenderButton {INPUT} at (260,220) size 20x20
+    RenderButton {INPUT} at (280,220) size 20x20
+    RenderButton {INPUT} at (300,220) size 20x20
diff --git a/LayoutTests/platform/gtk/media/controls-strict-expected.txt b/LayoutTests/platform/gtk/media/controls-strict-expected.txt
index c234269..0fcaf7a 100644
--- a/LayoutTests/platform/gtk/media/controls-strict-expected.txt
+++ b/LayoutTests/platform/gtk/media/controls-strict-expected.txt
@@ -12,17 +12,17 @@ layer at (8,51) size 320x240
   RenderVideo {VIDEO} at (0,0) size 320x240
 layer at (8,51) size 320x240
   RenderBlock (relative positioned) {DIV} at (0,0) size 320x240
-layer at (8,271) size 320x20 scrollHeight 31
-  RenderFlexibleBox (positioned) {DIV} at (0,220) size 320x20
-    RenderButton {INPUT} at (0,0) size 20x20
-    RenderFlexibleBox {DIV} at (20,0) size 220x20 [border: (1px solid #FFFFFF33) none (1px solid #FFFFFF33)]
+layer at (8,51) size 320x240 scrollHeight 251
+  RenderFlexibleBox (positioned) {DIV} at (0,0) size 320x240
+    RenderButton {INPUT} at (0,220) size 20x20
+    RenderFlexibleBox {DIV} at (20,220) size 220x20 [border: (1px solid #FFFFFF33) none (1px solid #FFFFFF33)]
       RenderBlock (anonymous) at (1,0) size 65x31
         RenderBlock {DIV} at (0,1) size 65x30
           RenderText {#text} at (5,5) size 55x12
             text run at (5,5) width 55: "00:00 / 00:06"
       RenderSlider {INPUT} at (66,0) size 153x20
         RenderBlock {DIV} at (2,4) size 12x12
-    RenderButton {INPUT} at (240,0) size 20x20
-    RenderButton {INPUT} at (260,0) size 20x20
-    RenderButton {INPUT} at (280,0) size 20x20
-    RenderButton {INPUT} at (300,0) size 20x20
+    RenderButton {INPUT} at (240,220) size 20x20
+    RenderButton {INPUT} at (260,220) size 20x20
+    RenderButton {INPUT} at (280,220) size 20x20
+    RenderButton {INPUT} at (300,220) size 20x20
diff --git a/LayoutTests/platform/gtk/media/controls-styling-expected.txt b/LayoutTests/platform/gtk/media/controls-styling-expected.txt
index 71f0af5..67f155c 100644
--- a/LayoutTests/platform/gtk/media/controls-styling-expected.txt
+++ b/LayoutTests/platform/gtk/media/controls-styling-expected.txt
@@ -16,10 +16,10 @@ layer at (8,283) size 320x240
   RenderVideo {VIDEO} at (0,0) size 320x240
 layer at (18,43) size 320x240
   RenderBlock (relative positioned) {DIV} at (0,0) size 320x240
-layer at (18,263) size 320x20 scrollHeight 261
-  RenderFlexibleBox (positioned) {DIV} at (0,220) size 320x20
-    RenderButton {INPUT} at (0,0) size 20x20
-    RenderFlexibleBox {DIV} at (20,0) size 220x20 [border: (1px solid #FFFFFF33) none (1px solid #FFFFFF33)]
+layer at (18,43) size 320x240 scrollHeight 481
+  RenderFlexibleBox (positioned) {DIV} at (0,0) size 320x240
+    RenderButton {INPUT} at (0,220) size 20x20
+    RenderFlexibleBox {DIV} at (20,220) size 220x20 [border: (1px solid #FFFFFF33) none (1px solid #FFFFFF33)]
       RenderBlock (anonymous) at (1,0) size 218x30
         RenderBlock {DIV} at (10,0) size 218x30
           RenderText {#text} at (27,49) size 178x212
@@ -28,23 +28,23 @@ layer at (18,263) size 320x20 scrollHeight 261
             text run at (22,249) width 173: "00:06"
       RenderSlider {INPUT} at (219,0) size 4x20
         RenderBlock {DIV} at (2,4) size 12x12
-    RenderButton {INPUT} at (240,0) size 20x20
-    RenderButton {INPUT} at (260,0) size 20x20
-    RenderButton {INPUT} at (280,0) size 20x20
-    RenderButton {INPUT} at (300,0) size 20x20
+    RenderButton {INPUT} at (240,220) size 20x20
+    RenderButton {INPUT} at (260,220) size 20x20
+    RenderButton {INPUT} at (280,220) size 20x20
+    RenderButton {INPUT} at (300,220) size 20x20
 layer at (8,283) size 320x240
   RenderBlock (relative positioned) {DIV} at (0,0) size 320x240
-layer at (8,503) size 320x20 scrollHeight 30
-  RenderFlexibleBox (positioned) {DIV} at (0,220) size 320x20
-    RenderButton {INPUT} at (0,0) size 20x20
-    RenderFlexibleBox {DIV} at (20,0) size 220x20 [border: (1px solid #FFFFFF33) none (1px solid #FFFFFF33)]
+layer at (8,283) size 320x240 scrollHeight 250
+  RenderFlexibleBox (positioned) {DIV} at (0,0) size 320x240
+    RenderButton {INPUT} at (0,220) size 20x20
+    RenderFlexibleBox {DIV} at (20,220) size 220x20 [border: (1px solid #FFFFFF33) none (1px solid #FFFFFF33)]
       RenderBlock (anonymous) at (1,0) size 65x30
         RenderBlock {DIV} at (0,0) size 65x30
           RenderText {#text} at (5,5) size 55x12
             text run at (5,5) width 55: "00:00 / 00:06"
       RenderSlider {INPUT} at (66,0) size 153x20
         RenderBlock {DIV} at (2,4) size 12x12
-    RenderButton {INPUT} at (240,0) size 20x20
-    RenderButton {INPUT} at (260,0) size 20x20
-    RenderButton {INPUT} at (280,0) size 20x20
-    RenderButton {INPUT} at (300,0) size 20x20
+    RenderButton {INPUT} at (240,220) size 20x20
+    RenderButton {INPUT} at (260,220) size 20x20
+    RenderButton {INPUT} at (280,220) size 20x20
+    RenderButton {INPUT} at (300,220) size 20x20
diff --git a/LayoutTests/platform/gtk/media/video-controls-rendering-expected.txt b/LayoutTests/platform/gtk/media/video-controls-rendering-expected.txt
index ecc1156..7e8607d 100644
--- a/LayoutTests/platform/gtk/media/video-controls-rendering-expected.txt
+++ b/LayoutTests/platform/gtk/media/video-controls-rendering-expected.txt
@@ -17,51 +17,51 @@ layer at (8,283) size 320x240
   RenderVideo {VIDEO} at (0,0) size 320x240
 layer at (8,43) size 320x240
   RenderBlock (relative positioned) {DIV} at (0,0) size 320x240
-layer at (8,263) size 320x20 scrollHeight 30
-  RenderFlexibleBox (positioned) {DIV} at (0,220) size 320x20
-    RenderButton {INPUT} at (0,0) size 20x20
-    RenderFlexibleBox {DIV} at (20,0) size 220x20 [border: (1px solid #FFFFFF33) none (1px solid #FFFFFF33)]
+layer at (8,43) size 320x240 scrollHeight 250
+  RenderFlexibleBox (positioned) {DIV} at (0,0) size 320x240
+    RenderButton {INPUT} at (0,220) size 20x20
+    RenderFlexibleBox {DIV} at (20,220) size 220x20 [border: (1px solid #FFFFFF33) none (1px solid #FFFFFF33)]
       RenderBlock (anonymous) at (1,0) size 65x30
         RenderBlock {DIV} at (0,0) size 65x30
           RenderText {#text} at (5,5) size 55x12
             text run at (5,5) width 55: "00:00 / 00:06"
       RenderSlider {INPUT} at (66,0) size 153x20
         RenderBlock {DIV} at (2,4) size 12x12
-    RenderButton {INPUT} at (240,0) size 20x20
-    RenderButton {INPUT} at (260,0) size 20x20
-    RenderButton {INPUT} at (280,0) size 20x20
-    RenderButton {INPUT} at (300,0) size 20x20
+    RenderButton {INPUT} at (240,220) size 20x20
+    RenderButton {INPUT} at (260,220) size 20x20
+    RenderButton {INPUT} at (280,220) size 20x20
+    RenderButton {INPUT} at (300,220) size 20x20
 layer at (8,283) size 320x240
   RenderBlock (relative positioned) {DIV} at (0,0) size 320x240
-layer at (8,503) size 320x20 scrollHeight 30
-  RenderFlexibleBox (positioned) {DIV} at (0,220) size 320x20
-    RenderButton {INPUT} at (0,0) size 20x20
-    RenderFlexibleBox {DIV} at (20,0) size 220x20 [border: (1px solid #FFFFFF33) none (1px solid #FFFFFF33)]
+layer at (8,283) size 320x240 scrollHeight 250
+  RenderFlexibleBox (positioned) {DIV} at (0,0) size 320x240
+    RenderButton {INPUT} at (0,220) size 20x20
+    RenderFlexibleBox {DIV} at (20,220) size 220x20 [border: (1px solid #FFFFFF33) none (1px solid #FFFFFF33)]
       RenderBlock (anonymous) at (1,0) size 65x30
         RenderBlock {DIV} at (0,0) size 65x30
           RenderText {#text} at (5,5) size 55x12
             text run at (5,5) width 55: "00:00 / 00:06"
       RenderSlider {INPUT} at (66,0) size 153x20
         RenderBlock {DIV} at (2,4) size 12x12
-    RenderButton {INPUT} at (240,0) size 20x20
-    RenderButton {INPUT} at (260,0) size 20x20
-    RenderButton {INPUT} at (280,0) size 20x20
-    RenderButton {INPUT} at (300,0) size 20x20
+    RenderButton {INPUT} at (240,220) size 20x20
+    RenderButton {INPUT} at (260,220) size 20x20
+    RenderButton {INPUT} at (280,220) size 20x20
+    RenderButton {INPUT} at (300,220) size 20x20
 layer at (8,523) size 320x240
   RenderVideo {VIDEO} at (8,523) size 320x240
 layer at (8,523) size 320x240
   RenderBlock (relative positioned) {DIV} at (0,0) size 320x240
-layer at (8,743) size 320x20 scrollHeight 30
-  RenderFlexibleBox (positioned) {DIV} at (0,220) size 320x20
-    RenderButton {INPUT} at (0,0) size 20x20
-    RenderFlexibleBox {DIV} at (20,0) size 220x20 [border: (1px solid #FFFFFF33) none (1px solid #FFFFFF33)]
+layer at (8,523) size 320x240 scrollHeight 250
+  RenderFlexibleBox (positioned) {DIV} at (0,0) size 320x240
+    RenderButton {INPUT} at (0,220) size 20x20
+    RenderFlexibleBox {DIV} at (20,220) size 220x20 [border: (1px solid #FFFFFF33) none (1px solid #FFFFFF33)]
       RenderBlock (anonymous) at (1,0) size 65x30
         RenderBlock {DIV} at (0,0) size 65x30
           RenderText {#text} at (5,5) size 55x12
             text run at (5,5) width 55: "00:00 / 00:06"
       RenderSlider {INPUT} at (66,0) size 153x20
         RenderBlock {DIV} at (2,4) size 12x12
-    RenderButton {INPUT} at (240,0) size 20x20
-    RenderButton {INPUT} at (260,0) size 20x20
-    RenderButton {INPUT} at (280,0) size 20x20
-    RenderButton {INPUT} at (300,0) size 20x20
+    RenderButton {INPUT} at (240,220) size 20x20
+    RenderButton {INPUT} at (260,220) size 20x20
+    RenderButton {INPUT} at (280,220) size 20x20
+    RenderButton {INPUT} at (300,220) size 20x20
diff --git a/LayoutTests/platform/gtk/media/video-display-toggle-expected.txt b/LayoutTests/platform/gtk/media/video-display-toggle-expected.txt
index f4023e7..fd126f3 100644
--- a/LayoutTests/platform/gtk/media/video-display-toggle-expected.txt
+++ b/LayoutTests/platform/gtk/media/video-display-toggle-expected.txt
@@ -11,17 +11,17 @@ layer at (8,27) size 320x240
   RenderVideo {VIDEO} at (0,19) size 320x240
 layer at (8,27) size 320x240
   RenderBlock (relative positioned) {DIV} at (0,0) size 320x240
-layer at (8,247) size 320x20 scrollHeight 30
-  RenderFlexibleBox (positioned) {DIV} at (0,220) size 320x20
-    RenderButton {INPUT} at (0,0) size 20x20
-    RenderFlexibleBox {DIV} at (20,0) size 220x20 [border: (1px solid #FFFFFF33) none (1px solid #FFFFFF33)]
+layer at (8,27) size 320x240 scrollHeight 250
+  RenderFlexibleBox (positioned) {DIV} at (0,0) size 320x240
+    RenderButton {INPUT} at (0,220) size 20x20
+    RenderFlexibleBox {DIV} at (20,220) size 220x20 [border: (1px solid #FFFFFF33) none (1px solid #FFFFFF33)]
       RenderBlock (anonymous) at (1,0) size 65x30
         RenderBlock {DIV} at (0,0) size 65x30
           RenderText {#text} at (5,5) size 55x12
             text run at (5,5) width 55: "00:00 / 00:06"
       RenderSlider {INPUT} at (66,0) size 153x20
         RenderBlock {DIV} at (2,4) size 12x12
-    RenderButton {INPUT} at (240,0) size 20x20
-    RenderButton {INPUT} at (260,0) size 20x20
-    RenderButton {INPUT} at (280,0) size 20x20
-    RenderButton {INPUT} at (300,0) size 20x20
+    RenderButton {INPUT} at (240,220) size 20x20
+    RenderButton {INPUT} at (260,220) size 20x20
+    RenderButton {INPUT} at (280,220) size 20x20
+    RenderButton {INPUT} at (300,220) size 20x20
diff --git a/LayoutTests/platform/gtk/media/video-empty-source-expected.txt b/LayoutTests/platform/gtk/media/video-empty-source-expected.txt
index b4b8751..81435b6 100644
--- a/LayoutTests/platform/gtk/media/video-empty-source-expected.txt
+++ b/LayoutTests/platform/gtk/media/video-empty-source-expected.txt
@@ -12,15 +12,15 @@ layer at (8,43) size 302x152
   RenderVideo {VIDEO} at (0,0) size 302x152 [border: (1px solid #000000)]
 layer at (9,44) size 300x150
   RenderBlock (relative positioned) {DIV} at (1,1) size 300x150
-layer at (9,174) size 300x20 scrollHeight 30
-  RenderFlexibleBox (positioned) {DIV} at (0,130) size 300x20
-    RenderButton {INPUT} at (0,0) size 20x20
-    RenderFlexibleBox {DIV} at (20,0) size 240x20 [border: (1px solid #FFFFFF33) none (1px solid #FFFFFF33)]
+layer at (9,44) size 300x150 scrollHeight 160
+  RenderFlexibleBox (positioned) {DIV} at (0,0) size 300x150
+    RenderButton {INPUT} at (0,130) size 20x20
+    RenderFlexibleBox {DIV} at (20,130) size 240x20 [border: (1px solid #FFFFFF33) none (1px solid #FFFFFF33)]
       RenderBlock (anonymous) at (1,0) size 65x30
         RenderBlock {DIV} at (0,0) size 65x30
           RenderText {#text} at (5,5) size 55x12
             text run at (5,5) width 55: "00:00 / 00:00"
       RenderSlider {INPUT} at (66,0) size 173x20
         RenderBlock {DIV} at (2,4) size 12x12
-    RenderButton {INPUT} at (260,0) size 20x20
-    RenderButton {INPUT} at (280,0) size 20x20
+    RenderButton {INPUT} at (260,130) size 20x20
+    RenderButton {INPUT} at (280,130) size 20x20
diff --git a/LayoutTests/platform/gtk/media/video-no-audio-expected.txt b/LayoutTests/platform/gtk/media/video-no-audio-expected.txt
index c15a5a7..4e86deb 100644
--- a/LayoutTests/platform/gtk/media/video-no-audio-expected.txt
+++ b/LayoutTests/platform/gtk/media/video-no-audio-expected.txt
@@ -12,16 +12,16 @@ layer at (8,43) size 352x288
   RenderVideo {VIDEO} at (0,0) size 352x288
 layer at (8,43) size 352x288
   RenderBlock (relative positioned) {DIV} at (0,0) size 352x288
-layer at (8,311) size 352x20 scrollHeight 30
-  RenderFlexibleBox (positioned) {DIV} at (0,268) size 352x20
-    RenderButton {INPUT} at (0,0) size 20x20
-    RenderFlexibleBox {DIV} at (20,0) size 272x20 [border: (1px solid #FFFFFF33) none (1px solid #FFFFFF33)]
+layer at (8,43) size 352x288 scrollHeight 298
+  RenderFlexibleBox (positioned) {DIV} at (0,0) size 352x288
+    RenderButton {INPUT} at (0,268) size 20x20
+    RenderFlexibleBox {DIV} at (20,268) size 272x20 [border: (1px solid #FFFFFF33) none (1px solid #FFFFFF33)]
       RenderBlock (anonymous) at (1,0) size 65x30
         RenderBlock {DIV} at (0,0) size 65x30
           RenderText {#text} at (5,5) size 55x12
             text run at (5,5) width 55: "00:00 / 00:09"
       RenderSlider {INPUT} at (66,0) size 205x20
         RenderBlock {DIV} at (2,4) size 12x12
-    RenderButton {INPUT} at (292,0) size 20x20
-    RenderButton {INPUT} at (312,0) size 20x20
-    RenderButton {INPUT} at (332,0) size 20x20
+    RenderButton {INPUT} at (292,268) size 20x20
+    RenderButton {INPUT} at (312,268) size 20x20
+    RenderButton {INPUT} at (332,268) size 20x20
diff --git a/LayoutTests/platform/gtk/media/video-volume-slider-expected.txt b/LayoutTests/platform/gtk/media/video-volume-slider-expected.txt
new file mode 100644
index 0000000..6a46433
--- /dev/null
+++ b/LayoutTests/platform/gtk/media/video-volume-slider-expected.txt
@@ -0,0 +1,38 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+  RenderBlock {HTML} at (0,0) size 800x600
+    RenderBody {BODY} at (8,8) size 784x584
+      RenderText {#text} at (0,0) size 433x19
+        text run at (0,0) width 433: "Tests if the volume slider is rendererd properly. This test assumes the"
+      RenderBR {BR} at (433,15) size 0x0
+      RenderText {#text} at (0,19) size 446x19
+        text run at (0,19) width 446: "volume slider is implmented and mouse over the right bottom corner of"
+      RenderBR {BR} at (446,34) size 0x0
+      RenderText {#text} at (0,38) size 270x19
+        text run at (0,38) width 270: "video element will show the volume slider."
+      RenderBR {BR} at (270,53) size 0x0
+      RenderText {#text} at (0,0) size 0x0
+layer at (8,65) size 320x240
+  RenderVideo {VIDEO} at (0,57) size 320x240
+layer at (8,65) size 320x240
+  RenderBlock (relative positioned) {DIV} at (0,0) size 320x240
+layer at (8,65) size 320x240 scrollHeight 250
+  RenderFlexibleBox (positioned) {DIV} at (0,0) size 320x240
+    RenderButton {INPUT} at (0,220) size 20x20
+    RenderFlexibleBox {DIV} at (20,220) size 220x20 [border: (1px solid #FFFFFF33) none (1px solid #FFFFFF33)]
+      RenderBlock (anonymous) at (1,0) size 65x30
+        RenderBlock {DIV} at (0,0) size 65x30
+          RenderText {#text} at (5,5) size 55x12
+            text run at (5,5) width 55: "00:00 / 00:06"
+      RenderSlider {INPUT} at (66,0) size 153x20
+        RenderBlock {DIV} at (2,4) size 12x12
+    RenderButton {INPUT} at (240,220) size 20x20
+    RenderButton {INPUT} at (260,220) size 20x20
+    RenderButton {INPUT} at (280,220) size 20x20
+    RenderButton {INPUT} at (300,220) size 20x20
+layer at (308,185) size 20x100
+  RenderBlock (positioned) {DIV} at (300,120) size 20x100
+layer at (311,190) size 14x95
+  RenderSlider {INPUT} at (3,5) size 14x95
+    RenderBlock {DIV} at (0,19) size 14x31
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index d6bebe2..0a69a74 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,3 +1,29 @@
+2011-01-14  Carlos Garcia Campos  <cgarcia at igalia.com>
+
+        Reviewed by Martin Robinson.
+
+        [GTK] Add volume slider to media player
+        https://bugs.webkit.org/show_bug.cgi?id=51532
+
+        * css/mediaControlsGtk.css:
+        (audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel):
+        (audio::-webkit-media-controls-volume-slider-container, video::-webkit-media-controls-volume-slider-container):
+        (audio::-webkit-media-controls-volume-slider, video::-webkit-media-controls-volume-slider):
+        * platform/gtk/RenderThemeGtk.cpp:
+        (WebCore::RenderThemeGtk::adjustMediaSliderThumbSize):
+        (WebCore::RenderThemeGtk::paintMediaVolumeSliderContainer):
+        (WebCore::RenderThemeGtk::paintMediaVolumeSliderTrack):
+        (WebCore::RenderThemeGtk::paintMediaVolumeSliderThumb):
+        * platform/gtk/RenderThemeGtk.h:
+        * platform/gtk/RenderThemeGtk2.cpp:
+        (WebCore::RenderThemeGtk::paintSliderTrack):
+        (WebCore::RenderThemeGtk::paintSliderThumb):
+        (WebCore::RenderThemeGtk::adjustSliderThumbSize):
+        * platform/gtk/RenderThemeGtk3.cpp:
+        (WebCore::RenderThemeGtk::paintSliderTrack):
+        (WebCore::RenderThemeGtk::paintSliderThumb):
+        (WebCore::RenderThemeGtk::adjustSliderThumbSize):
+
 2011-01-14  Joone Hur  <joone.hur at collabora.co.uk>
 
         Reviewed by David Levin.
diff --git a/Source/WebCore/css/mediaControlsGtk.css b/Source/WebCore/css/mediaControlsGtk.css
index 18b7dcc..b4637f7 100644
--- a/Source/WebCore/css/mediaControlsGtk.css
+++ b/Source/WebCore/css/mediaControlsGtk.css
@@ -26,7 +26,17 @@ audio {
 }
 
 audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel {
-    height: 20px;
+    display: -webkit-box;
+    -webkit-box-orient: horizontal;
+    -webkit-box-align: end;
+    -webkit-user-select: none;
+    position: absolute;
+    bottom: 0;
+    width: 100%;
+    z-index: 0;
+    overflow: hidden;
+    text-align: right;
+    height: 100%;
 }
 
 audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button {
@@ -75,3 +85,21 @@ audio::-webkit-media-controls-fullscreen-button, video::-webkit-media-controls-f
     width: 20px;
     height: 20px;
 }
+
+audio::-webkit-media-controls-volume-slider-container, video::-webkit-media-controls-volume-slider-container {
+    -webkit-appearance: media-volume-slider-container;
+    position: absolute;
+    height: 100px;
+    width: 20px;
+}
+
+audio::-webkit-media-controls-volume-slider, video::-webkit-media-controls-volume-slider {
+    -webkit-appearance: media-volume-slider;
+    display: inline;
+    position: absolute;
+    width: 14px;
+    height: 95px;
+
+    left: 3px;
+    top: 5px;
+}
\ No newline at end of file
diff --git a/Source/WebCore/platform/gtk/RenderThemeGtk.cpp b/Source/WebCore/platform/gtk/RenderThemeGtk.cpp
index c2f6eb8..276fb8f 100644
--- a/Source/WebCore/platform/gtk/RenderThemeGtk.cpp
+++ b/Source/WebCore/platform/gtk/RenderThemeGtk.cpp
@@ -387,12 +387,9 @@ String RenderThemeGtk::extraMediaControlsStyleSheet()
 
 void RenderThemeGtk::adjustMediaSliderThumbSize(RenderObject* renderObject) const
 {
-    ControlPart part = renderObject->style()->appearance();
-
-    if (part == MediaSliderThumbPart) {
-        renderObject->style()->setWidth(Length(m_mediaSliderThumbWidth, Fixed));
-        renderObject->style()->setHeight(Length(m_mediaSliderThumbHeight, Fixed));
-    }
+    ASSERT(renderObject->style()->appearance() == MediaSliderThumbPart);
+    renderObject->style()->setWidth(Length(m_mediaSliderThumbWidth, Fixed));
+    renderObject->style()->setHeight(Length(m_mediaSliderThumbHeight, Fixed));
 }
 
 bool RenderThemeGtk::paintMediaButton(RenderObject* renderObject, GraphicsContext* context, const IntRect& rect, const char* iconName)
@@ -509,6 +506,23 @@ bool RenderThemeGtk::paintMediaSliderThumb(RenderObject* o, const PaintInfo& pai
     return false;
 }
 
+bool RenderThemeGtk::paintMediaVolumeSliderContainer(RenderObject*, const PaintInfo& paintInfo, const IntRect& rect)
+{
+    GraphicsContext* context = paintInfo.context;
+    context->fillRect(FloatRect(rect), m_panelColor, ColorSpaceDeviceRGB);
+    return false;
+}
+
+bool RenderThemeGtk::paintMediaVolumeSliderTrack(RenderObject* renderObject, const PaintInfo& paintInfo, const IntRect& rect)
+{
+    return paintSliderTrack(renderObject, paintInfo, rect);
+}
+
+bool RenderThemeGtk::paintMediaVolumeSliderThumb(RenderObject* renderObject, const PaintInfo& paintInfo, const IntRect& rect)
+{
+    return paintSliderThumb(renderObject, paintInfo, rect);
+}
+
 String RenderThemeGtk::formatMediaControlsCurrentTime(float currentTime, float duration) const
 {
     return formatMediaControlsTime(currentTime) + " / " + formatMediaControlsTime(duration);
diff --git a/Source/WebCore/platform/gtk/RenderThemeGtk.h b/Source/WebCore/platform/gtk/RenderThemeGtk.h
index 74b88b3..90113e5 100644
--- a/Source/WebCore/platform/gtk/RenderThemeGtk.h
+++ b/Source/WebCore/platform/gtk/RenderThemeGtk.h
@@ -156,6 +156,9 @@ protected:
     virtual bool paintMediaSeekForwardButton(RenderObject*, const PaintInfo&, const IntRect&);
     virtual bool paintMediaSliderTrack(RenderObject*, const PaintInfo&, const IntRect&);
     virtual bool paintMediaSliderThumb(RenderObject*, const PaintInfo&, const IntRect&);
+    virtual bool paintMediaVolumeSliderContainer(RenderObject*, const PaintInfo&, const IntRect&);
+    virtual bool paintMediaVolumeSliderTrack(RenderObject*, const PaintInfo&, const IntRect&);
+    virtual bool paintMediaVolumeSliderThumb(RenderObject*, const PaintInfo&, const IntRect&);
     virtual bool paintMediaCurrentTime(RenderObject*, const PaintInfo&, const IntRect&);
 #endif
 
diff --git a/Source/WebCore/platform/gtk/RenderThemeGtk2.cpp b/Source/WebCore/platform/gtk/RenderThemeGtk2.cpp
index 2ebcb0f..cc6299e 100644
--- a/Source/WebCore/platform/gtk/RenderThemeGtk2.cpp
+++ b/Source/WebCore/platform/gtk/RenderThemeGtk2.cpp
@@ -299,17 +299,17 @@ bool RenderThemeGtk::paintSliderTrack(RenderObject* object, const PaintInfo& inf
         return false;
 
     ControlPart part = object->style()->appearance();
-    ASSERT(part == SliderHorizontalPart || part == SliderVerticalPart);
+    ASSERT(part == SliderHorizontalPart || part == SliderVerticalPart || part == MediaVolumeSliderPart);
 
     // We shrink the trough rect slightly to make room for the focus indicator.
     IntRect troughRect(IntPoint(), rect.size()); // This is relative to rect.
     GtkWidget* widget = 0;
-    if (part == SliderVerticalPart) {
-        widget = gtkVScale();
-        troughRect.inflateY(-gtk_widget_get_style(widget)->ythickness);
-    } else {
+    if (part == SliderHorizontalPart) {
         widget = gtkHScale();
         troughRect.inflateX(-gtk_widget_get_style(widget)->xthickness);
+    } else {
+        widget = gtkVScale();
+        troughRect.inflateY(-gtk_widget_get_style(widget)->ythickness);
     }
     gtk_widget_set_direction(widget, gtkTextDirection(object->style()->direction()));
 
@@ -327,19 +327,19 @@ bool RenderThemeGtk::paintSliderThumb(RenderObject* object, const PaintInfo& inf
         return false;
 
     ControlPart part = object->style()->appearance();
-    ASSERT(part == SliderThumbHorizontalPart || part == SliderThumbVerticalPart);
+    ASSERT(part == SliderThumbHorizontalPart || part == SliderThumbVerticalPart || part == MediaVolumeSliderThumbPart);
 
     GtkWidget* widget = 0;
     const char* detail = 0;
     GtkOrientation orientation;
-    if (part == SliderThumbVerticalPart) {
-        widget = gtkVScale();
-        detail = "vscale";
-        orientation = GTK_ORIENTATION_VERTICAL;
-    } else {
+    if (part == SliderThumbHorizontalPart) {
         widget = gtkHScale();
         detail = "hscale";
         orientation = GTK_ORIENTATION_HORIZONTAL;
+    } else {
+        widget = gtkVScale();
+        detail = "vscale";
+        orientation = GTK_ORIENTATION_VERTICAL;
     }
     gtk_widget_set_direction(widget, gtkTextDirection(object->style()->direction()));
 
@@ -357,7 +357,7 @@ void RenderThemeGtk::adjustSliderThumbSize(RenderObject* o) const
 {
     ControlPart part = o->style()->appearance();
 #if ENABLE(VIDEO)
-    if (part == MediaSliderThumbPart || part == MediaVolumeSliderThumbPart) {
+    if (part == MediaSliderThumbPart) {
         adjustMediaSliderThumbSize(o);
         return;
     }
@@ -375,7 +375,7 @@ void RenderThemeGtk::adjustSliderThumbSize(RenderObject* o) const
         o->style()->setHeight(Length(width, Fixed));
         return;
     }
-    ASSERT(part == SliderThumbVerticalPart);
+    ASSERT(part == SliderThumbVerticalPart || part == MediaVolumeSliderThumbPart);
     o->style()->setWidth(Length(width, Fixed));
     o->style()->setHeight(Length(length, Fixed));
 }
diff --git a/Source/WebCore/platform/gtk/RenderThemeGtk3.cpp b/Source/WebCore/platform/gtk/RenderThemeGtk3.cpp
index c2fcfb5..269f0fd 100644
--- a/Source/WebCore/platform/gtk/RenderThemeGtk3.cpp
+++ b/Source/WebCore/platform/gtk/RenderThemeGtk3.cpp
@@ -596,7 +596,7 @@ bool RenderThemeGtk::paintTextField(RenderObject* renderObject, const PaintInfo&
 bool RenderThemeGtk::paintSliderTrack(RenderObject* renderObject, const PaintInfo& paintInfo, const IntRect& rect)
 {
     ControlPart part = renderObject->style()->appearance();
-    ASSERT(part == SliderHorizontalPart || part == SliderVerticalPart);
+    ASSERT(part == SliderHorizontalPart || part == SliderVerticalPart || part == MediaVolumeSliderPart);
 
     GtkStyleContext* context = getStyleContext(part == SliderThumbHorizontalPart ? GTK_TYPE_HSCALE : GTK_TYPE_VSCALE);
     gtk_style_context_save(context);
@@ -631,7 +631,7 @@ bool RenderThemeGtk::paintSliderTrack(RenderObject* renderObject, const PaintInf
 bool RenderThemeGtk::paintSliderThumb(RenderObject* renderObject, const PaintInfo& paintInfo, const IntRect& rect)
 {
     ControlPart part = renderObject->style()->appearance();
-    ASSERT(part == SliderThumbHorizontalPart || part == SliderThumbVerticalPart);
+    ASSERT(part == SliderThumbHorizontalPart || part == SliderThumbVerticalPart || part == MediaVolumeSliderThumbPart);
 
     GtkStyleContext* context = getStyleContext(part == SliderThumbHorizontalPart ? GTK_TYPE_HSCALE : GTK_TYPE_VSCALE);
     gtk_style_context_save(context);
@@ -667,7 +667,7 @@ void RenderThemeGtk::adjustSliderThumbSize(RenderObject* renderObject) const
 {
     ControlPart part = renderObject->style()->appearance();
 #if ENABLE(VIDEO)
-    if (part == MediaSliderThumbPart || part == MediaVolumeSliderThumbPart) {
+    if (part == MediaSliderThumbPart) {
         adjustMediaSliderThumbSize(renderObject);
         return;
     }
@@ -683,7 +683,7 @@ void RenderThemeGtk::adjustSliderThumbSize(RenderObject* renderObject) const
         renderObject->style()->setHeight(Length(sliderWidth, Fixed));
         return;
     }
-    ASSERT(part == SliderThumbVerticalPart);
+    ASSERT(part == SliderThumbVerticalPart || part == MediaVolumeSliderThumbPart);
     renderObject->style()->setWidth(Length(sliderWidth, Fixed));
     renderObject->style()->setHeight(Length(sliderLength, Fixed));
 }

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list