Closed
Bug 1010707
Opened 11 years ago
Closed 9 years ago
[WebVTT] hang with VTTCue and canvas
Categories
(Core :: Audio/Video: Playback, defect, P2)
Tracking
()
RESOLVED
FIXED
mozilla49
| Tracking | Status | |
|---|---|---|
| firefox49 | --- | fixed |
People
(Reporter: jruderman, Assigned: alwu)
References
Details
(Keywords: hang, testcase)
Attachments
(4 files, 1 obsolete file)
No description provided.
| Reporter | ||
Comment 1•11 years ago
|
||
| Reporter | ||
Comment 2•11 years ago
|
||
I got this by disabling the JITs and pressing ^C during the hang.
| Reporter | ||
Comment 3•11 years ago
|
||
Attachment #8422956 -
Attachment is obsolete: true
Updated•10 years ago
|
Component: Audio/Video → Audio/Video: Playback
Updated•10 years ago
|
Priority: -- → P2
| Assignee | ||
Comment 4•10 years ago
|
||
This issue is due to we're in the infinite while-loop [1].
[1] https://dxr.mozilla.org/mozilla-central/source/dom/media/webvtt/vtt.jsm#1006
| Assignee | ||
Updated•10 years ago
|
Assignee: nobody → alwu
| Assignee | ||
Comment 5•9 years ago
|
||
Still debugging, don't find the root cause..
Now I observed that the CueStyleBox doesn't be updated correctly after [1], so we can't move a StyleBox to the specific position.
I also found that the test won't be crashed if we do one of following modifications,
(1) remove |canvas.getContext("2d").measureText("Z")|
(2) add |video.controls = true| before |video.pause()|
(3) pause video on |video.onplay = function() { ... }|
The possible reason might be related with canvas reflowing process, but I don't know what is the exactly root cause now...
| Assignee | ||
Comment 6•9 years ago
|
||
Hi, Ralph,
Sorry to bother you,
Could you give me any suggestion about this issue?
Now, the problem I found is that we're in the infinite while-loop [1] when we want to move element to specific position. In the BoxPosition::move, if the |toMove| is not defined, then we would use its line height [2] as moving offset. In this case, because the line height [3] is ZERO, we can never move the box to the right place, so we're stuck in that while-loop.
I have some possible ways to solve that problem, but I don't sure which one is the better method.
More important is that I don't know whether these modification would cause other side effect, because I don't familiar with this field.
So I need your help to see which following option is a better choice.
(1) we should avoid ZERO line height in BoxPosition ctor
(2) in BoxPosition::move, when |toMove| is not defined and line height is ZERO, we gave it another default value
(3) maybe the computing condition [4] of |lh| is incorrect and we need to modify it?
(4) the line height shouldn't be ZERO, it might be a bug in the reflow process and we need to figure it out
Very appreciate your help!
[1] https://dxr.mozilla.org/mozilla-central/source/dom/media/webvtt/vtt.jsm#1004
[2] https://dxr.mozilla.org/mozilla-central/source/dom/media/webvtt/vtt.jsm#880
[3] https://dxr.mozilla.org/mozilla-central/source/dom/media/webvtt/vtt.jsm#869
[4] https://dxr.mozilla.org/mozilla-central/source/dom/media/webvtt/vtt.jsm#859
Flags: needinfo?(giles)
Comment 8•9 years ago
|
||
Sorry, Alastor, I don't have any great insight. Let's try to compare with the spec and see if there's an more correct behaviour here. In any case we should make sure it can't hang!
| Assignee | ||
Comment 9•9 years ago
|
||
After study the spec, the solution can be found in the part "Processing model". [1]
In addition, I observed that the css setting flow is not consistent with spec, so I would work for the solution to follow the spec and fix the hanging problem.
[1] https://w3c.github.io/webvtt/#processing-model
Flags: needinfo?(ruxton)
Flags: needinfo?(giles)
| Assignee | ||
Updated•9 years ago
|
Blocks: old-webvtt
| Assignee | ||
Comment 10•9 years ago
|
||
Review commit: https://reviewboard.mozilla.org/r/54576/diff/#index_header
See other reviews: https://reviewboard.mozilla.org/r/54576/
Comment 11•9 years ago
|
||
https://reviewboard.mozilla.org/r/54576/#review51448
There are 15 steps in https://w3c.github.io/webvtt/#processing-model. Could you add comments(step1 to step 15) in vtt.jsm to show me which step is wrong?
| Assignee | ||
Comment 12•9 years ago
|
||
The error is in the step 11-5 of "apply WebVTT cue settings" [1] which is in the step 14-2-1 of "rules for updating the display of WebVTT text tracks". [2]
I think it's not very useful if just add a comment for this step, I would prefer to re-factor the whole flow to make all steps clear because there are still some steps we don't have the implementation, eg. for "apply WebVTT cue settings", the step 2~8 (setting the CSS attributes).
[1] https://w3c.github.io/webvtt/#apply-webvtt-cue-settings
[2] https://w3c.github.io/webvtt/#processing-model
| Assignee | ||
Updated•9 years ago
|
Attachment #8755373 -
Flags: review?(giles)
| Assignee | ||
Comment 13•9 years ago
|
||
Hi, Ralph,
Could you help me review this patch?
The changing is based on spec,
> "if step is zero, then jump to the step labeled done positioning below"
You can see more details in the comment12.
Thanks!
Comment 14•9 years ago
|
||
Comment on attachment 8755373 [details]
MozReview Request: Bug 1010707 - don't adjust position when line-height is zero.
https://reviewboard.mozilla.org/r/54576/#review52976
Works for me! Thanks.
Attachment #8755373 -
Flags: review?(giles) → review+
| Assignee | ||
Comment 15•9 years ago
|
||
Comment 16•9 years ago
|
||
Comment 17•9 years ago
|
||
| bugherder | ||
Status: NEW → RESOLVED
Closed: 9 years ago
status-firefox49:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla49
You need to log in
before you can comment on or make changes to this bug.
Description
•