Commit graph

897 commits

Author SHA1 Message Date
JW Wang
f60e753628 Bug 1402584. P2 - reset readyState to HAVE_NOTHING before loading next source child. See comment 18 for the root cause. r=gerald
Also assert readyState is HAVE_NOTHING before creating a new decoder.

MozReview-Commit-ID: B0QACf96AA3

--HG--
extra : rebase_source : f89bd84b130273ff734471619485d5f12a83006d
extra : source : 9b63f9eaa250ebe7259cc7fab709aac00858aaf6
2017-10-07 09:05:56 +08:00
JW Wang
bc8e42651b Bug 1402584. P1 - Backed out changeset 442e8020e2ac. r=gerald
MozReview-Commit-ID: JqZJDTMyKGm

--HG--
extra : rebase_source : 944bc58aa562de066854668746e4af158d747484
extra : source : 394da3f085e52296e62af852add26e72fa688a62
2017-10-07 07:58:19 +08:00
JW Wang
e1a489f570 Bug 1405962. P2 - use thread-safe ref counting. r=gerald
These listeners will be AddRefed/Released off the main thread when
OMT data delivery is enabled.

MozReview-Commit-ID: CSOBgNNf3OW

--HG--
extra : rebase_source : d9085c6447e51d3aa9cad79fa1e25d986fdee792
extra : intermediate-source : 21be6f0003e6d3ccf4448e6574ea5d3122665155
extra : source : 8ce13766af359b5e55524e47ea74bcfc0e0133f8
2017-09-20 17:14:01 +08:00
JW Wang
06967bc27c Bug 1402584 - add logs for debugging. See comment 5 for the detail. r=gerald
MozReview-Commit-ID: 48zKkVt5hbK

--HG--
extra : rebase_source : 91a12ef83c5b2560eafe9f41226bfa87413aba92
2017-10-02 13:51:04 +08:00
bechen@mozilla.com
d262781541 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

--HG--
extra : rebase_source : ffb52a12f9a31280dc3be1093b73099394fe7a17
2017-10-03 12:07:13 +08:00
bechen@mozilla.com
b6e091b3ea 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

--HG--
extra : rebase_source : 93032297272bbfc8570dce0c8c13ea9f0d45f7a8
2017-10-03 12:07:09 +08:00
Florian Quèze
d906e37232 Bug 1401919 - Functions used after the seekToNextFrame promise should not be interpreted half the time, r=nbp. 2017-10-04 16:01:04 +02:00
Catalin Badea
f8162c4bfd Bug 651120 - Remove index argument from content removed/appended/inserted notifications. r=peterv 2017-10-03 11:09:08 +01:00
Wes Kocher
a341b32d06 Merge autoland to central, a=merge
MozReview-Commit-ID: 8B7y2ULc04
2017-09-26 17:11:14 -07:00
Andreas Pehrson
4279601af7 Bug 1296531 - Don't keep OutputMediaStreams with a null mStream member. r=jwwang
Fix after an observed nullptr deref on try where mOutputStreams contained an
object whose mStream member had been nulled out.

MozReview-Commit-ID: 4kL1choTeW3

--HG--
extra : rebase_source : e4a6f600a66f00a963b19bf74717246c5099a784
2017-08-24 19:02:28 +02:00
Yoshi Huang
c3e27f8363 Bug 1376971 - Part 4: query loadingprincipal in HTMLMediaElement. r=baku
Query loadingprincipal attribute on the media part.
2017-09-26 12:41:27 +08:00
JW Wang
16f3e9dd23 Bug 1401366. P2 - bail out Observe() if not subcribed per comment 2. r=kaku
MozReview-Commit-ID: 4LEBD3g0OwX

--HG--
extra : rebase_source : c31cb94eeb52b06a3f327492b918e93c82b83616
2017-09-20 17:51:10 +08:00
JW Wang
ed0a449136 Bug 1401366. P1 - format HTMLMediaElement::ShutdownObserver. r=kaku
MozReview-Commit-ID: K9ZYTedgUjC

--HG--
extra : rebase_source : 6a2537f27c91962ecfadd3b7489c9cdcf852da42
2017-09-20 17:46:34 +08:00
Andreas Pehrson
5e6a6af6f3 Bug 1296531 - Remove MediaStream blocking logic from HTMLMediaElement. r=jesup
MediaStreamGraph only implements the blocking notifications for SourceMediaStreams,
but the MediaStream that gets attached as srcObject on a media element is always
a TrackUnionStream. Hence, this code is unused and can be removed.

MozReview-Commit-ID: 6DKtCGNsZec

--HG--
extra : rebase_source : 0b3b7156a9e2e70933edadcc0a59c8fa81d49913
2017-05-08 18:41:28 +02:00
JW Wang
2df8570673 Bug 1399358 - call mDecoder->CanPlayThrough() so MDSM has a chance to exit buffering quickly. r=gerald
MozReview-Commit-ID: A5e3A8HV2ih

--HG--
extra : rebase_source : a70fdd615b178b9d110b66d64c874c55295d401d
2017-09-13 12:43:33 +08:00
James Cheng
073b9ad68c Bug 1398102 - [Part1] canPlayType should return 'maybe' if the codec parameter is empty. r=gerald
MozReview-Commit-ID: BmzIUOuaTj9

--HG--
extra : rebase_source : d23d70aeb6097c0ba31f810240594ca4daa52f20
2017-09-11 17:17:55 +08:00
Sebastian Hengst
797770f328 Backed out changeset 939ecf1b80cb (bug 1398102) for failing mda's dom/media/test/test_can_play_type_wave.html. r=backout 2017-09-12 11:03:50 +02:00
James Cheng
ae3bc947af Bug 1398102 - canPlayType should return 'maybe' if the codec parameter is empty. r=gerald
MozReview-Commit-ID: BmzIUOuaTj9

--HG--
extra : rebase_source : 530b713cf259920b65181d9459323f5f14bae39e
2017-09-11 17:17:55 +08:00
Catalin Badea
393fe4f3b1 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
42e06700b2 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
Kris Maglione
04acc0aace Bug 1396449: Part 2 - Use atoms to test WebExtension permissions. r=krizsa
The extension policy services uses atoms internally for permission names, so
using them directly rather than strings is considerably cheaper.

MozReview-Commit-ID: Io8EuOXHKVy

--HG--
extra : rebase_source : 577b4bdf7f899729e4cf92961a8e9e25bf886a72
2017-09-03 18:51:02 -07:00
Alastor Wu
24213ab2e7 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

--HG--
extra : rebase_source : 5ba1c78b305cc0db125b43c29bff1389f3e9ddb1
2017-09-04 11:05:15 +08:00
JW Wang
29df163b4e Bug 1394705 - let HTMLMediaElement::MediaLoadListener implement nsIThreadRetargetableStreamListener. r=cpearce
This is required to use nsIThreadRetargetableRequest::RetargetDeliveryTo().

MozReview-Commit-ID: GFuAjovabpY

--HG--
extra : rebase_source : 4fbc7877f2548dcf0777c820ee724f41c46de688
2017-08-29 14:28:13 +08:00
Andrew McCreight
78807d8776 Bug 1391005 - Eliminate NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED. r=peterv
Replace it with NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION, because it
has been the same for a while.

MozReview-Commit-ID: 5agRGFyUry1

--HG--
extra : rebase_source : 5388c56b2f6905c6ef969150f0c5b77bf247624d
2017-08-29 16:02:48 -07:00
Alastor Wu
5aaf1c6ce7 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

--HG--
extra : rebase_source : 89ff9d1753ac4a23269ec100920e18020ab5aafb
2017-08-29 15:25:44 +08:00
Alastor Wu
6a6ee2a0d7 Bug 1373888 - part3 : rename the topic of the wake lock. r=cpearce
For knowing the wake lock usage more clearly, we should use more specific topic name.

In OSX, you can use "$ pmset -g assertions" to check all the wakelock.
In Windows, using "$ powser -energy" to generate the energy report.

MozReview-Commit-ID: rAXnkxTvLc

--HG--
extra : rebase_source : 42ebf204673d3c913739f64c71c24af20d37c95d
2017-08-29 10:54:28 +08:00
Alastor Wu
71ad2fdb83 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

--HG--
extra : rebase_source : c5490d417b2d40619eb7092dfc21b19a99982a1c
2017-08-29 10:54:25 +08:00
Alastor Wu
f570c3c5ec Bug 1373888 - part1 : remove useless function. r=cpearce,smaug
These functions didn't be used by anyone, remove them.

MozReview-Commit-ID: BLj8GsVp1gR

--HG--
extra : rebase_source : 1b7eee86c62314401c2374a2979ba2a42fda2490
2017-08-29 10:54:18 +08:00
JW Wang
f8f989dd93 Bug 1394313 - replace use of nsAutoPtr with UniquePtr in MediaDecoderOwner.h. r=cpearce
MozReview-Commit-ID: 49lyvMzg7oY

--HG--
extra : rebase_source : b83cd03b0026c73d0293ef937a3c2544349f464d
2017-08-28 14:10:35 +08:00
Tom Ritter
ae930caa79 Bug 1393535 Fix unused variable warnings in dom/ r=cpearce
MozReview-Commit-ID: 1Ql20AHx1Jz

--HG--
extra : rebase_source : 21105b4fc70953ecdccd4c1e7fe9c9d5564795c4
2017-08-24 11:52:36 -05:00
Chris Pearce
4ffa31745b Bug 1392498 - Move TimeIntervals to dom::TimeRanges conversion into TimeRanges class. r=jya
If TimeUnits.h includes mozilla/dom/TimeRanges.h, then the build ends up
pulling in the Gecko DOM bindings, which pulls in a whole lot of JavaScript and
DOM bindings code. That makes it trickier to import GeckoMedia into Servo, and
makes Gecko's build slower, so move the code to convert TimeIntervals into
dom::TimeRanges.

Also remove an extraneous "virtual" and add "const" to some functions in TimeRanges.

MozReview-Commit-ID: BLeehaf9gCE

--HG--
extra : rebase_source : 84ef054cf8fd5b4434dc761a1b0a39803d3231f5
2017-08-21 15:08:25 +12:00
JW Wang
c62c2c21b4 Bug 1392919. P3 - remove unused code and fix naming. r=gerald
MozReview-Commit-ID: 36PqGtOpAbf

--HG--
extra : rebase_source : 9ff9234f1f5db9151808d9a2ee33ced6d9e089c6
2017-08-23 14:42:25 +08:00
Alastor Wu
556554c6f5 Bug 1382780 - part2 : separate the value of actual playback rate and media element's attribute. r=cpearce
According to [1], we should separate the value of actual playback rate and media elemenet's attribute.
But still keep a MAX and MIN threshold to control the highest and lowser playback rate for decoder.

[1] http://w3c-test.org/html/semantics/embedded-content/media-elements/playing-the-media-resource/playbackRate.html

MozReview-Commit-ID: EGCa4yrNXO6

--HG--
extra : rebase_source : d03b831eeebb3e3e3bb0759394eab0116be0f1d5
2017-08-24 16:58:45 +08:00
Alastor Wu
8417fdd605 Bug 1382780 - part1 : return NS_ERROR_DOM_NOT_SUPPORTED_ERR for the negative playback rate. r=cpearce
According to [1], we should return NotSupportedError for the negative playback rate.

[1] https://github.com/w3c/web-platform-tests/pull/6522

MozReview-Commit-ID: KoqDkBmP3h9

--HG--
extra : rebase_source : ddf1cdd03a980686df6d6613e1bd507bf37d8337
2017-08-24 16:58:42 +08:00
JW Wang
2834911596 Bug 1391170 - lessen the assertion in AddMediaElementToURITable() so we can move MediaDecoder::GetResource() to private. r=gerald
If AddMediaElementToURITable() is called after the decoder Load failed, mDecoder
will be reset and it is sufficient to assert mDecoder only.

MozReview-Commit-ID: 58WT8zFeiFj

--HG--
extra : rebase_source : 712579b544e9a9ce971778b85795d06e58bd4ea5
extra : intermediate-source : 470e2d8a20010e11d7a7dce5540957e89439811e
extra : source : 59f4b2b33212794aa1cf3e8782737a2d4af8c241
2017-08-17 15:41:22 +08:00
JW Wang
934fb866da Bug 1390443. P3 - rewrite the logic about mWaitingForKey. r=cpearce
This fixes the bug where mWaitingForKey is reset only when mPaused is false.
We should reset mWaitingForKey to NOT_WAITING_FOR_KEY when the key is
available and decoding can continue.

http://w3c.github.io/encrypted-media/#resume-playback

MozReview-Commit-ID: LjIhe9cTsdg

--HG--
extra : rebase_source : d2d351928d1994ee3ae688d4e798ab204ab1609c
extra : intermediate-source : e8700b4344aa29f6b2c52ee4d920d59db4012577
extra : source : 41e1c10f32465ca0abac61bbfd555ee89a8c67a1
2017-08-17 10:47:07 +08:00
JW Wang
6ce3e3224c Bug 1390443. P1 - don't change nextFrameStatus when MDSM reaches the end of playback. r=cpearce
Instead, MediaDecoder::NextFrameStatus() checks IsEnded() and returns
NEXT_FRAME_UNAVAILABLE to ensure we have HAVE_CURRENT_DATA when playback
is ended on the main thread.

This will fix the timing issue (comment 0) which causes 'waiting' to fire.

MozReview-Commit-ID: 7O21x2q0lb8

--HG--
extra : rebase_source : bbd898edfb5f4a47a5062dd2bc916c911caf0c8e
extra : intermediate-source : 2b3e413db02a7aad00d13fdf274b346bccafc414
extra : source : 6f60fad11b65e75b456e128f8414fe2ea545455f
2017-08-16 15:33:58 +08:00
Sebastian Hengst
b3764d9e0a Backed out changeset 4f8ac9b281da (bug 1390443) for failing web-platform-tests, e.g. /encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential-readyState.html. r=backout 2017-08-21 10:20:24 +02:00
Sebastian Hengst
ddc7c75859 Backed out changeset 5bcf66374df8 (bug 1390443) 2017-08-21 10:19:34 +02:00
JW Wang
56bf968d96 Bug 1390443. P3 - rewrite the logic about mWaitingForKey. r=cpearce
This fixes the bug where mWaitingForKey is reset only when mPaused is false.
We should reset mWaitingForKey to NOT_WAITING_FOR_KEY when the key is
available and decoding can continue.

http://w3c.github.io/encrypted-media/#resume-playback

MozReview-Commit-ID: LjIhe9cTsdg

--HG--
extra : rebase_source : 0563bf7831ed66bcdb5bec741b1366243eed49f9
extra : intermediate-source : e8700b4344aa29f6b2c52ee4d920d59db4012577
extra : source : 41e1c10f32465ca0abac61bbfd555ee89a8c67a1
2017-08-17 10:47:07 +08:00
JW Wang
a69873c9a9 Bug 1390443. P1 - don't change nextFrameStatus when MDSM reaches the end of playback. r=cpearce
Instead, MediaDecoder::NextFrameStatus() checks IsEnded() and returns
NEXT_FRAME_UNAVAILABLE to ensure we have HAVE_CURRENT_DATA when playback
is ended on the main thread.

This will fix the timing issue (comment 0) which causes 'waiting' to fire.

MozReview-Commit-ID: 7O21x2q0lb8

--HG--
extra : rebase_source : 0a676ef7278214a707c97687311a73da8bcd983e
extra : intermediate-source : 2b3e413db02a7aad00d13fdf274b346bccafc414
extra : source : 6f60fad11b65e75b456e128f8414fe2ea545455f
2017-08-16 15:33:58 +08:00
Jean-Yves Avenard
329ff1fecf Bug 1391666 - P3. Change to HAVE_ENOUGH_DATA when possible. r=cpearce
In bug 1312886, we made sure that readyState would never become HAVE_ENOUGH_DATA if we were waiting for a key.
However, this is in effect useless as the next call to ChangeReadyState would have reset mWaitingForKey.

In practice, it only meant that we delayed the change from HAVE_FUTURE_DATA to HAVE_ENOUGH_DATA until the next call to UpdateReadyState.

MozReview-Commit-ID: 2wnMeN8xxCS

--HG--
extra : rebase_source : f5b0fa50ead1565882c3bf8ba245702987784d8a
2017-08-18 21:00:08 +02:00
Jean-Yves Avenard
34fd923c04 Bug 1391666 - P2. Reset mWaitingForKey when we have data and autoplay attribute is set r=cpearce
By default, a media element that has never played is in paused mode. As such, we need to reset mWaitingForKey to NOT_WAITING_FOR_KEY otherwise, readyState will never become HAVE_ENOUGH_DATA.

MozReview-Commit-ID: EIi3Crt4zHl

--HG--
extra : rebase_source : e9f9ad4136020db7db081b5c125f664e1c7bda20
2017-08-18 19:20:48 +02:00
Chris Pearce
fcd4613526 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

--HG--
extra : rebase_source : 505f9dce979aad0529b07d2c046dca5028af6de6
2017-08-15 17:09:06 +12:00
Carsten "Tomcat" Book
2b8080e2fc Backed out changeset 4a31e4302e03 (bug 1390748)
--HG--
extra : rebase_source : 9571466ebc151a9788a380008c5d8941e3e24665
2017-08-17 08:35:30 +02:00
Chris Pearce
60751f0b79 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

--HG--
extra : rebase_source : 505f9dce979aad0529b07d2c046dca5028af6de6
2017-08-15 17:09:06 +12:00
Phil Ringnalda
38ce1ea2a0 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
a0917579b4 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

--HG--
extra : rebase_source : 366d4e34e9c425b478b4c9058e27c9a32de36515
2017-08-15 17:09:06 +12:00
Chris Pearce
f2902bdf82 Bug 1390406 - Remove unnecessary includes in dom/media/mediasource. r=jya
MozReview-Commit-ID: 1aTncGfBicu

--HG--
extra : rebase_source : 8ad085eb81d195732c385718c283b4752e5e3c80
2017-08-15 16:13:00 +12:00
Matthew Gregan
526a07e856 Bug 1388236 - Remove B2G-only AudioChannel code from dom/audiochannel. r=alwu 2017-08-10 13:00:09 +12:00
Matthew Gregan
3efbb6fca4 Bug 1388236 - Remove B2G-only AudioChannel code from HTMLMediaElement. r=jwwang 2017-08-10 13:00:08 +12:00
Matthew Gregan
2f8cc7804c Bug 1388236 - Remove B2G-only AudioChannel code from MSG. r=padenot 2017-08-10 13:00:08 +12:00
Matthew Gregan
89fde0ce0f Bug 1388236 - Remove B2G-only AudioChannel code from media playback. r=jwwang 2017-08-10 13:00:07 +12:00
Honza Bambas
e372b0a90f Bug 1377206 - Explicitly disable throttling of media HTTP responses, r=cpearce
--HG--
extra : rebase_source : 01f913c44c7ce02bedd733faaf11262353f3461d
2017-08-04 04:38:00 +02:00
JW Wang
b2d75fa057 Bug 1383628. P5 - move CanClone() from MediaResource to BaseMediaResource. r=gerald
1. we move clone related methods to BaseMediaResource which is the only cloneable sub-class of MediaResource.
2. add CanClone() to ChannelMediaDecoder to reduce the dependency on MediaResource for HTMLMediaElement.
   MediaResource should be internal details to MediaDecoder.

MozReview-Commit-ID: Hl2nAiuyTO0

--HG--
extra : rebase_source : 43dd9ee33ef2ef2e9093eb6b264dc174379d61d2
extra : source : 978ded48a90f2c407c4545486243acabf492736a
2017-08-04 15:29:55 +08:00
JW Wang
a8a917b8bb Bug 1383628. P2 - move the call to Load() into Clone(). r=gerald
MozReview-Commit-ID: 9k8BXLwAepI

--HG--
extra : rebase_source : 52d3fb871bad53691585e774c2745f328592eb3f
extra : source : cdc492f87aa634eaaae0809aacb261ad25be7b08
2017-08-03 17:47:23 +08:00
Sebastian Hengst
765cc1b925 merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: JhesEg4Bxjy
2017-08-04 19:28:27 +02:00
Bill McCloskey
2273c53b75 Bug 1364821 - Introduce AbstractThread::AutoEnter and remove main thread's AbstractThread::GetCurrent() (r=jwwang)
MozReview-Commit-ID: FSLVn7xe3sq
2017-08-03 14:19:02 -07:00
JW Wang
be3df48dc5 Bug 1384831. P5 - remove unused arguments from HLSDecoder::Load(). r=gerald
MozReview-Commit-ID: JsULuDcMiNa

--HG--
extra : rebase_source : c9c78f57a4fb2278143c8c69343d5e8a97765bbb
extra : source : e019f6fc241c8f35d58a8aa27854159b09dd21f9
2017-07-27 02:54:53 +08:00
JW Wang
197591cec8 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

--HG--
extra : rebase_source : cf0e55a6a0eafeb4e34ff1eed5bb7e1d97d73e80
extra : source : edefbf5d7179c5390bd2a25fbbcd025095d39555
2017-07-26 15:49:03 +08:00
Paul Adenot
757aef5fa0 Bug 1385305 - Change CanBeCaptured and friends so that they use explicit and self-explaining constants. r=jya
MozReview-Commit-ID: Hpuxlc8Ib5j

--HG--
extra : rebase_source : 3a15d350b8d296f3d6c3fb3419938cdcc01526c2
2017-07-28 17:53:12 +02:00
JW Wang
1ab15ede36 Bug 1385699. P3 - remove MediaDecoder::SetInfinite() and related code. r=cpearce
Since inf can be encoded in MDSM::mDuration, we don't need an additional flag
in MediaDecoder to indicate 'infinite' anymore. Note duration change from infinite
to finite is handled by MDSM, so we can remove the explicit calls to SetInfinite(false).

MozReview-Commit-ID: EoxwZJzPAJl

--HG--
extra : rebase_source : 669d7ed5b99a89b1827f60f89e0a21f08a18dedd
extra : source : a30b614784afe8772b2212728c1e4a2eac67f94b
2017-08-01 14:15:29 +08:00
Paul Adenot
7f1c17c634 Bug 1384247 - Check if an HTMLMediaElement can be capture before doing it. r=dminor
MozReview-Commit-ID: EWpf2qA2Yce

--HG--
extra : rebase_source : fd990877481c6f3977e2dc0ec615c0282d30123d
2017-07-27 16:02:28 +02:00
Gerald Squelart
bc05f23ecc 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

--HG--
extra : rebase_source : 98c21147cb2da4f5f3f1c4dea9d3180b774f8c1a
2017-07-25 15:53:01 +12:00
Jean-Yves Avenard
daf2be6beb Bug 1382303 - P2. Do not activate autoplay early. r=jwwang
Per spec, autoplay should only gets triggered once readyState is equal to HAVE_ENOUGH_DATA

MozReview-Commit-ID: 6nW1U6G1qme

--HG--
extra : rebase_source : da46988cc75b0b5c2a87d86f55fca2fda912be55
2017-07-20 19:11:44 +02:00
JW Wang
cf0ba2ea01 Bug 1380569. P3 - remove AbstractMediaDecoder::NotifyWaitingForKey() and its callers. r=gerald
MozReview-Commit-ID: 3fHDr0xw92P

--HG--
extra : rebase_source : 07ca1ae4e8d65e66beca2d1eb0de232ec6e291fb
extra : intermediate-source : d367e33cc9c132abb9e66aae652f4bbbf4f58be1
extra : source : 029ccea837ef1948bd33ce1d786626f362c41bdf
2017-07-13 14:52:05 +08:00
JW Wang
5cf374a225 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

--HG--
extra : rebase_source : fd595399e2db4e76ad117636768e160c2f054775
extra : intermediate-source : 1fc86c40dc83e79306c721b1acb0f31803181509
extra : source : d24b62a6041966b2639e5543c9ecccc4f7656a0d
2017-07-13 14:41:09 +08:00
JW Wang
51b253855d 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

--HG--
extra : rebase_source : 004f5bb3552b8d2b8b3b911887037c78e7cb9e79
2017-07-14 15:17:32 +08:00
Bevis Tseng
f051ae4a45 Bug 1341540 - Label runnables in dom/html/HTMLMediaElement.cpp. r=jwwang
MozReview-Commit-ID: 7i0MhGWoNPb

--HG--
extra : rebase_source : 577a231ac5ed3658311eacd19cd3fe912fdee0b0
2017-07-07 10:36:13 +08:00
Olli Pettay
21b0ca3bbf Bug 1378196, Make IsEventAttributeName non-virtual in common case, r=ehsan
--HG--
extra : rebase_source : 9daf46de13698348b7ab6b68f8da13ffb338c0a0
2017-07-04 23:54:30 +03:00
Paul Adenot
404c800005 Bug 1341555 - Consolidate use of the MSG's AbstractMainThread, and stop having AbstractMainThread on MediaStreams. r=pehrsons
MozReview-Commit-ID: 5hGDQcfpH6a

--HG--
extra : rebase_source : 41bb678f37cfcdbc9912a25f45a5ca488084aabe
2017-06-29 11:30:57 -07:00
Paul Adenot
6e485889b8 Bug 1330360 - Create new MSGs for each nsPIDOMWindow. r=jesup
MozReview-Commit-ID: 5m1MGcLmT7J

--HG--
extra : rebase_source : b9c05464bb545c047b7718a048eb7e5de3fe275d
2017-06-23 16:18:34 -07:00
Paul Adenot
d1a2003316 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

--HG--
extra : rebase_source : b59a8ec4de17aa90d274819ea0c7d687673c8075
2017-06-28 15:19:39 -07:00
JW Wang
1e2be3e873 Bug 1376363. P1 - store container type in MediaDecoder. r=gerald
So we can remove MediaResource::GetContentType() in the future.

MozReview-Commit-ID: zWUNF2uGpf

--HG--
extra : rebase_source : 04f50c4db9dac8503f878a8a1986e627f9a074a3
extra : source : 10737393beaabed640aa3ff67fac2a07567400b4
2017-06-26 17:10:47 +08:00
Chris Pearce
c1a1beca7f Bug 1376509 - Bump supported playack rates to [1/16,16]. r=padenot
Chrome supports playback rates in the ranges of [1/16,16], so we may as well
support the same.

MozReview-Commit-ID: 7mMXQfPiv9d

--HG--
extra : rebase_source : 5dd0b717ad711f49ff3df5156cc07d48c8a694b7
2017-06-28 10:00:58 -07:00
Bill McCloskey
f115503a0b Bug 1372405 - Provide names for all runnables in the tree (r=froydnj)
MozReview-Commit-ID: DKR6ROiHRS7
2017-06-26 14:19:58 -07:00
JW Wang
43c85c2307 Bug 1376227. P5 - merge CreateResource() and Load() for they are highly coupled. r=gerald
MozReview-Commit-ID: EH9NROdQfmd

--HG--
extra : rebase_source : 63c2ba04de1a25fb05db15977d8a19638e31b272
2017-06-23 15:39:57 +08:00
JW Wang
42e66521f5 Bug 1376227. P4 - remove the unused parameter from FinishDecoderSetup(). r=gerald
MozReview-Commit-ID: 7Ux811oMq9y

--HG--
extra : rebase_source : 82f058ad862daf93bc3c5bbb2dbc6a1b57757811
2017-06-23 15:25:40 +08:00
JW Wang
350f03bde7 Bug 1376227. P3 - move Load() down the class hierarchy. r=gerald
So we won't pass an unused |nsIStreamListener**| to MediaSourceDecoder::Load().

MozReview-Commit-ID: 2TCby8m8K5H

--HG--
extra : rebase_source : 349179aa4303c0abd8b86a695789770e158e5c28
extra : intermediate-source : d6f550bd6709a0ee7db6033286af42565a20cdb1
extra : source : ed524d855a1a78665c499152a9360ba961655641
2017-06-23 14:12:41 +08:00
JW Wang
1dbf0f77fa Bug 1376227. P2 - remove unused code following P1. r=gerald
MozReview-Commit-ID: JbwY1Owtk7H

--HG--
extra : rebase_source : 0f82ac16f56ce6ba27944b093b49c8ff6479e66c
extra : intermediate-source : 38c1c8a70fb0209f8c6a3ca596664db9af089763
extra : source : 7cfe394c4790ca7687db9004c96380f088c2bb59
2017-06-21 17:34:22 +08:00
JW Wang
884c26d368 Bug 1376227. P1 - let MediaDecoder sub-classes have the knowledge how to create a MediaResource. r=gerald
MozReview-Commit-ID: 2fHEkU46MUr

--HG--
extra : rebase_source : 18f5b01a065d6acbdc88ce808f8bd1e8e462e8d7
extra : intermediate-source : e003e070535d95f7e6334f4a92d6d763d436023c
extra : source : 450d506c6bb85f53b44fed296a32845bcd777905
2017-06-21 17:30:56 +08:00
Mats Palmgren
3ae8e80f81 Bug 1375075 - Remove a FlushPendingNotifications that we don't need anymore. r=cpearce
The code that needed it was removed in bug 1325053.

MozReview-Commit-ID: 8P60SOpqyPq
2017-06-23 02:03:09 +02:00
Mats Palmgren
c3f48d9dd2 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
61f7ca2479 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

--HG--
extra : rebase_source : 3a2e70ca4bf56e1c73b7faff8e183211787a96bf
extra : source : 682cb949adae4683ae1cbbfbb4c457b83cb1fddc
2017-06-20 18:10:27 +08:00
JW Wang
1aa2d7bbd7 Bug 1374930. P2 - add an entry only after FinishDecoderSetup() succeeds. r=cpearce
MozReview-Commit-ID: 6MKRhVIZ4Z6

--HG--
extra : rebase_source : ab5a8551a1a054eba93be85c602b954ab15f9d8e
extra : intermediate-source : 75c4be291a53f119a30f40b3ae555a5ce7a0544f
extra : source : 20dd0be1d8d4f7838a0aff0755ad14e00a1d6eb0
2017-06-20 15:27:45 +08:00
JW Wang
75e01f7b0a Bug 1371202. P1 - plumb the 'loop' attribute into MDSM. r=jya
MozReview-Commit-ID: DtsaXmtQw76

--HG--
extra : rebase_source : 34686d455670975a824dc803a16b8acff97c86ab
extra : intermediate-source : 0de95b1644a365dda9beff4b75d56251da2258c7
extra : source : ba5b2599c949766395bf5b0381023a752bc6e04d
2017-06-08 12:03:10 +08:00
JW Wang
e8a94c0927 Bug 1371200. P2 - add more fields to MediaDecoderInit. r=cpearce
Now we can init some members in the constructor and remove the setters
that are called only once.

MozReview-Commit-ID: 2hkrIA6pFlh

--HG--
extra : rebase_source : 33c008ef1508597e64ef7f92b028867dbd4ffba6
extra : source : fa213ee733ea881f4f76dac06c9b4709aeba4b91
2017-06-07 14:10:26 +08:00
JW Wang
4031d18757 Bug 1371200. P1 - add MediaDecoderInit and fix MediaDecoder constructor and its friends. r=cpearce
We will add more fields to MediaDecoderInit and be able to remove some setters.

MozReview-Commit-ID: BVx935IHQHf

--HG--
extra : rebase_source : 6d167265e478ce39881ceada1303e9ca18189bbf
extra : source : 0c26f909568f673591ad6720458dfc912c01daad
2017-06-07 12:14:11 +08:00
Kirk Steuber
99a80af5db 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

--HG--
extra : rebase_source : 777cfed750c95c448f953a6ec98026481997e227
2017-06-07 10:28:20 -07:00
Jean-Yves Avenard
a16fab66e4 Bug 1362165: P7. Only complete appendBuffer once readyState has changed. r=jwwang
MSE specs require that the readyState be modified during either the Initialization Segment Received or the Coded Frame Processing algorithms.

At this stage, we only handle the Initialization Segment part (readyState moving from HAVE_NOTHING to HAVE_METADATA)

MozReview-Commit-ID: KBnnWuHJ6Om

--HG--
extra : rebase_source : a4450139762d5d033438fbee2ce560fe02ed6ffc
2017-05-09 12:23:11 +02:00
Alastor Wu
6ad4f8c987 Bug 1362793 - part1 : shouldn't shutdown decoder too early. r=jwwang
The spec says that we don't need to change the ready state when getting the error.
If the ready state is "HAVE_METADATA", it means we could get the video's duration
at that time.

However, if we shutdown decoder too early, we won't get the correct duration.

In addition, since we remove old decoder prior to create new one in the function
HTMLMediaElement::SetDecoder(), we can remove the decoder checking assertion
in HTMLMediaElement::InitializeDecoderForChannel().

MozReview-Commit-ID: CHRJHng8Xm0

--HG--
extra : rebase_source : 32b2114f5b4bce2d777826295959a6ce0701984d
2017-05-19 12:38:17 +08:00
Kirk Steuber
e74f1cd513 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

--HG--
extra : rebase_source : 42776eb01451d371e4aebcc17fe3dd112c8d268b
2017-05-18 14:09:01 -07:00
Tom Ritter
f447134149 Bug 1365036 Lowercase Objbase.h so MinGW can find the file r=baku
MozReview-Commit-ID: JCgyym17EO7

--HG--
extra : rebase_source : 2cc153f51f5de6632afa359b9b291a24401fe307
2017-05-15 15:34:58 -05:00
Chun-Min Chang
da52aad1f7 Bug 1331763 - part1: Support EME content for AudioContext::CreateMediaElementSource; r=cpearce
MozReview-Commit-ID: 1OMySAPCH4i

--HG--
extra : rebase_source : abd014ffc19976abbfdb523b6a172e42a3a80521
2017-05-15 13:21:28 +08:00
Chris Pearce
8be5473cac 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

--HG--
extra : rebase_source : 1b77046ebb7bb2d4ff1ba53afce904d3de45c335
2017-05-10 11:31:16 +12:00
Alastor Wu
a6e6b04a38 Bug 1351087 - part1 : don't register agent for audio without audio track. r=baku
Since we don't want to show media control for media without audio track (eg. GIFV),
it's no need to register audio agent for them.

MozReview-Commit-ID: 22YrMkpNrcP

--HG--
extra : rebase_source : 78a6c41b6018f91ed9370fb2f15c650fe76ba3a1
2017-05-09 14:10:43 +08:00
Alastor Wu
acab9ac022 Bug 1357633 - part1 : request audio focus again when resume media from page. r=baku
Should also update audio playing changed after resumed from page.

MozReview-Commit-ID: 66vuJJFeWN3

--HG--
extra : rebase_source : 06802b2e49f5e712a1d9fd34d4ae017995faaa75
2017-05-10 23:43:11 +08:00
Carsten "Tomcat" Book
d66b9f27d5 merge mozilla-inbound to mozilla-central a=merge 2017-05-10 15:07:28 +02:00
Bill McCloskey
c197e07ff2 Bug 1363560 - Name more runnables (r=mccr8)
MozReview-Commit-ID: 3hxZDA4JlTV
2017-05-09 21:53:25 -07:00
Tom Tung
150ceb8855 Bug 1348050 - Part 4: Mark channel as urgent-start for loading media. r=baku
The part is mainly to set urgent-start for loading media when it's initiated by
user interaction. For the HTMLMedia element, it has its algorithm to pre-load
the media and users will get feedback once they play the media. Thus, I only
set urgent-start when the media element has autoplay attribute since the sooner
enough resource is loaded the sooner the media will be played.

MozReview-Commit-ID: 7nu3PUt8iYo

--HG--
extra : rebase_source : f1abfecdccb74f4ec79a057534c2e9a1bfd5ae41
2017-04-28 15:27:10 +08:00
Iris Hsiao
541787d3f9 Backed out changeset 763cc804a25d (bug 1361944) for causing crashtest perma failure on Android 2017-05-05 15:12:51 +08:00
JW Wang
dba2f2df64 Bug 1361944. P2 - be sure to shut down the existing decoder before loading the next source child. r=cpearce
Otherwise we will fail the assertion (!mDecoder, "Shouldn't have a decoder")
in HTMLMediaElement::InitializeDecoderForChannel().

MozReview-Commit-ID: 1zShp0th3Uv

--HG--
extra : rebase_source : 9b61fd8f6817e33c7d041e4b49bc34ccbc357a15
2017-05-04 13:28:17 +08:00
JW Wang
0b67e0ea16 Bug 1361944. P1 - add a crash test. r=cpearce
The crash happens when:
1. there are multiple <source> children.
2. decode error happens on the 1st child.

MozReview-Commit-ID: 60UXaQ475Nh

--HG--
extra : rebase_source : b7e61ae909cfa10fb2db3c41b278449de41b9450
2017-05-04 14:23:23 +08:00
Kirk Steuber
7fdb378650 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

--HG--
extra : rebase_source : 9c3deec6d7aafd6411044d623d4863637b45fd58
2017-04-20 12:57:48 -07:00
Kaku Kuo
dab014bd99 Bug 1360123 P2 - move ConstructMediaTracks/RemoveMediaTracks to HTMLMediaElemnt; r=jwwang
MozReview-Commit-ID: 3S63JeXAX2w

--HG--
extra : rebase_source : ef807247a5042fa23ba6b6f5c907035bd8d64199
2017-04-18 15:43:55 +08:00
Kaku Kuo
bb1078e81f Bug 1360123 P1 - don't bother creating a new track list in HTMLMediaElement::RemoveMediaTracks() r=jwwang
MozReview-Commit-ID: 6lmSxmKMrDK

--HG--
extra : rebase_source : b99831cdf14a2d0ae156792f49ef7f7f65b1a1cd
2017-04-10 18:09:35 +08:00
Alastor Wu
c03792963c Bug 1358061 - remove moz-audiochannel codes for media element and web audio. r=baku
MozReview-Commit-ID: KPuhxCVezOZ

--HG--
extra : rebase_source : 74a9c9a9746d0add26f279c6dd5ddc30681be901
2017-04-26 12:02:32 +08:00
Phil Ringnalda
6b3d58414b Backed out changeset 6e7efb9115fd (bug 1358061) for build bustage
CLOSED TREE

MozReview-Commit-ID: F9FSciVgynw
2017-04-25 20:55:30 -07:00
Alastor Wu
222377e8ac Bug 1358061 - remove moz-audiochannel codes for media element and web audio. r=baku
MozReview-Commit-ID: BwZ6vHUPnSB

--HG--
extra : rebase_source : c92556cf92ff96b8014281396b28e1e232aa8576
2017-04-25 12:19:28 +08:00
JW Wang
e96831f0c7 Bug 1356514 - remove the usage of nsContentUtils::IsInPrivateBrowsing() in HTMLMediaElement.cpp. r=Ehsan
Per bug 1194891 comment 35, use |NodePrincipal()->GetPrivateBrowsingId() > 0| instead.

MozReview-Commit-ID: Cu6geuTWhGz

--HG--
extra : rebase_source : 1f899705ce1c2d9b7beec44a2f88a2cb37d0430f
2017-04-18 14:26:32 +08:00
JW Wang
433b4bb763 Bug 1348053 - add the UrgentStart flag to the channel when the loading is initiated by a user interaction for quicker network response. r=cpearce
MozReview-Commit-ID: 1tk9k8u1zTu

--HG--
extra : rebase_source : 349a518dd071f4c4b10a3853f7d42fe9a43f0804
extra : intermediate-source : 379f010a50f6a72d5429c530b1a24bfd1c9ed803
extra : source : cd10c3301c6da15e9bc87b956d8cc2c956acefaf
2017-04-10 15:23:11 +08:00
Kaku Kuo
36ef069505 Bug 1344357 P3 - dont' pass dom::Promise into MediaDecoder anymore; r=jwwang
MozReview-Commit-ID: 5RUNauRRajP

--HG--
extra : rebase_source : 4c12d5cd730657da37b2c94987e84518c2c67ae5
2017-04-17 18:49:55 +08:00
Kaku Kuo
707fc9d61a Bug 1344357 P2 - put HTMLMediaElement::mSeekDOMPromise into cycle collector; r=jwwang
MozReview-Commit-ID: 5NOyAz02vTj

--HG--
extra : rebase_source : d54318fd81ee11f5f10a6dfe44d6a2c0affb8881
2017-04-17 18:40:17 +08:00
Kaku Kuo
b06e8a5370 Bug 1344357 P1 - move the MediaDecoder::mSeekDOMPromise to HTMLMediaElement; r=jwwang
There was a cycle amoung a window object -> a HTMLMediaElement -> a MediaDecoder -> a Promise (-> back to the window object).
And we have no way to break the cycle since the MediaDecoder does not participate into the collection.

By moving the Promise form MediaDecoder to HTMLMediaElement, we will be able to break the cycle since the HTMLMediaElement is in the collection.

We'll implement the cycle collection in the next patch.

MozReview-Commit-ID: CyVXBl6IMI3

--HG--
extra : rebase_source : 195a322ce3e6fe933e72be4aec5d2ebfa1f54865
2017-04-17 18:25:26 +08:00
Gerald Squelart
76e4d2f3eb Bug 1343437 - HTMLMediaElement::DecodeWarning() should store a warning instead of an error - r=jya
MozReview-Commit-ID: 47hURppxH5H

--HG--
extra : rebase_source : f373d61a61dfbabd64de3c5f99c056ee65dae643
2017-03-14 01:12:20 +11:00
JW Wang
84734bb3c0 Bug 1194891. P1 - plumb 'isPrivateBrowsing' down to MediaCacheStream. r=cpearce
MozReview-Commit-ID: EBKkOfK7K1p

--HG--
extra : rebase_source : 82daa16ffa0809a4de660867ab61d9a9efdf2a83
extra : source : b61d0c22837a6ee8085c95afbd1370ffa8286e6e
2017-04-06 16:20:00 +08:00
Alastor Wu
6218dd5593 Bug 1247433 - don't set error for unsupported type media. r=JamesCheng,jwwang,kaku
On Fennec, we use external video player to play unsupported type media.

In this bug, we can't execute play() successfully because the spec said that
we should abort the play if the value of media element's error is
MEDIA_ERR_SRC_NOT_SUPPORTED [1].

Therefore, we do a hack for unsupported type media, we don't set its error, but
we would still remember the src is unsupported type. When media element starts
playing, we would use an external video player to play that src.

[1] https://goo.gl/GlLbeA

MozReview-Commit-ID: 42HxQtXdWDe

--HG--
extra : rebase_source : 83425528eacee8af1829eaead2fef39b0be51ae5
2017-03-29 11:55:50 +08:00
Alastor Wu
192096681c Bug 1347648 - part4 : notify audible change after finishing set suspend and pause state. r=jwwang
Since the audible state would depend on pause and suspend state, we should do
the check after finishing play() or pause().

MozReview-Commit-ID: 1yhxuQDw067

--HG--
extra : rebase_source : 888bac3da52f42b75eeb1c3db1337e223d792a11
2017-03-27 10:59:44 +08:00
Alastor Wu
758808ea61 Bug 1347648 - part2 : paused media element is non-audible. r=jwwang
If the media element is paused, it should be non-audible.

MozReview-Commit-ID: 2HjV9gNNcnV

--HG--
extra : rebase_source : 39b0812788d020d3f9c1a96afa1397b32057de8c
2017-03-27 10:59:07 +08:00
Alastor Wu
d8197f5d08 Bug 1347758 - part4 : add audio channel log. r=Ehsan
MozReview-Commit-ID: 3zVYtD86O82

--HG--
extra : rebase_source : 3a7726760d6e4941cdbe2e6c9ee7132420482bb4
2017-03-24 14:44:18 +08:00
Alastor Wu
7c05349889 Bug 1347758 - part2 : remove add/removeMediaContent() and related codes. r=Ehsan
Since the window would know when need to resume the media, we don't need the
add/removeMediaContent() anymore.

MozReview-Commit-ID: F9MSiqqnOiV

--HG--
extra : rebase_source : fa86b3977e13d1f2a6b6233b6d608ccc331b5bf7
2017-03-24 14:43:40 +08:00
Iris Hsiao
26a234de5d Backed out 6 changesets (bug 1347758) for eslint failure
Backed out changeset 9becd55242c1 (bug 1347758)
Backed out changeset 2abce19f5001 (bug 1347758)
Backed out changeset 80232d4c85d5 (bug 1347758)
Backed out changeset 1fd084ec34d4 (bug 1347758)
Backed out changeset cafb3c12027b (bug 1347758)
Backed out changeset 85846edfe957 (bug 1347758)
2017-03-24 16:58:08 +08:00
Alastor Wu
e81c17d1b2 Bug 1347758 - part4 : add audio channel log. r=Ehsan
MozReview-Commit-ID: LNXzRZx2rC2

--HG--
extra : rebase_source : eef0ad3d65161c422d3cab57e6e081796452bdd1
2017-03-24 12:04:15 +08:00
Alastor Wu
8591f98cad Bug 1347758 - part2 : remove add/removeMediaContent() and related codes. r=Ehsan
Since the window would know when need to resume the media, we don't need the
add/removeMediaContent() anymore.

MozReview-Commit-ID: F9MSiqqnOiV

--HG--
extra : rebase_source : 28a8312373054b8e29b93267677de99dd862a074
2017-03-24 12:01:46 +08:00
Kaku Kuo
c4629a637d Bug 1349456 part 2 - mark elemet as tainted while captured via MozCaptureStream(); r=jwwang
MozReview-Commit-ID: 1V776bLuH43

--HG--
extra : rebase_source : 546587dc77dba4931788359a0a80507892594a7d
2017-03-22 14:46:09 +08:00
Kaku Kuo
1cf3c62747 Bug 1349456 part 1 - correct indentation; r=jwwang
MozReview-Commit-ID: 4i8sQaotJpO

--HG--
extra : rebase_source : 601553fb2ac3715b6a89cfb64d8c3d3b8880af25
2017-03-22 14:33:11 +08:00
Kaku Kuo
a2b8741937 Bug 1348432 - move the mMediaTracksConstructed flag back to MediaDecoder; r=jwwang
This mMediaTracksConstructed flag should belong to a MediaDecoder,
every time a HTMLMediaElement switches its MediaDecoder, the flag should be reset to false again.

So, we move the mMediaTracksConstructed flag back to MediaDecoder, by this way,
HTMLMediaElement provides only the mechanism to construct and remove media tracks,
and MediaDecoder uses the flag, mMediaTracksConstructed, to provide policy.

MozReview-Commit-ID: L7mMAmLjQCy

--HG--
extra : rebase_source : 1625d604afb34bffe79eda06a46c9feb780a14d9
2017-03-18 22:34:01 +08:00
Alastor Wu
295d2183ba Bug 1329122 - should unregister agent when media element becomes inactive. r=baku
We should remove the media control interface immediately when the document is inacitve, even it was paused by media control before.

MozReview-Commit-ID: GBDhzEFOTXE

--HG--
extra : rebase_source : f357d19ceb26d307d1d68696ad875d044e14aa8b
2017-03-22 00:04:24 +08:00
Kaku Kuo
0696209786 Bug 1347892 part 2 - pass the visibility state of media element to media decoder as a Visibility variable; r=jwwang
MozReview-Commit-ID: AbkJeIpYZlN

--HG--
extra : rebase_source : 3ace472786b9b9900b125164996819b6d6e3627f
2017-03-17 12:51:11 +08:00
Kaku Kuo
6da6d229fa Bug 1347892 part 1 - initialize a media element's mVisibilityState to be UNTRACKED; r=jwwang
MozReview-Commit-ID: Bkkh6hvCNu4

--HG--
extra : rebase_source : 48af639b9ce04f11a20cc55088dc3cb3f59971ec
2017-03-16 19:26:49 +08:00
Kaku Kuo
0d5f3a200f Bug 1347402 part 5 - create MediaElementGMPCrashHelper in HTMLMediaElement.cpp; r=cpearce,jwwang
Move the creation of MediaElementGMPCrashHelper out from MediaDecoder.cpp
which reduces the dependency of MediaDecoder to HTMLMediaElement.

MozReview-Commit-ID: E60aMfcFr7V

--HG--
extra : rebase_source : f50a8ee6f2fbec0bdf117eb1217066bc9c701745
extra : source : dd4e52da6d0d6205fe61d0caba44bbff008fd21a
2017-03-16 11:16:15 +08:00
Kaku Kuo
b7fee84e84 Bug 1347402 part 4 - move ConstructMediaTracks/RemoveMediaTracks to HTMLMediaElemnt; r=jwwang
ConstructMediaTracks and RemoveMediaTracks are actually HTMLMediaElement's responsibilities.

MozReview-Commit-ID: 8lOdzD4pN7N

--HG--
extra : rebase_source : 7159d2c62b77429e5b2305b9e3eb7a0020a3b52c
extra : source : 0467c059be3cd8f066da5fc912b7738a5b9c4dd9
2017-03-15 17:33:21 +08:00
Kaku Kuo
a71c156f34 Bug 1347402 part 2 - open a GetOwnerDoc() interface at the MediaDecoderOwner; r=jwwang
Open a GetOwnerDoc() method to the MediaDecoderOwner interface and then we can get the
owner document via a pointer to MediaDecoderOwner in MediaDecoder.

MozReview-Commit-ID: JCzQDLx1MsU

--HG--
extra : rebase_source : e194c95cb1513046ec7aa19d6c6e9f8231971a2d
extra : source : 1b9c45911a036e3677b6636cda84a636681d71de
2017-03-15 11:40:37 +08:00
Kaku Kuo
7f7c37e4b3 Bug 1347836 part 2 - make HTMLMediaElement::GetCurrentImage() return an already_AddRefed<layers::Image>; r=jwwang
MozReview-Commit-ID: FZ4JRdbPUry

--HG--
extra : rebase_source : 9d532e4bb55be8b9d83d120ee62a7b2f5e521efc
2017-03-16 17:07:04 +08:00
Kaku Kuo
97ae833320 Bug 1347836 part 1 - fix comment; r=jwwang
MozReview-Commit-ID: 61ElwSsArw1

--HG--
extra : rebase_source : bf7ffa38145692c47762b0f47c7f2dc943f2c33d
2017-03-16 17:05:10 +08:00
Kaku Kuo
a1edb1f6ed Bug 1346116 part 2 - consider a video is in-tree or not in the suspend-video-decoding policy; r=jwwang
We never suspend videos that is NOT in-tree because we found that, according to the Telemetry data, most (>70%) videos
which are used as the argument of drawImage() are not in-tree. So, by preventing suspending not-in-tree videos, we should
be able to alleviate the pain of not able to resume video decoders synchronously.

MozReview-Commit-ID: 8eqs0pHZLIt

--HG--
extra : rebase_source : 964c0047753696cad2e40bcf74c2b8ee9faccdea
extra : source : 93c38caa15b1a29f8f1e8e6d3a5e859f97bc1aae
2017-03-12 14:02:04 +08:00
Kaku Kuo
f758e455ea Bug 1346116 part 1 - initialize MediaDecoder::mIsDocumentVisible and MediaDecoder::mIsElementVisible at HTMLMediaElement::FinishDecoderSetup(); r=jwwang
Initialize the MediaDecoder::mIsElementVisible to be "!aOwner->IsHidden()" at the MediaDecoder's constructor is wrong.
Insted, we initialize both MediaDecoder::mIsDocumentVisible and MediaDecoder::mIsElementVisible to be false at the construtor,
and then assign the HTMLMediaElement's real values to them at HTMLMediaElement::FinishDecoderSetup() via the the MediaDecoder::SetActiviyChangesToDecoder().

The initialization values of MediaDecoder::mIsDocumentVisible and MediaDecoder::mIsElementVisible (in the constructor) do not matter because the valuse are
not read untile the first MediaDecoder::SetActiviyChangesToDecoder() method call.

MozReview-Commit-ID: Cdovq5pG9Nv

--HG--
extra : rebase_source : 91f3b4c2515124b4c195dd246bd9b404178a35de
extra : source : 81b5e89a5bd20f37b8c3daa1230db30808026ff4
2017-03-12 13:56:43 +08:00
Kaku Kuo
7e43b9cace Bug 1346498 part 9 - move all policy codes into MediaDecoder::UpdateVideoDecodeMode(); r=jwwang
Make HTMLMediaElement no longer has logic of deciding visibility, it just passes all information into MediaDecoder.

MozReview-Commit-ID: ApVcEQfboO

--HG--
extra : rebase_source : 88c70b0cf1933d9cf814359909463a811be2ab9f
extra : source : 669d1340d3c93d3e0eab55ce87693f842cf40247
2017-03-11 19:56:17 +08:00
Kaku Kuo
fbcb4f2d6f Bug 1346498 part 8 - extract the HTMLMediaElement::NotifyDecoderActivityChanges() method; r=jwwang
Move all the policy rules into this method now, will then move the policies into MediaDecoder at next patch.

MozReview-Commit-ID: ILAYLrTwCJy

--HG--
extra : rebase_source : 8ae3adcbbd8f2fd61f0da0de437f41f78d945c89
extra : source : feb8ad754e86b43e15bf2eeb3a2ba2dc24a00599
2017-03-11 18:25:41 +08:00
Kaku Kuo
541a442e39 Bug 1346498 part 7 - remove outdated comments in HTMLMediaElement.cpp; r=jwwang
MDSM's dormant mechanism has nothing to do with the HTMLMediaElement's states now.

MozReview-Commit-ID: 4RSHsexy7fi

--HG--
extra : rebase_source : cb84fda2c182c63c6276b143ce071afc01c694d8
extra : source : af0217686959affe143167487588faab137212ce
2017-03-11 16:33:50 +08:00
Kaku Kuo
2f5609af1a Bug 1345403 part 3 - Test element becomes tainted by DrawImage; r=jwwang,smaug
MozReview-Commit-ID: 9Txz4FbFtPe

--HG--
extra : rebase_source : eab599fdcbafa2fef60cc9951863727d8cc9c265
extra : intermediate-source : edc821a13b41fdfdae851e5fe2a8784795f248d9
extra : source : f540afdef527d1beb10a29c235f2e3b5637fc814
2017-03-08 20:22:05 +08:00
Kaku Kuo
93f2cee949 Bug 1345403 part 2 - Mark element tainted when DrawImage is used; r=jwwang,mattwoodrow
Mark video element as tainted (stored on the decoder owned by video element) when the video is used as source to drawImage() on canvas.

MozReview-Commit-ID: HdciVwhqPu3

--HG--
extra : rebase_source : 79e1bbdc671abb8555d68f7fb6106929c45fd528
extra : intermediate-source : 47fbcedbed69a5434b1cb25b8f72f862e9cefeac
extra : source : 149234329b62015dfd2e954030c23bf9c6b1d55e
2017-03-08 19:41:08 +08:00
Iris Hsiao
bdff9504ef Backed out 5 changesets (bug 1345403) for permanent failure in autophone Mdm tests
Backed out changeset f6415ae0ba89 (bug 1345403)
Backed out changeset ac12e246a808 (bug 1345403)
Backed out changeset a3e4ce12194f (bug 1345403)
Backed out changeset ba072186c917 (bug 1345403)
Backed out changeset 7a7d6e9b8329 (bug 1345403)
2017-03-13 15:28:14 +08:00
Kaku Kuo
0759051af2 Bug 1345403 part 3 - Test element becomes tainted by DrawImage; r=jwwang,smaug
MozReview-Commit-ID: 9Txz4FbFtPe

--HG--
extra : rebase_source : 904462698bdcdd89dad05ab1631910ea3b9bf5d2
extra : source : f540afdef527d1beb10a29c235f2e3b5637fc814
2017-03-08 20:22:05 +08:00
Kaku Kuo
fe566c1222 Bug 1345403 part 2 - Mark element tainted when DrawImage is used; r=jwwang,mattwoodrow
Mark video element as tainted (stored on the decoder owned by video element) when the video is used as source to drawImage() on canvas.

MozReview-Commit-ID: HdciVwhqPu3

--HG--
extra : rebase_source : b26c257afaaabdd6346a5421988d95e82281d7ef
extra : source : 149234329b62015dfd2e954030c23bf9c6b1d55e
2017-03-08 19:41:08 +08:00
Michael Layzell
befc7b0924 Bug 1331434 - Part 9: Return after ErrorResult::Throw in /dom, r=ehsan
MozReview-Commit-ID: CWjx4L8LTr9
2017-03-07 19:06:48 -05:00
Wei-Cheng Pan
510ba75c20 Bug 1310127 - Part 17: Use MOZ_MUST_USE in netwerk/protocol/http r=smaug
MozReview-Commit-ID: 5gvVZtsa3yS

--HG--
extra : rebase_source : 5e1ab2fc06ae58f18abb8909ac93f9512abbe220
2016-12-20 11:49:32 +08:00
David Major
ed0b8f8653 Bug 1344615: Remove nsXPCOMStrings.{h,cpp} r=bsmedberg
These are now dead code.

MozReview-Commit-ID: AClU0Qx3kmN

--HG--
extra : rebase_source : df83cf89292da1519bb26027c11e14923d5c54a0
2017-03-06 17:52:54 +13:00
Carsten "Tomcat" Book
d0bd960945 merge mozilla-inbound to mozilla-central a=merge 2017-03-06 10:53:27 +01:00
Alastor Wu
f973d1e5cf Bug 1343465 - part1 : check audio track to decide the audible state when the media element was muted. r=baku
If the media starts after muting the tab, IsOwnerAudible() would always return
"eNotAudible". It causes that the "play tab" icon can't be displayed because we
only show the "play tab" icon for the "eMaybeAudible" or "eAudible".

We should check whether owner owns the audio track to decide the return value.

MozReview-Commit-ID: DGwkArx0a4R

--HG--
extra : rebase_source : 920968acc744593f4ef383be4068352233c74101
2017-03-04 16:51:12 +08:00