Bug 117421

Summary: [WebVTT] HTML5 "space" characters around "-->" are not required
Product: WebKit Reporter: Ryosuke Niwa <rniwa>
Component: MediaAssignee: Brent Fulgham <bfulgham>
Status: RESOLVED FIXED    
Severity: Normal CC: bfulgham, eric.carlson, jer.noble, jonlee, webkit-bug-importer
Priority: P2 Keywords: BlinkMergeCandidate
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch eric.carlson: review+

Description Ryosuke Niwa 2013-06-10 14:35:15 PDT
Consider merging https://chromium.googlesource.com/chromium/blink/+/4ef469cd627a13696b88e285ae28a60e38f9c286

Make whitespace around cue-timings separator optional, in order to comply with WebVTT draft: 
From http://dev.w3.org/html5/webvtt/#dfn-collect-webvtt-cue-timings-and-settings 
``` 
4. Collect a WebVTT timestamp. If that algorithm fails, then abort these steps and return failure. Otherwise, let cue's text track cue start time be the collected time. 
5. Skip whitespace. 
6. If the character at position is not a U+002D HYPHEN-MINUS character (-) then abort these steps and return failure. Otherwise, move position forwards one character. 
7. If the character at position is not a U+002D HYPHEN-MINUS character (-) then abort these steps and return failure. Otherwise, move position forwards one character. 
8. If the character at position is not a U+003E GREATER-THAN SIGN character (>) then abort these steps and return failure. Otherwise, move position forwards one character. 
9. Skip whitespace. 
10. Collect a WebVTT timestamp. If that algorithm fails, then abort these steps and return failure. Otherwise, let cue's text track cue end time be the collected time. 
``` 
"Skip whitespace" refers to terms defined in the HTML standard. http://www.w3.org/html/wg/drafts/html/master/single-page.html#skip-whitespace 
``` 
The step skip whitespace means that the user agent must collect a sequence of characters that are space characters. The step skip White_Space characters means that the user agent must collect a sequence of characters that are White_Space characters. In both cases, the collected characters are not used. 
``` 
The step "collect a sequence of characters" does not forbid the sequence from being empty, and as such, the whitespace is in fact optional. 
Additionally, the skip whitespace step is not limited to skipping SPACE U+0020 and TAB U+0009 characters, but also includes FORM FEED, LINE FEED and CARRIAGE RETURN (Although, in practice, CR/LF should not be encountered in this section). 
This patch removes the expected '\t' || ' ', a rule which seems to have been inspired by the "SYNTAX" section of the WebVTT spec, which I am told by editors is meant to be ignored by parser implementors, as silly as that is. 
https://code.google.com/p/chromium/issues/detail?id=242158
Comment 1 Brent Fulgham 2014-03-12 13:59:19 PDT
Created attachment 226552 [details]
Patch
Comment 2 Brent Fulgham 2014-03-12 14:09:39 PDT
Committed r165498: <http://trac.webkit.org/changeset/165498>