Commit Graph

808 Commits

Author SHA1 Message Date
Alastor Wu
726bbd643a Bug 1301055 - part2 : create a error sink to handle media element's error related event. r=bkelly,jwwang
Error sink would be response for the error handling, we could write different
error dispatching stragedies for different situation. eg. if we can play
unsupported type media with external app, we won't dispatch the "error" event on fennec.

MozReview-Commit-ID: Lm4x9ksspAY
2016-11-24 10:24:04 +08:00
Kilik Kuo
f2e7b85310 Bug 1316758-Remove nsContentUtils::LegacyIsCallerChromeOrNativeCode and IsCallerChrome calls from HTMLMediaElement. r=cpearce
MozReview-Commit-ID: 47pOATtfflP
2016-11-18 10:30:00 +08:00
Alastor Wu
7d72019557 Bug 1317167 - only need to do the untrust JS checking in play(). r=jwwang
The first checking condition in the IsAllowedPlay() is used to prevent the play() operation
is called by untrusted JS when media.autoplay.enabled=false. Therefore, we don't need to check
that in CanActivateAutoplay().

MozReview-Commit-ID: 6yqoG8ISyra
2016-11-17 15:09:59 +08:00
Bryce Van Dyk
264b104a6c Bug 1298027 - Shut down CDMs when a containing document becomes inactive. r=cpearce
The previous changeset against this bug relaxed the conditions under which the
CDM and associated objects were shut down. This was to address moving a tab to a
new window breaking EME videos. However, this had the unwanted side effect of
not shutting down those objects early enough when pages are closed.

This changeset introduces a new check to see if the containing document is
currently active, if not we shutdown the CDM. This means CDMs are shutdown on
time, while retaining the desired behaviour that CDMs should not be shut down on
moving tabs to new windows. Shutdowns previously happened because we shut down
if a page hide happened, which took place during a reparent.

MozReview-Commit-ID: K5CD3ej43Y0
2016-11-14 15:02:48 +13:00
Bryce Van Dyk
9551c5b836 Bug 1298027 - Relax decoder shutdown and mediakey removal on MediaElement suspension. r=cpearce
This changeset relaxes the shutting down of decoders and removal of mediakeys
when suspending HTMLMediaElements. This should now only happen for adobe
primetime. This alleviates, for non-primetime CDMs, the issue of videos
breaking when moving an EME protected video from a tab to a new window.

These conditions can be relaxed as neither clearkey or widevine support
secure stop. This means we don't need to shutdown their decoders and keys to
signal a stoppage, as at this stage, doing so doesn't give us secure stop and
instead means that playback is busted when we try to resume.

MozReview-Commit-ID: 3MGNXGGDVLS
2016-10-31 10:55:19 +13:00
Alastor Wu
8beec95340 Bug 1315551 - part2 : check we have initialized agent when we want to call the agent's function. r=jwwang
Because the agent's initialization might fail if we don't get the valid inner window, we need to
check whether the agent exists before calling the agent's method.

MozReview-Commit-ID: IUuvyGh7CMd
2016-11-08 11:08:02 +08:00
Phil Ringnalda
46002fb492 Backed out changeset 87b698764664 (bug 1315521) for jetpack failures in test-leak-tab-events.js.test 2016-11-07 21:01:45 -08:00
Alastor Wu
a18f48568b Bug 1315521 - remove CC for audio channel agent. r=jwwang
Because audio channel agent uses weak ref to HTMLMediaElement, so we don't need to add it into the CC list.

MozReview-Commit-ID: 4cFfDUlbMFB
2016-11-08 11:03:23 +08:00
JW Wang
44d181cc79 Bug 1314547. Part 1 - remove the call to MediaDecoder::SetMediaSeekableOnlyInBufferedRanges(). r=cpearce
MozReview-Commit-ID: 52BESjY8f74
2016-11-02 17:11:29 +08:00
JW Wang
ceec46085b Bug 1314529. Part 1 - remove the call to MediaDecoder::SetMediaSeekable(). r=cpearce
MozReview-Commit-ID: 1vsazRU9KNw
2016-11-02 14:39:18 +08:00
Jean-Yves Avenard
018dfa1f8e Bug 1302656: P1. Don't detach mediasource when error occurs. r=jwwang
MozReview-Commit-ID: 88EIb4XXcdR
2016-11-01 20:33:33 +11:00
Wes Kocher
efe043b241 Backed out 2 changesets (bug 1302656) for WinXP wpt failures a=backout
Backed out changeset e8ce7f515092 (bug 1302656)
Backed out changeset 416dbe42e4a3 (bug 1302656)
2016-11-04 14:51:27 -07:00
Jean-Yves Avenard
3a8c5e7e44 Bug 1302656: P1. Don't detach mediasource when error occurs. r=jwwang
MozReview-Commit-ID: 88EIb4XXcdR
2016-11-01 20:33:33 +11:00
Alastor Wu
3cf8874ec0 Bug 1302350 - part6 : ensure loading process doens't be interrupted even media element can't be played. r=jwwang
We don't want to stop the loading process even we canceled the play operation.

MozReview-Commit-ID: FyPqBlDKYo0
2016-11-02 14:22:35 +08:00
Alastor Wu
01a17b2a49 Bug 1302350 - part4 : refactor the media-blocking mechanism. r=jwwang
The old way is to start playing first, and then block the media element. This
way is too complicated because it involves lots of interal state and isn't intuitive.

The new way is to ignore the play if the media element should be blocked. It's
easy to know and we doesn't need to keep any internal states because we don't play
the media element.

MozReview-Commit-ID: B20e0pvXES4
2016-11-02 14:22:24 +08:00
Alastor Wu
03e0ef5d80 Bug 1302350 - part2 : provide a method to check whether the agent was started. r=baku
Since the agent is created in beginning in patch1, we need another way to know
whether we have already called notifyStartedPlaying().

MozReview-Commit-ID: 5YNhwEl5Xfp
2016-11-01 17:46:09 +08:00
Alastor Wu
5d226762d6 Bug 1302350 - part1 : create audio channel agent in the beginning. r=baku
We create audio channel agent in the beginning in oreder to use some agent's methods.
But the agent is still started after media element starting playing.

MozReview-Commit-ID: KPGb7snB2t7
2016-11-01 17:46:07 +08:00
Andreas Pehrson
a3454bf495 Bug 1301675 - Uncomment assertion for when removed live track was not found. r=jib
It needs an extra guard for when we're an audio element and a live video track
was removed. That's ok and we should ignore it.

MozReview-Commit-ID: FVw3lDKd4oU
2016-09-23 16:56:39 +02:00
Andreas Pehrson
b09ec5c14e Bug 1301675 - Rename BasicUnstoppableTrackSource to BasicTrackSource. r=jib
They are not unstoppable any longer. We just don't forward Stop() to the real source.

MozReview-Commit-ID: FdFccMsD3eb
2016-09-16 15:19:28 +02:00
Andreas Pehrson
10be33a1ac Bug 1301675 - Clarify why we don't need to do anything on DecoderCaptureTrackSource::Stop(). r=jib
MozReview-Commit-ID: H1zaO1FKWvK
2016-09-16 11:10:17 +02:00
Andreas Pehrson
b028a0b40f Bug 1301675 - Implement StreamCaptureTrackSource::Stop. r=jib
MozReview-Commit-ID: 2qwNba6bA80
2016-09-23 16:53:10 +02:00
Andreas Pehrson
9c1477829d Bug 1301675 - Remove MediaStreamTrackSource::mIsRemote. r=jib
MediaStreamTrack.remote is no longer part of the spec.

MozReview-Commit-ID: BgHJ1zNIoWN
2016-09-12 15:59:58 +02:00
Andreas Pehrson
34317e3f12 Bug 1208316 - A media element should autoplay a MediaStream that becomes active. r=jib
MozReview-Commit-ID: 98H7REtqShI
2016-09-14 10:04:26 +02:00
Andreas Pehrson
f903bb32df Bug 1208316 - HTMLMediaElement.ended should follow MediaStream.active. r=jib
MozReview-Commit-ID: CIJZz5khY8R
2016-09-14 10:02:23 +02:00
Andreas Pehrson
77ff7077b7 Bug 1208316 - Notify watchers on StreamListener::Forget(). r=jib
This makes sense because the result of StreamListener::NextFrameStatus depends
on mElement.

MozReview-Commit-ID: 8W7nGLpRxE1
2016-09-13 10:42:28 +02:00
Andreas Pehrson
0525598f25 Bug 1208316 - Punch a hole for media element captureStream to only go inactive as source ends. r=jib
MozReview-Commit-ID: 3H0m3fYMw1Y
2016-09-15 14:18:22 +02:00
Andreas Pehrson
ed326949b2 Bug 1208316 - Rename MediaStreamTrack::NotifyEnded to OverrideEnded. r=jib
Better semantics for what I want to do with NotifyEnded in later patches in the bug.

MozReview-Commit-ID: 8X0BdiVncNo
2016-09-08 11:06:21 +02:00
Andreas Pehrson
3544baefc6 Bug 1208316 - End a media element when its MediaStream source goes inactive. r=jib
MozReview-Commit-ID: 89LMDSsJLJP
2016-09-08 13:42:36 +02:00
Sebastian Hengst
575fcbc28d Backed out changeset fc6a63bedaec (bug 1298027) for timing out in test_eme_stream_capture_blocked_case3.html on Windows 7 opt and pgo. r=backout a=backout
MozReview-Commit-ID: DR4bw1NuCga
2016-10-31 19:56:09 +01:00
Bryce Van Dyk
596e805212 Bug 1298027 - Relax decoder shutdown and mediakey removal on MediaElement suspension. r=cpearce
This changeset relaxes the shutting down of decoders and removal of mediakeys
when suspending HTMLMediaElements. This should now only happen for adobe
primetime. This alleviates, for non-primetime CDMs, the issue of videos
breaking when moving an EME protected video from a tab to a new window.

These conditions can be relaxed as neither clearkey or widevine support
secure stop. This means we don't need to shutdown their decoders and keys to
signal a stoppage, as at this stage, doing so doesn't give us secure stop and
instead means that playback is busted when we try to resume.

MozReview-Commit-ID: 3MGNXGGDVLS
2016-10-31 10:55:19 +13:00
Ryan VanderMeulen
112d5746d5 Merge autoland to m-c. a=merge 2016-10-29 09:12:45 -04:00
Chris Pearce
971e0b82b8 Bug 1308821 - Ensure ClearKey doesn't parse a keyids initdata format session type parameter. r=kikuo
The specification doesn't require there to be a 'type' member of
the keyids init data format.

MozReview-Commit-ID: 7mOm7KwyyuC
2016-10-09 20:42:01 -07:00
Jean-Yves Avenard
fa704bc3a2 Bug 1312886: P7. Handle case where nextFrameStatus jumps straight to NEXT_FRAME_UNAVAILABLE_BUFFERING. r=jwwang
Under some circumstances, we will go from NEXT_FRAME_AVAILABLE to NEXT_FRAME_UNAVAILABLE_BUFFERING directly. We handle this condition now

MozReview-Commit-ID: JVAQhsgzSp2
2016-10-27 21:12:20 +11:00
Jean-Yves Avenard
e8d8b147cc Bug 1312886: P2. Never move past HAVE_FUTURE_DATA if we're waiting for a key, r=cpearce
MozReview-Commit-ID: KWERB7zWXPZ
2016-10-27 16:36:37 +11:00
Alastor Wu
47b76aa673 Bug 1302453 - part1 : send new gecko event when media is resumed. r=baku
We uses "media-playback" event to notify fennec media control about media start
and end. However, if we resume media which was paused by media control, it won't
send any notification to JAVA side so that the MediaControlService can't change
the correct playing icon.

Therefore, we create new event to inform this situation.

MozReview-Commit-ID: zScaHxvHXM
2016-10-27 09:59:55 +08:00
Phil Ringnalda
4e7b8ffe96 Backed out changeset 9b132e52aa0a (bug 1308821) for wpt encrypted-media/clearkey timeouts and unexpected passes 2016-10-26 19:07:49 -07:00
Phil Ringnalda
8d05ea8fc9 Merge m-c to autoland 2016-10-26 18:57:56 -07:00
Chris Pearce
6cdfe5bc11 Bug 1308821 - Ensure ClearKey doesn't parse a keyids initdata format session type parameter. r=kikuo
The specification doesn't require there to be a 'type' member of
the keyids init data format.

MozReview-Commit-ID: 7mOm7KwyyuC
2016-10-09 20:42:01 -07:00
Andreas Pehrson
d115f7756f Bug 1294605 - Media element captureStream() streams shouldn't keep devices alive. r=jib
MozReview-Commit-ID: 3tSFbygTZs1
2016-08-29 16:27:11 +02:00
Jean-Yves Avenard
8b2fd32bbe Bug 1312594: Do not clear resource when error occurs. r=jwwang
MozReview-Commit-ID: EFrURgSYvdb
2016-10-25 13:36:26 +11:00
Chris Pearce
e3a94f36b3 Bug 1310548 - Delay firing of 'waitingforkey' until all decoded data has been rendered. r=jya
This means 'waitingforkey' will be fired at a predictable time.

MozReview-Commit-ID: HMt1RbgrbuR
2016-10-17 14:16:54 +13:00
Sebastian Hengst
afd79ed980 Backed out changeset 443a94083e00 (bug 1294605) 2016-10-20 20:03:16 +02:00
Andreas Pehrson
a60add0093 Bug 1294605 - Media element captureStream() streams shouldn't keep devices alive. r=jib
MozReview-Commit-ID: 3tSFbygTZs1
2016-08-29 16:27:11 +02:00
Iris Hsiao
3ad128e662 Backed out changeset 8e21afb88dbb (bug 1294605)
CLOSED TREE
2016-10-26 17:54:51 +08:00
Andreas Pehrson
f0c8116796 Bug 1294605 - Media element captureStream() streams shouldn't keep devices alive. r=jib
MozReview-Commit-ID: 3tSFbygTZs1
2016-08-29 16:27:11 +02:00
Sebastian Hengst
82cf47929c Bug 1306137 - remove b2g camera code: Remove dom/camera/ and code which depends on it. r=aosmond,bkelly
MozReview-Commit-ID: 7gvZrDtmcZP
2016-10-04 20:16:28 +02:00
Gerald Squelart
7012f597be Bug 1176218 - p4. Use DecoderTraits::CanHandleContentType in HTMLMediaElement - r=jya
MozReview-Commit-ID: IQFvgI6h1tE
2016-09-26 13:31:57 +10:00
Alastor Wu
68bd777317 Bug 1308119 - replace nsIAudioChannelAgent with AudioChannelAgent. r=baku
Since I want to use more agent's functions in MediaElement and I don't think these functions need to be exposed on IDL level. (for other languages binding)

Therefore, I want to use AudioChannelAgent directly in MediaElement.

MozReview-Commit-ID: 43FvDeLpZPt
2016-10-07 10:35:01 +08:00
Alastor Wu
d136c8375b Bug 1302084 - the error checking should have highest priority. r=baku
MozReview-Commit-ID: 9QC5CG7p28M
2016-10-06 12:07:33 +08:00
Alastor Wu
a840bd443c Bug 1303554 - part2 : remove the b2g specific checking in IsCurrentlyPlaying(). r=baku
MozReview-Commit-ID: 5kUJc24uEIH
2016-10-05 10:07:54 +08:00