Commit Graph

1084 Commits

Author SHA1 Message Date
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
Jean-Yves Avenard
9b3aa49302 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
2017-07-20 19:11:44 +02:00
JW Wang
7ba3b7eab7 Bug 1380569. P3 - remove AbstractMediaDecoder::NotifyWaitingForKey() and its callers. r=gerald
MozReview-Commit-ID: 3fHDr0xw92P
2017-07-13 14:52:05 +08: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
aadd3c3a24 Bug 1341555 - Consolidate use of the MSG's AbstractMainThread, and stop having AbstractMainThread on MediaStreams. r=pehrsons
MozReview-Commit-ID: 5hGDQcfpH6a
2017-06-29 11:30:57 -07:00
Paul Adenot
b501ebc61e Bug 1330360 - Create new MSGs for each nsPIDOMWindow. r=jesup
MozReview-Commit-ID: 5m1MGcLmT7J
2017-06-23 16:18:34 -07: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
464e6d7a38 Bug 1376363. P1 - store container type in MediaDecoder. r=gerald
So we can remove MediaResource::GetContentType() in the future.

MozReview-Commit-ID: zWUNF2uGpf
2017-06-26 17:10:47 +08:00
Chris Pearce
ccdba556af 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
2017-06-28 10:00:58 -07:00
Bill McCloskey
ce42826bdf 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
9b94d757aa Bug 1376227. P5 - merge CreateResource() and Load() for they are highly coupled. r=gerald
MozReview-Commit-ID: EH9NROdQfmd
2017-06-23 15:39:57 +08: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
e61275e384 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
2017-06-23 14:12:41 +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
JW Wang
f55b75dc89 Bug 1376227. P1 - let MediaDecoder sub-classes have the knowledge how to create a MediaResource. r=gerald
MozReview-Commit-ID: 2fHEkU46MUr
2017-06-21 17:30:56 +08:00
Mats Palmgren
ad8f480b5c 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
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
JW Wang
e1ce375b5d Bug 1374930. P2 - add an entry only after FinishDecoderSetup() succeeds. r=cpearce
MozReview-Commit-ID: 6MKRhVIZ4Z6
2017-06-20 15:27:45 +08:00
JW Wang
e11983b26f Bug 1371202. P1 - plumb the 'loop' attribute into MDSM. r=jya
MozReview-Commit-ID: DtsaXmtQw76
2017-06-08 12:03:10 +08:00
JW Wang
6f518a53ad 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
2017-06-07 14:10:26 +08:00
JW Wang
87f0f44500 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
2017-06-07 12:14:11 +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
Jean-Yves Avenard
20c79a5e0d 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
2017-05-09 12:23:11 +02:00
Alastor Wu
152e2f5930 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
2017-05-19 12:38:17 +08: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
Tom Ritter
ec1d81f756 Bug 1365036 Lowercase Objbase.h so MinGW can find the file r=baku
MozReview-Commit-ID: JCgyym17EO7
2017-05-15 15:34:58 -05:00
Chun-Min Chang
6ddb34822a Bug 1331763 - part1: Support EME content for AudioContext::CreateMediaElementSource; r=cpearce
MozReview-Commit-ID: 1OMySAPCH4i
2017-05-15 13:21:28 +08: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
Alastor Wu
d2b3782047 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
2017-05-09 14:10:43 +08:00
Alastor Wu
341c403406 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
2017-05-10 23:43:11 +08:00
Carsten "Tomcat" Book
c807d58426 merge mozilla-inbound to mozilla-central a=merge 2017-05-10 15:07:28 +02:00
Bill McCloskey
c402a046c2 Bug 1363560 - Name more runnables (r=mccr8)
MozReview-Commit-ID: 3hxZDA4JlTV
2017-05-09 21:53:25 -07:00
Tom Tung
5b84b76520 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
2017-04-28 15:27:10 +08:00
Iris Hsiao
52ff06b763 Backed out changeset 763cc804a25d (bug 1361944) for causing crashtest perma failure on Android 2017-05-05 15:12:51 +08:00
JW Wang
d2cf59049a 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
2017-05-04 13:28:17 +08:00
JW Wang
fcfcc3c80c 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
2017-05-04 14:23:23 +08: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
Kaku Kuo
494800117b Bug 1360123 P2 - move ConstructMediaTracks/RemoveMediaTracks to HTMLMediaElemnt; r=jwwang
MozReview-Commit-ID: 3S63JeXAX2w
2017-04-18 15:43:55 +08:00
Kaku Kuo
310c951228 Bug 1360123 P1 - don't bother creating a new track list in HTMLMediaElement::RemoveMediaTracks() r=jwwang
MozReview-Commit-ID: 6lmSxmKMrDK
2017-04-10 18:09:35 +08:00
Alastor Wu
c2ee741d03 Bug 1358061 - remove moz-audiochannel codes for media element and web audio. r=baku
MozReview-Commit-ID: KPuhxCVezOZ
2017-04-26 12:02:32 +08:00
Phil Ringnalda
9a4f26dd07 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
347fbb9c2e Bug 1358061 - remove moz-audiochannel codes for media element and web audio. r=baku
MozReview-Commit-ID: BwZ6vHUPnSB
2017-04-25 12:19:28 +08:00
JW Wang
03dd9cb628 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
2017-04-18 14:26:32 +08:00
JW Wang
07dec81aea 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
2017-04-10 15:23:11 +08:00
Kaku Kuo
ce1acb3b09 Bug 1344357 P3 - dont' pass dom::Promise into MediaDecoder anymore; r=jwwang
MozReview-Commit-ID: 5RUNauRRajP
2017-04-17 18:49:55 +08:00
Kaku Kuo
9cd84a4a9b Bug 1344357 P2 - put HTMLMediaElement::mSeekDOMPromise into cycle collector; r=jwwang
MozReview-Commit-ID: 5NOyAz02vTj
2017-04-17 18:40:17 +08:00