Title: [113641] trunk
Revision
113641
Author
[email protected]
Date
2012-04-09 16:49:28 -0700 (Mon, 09 Apr 2012)

Log Message

Unreviewed, rolling out r113609.
http://trac.webkit.org/changeset/113609
https://bugs.webkit.org/show_bug.cgi?id=83522

it broke tests (Requested by dethbakin on #webkit).

Patch by Sheriff Bot <[email protected]> on 2012-04-09

Source/WebCore:

* css/mediaControlsChromium.css:
(audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel):
(audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button):
(audio::-webkit-media-controls-volume-slider-container, video::-webkit-media-controls-volume-slider-container):
* css/mediaControlsQuickTime.css:
(audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button):
(audio::-webkit-media-controls-volume-slider-container, video::-webkit-media-controls-volume-slider-container):
(audio::-webkit-media-controls-volume-slider-mute-button, video::-webkit-media-controls-volume-slider-mute-button):
* html/shadow/MediaControlElements.cpp:
(RenderMediaVolumeSliderContainer):
(WebCore):
(WebCore::RenderMediaVolumeSliderContainer::RenderMediaVolumeSliderContainer):
(WebCore::RenderMediaVolumeSliderContainer::layout):
(WebCore::MediaControlVolumeSliderContainerElement::createRenderer):
* html/shadow/MediaControlElements.h:
(MediaControlVolumeSliderContainerElement):
* html/shadow/MediaControlRootElement.cpp:
(WebCore::MediaControlRootElement::create):
* html/shadow/MediaControlRootElementChromium.cpp:
(WebCore::MediaControlRootElementChromium::create):

LayoutTests:

* media/video-controls-rendering-toggle-display-none-expected.txt: Removed.
* media/video-controls-rendering-toggle-display-none.html: Removed.

Modified Paths

Removed Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (113640 => 113641)


--- trunk/LayoutTests/ChangeLog	2012-04-09 23:45:43 UTC (rev 113640)
+++ trunk/LayoutTests/ChangeLog	2012-04-09 23:49:28 UTC (rev 113641)
@@ -1,3 +1,14 @@
+2012-04-09  Sheriff Bot  <[email protected]>
+
+        Unreviewed, rolling out r113609.
+        http://trac.webkit.org/changeset/113609
+        https://bugs.webkit.org/show_bug.cgi?id=83522
+
+        it broke tests (Requested by dethbakin on #webkit).
+
+        * media/video-controls-rendering-toggle-display-none-expected.txt: Removed.
+        * media/video-controls-rendering-toggle-display-none.html: Removed.
+
 2012-04-09  Dale Curtis  <[email protected]>
 
         Remove unworkable video-buffering-repaints-controls test.

Deleted: trunk/LayoutTests/media/video-controls-rendering-toggle-display-none-expected.txt (113640 => 113641)


--- trunk/LayoutTests/media/video-controls-rendering-toggle-display-none-expected.txt	2012-04-09 23:45:43 UTC (rev 113640)
+++ trunk/LayoutTests/media/video-controls-rendering-toggle-display-none-expected.txt	2012-04-09 23:49:28 UTC (rev 113641)
@@ -1,9 +0,0 @@
-Tests that the video controls are properly rendered when the display none is set and unset.
-
-** The volume slider should have almost the same left offset as the mute button **
-EXPECTED (volumeSliderElement.offsetLeft >= muteButtonElement.offsetLeft - threshold == 'true') OK
-EXPECTED (volumeSliderElement.offsetLeft <= muteButtonElement.offsetLeft + threshold == 'true') OK
-
-** The volume slider should be on top of the mute button **
-EXPECTED (volumeSliderElement.offsetTop < muteButtonElement.offsetTop == 'true') OK
-

Deleted: trunk/LayoutTests/media/video-controls-rendering-toggle-display-none.html (113640 => 113641)


--- trunk/LayoutTests/media/video-controls-rendering-toggle-display-none.html	2012-04-09 23:45:43 UTC (rev 113640)
+++ trunk/LayoutTests/media/video-controls-rendering-toggle-display-none.html	2012-04-09 23:49:28 UTC (rev 113641)
@@ -1,70 +0,0 @@
-<html>
-<head>
-    <title>Test rendering of volume slider of video tag</title>
-    <script src=""
-    <script src=""
-    <script src=""
-    <script>
-        var video;
-        var panel;
-        var threshold = 2;
-
-        var muteButtonCoordinates;
-        var volumeSliderCoordinates;
-
-        var volumeSliderElement;
-        var muteButtonElement;
-
-        function init()
-        {
-            video = document.getElementsByTagName("video")[0];
-            video.src = "" "content/test");
-        }
-
-        function test()
-        {
-            if (window.eventSender) {
-                try {
-                    muteButtonCoordinates = mediaControlsButtonCoordinates(video, "mute-button");
-                    volumeSliderCoordinates = mediaControlsButtonCoordinates(video, "volume-slider-container");
-                } catch (exception) {
-                    layoutTestController.notifyDone();
-                    return;
-                }
-
-                eventSender.mouseMoveTo(muteButtonCoordinates[0], muteButtonCoordinates[1]);
-            }
-
-            panel = mediaControlsElement(internals.shadowRoot(video).firstChild, "-webkit-media-controls-panel");
-            volumeSliderElement = mediaControlsElement(internals.shadowRoot(video).firstChild, "-webkit-media-controls-volume-slider-container");
-            muteButtonElement = mediaControlsElement(internals.shadowRoot(video).firstChild, "-webkit-media-controls-mute-button");
-
-
-            // Ensure paint with display property set to "none".
-            panel.style.display = "none";
-            document.body.offsetTop;
-
-            // Ensure (re)paint with default display property.
-            panel.style.removeProperty("display");
-            document.body.offsetTop;
-
-            // Test that the left offset of both controls is equal.
-            consoleWrite("");
-            consoleWrite("** The volume slider should have almost the same left offset as the mute button **");
-            testExpected("volumeSliderElement.offsetLeft >= muteButtonElement.offsetLeft - threshold", true);
-            testExpected("volumeSliderElement.offsetLeft <= muteButtonElement.offsetLeft + threshold", true);
-
-            consoleWrite("");
-            consoleWrite("** The volume slider should be on top of the mute button **");
-            testExpected("volumeSliderElement.offsetTop < muteButtonElement.offsetTop", true);
-
-            layoutTestController.notifyDone();
-        }
-    </script>
-</head>
-<body _onload_="init()">
-    Tests that the video controls are properly rendered when the display none is set and unset.<br>
-
-    <video _oncanplaythrough_="test()" controls preload="true"></video>
-</body>
-</html>

Modified: trunk/Source/WebCore/ChangeLog (113640 => 113641)


--- trunk/Source/WebCore/ChangeLog	2012-04-09 23:45:43 UTC (rev 113640)
+++ trunk/Source/WebCore/ChangeLog	2012-04-09 23:49:28 UTC (rev 113641)
@@ -1,3 +1,32 @@
+2012-04-09  Sheriff Bot  <[email protected]>
+
+        Unreviewed, rolling out r113609.
+        http://trac.webkit.org/changeset/113609
+        https://bugs.webkit.org/show_bug.cgi?id=83522
+
+        it broke tests (Requested by dethbakin on #webkit).
+
+        * css/mediaControlsChromium.css:
+        (audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel):
+        (audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button):
+        (audio::-webkit-media-controls-volume-slider-container, video::-webkit-media-controls-volume-slider-container):
+        * css/mediaControlsQuickTime.css:
+        (audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button):
+        (audio::-webkit-media-controls-volume-slider-container, video::-webkit-media-controls-volume-slider-container):
+        (audio::-webkit-media-controls-volume-slider-mute-button, video::-webkit-media-controls-volume-slider-mute-button):
+        * html/shadow/MediaControlElements.cpp:
+        (RenderMediaVolumeSliderContainer):
+        (WebCore):
+        (WebCore::RenderMediaVolumeSliderContainer::RenderMediaVolumeSliderContainer):
+        (WebCore::RenderMediaVolumeSliderContainer::layout):
+        (WebCore::MediaControlVolumeSliderContainerElement::createRenderer):
+        * html/shadow/MediaControlElements.h:
+        (MediaControlVolumeSliderContainerElement):
+        * html/shadow/MediaControlRootElement.cpp:
+        (WebCore::MediaControlRootElement::create):
+        * html/shadow/MediaControlRootElementChromium.cpp:
+        (WebCore::MediaControlRootElementChromium::create):
+
 2012-04-09  Dana Jansens  <[email protected]>
 
         [chromium] Make culling work with clipped rects

Modified: trunk/Source/WebCore/css/mediaControlsChromium.css (113640 => 113641)


--- trunk/Source/WebCore/css/mediaControlsChromium.css	2012-04-09 23:45:43 UTC (rev 113640)
+++ trunk/Source/WebCore/css/mediaControlsChromium.css	2012-04-09 23:49:28 UTC (rev 113641)
@@ -41,7 +41,6 @@
 
 audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel {
     -webkit-user-select: none;
-    -webkit-box-pack: end;
     position: relative;
     overflow: visible;
     bottom: 0;
@@ -55,13 +54,9 @@
     bottom: 0px;
 }
 
-audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel {
-    -webkit-box-align: end;
-}
-
 audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button {
     -webkit-appearance: media-mute-button;
-    position: relative;
+    position: absolute;
     top: auto;
     bottom: 0;
     right: 0;
@@ -154,7 +149,7 @@
 
 audio::-webkit-media-controls-volume-slider-container, video::-webkit-media-controls-volume-slider-container {
     -webkit-appearance: media-volume-slider-container;
-    position: relative;
+    position: absolute;
 
     width: 34px;
     height: 100px;

Modified: trunk/Source/WebCore/css/mediaControlsQuickTime.css (113640 => 113641)


--- trunk/Source/WebCore/css/mediaControlsQuickTime.css	2012-04-09 23:45:43 UTC (rev 113640)
+++ trunk/Source/WebCore/css/mediaControlsQuickTime.css	2012-04-09 23:49:28 UTC (rev 113641)
@@ -48,9 +48,6 @@
     margin-left: 2px;
     margin-right: 9px;
     border: none !important;
-
-    position: relative;
-    z-index: 2;
 }
 
 audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-button {
@@ -203,8 +200,8 @@
     -webkit-appearance: media-volume-slider-container;
     position: absolute;
 
-    bottom: 0px;
-    z-index: 1;
+    top: 0;
+    left: 0;
 
     width: 22px;
     height: 114px;
@@ -221,3 +218,16 @@
     width: 10px;
     height: 80px;
 }
+
+audio::-webkit-media-controls-volume-slider-mute-button, video::-webkit-media-controls-volume-slider-mute-button {
+    -webkit-appearance: media-volume-slider-mute-button;
+    display: inline;
+    position: absolute;
+
+    bottom: 5px;
+    left: 4px;
+
+    width: 14px;
+    height: 12px;
+    border: none !important;
+} 

Modified: trunk/Source/WebCore/html/shadow/MediaControlElements.cpp (113640 => 113641)


--- trunk/Source/WebCore/html/shadow/MediaControlElements.cpp	2012-04-09 23:45:43 UTC (rev 113640)
+++ trunk/Source/WebCore/html/shadow/MediaControlElements.cpp	2012-04-09 23:49:28 UTC (rev 113641)
@@ -320,6 +320,34 @@
 
 // ----------------------------
 
+class RenderMediaVolumeSliderContainer : public RenderBlock {
+public:
+    RenderMediaVolumeSliderContainer(Node*);
+
+private:
+    virtual void layout();
+};
+
+RenderMediaVolumeSliderContainer::RenderMediaVolumeSliderContainer(Node* node)
+    : RenderBlock(node)
+{
+}
+
+void RenderMediaVolumeSliderContainer::layout()
+{
+    RenderBlock::layout();
+    if (style()->display() == NONE || !previousSibling() || !previousSibling()->isBox())
+        return;
+
+    RenderBox* buttonBox = toRenderBox(previousSibling());
+
+    LayoutStateDisabler layoutStateDisabler(view());
+
+    LayoutPoint offset = theme()->volumeSliderOffsetFromMuteButton(buttonBox, size());
+    setX(offset.x() + buttonBox->offsetLeft());
+    setY(offset.y() + buttonBox->offsetTop());
+}
+
 inline MediaControlVolumeSliderContainerElement::MediaControlVolumeSliderContainerElement(Document* document)
     : MediaControlElement(document)
 {
@@ -332,6 +360,11 @@
     return element.release();
 }
 
+RenderObject* MediaControlVolumeSliderContainerElement::createRenderer(RenderArena* arena, RenderStyle*)
+{
+    return new (arena) RenderMediaVolumeSliderContainer(this);
+}
+
 void MediaControlVolumeSliderContainerElement::defaultEventHandler(Event* event)
 {
     if (!event->isMouseEvent() || event->type() != eventNames().mouseoutEvent)

Modified: trunk/Source/WebCore/html/shadow/MediaControlElements.h (113640 => 113641)


--- trunk/Source/WebCore/html/shadow/MediaControlElements.h	2012-04-09 23:45:43 UTC (rev 113640)
+++ trunk/Source/WebCore/html/shadow/MediaControlElements.h	2012-04-09 23:49:28 UTC (rev 113641)
@@ -159,6 +159,7 @@
 
 private:
     MediaControlVolumeSliderContainerElement(Document*);
+    virtual RenderObject* createRenderer(RenderArena*, RenderStyle*);
     virtual void defaultEventHandler(Event*);
     virtual MediaControlElementType displayType() const;
     virtual const AtomicString& shadowPseudoId() const;

Modified: trunk/Source/WebCore/html/shadow/MediaControlRootElement.cpp (113640 => 113641)


--- trunk/Source/WebCore/html/shadow/MediaControlRootElement.cpp	2012-04-09 23:45:43 UTC (rev 113640)
+++ trunk/Source/WebCore/html/shadow/MediaControlRootElement.cpp	2012-04-09 23:49:28 UTC (rev 113641)
@@ -173,8 +173,11 @@
     controls->m_fullScreenButton = fullScreenButton.get();
     panel->appendChild(fullScreenButton.release(), ec, true);
 
-    // The mute button and the slider element should be in the same div.
-    RefPtr<HTMLDivElement> panelVolumeControlContainer = HTMLDivElement::create(document);
+    RefPtr<MediaControlPanelMuteButtonElement> panelMuteButton = MediaControlPanelMuteButtonElement::create(document, controls.get());
+    controls->m_panelMuteButton = panelMuteButton.get();
+    panel->appendChild(panelMuteButton.release(), ec, true);
+    if (ec)
+        return 0;
 
     if (document->page()->theme()->usesMediaControlVolumeSlider()) {
         RefPtr<MediaControlVolumeSliderContainerElement> volumeSliderContainer = MediaControlVolumeSliderContainerElement::create(document);
@@ -185,22 +188,18 @@
         if (ec)
             return 0;
 
+        RefPtr<MediaControlVolumeSliderMuteButtonElement> volumeSliderMuteButton = MediaControlVolumeSliderMuteButtonElement::create(document);
+        controls->m_volumeSliderMuteButton = volumeSliderMuteButton.get();
+        volumeSliderContainer->appendChild(volumeSliderMuteButton.release(), ec, true);
+        if (ec)
+            return 0;
+
         controls->m_volumeSliderContainer = volumeSliderContainer.get();
-        panelVolumeControlContainer->appendChild(volumeSliderContainer.release(), ec, true);
+        panel->appendChild(volumeSliderContainer.release(), ec, true);
         if (ec)
             return 0;
     }
 
-    RefPtr<MediaControlPanelMuteButtonElement> panelMuteButton = MediaControlPanelMuteButtonElement::create(document, controls.get());
-    controls->m_panelMuteButton = panelMuteButton.get();
-    panelVolumeControlContainer->appendChild(panelMuteButton.release(), ec, true);
-    if (ec)
-        return 0;
-
-    panel->appendChild(panelVolumeControlContainer, ec, true);
-    if (ec)
-        return 0;
-
     // FIXME: Only create when needed <http://webkit.org/b/57163>
     RefPtr<MediaControlFullscreenVolumeMinButtonElement> fullScreenMinVolumeButton = MediaControlFullscreenVolumeMinButtonElement::create(document);
     controls->m_fullScreenMinVolumeButton = fullScreenMinVolumeButton.get();

Modified: trunk/Source/WebCore/html/shadow/MediaControlRootElementChromium.cpp (113640 => 113641)


--- trunk/Source/WebCore/html/shadow/MediaControlRootElementChromium.cpp	2012-04-09 23:45:43 UTC (rev 113640)
+++ trunk/Source/WebCore/html/shadow/MediaControlRootElementChromium.cpp	2012-04-09 23:49:28 UTC (rev 113641)
@@ -106,7 +106,11 @@
     if (ec)
         return 0;
 
-    RefPtr<HTMLDivElement> panelVolumeControlContainer = HTMLDivElement::create(document);
+    RefPtr<MediaControlPanelMuteButtonElement> panelMuteButton = MediaControlPanelMuteButtonElement::create(document, controls.get());
+    controls->m_panelMuteButton = panelMuteButton.get();
+    panel->appendChild(panelMuteButton.release(), ec, true);
+    if (ec)
+        return 0;
 
     RefPtr<MediaControlVolumeSliderContainerElement> volumeSliderContainer = MediaControlVolumeSliderContainerElement::create(document);
 
@@ -117,20 +121,10 @@
         return 0;
 
     controls->m_volumeSliderContainer = volumeSliderContainer.get();
-    panelVolumeControlContainer->appendChild(volumeSliderContainer.release(), ec, true);
+    panel->appendChild(volumeSliderContainer.release(), ec, true);
     if (ec)
         return 0;
 
-    RefPtr<MediaControlPanelMuteButtonElement> panelMuteButton = MediaControlPanelMuteButtonElement::create(document, controls.get());
-    controls->m_panelMuteButton = panelMuteButton.get();
-    panelVolumeControlContainer->appendChild(panelMuteButton.release(), ec, true);
-    if (ec)
-        return 0;
-
-    panel->appendChild(panelVolumeControlContainer, ec, true);
-    if (ec)
-        return 0;
-
     controls->m_panel = panel.get();
     controls->appendChild(panel.release(), ec, true);
     if (ec)
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to