Closed
Bug 1332956
Opened 7 years ago
Closed 7 years ago
Video's audio autoplays without playing the video
Categories
(Core :: DOM: Core & HTML, defect)
Tracking
()
RESOLVED
FIXED
mozilla54
People
(Reporter: jdm, Assigned: bzbarsky)
References
()
Details
(Keywords: regression)
Attachments
(4 files, 3 obsolete files)
59 bytes,
text/x-review-board-request
|
bzbarsky
:
review-
|
Details |
2.04 KB,
patch
|
qdot
:
review+
|
Details | Diff | Splinter Review |
11.03 KB,
patch
|
qdot
:
review+
|
Details | Diff | Splinter Review |
28.17 KB,
patch
|
qdot
:
review+
|
Details | Diff | Splinter Review |
When I load this page, the audio from the video element starts playing as soon as it's loaded. The video does not give any indication that it's playing, and pressing play will start a second stream of the audio as the video actually starts to play. The only way to stop the original audio stream is the mute the tab.
Reporter | ||
Comment 1•7 years ago
|
||
It did not happen in FF 47, and does happen in FF 52.
Reporter | ||
Comment 2•7 years ago
|
||
mozregression shows that this was introduced in FF 50 so far.
status-firefox50:
--- → affected
status-firefox51:
--- → affected
status-firefox52:
--- → affected
status-firefox53:
--- → affected
tracking-firefox50:
--- → ?
tracking-firefox51:
--- → ?
tracking-firefox52:
--- → ?
tracking-firefox53:
--- → ?
Comment 3•7 years ago
|
||
I can see this problem on the latest nightly on my MAC. Alastor, Can you help check this problem?
Component: Audio/Video → Audio/Video: Playback
Flags: needinfo?(alwu)
Reporter | ||
Comment 4•7 years ago
|
||
I cannot explain it, but the problem is clearly reproducible starting with https://hg.mozilla.org/mozilla-central/rev/b3e20967ccde and I cannot reproduce it using https://hg.mozilla.org/mozilla-central/rev/fcf14af43c5a.
Updated•7 years ago
|
Assignee: nobody → alwu
No longer blocks: 1288390
Flags: needinfo?(alwu)
Keywords: regressionwindow-wanted
Updated•7 years ago
|
Keywords: regressionwindow-wanted
Comment 5•7 years ago
|
||
regression-window |
regression window: https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=815c7d8dfebe361f7d93c1a5efd86ab0894e9577&tochange=fc189ba3703da6ae63a9fd39977c889e1970a486 regressed by: fc189ba3703d Jean-Yves Avenard — Bug 1285928: [mp4] Ignore non-supported entries in edit list. r=kentuckyfriedtakahe
Comment 6•7 years ago
|
||
The root cause is the <object> would automatically play any video by creating a new video document.
Flags: needinfo?(jyavenard)
Comment 7•7 years ago
|
||
The <object> would automatically play the video (mov) behind the <video>, it was totally overlapped by the <video> so that we can't see its control interface and we can't stop it. Note, I guess this issue has existed for VERY VERY long time, because it have existed before jya's changing which was mentioned in comment5. Before jya's changing, the <object> still play the video, but the video is silent so that we can't aware about it. --- After some testing, automatically playing video seems the feature of the <object>, so there comes up another question, what is the correct behavior when the <object> was put inside the hierarchy of <video>? It seems that the website wants to use <object> as <source>, but it's totally different. Following is their code, > <video controls> > <source src=".../chrisjones-full.ogv" type="video/ogg"> > <source src=".../chrisjones-full.mov" type="video/quicktime"> > <object type="video/quicktime" data=".../chrisjones-full.mov" autoplay="false"></object> > </video> --- Hi, Bz, Could you give us some suggestion? What's the correct behavior of <object> in this kind of situation? Thanks!
Flags: needinfo?(bzbarsky)
Comment 8•7 years ago
|
||
(In reply to Josh Matthews [:jdm] from comment #4) > I cannot explain it, but the problem is clearly reproducible starting with > https://hg.mozilla.org/mozilla-central/rev/b3e20967ccde and I cannot > reproduce it using https://hg.mozilla.org/mozilla-central/rev/fcf14af43c5a. It sounds like we have a better explanation for this than clang warning flags being disabled (whew!).
Flags: needinfo?(nfroyd)
Assignee | ||
Comment 10•7 years ago
|
||
> What's the correct behavior of <object> in this kind of situation? To not play the video. The HTML spec is not easily linkable here, but if you load https://html.spec.whatwg.org/multipage/embedded-content.html#the-object-element and then search for "run the following steps to (re)determine what the object element represents" step 2 says: If the element has an ancestor media element .... then jump to the step below labeled fallback. It looks like we implement this for <embed> (as of bug 1262184) but not <object>. We should probably hoist this up to be checked for both...
Flags: needinfo?(bzbarsky) → needinfo?(kyle)
Comment hidden (mozreview-request) |
Comment 12•7 years ago
|
||
https://treeherder.mozilla.org/#/jobs?repo=try&revision=72f3cf55ab7f092f89bb88b7f9591b1c85a8b921
Updated•7 years ago
|
Attachment #8829758 -
Flags: review?(bzbarsky)
Assignee | ||
Comment 13•7 years ago
|
||
mozreview-review |
Comment on attachment 8829758 [details] Bug 1332956 - stop loading the source if parent node is media element. https://reviewboard.mozilla.org/r/106766/#review107912 As far as I can tell, this doesn't actually implement what the spec says, does it? What you probably want to do is hoist up the code we have for <embed> right now and reuse it, assuming that code matches the spec for <object> too. And of course you should have a test.
Attachment #8829758 -
Flags: review?(bzbarsky) → review-
Assignee | ||
Comment 14•7 years ago
|
||
In particular, see testing/web-platform/tests/html/semantics/embedded-content/the-embed-element/embed-ignored-in-media-element.html and dom/base/test/test_bug1263696.html, though it really would be better if the latter were a wpt test too.
Updated•7 years ago
|
Flags: needinfo?(kyle)
Comment 15•7 years ago
|
||
After reading the spec mentioned in comment10, the solution should be the part of the algorithm "queued or actively running must delay the load event of the element's node document". Since I don't really familiar with this spec, I'll free this bug and let someone who has better understanding about this spec to finish it.
Assignee: alwu → nobody
Component: Audio/Video: Playback → DOM
Assignee | ||
Comment 16•7 years ago
|
||
> the solution should be the part of the algorithm "queued or actively running must delay the load event of the element's node document" No, that has nothing to do with it. Comment 13 says what should happen. But OK. So much for my attempt to not have to do this myself... I'll trade you reviews on stylo, I guess.
Assignee: nobody → bzbarsky
Comment 17•7 years ago
|
||
I can grab this if you're busy.
Assignee | ||
Comment 18•7 years ago
|
||
Attachment #8834299 -
Flags: review?(kyle)
Assignee | ||
Comment 19•7 years ago
|
||
Attachment #8834300 -
Flags: review?(kyle)
Assignee | ||
Comment 20•7 years ago
|
||
Attachment #8834301 -
Flags: review?(kyle)
Assignee | ||
Comment 21•7 years ago
|
||
https://treeherder.mozilla.org/#/jobs?repo=try&revision=461591782a849caf6f2b5a95c445bf5d323035c0
Assignee | ||
Comment 22•7 years ago
|
||
Attachment #8834310 -
Flags: review?(kyle)
Assignee | ||
Updated•7 years ago
|
Attachment #8834299 -
Attachment is obsolete: true
Attachment #8834299 -
Flags: review?(kyle)
Assignee | ||
Comment 23•7 years ago
|
||
https://treeherder.mozilla.org/#/jobs?repo=try&revision=dfec40319b217254b0a613ff486414f671cb8a7b
Assignee | ||
Comment 24•7 years ago
|
||
Attachment #8834419 -
Flags: review?(kyle)
Assignee | ||
Updated•7 years ago
|
Attachment #8834301 -
Attachment is obsolete: true
Attachment #8834301 -
Flags: review?(kyle)
Assignee | ||
Comment 25•7 years ago
|
||
Attachment #8834503 -
Flags: review?(kyle)
Assignee | ||
Updated•7 years ago
|
Attachment #8834419 -
Attachment is obsolete: true
Attachment #8834419 -
Flags: review?(kyle)
Updated•7 years ago
|
Attachment #8834310 -
Flags: review?(kyle) → review+
Updated•7 years ago
|
Attachment #8834300 -
Flags: review?(kyle) → review+
Updated•7 years ago
|
Attachment #8834503 -
Flags: review?(kyle) → review+
Comment 26•7 years ago
|
||
Pushed by bzbarsky@mozilla.com: https://hg.mozilla.org/integration/mozilla-inbound/rev/116291cf00b5 part 1. Move our existing mochitest for embed-inside-object over to web-platform-tests. r=qdot https://hg.mozilla.org/integration/mozilla-inbound/rev/9cb85309542e part 2. Refactor embed-ignored-in-media-element to make it simple to test the same thing with <object>. r=qdot https://hg.mozilla.org/integration/mozilla-inbound/rev/bdea29a8b0f3 part 3. Implement the same behavior for <object>-inside-<object> and <object>-inside-mediaelement as we do for <embed> already. r=qdot
Comment 27•7 years ago
|
||
sorry Boris, had to back this out for merge conflicts like: warning: conflicts while merging dom/html/HTMLSharedObjectElement.h! (edit, then use 'hg resolve --mark') seems this is from https://bugzilla.mozilla.org/show_bug.cgi?id=1334330 that landed before on central
Flags: needinfo?(bzbarsky)
Comment 28•7 years ago
|
||
Backout by cbook@mozilla.com: https://hg.mozilla.org/integration/mozilla-inbound/rev/565a4eba23d4 Backed out changeset bdea29a8b0f3 https://hg.mozilla.org/integration/mozilla-inbound/rev/cd9462ab5c72 Backed out changeset 9cb85309542e https://hg.mozilla.org/integration/mozilla-inbound/rev/6e4db804e21c Backed out changeset 116291cf00b5 for causing merge conflicts with mozilla-central
Assignee | ||
Comment 29•7 years ago
|
||
<sigh>. It wasn't even a real merge conflict. It was a difference in the _context_ and a trivial one: someone had renamed the argument to the function before the one I was changing. :(
Flags: needinfo?(bzbarsky)
Comment 30•7 years ago
|
||
Pushed by bzbarsky@mozilla.com: https://hg.mozilla.org/integration/mozilla-inbound/rev/47b7e3dd8e56 part 1. Move our existing mochitest for embed-inside-object over to web-platform-tests. r=qdot https://hg.mozilla.org/integration/mozilla-inbound/rev/ee7d277e859d part 2. Refactor embed-ignored-in-media-element to make it simple to test the same thing with <object>. r=qdot https://hg.mozilla.org/integration/mozilla-inbound/rev/6d9e64633666 part 3. Implement the same behavior for <object>-inside-<object> and <object>-inside-mediaelement as we do for <embed> already. r=qdot
Assignee | ||
Comment 31•7 years ago
|
||
Given that I got tracking emails about this: I'm not very comfortable backporting this. It's a significant behavior change with serious risk of site breakage.
Comment 32•7 years ago
|
||
(In reply to Boris Zbarsky [:bz] (still a bit busy) from comment #31) > Given that I got tracking emails about this: I'm not very comfortable > backporting this. It's a significant behavior change with serious risk of > site breakage. Fair enough. Marking wontfix for branches.
Comment 33•7 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/47b7e3dd8e56 https://hg.mozilla.org/mozilla-central/rev/ee7d277e859d https://hg.mozilla.org/mozilla-central/rev/6d9e64633666
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla54
Comment 34•7 years ago
|
||
Since this fix has automated coverage, I don't think manual testing would be of much use here. Boris, if you think Manual QA should instead be looking at this, feel free to flip the qe-verify flag or ni? me directly.
Flags: qe-verify-
Updated•5 years ago
|
Component: DOM → DOM: Core & HTML
You need to log in
before you can comment on or make changes to this bug.
Description
•