Commit Graph

23 Commits

Author SHA1 Message Date
Chris Pearce
63dbf9d6f7 Bug 1470346 - Gesture activate all documents in tab, even across origins, upon user interaction. r=smaug
Sometimes when video is playing, a preroll ad plays, and that may be in a cross
origin iframe. If autoplay media is disabled, we require a user gesture in a
document before playback in that document is permitted, and we require each
origin to be gesture activated separately. So in the cross origin preroll video
add case, then the user will have to click once to unblock playback for the
cross origin ad, and then once the preroll ad finishes, the user will have to
click again to activate playback of the same origin content video.

This is a bad user experience.

So we should instead make gesture activation propagate up the doc tree
irrespective of crossing origins.  This way, when the user clicks to activate,
all documents in that tab are also also effectively gesture activated, and so
can autoplay.

MozReview-Commit-ID: 1HZQ5zkubR

--HG--
extra : rebase_source : d6b75732548cb1d73b9f82dce60a5e6e97d1da14
2018-06-22 11:52:20 +12:00
Chris Pearce
e08b3c171c Bug 1464922 - Don't allow media without audio tracks to autoplay. r=bryce
I don't think we should allow media without audio tracks to autoplay because:
* It means play() before loaded metadata behaves differently than play()
called after loaded metadata.
* With the current impl we dispatch the "play" event and then the "pause"
event when we decide we should block, which may confuse some sites' controls.
* Delaying running the play() algorithm until we've loaded metadata would add
significant complexity, and may break sites.
* Chrome doesn't have this provision, meaning the complexity required to
support it will not result in much benefit to us.

MozReview-Commit-ID: FSVlDJAOisw

--HG--
extra : rebase_source : 93b1bcf8d8edbd6ca10ad918b40a87cd3cfbbf0b
2018-05-28 22:09:14 +12:00
Chris Pearce
1cf7b8ae13 Bug 1464930 - Move AutoplayPolicy Camera/Mic permission test to after gestures-needed pref check. r=bryce
We only should do the camera/mic permission or active capture test in
the case where document gesture activation is enabled.

MozReview-Commit-ID: 9xSe8FDn5tu

--HG--
extra : rebase_source : fb19fdcc7003d7ba04f5f1ab3a7d51ce63abc3db
extra : intermediate-source : 7de5bdbef79bacbee3284d49b77de36aceb0270e
extra : source : e72b9f4dcf418d4fcd2a0698f601d42eb9b0ecc0
2018-05-18 13:43:00 +12:00
Paul Adenot
adf8e4702d Bug 1413098 - Part 5 - Allow starting an AudioContext when gUM has been allowed. r=pehrsons
MozReview-Commit-ID: E0fcpIbLhYJ

--HG--
extra : rebase_source : 927d9d0ca04dd593d49efdffe70ce9f70ddce8bd
extra : source : 3c186b3bb90961748566b7c39af27beebb3ec855
2018-04-27 19:13:40 +02:00
Alastor Wu
f59daea779 Bug 1413098 - part1 : add policy to decide whether allow audio context to start. r=padenot
Audio context would be allowed to start if
(1) its document has been activated by user gesture
(2) it's a offline audio context, because it won't directly output sound to audio
    devices

In addition, all resume promises would be pending until audio context has been
allowed and user calls resume() again.

MozReview-Commit-ID: G6RV8dDM6vQ

--HG--
extra : rebase_source : bc1d2ad0594ad1f54c05ade06495918aaee14911
extra : source : 5031770d70fd643230cb4caf6a5106616adaf0fd
2017-12-13 14:05:35 -06:00
Chris Pearce
ed8a27f065 Bug 1457048 - Ensure origins with autoplay-media exact permission can autoplay. r=bryce,johannh
Sites which are whitelisted should be allowed to autoplay audible media.
So check whether a HTMLMediaElement's owner doc's principal has an exact
"autoplay-media" permission. This ensures whitelisted origins can autoplay,
but sub-origins of whitelisted origins need their own permission.

MozReview-Commit-ID: 2IO5KIyplEa

--HG--
extra : rebase_source : 4a974aba0533bfbd5e9bb4c4c11d77d17a81db6d
2018-04-30 17:40:50 +12:00
Dorel Luca
48f71154c5 Backed out 2 changesets (bug 1457048) for multiple failures. CLOSED TREE
Backed out changeset a5d71f8bf413 (bug 1457048)
Backed out changeset cd70fc188bc8 (bug 1457048)
2018-05-03 08:39:36 +03:00
Chris Pearce
d7eacf6ae5 Bug 1457048 - Ensure origins with autoplay-media exact permission can autoplay. r=bryce,johannh
Sites which are whitelisted should be allowed to autoplay audible media.
So check whether a HTMLMediaElement's owner doc's principal has an exact
"autoplay-media" permission. This ensures whitelisted origins can autoplay,
but sub-origins of whitelisted origins need their own permission.

MozReview-Commit-ID: 2IO5KIyplEa

--HG--
extra : rebase_source : 4d9afdec0caa4a82b53bedfd645f259a5c760e4d
2018-04-30 17:40:50 +12:00
Kyle Machulis
9e159ac69d Bug 1407040 - Change HTMLMediaElement XPCOM Enums to WebIDL Enums; r=bz
MozReview-Commit-ID: 55GnbaL2HKl

--HG--
extra : rebase_source : 5bb6c927443bf6adcfe594e69bd70c3b597b9ea4
2018-02-14 19:23:32 -08:00
Chris Pearce
e878eeef74 Bug 1182329 - Allow pages which have camera/microphone permission to autoplay audible media. r=jib
It seems reasonable to assume that when a page has been granted permission
to capture camera/microphone, the user intends it to play audible media.

MozReview-Commit-ID: 1RdsPK1vRPt

--HG--
extra : rebase_source : 688b68c29d73f117a2cc376233d664bc9cdb5d52
2018-02-08 16:05:46 +13:00
Alastor Wu
d7ce5bde2b Bug 1415478 - part2 : allow autoplay for non-audible media content and video without audio content. r=jwwang
Per UX spec, we would allow non-audible media (volume 0, muted, video without audio track)
to autoplay.

MozReview-Commit-ID: HKUyt5Jt4sH

--HG--
extra : rebase_source : 83e53a0035d72984494948f131a5d6e516baa577
2017-11-30 10:50:21 +08:00
Alastor Wu
e750ccbccf Bug 1415478 - part1 : turn on the pref on Nightly build. r=jwwang
MozReview-Commit-ID: AJva2ypm7BJ

--HG--
extra : rebase_source : 385bcf45aa417de1593adcc506a047caa5b14f35
2017-11-30 10:50:17 +08:00
Alastor Wu
258e1d56df Bug 1420488 - part1 : bless media if media has started playing before. r=jwwang
If the media has started playing before, bless it and it would always be allowed
to autoplay.

MozReview-Commit-ID: 4GqMARLXULU

--HG--
extra : rebase_source : 2fdb3937156147755f8e387b1d84311ae1d37ce4
2017-11-29 18:59:56 +08:00
Sebastian Hengst
c4e3d3a858 Backed out 2 changesets (bug 1420488) for eslint failures in toolkit/content/tests/browser/browser_autoplay_policy_play_twice.js. r=backout
Backed out changeset 92bd0fcb67d5 (bug 1420488)
Backed out changeset 0f211029517c (bug 1420488)
2017-11-29 17:31:28 +02:00
Alastor Wu
28c25979d7 Bug 1420488 - part1 : bless media if media has started playing before. r=jwwang
If the media has started playing before, bless it and it would always be allowed
to autoplay.

MozReview-Commit-ID: 28X4TmG25aJ

--HG--
extra : rebase_source : 3fd7cb16da9e7f925ad7020fb74c48537e08a996
2017-11-29 18:05:56 +08:00
Sebastian Hengst
706ac3aea0 Backed out 3 changesets (bug 1415478) for frequently asserting in own test test_autoplay_policy.html at MediaDecoderStateMachine.cpp:989. r=backout
Backed out changeset 6ba103fe1caf (bug 1415478)
Backed out changeset df6721a3584f (bug 1415478)
Backed out changeset 8a802839959b (bug 1415478)

--HG--
extra : rebase_source : be4296b1b36005195897de5544941b58895de661
2017-11-27 19:57:34 +02:00
Alastor Wu
a6a6078915 Bug 1415478 - part2 : allow autoplay for non-audible media content and video without audio content. r=jwwang
Per UX spec, we would allow non-audible media (volume 0, muted, video without audio track)
to autoplay.

MozReview-Commit-ID: HKUyt5Jt4sH

--HG--
extra : rebase_source : 97315d90fa46a16289135ac7490bd0dab651d682
2017-11-27 19:20:15 +08:00
Alastor Wu
10ef8e706f Bug 1415478 - part1 : turn on the pref on Nightly build. r=jwwang
MozReview-Commit-ID: AJva2ypm7BJ

--HG--
extra : rebase_source : 00b7a831a685dee21a13a786e93e9a3a388f4be3
2017-11-27 19:18:45 +08:00
Alastor Wu
62e836ef58 Bug 1420192 - when disable autoplay, allow script calls play() once user triggered load() or seek(). r=jwwang
This patch is mainly reverting the changing of bug1382574 part3, but not all the same.

Since youtube would call load() when user clicks to play, and then call play()
later. For the old pref (checking user-input-play), we should still allow the
following play() even it's not triggered via user input. It's also same for
seeking, Youtube would call play() after seeking completed.

In this patch, we would allow the script-calling once play() if user has called load()
or seek() before that.

MozReview-Commit-ID: 1UcxRCVfhnR

--HG--
extra : rebase_source : c72212ebf29ea624128a8190dab67e1197f1f198
2017-11-27 10:55:02 +08:00
dluca
85d0512151 Backed out 3 changesets (bug 1415478) for frequently asserting at dom/media/MediaDecoderStateMachine.cpp:1009 on a CLOSED TREE
Backed out changeset 447d895b350d (bug 1415478)
Backed out changeset d855c032c823 (bug 1415478)
Backed out changeset 6739012c4bdf (bug 1415478)
2017-11-24 18:50:53 +02:00
Alastor Wu
35a99cd8d3 Bug 1415478 - part2 : allow autoplay for non-audible media content and video without audio content. r=jwwang
Per UX spec, we would allow non-audible media (volume 0, muted, video without audio track)
to autoplay.

MozReview-Commit-ID: HKUyt5Jt4sH

--HG--
extra : rebase_source : fa8d1bfd2fb667e974dbe499d7f8215273d4fa10
2017-11-24 11:14:26 +08:00
Alastor Wu
d5341011c9 Bug 1415478 - part1 : turn on the pref on Nightly build. r=jwwang
MozReview-Commit-ID: AJva2ypm7BJ

--HG--
extra : rebase_source : 5bfd8d46aa8b928bd7b6a6e12c31f0c7e2c4ebee
2017-11-24 11:12:23 +08:00
Alastor Wu
5acb978a09 Bug 1382574 - part1 : create new class AutoplayPolicy to handle autoplay logic. r=jwwang
AutoplayPolicy is used to manage autoplay logic for all kinds of media,
including MediaElement, Web Audio and Web Speech.

MozReview-Commit-ID: R1TxMkarIw

--HG--
extra : rebase_source : 8c608a1d12c8e205391a91f22e1532bc4f2c8f16
2017-11-22 00:33:16 +08:00