[webkit-reviews] review granted: [Bug 79746] Main rendering steps for displaying the cue boxes : [Attachment 130702] Updated patch
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Thu Mar 8 10:42:02 PST 2012
Eric Carlson <eric.carlson at apple.com> has granted Victor Carbune
<vcarbune at adobe.com>'s request for review:
Bug 79746: Main rendering steps for displaying the cue boxes
https://bugs.webkit.org/show_bug.cgi?id=79746
Attachment 130702: Updated patch
https://bugs.webkit.org/attachment.cgi?id=130702&action=review
------- Additional Comments from Eric Carlson <eric.carlson at apple.com>
View in context: https://bugs.webkit.org/attachment.cgi?id=130702&action=review
I made a few minor suggestions, but this looks great overall! It is probably
worth regenerating the ChangeLogs to make sure all changes are documented.
> Source/WebCore/ChangeLog:13
> + * css/mediaControls.css:
> + (video::-webkit-media-text-track-display): Adjusted text color to
match
> + the color required in the WebVTT spec (section 3.5.1 'color'
property)
It is worth mentioning the changes you made to position the controls.
> Source/WebCore/css/mediaControls.css:44
> - display: block;
> + display: -webkit-box;
> direction: ltr;
> + -webkit-box-align: start;
> + -webkit-box-pack: end;
> + -webkit-box-orient: vertical;
I expect this is the source of the chromium test failures?
> Source/WebCore/css/mediaControlsChromium.css:45
> - position: absolute;
> + position: relative;
> overflow: visible;
This didn't make it into the ChangeLog.
> Source/WebCore/html/shadow/MediaControlElements.cpp:43
> #include "HTMLMediaElement.h"
> +#include "HTMLVideoElement.h"
> #include "HTMLNames.h"
Includes should be sorted.
> Source/WebCore/html/shadow/MediaControlElements.cpp:184
> + stopTimer();
> +
> + double duration = document()->page() ?
document()->page()->theme()->mediaControlsFadeOutDuration() : 0;
> + m_transitionTimer.startOneShot(duration);
It would be good to have a brief comment here about why we need to use a timer
for this. As you know, this confused at least me ;-)
The timer functions also didn't make it into the ChangeLog.
> Source/WebCore/html/shadow/MediaControlElements.cpp:1244
> + // 4. If the user agent is exposing a user interface for video, add to
> + // output one or more completely transparent positioned CSS block boxes
that
> + // cover the same region as the user interface.
> +
> + // 5. If the last time these rules were run, the user agent was not
exposing
> + // a user interface for video, but now it is, let reset be true.
Otherwise,
> + // let reset be false.
A brief comment about why you don't have to do anything explicit for these
steps would be helpful.
> Source/WebCore/html/shadow/MediaControlElements.cpp:1256
> + // Redraw
> + removeChildren();
This comment a bit terse.
> Source/WebCore/html/shadow/MediaControlElements.cpp:1260
> + // 9. If reset is false, then, for each text track cue cue in cues: if
cue's
> + // text track cue display state has a set of CSS boxes, then add those
boxes
> + // to output, and remove cue from cues.
A brief comment about why you don't have to do anything explicit for these
steps would be helpful.
> Source/WebCore/html/track/TextTrackCue.cpp:426
> + // 10.11. Apply the terms of the CSS specifications to nodes within the
> + // following constraints, thus obtaining a set of CSS boxes positioned
> + // relative to an initial containing block:
> + RefPtr<HTMLDivElement> m_displayTree = HTMLDivElement::create(document);
Could you empty the div if it already exists instead of deleting and allocating
it every time a cue changes?
> Source/WebCore/html/track/TextTrackCue.cpp:429
> + // The document tree is the tree of WebVTT Node Objects rooted at nodes.
> + RefPtr<DocumentFragment> documentTree = WebVTTParser::create(0,
m_scriptExecutionContext)->createDocumentFragmentFromCueText(m_content);
Why not use TextTrackCue::getCueAsHTML() instead? That way we will use the
fragment if it has already been created (always the case for a cue that has not
been modified by script).
> LayoutTests/media/media-controls.js:35
> -function textTrackDisplayElement(parentElement, id)
> +function textTrackDisplayElement(parentElement)
Nit: I think this would be easier to understand if it kept the "id" parameter.
More information about the webkit-reviews
mailing list