Closed Bug 1550585 Opened 5 years ago Closed 5 years ago

Intermittent TEST-UNEXPECTED-PASS | /webvtt/rendering/cues-with-video/processing-model/regions/regionanchor_y_50_percent.html | Testing http://web-platform.test:8000/webvtt/rendering/cues-with-video/processing-model/regions/regionanchor_y_50_percent.html

Categories

(Core :: Audio/Video: Playback, defect, P5)

defect

Tracking

()

RESOLVED FIXED
mozilla68
Tracking Status
firefox-esr60 --- unaffected
firefox67 --- unaffected
firefox68 --- fixed

People

(Reporter: intermittent-bug-filer, Assigned: alwu)

References

(Regression)

Details

(Keywords: intermittent-failure, regression, Whiteboard: [retriggered][stockwell disable-recommended])

Attachments

(1 file, 1 obsolete file)

Filed by: cbrindusan [at] mozilla.com
Parsed log: https://treeherder.mozilla.org/logviewer.html#?job_id=245611454&repo=autoland
Full log: https://queue.taskcluster.net/v1/task/EA95nO9wSaaNFVEI45oSBw/runs/0/artifacts/public/logs/live_backing.log
Reftest URL: https://hg.mozilla.org/mozilla-central/raw-file/tip/layout/tools/reftest/reftest-analyzer.xhtml#logurl=https://queue.taskcluster.net/v1/task/EA95nO9wSaaNFVEI45oSBw/runs/0/artifacts/public/logs/live_backing.log&only_show_unexpected=1


20:15:55 INFO - TEST-START | /webvtt/rendering/cues-with-video/processing-model/regions/regionanchor_y_50_percent.html
20:15:55 INFO - PID 9560 | 1557432955619 Marionette INFO Testing http://web-platform.test:8000/webvtt/rendering/cues-with-video/processing-model/regions/regionanchor_y_50_percent.html == http://web-platform.test:8000/webvtt/rendering/cues-with-video/processing-model/regions/regionanchor_y_50_percent-ref.html
20:15:55 INFO - PID 9560 | JavaScript error: resource:///modules/sessionstore/SessionStore.jsm, line 2408: TypeError: tabbrowser.getTabForBrowser is not a function
20:15:55 INFO - PID 9560 | JavaScript error: resource:///modules/sessionstore/SessionStore.jsm, line 2408: TypeError: tabbrowser.getTabForBrowser is not a function
20:15:55 INFO - PID 9560 | 1557432955767 Marionette INFO No differences allowed
20:15:55 INFO - TEST-UNEXPECTED-PASS | /webvtt/rendering/cues-with-video/processing-model/regions/regionanchor_y_50_percent.html | Testing http://web-platform.test:8000/webvtt/rendering/cues-with-video/processing-model/regions/regionanchor_y_50_percent.html == http://web-platform.test:8000/webvtt/rendering/cues-with-video/processing-model/regions/regionanchor_y_50_percent-ref.html

It looks like that when we were running TimeMarchesOn, the media hasn't load enough data so that we abort the algorithm. However, when autoplay is ready, we should already have enough data to run TimeMarchesOn in [1], so I don't know why this issue would happen.

I'm trying to push more testing patches on try to see if we could have any finding.

[1] https://searchfox.org/mozilla-central/rev/cc280c4be94ff8cf64a27cc9b3d6831ffa49fa45/dom/html/HTMLMediaElement.cpp#5697-5702

From the try result [1], it looks like that we didn't get the video frame so that we couldn't update cue display.

[1] https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=246217711&repo=try&lineNumber=26309

Assignee: nobody → alwu
Flags: needinfo?(alwu)

We can only update cue display after we get the valid display content, which means media element's ready state should be HAVE_CURRENT_DATA at least.

If we run the TimeMarchesOn but couldn't update cues display, it violates the spec step18 [1], so we should only run TimeMarchesOn when media element has a video frame.

[1] https://html.spec.whatwg.org/multipage/media.html#time-marches-on

The current solution seems not really correct, because if we really abort because we didn't get the video frame, the cue display should still be updated after we created video frame [1].

[1] https://searchfox.org/mozilla-central/rev/116bd975c30746ddefc3d20e6947d1871469354f/layout/generic/nsVideoFrame.cpp#129

Attachment #9064937 - Attachment is obsolete: true

The problem here was that, when the first time we ran TimeMarchesOn, we didn't update the cue display because media element hadn't got the video frame yet. After video frame was ready, it would call updating the cue display again [1]. However, we didn't dispatch the update task because of the incorrect checking about whether media starts playing [2].

[1] https://searchfox.org/mozilla-central/rev/116bd975c30746ddefc3d20e6947d1871469354f/layout/generic/nsVideoFrame.cpp#129
[2] https://searchfox.org/mozilla-central/rev/11cfa0462a6b5d8c5e2111b8cfddcf78098f0141/dom/html/TextTrackManager.cpp#572

The spec [1] doesn't mention that we should run TimeMarchesOn or UpdateCueDisplay only after media starts playing.

Removing the checking can help us to render the cue correctly no matter media starts or not.

[1] https://html.spec.whatwg.org/multipage/media.html#time-marches-on

Pushed by alwu@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/45d495a1a3a9
no need to check whether media is playing when dispatching 'TimeMarchesOn' and 'UpdateCueDisplay'. r=jya
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla68
Has Regression Range: --- → yes
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: