diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-05-11 09:43:24 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2012-05-11 09:43:24 +0200 |
commit | 1b914638db989aaa98631a1c1e02c7b2d44805d8 (patch) | |
tree | 87f4fd2c7b38db320079a5de8877890d2ca3c485 /Source/WebCore/rendering/RenderMediaControlsChromium.cpp | |
parent | 2cf6c8816a73e0132bd8fa3b509d62d7c51b6e47 (diff) | |
download | qtwebkit-1b914638db989aaa98631a1c1e02c7b2d44805d8.tar.gz |
Imported WebKit commit 9a52e27980f47e8b0d8f8b7cc0fd7b5741bceb92 (http://svn.webkit.org/repository/webkit/trunk@116736)
New snapshot to include QDeclarative* -> QQml* build fixes
Diffstat (limited to 'Source/WebCore/rendering/RenderMediaControlsChromium.cpp')
-rw-r--r-- | Source/WebCore/rendering/RenderMediaControlsChromium.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/Source/WebCore/rendering/RenderMediaControlsChromium.cpp b/Source/WebCore/rendering/RenderMediaControlsChromium.cpp index 89383c0d1..c28049c2b 100644 --- a/Source/WebCore/rendering/RenderMediaControlsChromium.cpp +++ b/Source/WebCore/rendering/RenderMediaControlsChromium.cpp @@ -33,6 +33,7 @@ #include "HTMLMediaElement.h" #include "HTMLNames.h" #include "PaintInfo.h" +#include "TimeRanges.h" namespace WebCore { @@ -127,19 +128,26 @@ static bool paintMediaSlider(RenderObject* object, const PaintInfo& paintInfo, c context->restore(); // Draw the buffered ranges. - // FIXME: Draw multiple ranges if there are multiple buffered ranges. + // FIXME: Draw multiple ranges if there are multiple buffered ranges. http://webkit.org/b/85925 IntRect bufferedRect = rect; bufferedRect.inflate(-style->borderLeftWidth()); double bufferedWidth = 0.0; - if (mediaElement->percentLoaded() > 0.0) { + RefPtr<TimeRanges> bufferedTimeRanges = mediaElement->buffered(); + if (bufferedTimeRanges->length() > 0) { // Account for the width of the slider thumb. Image* mediaSliderThumb = getMediaSliderThumb(); double thumbWidth = mediaSliderThumb->width() / 2.0 + 1.0; double rectWidth = bufferedRect.width() - thumbWidth; if (rectWidth < 0.0) rectWidth = 0.0; - bufferedWidth = rectWidth * mediaElement->percentLoaded() + thumbWidth; + // Preserve old behavior pending resolution of UI design of multiple ranges (see FIXME above). + // http://webkit.org/b/85926 + double fakePercentLoaded = 0; + float duration = mediaElement->duration(); + if (duration && !isinf(duration)) + fakePercentLoaded = bufferedTimeRanges->end(bufferedTimeRanges->length() - 1, ASSERT_NO_EXCEPTION) / duration; + bufferedWidth = rectWidth * fakePercentLoaded + thumbWidth; } bufferedRect.setWidth(bufferedWidth); |