6695387274287472e4542e10931e3dceace47de5: Bug 1208371 - Add a PrincipalIdListener to MediaStreamTrack. r?roc,mt
draft
Andreas Pehrson <pehrsons@gmail.com> - Tue, 26 Jan 2016 18:33:41 +0800 - rev 327716
Push
10268 by pehrsons@gmail.com at Mon, 01 Feb 2016 15:47:23 +0000
Bug 1208371 - Add a PrincipalIdListener to MediaStreamTrack. r?roc,mt
8094fa05ca9f4c2a1abb26b817998fcc5f641d78: Bug 1208371 - Add `NotifyPrincipalIdChange` to MediaStreamTrackListener. r?mt,roc
draft
Andreas Pehrson <pehrsons@gmail.com> - Tue, 26 Jan 2016 16:45:25 +0800 - rev 327715
Push
10268 by pehrsons@gmail.com at Mon, 01 Feb 2016 15:47:23 +0000
Bug 1208371 - Add `NotifyPrincipalIdChange` to MediaStreamTrackListener. r?mt,roc
fd88bb9375359e77471dbe1f2a600baa561afecd: Bug 1208371 - Add PrincipalID to MediaChunks. r?mt,roc
draft
Andreas Pehrson <pehrsons@gmail.com> - Mon, 01 Feb 2016 23:45:11 +0800 - rev 327714
Push
10268 by pehrsons@gmail.com at Mon, 01 Feb 2016 15:47:23 +0000
Bug 1208371 - Add PrincipalID to MediaChunks. r?mt,roc
PrincipalID is a void pointer that can be passed by value in the MSG.
A MediaStreamTrack whose source has just updated its principal, sets the new
principal aside (as its "pending principal"), and combines the new principal
into its current principal.
Then the source starts passing the new principal to the MediaStreamGraph as
a PrincipalID (the nsIPrincipal is static_cast()ed).
Changes to a track's PrincipalID on the MSG will be surfaced through the
MediaStreamTrackListener API. These changes are dispatched to main thread
and compared to a MediaStreamTrack's pending principal. In case of a match
the track knows the correct principal is flowing and can move the pending
principal to the current principal and update any main thread principal
observers.
fb1a6e4cbba4c65344442c0ce484c931007575aa: testAssert
draft
Andreas Pehrson <pehrsons@gmail.com> - Mon, 11 Jan 2016 12:32:00 +0800 - rev 327713
Push
10267 by pehrsons@gmail.com at Mon, 01 Feb 2016 15:35:08 +0000
testAssert
18a6a7edf0e35f1b87339726583f2cc773bfd31e: Bug 1208371 - Forward declare DOMMediaStream in HTMLMediaElement.h. r?roc
draft
Andreas Pehrson <pehrsons@gmail.com> - Sat, 23 Jan 2016 23:20:28 +0800 - rev 327712
Push
10267 by pehrsons@gmail.com at Mon, 01 Feb 2016 15:35:08 +0000
Bug 1208371 - Forward declare DOMMediaStream in HTMLMediaElement.h. r?roc
2447dc54130fa26bb20519fa6311f68a429a3abc: Bug 1208371 - Forward declare MediaStreamGraph classes in MediaPipeline.h. r?bwc
draft
Andreas Pehrson <pehrsons@gmail.com> - Tue, 26 Jan 2016 16:19:08 +0800 - rev 327711
Push
10267 by pehrsons@gmail.com at Mon, 01 Feb 2016 15:35:08 +0000
Bug 1208371 - Forward declare MediaStreamGraph classes in MediaPipeline.h. r?bwc
c79051ff2919b0ccdba376b7b7a4b230eb3a4fd8: Bug 1208371 - Move GetCurrentTime undef to DOMMediaStream.cpp. r?jesup
draft
Andreas Pehrson <pehrsons@gmail.com> - Fri, 22 Jan 2016 17:23:10 +0800 - rev 327710
Push
10267 by pehrsons@gmail.com at Mon, 01 Feb 2016 15:35:08 +0000
Bug 1208371 - Move GetCurrentTime undef to DOMMediaStream.cpp. r?jesup
Not sure why this surfaced now. Include ordering must have changed.
bfa914607fe2a5a73a8f091950f6dadf0500325b: Bug 1208371 - Move MediaStreamTrack's label to MediaStreamTrackSource. r?jib
draft
Andreas Pehrson <pehrsons@gmail.com> - Fri, 22 Jan 2016 16:27:37 +0800 - rev 327709
Push
10267 by pehrsons@gmail.com at Mon, 01 Feb 2016 15:35:08 +0000
Bug 1208371 - Move MediaStreamTrack's label to MediaStreamTrackSource. r?jib
afa9ff5e46a45a6c9e23d1dc92897462e73c2847: Bug 1208371 - Clean up unnecessary virtuals in MediaPipeline. r?bwc
draft
Andreas Pehrson <pehrsons@gmail.com> - Fri, 22 Jan 2016 11:34:15 +0800 - rev 327708
Push
10267 by pehrsons@gmail.com at Mon, 01 Feb 2016 15:35:08 +0000
Bug 1208371 - Clean up unnecessary virtuals in MediaPipeline. r?bwc
9c58cf8b2d3996f36758b216492c5aea9e819648: Bug 1208371 - Forward declare MediaStreamTrack in MediaPipeline.h. r?bwc
draft
Andreas Pehrson <pehrsons@gmail.com> - Fri, 22 Jan 2016 11:33:43 +0800 - rev 327707
Push
10267 by pehrsons@gmail.com at Mon, 01 Feb 2016 15:35:08 +0000
Bug 1208371 - Forward declare MediaStreamTrack in MediaPipeline.h. r?bwc
155049af98d5ab0418655c88ec113f4b7ba611cd: Bug 1208371 - Ensure a media element's ImageContainer is protected when playing a stream. r?mt,roc
draft
Andreas Pehrson <pehrsons@gmail.com> - Tue, 26 Jan 2016 16:42:48 +0800 - rev 327706
Push
10267 by pehrsons@gmail.com at Mon, 01 Feb 2016 15:35:08 +0000
Bug 1208371 - Ensure a media element's ImageContainer is protected when playing a stream. r?mt,roc
HTMLMediaElement needs special protection when playing a stream since its
ImageContainer can outlive the video track of a stream.
Consider for instance when a (cross-origin) video track is removed from a
DOMMediaStream by a user and the remaining video track (non-CORS) does not yet
contain any actual video frames. The HTMLMediaElement will display a frame from
the removed track but the DOMMediaStream's principal has been updated to not
include the principal from the removed track.
With this patch we handle this by letting VideoFrameContainer notify
HTMLMediaElement when it has flushed out all video frames belonging to a
certain principalId. I.e., when a new principalId has been applied to the
underlying ImageContainer.
bbd1b12d3fe3f97bbebe77217f330b38f0103abb: Bug 1208371 - Ensure DOMMediaStream principals reflect what could reside in their playback streams. r?mt,roc
draft
Andreas Pehrson <pehrsons@gmail.com> - Tue, 26 Jan 2016 18:51:18 +0800 - rev 327705
Push
10267 by pehrsons@gmail.com at Mon, 01 Feb 2016 15:35:08 +0000
Bug 1208371 - Ensure DOMMediaStream principals reflect what could reside in their playback streams. r?mt,roc
Calculating a principal when adding a track is easy - just combine the new
track principal into the stream's principal.
When removing a track it's a bit trickier. The DOMMediaStream has to wait until
the MediaStreamGraph has removed the track from the underlying playback stream.
We do this by letting the MediaStreamGraph return a Pledge (single threaded
Promise) when blocking a track in a stream (the way we end removed tracks).
The pledge gets passed to the MediaStreamGraph and when the block has been
applied it is passed back to the main thread where it is finally resolved
and the DOMMediaStream may recompute its principal once all outstanding
track removals have been applied.
288edbd97ade271713d8d0d19aaaf903d80ba152: Bug 1208371 - Hook up MediaPipeline with principalId. r?mt,bwc
draft
Andreas Pehrson <pehrsons@gmail.com> - Tue, 26 Jan 2016 18:34:03 +0800 - rev 327704
Push
10267 by pehrsons@gmail.com at Mon, 01 Feb 2016 15:35:08 +0000
Bug 1208371 - Hook up MediaPipeline with principalId. r?mt,bwc
8233a6fed9709d9d8039cc7f73f4ad0e9d8fed2e: Bug 1208371 - Hook up DecodedStream with principalId. r?mt,jwwang
draft
Andreas Pehrson <pehrsons@gmail.com> - Tue, 26 Jan 2016 16:01:58 +0800 - rev 327703
Push
10267 by pehrsons@gmail.com at Mon, 01 Feb 2016 15:35:08 +0000
Bug 1208371 - Hook up DecodedStream with principalId. r?mt,jwwang
f3a0fe0c3cad03b935c0d5e1642402486d491389: Bug 1208371 - Add a PrincipalIdListener to MediaStreamTrack. r?roc,mt
draft
Andreas Pehrson <pehrsons@gmail.com> - Tue, 26 Jan 2016 18:33:41 +0800 - rev 327702
Push
10267 by pehrsons@gmail.com at Mon, 01 Feb 2016 15:35:08 +0000
Bug 1208371 - Add a PrincipalIdListener to MediaStreamTrack. r?roc,mt
ae2f4bdaed8018d02ec321b124bfbb882be8b7c4: Bug 1208371 - Add `NotifyPrincipalIdChange` to MediaStreamTrackListener. r?mt,roc
draft
Andreas Pehrson <pehrsons@gmail.com> - Tue, 26 Jan 2016 16:45:25 +0800 - rev 327701
Push
10267 by pehrsons@gmail.com at Mon, 01 Feb 2016 15:35:08 +0000
Bug 1208371 - Add `NotifyPrincipalIdChange` to MediaStreamTrackListener. r?mt,roc
5bd89153cee22bf58b07be10f8cddcf1c2e11211: Bug 1208371 - Add PrincipalID to MediaChunks. r?mt,roc
draft
Andreas Pehrson <pehrsons@gmail.com> - Tue, 26 Jan 2016 16:06:56 +0800 - rev 327700
Push
10267 by pehrsons@gmail.com at Mon, 01 Feb 2016 15:35:08 +0000
Bug 1208371 - Add PrincipalID to MediaChunks. r?mt,roc
PrincipalID is a void pointer that can be passed by value in the MSG.
A MediaStreamTrack whose source has just updated its principal, sets the new
principal aside (as its "pending principal"), and combines the new principal
into its current principal.
Then the source starts passing the new principal to the MediaStreamGraph as
a PrincipalID (the nsIPrincipal is static_cast()ed).
Changes to a track's PrincipalID on the MSG will be surfaced through the
MediaStreamTrackListener API. These changes are dispatched to main thread
and compared to a MediaStreamTrack's pending principal. In case of a match
the track knows the correct principal is flowing and can move the pending
principal to the current principal and update any main thread principal
observers.
1b3c17817cd0449588fb05db841252fec06f0dfe: Bug 1208371 - Move FindTrack from SourceMediaStream to MediaStream. r?roc
draft
Andreas Pehrson <pehrsons@gmail.com> - Thu, 21 Jan 2016 19:25:25 +0800 - rev 327699
Push
10267 by pehrsons@gmail.com at Mon, 01 Feb 2016 15:35:08 +0000
Bug 1208371 - Move FindTrack from SourceMediaStream to MediaStream. r?roc
5ca6f64fd90d9cccf82323e9dd0acb70e40ec373: Bug 1208371 - Ensure that MediaManager ends all tracks before finishing its source stream. r?jib
draft
Andreas Pehrson <pehrsons@gmail.com> - Tue, 26 Jan 2016 19:03:58 +0800 - rev 327698
Push
10267 by pehrsons@gmail.com at Mon, 01 Feb 2016 15:35:08 +0000
Bug 1208371 - Ensure that MediaManager ends all tracks before finishing its source stream. r?jib
This puts all the logic in GetUserMediaCallbackMediaStreamListener and none in
MediaOperationTask to make it simpler to reason about what's happening.
When we want to stop a track, the gUMCallbackListener will send a
MEDIA_STOP_TRACK if other tracks will still be live.
If it was the last live track, the gUMCallbackListener will send a MEDIA_STOP
instead. The MEDIA_STOP makes sure the passed in devices (we pass in all) are
stopped before finishing the stream.
3e92e5986c53ba0e68ea5e7404979a07c7ed2f20: Bug 1208371 - Assert when stream finishes but contains live tracks. r?roc
draft
Andreas Pehrson <pehrsons@gmail.com> - Thu, 21 Jan 2016 19:23:56 +0800 - rev 327697
Push
10267 by pehrsons@gmail.com at Mon, 01 Feb 2016 15:35:08 +0000
Bug 1208371 - Assert when stream finishes but contains live tracks. r?roc
This was the cause of some intermittent assertion failures, as the non-ended
track didn't contain enough data when linked to other streams in the graph,
but input extraction wouldn't get that data since the stream was finished.