Closed
Bug 1348601
Opened 8 years ago
Closed 8 years ago
Context menu 'play' control for HTML5 video initially fails to work when autoplay is disabled
Categories
(Toolkit :: Video/Audio Controls, defect)
Tracking
()
People
(Reporter: johncheese, Assigned: kikuo)
References
Details
(Keywords: regression)
Attachments
(1 file)
59 bytes,
text/x-review-board-request
|
mrbkap
:
review+
lizzard
:
approval-mozilla-aurora+
lizzard
:
approval-mozilla-beta+
jcristau
:
approval-mozilla-esr52+
|
Details |
User Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0
Build ID: 20170316213829
Steps to reproduce:
1. Disable autoplay of HTML5 media by setting media.autoplay.enabled to false in about:config.
2. Using Firefox, navigate to a page with an embedded HTML5 video that does not have custom video controls (e.g. http://i.imgur.com/A76wD5p.gifv)
3. Right-click to bring up the context menu, and click 'Play'.
Actual results:
Video fails to play when 'Play' is clicked in the context menu.
In order to play the video, it is necessary to select 'Show controls', and then use the play control that pops up on the video. After doing this, the context-menu 'Play' and 'Pause' controls will work.
Expected results:
Video should play when 'Play' is selected from the context menu. (This was the behaviour prior to Firefox 52.)
Reporter | ||
Comment 1•8 years ago
|
||
(Tested in a new profile with no extensions.)
Component: Untriaged → Video/Audio Controls
Product: Firefox → Toolkit
Regression range:
https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=1a3194836cb4c3da6ba3a9742a2d25cf26669b55&tochange=90b691bf09f5cc4fe7d0c6445fcf5afa2c34eeee
Kilik Kuo — Bug 1316758-Remove nsContentUtils::LegacyIsCallerChromeOrNativeCode and IsCallerChrome calls from HTMLMediaElement. r=cpearce
Kilik, could you check this regression from your patch, please.
Blocks: 1316758
Status: UNCONFIRMED → NEW
Has Regression Range: --- → yes
Has STR: --- → yes
status-firefox52:
--- → affected
status-firefox53:
--- → affected
status-firefox54:
--- → affected
status-firefox55:
--- → affected
tracking-firefox52:
--- → ?
tracking-firefox53:
--- → ?
tracking-firefox54:
--- → ?
tracking-firefox55:
--- → ?
Ever confirmed: true
Flags: needinfo?(kikuo)
Keywords: regression
Assignee | ||
Comment 3•8 years ago
|
||
It's a regression.
After modification to this line [1], HTMLME is not able to identify 'play()' called from chrome, here, the case is from context menu. So even this is a call by user's interaction, the code path still returns here [2] resulting a rejected promise.
EventStateManager::IsHandlingUserInput() will be true if user is clicking the play icon from control, but it will be false if user is clicking from context menu.
I'd like to sync the behavior above in order to not calling |nsContentUtils::IsCallerChrome()| again.
[1] https://hg.mozilla.org/integration/autoland/rev/d6b94b6c5fb0#l1.75
[2] http://searchfox.org/mozilla-central/rev/557f236c19730116d3bf53c0deef36362cafafcd/dom/html/HTMLMediaElement.cpp#3868-3871
Flags: needinfo?(kikuo)
Assignee | ||
Updated•8 years ago
|
Assignee: nobody → kikuo
Assignee | ||
Comment 4•8 years ago
|
||
The problem is that the information of IsHandlingUserInput for EventStateManager cannot be carried through mm.SendAsyncMessange [1] to the message handler in content.js [2].
[1] http://searchfox.org/mozilla-central/rev/557f236c19730116d3bf53c0deef36362cafafcd/browser/base/content/nsContextMenu.js#1744
[2] http://searchfox.org/mozilla-central/rev/557f236c19730116d3bf53c0deef36362cafafcd/browser/base/content/content.js#796
Comment hidden (mozreview-request) |
Assignee | ||
Updated•8 years ago
|
Attachment #8849484 -
Flags: review?(mrbkap)
Comment 6•8 years ago
|
||
mozreview-review |
Comment on attachment 8849484 [details]
Bug 1348601 - Carry IsHandlingUserInput information to media listeners in content.js.
https://reviewboard.mozilla.org/r/122268/#review124652
::: browser/base/content/content.js:831
(Diff revision 1)
> <span class="indent">>>>></span> case "fullscreen":
> <span class="indent">>>>></span> if (content.document.fullscreenEnabled)
> <span class="indent">>>>></span> media.requestFullscreen();
> <span class="indent">>>>></span> break;
> <span class="indent">>>>></span> }
> + })
Nit: add a semicolon to the end of this line.
Attachment #8849484 -
Flags: review?(mrbkap) → review+
Comment hidden (mozreview-request) |
Assignee | ||
Comment 8•8 years ago
|
||
mozreview-review-reply |
Comment on attachment 8849484 [details]
Bug 1348601 - Carry IsHandlingUserInput information to media listeners in content.js.
https://reviewboard.mozilla.org/r/122268/#review124652
> Nit: add a semicolon to the end of this line.
Thanks !
Pushed by kikuo@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/abad919f22b0
Carry IsHandlingUserInput information to media listeners in content.js. r=mrbkap
Assignee | ||
Comment 10•8 years ago
|
||
Comment on attachment 8849484 [details]
Bug 1348601 - Carry IsHandlingUserInput information to media listeners in content.js.
The patch is also applicable for aurora / beta.
But I'm not sure if this is necessary to be uplifted to release.
Gerry, any suggestions from Release Manager ?
Approval Request Comment
[Feature/Bug causing the regression]: Bug 1316758
[User impact if declined]: Media-related operations on ContextMenu won't work correctly when pref "media.autoplay.enabled" is set to false.
[Is this code covered by automated tests?]: no, as far as I can tell, only context menu layout is covered.
[Has the fix been verified in Nightly?]: yes, on my local pc.
[Needs manual test from QE? If yes, steps to reproduce]: yes
Step 1. Go about:config, and set media.autoplay.enabled to false
Step 2. Go http://i.imgur.com/A76wD5p.gifv, video should not start playback.
Step 3. Right click on the video element, context menu pops then click media-related buttons.
Step 4. Check if operation works.
[List of other uplifts needed for the feature/fix]: None
[Is the change risky?]: little
[Why is the change risky/not risky?]: The utility function to carry IsHandlingUserInput information was already landed and is used for a while, it's also used somewhere in nsContextMenu.js.
[String changes made/needed]: None.
Flags: needinfo?(gchang)
Attachment #8849484 -
Flags: approval-mozilla-beta?
Attachment #8849484 -
Flags: approval-mozilla-aurora?
Comment 11•8 years ago
|
||
bugherder |
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla55
Comment 12•8 years ago
|
||
Tracking 53/54/55+. I think this is a good candidate to take for aurora/beta.
Comment 13•8 years ago
|
||
Hi Brindusa, could you help find someone to verify if this issue was fixed as expected on a latest Nightly build? Thanks!
Flags: qe-verify+
Flags: needinfo?(gchang)
Flags: needinfo?(brindusa.tot)
Comment 14•8 years ago
|
||
Doesn't seem worth taking in a dot release.
Comment 15•8 years ago
|
||
Comment on attachment 8849484 [details]
Bug 1348601 - Carry IsHandlingUserInput information to media listeners in content.js.
Regression from 52, verified in m-c, let's take this for aurora and beta.
The fix should be in 53 beta 7 next week.
Attachment #8849484 -
Flags: approval-mozilla-beta?
Attachment #8849484 -
Flags: approval-mozilla-beta+
Attachment #8849484 -
Flags: approval-mozilla-aurora?
Attachment #8849484 -
Flags: approval-mozilla-aurora+
Comment 16•8 years ago
|
||
Reproduce this on Nightly 54.0a1, Build ID 20170302030206 on Windows 10 x64.
I can confirm the fix on the latest Nightly 55.0a1, build ID 20170324030205 on Windows 10 x64, Ubuntu 16.04 x 64 and Mac OS X 10.12.
Comment 17•8 years ago
|
||
uplift |
Comment 18•8 years ago
|
||
bugherder uplift |
Updated•8 years ago
|
status-firefox-esr52:
--- → affected
Verified as fixed using Firefox 53 beta 7 and latest Aurora 54.0a2 2017-03-27 under Win 10 64-bit, Ubuntu 16.04 64-bit and Mac OS X 10.10.
Comment 20•8 years ago
|
||
Comment on attachment 8849484 [details]
Bug 1348601 - Carry IsHandlingUserInput information to media listeners in content.js.
Grafts cleanly to ESR52. Verified fixed across all branches it's on with no known regressions.
Attachment #8849484 -
Flags: approval-mozilla-esr52?
Comment 21•8 years ago
|
||
Comment on attachment 8849484 [details]
Bug 1348601 - Carry IsHandlingUserInput information to media listeners in content.js.
regression in 52, let's fix this in 52.1esr
Attachment #8849484 -
Flags: approval-mozilla-esr52? → approval-mozilla-esr52+
Comment 22•8 years ago
|
||
bugherder uplift |
Comment 23•8 years ago
|
||
Petruta, could you please verify this on 52.1esr as well?
Flags: needinfo?(petruta.rasa)
Verified as fixed on Firefox 52.1esr under Win 10 64-bit, Ubuntu 16.04 64-bit and Mac OS X 10.11.
Flags: needinfo?(petruta.rasa)
You need to log in
before you can comment on or make changes to this bug.
Description
•