Changeset 100085 in webkit


Ignore:
Timestamp:
Nov 12, 2011 4:47:57 PM (12 years ago)
Author:
annacc@chromium.org
Message:

Add WebVTT parsing layout tests. Patch also includes creating a TextTrackCueList
in TextTrack::cues() and observing WebVTT chronological cue order.
https://bugs.webkit.org/show_bug.cgi?id=72215

Reviewed by Eric Carlson.

Source/WebCore:

Tests: media/track/track-webvtt-tc000-empty.html

media/track/track-webvtt-tc001-utf8.html
media/track/track-webvtt-tc002-bom.html
media/track/track-webvtt-tc003-newlines.html
media/track/track-webvtt-tc004-magic-header.html
media/track/track-webvtt-tc005-header-comment.html
media/track/track-webvtt-tc006-cue-identifiers.html
media/track/track-webvtt-tc007-cue-no-id.html
media/track/track-webvtt-tc008-timings-no-hours.html
media/track/track-webvtt-tc009-timings-hour.html
media/track/track-webvtt-tc010-no-timings.html
media/track/track-webvtt-tc011-blank-lines.html
media/track/track-webvtt-tc012-out-of-order.html
media/track/track-webvtt-tc013-settings.html
media/track/track-webvtt-tc014-alignment.html
media/track/track-webvtt-tc015-positioning.html
media/track/track-webvtt-tc016-align-positioning.html
media/track/track-webvtt-tc017-line-position.html
media/track/track-webvtt-tc018-align-text-line-position.html
media/track/track-webvtt-tc019-cue-size.html
media/track/track-webvtt-tc020-cue-size-align.html
media/track/track-webvtt-tc021-valign.html
media/track/track-webvtt-tc022-entities.html
media/track/track-webvtt-tc023-markup.html
media/track/track-webvtt-tc024-timestamp.html
media/track/track-webvtt-tc025-class-markup.html
media/track/track-webvtt-tc026-voice.html
media/track/track-webvtt-tc027-empty-cue.html
media/track/track-webvtt-tc028-unsupported-markup.html

  • html/TextTrack.cpp:

(WebCore::TextTrack::~TextTrack): Only call client if m_cues has been allocated.
(WebCore::TextTrack::cues): Create a TextTrackCueList if we don't already have one.

  • html/TextTrack.h: The cues() function can no longer be const.
  • html/TextTrackCueList.cpp:

(WebCore::TextTrackCueList::add): Only add the cue if the startTime comes after

all other startTimes in the list.

LayoutTests:

  • media/track/captions-webvtt/tc012-out-of-order.vtt: Fix typo.
  • media/track/track-webvtt-tc000-empty-expected.txt: Added.
  • media/track/track-webvtt-tc000-empty.html: Added.
  • media/track/track-webvtt-tc001-utf8-expected.txt: Added.
  • media/track/track-webvtt-tc001-utf8.html: Added.
  • media/track/track-webvtt-tc002-bom-expected.txt: Added.
  • media/track/track-webvtt-tc002-bom.html: Added.
  • media/track/track-webvtt-tc003-newlines-expected.txt: Added.
  • media/track/track-webvtt-tc003-newlines.html: Added.
  • media/track/track-webvtt-tc004-magic-header-expected.txt: Added.
  • media/track/track-webvtt-tc004-magic-header.html: Added.
  • media/track/track-webvtt-tc005-header-comment-expected.txt: Added.
  • media/track/track-webvtt-tc005-header-comment.html: Added.
  • media/track/track-webvtt-tc006-cue-identifiers-expected.txt: Added.
  • media/track/track-webvtt-tc006-cue-identifiers.html: Added.
  • media/track/track-webvtt-tc007-cue-no-id-expected.txt: Added.
  • media/track/track-webvtt-tc007-cue-no-id.html: Added.
  • media/track/track-webvtt-tc008-timings-no-hours-expected.txt: Added.
  • media/track/track-webvtt-tc008-timings-no-hours.html: Added.
  • media/track/track-webvtt-tc009-timings-hour-expected.txt: Added.
  • media/track/track-webvtt-tc009-timings-hour.html: Added.
  • media/track/track-webvtt-tc010-no-timings-expected.txt: Added.
  • media/track/track-webvtt-tc010-no-timings.html: Added.
  • media/track/track-webvtt-tc011-blank-lines-expected.txt: Added.
  • media/track/track-webvtt-tc011-blank-lines.html: Added.
  • media/track/track-webvtt-tc012-out-of-order-expected.txt: Added.
  • media/track/track-webvtt-tc012-out-of-order.html: Added.
  • media/track/track-webvtt-tc013-settings-expected.txt: Added.
  • media/track/track-webvtt-tc013-settings.html: Added.
  • media/track/track-webvtt-tc014-alignment-expected.txt: Added.
  • media/track/track-webvtt-tc014-alignment.html: Added.
  • media/track/track-webvtt-tc015-positioning-expected.txt: Added.
  • media/track/track-webvtt-tc015-positioning.html: Added.
  • media/track/track-webvtt-tc016-align-positioning-expected.txt: Added.
  • media/track/track-webvtt-tc016-align-positioning.html: Added.
  • media/track/track-webvtt-tc017-line-position-expected.txt: Added.
  • media/track/track-webvtt-tc017-line-position.html: Added.
  • media/track/track-webvtt-tc018-align-text-line-position-expected.txt: Added.
  • media/track/track-webvtt-tc018-align-text-line-position.html: Added.
  • media/track/track-webvtt-tc019-cue-size-expected.txt: Added.
  • media/track/track-webvtt-tc019-cue-size.html: Added.
  • media/track/track-webvtt-tc020-cue-size-align-expected.txt: Added.
  • media/track/track-webvtt-tc020-cue-size-align.html: Added.
  • media/track/track-webvtt-tc021-valign-expected.txt: Added.
  • media/track/track-webvtt-tc021-valign.html: Added.
  • media/track/track-webvtt-tc022-entities-expected.txt: Added.
  • media/track/track-webvtt-tc022-entities.html: Added.
  • media/track/track-webvtt-tc023-markup-expected.txt: Added.
  • media/track/track-webvtt-tc023-markup.html: Added.
  • media/track/track-webvtt-tc024-timestamp-expected.txt: Added.
  • media/track/track-webvtt-tc024-timestamp.html: Added.
  • media/track/track-webvtt-tc025-class-markup-expected.txt: Added.
  • media/track/track-webvtt-tc025-class-markup.html: Added.
  • media/track/track-webvtt-tc026-voice-expected.txt: Added.
  • media/track/track-webvtt-tc026-voice.html: Added.
  • media/track/track-webvtt-tc027-empty-cue-expected.txt: Added.
  • media/track/track-webvtt-tc027-empty-cue.html: Added.
  • media/track/track-webvtt-tc028-unsupported-markup-expected.txt: Added.
  • media/track/track-webvtt-tc028-unsupported-markup.html: Added.
Location:
trunk
Files:
58 added
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r100078 r100085  
     12011-11-12  Anna Cavender  <annacc@chromium.org>
     2
     3        Add WebVTT parsing layout tests.  Patch also includes creating a TextTrackCueList
     4        in TextTrack::cues() and observing WebVTT chronological cue order.
     5        https://bugs.webkit.org/show_bug.cgi?id=72215
     6
     7        Reviewed by Eric Carlson.
     8
     9        * media/track/captions-webvtt/tc012-out-of-order.vtt: Fix typo.
     10        * media/track/track-webvtt-tc000-empty-expected.txt: Added.
     11        * media/track/track-webvtt-tc000-empty.html: Added.
     12        * media/track/track-webvtt-tc001-utf8-expected.txt: Added.
     13        * media/track/track-webvtt-tc001-utf8.html: Added.
     14        * media/track/track-webvtt-tc002-bom-expected.txt: Added.
     15        * media/track/track-webvtt-tc002-bom.html: Added.
     16        * media/track/track-webvtt-tc003-newlines-expected.txt: Added.
     17        * media/track/track-webvtt-tc003-newlines.html: Added.
     18        * media/track/track-webvtt-tc004-magic-header-expected.txt: Added.
     19        * media/track/track-webvtt-tc004-magic-header.html: Added.
     20        * media/track/track-webvtt-tc005-header-comment-expected.txt: Added.
     21        * media/track/track-webvtt-tc005-header-comment.html: Added.
     22        * media/track/track-webvtt-tc006-cue-identifiers-expected.txt: Added.
     23        * media/track/track-webvtt-tc006-cue-identifiers.html: Added.
     24        * media/track/track-webvtt-tc007-cue-no-id-expected.txt: Added.
     25        * media/track/track-webvtt-tc007-cue-no-id.html: Added.
     26        * media/track/track-webvtt-tc008-timings-no-hours-expected.txt: Added.
     27        * media/track/track-webvtt-tc008-timings-no-hours.html: Added.
     28        * media/track/track-webvtt-tc009-timings-hour-expected.txt: Added.
     29        * media/track/track-webvtt-tc009-timings-hour.html: Added.
     30        * media/track/track-webvtt-tc010-no-timings-expected.txt: Added.
     31        * media/track/track-webvtt-tc010-no-timings.html: Added.
     32        * media/track/track-webvtt-tc011-blank-lines-expected.txt: Added.
     33        * media/track/track-webvtt-tc011-blank-lines.html: Added.
     34        * media/track/track-webvtt-tc012-out-of-order-expected.txt: Added.
     35        * media/track/track-webvtt-tc012-out-of-order.html: Added.
     36        * media/track/track-webvtt-tc013-settings-expected.txt: Added.
     37        * media/track/track-webvtt-tc013-settings.html: Added.
     38        * media/track/track-webvtt-tc014-alignment-expected.txt: Added.
     39        * media/track/track-webvtt-tc014-alignment.html: Added.
     40        * media/track/track-webvtt-tc015-positioning-expected.txt: Added.
     41        * media/track/track-webvtt-tc015-positioning.html: Added.
     42        * media/track/track-webvtt-tc016-align-positioning-expected.txt: Added.
     43        * media/track/track-webvtt-tc016-align-positioning.html: Added.
     44        * media/track/track-webvtt-tc017-line-position-expected.txt: Added.
     45        * media/track/track-webvtt-tc017-line-position.html: Added.
     46        * media/track/track-webvtt-tc018-align-text-line-position-expected.txt: Added.
     47        * media/track/track-webvtt-tc018-align-text-line-position.html: Added.
     48        * media/track/track-webvtt-tc019-cue-size-expected.txt: Added.
     49        * media/track/track-webvtt-tc019-cue-size.html: Added.
     50        * media/track/track-webvtt-tc020-cue-size-align-expected.txt: Added.
     51        * media/track/track-webvtt-tc020-cue-size-align.html: Added.
     52        * media/track/track-webvtt-tc021-valign-expected.txt: Added.
     53        * media/track/track-webvtt-tc021-valign.html: Added.
     54        * media/track/track-webvtt-tc022-entities-expected.txt: Added.
     55        * media/track/track-webvtt-tc022-entities.html: Added.
     56        * media/track/track-webvtt-tc023-markup-expected.txt: Added.
     57        * media/track/track-webvtt-tc023-markup.html: Added.
     58        * media/track/track-webvtt-tc024-timestamp-expected.txt: Added.
     59        * media/track/track-webvtt-tc024-timestamp.html: Added.
     60        * media/track/track-webvtt-tc025-class-markup-expected.txt: Added.
     61        * media/track/track-webvtt-tc025-class-markup.html: Added.
     62        * media/track/track-webvtt-tc026-voice-expected.txt: Added.
     63        * media/track/track-webvtt-tc026-voice.html: Added.
     64        * media/track/track-webvtt-tc027-empty-cue-expected.txt: Added.
     65        * media/track/track-webvtt-tc027-empty-cue.html: Added.
     66        * media/track/track-webvtt-tc028-unsupported-markup-expected.txt: Added.
     67        * media/track/track-webvtt-tc028-unsupported-markup.html: Added.
     68
    1692011-11-12  Antti Koivisto  <antti@apple.com>
    270
  • trunk/LayoutTests/media/track/captions-webvtt/tc012-out-of-order.vtt

    r93891 r100085  
    11WEBVTT
    2 Cues that are temporally out of order are ignored (2nd cue here is ignored).
     2Cues that are temporally out of order are ignored (3rd cue here is ignored).
    33
    441
  • trunk/Source/WebCore/ChangeLog

    r100084 r100085  
     12011-11-12  Anna Cavender  <annacc@chromium.org>
     2
     3        Add WebVTT parsing layout tests.  Patch also includes creating a TextTrackCueList
     4        in TextTrack::cues() and observing WebVTT chronological cue order.
     5        https://bugs.webkit.org/show_bug.cgi?id=72215
     6
     7        Reviewed by Eric Carlson.
     8
     9        Tests: media/track/track-webvtt-tc000-empty.html
     10               media/track/track-webvtt-tc001-utf8.html
     11               media/track/track-webvtt-tc002-bom.html
     12               media/track/track-webvtt-tc003-newlines.html
     13               media/track/track-webvtt-tc004-magic-header.html
     14               media/track/track-webvtt-tc005-header-comment.html
     15               media/track/track-webvtt-tc006-cue-identifiers.html
     16               media/track/track-webvtt-tc007-cue-no-id.html
     17               media/track/track-webvtt-tc008-timings-no-hours.html
     18               media/track/track-webvtt-tc009-timings-hour.html
     19               media/track/track-webvtt-tc010-no-timings.html
     20               media/track/track-webvtt-tc011-blank-lines.html
     21               media/track/track-webvtt-tc012-out-of-order.html
     22               media/track/track-webvtt-tc013-settings.html
     23               media/track/track-webvtt-tc014-alignment.html
     24               media/track/track-webvtt-tc015-positioning.html
     25               media/track/track-webvtt-tc016-align-positioning.html
     26               media/track/track-webvtt-tc017-line-position.html
     27               media/track/track-webvtt-tc018-align-text-line-position.html
     28               media/track/track-webvtt-tc019-cue-size.html
     29               media/track/track-webvtt-tc020-cue-size-align.html
     30               media/track/track-webvtt-tc021-valign.html
     31               media/track/track-webvtt-tc022-entities.html
     32               media/track/track-webvtt-tc023-markup.html
     33               media/track/track-webvtt-tc024-timestamp.html
     34               media/track/track-webvtt-tc025-class-markup.html
     35               media/track/track-webvtt-tc026-voice.html
     36               media/track/track-webvtt-tc027-empty-cue.html
     37               media/track/track-webvtt-tc028-unsupported-markup.html
     38
     39        * html/TextTrack.cpp:
     40        (WebCore::TextTrack::~TextTrack): Only call client if m_cues has been allocated.
     41        (WebCore::TextTrack::cues): Create a TextTrackCueList if we don't already have one.
     42        * html/TextTrack.h: The cues() function can no longer be const.
     43        * html/TextTrackCueList.cpp:
     44        (WebCore::TextTrackCueList::add): Only add the cue if the startTime comes after
     45            all other startTimes in the list.
     46
    1472011-11-12  Nat Duca  <nduca@chromium.org>
    248
  • trunk/Source/WebCore/html/TextTrack.cpp

    r100064 r100085  
    5555TextTrack::~TextTrack()
    5656{
    57     if (m_client)
     57    if (m_client && m_cues)
    5858        m_client->textTrackRemoveCues(this, m_cues.get());
    5959    clearClient();
     
    104104}
    105105
    106 TextTrackCueList* TextTrack::cues() const
     106TextTrackCueList* TextTrack::cues()
    107107{
     108    if (!m_cues)
     109        m_cues = TextTrackCueList::create();   
     110
    108111    // 4.8.10.12.5 If the text track mode ... is not the text track disabled mode,
    109112    // then the cues attribute must return a live TextTrackCueList object ...
  • trunk/Source/WebCore/html/TextTrack.h

    r100064 r100085  
    7272    void setMode(unsigned short, ExceptionCode&);
    7373
    74     TextTrackCueList* cues() const;
     74    TextTrackCueList* cues();
    7575    TextTrackCueList* activeCues() const;
    7676
  • trunk/Source/WebCore/html/TextTrackCueList.cpp

    r100064 r100085  
    7979void TextTrackCueList::add(PassRefPtr<TextTrackCue> cue)
    8080{
     81    // WebVTT cue timings
     82    // 1. The time represented by this WebVTT timestamp must be greater than or equal
     83    // to the start time offsets of all previous cues in the file.
     84    // http://www.whatwg.org/specs/web-apps/current-work/#webvtt-cue-timings
     85    // Note: because this requirement is specific to WebVTT, we may want to check first
     86    // whether the cues in this list came from a WebVTT file.
     87    if (!m_list.isEmpty() && cue->startTime() < m_list.last()->startTime())
     88        return;
    8189    add(cue, 0, m_list.size());
    8290}
Note: See TracChangeset for help on using the changeset viewer.