Граф коммитов

69 Коммитов

Автор SHA1 Сообщение Дата
Kannan Vijayan 3fb6190ec6 Bug 1559414 - Rename unaudited pre-fission methods with SameProcess for future audit burndown. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D39378

--HG--
extra : moz-landing-system : lando
2019-07-26 16:48:31 +00:00
Nicholas Nethercote 18fae65f38 Bug 1563139 - Remove StaticPrefs.h. r=glandium
This requires replacing inclusions of it with inclusions of more specific prefs
files.

The exception is that StaticPrefsAll.h, which is equivalent to StaticPrefs.h,
and is used in `Codegen.py` because doing something smarter is tricky and
suitable for a follow-up. As a result, any change to StaticPrefList.yaml will
still trigger recompilation of all the generated DOM bindings files, but that's
still a big improvement over trigger recompilation of every file that uses
static prefs.

Most of the changes in this commit are very boring. The only changes that are
not boring are modules/libpref/*, Codegen.py, and ServoBindings.toml.

Differential Revision: https://phabricator.services.mozilla.com/D39138

--HG--
extra : moz-landing-system : lando
2019-07-26 01:10:23 +00:00
Sylvestre Ledru 131d0c6a02 Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D35622

--HG--
extra : moz-landing-system : lando
2019-07-06 08:18:28 +00:00
Nicholas Nethercote d839ef58db Bug 1562331 - Make media.* static prefs follow the naming convention. r=KrisWright
This also removes the following prefs, because they're unused:
- media.autoplay.allow-muted pref
- media.autoplay.blackList-override-default

Differential Revision: https://phabricator.services.mozilla.com/D36396

--HG--
extra : rebase_source : 0570540496302b3efedadf4d5115ee5422d5c279
2019-06-28 14:09:05 +10:00
Dale Harvey b46d6e8925 Bug 1543812 - Add ability to block all autoplay. r=johannh,alwu,flod,fluent-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D30135

--HG--
extra : moz-landing-system : lando
2019-06-06 09:06:09 +00:00
Andreea Pavel 516073f4fd Backed out changeset 2dacf7539a2f (bug 1543812) for multiple failures e.g bc at browser_autoplay_blocked.js on a CLOSED TREE 2019-06-05 19:29:20 +03:00
Dale Harvey 87fa55e513 Bug 1543812 - Add ability to block all autoplay. r=johannh,alwu,flod,fluent-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D30135

--HG--
extra : moz-landing-system : lando
2019-06-05 01:03:14 +00:00
Daniel Varga 3bc762bcf1 Backed out changeset d64cb52ebf88 (bug 1543812) for xpcshell failure at parser/xml/test/unit/test_sanitizer.js. On a CLOSED TREE 2019-06-05 03:50:16 +03:00
Dale Harvey 6066384ce3 Bug 1543812 - Add ability to block all autoplay. r=johannh,alwu,flod,fluent-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D30135

--HG--
extra : moz-landing-system : lando
2019-06-04 17:33:06 +00:00
Ryan Hunt 00e98538aa Bug 1523969 part 6 - Move method definition inline comments to new line in 'dom/'. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D21106

--HG--
extra : rebase_source : ea3f51c2c11247114deccbc86e90fb02b8a97257
2019-02-25 16:05:29 -06:00
Ehsan Akhgari b5a2bda7ee Bug 1527505 - Part 9: Make nsIPermissionManager accept ACString arguments for permission types instead of raw C strings; r=nika
This will mean that in places like the tight loop in GetTypeIndex()
we would no longer require calling strlen() on the input type argument
once per loop iteration.

Depends on D20236

Differential Revision: https://phabricator.services.mozilla.com/D20237

--HG--
extra : moz-landing-system : lando
2019-02-21 22:54:28 +00:00
Alastor Wu 7f2cafcb86 Bug 1516598 - remove 'feature-policy' checking for autoplay policy. r=cpearce,baku
From the following table, we can know the feature policy have no any effect for the autoplay result.

That is, if the document has been gesture activated, we want to playback, regardless of the status of the feature policy.
If the site has denied autoplay permission via feature policy, if the user gesture activates (clicks play) we still want to be able to play.

Therefore, we can remove `feature-policy` checking.

| gesture activated | autoplay feature policy status | allowed to play |
|-------------------|--------------------------------|-----------------|
| activated         | allowed                        | true            |
| not activated     | not allowed                    | false           |
| activated         | not allowed                    | true            |
| not activated     | allowed                        | false           |

Differential Revision: https://phabricator.services.mozilla.com/D18098

--HG--
extra : moz-landing-system : lando
2019-02-12 18:21:58 +00:00
Ehsan Akhgari 06c3d29113 Bug 1521000 - Part 1: Reformat the tree to ensure everything is formatted correctly with clang-format r=sylvestre
Summary: # ignore-this-changeset

Reviewers: sylvestre

Reviewed By: sylvestre

Subscribers: reviewbot, emilio, jandem, bbouvier, karlt, jya

Bug #: 1521000

Differential Revision: https://phabricator.services.mozilla.com/D16936

--HG--
extra : histedit_source : 4add583bfa729ccc1aef934629ed45ff095189b0
2019-01-18 10:12:56 +01:00
Alastor Wu e5bba6b8f2 Bug 1520088 - part5 - add pref to control whether blacklist can override the default setting. r=cpearce
Differential Revision: https://phabricator.services.mozilla.com/D16640

--HG--
extra : moz-landing-system : lando
2019-01-16 03:57:11 +00:00
Alastor Wu 0d5851b149 Bug 1520088 - part3 : implement different phases autoplay checking. r=cpearce
The autoplay checking for media element has 4 different phases,
1. check whether media element itself meets the autoplay condition
2. check whethr the site is in the autoplay whitelist
3. check global autoplay setting and check wether the site is in the autoplay blacklist.
4. check whether media is allowed under current blocking model (click-to-play or user-gesture-activation)

Differential Revision: https://phabricator.services.mozilla.com/D16525

--HG--
extra : moz-landing-system : lando
2019-01-16 18:21:39 +00:00
Alastor Wu fd9892991a Bug 1520088 - part2 : ensure logging result can always be executed. r=cpearce
Ensure we can always see the debug log for the autoplay result.

Differential Revision: https://phabricator.services.mozilla.com/D16524

--HG--
extra : moz-landing-system : lando
2019-01-16 01:04:40 +00:00
Alastor Wu 8c10894e80 Bug 1520088 - part1 : let 'IsMediaElementAllowedToPlay()' only check media element's attributes r=cpearce
We would like to have different phases checking for autoplay, the first phase is to check media element itself, so we need to move other non-related checkings out from 'IsMediaElementAllowedToPlay()'.

Differential Revision: https://phabricator.services.mozilla.com/D16523

--HG--
extra : moz-landing-system : lando
2019-01-16 01:04:27 +00:00
alwu 8632d7588c Bug 1506290 - part1 : implement 'document.autoplayPolicy'. r=baku,cpearce
`document.autoplayPolicy` returns a enum string that can change overtime based on user session activity:

- “allowed” if autoplay is currently allowed.
- “allowed-muted” if muted video autoplay is currently allowed.
- “disallowed” is autoplay is not current allowed.

Differential Revision: https://phabricator.services.mozilla.com/D11543

--HG--
extra : moz-landing-system : lando
2019-01-15 00:13:34 +00:00
alwu 15cbe4a2c3 Bug 1512277 - Add Telemetry to know AudioContext blocking status if we enable blocking autoplay for web audio. r=karlt,Dexter
Differential Revision: https://phabricator.services.mozilla.com/D14118

--HG--
extra : moz-landing-system : lando
2019-01-08 21:52:31 +00:00
alwu edbf43dd41 Bug 1513039 - part10 : remove nsIAutoplay.PROMPT r=daleharvey,cpearce
Depends on D14334

Differential Revision: https://phabricator.services.mozilla.com/D14335

--HG--
extra : moz-landing-system : lando
2019-01-07 18:41:03 +00:00
alwu 047b607301 Bug 1513039 - part6 : remove AutoplayPermissionManager and AutoplayPermissionRequest. r=cpearce,smaug
Depends on D14330

Differential Revision: https://phabricator.services.mozilla.com/D14331

--HG--
extra : moz-landing-system : lando
2019-01-07 18:35:30 +00:00
alwu 242554622e Bug 1513039 - part1 : remove caching temporary autoplay permission. r=smaug,florian
We're going to remove all autoplay temporary permission related codes, so we don't need to cache it anymore.

Differential Revision: https://phabricator.services.mozilla.com/D14325

--HG--
extra : moz-landing-system : lando
2019-01-07 18:29:10 +00:00
Emilio Cobos Álvarez d2ed260822 Bug 1517241 - Rename nsIDocument to mozilla::dom::Document. r=smaug
Summary: Really sorry for the size of the patch. It's mostly automatic
s/nsIDocument/Document/ but I had to fix up in a bunch of places manually to
add the right namespacing and such.

Overall it's not a very interesting patch I think.

nsDocument.cpp turns into Document.cpp, nsIDocument.h into Document.h and
nsIDocumentInlines.h into DocumentInlines.h.

I also changed a bunch of nsCOMPtr usage to RefPtr, but not all of it.

While fixing up some of the bits I also removed some unneeded OwnerDoc() null
checks and such, but I didn't do anything riskier than that.
2019-01-03 17:48:33 +01:00
Alastor Wu 41ffd33d93 Bug 1512362 - hook pref "media.autoplay.allow-muted" to all inaudible autoplay media policy r=cpearce
When talking about autoplay, video without audio track should also be controlled by the pref "media.autoplay.allow-muted".

Differential Revision: https://phabricator.services.mozilla.com/D14480

--HG--
extra : moz-landing-system : lando
2018-12-13 21:31:42 +00:00
Sylvestre Ledru 804b8b8883 Bug 1204606 - Reformat of dom/media r=jya
# skip-blame

Differential Revision: https://phabricator.services.mozilla.com/D12251

--HG--
extra : moz-landing-system : lando
2018-11-19 13:25:37 +00:00
alwu dab4434860 Bug 1493766 - part2 : save the status of temporary autoplay permission in outer window. r=johannh,smaug
In order to know whether we have temporary autoplay permission without creating a request, we need to
cache its state in the outer window so that we can get the correct returned value for AutoplayPolicy::IsAllowedToPlay().

Differential Revision: https://phabricator.services.mozilla.com/D7013

--HG--
extra : moz-landing-system : lando
2018-11-16 18:27:00 +00:00
alwu 77fd645e2a Bug 1505494 - remove redundant codes. r=cpearce
There are two exactly same codes here, remove one of them.

Differential Revision: https://phabricator.services.mozilla.com/D11502

--HG--
extra : moz-landing-system : lando
2018-11-12 17:39:53 +00:00
alwu 5657ac5a73 Bug 1505494 - not allow autoplay if we don't have a document. r=cpearce
In order to avoid the nullptr crash when using `approver`.

Differential Revision: https://phabricator.services.mozilla.com/D11501

--HG--
extra : moz-landing-system : lando
2018-11-12 17:39:51 +00:00
Andrea Marchesini e60ca6394e Bug 1497034 - FeaturePolicy: autoplay, r=cpearce 2018-10-09 14:22:19 +02:00
alwu 4c1efa7f58 Bug 1494144 - correct the autoplay result in autoplay log. r=cpearce
After bug1476555 landed, IsMediaElementAllowedToPlay() would only return boolean, not integer. We should modify AllowAutoplayToStr() in order to log the correct result.

Differential Revision: https://phabricator.services.mozilla.com/D6864

--HG--
extra : moz-landing-system : lando
2018-09-26 00:49:54 +00:00
alwu 415fb653ea Bug 1493027 - part1 : access permissions without creating MediaManager. r=cpearce
If a site had been granted persistent permissions, but hasn't accessed navigator.mediaDevices yet.
Then, we can't read the permission because MediaManager hasn't be created yet.

We should read these permissions without loading MediaManager.

In addition, I noticed that even user only requests 'screen' permission, we would also add the 'camera'
and 'microphone' permission in the nsIPermissionManager. That makes us no way to print the log to distinguish
what actually permission user granted.

Differential Revision: https://phabricator.services.mozilla.com/D6540

--HG--
extra : moz-landing-system : lando
2018-09-23 22:11:06 +00:00
alwu d7a75adbdb Bug 1489278 - part1 : show doorhanger when create AudioContext r=padenot
In the ideal situation, sites should create AudioContext only when sites are going to produce
sound, so we would show doorhanger to ask users whether they want to allow autoplay.

We delay the AudioContext's state transition from `suspended` to `running` until
(1) user click 'Allow' button in doorhanger
(2) user interact with sites, and then AudioContext calls resume() again

Differential Revision: https://phabricator.services.mozilla.com/D5610

--HG--
extra : moz-landing-system : lando
2018-09-13 16:51:07 +00:00
alwu bb11a649df Bug 1483703 - part1 : allow media without audio track to autoplay. r=cpearce
We would allow media without audio track to autoplay after it had loaded the metadata.

If media hasn't loaded metadata yet, we would treat it as audible media and then block it.

Differential Revision: https://phabricator.services.mozilla.com/D3670

--HG--
extra : moz-landing-system : lando
2018-08-22 23:31:58 +00:00
alwu a23a30a650 Bug 1483703 - part1 : allow media without audio track to autoplay. r=cpearce
We would allow media without audio track to autoplay after it had loaded the metadata.

If media hasn't loaded metadata yet, we would treat it as audible media and then block it.

Differential Revision: https://phabricator.services.mozilla.com/D3670

--HG--
extra : moz-landing-system : lando
2018-08-21 20:58:26 +00:00
Dale Harvey 59e904f6cd Bug 1476555 - Show notification when autoplay blocked globally. r=cpearce,johannh
MozReview-Commit-ID: EI0GiaoBNqX

--HG--
extra : rebase_source : 0c6fb98047913fc50423532cc4c433c4627c5b06
2018-07-23 16:43:08 +01:00
alwu 7a58a577d5 Bug 1480738 - part1 : only allow top-level video document to autoplay. r=cpearce
Only allow top-level video document to autoplay in order to avoid autoplay from
video document which is in the iframe.

MozReview-Commit-ID: BbyjviK1BRK

--HG--
extra : rebase_source : f84421e27c6029dd3733f3c5a5d329b1755a0ee3
2018-08-03 11:28:30 -07:00
alwu 6d23d559af Bug 1480281 - part1 : add autoplay debug log module. r=cpearce
Add new log module which allow us to debug by using "MOZ_LOG=Autoplay:5".

MozReview-Commit-ID: 9CG5JyCw21G

--HG--
extra : rebase_source : c71c4bbed88b07a7803d93b661bfeac37cb94035
2018-08-01 17:30:59 -07:00
alwu 81ae6fd494 Bug 1466926 - part1 : always allow extension background script to autoplay. r=cpearce
In present web extension design (both Firefox and Chrome), background script can autoplay.
We don't want to break this design, so we would always allow it to autoplay.

MozReview-Commit-ID: 9BfWgll7PNx

--HG--
extra : rebase_source : 7996daa06c31a84a2aea9008daa9bddfcde98c74
2018-07-10 10:37:33 -07:00
alwu b586e3d181 Bug 1477415 - part1 : allow video document autoplay. r=cpearce
Allow autoplay for video document when user is directly viewing a video/audio by visiting
its url.

MozReview-Commit-ID: GnSxx32h6hm

--HG--
extra : rebase_source : 0890f7f3e80711b35c65a6f32d7ce960de76d20e
2018-07-23 11:17:00 -07:00
Chris Pearce ea566d079b Bug 1476456 - Add telemetry to report whether autoplay would be not allowed if autoplay was disabled. r=baku,francois
We'd like to add telemetry to help inform the decision as to how enabling
block autoplay will affect video playback in the wild.

Our data science team would also like some input to help them estimate the
rate at which our shield study would receive pings, and the telemetry
collected here will help them estimate that.

We'd like to collect the following, on a per session basis:
* Count of the number of top level content documents loaded, as denominator for
other stats collected here.
* Count of the number of top level content documents which contained (directly
or in a descendant document) playback of an audible media element.
* Count of the number of top level content documents which contained (directly
or in a descendant document) a muted media element that was paused by the
autoplay policy because it tried to unmute and it wasn't allowed to autoplay
audibly.
* Count of the total number of audible autoplay videos that would have not been
allowed to play if block autoplay was enabled. We'd either prompt for
permission on these videos, or block outright depending on user's settings.
* Count of the total number of audible autoplay videos that would have been
allowed to play if block autoplay was enabled.

MozReview-Commit-ID: vHWJPyqHjT

--HG--
extra : rebase_source : e1f22ec83fda8b65d78f1de9f02cf060d424019c
2018-07-18 15:34:04 +12:00
Tom Schuster d385a93dfb Bug 1477477 - Add preference for autoplaying muted media. r=cpearce
--HG--
extra : rebase_source : 61589dbd15331d48527c3513e832c6d9e0117941
2018-07-22 15:21:48 +02:00
Chris Pearce 33cfb93398 Bug 1476853 - Don't block WebAudio autoplay by default. r=padenot
Pending figuring out how we want to block autoplay of WebAudio content, we
should just not block it by default for the initial release of block autoplay,
and follow up once we've figured out how to not break the web.

MozReview-Commit-ID: ClfdrHcugLs

--HG--
extra : rebase_source : 54f61b0765f1d0ed9c754c90da9c2809a7de8676
2018-07-16 16:08:49 +12:00
Dale Harvey c9e5e7c554 Bug 1470082 - Change autoplay checkbox to combobox. r=cpearce,flod,johannh
MozReview-Commit-ID: E71TxvgfJlJ

--HG--
extra : rebase_source : 30ca63df77e48a44de4d3e90182440c3937ed32f
2018-06-29 14:14:33 +01:00
Chris Pearce 848dee9a6f Bug 1472580 - Ensure we always get a allow/cancel response to an autoplay media permission request. r=smaug
The front end code can't always guarantee to give us an allow/cancel response
to a permission request. In particular in these cases:
* if we close a tab while showing a doorhanger, or
* if we navigate a tab while showing a doorhanger, or
* if the permission prompt requested in a background tab and never shown.

Handling all of these cases is problematic; we don't get events for all of
these where it's easy and cheap to determine that we should cancel the
permission request.

Canceling the permission request is important in the autoplay-media permission
request case as there's objects waiting on the resolution of the permission
request, and they leak in ASan builds while running chrome tests if the Gecko
size of the permission request doesn't get a notification telling it to stop
waiting.

But we can however rely on the doorhanger code to drop its reference to the
nsIContentPermissionRequest object that we pass to it when the doorhanger goes
away. So we can cancel the permission request in our
nsIContentPermissionRequest's implementation's destructor in order to easily
catch all the above cases.

In order to do that, we need to split AutoplayRequest into two; one part being
the implementation of nsIContentPermissionRequest (AutoplayPermissionRequest),
and the other part being the code to own the PromiseHolder and manage the
permission request (AutoplayPermissionManager).

AutoplayPermissionRequest keeps a weak reference to AutoplayPermissionManager,
so that it can tell the AutoplayPermissionManager to reject the request promise
when it's destroyed.

This fixes the ASan leak for which I got backed out from earlier in this bug,
and also fixes the cases above.

MozReview-Commit-ID: KoVkgIqDleW

--HG--
rename : dom/html/AutoplayRequest.cpp => dom/html/AutoplayPermissionManager.cpp
rename : dom/html/AutoplayRequest.h => dom/html/AutoplayPermissionManager.h
extra : rebase_source : dbca520a93d8c416f6d64c2da027630181bb5910
2018-07-06 21:15:20 +12:00
Chris Pearce ea95e39bc9 Bug 1463919 - Move ask autoplay permission check into AutoplayPolicy. r=jya
MozReview-Commit-ID: KJcVI6gtGXw

--HG--
extra : rebase_source : a2ccd2da32d77708fdeb6ea6361975a7759cb18d
extra : source : 9b1c40f3e61ab351707f2d320ce8f87951e4868e
2018-06-26 14:16:13 +12:00
Chris Pearce bbbdebe6e1 Bug 1463919 - Add AutoplayRequest to encapsulate asking for autoplay permission. r=smaug
Add an implementation of nsIContentPermissionRequest to encapsulate requesting
permission from the user to autoplay audible media.

All documents in the tab request permission using the top level document's
origin, so the AutoplayRequest instance for a tab is stored on the top level
content window of the tab.

AutoplayRequest ensures that there's only a single prompt shown at once.

MozReview-Commit-ID: 2u3aLnEa21z

--HG--
extra : rebase_source : a3db3a1ef87a09442b47ae1b1034b4a0143289fb
extra : source : ae572bf618155a92b136fc5f12c1f8c9ab31f89c
2018-06-22 11:57:24 +12:00
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