Commit Graph

3700 Commits

Author SHA1 Message Date
Sebastian Hengst
bd900ee36a Merge mozilla-inbound to mozilla-central. a=merge 2018-07-25 17:16:53 +03:00
Tiberius Oros
036999d0a9 Merge mozilla-central to inbound. a=merge CLOSED TREE 2018-07-25 13:43:03 +03:00
Chris Pearce
1087bd7454 Bug 1477881 - Ensure AutoplayPermissionRequest can't double report a response. r=alwu
We cancel the permission request in the AutoplayPermissionRequest destructor,
and if we get a genuine cancel from the doorhanger. The Request reports the
cancel to the AutoplayPermissionManager, but we reuse the same manager across
different requests. So if a second request for permission comes in, we create a
new AutoplayPermissionRequest and fire that off to the front end code, but the
first request could be destroyed after the second request is dispatched but
before the response for the second request has retuned. Thus and the cancel in
the first's destructor could be reported to the manager as the second's result.

We should clear the AutoplayPermissionRequest's reference to the Manager in
Approve() and Cancel() so that we can't mixup the responses like this.

MozReview-Commit-ID: 1qYJfLOaqST

--HG--
extra : rebase_source : 871889da5420aff83c50933863ee3dd3d496bc12
2018-07-24 10:23:05 +12:00
Dan Glastonbury
19dd66bbb1 Bug 1330375 - P2: Reduce layout flushes in nsGenericHTMLElement::GetInnerText. r=emilio,heycam
Instead of unconditionally flushing layout, flush style and skip flush
layout unless any frame state bits on the element, or ancestors,
indicate that a flush is required.

MozReview-Commit-ID: 4zaB1eaE0fm

--HG--
extra : rebase_source : a02b014e127f8fc3e27afedb2012e09a7e8905b8
2018-07-19 14:26:46 +10:00
Boris Zbarsky
1312fcd10f Bug 1476145 part 5. Stop using getInterface(nsIDOMWindowUtils) in DOM code. r=mccr8 2018-07-24 19:47:41 -04:00
Boris Zbarsky
1914ffc8ec Bug 1450167. Stop using atom-or-string for event names in the listener manager. r=smaug
Now that we support atoms off the the main thread, we can just use atoms.
2018-07-24 18:15:19 -04:00
Gurzau Raul
f2e1e857f1 Merge inbound to mozilla-central. a=merge 2018-07-24 12:49:23 +03:00
Brian Hackett
ea6ebf1b6e Bug 1207696 Part 6a - Disable media elements when recording or replaying, r=jesup.
--HG--
extra : rebase_source : 10a1178dca996839da8496036196e7018d517787
2018-07-23 14:41:26 +00: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
Emilio Cobos Álvarez
235320a24a Bug 1475511: Introduce nsIDocument::MediaDocumentKind. r=bz
MozReview-Commit-ID: BGG0vinXdad
2018-07-21 23:02:13 +02:00
Cosmin Sabou
0d3874d7d6 Merge mozilla-inbound to mozilla-central. a=merge 2018-07-21 00:42:01 +03:00
Christoph Kerschbaumer
adac33969a Bug 1304645: Pass individual CSP errors as categories to web console error messages. r=baku 2018-07-20 19:57:21 +02:00
Andreea Pavel
b5a482c899 Backed out 3 changesets (bug 1475073, bug 1304645, bug 1474537) for failing wpt and mochitest on a CLOSED TREE
Backed out changeset 4fbeea69b10d (bug 1475073)
Backed out changeset d3ac68d9ead9 (bug 1304645)
Backed out changeset 113b601a3b59 (bug 1474537)
2018-07-20 14:00:09 +03:00
Tiberius Oros
5955cda3e1 Merge mozilla-central to inbound. a=merge CLOSED TREE 2018-07-20 13:00:01 +03:00
Tiberius Oros
10e6320abc Merge inbound to mozilla-central. a=merge 2018-07-20 12:56:59 +03:00
Christoph Kerschbaumer
1de27c0297 Bug 1304645: Pass individual CSP errors as categories to web console error messages. r=baku 2018-07-20 10:42:46 +02:00
Masayuki Nakano
3a1344255b Bug 1467802 - part 4: Create TextEditor::ComputeValueInternal() for internal use of nsIPlaintextEditor::OutputToString() r=m_kato
For reducing virtual calls of nsIPlaintextEditor::OutputToString(),
TextEditor should have new non-virtual public method, ComputeTextValue() and
shared code between it and OutputToString() as ComputeValueInternal().

MozReview-Commit-ID: KFeovQ568bf

--HG--
extra : rebase_source : a5cfb24cefe44f7c60e649959ed49350ed00d4d6
2018-07-18 21:27:30 +09:00
Nicholas Nethercote
fc1f4bb4ae Bug 1476820 - Convert some VarCache prefs in dom/security/ to use StaticPrefs. r=ckerschb
Specifically:
- "security.csp.enable"
- "security.csp.experimentalEnabled"
- "security.csp.enableStrictDynamic"
- "security.csp.reporting.script-sample.max-length"
- "security.csp.enable_violation_events"

MozReview-Commit-ID: G1ie4ut9QaK

--HG--
extra : rebase_source : d6b5a0e79eb7046a13a8b4fe957c82c11831c86c
2018-07-19 10:43:29 +10:00
Csoregi Natalia
8384a65194 Merge inbound to mozilla-central. a=merge 2018-07-19 19:09:50 +03:00
Andrea Marchesini
c3238135af Bug 1476612 - AntiTracking should use nsIDocument::Get/SetUserHasInteracted instead of UserGestureActivation, r=cpearce 2018-07-19 13:14:27 +02:00
Masayuki Nakano
0d09e1a26a Bug 1467799 - part 1: Remove implementation of EditorBase::GetDocumentIsEmpty() and rename TextEditor::DocumentIsEmpty() to TextEditor::IsEmpty() r=m_kato
EditorBase::GetDocumentIsEmpty() is never called since it's overridden by
TextEditor::GetDocumentIsEmtpy() and never called directly.  So, we can remove
its implementation.

Additionally, DocumentIsEmpty() is redundant. We can make it just IsEmpty().

MozReview-Commit-ID: CGsNzCHyVf

--HG--
extra : rebase_source : 3a8eeaf108bb387ea559e0643acfa96e26768577
2018-07-18 17:44:14 +09: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
Xidorn Quan
56fb4472fd Bug 1468648 - Skip file_fullscreen-scrollbar.html test in headless mode. r=jrmuizel
MozReview-Commit-ID: 8ioRY8zd45U

--HG--
extra : rebase_source : 80a1d7fb8b027d70bb4657a890e284bfd8ab41a6
2018-07-16 11:27:03 +10:00
Ehsan Akhgari
29e57a2096 Bug 1475708 - Block setting cookies using document.cookie when restricting 3rd party storage; r=baku 2018-07-13 15:37:00 +03:00
Chris Pearce
7fb3548c85 Bug 1471485 - Ensure autoplay permission promises disconnected if media starts playing. r=jya
We can start playing while we're awaiting a response to an autoplay-media
permission prompt, for example if the user clicks on a play button. In such
cases, it doesn't make sense to keep the autoplay permission request promise
connected in HTMLMediaElement, as since we're playing we'll be resolving the
play() promises and thus we won't be taking action on the autoplay request
promise's result. So we should just disconnect the autoplay permission request
promise if it's connected when we start playing.

MozReview-Commit-ID: 1aiCLXV7Ja9

--HG--
extra : rebase_source : c439e8f084ac8cc01db578d712e15d3174a08e71
2018-07-12 16:19:25 +12: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
Masayuki Nakano
7581aff013 Bug 1450882 - part 4: Make C++ users of nsICommandParams use nsCommandParams directly r=Ehsan
nsICommandParams is implemented only by nsCommandParams.  So, all C++ users
can treat all instances of nsICommandParams as nsCommandParams.  Therefore,
this patch makes all set/get value calls use non-virtual methods and all
constructors directly create nsCommandParams instance.

MozReview-Commit-ID: CscgK0gKp5g

--HG--
extra : rebase_source : 62eb0f60aada795a44cf5496cdafbff6cba80013
2018-07-10 20:04:21 +09:00
Masayuki Nakano
5a2332692a Bug 1450882 - part 2: Make nsICommandParams::GetCStringValue() and nsICommandParams::SetCStringValue() treat nsACString instead of char r=Ehsan
nsICommandParams::GetCStringValue() and nsICommandParams::SetCStringValue()
treat char.  However, this makes their callers complicated.  So, they should
be rewritten as treating nsACString.

MozReview-Commit-ID: DWO9veSyzyG

--HG--
extra : rebase_source : fbea13f6d7116ea1887434c0842b7768a7dc59ec
2018-07-10 18:04:46 +09:00
Makoto Kato
16910a6e95 Bug 1443902 - Reinitilize selection after destroying nsIEditingSession. r=masayuki
When setting contenteditable to false, editing session destroys HTMLEditor.
Destroying HTMLEditor means that selection visibility is reset by
FinalizeSelection.

So after calling TearDownEditorOnWindow on nsHTMLDocument, we should initialize
selection visibility if current focus is text control that has editor.

MozReview-Commit-ID: 4V8kZtOtKO3

--HG--
extra : rebase_source : 9d90c12b3c93e4dfd95095ce29a26e5fdd83f952
2018-07-09 16:53:47 +09:00
Boris Zbarsky
e2156c39cb Bug 820891 part 3. Make scroll* properties for tables work with the table wrapper box, not the table box. r=dholbert
--HG--
rename : testing/web-platform/tests/css/cssom-view/table-client-props.html => testing/web-platform/tests/css/cssom-view/table-scroll-props.html
2018-07-10 09:28:11 -07:00
Boris Zbarsky
ebe5685319 Bug 820891 part 2. Make client* properties for tables work with the table wrapper box, not the table box. r=dholbert
--HG--
rename : testing/web-platform/tests/css/cssom-view/table-offset-props.html => testing/web-platform/tests/css/cssom-view/table-client-props.html
2018-07-10 09:28:09 -07:00
Boris Zbarsky
60de511092 Bug 820891 part 1. Make offset* properties for tables work with the table wrapper box, not the table box. r=dholbert 2018-07-10 09:28:07 -07:00
Andrea Marchesini
5fff1762ad Bug 1418236 - Correct EventTarget for CSP violation events, r=ckerschb 2018-07-10 17:40:21 +02:00
Andrea Marchesini
b57c0f116e Bug 1469993 - Grant storage access to a 3rd party, tracking resource if a opened document has user-interaction - part 8 - tests, r=ehsan 2018-07-10 10:09:59 +02:00
Margareta Eliza Balazs
c37b51f523 Backed out 9 changesets (bug 1469993) for causing bustage in build/srcdom/base/nsGlobalWindowInner.cpp on a CLOSED TREE
Backed out changeset e89192032fe2 (bug 1469993)
Backed out changeset 4b261595099d (bug 1469993)
Backed out changeset 37182cfe869c (bug 1469993)
Backed out changeset 5b9870995c73 (bug 1469993)
Backed out changeset 55499fcd9738 (bug 1469993)
Backed out changeset 8c1c838d54ba (bug 1469993)
Backed out changeset 12b9c8bfa41f (bug 1469993)
Backed out changeset 04ab7d6c169a (bug 1469993)
Backed out changeset 53885d61244e (bug 1469993)
2018-07-10 11:32:34 +03:00
Andrea Marchesini
47ab3f6055 Bug 1469993 - Grant storage access to a 3rd party, tracking resource if a opened document has user-interaction - part 8 - tests, r=ehsan 2018-07-10 10:09:59 +02:00
Boris Zbarsky
ce664a172d Bug 606528. Don't map the type attribute for inputs. r=emilio
The change to test_bug558726.html is because we always serialize mapped
attributes after non-mapped ones.  So this change is actually improving our
serialization in that test.
2018-07-06 11:43:14 -07:00
Margareta Eliza Balazs
fd5c37f1dd Merge inbound to mozila-central. a=merge 2018-07-06 12:47:20 +03:00
Masayuki Nakano
2b43129579 Bug 1473515 - Make AutoDisableUndo restores enabled state of undo/redo with previous number of maximum transactions r=m_kato
Calling EditorBase::EnableUndoRedo() without argument means that editor supports
unlimited undo/redo stack.  AutoDisableUndo class calls it without argument
when it needs to restore undo/redo feature.

However, <input type="text"> and <textarea> limits number of maximum
transactions up to 1,000, perhaps for footprint.  So, AutoDisableUndo should
store the last number of maximum transactions before disabling undo/redo from
the constructor.

MozReview-Commit-ID: CoI6ZXyTd3X

--HG--
extra : rebase_source : e2b9af17e5857dcc0a6781e254e45fdb790c9a9e
2018-07-05 19:44:23 +09:00
Neil Deakin
0d504e92c3 Bug 1437638, move frame loader property from XULElement to XULFrameElement, removing many checks that only apply to child frames instead of every XUL element. Since it is assumed that most frames/browsers will have frame loaders created for them, and that there aren't many of them, we can use a member field instead of slots, so remove the slot property, r=bz 2018-07-05 20:14:29 -04:00
Andrea Marchesini
14d462eeb3 Bug 1418246 - Return valid columnNumber value in CSP violation events, r=ckerschb 2018-07-05 08:21:04 +02:00
Olli Pettay
34620de771 bug 1472427, <img usemap> should work in shadow DOM, r=baku 2018-07-04 20:26:09 +03:00
Olli Pettay
f2f292c2c4 Bug 1472426, form submission should work in shadow DOM, r=baku
--HG--
extra : rebase_source : 3f11dfcfbfc808cf635945434adccb6f11accc07
2018-07-04 19:18:57 +03:00
Boris Zbarsky
96d0b4cc2e Bug 1472829. Add use counters for document.open. r=smaug
The idea is to count non-no-op document.open and to count how many times that's
done with the replace argument set to "replace".
2018-07-03 17:48:53 -04:00
Olli Pettay
a1288b6db5 Bug 1472428 - HTMLMediaElement should use IsInComposedDoc, r=cpearce 2018-07-03 18:13:17 +03:00
Chris Pearce
599f53cfd2 Bug 1463919 - Tests for prompting for permission to autoplay. r=jya,mconley
Test that a video which tries to autoplay via either a play() call or via
an autoplay attribute:
* Plays when it has a pre-existing "allow" autoplay-media permission.
* Is blocked when it has a pre-existing "block" autoplay-media permission.
* Plays when it doesn't have a pre-existing autoplay-media permission and
"allow" is pressed on the door hanger.
* Is blocked when it doesn't have a pre-existing autoplay-media permission and
"block" is pressed on the door hanger.

MozReview-Commit-ID: CpftV6RQbtU

--HG--
extra : rebase_source : a9c38a7e7071e3ebd34f10175f4f22cd84c4c303
2018-06-25 15:35:33 +12:00
Chris Pearce
f88fe2a683 Bug 1463919 - Check AutoplayPolicy before activating attribute based autoplay. r=jya
When autoplay is requested by setting the "autoplay" attribute, we should
check whether autoplay is allowed in HTMLMediaElement::CheckAutoplayDataReady()
and if not we should prompt for user consent.

This ensures that <video ... autoplay/> will prompt for consent when used on
a page without a pre-existing allow/block permission.


MozReview-Commit-ID: 77pJR2Ybn2i

--HG--
extra : rebase_source : 5cf26822c9e5f23a83d69f5f52c39be6ab6f9eb0
2018-06-29 15:10:14 +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
b309d364b6 Bug 1463919 - Have HTMLMediaElement ask for autoplay permission when playback otherwise blocked. r=jya
MozReview-Commit-ID: Ejv0UKBjSVf

--HG--
extra : rebase_source : f999b9a4a1ae7a5a7f1dd31efd3003e40d7fa102
2018-06-22 10:14:33 +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