2009-07-10 Eric Carlson <eric.carlson@apple.com>
authoreric.carlson@apple.com <eric.carlson@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 11 Jul 2009 04:02:22 +0000 (04:02 +0000)
committereric.carlson@apple.com <eric.carlson@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 11 Jul 2009 04:02:22 +0000 (04:02 +0000)
        Reviewed by Simon Fraser.

        <rdar://problem/7049066>.
        Update SnowLeopard media controller layout.

        * css/mediaControlsQT.css:
            Update for new layout.
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::movieLoadType):
            Added to replace isStreaming.
        * html/HTMLMediaElement.h:
            Declare movieLoadType, remove isStreaming.

        * rendering/MediaControlElements.cpp:
        (WebCore::MediaControlStatusDisplayElement::update):
            Use movieLoadType instead of isStreaming.
        (WebCore::MediaControlTimelineContainerElement::rendererIsNeeded):
            MediaControlElement is the base class, not HTMLInputElement.
        (WebCore::MediaControlStatusDisplayElement::rendererIsNeeded):
            Ditto.
        (WebCore::MediaControlRewindButtonElement::rendererIsNeeded):
            Don't display rewind button for live streams.
        (WebCore::MediaControlReturnToRealtimeButtonElement::rendererIsNeeded):
            MediaControlInputElement is the base class, not HTMLInputElement.
        * rendering/MediaControlElements.h:

        * rendering/RenderThemeMac.h:
        * rendering/RenderThemeMac.mm:
        (WebCore::getMediaUIPartStateFlags):
            New, return wkDrawMediaUIPart flags.
        (WebCore::RenderThemeMac::paintMediaFullscreenButton):
        (WebCore::RenderThemeMac::paintMediaMuteButton):
        (WebCore::RenderThemeMac::paintMediaPlayButton):
        (WebCore::RenderThemeMac::paintMediaSeekBackButton):
        (WebCore::RenderThemeMac::paintMediaSeekForwardButton):
        (WebCore::RenderThemeMac::paintMediaSliderTrack):
        (WebCore::RenderThemeMac::paintMediaSliderThumb):
        (WebCore::RenderThemeMac::paintMediaRewindButton):
        (WebCore::RenderThemeMac::paintMediaReturnToRealtimeButton):
        (WebCore::RenderThemeMac::paintMediaControlsBackground):
        (WebCore::RenderThemeMac::paintMediaCurrentTime):
        (WebCore::RenderThemeMac::paintMediaTimeRemaining):
            Use getMediaUIPartStateFlags.

2009-07-10  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Simon Fraser.

        Update WebKitSystemInterface for <rdar://problem/7049066>.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceSnowLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

2009-07-10  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Simon Fraser.

        <rdar://problem/7049066>.
        Update media tests for new SnowLeopard controller layout.

        * platform/mac/media/controls-after-reload-expected.txt:
        * platform/mac/media/controls-styling-expected.txt:
        * platform/mac/media/video-empty-source-expected.txt:
        * platform/mac/media/video-zoom-controls-expected.txt:

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

18 files changed:
LayoutTests/ChangeLog
LayoutTests/platform/mac/media/controls-after-reload-expected.txt
LayoutTests/platform/mac/media/controls-styling-expected.txt
LayoutTests/platform/mac/media/video-empty-source-expected.txt
LayoutTests/platform/mac/media/video-zoom-controls-expected.txt
WebCore/ChangeLog
WebCore/css/mediaControlsQT.css
WebCore/html/HTMLMediaElement.cpp
WebCore/html/HTMLMediaElement.h
WebCore/rendering/MediaControlElements.cpp
WebCore/rendering/MediaControlElements.h
WebCore/rendering/RenderThemeMac.h
WebCore/rendering/RenderThemeMac.mm
WebKitLibraries/ChangeLog
WebKitLibraries/WebKitSystemInterface.h
WebKitLibraries/libWebKitSystemInterfaceLeopard.a
WebKitLibraries/libWebKitSystemInterfaceSnowLeopard.a
WebKitLibraries/libWebKitSystemInterfaceTiger.a

index c03520f8f0997ec80c4de436a5c79f2d449aa01d..040878ff1046d8dcf6209ca2cb79c9ea9cde604f 100644 (file)
@@ -1,3 +1,15 @@
+2009-07-10  Eric Carlson  <eric.carlson@apple.com>
+
+        Reviewed by Simon Fraser.
+
+        <rdar://problem/7049066>.
+        Update media tests for new SnowLeopard controller layout.
+
+        * platform/mac/media/controls-after-reload-expected.txt:
+        * platform/mac/media/controls-styling-expected.txt:
+        * platform/mac/media/video-empty-source-expected.txt:
+        * platform/mac/media/video-zoom-controls-expected.txt:
+
 2009-07-10  Peter Kasting  <pkasting@google.com>
 
         https://bugs.webkit.org/show_bug.cgi?id=19562
index 3a3277079f0117fc50bbf0c98d6edb42a9ad8dba..490bfb55d2fde2a5f0f5d74148885186cdd4f6df 100644 (file)
@@ -16,19 +16,19 @@ layer at (8,42) size 320x240
   RenderBlock (relative positioned) {DIV} at (0,0) size 320x240
 layer at (8,257) size 320x25
   RenderFlexibleBox (positioned) {DIV} at (0,215) size 320x25
-    RenderButton {INPUT} at (7,4) size 16x16
-    RenderButton {INPUT} at (297,4) size 16x16
-    RenderButton {INPUT} at (37,4) size 16x16
-    RenderFlexibleBox {DIV} at (60,6) size 230x13
-      RenderSlider {INPUT} at (45,0) size 140x13
-        RenderBlock {DIV} at (0,2) size 11x9
-layer at (68,263) size 45x13
-  RenderFlexibleBox {DIV} at (0,0) size 45x13
+    RenderButton {INPUT} at (6,3) size 18x18
+    RenderButton {INPUT} at (297,5) size 15x14
+    RenderButton {INPUT} at (32,4) size 16x16
+    RenderFlexibleBox {DIV} at (49,4) size 246x17
+      RenderSlider {INPUT} at (45,4) size 156x13
+        RenderBlock {DIV} at (0,1) size 12x10
+layer at (57,263) size 45x13
+  RenderFlexibleBox {DIV} at (0,2) size 45x13 [color=#FFFFFF]
     RenderBlock (anonymous) at (9,1) size 26x11
       RenderText {#text} at (0,0) size 26x11
         text run at (0,0) width 26: "00:00"
-layer at (253,263) size 45x13
-  RenderFlexibleBox {DIV} at (185,0) size 45x13
+layer at (258,263) size 45x13 scrollHeight 14
+  RenderFlexibleBox {DIV} at (201,2) size 45x13 [color=#FFFFFF]
     RenderBlock (anonymous) at (6,1) size 32x11
       RenderText {#text} at (0,0) size 32x11
         text run at (0,0) width 32: "-00:06"
index fdaf53f0c1d61d6a2cafb55d24e954674e54592a..acc5291edab5d324283e89105d2e4c8633fe3fd7 100644 (file)
@@ -20,19 +20,19 @@ layer at (18,42) size 320x240
   RenderBlock (relative positioned) {DIV} at (0,0) size 320x240
 layer at (18,257) size 320x25
   RenderFlexibleBox (positioned) {DIV} at (0,215) size 320x25
-    RenderButton {INPUT} at (7,4) size 16x16
-    RenderButton {INPUT} at (297,4) size 16x16
-    RenderButton {INPUT} at (37,4) size 16x16
-    RenderFlexibleBox {DIV} at (60,6) size 230x13
-      RenderSlider {INPUT} at (45,0) size 140x13
-        RenderBlock {DIV} at (0,2) size 11x9
-layer at (78,263) size 45x13
-  RenderFlexibleBox {DIV} at (0,0) size 45x13 [color=#000000]
+    RenderButton {INPUT} at (6,3) size 18x18
+    RenderButton {INPUT} at (297,5) size 15x14
+    RenderButton {INPUT} at (32,4) size 16x16
+    RenderFlexibleBox {DIV} at (49,4) size 246x17
+      RenderSlider {INPUT} at (45,4) size 156x13
+        RenderBlock {DIV} at (0,1) size 12x10
+layer at (67,263) size 45x13
+  RenderFlexibleBox {DIV} at (0,2) size 45x13 [color=#FFFFFF]
     RenderBlock (anonymous) at (9,1) size 26x11
       RenderText {#text} at (0,0) size 26x11
         text run at (0,0) width 26: "00:00"
-layer at (263,263) size 45x13
-  RenderFlexibleBox {DIV} at (185,0) size 45x13 [color=#000000]
+layer at (268,263) size 45x13 scrollHeight 14
+  RenderFlexibleBox {DIV} at (201,2) size 45x13 [color=#FFFFFF]
     RenderBlock (anonymous) at (6,1) size 32x11
       RenderText {#text} at (0,0) size 32x11
         text run at (0,0) width 32: "-00:06"
@@ -40,19 +40,19 @@ layer at (8,282) size 320x240
   RenderBlock (relative positioned) {DIV} at (0,0) size 320x240
 layer at (8,497) size 320x25
   RenderFlexibleBox (positioned) {DIV} at (0,215) size 320x25
-    RenderButton {INPUT} at (7,4) size 16x16
-    RenderButton {INPUT} at (297,4) size 16x16
-    RenderButton {INPUT} at (37,4) size 16x16
-    RenderFlexibleBox {DIV} at (60,6) size 230x13
-      RenderSlider {INPUT} at (45,0) size 140x13
-        RenderBlock {DIV} at (0,2) size 11x9
-layer at (68,503) size 45x13
-  RenderFlexibleBox {DIV} at (0,0) size 45x13
+    RenderButton {INPUT} at (6,3) size 18x18
+    RenderButton {INPUT} at (297,5) size 15x14
+    RenderButton {INPUT} at (32,4) size 16x16
+    RenderFlexibleBox {DIV} at (49,4) size 246x17
+      RenderSlider {INPUT} at (45,4) size 156x13
+        RenderBlock {DIV} at (0,1) size 12x10
+layer at (57,503) size 45x13
+  RenderFlexibleBox {DIV} at (0,2) size 45x13 [color=#FFFFFF]
     RenderBlock (anonymous) at (9,1) size 26x11
       RenderText {#text} at (0,0) size 26x11
         text run at (0,0) width 26: "00:00"
-layer at (253,503) size 45x13
-  RenderFlexibleBox {DIV} at (185,0) size 45x13
+layer at (258,503) size 45x13 scrollHeight 14
+  RenderFlexibleBox {DIV} at (201,2) size 45x13 [color=#FFFFFF]
     RenderBlock (anonymous) at (6,1) size 32x11
       RenderText {#text} at (0,0) size 32x11
         text run at (0,0) width 32: "-00:06"
index 4948fec55b219ca0f028a995655631e15b5f566a..c70f5ca18c1d21bdd8ad9a26556b5107a42b5d06 100644 (file)
@@ -16,6 +16,6 @@ layer at (9,43) size 300x150
   RenderBlock (relative positioned) {DIV} at (1,1) size 300x150
 layer at (9,168) size 300x25
   RenderFlexibleBox (positioned) {DIV} at (0,125) size 300x25
-    RenderButton {INPUT} at (7,4) size 16x16
-    RenderButton {INPUT} at (277,4) size 16x16
-    RenderButton {INPUT} at (37,4) size 16x16
+    RenderButton {INPUT} at (6,3) size 18x18
+    RenderButton {INPUT} at (277,5) size 15x14
+    RenderButton {INPUT} at (32,4) size 16x16
index be28ef602b948887f6414976c3ae4ee9abf60288..53710c155d7d0d928c46c293cc1533712eadc83b 100644 (file)
@@ -12,21 +12,21 @@ layer at (57,85) size 240x180
   RenderBlock (relative positioned) {DIV} at (0,0) size 240x180
 layer at (57,228) size 240x37
   RenderFlexibleBox (positioned) {DIV} at (0,143) size 240x37
-    RenderButton {INPUT} at (10,6) size 24x24
-    RenderButton {INPUT} at (206,6) size 24x24
-    RenderButton {INPUT} at (54,6) size 24x24
-    RenderFlexibleBox {DIV} at (88,9) size 108x19
-      RenderSlider {INPUT} at (0,0) size 108x19
-        RenderBlock {DIV} at (0,9) size 0x0
+    RenderButton {INPUT} at (9,4) size 27x27
+    RenderButton {INPUT} at (206,8) size 22x21
+    RenderButton {INPUT} at (48,6) size 24x24
+    RenderFlexibleBox {DIV} at (73,6) size 130x25
+      RenderSlider {INPUT} at (0,6) size 130x19
+        RenderBlock {DIV} at (0,2) size 18x15
 layer at (57,310) size 240x180
   RenderVideo {VIDEO} at (45,298) size 240x180
 layer at (57,310) size 240x180
   RenderBlock (relative positioned) {DIV} at (0,0) size 240x180
 layer at (57,453) size 240x37
   RenderFlexibleBox (positioned) {DIV} at (0,143) size 240x37
-    RenderButton {INPUT} at (10,6) size 24x24
-    RenderButton {INPUT} at (206,6) size 24x24
-    RenderButton {INPUT} at (54,6) size 24x24
-    RenderFlexibleBox {DIV} at (88,9) size 108x19
-      RenderSlider {INPUT} at (0,0) size 108x19
-        RenderBlock {DIV} at (0,9) size 0x0
+    RenderButton {INPUT} at (9,4) size 27x27
+    RenderButton {INPUT} at (206,8) size 22x21
+    RenderButton {INPUT} at (48,6) size 24x24
+    RenderFlexibleBox {DIV} at (73,6) size 130x25
+      RenderSlider {INPUT} at (0,6) size 130x19
+        RenderBlock {DIV} at (0,2) size 18x15
index d8a5a2c6ed9819c234d9041eb86868d186243b72..2d2fd34a97b01fa562f83ceeaa0fd71ff5a5e2ae 100644 (file)
@@ -1,3 +1,49 @@
+2009-07-10  Eric Carlson  <eric.carlson@apple.com>
+
+        Reviewed by Simon Fraser.
+
+        <rdar://problem/7049066>.
+        Update SnowLeopard media controller layout.
+
+        * css/mediaControlsQT.css:
+            Update for new layout.
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::movieLoadType):
+            Added to replace isStreaming.
+        * html/HTMLMediaElement.h:
+            Declare movieLoadType, remove isStreaming.
+
+        * rendering/MediaControlElements.cpp:
+        (WebCore::MediaControlStatusDisplayElement::update):
+            Use movieLoadType instead of isStreaming.
+        (WebCore::MediaControlTimelineContainerElement::rendererIsNeeded):
+            MediaControlElement is the base class, not HTMLInputElement.
+        (WebCore::MediaControlStatusDisplayElement::rendererIsNeeded):
+            Ditto.
+        (WebCore::MediaControlRewindButtonElement::rendererIsNeeded):
+            Don't display rewind button for live streams.
+        (WebCore::MediaControlReturnToRealtimeButtonElement::rendererIsNeeded):
+            MediaControlInputElement is the base class, not HTMLInputElement.
+        * rendering/MediaControlElements.h:
+
+        * rendering/RenderThemeMac.h:
+        * rendering/RenderThemeMac.mm:
+        (WebCore::getMediaUIPartStateFlags):
+            New, return wkDrawMediaUIPart flags.
+        (WebCore::RenderThemeMac::paintMediaFullscreenButton):
+        (WebCore::RenderThemeMac::paintMediaMuteButton):
+        (WebCore::RenderThemeMac::paintMediaPlayButton):
+        (WebCore::RenderThemeMac::paintMediaSeekBackButton):
+        (WebCore::RenderThemeMac::paintMediaSeekForwardButton):
+        (WebCore::RenderThemeMac::paintMediaSliderTrack):
+        (WebCore::RenderThemeMac::paintMediaSliderThumb):
+        (WebCore::RenderThemeMac::paintMediaRewindButton):
+        (WebCore::RenderThemeMac::paintMediaReturnToRealtimeButton):
+        (WebCore::RenderThemeMac::paintMediaControlsBackground):
+        (WebCore::RenderThemeMac::paintMediaCurrentTime):
+        (WebCore::RenderThemeMac::paintMediaTimeRemaining):
+            Use getMediaUIPartStateFlags.
+
 2009-07-10  Michelangelo De Simone  <micdesim@gmail.com>
 
         Reviewed by Adele Peterson.
index efda4d7247a7905e77bae7958eede20be76b0bce..a9b7a5f3b0b3acc73990d4a5cdd88ba918328a55 100644 (file)
@@ -41,17 +41,17 @@ video:-webkit-full-page-media::-webkit-media-controls-panel {
 
 audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button {
     -webkit-box-ordinal-group: 2; /* Before the fullscreen button */
-    width: 16px;
-    height: 16px;
-    margin-left: 7px;
-    margin-right: 7px;
+    width: 15px;
+    height: 14px;
+    margin-left: 2px;
+    margin-right: 8px;
 }
 
 audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-button {
     width: 16px;
     height: 16px;
-    margin-left: 7px;
-    margin-right: 7px;
+    margin-left: 6px;
+    margin-right: 1px;
 }
 
 audio::-webkit-media-controls-timeline-container, video::-webkit-media-controls-timeline-container {
@@ -65,7 +65,6 @@ audio::-webkit-media-controls-timeline-container, video::-webkit-media-controls-
 }
 
 audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display {
-    -webkit-appearance: media-current-time-display;
     -webkit-user-select: none;
     display: -webkit-box;
     -webkit-box-flex: 0;
@@ -77,19 +76,18 @@ audio::-webkit-media-controls-current-time-display, video::-webkit-media-control
     overflow: hidden;
     height: 13px;
     width: 45px;
+    color: white;
+    text-shadow: black 0px 1px 1px;
 
-    color: black;
     letter-spacing: normal;
     word-spacing: normal;
     line-height: normal;
     text-transform: none;
     text-indent: 0;
-    text-shadow: none;
     text-decoration: none;
 }
 
 audio::-webkit-media-controls-time-remaining-display, video::-webkit-media-controls-time-remaining-display {
-    -webkit-appearance: media-time-remaining-display;
     -webkit-user-select: none;
     display: -webkit-box;
     -webkit-box-flex: 0;
@@ -101,14 +99,14 @@ audio::-webkit-media-controls-time-remaining-display, video::-webkit-media-contr
     overflow: hidden;
     height: 13px;
     width: 45px;
+    color: white;
+    text-shadow: black 0px 1px 1px;
 
-    color: black;
     letter-spacing: normal;
     word-spacing: normal;
     line-height: normal;
     text-transform: none;
     text-indent: 0;
-    text-shadow: none;
     text-decoration: none;
 }
 
@@ -118,6 +116,7 @@ audio::-webkit-media-controls-timeline, video::-webkit-media-controls-timeline {
     height: 13px;
     padding: 0px;
     margin: 0px;
+    margin-top: 4px;
 }
 
 audio::-webkit-media-controls-seek-back-button, video::-webkit-media-controls-seek-back-button {
@@ -139,25 +138,27 @@ audio::-webkit-media-controls-fullscreen-button, video::-webkit-media-controls-f
 }
 
 audio::-webkit-media-controls-rewind-button, video::-webkit-media-controls-rewind-button {
-    -webkit-appearance: media-rewind-button;
     display: -webkit-box;
-    width: 16px;
-    height: 16px;
-    margin-left: 7px;
-    margin-right: 7px;
+    -webkit-appearance: media-rewind-button;
+    width: 18px;
+    height: 18px;
+    margin-bottom: 1px;
+    margin-left: 6px;
+    margin-right: 2px;
 }
 
 audio::-webkit-media-controls-return-to-realtime-button, video::-webkit-media-controls-return-to-realtime-button {
+    display: none;
     -webkit-appearance: media-return-to-realtime-button;
-    display: -webkit-box;
     width: 16px;
-    height: 16px;
-    margin-left: 7px;
-    margin-right: 7px;
+    height: 11px;
+    margin-left: 6px;
+    margin-right: 2px;
 }
 
 audio::-webkit-media-controls-status-display, video::-webkit-media-controls-status-display {
     -webkit-user-select: none;
+    cursor: default;
     display: -webkit-box;
     -webkit-box-flex: 1;
     font: -webkit-small-control;
@@ -165,7 +166,7 @@ audio::-webkit-media-controls-status-display, video::-webkit-media-controls-stat
     font-size: 10px;
     line-height: 13px;
     overflow: hidden;
-    text-shadow: 1px 1px 0px black;
+    text-shadow: black 0px 1px 1px;
     margin-left: 10px;
     margin-right: 10px;
 
index 2653e83200bbbfeffc77c2ff562c3f4ac32175a3..716a59264d4c7d29aad1a05bc321da684feacce6 100644 (file)
@@ -901,10 +901,9 @@ HTMLMediaElement::ReadyState HTMLMediaElement::readyState() const
     return m_readyState;
 }
 
-bool HTMLMediaElement::isStreaming() const
+MediaPlayer::MovieLoadType HTMLMediaElement::movieLoadType() const
 {
-    MediaPlayer::MovieLoadType loadType = m_player ? m_player->movieLoadType() : MediaPlayer::Unknown;
-    return loadType == MediaPlayer::LiveStream;
+    return m_player ? m_player->movieLoadType() : MediaPlayer::Unknown;
 }
 
 bool HTMLMediaElement::seeking() const
index ff7b953daea063eeb979440094e462d4f1e6b82f..78222821eed136cbea456c12c419400bd52b1408 100644 (file)
@@ -78,6 +78,8 @@ public:
     // Pauses playback without changing any states or generating events
     void setPausedInternal(bool);
     
+    MediaPlayer::MovieLoadType movieLoadType() const;
+    
     bool inActiveDocument() const { return m_inActiveDocument; }
     
 // DOM API
@@ -98,8 +100,6 @@ public:
     void load(ExceptionCode&);
     String canPlayType(const String& mimeType) const;
 
-    bool isStreaming() const;
-
 // ready state
     enum ReadyState { HAVE_NOTHING, HAVE_METADATA, HAVE_CURRENT_DATA, HAVE_FUTURE_DATA, HAVE_ENOUGH_DATA };
     ReadyState readyState() const;
index 83395866832778d2a227c9b61ac6f42e20545dc2..74293e030a14cf1569e9c53098212fd32993b2a6 100644 (file)
@@ -172,7 +172,7 @@ MediaControlTimelineContainerElement::MediaControlTimelineContainerElement(Docum
 
 bool MediaControlTimelineContainerElement::rendererIsNeeded(RenderStyle* style)
 {
-    if (!HTMLDivElement::rendererIsNeeded(style))
+    if (!MediaControlElement::rendererIsNeeded(style))
         return false;
 
     // This is for MediaControllerThemeClassic:
@@ -203,7 +203,7 @@ void MediaControlStatusDisplayElement::update()
 
     if (m_mediaElement->readyState() != HTMLMediaElement::HAVE_ENOUGH_DATA && !m_mediaElement->currentSrc().isEmpty())
         newStateToDisplay = Loading;
-    else if (m_mediaElement->isStreaming())
+    else if (m_mediaElement->movieLoadType() == MediaPlayer::LiveStream)
         newStateToDisplay = LiveBroadcast;
 
     // Propagate only if needed.
@@ -227,7 +227,7 @@ void MediaControlStatusDisplayElement::update()
 
 bool MediaControlStatusDisplayElement::rendererIsNeeded(RenderStyle* style)
 {
-    if (!HTMLDivElement::rendererIsNeeded(style))
+    if (!MediaControlElement::rendererIsNeeded(style))
         return false;
     float duration = m_mediaElement->duration();
     return (isnan(duration) || isinf(duration));
@@ -446,6 +446,12 @@ void MediaControlRewindButtonElement::defaultEventHandler(Event* event)
     HTMLInputElement::defaultEventHandler(event);
 }
 
+bool MediaControlRewindButtonElement::rendererIsNeeded(RenderStyle* style)
+{
+    return MediaControlInputElement::rendererIsNeeded(style) && m_mediaElement->movieLoadType() != MediaPlayer::LiveStream;
+}
+
+
 // ----------------------------
 
 MediaControlReturnToRealtimeButtonElement::MediaControlReturnToRealtimeButtonElement(Document* doc, HTMLMediaElement* element)
@@ -464,7 +470,7 @@ void MediaControlReturnToRealtimeButtonElement::defaultEventHandler(Event* event
 
 bool MediaControlReturnToRealtimeButtonElement::rendererIsNeeded(RenderStyle* style)
 {
-    return HTMLInputElement::rendererIsNeeded(style) && m_mediaElement->isStreaming();
+    return MediaControlInputElement::rendererIsNeeded(style) && m_mediaElement->movieLoadType() == MediaPlayer::LiveStream;
 }
 
 // ----------------------------
index 92e1af1e466a3473524c4596faadc90aba293037..d5fa5d2feeff367d52e0ddef76973f35b28e8a0b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008 Apple Inc. All rights reserved.
+ * Copyright (C) 2008, 2009 Apple Inc. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -179,6 +179,7 @@ class MediaControlRewindButtonElement : public MediaControlInputElement {
 public:
     MediaControlRewindButtonElement(Document*, HTMLMediaElement*);
     virtual void defaultEventHandler(Event*);
+    virtual bool rendererIsNeeded(RenderStyle*);
 };
 
 // ----------------------------
index 2e131d80a9a16e2a2e8c66fdc936d96eff947a58..85f141f609333a852424fe37249aed552d6812bb 100644 (file)
@@ -130,6 +130,7 @@ protected:
     virtual bool paintMediaCurrentTime(RenderObject*, const RenderObject::PaintInfo&, const IntRect&);
     virtual bool paintMediaTimeRemaining(RenderObject*, const RenderObject::PaintInfo&, const IntRect&);
 
+    // Media controls
     virtual String extraMediaControlsStyleSheet();
 #endif
 
index 72e0805fbf5037a5a92fe5ef716370b831b52054..01b97d6a3c546f5455dd4e9f9b310e5ac890d229 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
+ * Copyright (C) 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -1496,6 +1496,14 @@ enum WKMediaControllerThemeState {
     MediaUIPartDrawEndCapsFlag = 1 << 3,
 };
 
+static unsigned getMediaUIPartStateFlags(Node* node)
+{
+    unsigned flags = 0;
+
+    if (node->active())
+        flags |= MediaUIPartPressedFlag;
+    return flags;
+}
 
 // Utility to scale when the UI part are not scaled by wkDrawMediaUIPart
 static FloatRect getUnzoomedRectAndAdjustCurrentContext(RenderObject* o, const RenderObject::PaintInfo& paintInfo, const IntRect &originalRect)
@@ -1520,8 +1528,7 @@ bool RenderThemeMac::paintMediaFullscreenButton(RenderObject* o, const RenderObj
         return false;
 
     LocalCurrentGraphicsContext localContext(paintInfo.context);
-    wkDrawMediaUIPart(MediaFullscreenButton, mediaControllerTheme(), paintInfo.context->platformContext(), r, 
-        node->active() ? MediaUIPartPressedFlag : 0);
+    wkDrawMediaUIPart(MediaFullscreenButton, mediaControllerTheme(), paintInfo.context->platformContext(), r, getMediaUIPartStateFlags(node));
     return false;
 }
 
@@ -1534,8 +1541,7 @@ bool RenderThemeMac::paintMediaMuteButton(RenderObject* o, const RenderObject::P
 
     if (MediaControlPlayButtonElement* btn = static_cast<MediaControlPlayButtonElement*>(node)) {
         LocalCurrentGraphicsContext localContext(paintInfo.context);
-        wkDrawMediaUIPart(btn->displayType(), mediaControllerTheme(), paintInfo.context->platformContext(), r, 
-            node->active() ? MediaUIPartPressedFlag : 0);
+        wkDrawMediaUIPart(btn->displayType(), mediaControllerTheme(), paintInfo.context->platformContext(), r, getMediaUIPartStateFlags(node));
 
     }
     return false;
@@ -1550,8 +1556,7 @@ bool RenderThemeMac::paintMediaPlayButton(RenderObject* o, const RenderObject::P
 
     if (MediaControlPlayButtonElement* btn = static_cast<MediaControlPlayButtonElement*>(node)) {
         LocalCurrentGraphicsContext localContext(paintInfo.context);
-        wkDrawMediaUIPart(btn->displayType(), mediaControllerTheme(), paintInfo.context->platformContext(), r, 
-            node->active() ? MediaUIPartPressedFlag : 0);
+        wkDrawMediaUIPart(btn->displayType(), mediaControllerTheme(), paintInfo.context->platformContext(), r, getMediaUIPartStateFlags(node));
     }
     return false;
 }
@@ -1563,9 +1568,8 @@ bool RenderThemeMac::paintMediaSeekBackButton(RenderObject* o, const RenderObjec
         return false;
 
     LocalCurrentGraphicsContext localContext(paintInfo.context);
-    wkDrawMediaUIPart(MediaSeekBackButton, mediaControllerTheme(), paintInfo.context->platformContext(), r, 
-        node->active() ? MediaUIPartPressedFlag : 0);
-     return false;
+    wkDrawMediaUIPart(MediaSeekBackButton, mediaControllerTheme(), paintInfo.context->platformContext(), r, getMediaUIPartStateFlags(node));
+    return false;
 }
 
 bool RenderThemeMac::paintMediaSeekForwardButton(RenderObject* o, const RenderObject::PaintInfo& paintInfo, const IntRect& r)
@@ -1575,9 +1579,8 @@ bool RenderThemeMac::paintMediaSeekForwardButton(RenderObject* o, const RenderOb
         return false;
 
     LocalCurrentGraphicsContext localContext(paintInfo.context);
-    wkDrawMediaUIPart(MediaSeekForwardButton, mediaControllerTheme(), paintInfo.context->platformContext(), r, 
-        node->active() ? MediaUIPartPressedFlag : 0);
-     return false;
+    wkDrawMediaUIPart(MediaSeekForwardButton, mediaControllerTheme(), paintInfo.context->platformContext(), r, getMediaUIPartStateFlags(node));
+    return false;
 }
 
 bool RenderThemeMac::paintMediaSliderTrack(RenderObject* o, const RenderObject::PaintInfo& paintInfo, const IntRect& r)
@@ -1602,9 +1605,9 @@ bool RenderThemeMac::paintMediaSliderTrack(RenderObject* o, const RenderObject::
  
     paintInfo.context->save();
     FloatRect unzoomedRect = getUnzoomedRectAndAdjustCurrentContext(o, paintInfo, r);
-    bool shouldDrawEndCaps = !static_cast<RenderMedia*>(mediaElement->renderer())->shouldShowTimeDisplayControls();
     wkDrawMediaSliderTrack(mediaControllerTheme(), paintInfo.context->platformContext(), unzoomedRect, 
-        timeLoaded, currentTime, duration, shouldDrawEndCaps ? MediaUIPartDrawEndCapsFlag : 0);
+        timeLoaded, currentTime, duration, getMediaUIPartStateFlags(node));
+    
     paintInfo.context->restore();
     return false;
 }
@@ -1616,9 +1619,8 @@ bool RenderThemeMac::paintMediaSliderThumb(RenderObject* o, const RenderObject::
         return false;
 
     LocalCurrentGraphicsContext localContext(paintInfo.context);
-    wkDrawMediaUIPart(MediaSliderThumb, mediaControllerTheme(), paintInfo.context->platformContext(), r, 
-        node->active() ? MediaUIPartPressedFlag : 0);
-     return false;
+    wkDrawMediaUIPart(MediaSliderThumb, mediaControllerTheme(), paintInfo.context->platformContext(), r, getMediaUIPartStateFlags(node));
+    return false;
 }
     
 bool RenderThemeMac::paintMediaRewindButton(RenderObject* o, const RenderObject::PaintInfo& paintInfo, const IntRect& r)
@@ -1628,9 +1630,8 @@ bool RenderThemeMac::paintMediaRewindButton(RenderObject* o, const RenderObject:
         return false;
     
     LocalCurrentGraphicsContext localContext(paintInfo.context);
-    wkDrawMediaUIPart(MediaRewindButton, mediaControllerTheme(), paintInfo.context->platformContext(), r, 
-        node->active() ? MediaUIPartPressedFlag : 0);
-     return false;
+    wkDrawMediaUIPart(MediaRewindButton, mediaControllerTheme(), paintInfo.context->platformContext(), r, getMediaUIPartStateFlags(node));
+    return false;
 }
 
 bool RenderThemeMac::paintMediaReturnToRealtimeButton(RenderObject* o, const RenderObject::PaintInfo& paintInfo, const IntRect& r)
@@ -1640,9 +1641,8 @@ bool RenderThemeMac::paintMediaReturnToRealtimeButton(RenderObject* o, const Ren
         return false;
     
     LocalCurrentGraphicsContext localContext(paintInfo.context);
-    wkDrawMediaUIPart(MediaReturnToRealtimeButton, mediaControllerTheme(), paintInfo.context->platformContext(), r, 
-        node->active() ? MediaUIPartPressedFlag : 0);
-     return false;
+    wkDrawMediaUIPart(MediaReturnToRealtimeButton, mediaControllerTheme(), paintInfo.context->platformContext(), r, getMediaUIPartStateFlags(node));
+    return false;
 }
 
 
@@ -1653,9 +1653,8 @@ bool RenderThemeMac::paintMediaControlsBackground(RenderObject* o, const RenderO
         return false;
 
     LocalCurrentGraphicsContext localContext(paintInfo.context);
-    wkDrawMediaUIPart(MediaTimelineContainer, mediaControllerTheme(), paintInfo.context->platformContext(), r, 
-        node->active() ? MediaUIPartPressedFlag : 0);
-     return false;
+    wkDrawMediaUIPart(MediaTimelineContainer, mediaControllerTheme(), paintInfo.context->platformContext(), r, getMediaUIPartStateFlags(node));
+    return false;
 }
 
 bool RenderThemeMac::paintMediaCurrentTime(RenderObject* o, const RenderObject::PaintInfo& paintInfo, const IntRect& r)
@@ -1666,8 +1665,7 @@ bool RenderThemeMac::paintMediaCurrentTime(RenderObject* o, const RenderObject::
 
     paintInfo.context->save();
     FloatRect unzoomedRect = getUnzoomedRectAndAdjustCurrentContext(o, paintInfo, r);
-    wkDrawMediaUIPart(MediaCurrentTimeDisplay, mediaControllerTheme(), paintInfo.context->platformContext(), unzoomedRect, 
-        node->active() ? MediaUIPartPressedFlag : 0);
+    wkDrawMediaUIPart(MediaCurrentTimeDisplay, mediaControllerTheme(), paintInfo.context->platformContext(), unzoomedRect, getMediaUIPartStateFlags(node));
     paintInfo.context->restore();
     return false;
 }
@@ -1680,8 +1678,7 @@ bool RenderThemeMac::paintMediaTimeRemaining(RenderObject* o, const RenderObject
 
     paintInfo.context->save();
     FloatRect unzoomedRect = getUnzoomedRectAndAdjustCurrentContext(o, paintInfo, r);
-    wkDrawMediaUIPart(MediaTimeRemainingDisplay, mediaControllerTheme(), paintInfo.context->platformContext(), unzoomedRect, 
-         node->active() ? MediaUIPartPressedFlag : 0);
+    wkDrawMediaUIPart(MediaTimeRemainingDisplay, mediaControllerTheme(), paintInfo.context->platformContext(), unzoomedRect, getMediaUIPartStateFlags(node));
     paintInfo.context->restore();
     return false;
 }
index b37ce98480c9e05d69c9a37b055881d2a44d32b7..75a76a370b1b5e23754a4a3d75d5b4938fff4fee 100644 (file)
@@ -1,3 +1,14 @@
+2009-07-10  Eric Carlson  <eric.carlson@apple.com>
+
+        Reviewed by Simon Fraser.
+
+        Update WebKitSystemInterface for <rdar://problem/7049066>.
+
+        * WebKitSystemInterface.h:
+        * libWebKitSystemInterfaceLeopard.a:
+        * libWebKitSystemInterfaceSnowLeopard.a:
+        * libWebKitSystemInterfaceTiger.a:
+
 2009-07-06  Eric Carlson  <eric.carlson@apple.com>
 
         Update WebKitSystemInterface for <rdar://problem/7008093>.
index 453bf8b29e1292805a04b4fafe6cdd77efc61148..0efa2f4d76ff6aa5b92ec11e8d1118b5f7072ff5 100644 (file)
@@ -220,7 +220,7 @@ typedef enum {
 } WKMediaControllerThemeStyle;
 
 typedef enum {
-    WKMediaControllerFlagDisbled = 1 << 0,
+    WKMediaControllerFlagDisabled = 1 << 0,
     WKMediaControllerFlagPressed = 1 << 1,
     WKMediaControllerFlagDrawEndCaps = 1 << 3,
 } WKMediaControllerThemeState;
index f99e1732c1d51ee08d028d1165380f7e5c4bc407..1e9e637d22e97c7faf0c0e49e01b944785a56a06 100644 (file)
Binary files a/WebKitLibraries/libWebKitSystemInterfaceLeopard.a and b/WebKitLibraries/libWebKitSystemInterfaceLeopard.a differ
index e9b919353fd23e369dc680325bada76746ff0ced..61daf461a44b5aec93e719bc96b9930b6e641526 100644 (file)
Binary files a/WebKitLibraries/libWebKitSystemInterfaceSnowLeopard.a and b/WebKitLibraries/libWebKitSystemInterfaceSnowLeopard.a differ
index b46034cdba0d5bc61aec6d774d1d878e7d19f2d4..83fa4dc4dd6a653c2ead9ba07bc9e6b13cc03e13 100644 (file)
Binary files a/WebKitLibraries/libWebKitSystemInterfaceTiger.a and b/WebKitLibraries/libWebKitSystemInterfaceTiger.a differ