Changeset 116539 in webkit


Ignore:
Timestamp:
May 9, 2012 10:02:50 AM (12 years ago)
Author:
fischman@chromium.org
Message:

[chromium] Support multiple buffered time ranges
https://bugs.webkit.org/show_bug.cgi?id=85926

Reviewed by Eric Carlson.

Preserve existing rendering of a single rect even in the presence of multiple buffered regions.

No new tests as this change has no functional effects.

  • rendering/RenderMediaControlsChromium.cpp:

(WebCore::paintMediaSlider):

Location:
trunk/Source/WebCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r116538 r116539  
     12012-05-09  Ami Fischman  <fischman@chromium.org>
     2
     3        [chromium] Support multiple buffered time ranges
     4        https://bugs.webkit.org/show_bug.cgi?id=85926
     5
     6        Reviewed by Eric Carlson.
     7
     8        Preserve existing rendering of a single rect even in the presence of multiple buffered regions.
     9
     10        No new tests as this change has no functional effects.
     11
     12        * rendering/RenderMediaControlsChromium.cpp:
     13        (WebCore::paintMediaSlider):
     14
    1152012-05-09  Dana Jansens  <danakj@chromium.org>
    216
  • trunk/Source/WebCore/rendering/RenderMediaControlsChromium.cpp

    r111041 r116539  
    3434#include "HTMLNames.h"
    3535#include "PaintInfo.h"
     36#include "TimeRanges.h"
    3637
    3738namespace WebCore {
     
    128129
    129130    // Draw the buffered ranges.
    130     // FIXME: Draw multiple ranges if there are multiple buffered ranges.
     131    // FIXME: Draw multiple ranges if there are multiple buffered ranges. http://webkit.org/b/85925
    131132    IntRect bufferedRect = rect;
    132133    bufferedRect.inflate(-style->borderLeftWidth());
    133134
    134135    double bufferedWidth = 0.0;
    135     if (mediaElement->percentLoaded() > 0.0) {
     136    RefPtr<TimeRanges> bufferedTimeRanges = mediaElement->buffered();
     137    if (bufferedTimeRanges->length() > 0) {
    136138        // Account for the width of the slider thumb.
    137139        Image* mediaSliderThumb = getMediaSliderThumb();
     
    140142        if (rectWidth < 0.0)
    141143            rectWidth = 0.0;
    142         bufferedWidth = rectWidth * mediaElement->percentLoaded() + thumbWidth;
     144        // Preserve old behavior pending resolution of UI design of multiple ranges (see FIXME above).
     145        // http://webkit.org/b/85926
     146        double fakePercentLoaded = 0;
     147        float duration = mediaElement->duration();
     148        if (duration && !isinf(duration))
     149            fakePercentLoaded = bufferedTimeRanges->end(bufferedTimeRanges->length() - 1, ASSERT_NO_EXCEPTION) / duration;
     150        bufferedWidth = rectWidth * fakePercentLoaded + thumbWidth;
    143151    }
    144152    bufferedRect.setWidth(bufferedWidth);
Note: See TracChangeset for help on using the changeset viewer.