Difference between revisions of "WebVTT Bug Filing Plan"

From CDOT Wiki
Jump to: navigation, search
(Created page with '==Overview== Trying to maintain a large patch over a long period of time is painful--the code around it constantly changes and breaks things, it's hard for more than one person …')
 
(Bugs To Be Filed)
 
(14 intermediate revisions by 6 users not shown)
Line 6: Line 6:
  
 
We need to file smaller, secondary bugs to deal with the different parts of this work.  That way we can (hopefully) land things in batches, and not block the whole thing on being 100% completed.  Also, people can work in parallel.
 
We need to file smaller, secondary bugs to deal with the different parts of this work.  That way we can (hopefully) land things in batches, and not block the whole thing on being 100% completed.  Also, people can work in parallel.
 +
 +
==Major Implementation Tasks==
  
 
Ralph suggested an initial strategy, which I've expanded somewhat:
 
Ralph suggested an initial strategy, which I've expanded somewhat:
  
* the nsVideoFrame changes to add the display div.  Flowing from this will be other layout considerations, like text positioning, CSS, and other display aspects of the WebVTT spec (not all of which we'll finish this term).
+
# the nsVideoFrame changes to add the display div.  Flowing from this will be other layout considerations, like text positioning, CSS, and other display aspects of the WebVTT spec (not all of which we'll finish this term).
* the import and build support for the parser library in media/webvtt.  This will include massaging libwebvtt's public API to work well with Mozilla.
+
# the import and build support for the parser library in media/webvtt.  This will include massaging libwebvtt's public API to work well with Mozilla.
* the WebVTTDecoder (see [https://bugzilla.mozilla.org/show_bug.cgi?id=629350#c29 discussion]) implementation in content/media/webvtt
+
# the TextTrackDecoder (see [https://bugzilla.mozilla.org/show_bug.cgi?id=629350#c29 discussion]) implementation in content/media/webvtt
* DOM bindings for HTMLTrackElement, TextTrack, TextTrackCue, TextTrackCueList.  Flowing from this will be the DOM API implementation for everything these objects can do.
+
# DOM bindings for HTMLTrackElement, TextTrack, TextTrackCue, TextTrackCueList.  Flowing from this will be the DOM API implementation for everything these objects can do.
* DOM Tests to test the new types (HTMLTrackElement, TextTrack, TextTrackCue, TextTrackCueList) and also any aspects of the WebVTT spec related to rendering.
+
# DOM Tests to test the new types (HTMLTrackElement, TextTrack, TextTrackCue, TextTrackCueList) and also any aspects of the WebVTT spec related to rendering.
  
 
Files that this [https://bug629350.bugzilla.mozilla.org/attachment.cgi?id=704716 initial patch] touches:
 
Files that this [https://bug629350.bugzilla.mozilla.org/attachment.cgi?id=704716 initial patch] touches:
Line 57: Line 59:
 
toolkit/toolkit-tiers.mk
 
toolkit/toolkit-tiers.mk
 
</pre>
 
</pre>
 +
 +
==Bugs To Be Filed==
 +
 +
1. nsVideoFrame changes
 +
 +
* Assigned To: Jesse Silver
 +
* Description: "[webvtt] Add captions div to nsVideoFrame for webvtt subtitle display"
 +
* Product: Core
 +
* Component: Layout
 +
* Bugzilla: https://bugzilla.mozilla.org/show_bug.cgi?id=833388
 +
* Files to consider from patch:
 +
<pre>
 +
layout/build/Makefile.in
 +
layout/generic/nsVideoFrame.cpp
 +
layout/generic/nsVideoFrame.h
 +
layout/style/html.css
 +
</pre>
 +
 +
2. Build support for libwebvtt parser
 +
 +
* Assigned To: caitp
 +
* Description: "[webvtt] Integrate libwebvtt parser into build system"
 +
* Product: Core
 +
* Component: Video/Audio
 +
* Bugzilla: https://bugzilla.mozilla.org/show_bug.cgi?id=833403
 +
* Files to consider from patch:
 +
<pre>
 +
configure.in
 +
media/webvtt/Makefile.in
 +
media/webvtt/update.sh
 +
layout/build/Makefile.in
 +
toolkit/toolkit-tiers.mk
 +
</pre>
 +
 +
3. TextTrackDecoder
 +
 +
* Assigned To: Rick Eyre, Shayan Zafar
 +
* Description: "[webvtt] Implement TextTrackDecoder to manage the libwebvtt decoder"
 +
* Product: Core
 +
* Component: Video/Audio
 +
* Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=833382
 +
* Files to consider from patch:
 +
<pre>
 +
content/media/Makefile.in
 +
content/media/MediaDecoder.h
 +
content/media/webvtt/Makefile.in
 +
content/media/webvtt/nsWebVTTDecoder.cpp
 +
content/media/webvtt/nsWebVTTDecoder.h
 +
content/media/webvtt/nsWebVTTReader.cpp
 +
content/media/webvtt/nsWebVTTReader.h
 +
content/html/content/public/nsHTMLMediaElement.h
 +
content/html/content/src/nsHTMLMediaElement.cpp
 +
</pre>
 +
 +
4. DOM Bindings
 +
 +
* Assigned To: Dale
 +
* Description: "[webvtt] Implement Track element and TextTrack* DOM classes"
 +
* Product: Core
 +
* Component: Video/Audio
 +
* Bugzilla: https://bugzilla.mozilla.org/show_bug.cgi?id=833385
 +
* Files to consider from patch:
 +
<pre>
 +
content/base/src/nsGkAtomList.h
 +
content/html/content/src/HTMLTrackElement.cpp
 +
content/html/content/src/HTMLTrackElement.h
 +
content/html/content/src/Makefile.in
 +
content/html/content/src/nsGenericHTMLElement.h
 +
dom/media/Makefile.in
 +
dom/media/TextTrack.cpp
 +
dom/media/TextTrack.h
 +
dom/media/TextTrackCue.cpp
 +
dom/media/TextTrackCue.h
 +
dom/media/TextTrackCueList.cpp
 +
dom/media/TextTrackCueList.h
 +
dom/webidl/HTMLTrackElement.webidl
 +
dom/webidl/TextTrack.webidl
 +
dom/webidl/TextTrackCue.webidl
 +
dom/webidl/TextTrackCueList.webidl
 +
dom/webidl/WebIDL.mk
 +
editor/libeditor/html/nsHTMLEditUtils.cpp
 +
parser/htmlparser/public/nsHTMLTagList.h
 +
parser/htmlparser/src/nsElementTable.cpp
 +
parser/htmlparser/src/nsHTMLTags.cpp
 +
</pre>
 +
 +
5. DOM Tests
 +
 +
* Assigned To: jbraffoul, msaad
 +
* Description: "[webvtt] Tests for Track element and TextTrack* DOM classes"
 +
* Product: Core
 +
* Component: Video/Audio
 +
* Bugzilla Link : https://bugzilla.mozilla.org/show_bug.cgi?id=833386

Latest revision as of 15:32, 24 January 2013

Overview

Trying to maintain a large patch over a long period of time is painful--the code around it constantly changes and breaks things, it's hard for more than one person to work on it, it's harder to review, etc. A better strategy is to have a group of related, smaller bugs.

We want to break up the track element bug into smaller bugs, and use the current one as a tracking bug. A tracking bug is a bug that lists dependent bugs, and allows people to see when sub-issues get resolved.

We need to file smaller, secondary bugs to deal with the different parts of this work. That way we can (hopefully) land things in batches, and not block the whole thing on being 100% completed. Also, people can work in parallel.

Major Implementation Tasks

Ralph suggested an initial strategy, which I've expanded somewhat:

  1. the nsVideoFrame changes to add the display div. Flowing from this will be other layout considerations, like text positioning, CSS, and other display aspects of the WebVTT spec (not all of which we'll finish this term).
  2. the import and build support for the parser library in media/webvtt. This will include massaging libwebvtt's public API to work well with Mozilla.
  3. the TextTrackDecoder (see discussion) implementation in content/media/webvtt
  4. DOM bindings for HTMLTrackElement, TextTrack, TextTrackCue, TextTrackCueList. Flowing from this will be the DOM API implementation for everything these objects can do.
  5. DOM Tests to test the new types (HTMLTrackElement, TextTrack, TextTrackCue, TextTrackCueList) and also any aspects of the WebVTT spec related to rendering.

Files that this initial patch touches:

configure.in
content/base/src/nsGkAtomList.h
content/html/content/public/nsHTMLMediaElement.h
content/html/content/src/HTMLTrackElement.cpp
content/html/content/src/HTMLTrackElement.h
content/html/content/src/Makefile.in
content/html/content/src/nsGenericHTMLElement.h
content/html/content/src/nsHTMLMediaElement.cpp
content/media/Makefile.in
content/media/MediaDecoder.h
content/media/webvtt/Makefile.in
content/media/webvtt/nsWebVTTDecoder.cpp
content/media/webvtt/nsWebVTTDecoder.h
content/media/webvtt/nsWebVTTReader.cpp
content/media/webvtt/nsWebVTTReader.h
dom/media/Makefile.in
dom/media/TextTrack.cpp
dom/media/TextTrack.h
dom/media/TextTrackCue.cpp
dom/media/TextTrackCue.h
dom/media/TextTrackCueList.cpp
dom/media/TextTrackCueList.h
dom/webidl/HTMLTrackElement.webidl
dom/webidl/TextTrack.webidl
dom/webidl/TextTrackCue.webidl
dom/webidl/TextTrackCueList.webidl
dom/webidl/WebIDL.mk
editor/libeditor/html/nsHTMLEditUtils.cpp
layout/build/Makefile.in
layout/generic/nsVideoFrame.cpp
layout/generic/nsVideoFrame.h
layout/style/html.css
media/webvtt/Makefile.in
media/webvtt/update.sh
parser/htmlparser/public/nsHTMLTagList.h
parser/htmlparser/src/nsElementTable.cpp
parser/htmlparser/src/nsHTMLTags.cpp
toolkit/toolkit-tiers.mk

Bugs To Be Filed

1. nsVideoFrame changes

layout/build/Makefile.in
layout/generic/nsVideoFrame.cpp
layout/generic/nsVideoFrame.h
layout/style/html.css

2. Build support for libwebvtt parser

configure.in
media/webvtt/Makefile.in
media/webvtt/update.sh
layout/build/Makefile.in
toolkit/toolkit-tiers.mk

3. TextTrackDecoder

content/media/Makefile.in
content/media/MediaDecoder.h
content/media/webvtt/Makefile.in
content/media/webvtt/nsWebVTTDecoder.cpp
content/media/webvtt/nsWebVTTDecoder.h
content/media/webvtt/nsWebVTTReader.cpp
content/media/webvtt/nsWebVTTReader.h
content/html/content/public/nsHTMLMediaElement.h
content/html/content/src/nsHTMLMediaElement.cpp

4. DOM Bindings

content/base/src/nsGkAtomList.h
content/html/content/src/HTMLTrackElement.cpp
content/html/content/src/HTMLTrackElement.h
content/html/content/src/Makefile.in
content/html/content/src/nsGenericHTMLElement.h
dom/media/Makefile.in
dom/media/TextTrack.cpp
dom/media/TextTrack.h
dom/media/TextTrackCue.cpp
dom/media/TextTrackCue.h
dom/media/TextTrackCueList.cpp
dom/media/TextTrackCueList.h
dom/webidl/HTMLTrackElement.webidl
dom/webidl/TextTrack.webidl
dom/webidl/TextTrackCue.webidl
dom/webidl/TextTrackCueList.webidl
dom/webidl/WebIDL.mk
editor/libeditor/html/nsHTMLEditUtils.cpp
parser/htmlparser/public/nsHTMLTagList.h
parser/htmlparser/src/nsElementTable.cpp
parser/htmlparser/src/nsHTMLTags.cpp

5. DOM Tests