Commit Graph

79 Commits

Author SHA1 Message Date
Andreas Pehrson
be74876e25 Bug 1208371 - Add PrincipalHandle to MediaChunks. r=mt,jesup
PrincipalHandle is a thread safe pointer to a holder of (the main-thread-only
nsIPrincipal) that can be passed around 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 PrincipalHandle.

Changes to a track's PrincipalHandle 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 be the current principal and update any main thread principal
observers.

MozReview-Commit-ID: D0JXGWhQFFU

--HG--
extra : rebase_source : 296e269bb46fc5a85a9c3f90dfc0dc40e53572bc
2016-04-06 14:56:44 +02:00
Andreas Pehrson
0b6623e60e Bug 1208371 - Remove PeerIdentity from DOMMediaStream. r=mt
MozReview-Commit-ID: 5e4TxCiWwGF

--HG--
extra : rebase_source : 7ee47cf4e606cb2d90b0bbb8237d8155bc96d2ee
2016-01-05 10:16:29 +08:00
Andreas Pehrson
eb7cd31741 Bug 1208371 - Make PeerIdentity RefCounted. r=mt
This so it can be shared between multiple tracks.

MozReview-Commit-ID: 3mjQImVY0f8

--HG--
extra : rebase_source : 9c8d11bb38e06a2cf5f7bf1c24ca657e28387682
2016-01-05 10:16:28 +08:00
Andreas Pehrson
705ec66ce8 Bug 1208371 - Remove ref counting from DOMMediaStream::TrackListener. r=roc
This makes it consistent with PrincipalChangeObserver.

MozReview-Commit-ID: 91PtqFZRcW6

--HG--
extra : rebase_source : e39abb668be7fbd0dae0a701ec17b048c8761879
2016-01-05 10:16:28 +08:00
Andreas Pehrson
c742b9dadf Bug 1208371 - Change HTMLMediaElement video sinks to check principal for video only tracks. r=mt
MozReview-Commit-ID: KGbyJDgpBOn

--HG--
extra : rebase_source : 526556a2174417ec68cb0a84acb1f3fe704ebaf0
2016-01-26 15:36:52 +08:00
Andreas Pehrson
ca18203053 Bug 1208371 - Remove CORSMode methods from DOMMediaStream. r=mt
MozReview-Commit-ID: KiJPucdErFV

--HG--
extra : rebase_source : 776469c4c19b78fa510d423065f4c9264ae27bf6
2016-01-05 10:16:27 +08:00
Andreas Pehrson
a47ce20618 Bug 1208371 - Rename CreateOwnDOMTrack/CreateClonedDOMTrack to CreateDOMTrack/CloneDOMTrack. r=jib
MozReview-Commit-ID: DOGiwcYycJY

--HG--
extra : rebase_source : 197fc7a7c5d36200f987c38f26ab77ec8ea2d290
2016-01-05 10:16:26 +08:00
Andreas Pehrson
6d73d83ee7 Bug 1208371 - Various cleanups in DOMMediaStream/MediaStreamTrack. r=jib
MozReview-Commit-ID: DE0Gqto3Led

--HG--
extra : rebase_source : 8c49e98f0740b4e658010b98f57d090776930666
2016-01-21 19:05:53 +08:00
Andreas Pehrson
d81423155b Bug 1208371 - Implement DOMMediaStream::Clone() r=smaug,jib,roc
MozReview-Commit-ID: FZQIWYZcEDr

--HG--
extra : rebase_source : 33336f84b8ab4f4fe9cc5bf734a7e3b587ff8729
2016-01-22 16:51:37 +08:00
Andreas Pehrson
660d9407e0 Bug 1208371 - Implement MediaStreamTrack::Clone(). r=smaug,jib,roc
MozReview-Commit-ID: HrL0RFMcG4B

--HG--
extra : rebase_source : 2b07983ebec0c0a7016b8a0e0e64ad38486d035b
2016-01-22 16:27:51 +08:00
Andreas Pehrson
50e2cdae29 Bug 1208371 - Kill nsDOMUserMediaStream with fire. r=jib
MozReview-Commit-ID: 4KWvwqRj6Qc

--HG--
extra : rebase_source : 2d305763710b6f7750a9b6300513493fa96e48b6
2016-01-24 16:05:16 +08:00
Andreas Pehrson
0396985d77 Bug 1208371 - Route ApplyConstraints through MediaStreamTrackSource. r=jib
MozReview-Commit-ID: CnJnxszKU4o

--HG--
extra : rebase_source : f5ef65897108b3feadd51b8b11a47f65a7a71ff1
2016-02-01 22:43:38 +08:00
Andreas Pehrson
dcc36821e9 Bug 1208371 - Fix DOMMediaStream::OwnsTrack. r=roc
MozReview-Commit-ID: 3uPqOYJZq2k

--HG--
extra : rebase_source : f4dba615271b884298efd0c646f7104c45c372d8
2016-01-05 10:16:25 +08:00
Andreas Pehrson
053fc72107 Bug 1208371 - Remove some no longer necessary principal methods on DOMMediaStream. r=mt
MozReview-Commit-ID: LTVhpY6Bzgf

--HG--
extra : rebase_source : eadca5e713154a265bc81fd5bcccea5216105417
2016-01-14 20:43:35 +08:00
Andreas Pehrson
58ac7b5fd2 Bug 1208371 - Make remaining DOMMediaStream principal sources use MediaStreamTrack. r=mt
MozReview-Commit-ID: 1hgHp5dlBZJ

--HG--
extra : rebase_source : 30d7d5bccc663ef00a640b4f385278a336191088
2016-02-01 22:46:34 +08:00
Andreas Pehrson
70707f7c85 Bug 1208371 - Make HTMLMediaElement::CaptureStream pass its principal to MediaStreamTrack. r=mt
MozReview-Commit-ID: 7ERLRSM8fz6

--HG--
extra : rebase_source : 99504bb19ac35eea6889a507589710c3575e8b0f
2016-01-14 18:34:39 +08:00
Andreas Pehrson
f2fb4ac630 Bug 1208371 - Let DOMMediaStream base its principal on the tracks it contains. r=mt
MozReview-Commit-ID: 7MtYk2GnpeS

--HG--
extra : rebase_source : 88903bea8491d365998df11056a6de6c697c613d
2016-03-16 16:08:43 +01:00
Andreas Pehrson
5cc032f3e6 Bug 1208371 - Turn DOMMediaStream::PrincipalChangeObserver into PrincipalChangeObserver<DOMMediaStream>. r=mt
MozReview-Commit-ID: JkBUEGdavZX

--HG--
extra : rebase_source : aca48148a30fc16db6a6435c592480a61174d96b
2016-01-22 12:10:41 +08:00
Andreas Pehrson
53d0645fe0 Bug 1208371 - Add DOMMediaStream::GetTrackById/GetOwnedTrackById. r=jib
MozReview-Commit-ID: 9qwW8CsB1eJ

--HG--
extra : rebase_source : f3f806fb5828ea47365b73233f5cfd4f52bdb938
2016-01-05 10:16:23 +08:00
Andreas Pehrson
24c7e122aa Bug 1208371 - Remove obsolete SetTrackEnabled() from DOMMediaStream r=roc
MozReview-Commit-ID: rYB2yACej8

--HG--
extra : rebase_source : 3feb238486c9488723c54c9819fb8848fc7a131c
2016-01-05 10:16:23 +08:00
Andreas Pehrson
c317ec4c33 Bug 1208371 - Let FindOwnedDOMTrack operate on input stream. r=roc
This let's us use FindOwnedDOMTrack before the TrackID in mOwnedStream
is known.

This is necessary for a stream clone with multiple tracks whose original
TrackID is the same.

MozReview-Commit-ID: J3OvbiNb8X

--HG--
extra : rebase_source : 25f2bddf07de99d187c5d546bfc5eac50b7d6295
2016-01-05 10:16:22 +08:00
Andreas Pehrson
5401608e6c Bug 1208371 - Add MediaStreamTrackSourceGetter interface. r=roc
This allows DOMMediaStream to assign MediaStreamTrackSources to
dynamically created MediaStreamTracks.

MozReview-Commit-ID: 3v91zLiqfl7

--HG--
extra : rebase_source : 4fe67e92b9c833fe5ba964fc5f3b11ba21447f36
2016-01-05 10:16:21 +08:00
Andreas Pehrson
9899305f28 Bug 1208371 - Add a MediaStreamTrackSource interface. r=roc
This lets a MediaStreamTrack communicate with its source/producer on the
main thread. It's for now used for stopping a track at the source and
retrieving some metadata, but it could also be a link between actual
sinks of a track and the source, to for instance let the source optimize
by scaling down the resolution when all sinks want lowres-video.

MozReview-Commit-ID: D4SJLr0aqhJ

--HG--
extra : rebase_source : ea511b5c86ca4836bfa980825f04617fef498261
2016-04-06 14:46:56 +02:00
Andreas Pehrson
88628853b2 Bug 1208371 - Move OnTracksAvailableCallback out of DOMMediaStream. r=roc
So it can be forward declared.

MozReview-Commit-ID: 4RH7p8AzO84

--HG--
extra : rebase_source : e9c4ef72029de4ed09dca3b51ba2b46829f41d14
2016-01-05 10:16:21 +08:00
Andreas Pehrson
37365c3483 Bug 1208371 - Pass parent window to DOMMediaStream through constructor. r=roc
MozReview-Commit-ID: AvBYQNADpyV

--HG--
extra : rebase_source : 8972b162fbcb017034f3c975ff9b725e52bcaf17
2016-01-05 10:16:20 +08:00
Birunthan Mohanathas
d7371d07d0 Bug 1235261 - Part 1: Rename nsAutoTArray to AutoTArray. r=froydnj 2016-02-02 17:36:30 +02:00
Phil Ringnalda
d381b4bca6 Back out 7 changesets (bug 1235261) for cpptest failures in TestTArray
CLOSED TREE

Backed out changeset d66c3f19a210 (bug 1235261)
Backed out changeset 467d945426bb (bug 1235261)
Backed out changeset 32b61df13142 (bug 1235261)
Backed out changeset c50bb8ed4196 (bug 1235261)
Backed out changeset 0ff0fa6fe81f (bug 1235261)
Backed out changeset df70e89669da (bug 1235261)
Backed out changeset 064969357fc9 (bug 1235261)
2016-01-31 10:10:57 -08:00
Birunthan Mohanathas
373593275e Bug 1235261 - Part 1: Rename nsAutoTArray to AutoTArray. r=froydnj 2016-01-31 17:12:12 +02:00
Kyle Huey
91efc5a86c Bug 1241764: Replace nsPIDOMWindow with nsPIDOMWindowInner/Outer. r=mrbkap,smaug 2016-01-30 09:05:36 -08:00
Sotaro Ikeda
233ac65d1e Bug 1239893 - Add gonk SidebandStream handling to DOMHwMediaStream r=roc 2016-01-26 02:01:43 -08:00
Emilio Cobos Álvarez
b5364082de Bug 866513 - Non-empty MediaStreamTrack labels. r=jib 2016-01-16 13:39:00 +01:00
Andreas Pehrson
359f426a06 Bug 1212783 - Expose TrackPort in DOMMediaStream.h r=roc
--HG--
extra : commitid : 1dGzbvOQkLe
extra : rebase_source : 55bfaa60b8855752b65405a08f0fc10e45e1f613
2015-10-22 12:36:22 +08:00
Nathan Froyd
01583602a9 Bug 1207245 - part 6 - rename nsRefPtr<T> to RefPtr<T>; r=ehsan; a=Tomcat
The bulk of this commit was generated with a script, executed at the top
level of a typical source code checkout.  The only non-machine-generated
part was modifying MFBT's moz.build to reflect the new naming.

CLOSED TREE makes big refactorings like this a piece of cake.

 # The main substitution.
find . -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    xargs perl -p -i -e '
 s/nsRefPtr\.h/RefPtr\.h/g; # handle includes
 s/nsRefPtr ?</RefPtr</g;   # handle declarations and variables
'

 # Handle a special friend declaration in gfx/layers/AtomicRefCountedWithFinalize.h.
perl -p -i -e 's/::nsRefPtr;/::RefPtr;/' gfx/layers/AtomicRefCountedWithFinalize.h

 # Handle nsRefPtr.h itself, a couple places that define constructors
 # from nsRefPtr, and code generators specially.  We do this here, rather
 # than indiscriminantly s/nsRefPtr/RefPtr/, because that would rename
 # things like nsRefPtrHashtable.
perl -p -i -e 's/nsRefPtr/RefPtr/g' \
     mfbt/nsRefPtr.h \
     xpcom/glue/nsCOMPtr.h \
     xpcom/base/OwningNonNull.h \
     ipc/ipdl/ipdl/lower.py \
     ipc/ipdl/ipdl/builtin.py \
     dom/bindings/Codegen.py \
     python/lldbutils/lldbutils/utils.py

 # In our indiscriminate substitution above, we renamed
 # nsRefPtrGetterAddRefs, the class behind getter_AddRefs.  Fix that up.
find . -name '*.cpp' -o -name '*.h' -o -name '*.idl' | \
    xargs perl -p -i -e 's/nsRefPtrGetterAddRefs/RefPtrGetterAddRefs/g'

if [ -d .git ]; then
    git mv mfbt/nsRefPtr.h mfbt/RefPtr.h
else
    hg mv mfbt/nsRefPtr.h mfbt/RefPtr.h
fi

--HG--
rename : mfbt/nsRefPtr.h => mfbt/RefPtr.h
2015-10-18 01:24:48 -04:00
Andreas Pehrson
63f62a0f86 Bug 1070216 - Implement MediaStream constructors. r=smaug,jib,padenot
--HG--
extra : commitid : J9Hj3Lffpg
extra : rebase_source : 76cc0498fa18159657760f6622f49f4b6938bdfc
2015-10-15 01:08:33 +08:00
Andreas Pehrson
0391659f93 Bug 1070216 - constify DOMMediaStream::Get[Audio/Video]Tracks(). r=roc
--HG--
extra : commitid : J9Hj3Lffpg
extra : rebase_source : ef9c0288c603ff81191ac8bd8e16910d5360673e
2015-10-15 01:08:33 +08:00
Andreas Pehrson
ab1e81e08f Bug 1070216 - Split DOMMediaStream::InitStreamCommon into three. r=roc
This allows us to initiate a DOMMediaStream into three states:
* One that has input, owned and playback streams, for data producers
  like gUM or RTCPeerConnection.
* One with owned and playback streams, for cloned DOM streams.
  If a cloned DOM stream has an empty input stream connected to its
  owned stream, both are regarded as not having current data.
* One with only a playback stream, for when it has been created with the
  default constructor from JS. Its track set can only be changed by
  addTrack() and removeTrack() which when called only affect mPlaybackStream.

--HG--
extra : commitid : J9Hj3Lffpg
extra : rebase_source : 03fd61130c8948c1be996e536eb3078bb09d8480
2015-10-15 01:08:32 +08:00
Andreas Pehrson
eb480b5acd Bug 1103188 - Break out MediaTrackListListener to an interface. r=roc
Other modules than MediaTrackLists may want to receive updates on a
DOMMediaStream's track set. This moves the MediaTrackListListener out of
the MediaTrackList class into DOMMediaStream as a general interface.

The logic for adding MediaTracks to the MediaTrackList when
MediaStreamTracks are added or removed from a DOMMediaStream is moved to
HTMLMediaElement as this fits the model better - HTMLMediaElement is the
owner of the MediaTrackLists.

--HG--
extra : commitid : 3I8mAeBB3oL
extra : rebase_source : 66b8ffcfb5343811c181e4169f295b08494f2ee0
2015-09-30 09:32:06 +08:00
Andreas Pehrson
0239788481 Bug 1103188 - Deprecate DOMMediaStream::Stop(). r=jib
--HG--
extra : commitid : 3I8mAeBB3oL
extra : rebase_source : cc7351a34694b7b0e822bcd0b7025ded0ab54b9d
2015-09-30 09:32:06 +08:00
Andreas Pehrson
ce2776ea0d Bug 1103188 - Remove identical override nsDOMUserMediaStream::Stop(). r=jib
--HG--
extra : commitid : 3I8mAeBB3oL
extra : rebase_source : 2e37a21b1789bf4ab893c6fb8b2dd2c75f613855
2015-09-30 09:32:05 +08:00
Andreas Pehrson
aa989a17b6 Bug 1103188 - MediaStream::AddTrack/RemoveTrack implementation. r=roc
--HG--
extra : commitid : 3I8mAeBB3oL
extra : rebase_source : 7c8a9d50e5dbb672c773faa3675fe674aed9fb67
2015-09-30 09:32:05 +08:00
Andreas Pehrson
bf0d10f4e7 Bug 1103188 - MediaStream WebIDL update with addTrack/removeTrack. r=smaug,jib
--HG--
extra : commitid : 3I8mAeBB3oL
extra : rebase_source : 030f83f3a79a7f4cb938cb509983f87a5a557aab
2015-09-30 09:32:05 +08:00
Andreas Pehrson
0a75ffee8d Bug 1170958 - Add DOMMediaStream::OwnedStreamListener. r=roc
A DOMMediaStream's owned stream is piped from the input stream which is
under the control of the DOMMediaStream's owner/producer (like
captureStream or gUM). When producers like these create new tracks after
the stream has already been created (the initial set should be available
to JS synchronously), it is nice if the DOMMediaStream picks them up
automatically and create the corresponding MediaStreamTracks.

The OwnedStreamListener added here does just that; creates an owned
MediaStreamTrack when a track appeared in the stream that didn't already
have a MediaStreamTrack.

It also moves the logic for ended tracks from the PlaybackStreamListener
to the OwnedStreamListener as we previously would see a track end in the
playbak stream after removeTrack() and that would be interpreted as the
track ending at the source.

--HG--
extra : commitid : GPSNwBVyD4j
extra : rebase_source : ee7d81282ee3fe0e05b55358dee8fc97a22473fe
2015-09-30 09:31:54 +08:00
Andreas Pehrson
937747498a Bug 1170958 - Refactor DOMMediaStream to contain a 3-stage track chain. r=roc
This lets us separate tracks by ownership like so:
* Input    - Owned by the producer of the DOMMediaStream (gUM etc.)
* Owned    - Contains Input tracks (per above) or tracks cloned tracks
             if this DOMMediaStream is a clone.
* Playback - Contains Owned tracks plus tracks addTrack()ed to this
             DOMMediaStream minus tracks removeTrack()ed from this
             DOMMediaStream.

--HG--
extra : commitid : GPSNwBVyD4j
extra : rebase_source : fba22e96c6c65a74e012509f3da67a4d7df7a244
2015-09-30 09:31:54 +08:00
Wes Kocher
03a1803261 Backed out 9 changesets (bug 1170958) for frequent test_getUserMedia_addTrackRemoveTrack.html failures
Backed out changeset 277c1f8098d1 (bug 1170958)
Backed out changeset aa86bb9eea95 (bug 1170958)
Backed out changeset 8af8b85a4b26 (bug 1170958)
Backed out changeset ec1bf225e9cb (bug 1170958)
Backed out changeset 4a04ddca2b6b (bug 1170958)
Backed out changeset e85c9977a311 (bug 1170958)
Backed out changeset 16b40ff04e8f (bug 1170958)
Backed out changeset ad206925c84a (bug 1170958)
Backed out changeset 2106eccec79b (bug 1170958)
2015-09-25 13:08:55 -07:00
Wes Kocher
b4a25c9f58 Backed out 7 changesets (bug 1103188) for frequent test_getUserMedia_addTrackRemoveTrack.html failures
Backed out changeset f0f33a8ef14c (bug 1103188)
Backed out changeset dbe0ebdebad5 (bug 1103188)
Backed out changeset bb656022a1a7 (bug 1103188)
Backed out changeset cc6b5f5ba444 (bug 1103188)
Backed out changeset ca97d52bf144 (bug 1103188)
Backed out changeset de8cc967f8eb (bug 1103188)
Backed out changeset 6da8f4905060 (bug 1103188)
2015-09-25 13:08:44 -07:00
Andreas Pehrson
9d10fc1441 Bug 1103188 - Break out MediaTrackListListener to an interface. r=roc
Other modules than MediaTrackLists may want to receive updates on a
DOMMediaStream's track set. This moves the MediaTrackListListener out of
the MediaTrackList class into DOMMediaStream as a general interface.

The logic for adding MediaTracks to the MediaTrackList when
MediaStreamTracks are added or removed from a DOMMediaStream is moved to
HTMLMediaElement as this fits the model better - HTMLMediaElement is the
owner of the MediaTrackLists.

--HG--
extra : commitid : FxucwRqUZUo
2015-09-25 23:23:31 +08:00
Andreas Pehrson
7c822e759d Bug 1103188 - Deprecate DOMMediaStream::Stop(). r=jib
--HG--
extra : commitid : FxucwRqUZUo
2015-09-25 23:23:31 +08:00
Andreas Pehrson
6c449288a0 Bug 1103188 - Remove identical override nsDOMUserMediaStream::Stop(). r=jib
--HG--
extra : commitid : FxucwRqUZUo
2015-09-25 23:23:30 +08:00
Andreas Pehrson
cc2405535d Bug 1103188 - MediaStream::AddTrack/RemoveTrack implementation. r=roc
--HG--
extra : commitid : FxucwRqUZUo
2015-09-25 23:23:30 +08:00
Andreas Pehrson
e4aa371fe5 Bug 1103188 - MediaStream WebIDL update with addTrack/removeTrack. r=smaug,jib
--HG--
extra : commitid : FxucwRqUZUo
2015-09-25 23:23:30 +08:00