Diff
Modified: trunk/Source/WebCore/ChangeLog (109230 => 109231)
--- trunk/Source/WebCore/ChangeLog 2012-02-29 18:51:15 UTC (rev 109230)
+++ trunk/Source/WebCore/ChangeLog 2012-02-29 18:55:12 UTC (rev 109231)
@@ -1,3 +1,56 @@
+2012-02-28 Jer Noble <jer.no...@apple.com>
+
+ Full screen video volume slider has "progress bar"
+ https://bugs.webkit.org/show_bug.cgi?id=79812
+
+ Reviewed by Eric Carlson.
+
+ No new tests; strictly a platform-specific look-and-feel change.
+
+ The full-screen volume slider has a "media-slider"" appearance, which is rendering as if
+ the volume slider has a "progress". Make a concrete "media-fullscreen-volume-slider" appearance
+ which has the correct look-and-feel.
+
+ Add two new appearance keywords, media-fullscreen-volume-slider and thumb, and their associated
+ types and CSS keywords:
+ * css/CSSValueKeywords.in:
+ * css/CSSPrimitiveValueMappings.h:
+ (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
+ * html/shadow/MediaControlElements.h:
+ * platform/ThemeTypes.h:
+
+ Handle the new slider and thumb types when rendering:
+ * rendering/RenderMediaControls.cpp:
+ (WebCore::RenderMediaControls::adjustMediaSliderThumbSize):
+ (WebCore::RenderMediaControls::paintMediaControlsPart):
+ * rendering/RenderTheme.cpp:
+ (WebCore::RenderTheme::adjustStyle):
+ (WebCore::RenderTheme::paint):
+ * rendering/RenderTheme.h:
+ (WebCore::RenderTheme::paintMediaFullScreenVolumeSliderTrack):
+ (WebCore::RenderTheme::paintMediaFullScreenVolumeSliderThumb):
+ * rendering/RenderThemeMac.h:
+ (RenderThemeMac):
+ * rendering/RenderThemeMac.mm:
+ (WebCore::RenderThemeMac::adjustMediaSliderThumbSize):
+ (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderTrack):
+ (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderThumb):
+ * rendering/RenderMediaControlsChromium.cpp:
+ (WebCore::RenderMediaControlsChromium::paintMediaControlsPart):
+
+ * accessibility/AccessibilitySlider.cpp:
+ (WebCore::AccessibilitySlider::orientation): Mark the fullscreen volume slider as horizontal.
+ * html/shadow/SliderThumbElement.cpp:
+ (WebCore::RenderSliderThumb::updateAppearance): Give MediaFullScreenVolumeSliderParts
+ MediaFullScreenVolumeSliderThumbParts.
+ * css/fullscreenQuickTime.css: Change the styles for the fullscreen slider, min, and max buttons.
+ (video:-webkit-full-screen::-webkit-media-controls-fullscreen-volume-min-button):
+ (video:-webkit-full-screen::-webkit-media-controls-fullscreen-volume-slider):
+ (video:-webkit-full-screen::-webkit-media-controls-fullscreen-volume-max-button):
+ * html/shadow/MediaControlRootElement.cpp:
+ (WebCore::MediaControlRootElement::reset): Set the value of the fullscreen volume slider
+ when resetting.
+
2012-02-29 Antti Koivisto <an...@apple.com>
Applying region style should not need to access parent rules
Modified: trunk/Source/WebCore/accessibility/AccessibilitySlider.cpp (109230 => 109231)
--- trunk/Source/WebCore/accessibility/AccessibilitySlider.cpp 2012-02-29 18:51:15 UTC (rev 109230)
+++ trunk/Source/WebCore/accessibility/AccessibilitySlider.cpp 2012-02-29 18:55:12 UTC (rev 109231)
@@ -65,6 +65,7 @@
case SliderThumbHorizontalPart:
case SliderHorizontalPart:
case MediaSliderPart:
+ case MediaFullScreenVolumeSliderPart:
return AccessibilityOrientationHorizontal;
case SliderThumbVerticalPart:
Modified: trunk/Source/WebCore/css/CSSPrimitiveValueMappings.h (109230 => 109231)
--- trunk/Source/WebCore/css/CSSPrimitiveValueMappings.h 2012-02-29 18:51:15 UTC (rev 109230)
+++ trunk/Source/WebCore/css/CSSPrimitiveValueMappings.h 2012-02-29 18:55:12 UTC (rev 109231)
@@ -417,6 +417,12 @@
case MediaControlsFullscreenBackgroundPart:
m_value.ident = CSSValueMediaControlsFullscreenBackground;
break;
+ case MediaFullScreenVolumeSliderPart:
+ m_value.ident = CSSValueMediaFullscreenVolumeSlider;
+ break;
+ case MediaFullScreenVolumeSliderThumbPart:
+ m_value.ident = CSSValueMediaFullscreenVolumeSliderThumb;
+ break;
case MediaCurrentTimePart:
m_value.ident = CSSValueMediaCurrentTimeDisplay;
break;
Modified: trunk/Source/WebCore/css/CSSValueKeywords.in (109230 => 109231)
--- trunk/Source/WebCore/css/CSSValueKeywords.in 2012-02-29 18:51:15 UTC (rev 109230)
+++ trunk/Source/WebCore/css/CSSValueKeywords.in 2012-02-29 18:55:12 UTC (rev 109231)
@@ -615,6 +615,8 @@
listbox
listitem
media-fullscreen-button
+media-fullscreen-volume-slider
+media-fullscreen-volume-slider-thumb
media-mute-button
media-play-button
media-seek-back-button
Modified: trunk/Source/WebCore/css/fullscreenQuickTime.css (109230 => 109231)
--- trunk/Source/WebCore/css/fullscreenQuickTime.css 2012-02-29 18:51:15 UTC (rev 109230)
+++ trunk/Source/WebCore/css/fullscreenQuickTime.css 2012-02-29 18:55:12 UTC (rev 109231)
@@ -88,17 +88,17 @@
position: absolute;
left: 11px;
top: 15px;
- width: 14px;
- height: 12px;
+ width: 17px;
+ height: 14px;
}
video:-webkit-full-screen::-webkit-media-controls-fullscreen-volume-slider {
- -webkit-appearance: media-slider;
+ -webkit-appearance: media-fullscreen-volume-slider;
display: block;
position: absolute;
left: 28px;
- top: 15px;
- height: 12px;
+ top: 14px;
+ height: 11px;
width: 50px;
}
@@ -108,8 +108,8 @@
position: absolute;
left: 84px;
top: 15px;
- width: 14px;
- height: 12px;
+ width: 17px;
+ height: 14px;
}
video:-webkit-full-screen::-webkit-media-controls-play-button {
Modified: trunk/Source/WebCore/html/shadow/MediaControlElements.h (109230 => 109231)
--- trunk/Source/WebCore/html/shadow/MediaControlElements.h 2012-02-29 18:51:15 UTC (rev 109230)
+++ trunk/Source/WebCore/html/shadow/MediaControlElements.h 2012-02-29 18:55:12 UTC (rev 109231)
@@ -68,6 +68,8 @@
MediaVolumeSliderContainer,
MediaVolumeSlider,
MediaVolumeSliderThumb,
+ MediaFullScreenVolumeSlider,
+ MediaFullScreenVolumeSliderThumb,
MediaVolumeSliderMuteButton,
MediaTextTrackDisplayContainer,
MediaTextTrackDisplay,
Modified: trunk/Source/WebCore/html/shadow/MediaControlRootElement.cpp (109230 => 109231)
--- trunk/Source/WebCore/html/shadow/MediaControlRootElement.cpp 2012-02-29 18:51:15 UTC (rev 109230)
+++ trunk/Source/WebCore/html/shadow/MediaControlRootElement.cpp 2012-02-29 18:55:12 UTC (rev 109231)
@@ -343,6 +343,9 @@
m_playButton->updateDisplayType();
#if ENABLE(FULLSCREEN_API)
+ if (m_fullScreenVolumeSlider)
+ m_fullScreenVolumeSlider->setVolume(m_mediaController->volume());
+
if (document()->webkitIsFullScreen() && document()->webkitCurrentFullScreenElement() == toParentMediaElement(this)) {
if (m_mediaController->isLiveStream()) {
m_seekBackButton->hide();
Modified: trunk/Source/WebCore/html/shadow/SliderThumbElement.cpp (109230 => 109231)
--- trunk/Source/WebCore/html/shadow/SliderThumbElement.cpp 2012-02-29 18:51:15 UTC (rev 109230)
+++ trunk/Source/WebCore/html/shadow/SliderThumbElement.cpp 2012-02-29 18:55:12 UTC (rev 109231)
@@ -91,6 +91,8 @@
style()->setAppearance(MediaSliderThumbPart);
else if (parentStyle->appearance() == MediaVolumeSliderPart)
style()->setAppearance(MediaVolumeSliderThumbPart);
+ else if (parentStyle->appearance() == MediaFullScreenVolumeSliderPart)
+ style()->setAppearance(MediaFullScreenVolumeSliderThumbPart);
if (style()->hasAppearance())
theme()->adjustSliderThumbSize(style());
}
Modified: trunk/Source/WebCore/platform/ThemeTypes.h (109230 => 109231)
--- trunk/Source/WebCore/platform/ThemeTypes.h 2012-02-29 18:51:15 UTC (rev 109230)
+++ trunk/Source/WebCore/platform/ThemeTypes.h 2012-02-29 18:55:12 UTC (rev 109231)
@@ -48,7 +48,7 @@
enum ControlPart {
NoControlPart, CheckboxPart, RadioPart, PushButtonPart, SquareButtonPart, ButtonPart,
ButtonBevelPart, DefaultButtonPart, InnerSpinButtonPart, InputSpeechButtonPart, ListButtonPart, ListboxPart, ListItemPart,
- MediaFullscreenButtonPart, MediaMuteButtonPart, MediaPlayButtonPart, MediaSeekBackButtonPart,
+ MediaFullscreenButtonPart, MediaFullScreenVolumeSliderPart, MediaFullScreenVolumeSliderThumbPart, MediaMuteButtonPart, MediaPlayButtonPart, MediaSeekBackButtonPart,
MediaSeekForwardButtonPart, MediaRewindButtonPart, MediaReturnToRealtimeButtonPart, MediaToggleClosedCaptionsButtonPart,
MediaSliderPart, MediaSliderThumbPart, MediaVolumeSliderContainerPart, MediaVolumeSliderPart, MediaVolumeSliderThumbPart,
MediaVolumeSliderMuteButtonPart, MediaControlsBackgroundPart, MediaControlsFullscreenBackgroundPart, MediaCurrentTimePart, MediaTimeRemainingPart,
Modified: trunk/Source/WebCore/rendering/RenderMediaControls.cpp (109230 => 109231)
--- trunk/Source/WebCore/rendering/RenderMediaControls.cpp 2012-02-29 18:51:15 UTC (rev 109230)
+++ trunk/Source/WebCore/rendering/RenderMediaControls.cpp 2012-02-29 18:55:12 UTC (rev 109231)
@@ -90,12 +90,23 @@
void RenderMediaControls::adjustMediaSliderThumbSize(RenderStyle* style)
{
- ControlPart part = style->appearance();
- if (part != MediaSliderThumbPart && part != MediaVolumeSliderThumbPart)
+ int part;
+ switch (style->appearance()) {
+ case MediaSliderThumbPart:
+ part = MediaSliderThumb;
+ break;
+ case MediaVolumeSliderThumbPart:
+ part = MediaVolumeSliderThumb;
+ break;
+ case MediaFullScreenVolumeSliderThumbPart:
+ part = MediaFullScreenVolumeSliderThumb;
+ break;
+ default:
return;
+ }
CGSize size;
- wkMeasureMediaUIPart(part == MediaSliderThumbPart ? MediaSliderThumb : MediaVolumeSliderThumb, WKMediaControllerThemeQuickTime, 0, &size);
+ wkMeasureMediaUIPart(part, WKMediaControllerThemeQuickTime, 0, &size);
float zoomLevel = style->effectiveZoom();
style->setWidth(Length(static_cast<int>(size.width * zoomLevel), Fixed));
@@ -163,6 +174,12 @@
case MediaVolumeSliderThumb:
wkDrawMediaUIPart(WKMediaUIPartVolumeSliderThumb, themeStyle, paintInfo.context->platformContext(), r, determineState(o));
break;
+ case MediaFullScreenVolumeSlider:
+ wkDrawMediaUIPart(WKMediaUIPartFullScreenVolumeSlider, themeStyle, paintInfo.context->platformContext(), r, determineState(o));
+ break;
+ case MediaFullScreenVolumeSliderThumb:
+ wkDrawMediaUIPart(WKMediaUIPartFullScreenVolumeSliderThumb, themeStyle, paintInfo.context->platformContext(), r, determineState(o));
+ break;
case MediaTimelineContainer:
wkDrawMediaUIPart(WKMediaUIPartBackground, themeStyle, paintInfo.context->platformContext(), r, determineState(o));
break;
Modified: trunk/Source/WebCore/rendering/RenderMediaControlsChromium.cpp (109230 => 109231)
--- trunk/Source/WebCore/rendering/RenderMediaControlsChromium.cpp 2012-02-29 18:51:15 UTC (rev 109230)
+++ trunk/Source/WebCore/rendering/RenderMediaControlsChromium.cpp 2012-02-29 18:55:12 UTC (rev 109231)
@@ -272,6 +272,8 @@
case MediaHideClosedCaptionsButton:
case MediaTextTrackDisplayContainer:
case MediaTextTrackDisplay:
+ case MediaFullScreenVolumeSlider:
+ case MediaFullScreenVolumeSliderThumb:
ASSERT_NOT_REACHED();
break;
}
Modified: trunk/Source/WebCore/rendering/RenderTheme.cpp (109230 => 109231)
--- trunk/Source/WebCore/rendering/RenderTheme.cpp 2012-02-29 18:51:15 UTC (rev 109230)
+++ trunk/Source/WebCore/rendering/RenderTheme.cpp 2012-02-29 18:55:12 UTC (rev 109231)
@@ -205,6 +205,7 @@
return adjustMenuListButtonStyle(selector, style, e);
case MediaSliderPart:
case MediaVolumeSliderPart:
+ case MediaFullScreenVolumeSliderPart:
case SliderHorizontalPart:
case SliderVerticalPart:
return adjustSliderTrackStyle(selector, style, e);
@@ -338,6 +339,10 @@
return paintMediaVolumeSliderTrack(o, paintInfo, r);
case MediaVolumeSliderThumbPart:
return paintMediaVolumeSliderThumb(o, paintInfo, r);
+ case MediaFullScreenVolumeSliderPart:
+ return paintMediaFullScreenVolumeSliderTrack(o, paintInfo, r);
+ case MediaFullScreenVolumeSliderThumbPart:
+ return paintMediaFullScreenVolumeSliderThumb(o, paintInfo, r);
case MediaTimeRemainingPart:
return paintMediaTimeRemaining(o, paintInfo, r);
case MediaCurrentTimePart:
Modified: trunk/Source/WebCore/rendering/RenderTheme.h (109230 => 109231)
--- trunk/Source/WebCore/rendering/RenderTheme.h 2012-02-29 18:51:15 UTC (rev 109230)
+++ trunk/Source/WebCore/rendering/RenderTheme.h 2012-02-29 18:55:12 UTC (rev 109231)
@@ -314,6 +314,8 @@
virtual bool paintMediaControlsBackground(RenderObject*, const PaintInfo&, const IntRect&) { return true; }
virtual bool paintMediaCurrentTime(RenderObject*, const PaintInfo&, const IntRect&) { return true; }
virtual bool paintMediaTimeRemaining(RenderObject*, const PaintInfo&, const IntRect&) { return true; }
+ virtual bool paintMediaFullScreenVolumeSliderTrack(RenderObject*, const PaintInfo&, const IntRect&) { return true; }
+ virtual bool paintMediaFullScreenVolumeSliderThumb(RenderObject*, const PaintInfo&, const IntRect&) { return true; }
public:
// Methods for state querying
Modified: trunk/Source/WebCore/rendering/RenderThemeMac.h (109230 => 109231)
--- trunk/Source/WebCore/rendering/RenderThemeMac.h 2012-02-29 18:51:15 UTC (rev 109230)
+++ trunk/Source/WebCore/rendering/RenderThemeMac.h 2012-02-29 18:55:12 UTC (rev 109231)
@@ -157,6 +157,8 @@
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 paintMediaFullScreenVolumeSliderTrack(RenderObject*, const PaintInfo&, const IntRect&) OVERRIDE;
+ virtual bool paintMediaFullScreenVolumeSliderThumb(RenderObject*, const PaintInfo&, const IntRect&) OVERRIDE;
// Media controls
virtual String extraMediaControlsStyleSheet();
Modified: trunk/Source/WebCore/rendering/RenderThemeMac.mm (109230 => 109231)
--- trunk/Source/WebCore/rendering/RenderThemeMac.mm 2012-02-29 18:51:15 UTC (rev 109230)
+++ trunk/Source/WebCore/rendering/RenderThemeMac.mm 2012-02-29 18:55:12 UTC (rev 109231)
@@ -1720,24 +1720,34 @@
void RenderThemeMac::adjustMediaSliderThumbSize(RenderStyle* style) const
{
- ControlPart part = style->appearance();
+ int wkPart;
+ switch (style->appearance()) {
+ case MediaSliderThumbPart:
+ wkPart = MediaSliderThumb;
+ break;
+ case MediaVolumeSliderThumbPart:
+ wkPart = MediaVolumeSliderThumb;
+ break;
+ case MediaFullScreenVolumeSliderThumbPart:
+ wkPart = MediaFullScreenVolumeSliderThumb;
+ break;
+ default:
+ return;
+ }
- if (part == MediaSliderThumbPart || part == MediaVolumeSliderThumbPart) {
- int width = mediaSliderThumbWidth;
- int height = mediaSliderThumbHeight;
-
- if (mediaControllerTheme() == MediaControllerThemeQuickTime) {
- CGSize size;
-
- wkMeasureMediaUIPart(part == MediaSliderThumbPart ? MediaSliderThumb : MediaVolumeSliderThumb, MediaControllerThemeQuickTime, NULL, &size);
- width = size.width;
- height = size.height;
- }
+ int width = mediaSliderThumbWidth;
+ int height = mediaSliderThumbHeight;
- float zoomLevel = style->effectiveZoom();
- style->setWidth(Length(static_cast<int>(width * zoomLevel), Fixed));
- style->setHeight(Length(static_cast<int>(height * zoomLevel), Fixed));
+ if (mediaControllerTheme() == MediaControllerThemeQuickTime) {
+ CGSize size;
+ wkMeasureMediaUIPart(wkPart, MediaControllerThemeQuickTime, NULL, &size);
+ width = size.width;
+ height = size.height;
}
+
+ float zoomLevel = style->effectiveZoom();
+ style->setWidth(Length(static_cast<int>(width * zoomLevel), Fixed));
+ style->setHeight(Length(static_cast<int>(height * zoomLevel), Fixed));
}
enum WKMediaControllerThemeState {
@@ -1977,7 +1987,29 @@
wkDrawMediaUIPart(MediaVolumeSliderThumb, mediaControllerTheme(), localContext.cgContext(), r, getMediaUIPartStateFlags(node));
return false;
}
+
+bool RenderThemeMac::paintMediaFullScreenVolumeSliderTrack(RenderObject* o, const PaintInfo& paintInfo, const IntRect& r)
+{
+ Node* node = o->node();
+ if (!node)
+ return false;
+ LocalCurrentGraphicsContext localContext(paintInfo.context);
+ wkDrawMediaUIPart(MediaFullScreenVolumeSlider, mediaControllerTheme(), localContext.cgContext(), r, getMediaUIPartStateFlags(node));
+ return false;
+}
+
+bool RenderThemeMac::paintMediaFullScreenVolumeSliderThumb(RenderObject* o, const PaintInfo& paintInfo, const IntRect& r)
+{
+ Node* node = o->node();
+ if (!node)
+ return false;
+
+ LocalCurrentGraphicsContext localContext(paintInfo.context);
+ wkDrawMediaUIPart(MediaFullScreenVolumeSliderThumb, mediaControllerTheme(), localContext.cgContext(), r, getMediaUIPartStateFlags(node));
+ return false;
+}
+
String RenderThemeMac::extraMediaControlsStyleSheet()
{
#if PLATFORM(MAC)
Modified: trunk/WebKitLibraries/ChangeLog (109230 => 109231)
--- trunk/WebKitLibraries/ChangeLog 2012-02-29 18:51:15 UTC (rev 109230)
+++ trunk/WebKitLibraries/ChangeLog 2012-02-29 18:55:12 UTC (rev 109231)
@@ -1,3 +1,17 @@
+2012-02-28 Jer Noble <jer.no...@apple.com>
+
+ Full screen video volume slider has "progress bar"
+ https://bugs.webkit.org/show_bug.cgi?id=79812
+
+ Reviewed by Eric Carlson.
+
+ * WebKitSystemInterface.h:
+ * libWebKitSystemInterfaceLeopard.a:
+ * libWebKitSystemInterfaceLion.a:
+ * libWebKitSystemInterfaceSnowLeopard.a:
+ * win/include/WebKitSystemInterface/WebKitSystemInterface.h:
+ * win/lib/WebKitSystemInterface.lib:
+
2012-02-28 Simon Fraser <simon.fra...@apple.com>
Update WebKitSystemInterface.
Modified: trunk/WebKitLibraries/win/include/WebKitSystemInterface/WebKitSystemInterface.h (109230 => 109231)
--- trunk/WebKitLibraries/win/include/WebKitSystemInterface/WebKitSystemInterface.h 2012-02-29 18:51:15 UTC (rev 109230)
+++ trunk/WebKitLibraries/win/include/WebKitSystemInterface/WebKitSystemInterface.h 2012-02-29 18:55:12 UTC (rev 109231)
@@ -222,7 +222,9 @@
WKMediaUIPartControlsPanel,
WKMediaUIPartVolumeSliderContainer,
WKMediaUIPartVolumeSlider,
- WKMediaUIPartVolumeSliderThumb
+ WKMediaUIPartVolumeSliderThumb,
+ WKMediaUIPartFullScreenVolumeSlider,
+ WKMediaUIPartFullScreenVolumeSliderThumb,
} WKMediaUIPart;
typedef enum {
Modified: trunk/WebKitLibraries/win/lib/WebKitSystemInterface.lib
(Binary files differ)