Commit graph

396 commits

Author SHA1 Message Date
Andreea Pavel
e2388edd9f Backed out 7 changesets (bug 1540573) for causing bug 1548441
Backed out changeset dd882b8cd73e (bug 1540573)
Backed out changeset b10d2cae45f2 (bug 1540573)
Backed out changeset 270a8917377f (bug 1540573)
Backed out changeset 3db059b34e40 (bug 1540573)
Backed out changeset fe196b2dfc62 (bug 1540573)
Backed out changeset 1bde5042e507 (bug 1540573)
Backed out changeset 4ff116b9d729 (bug 1540573)
2019-05-03 20:35:27 +03:00
Chris Pearce
a3f9372fa2 Bug 1540573 - P6. Use frugal preloading of media data when on cellular, otherwise aggressive. r=jya
We're allowed to take some liberties as to what the default value and behaviour
we assume for the 'preload' attribute on HTMLMediaElement by the spec. On
desktop we assumed preload="metadata", while on mobile we assumed the default
of preload="none" to save data. On mobile we also assumed that preload="auto"
meant preload="metadata".

I think it makes sense to instead of always assuming that data on Android is
always expensive, we can instead detect if we're running on a cellular connection,
and preload frugally then, otherwise aggressively.

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

--HG--
extra : moz-landing-system : lando
2019-05-03 02:44:49 +00:00
Noemi Erli
54a0234766 Backed out 6 changesets (bug 1540573) for failures in test_CSP.html
Backed out changeset 599e6e06599d (bug 1540573)
Backed out changeset bf725b7daa5b (bug 1540573)
Backed out changeset 814c94b26028 (bug 1540573)
Backed out changeset 3496ca48f6e0 (bug 1540573)
Backed out changeset 2c4303b175ec (bug 1540573)
Backed out changeset b49cd2b191ae (bug 1540573)
2019-05-02 06:41:33 +03:00
Chris Pearce
ce390c7a4f Bug 1540573 - P6. Use frugal preloading of media data when on cellular, otherwise aggressive. r=jya
We're allowed to take some liberties as to what the default value and behaviour
we assume for the 'preload' attribute on HTMLMediaElement by the spec. On
desktop we assumed preload="metadata", while on mobile we assumed the default
of preload="none" to save data. On mobile we also assumed that preload="auto"
meant preload="metadata".

I think it makes sense to instead of always assuming that data on Android is
always expensive, we can instead detect if we're running on a cellular connection,
and preload frugally then, otherwise aggressively.

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

--HG--
extra : moz-landing-system : lando
2019-05-01 23:48:21 +00:00
Emilio Cobos Álvarez
11ea945833 Bug 1546697 - Use a consistent style for enum classes in layout. r=dholbert
Per the discussion in:

  https://groups.google.com/d/msg/mozilla.dev.platform/P79pwa9z5m8/iPYPAWPHCAAJ

They should be CamelCase, and that's what most of them already do. This converts
the rest, which are a few.

For the ones that already used `e` or `k` prefixes, I've mostly done:

 for file in $(rg Type::e layout | cut -d : -f 1 | sort | uniq); do sed -i 's#Type::e#Type::#g' $file; done

For the ones that used uppercase, I've removed the prefix if it was already in
the type name, and turn them into CamelCase.

Depends on D28680

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

--HG--
extra : moz-landing-system : lando
2019-04-25 23:03:04 +00:00
Andreas Pehrson
3bb44440ba Bug 1536766 - Fix MediaStream currentTime wrt starting late in a graph's timeline. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D27259

--HG--
extra : moz-landing-system : lando
2019-04-24 10:53:44 +00:00
Ciure Andrei
add7a3fb9e Backed out 14 changesets (bug 1536766) for causing RunWatchdog and mediaElementAudioSource wpt failures CLOSED TREE
Backed out changeset 72d37a08f281 (bug 1536766)
Backed out changeset 63fc85885060 (bug 1536766)
Backed out changeset addbb04415cb (bug 1536766)
Backed out changeset f2923dfcf33c (bug 1536766)
Backed out changeset 25f3a33ec51b (bug 1536766)
Backed out changeset 199efe6aec59 (bug 1536766)
Backed out changeset f9d1f1bfe2b1 (bug 1536766)
Backed out changeset 87616997f160 (bug 1536766)
Backed out changeset 36f99fa3c956 (bug 1536766)
Backed out changeset 000260ba28de (bug 1536766)
Backed out changeset 6386ed1b7d74 (bug 1536766)
Backed out changeset ab27d9f5902a (bug 1536766)
Backed out changeset 4f6d240c210d (bug 1536766)
Backed out changeset 3e0e3030314d (bug 1536766)
2019-04-19 05:55:57 +03:00
Andreas Pehrson
70e38f3d49 Bug 1536766 - Fix MediaStream currentTime wrt starting late in a graph's timeline. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D27259

--HG--
extra : moz-landing-system : lando
2019-04-18 15:23:18 +00:00
Alastor Wu
b78375bb8e Bug 1531863 - part3 : implement the 'show-poster-flag' for HTMLMediaElement. r=jya
According to the spec [1], implement the `show-poster-flag` which is used to decide whether we need to run `TimeMarchesOn` algorithm under certain situations.

[1] https://html.spec.whatwg.org/multipage/media.html#show-poster-flag

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

--HG--
extra : moz-landing-system : lando
2019-03-08 03:06:27 +00:00
Alastor Wu
5f410f2fce Bug 1531863 - part2 : handle text track mode changed in MediaElement. r=jya
In order to make the implementation more fitting with the spec, move the implementation of `pending-text-track-change-notification-flag` from text track list to media element.

In addition, it also help us not to expose the internal flag `show-poster` (which will be implemented in patch3) of media element when doing the related algorithm.

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

--HG--
extra : moz-landing-system : lando
2019-03-12 00:32:21 +00:00
Brindusan Cristian
01e26ea3df Backed out 4 changesets (bug 1531863) for mochitest failures at test_videocontrols_vtt.html. CLOSED TREE
Backed out changeset e2e2b325344f (bug 1531863)
Backed out changeset 5be609c16665 (bug 1531863)
Backed out changeset 21bafd01b438 (bug 1531863)
Backed out changeset c9628b2b89b2 (bug 1531863)

--HG--
extra : histedit_source : 869452c42d3539867f34e64be52b7afba5463235
2019-03-08 02:34:45 +02:00
Alastor Wu
b441cd934c Bug 1531863 - part3 : implement the 'show-poster-flag' for HTMLMediaElement. r=jya
According to the spec [1], implement the `show-poster-flag` which is used to decide whether we need to run `TimeMarchesOn` algorithm under certain situations.

[1] https://html.spec.whatwg.org/multipage/media.html#show-poster-flag

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

--HG--
extra : moz-landing-system : lando
2019-03-07 21:47:58 +00:00
Alastor Wu
64ab84e0bc Bug 1531863 - part2 : handle text track mode changed in MediaElement. r=jya
In order to make the implementation more fitting with the spec, move the implementation of `pending-text-track-change-notification-flag` from text track list to media element.

In addition, it also help us not to expose the internal flag `show-poster` (which will be implemented in patch3) of media element when doing the related algorithm.

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

--HG--
extra : moz-landing-system : lando
2019-03-07 15:26:20 +00:00
Alastor Wu
e2599c5021 Bug 1526355 - part1 : notify the front end side to show the blocking icon if the site is still being blocked after it's back from the bfcache. r=cpearce
In order to display blocking icon when the document comes back from the bfcache, we have to notify front end what's the current blocking status.

As the front end side would clear blocking autoplay information when nagivation occurs, and the media might not invoke the play again when they comes back from the bfcache.

Therefore, we should notify front end side that the site is still being blocked, and we should show blocking icon for it.

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

--HG--
extra : moz-landing-system : lando
2019-03-04 17:25:52 +00:00
Mike Conley
59c1141de6 Bug 1521964 - Add privileged HTMLVideoElement.cloneElementVisually WebIDL method. r=jya,Ehsan,smaug
Differential Revision: https://phabricator.services.mozilla.com/D20023

--HG--
extra : moz-landing-system : lando
2019-03-01 22:36:40 +00:00
Mike Conley
ca728851ca Bug 1530862 - Add an Init() method to HTMLMediaElement to be called right after construction to do any AddRef / Release-ing. r=jya,mccr8,smaug
Differential Revision: https://phabricator.services.mozilla.com/D21400

--HG--
extra : moz-landing-system : lando
2019-02-28 19:02:55 +00:00
Ciure Andrei
14dcb83669 Backed out changeset 28bc841f06fc (bug 1530862) for failing HTMLMediaElement CLOSED TREE 2019-02-28 07:52:37 +02:00
Mike Conley
55a5944b50 Bug 1530862 - Add an Init() method to HTMLMediaElement to be called right after construction to do any AddRef / Release-ing. r=jya,mccr8,smaug
Differential Revision: https://phabricator.services.mozilla.com/D21400

--HG--
extra : moz-landing-system : lando
2019-02-27 23:40:00 +00:00
Alastor Wu
1caaa8a882 Bug 1525156 - part2 : Add Telemetry to know how many autoplay media, which has been resumed from blocked, played exactly 7 secocnds or more, or less than 7 seconds. r=cpearce,janerik
By adding the Telemetry to measure the number of video/audio which played exactly 7 seconds or more, or less than 7 seconds, after those media has been resumed from blocked state, we can know how many media would meet the Chrome's MEI condition, which could help us to know more about the whole landscape of autoplay media.

In addition, it could help us know how many media are played 'by users intention' because we assume that users are more likely to stop the media if autoplay media is unblocked by accident.

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

--HG--
extra : moz-landing-system : lando
2019-02-26 04:44:19 +00:00
Ehsan Akhgari
e5e885ae31 Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre
# ignore-this-changeset

--HG--
extra : amend_source : 7221c8d15a765df71171099468e7c7faa648f37c
extra : histedit_source : a0cce6015636202bff09e35a13f72e03257a7695
2019-01-18 10:16:18 +01:00
alwu
ab5249684b Bug 1513733 - part2 : try to start AudioContext when media element which is as a source for web audio starts r=cpearce,karlt
If media element is used as a source for AudioContext, we would try to start AudioContext which was not allowed
to start when media element starts playing.

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

--HG--
extra : moz-landing-system : lando
2019-01-11 20:43:01 +00:00
alwu
2e3f453263 Bug 1513039 - part5 : log warning when autoplay is blocked. r=cpearce,karlt
Wrap 'nsContentUtils::ReportToConsole()' to reduce necessary input parameters and call it when we need to log error or warning message. Show the warning when autoplay is blocked.

For web audio, this restores the console messages removed in part4 and also reports the same message when the AudioContext is blocked in the constructor.

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

--HG--
extra : moz-landing-system : lando
2019-01-07 19:57:48 +00:00
alwu
2f88c125de Bug 1513039 - part3 : remove permission request codes in MediaElement. r=cpearce
Depends on D14326

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

--HG--
extra : moz-landing-system : lando
2019-01-07 18:32:42 +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
862fdf36a9 Bug 1511235 - part3 : ensure video is visible before starting test r=jya,baku
Add testing function to know whether video is visible or not.

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

--HG--
extra : moz-landing-system : lando
2018-12-21 06:40:10 +00:00
alwu
16fe01f1fd Bug 1511235 - part2 : add test. r=jya,baku
Add new webidl method for testing only and a test.

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

--HG--
extra : moz-landing-system : lando
2018-12-20 20:01:46 +00:00
Cosmin Sabou
0bedc24aae Backed out 2 changesets (bug 1511235) for causing bugs 1513454, 1513456 as alwu requested on irc. a=backout
Backed out changeset 4c9f874d6868 (bug 1511235)
Backed out changeset 3432e8bee7f1 (bug 1511235)
2018-12-13 03:43:36 +02:00
alwu
aba79e9edc Bug 1511235 - part2 : add test. r=jya,baku
Add new webidl method for testing only and a test.

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

--HG--
extra : moz-landing-system : lando
2018-12-12 02:16:55 +00:00
Jean-Yves Avenard
bdddd3ed8a Bug 1512456 - P8. Use GenericNonExclusivePromise where needed. r=gerald,alwu
Those MozPromises are shared and must be made non-exclusive

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

--HG--
extra : moz-landing-system : lando
2018-12-11 10:47:01 +00:00
Sylvestre Ledru
265e672179 Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset

--HG--
extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
2018-11-30 11:46:48 +01:00
Andreas Pehrson
9a86a15c6f Bug 1423241 - Remove OnTracksAvailableCallback from HTMLMediaElement. r=padenot
Differential Revision: https://phabricator.services.mozilla.com/D12277

--HG--
extra : moz-landing-system : lando
2018-11-23 15:02:23 +00:00
Andreas Pehrson
4213b7db86 Bug 1423241 - Refactor DecodedStream. r=jya
This removes DecodedStream's use of MediaStreamListener in favor of
MediaStreamTrackListener. This change has however rippled through to a lot
more cleanup, per below.

This moves the MediaStreamTrack lifetime ownership for captured
HTMLMediaElements from the media element to DecodedStream, where the
MediaStreamGraph-side tracks are already created and ended today.

This makes MediaStreamTrack creation explicit across the entire codebase and
lets us remove the MediaStreamTrackSourceGetter class and the infrastructure
of adding MediaStreamTracks after they've already been created in the graph
from DOMMediaStream.

With track ownership, and thus TrackID allocation ownership, happening
exclusively in DecodedStream for its output tracks, we also stop throwing
away and recreating the SourceMediaStream to which we feed data on seek.
This is one step closer to fixing bug 1172394 and spec compliance of
HTMLMediaElement.captureStream().

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

--HG--
extra : moz-landing-system : lando
2018-11-23 15:02:03 +00:00
Andreas Pehrson
84905ffbe9 Bug 1423241 - Expose MSG's GraphTime through main-thread-Watchable and move media element to it. r=padenot
Differential Revision: https://phabricator.services.mozilla.com/D9101

--HG--
extra : moz-landing-system : lando
2018-11-23 15:01:13 +00:00
Andreas Pehrson
2561e93cdb Bug 1423241 - Remove a rawptr in HTMLMediaElement. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D9099

--HG--
extra : moz-landing-system : lando
2018-11-23 15:00:55 +00:00
Andreas Pehrson
afdaeed6d7 Bug 1423241 - Rename StreamSizeListener to VideoFrameListener and minor cleanup. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D9096

--HG--
extra : moz-landing-system : lando
2018-11-23 15:00:43 +00:00
Andreas Pehrson
58f77e6354 Bug 1423241 - Implement HTMLMediaElement::IsPlaybackEnded and IsEnded properly for MediaStreams. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D9095

--HG--
extra : moz-landing-system : lando
2018-11-23 15:00:37 +00:00
Andreas Pehrson
aa6d9c24a0 Bug 1423241 - Move special media element captureStream handling of inactive stream out of MediaStreamGraph. r=jib
Differential Revision: https://phabricator.services.mozilla.com/D12264

--HG--
extra : moz-landing-system : lando
2018-11-23 14:59:56 +00:00
Jean-Yves Avenard
bc18f07d03 Bug 1507093 - P3. Ensure that self AddRef/DeRef occur sequentially r=pehrsons
It was possible for two sequential calls to HTMLMediaElement::AddRemoveSelfReference to leave the media element deregistered when it should have registered.
And we ensure to ony ever self register once.

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

--HG--
extra : moz-landing-system : lando
2018-11-15 12:48:11 +00:00
Alexander Surkov
3395e926b6 Bug 1497940 - add nsGenericHTMLElement::AttachAndSetUAShadowRoot helper method, r=smaug 2018-11-02 12:18:20 +08:00
Alex Chronopoulos
5580e3fad1 Bug 934425 - Implement setSinkId in HTMLMediaElement. r=pehrsons
Differential Revision: https://phabricator.services.mozilla.com/D5874

--HG--
extra : moz-landing-system : lando
2018-10-12 09:39:30 +00:00
alwu
985d65ec0c Bug 1495064 - part1 : refactor the logic of requesting wakelock. r=jya
HTMLMediaElement::UpdateWakeLock() is responsible for creating and releasing audio wakelock.
HTMLVideoElement::UpdateWakeLock() is responsible for creating and releasing video wakelock.

In addition, each platform would handle system wakelock properly depending on different requests.

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

--HG--
extra : moz-landing-system : lando
2018-10-02 17:56:21 +00:00
Nathan Froyd
846d8789ee Bug 1492894 - part 1 - make the node hierarchy consistently constructed with NodeInfo&&; r=mccr8
Various places in dom/ use the pattern:

  already_AddRefed<NodeInfo> ni = ...;

which is supposed to be disallowed by our static analysis code, but
isn't, for whatever reason.  To fix our static analysis code, we need to
eliminate instances of the above pattern.

Unfortunately, eliminating this pattern requires restructuring how Nodes
are created.  Most Node subclasses take `already_AddRefed<NodeInfo>&` in
their constructors, and a few accept `already_AddRefed<NodeInfo>&&`.  We
need to enforce the latter pattern consistently, which requires changing
dozens of source files.
2018-09-21 16:45:49 -04:00
alwu
5f20aea27a Bug 1485189 - part1 : dispatch related events when play is not allowed. r=cpearce
"blocked" event is used for testing.

"MozAutoplayMediaBlocked" event is used for changing the control UI on Fennec.

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

--HG--
extra : moz-landing-system : lando
2018-08-28 22:03:15 +00:00
alwu
2614e81154 Bug 1479270 - part1 : remove external player support in media element. r=jya
Since we have native HLS support in 59 [1], we don't need those code anymore.

[1] https://bugzilla.mozilla.org/show_bug.cgi?id=1345752

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

--HG--
extra : moz-landing-system : lando
2018-08-25 00:03:38 +00:00
Andreea Pavel
e7678f51b5 Backed out 2 changesets (bug 1479270) for android lint on a CLOSED TREE
Backed out changeset 1676f895a710 (bug 1479270)
Backed out changeset 643ef11ea720 (bug 1479270)
2018-08-24 20:16:14 +03:00
alwu
45070f69f2 Bug 1479270 - part1 : remove external player support in media element. r=jya
Since we have native HLS support in 59 [1], we don't need those code anymore.

[1] https://bugzilla.mozilla.org/show_bug.cgi?id=1345752

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

--HG--
extra : moz-landing-system : lando
2018-08-23 22:45:46 +00:00
alwu
598c2d9bb1 Bug 1483703 - part2 : add telemetry for the media which was blocked before loading metadata and ended up being without audio track. r=cpearce,francois
Add two telemetry scarlar,

"MEDIA_BLOCKED_NO_METADATA" records how many media which was blocked because it hadn't loaded metadata yet.
"MEDIA_BLOCKED_NO_METADATA_ENDUP_NO_AUDIO_TRACK" records how many media which was blocked because it hadn't loaded metadata and ended up for being no audio track.

By collecting those data, we can know the proportion of media which should be autoplay but was blocked because of lacking metadata.

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

--HG--
extra : moz-landing-system : lando
2018-08-22 22:50:54 +00:00
Timothy Guan-tin Chien
8cc930296b Bug 1431255 - Part II, Create a Shadow Root in HTMLMediaElement when enabled, skipping <xul:videocontrols> r=dholbert,smaug
This prevents XBL binding from being attached, and create the Shadow Root to
host controls to be created by the script.

Shadow Root and the JS controls are lazily constructed when the controls
attribute is set.

Set nsVideoFrame as dynamic-leaf so it will ignore content child frames when
the controls are XBL anonymous content, and handles child frames from controls
in the Shadow DOM. The content nodes are still ignored since there is no
<slot>s in our Shadow DOM.

MozReview-Commit-ID: 3hk41iMa07n

--HG--
extra : rebase_source : f6f8a3facc9d83f5626cf5f3b4e3fa27438a8a8f
2018-06-27 11:12:38 -07:00
alwu
31ef9b1d53 Bug 1482259 - Add Telemetry to know the proportion of silent part in the whole audio track. r=cpearce,francois
Use new telemetry histogram ID 'AUDIO_TRACK_SILENCE_PROPORTION' to know the proportion of
silent part in the whole audio track.

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

--HG--
extra : moz-landing-system : lando
2018-08-15 16:35:51 +00:00
Emilio Cobos Álvarez
1fbd784d00 Bug 1481601 - Remove now-useless aPreallocateChildren from nsINode::Clone() and friends. r=bzbarsky
Since sed on multiple lines ended up being such a pain and I didn't end up
writing a script for this because I didn't think it'd end up being so boring, I
may have made a couple cleanups here and there as well...

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

--HG--
extra : moz-landing-system : lando
2018-08-08 23:58:44 +00:00