Commit Graph

340 Commits

Author SHA1 Message Date
Csoregi Natalia
492e79ef24 Backed out 6 changesets (bug 1395922) for failing Media tests test_eme_sample_groups_playback.html and test_eme_sample_groups_playback.html r=backout a=backout
Backed out changeset f856af63682e (bug 1395922)
Backed out changeset f59a7e727f39 (bug 1395922)
Backed out changeset 9cd31c6a8e2c (bug 1395922)
Backed out changeset d46f952f94f8 (bug 1395922)
Backed out changeset f786d928b1e0 (bug 1395922)
Backed out changeset bacda0f99f71 (bug 1395922)
2017-11-06 12:34:02 +02:00
Chris Pearce
f8a6ecb100 Bug 1414680 - Make MediaDecoderOwner::DispatchAsyncEvent() return void. r=jwwang
The return value is unchecked in MediaDecoder, and we only ever returned
NS_OK anyway. And we if the dispatch fails, we can't really do anything;
dispatching an "error" event probably won't work.

MozReview-Commit-ID: 67K6Mjft6tY
2017-11-05 09:12:44 +01:00
Chris Pearce
2e999b6b83 Bug 1414680 - Remove IsActive() and IsHidden() from MediaDecoderOwner as they're unused by MediaDecoder. r=jwwang
MozReview-Commit-ID: 7NaPBmQJVQC
2017-11-05 09:11:09 +01:00
JW Wang
19c2c2d20e Bug 1414121. P1 - let mozDumpDebugInfo() return a promise. r=bz
MozReview-Commit-ID: Klfr3AYdSCG
2017-11-03 10:33:27 +08:00
Kilik Kuo
a28a9f3650 Bug 1395922 - [P3] Make HTMLMediaElement::SetMediaKeys asynchronously. r=cpearce
MozReview-Commit-ID: 5M8CTHMsmIh
2017-11-03 20:14:17 +08:00
Kilik Kuo
56534df5ba Bug 1395922 - [P1] Refactor code and move them into specific functions. r=cpearce
MozReview-Commit-ID: 9lwRH66Wllp
2017-11-03 14:35:32 +08:00
bechen@mozilla.com
9f3d6e0e99 Bug 1183495 - part2: Remove mozSrcObject in MediaElement. r=jwwang
MozReview-Commit-ID: 2bmYnu2RDdt
2017-10-20 11:23:07 +08:00
JW Wang
230433023d Bug 1409270. P4 - remove mWatchManager. r=gerald
MozReview-Commit-ID: G45ezz1o2x8
2017-10-17 15:10:23 +08:00
JW Wang
d7b511f6a7 Bug 1409270. P1 - remove Watchable<> from mDownloadSuspendedByCache. r=gerald
MozReview-Commit-ID: K0hhlOKN399
2017-10-17 14:46:15 +08:00
JW Wang
6f533b28de Bug 1409263. P2 - remove Watchable<> from HTMLMediaElement::mReadyState. r=gerald
MozReview-Commit-ID: EYXY7FDfYvd
2017-10-17 14:28:56 +08:00
JW Wang
9bf664fb28 Bug 1407148 - add logs for debugging crashes. r=gerald
MozReview-Commit-ID: FgDbl2tCbEE
2017-10-12 10:46:13 +08:00
JW Wang
4dc9de614f Bug 1397708 - remove HTMLMediaElement::mBegun. See comment 12 for the root cause. r=cpearce
When network state is changed to IDLE, mBegun is also set to false. [1]
And then when HTMLMediaElement::DownloadResumed(false) is called, network
state is not changed to LOADING for mBegun is false [2]. This prevents us
from firing 'progress' events for the network state is IDLE.

See comment 12 for more details.

[1] http://searchfox.org/mozilla-central/rev/b53e29293c9e9a2905f4849f4e3c415e2013f0cb/dom/html/HTMLMediaElement.cpp#6077
[2] http://searchfox.org/mozilla-central/rev/b53e29293c9e9a2905f4849f4e3c415e2013f0cb/dom/html/HTMLMediaElement.cpp#5673

MozReview-Commit-ID: DOfqKZXAqaz
2017-10-10 07:04:18 +08:00
Kris Maglione
09b72bad18 Bug 1406278: Part 5a - Use subject principal as triggering principal in <audio>/<video> "src" attribute. r=bz
MozReview-Commit-ID: A1JixlTeZGq
2017-10-05 14:47:09 -07:00
Kris Maglione
5f00cf0c65 Bug 1406278: Part 1 - Pass subject principal to SetAttribute and friends. r=bz
In order to tailor certain security checks to the caller that is attempting to
load a particular piece of content, we need to be able to attach an
appropriate triggering principal to the corresponding requests. Since most
HTML content is loaded based on attribute values, that means capturing the
subject principal of the caller who sets those attributes, which means making
it available to AfterSetAttr hooks.

MozReview-Commit-ID: BMDL2Uepg0X
2017-10-09 14:33:38 -07:00
Nicholas Nethercote
7dbfdaf890 Bug 1400460 - Rename nsIAtom as nsAtom. r=hiro.
(Path is actually r=froydnj.)

Bug 1400459 devirtualized nsIAtom so that it is no longer a subclass of
nsISupports. This means that nsAtom is now a better name for it than nsIAtom.

MozReview-Commit-ID: 91U22X2NydP
2017-10-03 09:05:19 +11:00
bechen@mozilla.com
db5a642843 Bug 1324883 - part2: Once a MediaElement receive document unload event, remove all MediaElements in gElementTable with the same uri. r=jwwang
MozReview-Commit-ID: 7Z0ouKsebp8
2017-10-03 12:07:13 +08:00
bechen@mozilla.com
52a955a59a Bug 1324883 - Shutdow the decoder when receiving nsIWebProgressListener with flag LOAD_RELOAD_BYPASS_PROXY_AND_CACHE in docshell. r=jwwang,smaug
We register the nsIWebProgressListener at the root docshell(GetSameTypeRootTreeItem) to handle video element embedded in iframe.

MozReview-Commit-ID: D4CavLDAnKD
2017-10-03 12:07:09 +08:00
Catalin Badea
fd46c72e33 Bug 1380621 - Change the order of member variables in HTMLMediaElement. r=cpearce
This reduces the size of the object by avoiding memory alignment padding.
2017-09-06 11:20:00 +01:00
Catalin Badea
48c8fdd05c Bug 1380621 - Use node pointer for HTMLMediaElement::mSourcePointer. r=cpearce
Using a pointer instead of an index helps us avoid some costly
operations such as IndexOf and GetChildAt with the upcoming changes from
bug 651120.
2017-09-06 11:16:23 +01:00
Alastor Wu
4d86f7d153 Bug 1395359 - make sure all references value are set before we use them. r=cpearce
1. since setVolume would trigger updateWakelock(), we should set |mOuter| before that.
2. move outer as required parameter in its constructor.
3. should init all member varaibles which would be referenced by wakeLockWrapper before its initialization.

MozReview-Commit-ID: H9A3aCKp6eT
2017-09-04 11:05:15 +08:00
Chris Pearce
843b5fd9b4 Bug 1395021 - Fix up includes to account for StreamTracks.h not being indirectly included in so many places. r=jwwang
With MediaInfo.h no longer including StreamTracks.h, some things that include
MediaInfo.h now use things that are no longer included. This patch adds the
includes back in, so the build works again.

MozReview-Commit-ID: INpH3vnBAmk
2017-08-30 15:38:56 +12:00
Alastor Wu
d27956623b Bug 1373888 - part6 : only release the wakelock when video is paused. r=cpearce
Wakelock would automatically handle the lock/unlock by listening "hidden/visible", we
don't need to handle it in HTMLVideoElement.

MozReview-Commit-ID: AcOwR2nqm6L
2017-08-29 15:25:57 +08:00
Alastor Wu
73da3fd7fb Bug 1373888 - part5 : only request audio wake lock when it's audible. r=cpearce
No need to prevent sleeping for non-audible audio.

MozReview-Commit-ID: 6p3azSUWTU2
2017-08-29 15:25:44 +08:00
Alastor Wu
07f2b0f9cf Bug 1373888 - part2 : remove the timer which was used for b2g. r=cpearce
The timer was added for the b2g issue, now we can remove it.

MozReview-Commit-ID: BNjIghImCzC
2017-08-29 10:54:25 +08:00
Alastor Wu
2bc6bce6d1 Bug 1373888 - part1 : remove useless function. r=cpearce,smaug
These functions didn't be used by anyone, remove them.

MozReview-Commit-ID: BLj8GsVp1gR
2017-08-29 10:54:18 +08:00
JW Wang
276f246c61 Bug 1394313 - replace use of nsAutoPtr with UniquePtr in MediaDecoderOwner.h. r=cpearce
MozReview-Commit-ID: 49lyvMzg7oY
2017-08-28 14:10:35 +08:00
JW Wang
7f2e81ee65 Bug 1392919. P3 - remove unused code and fix naming. r=gerald
MozReview-Commit-ID: 36PqGtOpAbf
2017-08-23 14:42:25 +08:00
Chris Pearce
b09f61f76c Bug 1390748 - Pre-declare MediaDecoder in HTMLMediaElement. r=jwwang
I noticed that touching MediaDecoder rebuilds a lot of seemingly unrelated
code. This is because HTMLMediaElement includes MediaDecoder.h, and
HTMLMediaElement is included in a number of places. Having HTMLMediaElement.h
predeclare rather than include fixes it.

MozReview-Commit-ID: I0vrPgqvvge
2017-08-15 17:09:06 +12:00
Carsten "Tomcat" Book
900a6c3b92 Backed out changeset 4a31e4302e03 (bug 1390748) 2017-08-17 08:35:30 +02:00
Chris Pearce
a90b42435d Bug 1390748 - Pre-declare MediaDecoder in HTMLMediaElement. r=jwwang
I noticed that touching MediaDecoder rebuilds a lot of seemingly unrelated
code. This is because HTMLMediaElement includes MediaDecoder.h, and
HTMLMediaElement is included in a number of places. Having HTMLMediaElement.h
predeclare rather than include fixes it.

MozReview-Commit-ID: I0vrPgqvvge
2017-08-15 17:09:06 +12:00
Phil Ringnalda
34d25d405e Backed out 10 changesets (bug 1390748) for build bustage
Backed out changeset 02b36ee5fb17 (bug 1390748)
Backed out changeset 84e8bf01c856 (bug 1390748)
Backed out changeset fc8989be30f3 (bug 1390748)
Backed out changeset 14d421ace6cc (bug 1390748)
Backed out changeset 7dadac869038 (bug 1390748)
Backed out changeset 0e77809e7bc2 (bug 1390748)
Backed out changeset bf78a8dce9c5 (bug 1390748)
Backed out changeset 5fa77990472e (bug 1390748)
Backed out changeset 5d3b637d2485 (bug 1390748)
Backed out changeset 634fe076d134 (bug 1390748)

MozReview-Commit-ID: Dxio8vXDCHg
2017-08-16 21:33:10 -07:00
Chris Pearce
c4c0db8c23 Bug 1390748 - Pre-declare MediaDecoder in HTMLMediaElement. r=jwwang
I noticed that touching MediaDecoder rebuilds a lot of seemingly unrelated
code. This is because HTMLMediaElement includes MediaDecoder.h, and
HTMLMediaElement is included in a number of places. Having HTMLMediaElement.h
predeclare rather than include fixes it.

MozReview-Commit-ID: I0vrPgqvvge
2017-08-15 17:09:06 +12:00
Matthew Gregan
1a48118e9a Bug 1388236 - Remove B2G-only AudioChannel code from HTMLMediaElement. r=jwwang 2017-08-10 13:00:08 +12:00
Matthew Gregan
732e0cc4ee Bug 1388236 - Remove B2G-only AudioChannel code from MSG. r=padenot 2017-08-10 13:00:08 +12:00
JW Wang
0424576da8 Bug 1384831. P2 - rewrite HTMLMediaElement::InitializeDecoderForChannel() and move HLSDecoder creation code to it. r=gerald
Since we will remove ChannelMediaDecoder from HLSDecoder's base class, we can't
create HLSDecoder in InstantiateDecoder which returns a ChannelMediaDecoder.

MozReview-Commit-ID: 9wcrIVIOZFp
2017-07-26 15:49:03 +08:00
Paul Adenot
fe1e6433f6 Bug 1385305 - Change CanBeCaptured and friends so that they use explicit and self-explaining constants. r=jya
MozReview-Commit-ID: Hpuxlc8Ib5j
2017-07-28 17:53:12 +02:00
Gerald Squelart
e4e286e64e Bug 1383984 - Enable debugging HTMLMediaElement APIs with 'tabs' permission - r=jya,smaug
While "debugger" is not available yet, we can enable these debugging APIs for
extensions that have the "tabs" privilege, which includes the Media Panel
Devtools extension, so we/webdev will get better media-playback information.

MozReview-Commit-ID: I0MAZH9g0HU
2017-07-25 15:53:01 +12:00
JW Wang
6e89499aaf Bug 1380569. P1 - rename CannotDecryptWaitingForKey() to NotifyWaitingForKey() and add the function to MediaDecoderOwner. r=gerald
We will use MediaEventSource to plumb the event from MFR to the media element.

MozReview-Commit-ID: 4gaEx7vYybE
2017-07-13 14:41:09 +08:00
JW Wang
f7b934bab5 Bug 1376004. P1 - include http response code in the error.message field so the UI has more details to display a proper error message. r=cpearce
MozReview-Commit-ID: CHBXZZxfPc0
2017-07-14 15:17:32 +08:00
Bevis Tseng
0e843ba44f Bug 1341540 - Label runnables in dom/html/HTMLMediaElement.cpp. r=jwwang
MozReview-Commit-ID: 7i0MhGWoNPb
2017-07-07 10:36:13 +08:00
Olli Pettay
36c7177e03 Bug 1378196, Make IsEventAttributeName non-virtual in common case, r=ehsan 2017-07-04 23:54:30 +03:00
Paul Adenot
0a1b1a9c7b Bug 1371719 - Don't create a MediaStreamGraph without doing anything with it. r=jesup
The MediaStreamGraph relies on having at least one message sent to its message
queue on creation, or it will just sit there and do nothing, and block shutdown
because its not running its rendering loop, so it's not progressing in the
MediaStreamGraph life cycle state machine.

This patch makes sure the `captureStream` will succeed before creating an MSG.

MozReview-Commit-ID: CN1arWydmxC
2017-06-28 15:19:39 -07:00
JW Wang
0064b6f13e Bug 1376227. P4 - remove the unused parameter from FinishDecoderSetup(). r=gerald
MozReview-Commit-ID: 7Ux811oMq9y
2017-06-23 15:25:40 +08:00
JW Wang
d6e01cebbe Bug 1376227. P2 - remove unused code following P1. r=gerald
MozReview-Commit-ID: JbwY1Owtk7H
2017-06-21 17:34:22 +08:00
Mats Palmgren
a37c7c4e08 Bug 1374875 - Use simpler mutation observer than nsRange for media elements. r=cpearce
MozReview-Commit-ID: FVPdHC6tBXg
2017-06-23 02:03:08 +02:00
JW Wang
f17989ec1b Bug 1374930. P3 - move Clone() down to ChannelMediaDecoder for clone is possible only for those use channel-based resource. r=cpearce
MozReview-Commit-ID: Ci2kbts2pkQ
2017-06-20 18:10:27 +08:00
Kirk Steuber
6684b17554 Bug 1365092 - Move side effects of SetAttr, UnsetAttr, and ParseAttribute functions to BeforeSetAttr and AfterSetAttr r=bz
This is necessary to facilitate the transition to cloning attributes instead of reparsing them.

MozReview-Commit-ID: Gyd1tD6ldly
2017-06-07 10:28:20 -07:00
Kirk Steuber
e2ea33731f Bug 1363481 - Add the old attribute value as a parameter to Element::AfterSetAttr r=bz
In order to facilitate the movement of code with side-effects called by Element::SetAttr to Element::BeforeSetAttr and Element::AfterSetAttr, Element::AfterSetAttr should have access to the old value of the attribute. This includes information about whether there was previously a value set or not.

Accomplishing this involved passing an additional argument through functions that find and change the old attribute value in order to ensure that we can differentiate between an empty old value and an absent old value (attribute was not set).

Note that while I tried to ensure that accurate values (and their absence) are reported to Element::AfterSetAttr, I largely ignored SVG. While the old value reported for SVG values should be however accurate the value already being reported to SetAttrAndNotify was, SVG elements do not currently report unset values properly because they will never pass a null pointer to SetAttrAndNotify.

MozReview-Commit-ID: K1mha8CNFZP
2017-05-18 14:09:01 -07:00
Chris Pearce
0ffdf7dd9f Bug 1362212 - Implement HTMLMediaElement.reportCanPlayTelemetry. r=gerald
Defer determining whether we have usable decoders to an off-main thread in
order to avoid janking the main thread.

MozReview-Commit-ID: Ape5zEBBMrz
2017-05-10 11:31:16 +12:00
Kirk Steuber
9386a2f3e1 Bug 1359556 - Optimize cloneNode by preinitializing attribute and child arrays r=bz
Currently, attribute and child arrays (implemented in dom/base/nsAttrAndChildArray.h) start out empty. When cloning, the array ends up being resized multiple times in order to add the attributes and children that are being cloned from the original node. This would be quicker if the array was initialized to the correct size in the first place so that resizes are not necessary.

However, preallocating space for children is only necessary when performing a deep clone. Therefore, an additional parameter is being added to the Clone, CopyInnerTo, and CloneDocHelper methods to indicate whether preallocation of children should happen. Attributes are copied either way, so that part of the array is preallocated in both cases.

MozReview-Commit-ID: 3iVezeAKXnI
2017-04-20 12:57:48 -07:00