Chromium Code Reviews| Index: third_party/WebKit/Source/core/paint/MediaControlsPainter.cpp |
| diff --git a/third_party/WebKit/Source/core/paint/MediaControlsPainter.cpp b/third_party/WebKit/Source/core/paint/MediaControlsPainter.cpp |
| index f1ac387d140c8d2ce88ca19cc4d42516a34f0315..d98b8118ea6da438a61b732d803285f181f02b69 100644 |
| --- a/third_party/WebKit/Source/core/paint/MediaControlsPainter.cpp |
| +++ b/third_party/WebKit/Source/core/paint/MediaControlsPainter.cpp |
| @@ -44,19 +44,13 @@ static const double kCurrentTimeBufferedDelta = 1.0; |
| typedef WTF::HashMap<const char*, Image*> MediaControlImageMap; |
| static MediaControlImageMap* gMediaControlImageMap = 0; |
| -// Current UI slider thumbs sizes. |
| -static const int mediaSliderThumbWidth = 32; |
| -static const int mediaSliderThumbHeight = 24; |
| -static const int mediaVolumeSliderThumbHeight = 24; |
| -static const int mediaVolumeSliderThumbWidth = 24; |
| - |
| -// New UI slider thumb sizes, shard between time and volume. |
| +// Slider thumb sizes, shard between time and volume. |
| static const int mediaSliderThumbTouchWidthNew = 36; // Touch zone size. |
|
foolip
2016/10/24 11:31:50
Drop New suffixes here.
mlamouri (slow - plz ping)
2016/10/24 12:37:23
Done in the last CLs (with renaming).
|
| static const int mediaSliderThumbTouchHeightNew = 48; |
| static const int mediaSliderThumbPaintWidthNew = 12; // Painted area. |
| static const int mediaSliderThumbPaintHeightNew = 12; |
| -// New UI overlay play button size. |
| +// Overlay play button size. |
| static const int mediaOverlayPlayButtonWidthNew = 48; |
| static const int mediaOverlayPlayButtonHeightNew = 48; |
| @@ -76,13 +70,6 @@ static Image* platformResource(const char* name) { |
| return 0; |
| } |
| -static Image* platformResource(const char* currentName, const char* newName) { |
| - // Return currentName or newName based on current or new playback. |
| - return platformResource(RuntimeEnabledFeatures::newMediaPlaybackUiEnabled() |
| - ? newName |
| - : currentName); |
| -} |
| - |
| static bool hasSource(const HTMLMediaElement* mediaElement) { |
| return mediaElement->getNetworkState() != HTMLMediaElement::kNetworkEmpty && |
| mediaElement->getNetworkState() != HTMLMediaElement::kNetworkNoSource; |
| @@ -114,11 +101,6 @@ static bool paintMediaButton(GraphicsContext& context, |
| Image* image, |
| const LayoutObject* object, |
| bool isEnabled) { |
| - if (!RuntimeEnabledFeatures::newMediaPlaybackUiEnabled()) { |
| - context.drawImage(image, rect); |
| - return true; |
| - } |
| - |
| FloatRect drawRect = adjustRectForPadding(rect, object); |
| if (!isEnabled) |
| @@ -147,16 +129,11 @@ bool MediaControlsPainter::paintMediaMuteButton(const LayoutObject& object, |
| return false; |
| // The new UI uses "muted" and "not muted" only. |
| - static Image* soundLevel3 = |
| - platformResource("mediaplayerSoundLevel3", "mediaplayerSoundLevel3New"); |
| - static Image* soundLevel2 = |
| - platformResource("mediaplayerSoundLevel2", "mediaplayerSoundLevel3New"); |
| - static Image* soundLevel1 = |
| - platformResource("mediaplayerSoundLevel1", "mediaplayerSoundLevel3New"); |
| - static Image* soundLevel0 = |
| - platformResource("mediaplayerSoundLevel0", "mediaplayerSoundLevel0New"); |
| - static Image* soundDisabled = |
| - platformResource("mediaplayerSoundDisabled", "mediaplayerSoundLevel0New"); |
| + static Image* soundLevel3 = platformResource("mediaplayerSoundLevel3New"); |
|
foolip
2016/10/24 11:31:50
In a follow up, it would be good to rename all of
mlamouri (slow - plz ping)
2016/10/24 12:37:23
Ditto.
|
| + static Image* soundLevel2 = platformResource("mediaplayerSoundLevel3New"); |
| + static Image* soundLevel1 = platformResource("mediaplayerSoundLevel3New"); |
| + static Image* soundLevel0 = platformResource("mediaplayerSoundLevel0New"); |
| + static Image* soundDisabled = platformResource("mediaplayerSoundLevel0New"); |
| if (!hasSource(mediaElement) || !mediaElement->hasAudio()) |
| return paintMediaButton(paintInfo.context, rect, soundDisabled, &object, |
| @@ -184,14 +161,11 @@ bool MediaControlsPainter::paintMediaPlayButton(const LayoutObject& object, |
| if (!mediaElement) |
| return false; |
| - static Image* mediaPlay = |
| - platformResource("mediaplayerPlay", "mediaplayerPlayNew"); |
| - static Image* mediaPause = |
| - platformResource("mediaplayerPause", "mediaplayerPauseNew"); |
| + static Image* mediaPlay = platformResource("mediaplayerPlayNew"); |
| + static Image* mediaPause = platformResource("mediaplayerPauseNew"); |
| // For this case, the new UI draws the normal icon, but the entire panel |
| // grays out. |
| - static Image* mediaPlayDisabled = |
| - platformResource("mediaplayerPlayDisabled", "mediaplayerPlayNew"); |
| + static Image* mediaPlayDisabled = platformResource("mediaplayerPlayNew"); |
| if (!hasSource(mediaElement)) |
| return paintMediaButton(paintInfo.context, rect, mediaPlayDisabled, &object, |
| @@ -217,31 +191,24 @@ bool MediaControlsPainter::paintMediaOverlayPlayButton( |
| return false; |
| static Image* mediaOverlayPlay = |
| - platformResource("mediaplayerOverlayPlay", "mediaplayerOverlayPlayNew"); |
| + platformResource("mediaplayerOverlayPlayNew"); |
| IntRect buttonRect(rect); |
| - if (RuntimeEnabledFeatures::newMediaPlaybackUiEnabled()) { |
| - // Overlay play button covers the entire player, so center and draw a |
| - // smaller button. Center in the entire element. |
| - // TODO(liberato): object.enclosingBox()? |
| - const LayoutBox* box = mediaElement->layoutObject()->enclosingBox(); |
| - if (!box) |
| - return false; |
| - int mediaHeight = box->pixelSnappedHeight(); |
| - buttonRect.setX(rect.center().x() - mediaOverlayPlayButtonWidthNew / 2); |
| - buttonRect.setY(rect.center().y() - mediaOverlayPlayButtonHeightNew / 2 + |
| - (mediaHeight - rect.height()) / 2); |
| - buttonRect.setWidth(mediaOverlayPlayButtonWidthNew); |
| - buttonRect.setHeight(mediaOverlayPlayButtonHeightNew); |
| - } |
| - return paintMediaButton(paintInfo.context, buttonRect, mediaOverlayPlay); |
| -} |
| + // Overlay play button covers the entire player, so center and draw a |
| + // smaller button. Center in the entire element. |
| + // TODO(liberato): object.enclosingBox()? |
| + const LayoutBox* box = mediaElement->layoutObject()->enclosingBox(); |
| + if (!box) |
| + return false; |
| + int mediaHeight = box->pixelSnappedHeight(); |
| + buttonRect.setX(rect.center().x() - mediaOverlayPlayButtonWidthNew / 2); |
| + buttonRect.setY(rect.center().y() - mediaOverlayPlayButtonHeightNew / 2 + |
| + (mediaHeight - rect.height()) / 2); |
| + buttonRect.setWidth(mediaOverlayPlayButtonWidthNew); |
| + buttonRect.setHeight(mediaOverlayPlayButtonHeightNew); |
| -static Image* getMediaSliderThumb() { |
| - static Image* mediaSliderThumb = |
| - platformResource("mediaplayerSliderThumb", "mediaplayerSliderThumbNew"); |
| - return mediaSliderThumb; |
| + return paintMediaButton(paintInfo.context, buttonRect, mediaOverlayPlay); |
| } |
| static void paintRoundedSliderBackground(const IntRect& rect, |
| @@ -330,8 +297,7 @@ bool MediaControlsPainter::paintMediaSlider(const LayoutObject& object, |
| GraphicsContext& context = paintInfo.context; |
| // Should we paint the slider partially transparent? |
| - bool drawUiGrayed = !hasSource(mediaElement) && |
| - RuntimeEnabledFeatures::newMediaPlaybackUiEnabled(); |
| + bool drawUiGrayed = !hasSource(mediaElement); |
| if (drawUiGrayed) |
| context.beginLayer(kDisabledAlpha); |
| @@ -346,7 +312,6 @@ bool MediaControlsPainter::paintMediaSlider(const LayoutObject& object, |
| void MediaControlsPainter::paintMediaSliderInternal(const LayoutObject& object, |
| const PaintInfo& paintInfo, |
| const IntRect& rect) { |
| - const bool useNewUi = RuntimeEnabledFeatures::newMediaPlaybackUiEnabled(); |
| const HTMLMediaElement* mediaElement = toParentMediaElement(object); |
| if (!mediaElement) |
| return; |
| @@ -355,13 +320,7 @@ void MediaControlsPainter::paintMediaSliderInternal(const LayoutObject& object, |
| GraphicsContext& context = paintInfo.context; |
| // Paint the slider bar in the "no data buffered" state. |
| - Color sliderBackgroundColor; |
| - if (!useNewUi) |
| - sliderBackgroundColor = Color(11, 11, 11); |
| - else |
| - sliderBackgroundColor = Color(0xda, 0xda, 0xda); |
| - |
| - paintRoundedSliderBackground(rect, style, context, sliderBackgroundColor); |
| + paintRoundedSliderBackground(rect, style, context, Color(0xda, 0xda, 0xda)); |
| // Draw the buffered range. Since the element may have multiple buffered |
| // ranges and it'd be distracting/'busy' to show all of them, show only the |
| @@ -390,40 +349,22 @@ void MediaControlsPainter::paintMediaSliderInternal(const LayoutObject& object, |
| int currentPosition = int(currentTime * rect.width() / duration); |
| int endPosition = int(end * rect.width() / duration); |
| - if (!useNewUi) { |
| - // Add half the thumb width proportionally adjusted to the current |
| - // painting position. |
| - int thumbCenter = mediaSliderThumbWidth / 2; |
| - int addWidth = thumbCenter * (1.0 - 2.0 * currentPosition / rect.width()); |
| - currentPosition += addWidth; |
| - } |
| - |
| // Draw highlight before current time. |
| - Color startColor; |
| - Color endColor; |
| - if (!useNewUi) { |
| - startColor = Color(195, 195, 195); // white-ish. |
| - endColor = Color(217, 217, 217); |
| - } else { |
| - startColor = endColor = Color(0x42, 0x85, 0xf4); // blue. |
| - } |
| + Color startColor = Color(0x42, 0x85, 0xf4); |
| + Color endColor = Color(0x42, 0x85, 0xf4); |
| - if (currentPosition > startPosition) |
| + if (currentPosition > startPosition) { |
| paintSliderRangeHighlight(rect, style, context, startPosition, |
| currentPosition, startColor, endColor); |
| - |
| - // Draw grey-ish highlight after current time. |
| - if (!useNewUi) { |
| - startColor = Color(60, 60, 60); |
| - endColor = Color(76, 76, 76); |
| - } else { |
| - startColor = endColor = Color(0x5a, 0x5a, 0x5a); // dark grey |
| } |
| - if (endPosition > currentPosition) |
| + // Draw dark grey highlight after current time. |
| + startColor = endColor = Color(0x5a, 0x5a, 0x5a); |
| + |
| + if (endPosition > currentPosition) { |
| paintSliderRangeHighlight(rect, style, context, currentPosition, |
| endPosition, startColor, endColor); |
| - |
| + } |
| return; |
| } |
| } |
| @@ -438,14 +379,9 @@ void MediaControlsPainter::adjustMediaSliderThumbPaintSize( |
| // adjustMediaSliderThumbSize(), and scale it back when we paint. |
| rectOut = rect; |
| - if (!RuntimeEnabledFeatures::newMediaPlaybackUiEnabled()) { |
| - // ...except for the old UI. |
| - return; |
| - } |
| - |
| - float zoomLevel = style.effectiveZoom(); |
| - float zoomedPaintWidth = mediaSliderThumbPaintWidthNew * zoomLevel; |
| - float zoomedPaintHeight = mediaSliderThumbPaintHeightNew * zoomLevel; |
| + const float zoomLevel = style.effectiveZoom(); |
| + const float zoomedPaintWidth = mediaSliderThumbPaintWidthNew * zoomLevel; |
| + const float zoomedPaintHeight = mediaSliderThumbPaintHeightNew * zoomLevel; |
| rectOut.setX(rect.center().x() - zoomedPaintWidth / 2); |
| rectOut.setY(rect.center().y() - zoomedPaintHeight / 2); |
| @@ -467,7 +403,7 @@ bool MediaControlsPainter::paintMediaSliderThumb(const LayoutObject& object, |
| if (!hasSource(mediaElement)) |
| return true; |
| - Image* mediaSliderThumb = getMediaSliderThumb(); |
| + Image* mediaSliderThumb = platformResource("mediaplayerSliderThumbNew"); |
|
foolip
2016/10/24 11:31:50
static here to match other and previous behavior i
mlamouri (slow - plz ping)
2016/10/24 12:37:23
Done.
|
| IntRect paintRect; |
| const ComputedStyle& style = object.styleRef(); |
| adjustMediaSliderThumbPaintSize(rect, style, paintRect); |
| @@ -485,12 +421,7 @@ bool MediaControlsPainter::paintMediaVolumeSlider(const LayoutObject& object, |
| const ComputedStyle& style = object.styleRef(); |
| // Paint the slider bar. |
| - Color sliderBackgroundColor; |
| - if (!RuntimeEnabledFeatures::newMediaPlaybackUiEnabled()) |
| - sliderBackgroundColor = Color(11, 11, 11); |
| - else |
| - sliderBackgroundColor = Color(0x5a, 0x5a, 0x5a); // dark grey |
| - paintRoundedSliderBackground(rect, style, context, sliderBackgroundColor); |
| + paintRoundedSliderBackground(rect, style, context, Color(0x5a, 0x5a, 0x5a)); |
| // Calculate volume position for white background rectangle. |
| float volume = mediaElement->volume(); |
| @@ -503,23 +434,9 @@ bool MediaControlsPainter::paintMediaVolumeSlider(const LayoutObject& object, |
| volume = 0; |
| // Calculate the position relative to the center of the thumb. |
| - float fillWidth = 0; |
| - if (!RuntimeEnabledFeatures::newMediaPlaybackUiEnabled()) { |
| - if (volume > 0) { |
| - float thumbCenter = mediaVolumeSliderThumbWidth / 2; |
| - float zoomLevel = style.effectiveZoom(); |
| - float positionWidth = volume * (rect.width() - (zoomLevel * thumbCenter)); |
| - fillWidth = positionWidth + (zoomLevel * thumbCenter / 2); |
| - } |
| - } else { |
| - fillWidth = volume * rect.width(); |
| - } |
| - |
| - Color startColor = Color(195, 195, 195); |
| - Color endColor = Color(217, 217, 217); |
| - if (RuntimeEnabledFeatures::newMediaPlaybackUiEnabled()) |
| - startColor = endColor = Color(0x42, 0x85, 0xf4); // blue. |
| - |
| + const float fillWidth = volume * rect.width(); |
| + static const Color startColor = Color(0x42, 0x85, 0xf4); |
|
foolip
2016/10/24 11:31:50
No other Color instances are static. Intentional c
mlamouri (slow - plz ping)
2016/10/24 12:37:23
Yes. These colour are always the same. The other p
|
| + static const Color endColor = Color(217, 217, 217); |
| paintSliderRangeHighlight(rect, style, context, 0.0, fillWidth, startColor, |
| endColor); |
| @@ -541,8 +458,8 @@ bool MediaControlsPainter::paintMediaVolumeSliderThumb( |
| if (!hasSource(mediaElement) || !mediaElement->hasAudio()) |
| return true; |
| - static Image* mediaVolumeSliderThumb = platformResource( |
| - "mediaplayerVolumeSliderThumb", "mediaplayerVolumeSliderThumbNew"); |
| + static Image* mediaVolumeSliderThumb = |
| + platformResource("mediaplayerVolumeSliderThumbNew"); |
| IntRect paintRect; |
| const ComputedStyle& style = object.styleRef(); |
| @@ -561,9 +478,9 @@ bool MediaControlsPainter::paintMediaFullscreenButton( |
| // With the new player UI, we have separate assets for enter / exit |
| // fullscreen mode. |
| static Image* mediaEnterFullscreenButton = |
| - platformResource("mediaplayerFullscreen", "mediaplayerEnterFullscreen"); |
| + platformResource("mediaplayerEnterFullscreen"); |
| static Image* mediaExitFullscreenButton = |
| - platformResource("mediaplayerFullscreen", "mediaplayerExitFullscreen"); |
| + platformResource("mediaplayerExitFullscreen"); |
| bool isEnabled = hasSource(mediaElement); |
| @@ -582,11 +499,10 @@ bool MediaControlsPainter::paintMediaToggleClosedCaptionsButton( |
| if (!mediaElement) |
| return false; |
| - static Image* mediaClosedCaptionButton = platformResource( |
| - "mediaplayerClosedCaption", "mediaplayerClosedCaptionNew"); |
| + static Image* mediaClosedCaptionButton = |
| + platformResource("mediaplayerClosedCaptionNew"); |
| static Image* mediaClosedCaptionButtonDisabled = |
| - platformResource("mediaplayerClosedCaptionDisabled", |
| - "mediaplayerClosedCaptionDisabledNew"); |
| + platformResource("mediaplayerClosedCaptionDisabledNew"); |
| bool isEnabled = mediaElement->hasClosedCaptions(); |
| @@ -605,15 +521,13 @@ bool MediaControlsPainter::paintMediaCastButton(const LayoutObject& object, |
| if (!mediaElement) |
| return false; |
| - static Image* mediaCastOn = |
| - platformResource("mediaplayerCastOn", "mediaplayerCastOnNew"); |
| - static Image* mediaCastOff = |
| - platformResource("mediaplayerCastOff", "mediaplayerCastOffNew"); |
| + static Image* mediaCastOn = platformResource("mediaplayerCastOnNew"); |
| + static Image* mediaCastOff = platformResource("mediaplayerCastOffNew"); |
| // To ensure that the overlaid cast button is visible when overlaid on pale |
| // videos we use a different version of it for the overlaid case with a |
| // semi-opaque background. |
| - static Image* mediaOverlayCastOff = platformResource( |
| - "mediaplayerOverlayCastOff", "mediaplayerOverlayCastOffNew"); |
| + static Image* mediaOverlayCastOff = |
| + platformResource("mediaplayerOverlayCastOffNew"); |
| bool isEnabled = mediaElement->hasRemoteRoutes(); |
| @@ -643,8 +557,7 @@ bool MediaControlsPainter::paintMediaTrackSelectionCheckmark( |
| return false; |
| static Image* mediaTrackSelectionCheckmark = |
| - platformResource("mediaplayerTrackSelectionCheckmark", |
| - "mediaplayerTrackSelectionCheckmarkNew"); |
| + platformResource("mediaplayerTrackSelectionCheckmarkNew"); |
| return paintMediaButton(paintInfo.context, rect, |
| mediaTrackSelectionCheckmark); |
| } |
| @@ -657,8 +570,8 @@ bool MediaControlsPainter::paintMediaClosedCaptionsIcon( |
| if (!mediaElement) |
| return false; |
| - static Image* mediaClosedCaptionsIcon = platformResource( |
| - "mediaplayerClosedCaptionsIcon", "mediaplayerClosedCaptionsIconNew"); |
| + static Image* mediaClosedCaptionsIcon = |
| + platformResource("mediaplayerClosedCaptionsIconNew"); |
| return paintMediaButton(paintInfo.context, rect, mediaClosedCaptionsIcon); |
| } |
| @@ -669,8 +582,8 @@ bool MediaControlsPainter::paintMediaSubtitlesIcon(const LayoutObject& object, |
| if (!mediaElement) |
| return false; |
| - static Image* mediaSubtitlesIcon = platformResource( |
| - "mediaplayerSubtitlesIcon", "mediaplayerSubtitlesIconNew"); |
| + static Image* mediaSubtitlesIcon = |
| + platformResource("mediaplayerSubtitlesIconNew"); |
| return paintMediaButton(paintInfo.context, rect, mediaSubtitlesIcon); |
| } |
| @@ -702,35 +615,12 @@ bool MediaControlsPainter::paintMediaDownloadIcon(const LayoutObject& object, |
| } |
| void MediaControlsPainter::adjustMediaSliderThumbSize(ComputedStyle& style) { |
| - static Image* mediaSliderThumb = |
| - platformResource("mediaplayerSliderThumb", "mediaplayerSliderThumbNew"); |
| - static Image* mediaVolumeSliderThumb = platformResource( |
| - "mediaplayerVolumeSliderThumb", "mediaplayerVolumeSliderThumbNew"); |
| - int width = 0; |
| - int height = 0; |
| - |
| - Image* thumbImage = 0; |
| - |
| - if (RuntimeEnabledFeatures::newMediaPlaybackUiEnabled()) { |
| - // Volume and time sliders are the same. |
| - thumbImage = mediaSliderThumb; |
| - width = mediaSliderThumbTouchWidthNew; |
| - height = mediaSliderThumbTouchHeightNew; |
| - } else if (style.appearance() == MediaSliderThumbPart) { |
| - thumbImage = mediaSliderThumb; |
| - width = mediaSliderThumbWidth; |
| - height = mediaSliderThumbHeight; |
| - } else if (style.appearance() == MediaVolumeSliderThumbPart) { |
| - thumbImage = mediaVolumeSliderThumb; |
| - width = mediaVolumeSliderThumbWidth; |
| - height = mediaVolumeSliderThumbHeight; |
| - } |
| + const float zoomLevel = style.effectiveZoom(); |
| - float zoomLevel = style.effectiveZoom(); |
| - if (thumbImage) { |
| - style.setWidth(Length(static_cast<int>(width * zoomLevel), Fixed)); |
| - style.setHeight(Length(static_cast<int>(height * zoomLevel), Fixed)); |
| - } |
| + style.setWidth(Length( |
| + static_cast<int>(mediaSliderThumbTouchWidthNew * zoomLevel), Fixed)); |
| + style.setHeight(Length( |
| + static_cast<int>(mediaSliderThumbTouchHeightNew * zoomLevel), Fixed)); |
| } |
| } // namespace blink |