summaryrefslogtreecommitdiff
path: root/Source/WebCore/rendering/RenderMediaControlsChromium.cpp
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@nokia.com>2012-05-11 09:43:24 +0200
committerSimon Hausmann <simon.hausmann@nokia.com>2012-05-11 09:43:24 +0200
commit1b914638db989aaa98631a1c1e02c7b2d44805d8 (patch)
tree87f4fd2c7b38db320079a5de8877890d2ca3c485 /Source/WebCore/rendering/RenderMediaControlsChromium.cpp
parent2cf6c8816a73e0132bd8fa3b509d62d7c51b6e47 (diff)
downloadqtwebkit-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.cpp14
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);