Commit graph

691 commits

Author SHA1 Message Date
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
Alastor Wu
77053f1035 Bug 1338137 - part1 : ref media content when the media element bind to tree. r=baku
In bug1319771, we found that the tab would become visible unexpectly in short
period in some situations. We don't want to resume the tab in this kind of
situation, so we check whether there is any alive media component in the tab
using IsServiceStarted(). However, since we have lots different ways to create
the service, this function is not accurate at all.

Therefore, we can add media element directly to the document when it binds to
tree so that we can really know whether there is any alive media component.

MozReview-Commit-ID: FvZFg91IqgE

--HG--
extra : rebase_source : 43c2460f6e9a39d44bf2ca1638c992a0e27b196c
2017-03-04 01:14:24 +08:00
karo
3c2b014e09 Bug 1343409 - HTMLMediaElement::MozRequestDebugInfo returns EMEInfo. r=cpearce
MozReview-Commit-ID: 1iQP3OJmwdP

--HG--
extra : rebase_source : 171155ab5e58cac8cc9db9109a5c2fc88b1930d3
2017-03-01 12:56:29 +13:00
Patrick McManus
0a3349e548 Bug 1344374 - remove now-meaningless nsIRequest::INHIBIT_PIPELINE r=hurley 2017-03-03 16:46:53 -05:00
Gerald Squelart
418963d5c8 Bug 1343161 - MediaDecoderOwner::DecodeWarning and HTMLMediaElement implementation - r=jya
Similar to DecodeError, except we allow decoding to continue.

MozReview-Commit-ID: FN9m03o6GXV

--HG--
extra : rebase_source : a6ca0cc28d2990ab143676758cd880baaca7bcb7
2017-02-27 12:12:37 +11:00
Gerald Squelart
bfa6625f32 Bug 1343161 - StoreDecodeError from HTMLMediaElement::DecodeError - r=jya
MozReview-Commit-ID: 8Q66JScrrxS

--HG--
extra : rebase_source : d2c6703fde49e65bcacd775c4a0098e5724cf80a
2017-02-21 14:02:11 +11:00
Alastor Wu
674bf43368 Bug 1339230 - part2 : should be non-audible when media is suspended. r=baku
MozReview-Commit-ID: GtktbXEpuUU

--HG--
extra : rebase_source : 0085f2551767dc894e10897b98c23c72b63dc197
2017-02-24 17:15:22 +08:00