[webkit-reviews] review granted: [Bug 24849] Implement HTMLMediaElement 'played' attribute : [Attachment 29539] patch v6.
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Thu Apr 16 11:31:49 PDT 2009
Simon Fraser (smfr) <simon.fraser at apple.com> has granted Pierre d'Herbemont
<pdherbemont at apple.com>'s request for review:
Bug 24849: Implement HTMLMediaElement 'played' attribute
https://bugs.webkit.org/show_bug.cgi?id=24849
Attachment 29539: patch v6.
https://bugs.webkit.org/attachment.cgi?id=29539&action=review
------- Additional Comments from Simon Fraser (smfr) <simon.fraser at apple.com>
> diff --git a/LayoutTests/media/video-played-expected.txt
b/LayoutTests/media/video-played-expected.txt
> new file mode 100644
> index 0000000..ff13698
> --- /dev/null
> +++ b/LayoutTests/media/video-played-expected.txt
> @@ -0,0 +1,125 @@
> +FAIL: Timed out waiting for notifyDone to be called
FAIL indeed! Expected results should not have FAIL in them.
> -2009-04-15 Pierre d'Herbemont <pdherbemont at apple.com>
> +2009-04-13 Pierre d'Herbemont <pdherbemont at apple.com>
> +
> + Reviewed by NOBODY (OOPS!).
> +
> + Add support the the media element 'played' attribute.
"for the"
I'd like to see a little more verbage saying what adding this support entailed.
> PassRefPtr<TimeRanges> HTMLMediaElement::played() const
> {
> - // FIXME track played
> - return TimeRanges::create();
> + if (m_playing)
> + m_playedTimeRanges->add(m_lastSeekTime, currentTime());
> + return m_playedTimeRanges;
> }
I think this needs to return a copy of the ranges, so that the pointer you hand
back
is not 'live'.
> +{
> + ASSERT(start <= end);
> + unsigned int overlappingArcIndex;
> + Range addedRange(start, end);
> +
> + // For each present range check if we need to:
> + // - merge with the added range, in case we are overlapping or
contiguous
> + // - Need to insert in place, we we are completely, not overlapping and
not contiguous
> + // in between two ranges.
> + //
> + // TODO: Given that we assume that ranges are correctly ordered, we
could optimize the insert place.
> +
> + for (overlappingArcIndex = 0; overlappingArcIndex < m_ranges.size();
overlappingArcIndex++) {
> + if (addedRange.isOverlappingRange(m_ranges[overlappingArcIndex])
> + || addedRange.isContiguousWithRange(m_ranges[overlappingArcIndex]))
Normal style is to put the operators on the end of the previous line.
> + {
Brace should be on previous line.
> + // We need to merge the addedRange and that range.
> + addedRange =
addedRange.unionWithOverlappingOrContiguousRange(m_ranges[overlappingArcIndex])
;
> + m_ranges.remove(overlappingArcIndex);
> + overlappingArcIndex--;
> + } else {
> + // Check the case for which there is no more to do
> + if (!overlappingArcIndex) {
> + if (addedRange.isBeforeRange(m_ranges[0]))
> + {
Brace style wrong here.
> + if (m_ranges[overlappingArcIndex -
1].isBeforeRange(addedRange)
> + &&
addedRange.isBeforeRange(m_ranges[overlappingArcIndex])) {
Put && on previous line.
> diff --git a/WebCore/html/TimeRanges.h b/WebCore/html/TimeRanges.h
> + // We consider all the Ranges to be semi-interval [------[
"to be a semi-interval", or "to be the semi-interval".
> + inline bool isOverlappingRange(Range range)
The argument should be a const Range&
> + inline bool isContiguousWithRange(Range range)
The argument should be a const Range&
> + inline Range unionWithOverlappingOrContiguousRange(Range range)
The argument should be a const Range&
> + inline bool isBeforeRange(Range range)
The argument should be a const Range&
r=me with those fixes.
More information about the webkit-reviews
mailing list