Граф коммитов

734 Коммитов

Автор SHA1 Сообщение Дата
Gerald Squelart 5d664e32ad Bug 1355506 - Ensure the ChromiumCDMProxy stays alive until the parent has completed its Shutdown(). r=cpearce
MozReview-Commit-ID: 4D0kw0U55JO

--HG--
extra : rebase_source : 42f8b4e4fec2e652987c0d3dc68c83d061de3981
2017-04-20 17:05:03 +12:00
JW Wang 302d82c85a Bug 1356530 - Change the type of MediaData::mTime to TimeUnit since int64_t is ambiguous. r=kaku
MozReview-Commit-ID: 4bVeqIuWO2O

--HG--
extra : rebase_source : d504ac15a6dc59ad42f3ab80faf23f629d74315f
extra : intermediate-source : 6e52995b6c8146451d98dffc62f6907755dc856e
extra : source : 82d2649cdafb5a6389f6858c23578811933580c9
2017-04-14 17:13:36 +08:00
Gerald Squelart 9231dfc6ed Bug 1356516 - Close channel before destroying GMPServiceChild - r=billm
mServiceChild is a UniquePtr, so nulling it will destroy the GMPServiceChild,
which will destroy the associated message channel. So we need to close the
channel first before it gets destroyed. (Just as it was correctly done in
Observe() above.)

MozReview-Commit-ID: INuHN2Is7bC

--HG--
extra : rebase_source : 2a927bb06dd8fb4f1114dc0b64025cbdddc7c133
2017-04-19 15:48:32 +12:00
JW Wang 6359124d70 Bug 1355756. P3 - let CreateAndCopyData() and its friends take TimeUnit for duration. r=gerald
MozReview-Commit-ID: ES0on9VCuu3

--HG--
extra : rebase_source : 8d3e80ec2e1923587b5865516a16bfff9009397d
extra : intermediate-source : 3e59c61b1ccef78e3e8fe52791d7104aade7930c
extra : source : 46fd639ea6a2219bbed70f6555a2acf03ec01a7a
2017-04-12 17:46:09 +08:00
JW Wang 464497b945 Bug 1355756. P1 - change the type of MediaData::mDuration to TimeUnit. r=gerald
MozReview-Commit-ID: 3d4bUYtSuMI

--HG--
extra : rebase_source : 94c821b6d381421035e6a12cbe038436055c5822
extra : intermediate-source : 9a06beffc736486f47b9cf05e7f482e726d53068
extra : source : fdbdcd5c1474f04dc1dbde66fcf3a9ecec953053
2017-04-12 17:27:34 +08:00
Chris Pearce 967567edb5 Bug 1351953 - Pre-allocate shmems for the CDM process to use for storing decrypted and audio samples. r=gerald
Makes transfer of samples between the content and CDM processes use shmems.

The Chromium CDM API requires us to implement a synchronous interface to supply
buffers to the CDM for it to write decrypted samples into. We want our buffers
to be backed by shmems, in order to reduce the overhead of transferring decoded
frames. However due to sandboxing restrictions, the CDM process cannot allocate
shmems itself.  We don't want to be doing synchronous IPC to request shmems
from the content process, nor do we want to have to do intr IPC or make async
IPC conform to the sync allocation interface. So instead we have the content
process pre-allocate a set of shmems and give them to the CDM process in
advance of them being needed.

When the CDM needs to allocate a buffer for storing a decrypted sample, the CDM
host gives it one of these shmems' buffers. When this is sent back to the
content process, we copy the result out (uploading to a GPU surface for video
frames), and send the shmem back to the CDM process so it can reuse it.

We predict the size of buffer the CDM will allocate, and prepopulate the CDM's
list of shmems with shmems of at least that size, plus a bit of padding for
safety. We pad frames out to be the next multiple of 16, as we've seen some
decoders do that.

Normally the CDM won't allocate more than one buffer at once, but we've seen
cases where it allocates two buffers, returns one and holds onto the other. So
the minimum number of shmems we give to the CDM must be at least two, and the
default is three for safety.


MozReview-Commit-ID: 5FaWAst3aeh

--HG--
extra : rebase_source : a0cb126e72bfb2905bcdf02e864dc654e8340410
2017-03-28 18:59:11 +13:00
Chris Pearce 37ae2a9f5a Bug 1351953 - Make DecryptJob::PostResult take a mozilla::Span instead of nsTArray. r=gerald
This means we can pass anything that converts implicitly to a Span to
PostResult, including an nsTArray<uint8_t>. We can also pass a Span
that contains the contents of a Shmem's buffer.

MozReview-Commit-ID: 8AAcRmVCEVy

--HG--
extra : rebase_source : 44dfbc465db14bb689a653e6c0b3cbc626c0a0d1
2017-04-05 10:32:19 +12:00
Chris Pearce fb5a8a3e0d Bug 1351953 - Send Data to CDM for decrypt and or decode in shmems. r=gerald
MozReview-Commit-ID: 2UdGimoOLKr

--HG--
extra : rebase_source : 04879d8c1639bf6f14cebc6031d8cc23e05e567a
2017-03-27 13:19:38 +13:00
Chris Pearce 2903d2ab28 Bug 1352924 - Disconnect GMP service in child from parent once all GMPs are shutdown. r=gerald
This ensures that the IPC connection from the content process to the main
process is shut down as soon as possible. Once all the IPC connections are
closed, the main process removes its async shutdown blocker, and Firefox
can shutdown.

MozReview-Commit-ID: 8rqa384ayd9

--HG--
extra : rebase_source : b9cbbb9f4c22016284a8d49cddaea0d96666acf9
2017-04-03 11:10:04 +12:00
Chris Pearce f41e5c06d9 Bug 1352924 - Block creation of new GMPs once parent process begins shutdown. r=gerald
This ensures that when we've started shutdown we don't try to start up new
GMPs. Doing so would create more connections from the content process to the
main process, and the main process can't shutdown until all such connections
are shut down.

MozReview-Commit-ID: KE8nCoLXjdd

--HG--
extra : rebase_source : 674f3c4ddcb5bb93dd775a861b425d25510871e9
2017-04-03 11:08:06 +12:00
Chris Pearce f1b6111764 Bug 1352924 - Keep list of GMPServiceParents in GeckoMediaPluginServiceParent. r=gerald
This will allow us to broadcast a notification to the GMPServices running in
the content processes when they need to shutdown.

MozReview-Commit-ID: FviFDgNMnUV

--HG--
extra : rebase_source : f4ad3c6df0e14c88db1199fbe6281d67f98590ae
2017-03-31 11:43:27 +13:00
Chris Pearce 69a1fc1b03 Bug 1351874 - Dispatch shutdown runnable to CDMParent rather than null. r=gerald
MozReview-Commit-ID: BE5OgrgbvAT

--HG--
extra : rebase_source : 68c2538e2de42caa0b3e98b03c47bbd01539049b
2017-03-30 11:03:50 +13:00
Chris Pearce d885daf774 Bug 1351132 - Fix keystatus and decode logging in ChromiumCDMChild. r=gerald
MozReview-Commit-ID: xwfJ4WwbmN

--HG--
extra : rebase_source : ee459eb16df41055ce6ade360ff1149f3b894caa
2017-03-28 11:05:48 +13:00
Chris Pearce 0901ad8256 Bug 1315850 - Ask the GMPService for the GMP thread in GMPParent::ChildTerminated. r=gerald
When we shutdown the browser while the GMPService is active we can end up
leaking a GMPParent, GeckoMediaPluginServiceParent, and a Runnable. I tracked
this down to the runnable dispatched to the GMP thread in
GMPParent::ChildTerminated(). The dispatch of this runnable is failing as we
are dispatching the runnable to a reference of the GMP thread which we have
previously acquired, but that thread is now shutdown. So the dispatch fails,
and if you look in nsThread::DispatchInternal() you'll see that we deliberately
leak the runnable if dispatch fails! The runnable leaking means that the
references it holds to the GMPParent and the GMP service parent leak.

The solution in this patch is to not cache a reference to the GMP thread on the
GMPParent; instead we re-request the GMP thread from the GMPService when we
want it. This means that in the case where the browser is shutting down,
GMPParent::GMPThread() will return null, and we'll not leak the runnable. We'll
then follow the (hacky) shutdown path added in bug 1163239.

We also need to change GMPParent::GMPThread() and GMPContentParent::GMPThread()
to return a reference to the GMP thread with a refcount held on it, in order
to ensure we don't race with the GMP service shutting down the GMP thread
while we're trying to dispatch to in on shutdown.

MozReview-Commit-ID: CXv9VZqTRzY

--HG--
extra : rebase_source : e507e48ee633cad8911287fb7296bbb1679a7bcb
2017-03-24 13:38:00 +13:00
Chris Pearce 6d19fe826f Bug 1315850 - Port the work around from Bug 1343140 to the new CDM video decoder architecture. r=gerald
MozReview-Commit-ID: EV0bieXIxYM

--HG--
extra : rebase_source : 404709f1aee80465a953fce1a1e715d49ebfbe35
2017-03-14 17:17:05 +13:00
Chris Pearce caac622c6d Bug 1315850 - Implement CDM persistent sessions. r=gerald
This is required for the browser clearing persistence tests to pass.

MozReview-Commit-ID: Ai9qc6Ds1IG

--HG--
extra : rebase_source : 80c2133e26742410fda983e3c18c35736fc013d0
2017-03-09 19:09:43 +13:00
Chris Pearce cfe7c116ce Bug 1315850 - Hook up CDM storage. r=gerald
MozReview-Commit-ID: 9gHcMZvmMfg

--HG--
extra : rebase_source : 186f35455264aaa144fd7b1887b8ca2476ac03b2
2017-03-22 16:30:54 +13:00
Chris Pearce bf0e67458a Bug 1315850 - Shutdown ChromiumCDMParent. r=gerald
MozReview-Commit-ID: E82ETFS90eH

--HG--
extra : rebase_source : 6f0d72f76e313b55f7c905d5878c63b8d7292b1b
2017-03-09 17:34:18 +13:00
Chris Pearce 4c421503a8 Bug 1315850 - Shutdown CDMVideoDecoder. r=jya
This severs the ChromiumCDMVideoDecoder's connection with the CDM. The CDM process
will shutdown when the MediaKeys also severs its connection.

MozReview-Commit-ID: Aqc4y5Nxjvc

--HG--
extra : rebase_source : 5a2f77ffe84f9b99b4668520c838b29a428578d3
2017-03-08 10:20:33 +13:00
Chris Pearce dbc1c7bcdf Bug 1315850 - Implement CDM video decoder drain. r=jya
MozReview-Commit-ID: 5RbrWyLglRf

--HG--
extra : rebase_source : 3f9636503523f0c6effab15fa89cce25a961a0b4
2017-03-07 16:37:21 +13:00
Chris Pearce abcd1aee62 Bug 1315850 - Implement CDM video decoder flush. r=jya
MozReview-Commit-ID: 3CzwfOCXGP

--HG--
extra : rebase_source : 8ee1ae28a36779484717c6b105ef7730dd1896b3
2017-02-14 22:42:26 +13:00
Chris Pearce 6f73601a0b Bug 1315850 - Implement video decoding through CDM. r=jya
At this stage, I store video frames in memory in nsTArrays rather than in
shmems just so we can get this working. Once this is working, I'll follow up
with patches to switch to storing all large buffer traffic between the CDM and
other processes in shmems.

I'm not planning on preffing this new CDM path on until that's in place.

MozReview-Commit-ID: LSTb42msWQS

--HG--
extra : rebase_source : b7f162515a1a32b2c344c11d0fa5c7004cec2e15
2017-03-09 11:32:15 +13:00
Chris Pearce a181e5dc64 Bug 1315850 - Initialize video decoder. r=jya
MozReview-Commit-ID: 559SP0ECldq

--HG--
extra : rebase_source : b6d499cafef2d6a6558b0db703b60320dea67803
2017-03-09 18:17:50 +13:00
Chris Pearce 33d324d5b1 Bug 1315850 - Add threadsafe ChromiumCDMProxy::GetCDMParent. r=gerald
The MediaKeys accesses the ChromiumCDMProxy on the main thread. But the
ChromiumCDMVideoDecoder will need to access the ChromiumCDMProxy on the decode
task queue in order to get a reference to the ChromiumCDMParent so that it can
talk to the CDM (on the GMP thread).

Additionally we'll need to shutdown the ChromiumCDMProxy, and if we do that
on the main threrad while the ChromiumCDMVideoDecoder is trying to get the
ChromiumCDMParent reference, we could hit thread safety issues.

So we need to hold a lock while reading or writing from the ChromiumCDMProxy's
reference to the ChromiumCDMParent. So add a GetCDMParent() function to the
ChromiumCDMProxy which takes the lock while reading or writing the reference.

This means that the caller will always get a valid reference. There is no guarantee
that the ChromiumCDMParent isn't shutdown after the reference is taken; if that
happens, the ChromiumCDMParent returned will fail on all operations.

In a later patch in this series, the ChromiumCDMProxy will anull its reference
to the ChromiumCDMParent on shutdown, and cause GetCDMParent to return null.
So callers need to null check the return value of GetCDMParent.

MozReview-Commit-ID: 4xL41YbwkxL

--HG--
extra : rebase_source : aa854e9d88965d7da60231d6f6a3912bf6ad2eeb
2017-03-13 13:47:20 +13:00
Chris Pearce c60d6c1294 Bug 1315850 - Add CDMProxy::AsChromiumCDMProxy(). r=gerald
This means the EME PDM implementation can safely tell when a CDMProxy is a
ChromiumCDMProxy, so we can create an appropriate MediaDataDecoder for it (in
the next patch).

MozReview-Commit-ID: CpL6QRa7SwJ

--HG--
extra : rebase_source : 3821c378c73067066f3cc67499680bdf546fb4f0
2016-12-15 11:32:03 +13:00
Chris Pearce dd99f726b7 Bug 1315850 - Ensure GMPParent checks whether the adapter version is present. r=gerald
This ensures that when we're using the ChromiumAdapter that we actually ask it
whether it'll work, rather than asking the adapter we're not using.

MozReview-Commit-ID: 85nZPl9MdWa

--HG--
extra : rebase_source : 90de89bec9b004859c3c2c09ed8efbd255acc141
2017-02-20 11:48:32 +13:00
Chris Pearce 4961ac416a Bug 1315850 - Send decrypt operations to Chromium CDM. r=gerald
We still use the same EMEDecryptor MediaDataDecoder as is used by the existing
EME decrypting path.

MozReview-Commit-ID: 3pXPjChctLb

--HG--
extra : rebase_source : 67575a02290ddb871510dd88f59fdab77658b3ce
2017-03-09 11:31:07 +13:00
Chris Pearce ed269500ea Bug 1315850 - Add more logging to Chromium CDM actors. r=gerald
MozReview-Commit-ID: 2DcprLAE1bg

--HG--
extra : rebase_source : b7de793c7676ace43d34a9556ef803e1bd3df239
2017-03-09 11:42:12 +13:00
Chris Pearce a8a6db3db7 Bug 1315850 - Connect MediaKeys.createSession to Chromium CDM. r=gerald
MozReview-Commit-ID: AzvypvetoOL

--HG--
extra : rebase_source : cf303b0d792dfd86f1056529eb4c081d84fc2e82
2016-11-30 14:51:18 +13:00
Chris Pearce 0c935efca9 Bug 1315850 - Handle sending and receiving key session messages. r=gerald
MozReview-Commit-ID: 6hLPFLFRD5I

--HG--
extra : rebase_source : 0931d65116bf0c499933efc58cae97b275b0ba85
2017-03-08 16:41:06 +13:00
Chris Pearce a987efe1ed Bug 1315850 - Implement ChromiumCDMProxy initialization. r=gerald
This means the MediaKeys is able to create a CDM.

MozReview-Commit-ID: 94Xc7sCLhH3

--HG--
extra : rebase_source : 914db1f04e0770776ae25c7b8bdc59e729fe78d0
2017-03-09 11:29:45 +13:00
Chris Pearce a619213252 Bug 1315850 - Create ChromiumCDMProxy in MediaKeys.cpp when preffed on. r=gerald
MozReview-Commit-ID: G37QlP74esb

--HG--
extra : rebase_source : 76937006b9e424f2588e7d06f8f7b0c3a68b5af2
2017-02-22 14:42:55 +13:00
Chris Pearce 57b480eb64 Bug 1315850 - Stub out ChromiumCDMProxy. r=gerald
This will eventually replace GMPCDMProxy. Methods will be implemented in later
patches.

MozReview-Commit-ID: 86pwo81tFZv

--HG--
extra : rebase_source : df41a20a0fefaf26a63ed18f1ccdf7fa5a3a1e89
2017-02-22 14:42:32 +13:00
Chris Pearce dd0f308205 Bug 1315850 - Add GetGMPAbstractThread() to GMPUtils.h. r=gerald
MozReview-Commit-ID: G4sq6pa7jmS

--HG--
extra : rebase_source : 94dacb5107e7f098c7dde88e6d246edb9deb6a35
2017-02-23 14:04:25 +13:00
Chris Pearce cc97ebecaf Bug 1315850 - Implement trivial cdm::Host functions. r=gerald
MozReview-Commit-ID: 5OsopZbflf1

--HG--
extra : rebase_source : dd262cc875ece0d82b4af002341ee0566125a401
2017-03-13 13:26:13 +13:00
Chris Pearce a6d74267e5 Bug 1315850 - Add ChromiumAdapter which we can use instead of WidevineAdapter. r=gerald
We currently use an adapter object to adapt plugins that don't conform to the
GMP interface to the GMP interface.

We use the WidevineAdapter to talk to the CDM from the two GMP IPDL protocols.
We will be using a single protocol to talk to the Chromium CDM, so we need a
new adapter which handles that.

MozReview-Commit-ID: F7hnZ9oo9mJ

--HG--
rename : dom/media/gmp/widevine-adapter/WidevineAdapter.cpp => dom/media/gmp/ChromiumCDMAdapter.cpp
rename : dom/media/gmp/widevine-adapter/WidevineAdapter.h => dom/media/gmp/ChromiumCDMAdapter.h
extra : rebase_source : 7c08edea3c11d41eb3ecfa9c7a8ef65cf3b8ddb0
2017-03-13 16:59:34 +13:00
Chris Pearce 92a1e35192 Bug 1315850 - Add GMP_LOG macro. r=gerald
To make adding more logging easier.

MozReview-Commit-ID: IB7tAeiNX85

--HG--
extra : rebase_source : c76f1f5f88f53abc4929d21abf6fabf1e47e6056
2017-02-22 09:45:54 +13:00
Chris Pearce 3904ad1466 Bug 1315850 - Add GMPService::GetCDM. r=gerald
Infrastructure necessary to create an instance of the CDM process.

MozReview-Commit-ID: 7oQ86x6BNWj

--HG--
extra : rebase_source : c725a958c507b7f93ce9cfccc475f259ae9ccbc2
2017-02-22 09:26:47 +13:00
Chris Pearce ae66452fa5 Bug 1315850 - Add GMPService::GetContentChild() with unresolved NodeId. r=gerald
We currently do two sync IPCs to launch a GMP; one from content to main process
to get the nodeId and a second to get a GMPContentParent for that nodeId.

We use the nodeIds to ensure that the GMPVideoDecoder and GMPDecryptor actors
correspond to the same CDM instance/process. However once we switch to having
one protocol that encompasses both decryption and decoding, we don't need to
worry about making sure our decoder and decryptor actors match up, as we only
have one underlying connection to the CDM instance.

So we can merge the get nodeId and get GMPContentParent operations into a
single operation that does both. To do this, we just need to pass the
parameters used to calculate the nodeId in the LaunchGMP message.

Once we've switched EME over to using the CDM via a single actor, we can remove
the nodeId nsCString from our media code and from GMPVideoDecoder and
GMPVideoEncoder.


MozReview-Commit-ID: 7GXlJ37fOTZ

--HG--
extra : rebase_source : cf20a165048f777f34dab01fce984018ad641b85
2016-11-25 10:30:38 +13:00
Chris Pearce e140103fca Bug 1315850 - Add PChromiumCDM.ipdl for Widevine CDM. r=gerald
The implementations of this protocol will be stubbed out in later patches.

MozReview-Commit-ID: 622CB1BOoR9

--HG--
extra : rebase_source : b796bfb4c0d0d2872787043e3b9fc83a0e6b09ea
2017-02-23 11:51:00 +13:00
Chris Pearce 5d1431a1c2 Bug 1349008 - Include SystemGroup.h in GMPVideoEncoderParent to fix unified build bustage caused by bug 1346681. r=jwwang
MozReview-Commit-ID: DncNbBYbNn8

--HG--
extra : rebase_source : f726807ecb87fd814a1933f292ab52e00ba8166f
2017-03-21 11:35:10 +13:00
JW Wang 37496c6b4a Bug 1345761 - Remove the unused do_GetMainThread() call. r=gerald
MozReview-Commit-ID: CFWh4tCKbF5

--HG--
extra : rebase_source : ccf526edc0719c4a31a90d7b8ef135dba3d8114e
2017-03-09 15:15:42 +08:00
JW Wang 7ca0324d6d Bug 1346679 - Label runnables in dom/media/gmp/GMPCDMCallbackProxy.cpp. r=cpearce
MozReview-Commit-ID: 1h2SaxHf0F

--HG--
extra : rebase_source : f73e9954d593124ad50bbcd3c15fdf5c2e053320
extra : source : 41faede1bc233157bf29130df6eced2d925395dc
2017-03-10 16:07:04 +08:00
JW Wang 017020976f Bug 1346678 - Label runnables in dom/media/gmp/GMPParent.cpp and its friends. r=cpearce
MozReview-Commit-ID: DWYx30T7gCJ

--HG--
extra : rebase_source : 68caf369926ea08cd7a56846c1de1cf75a6c54e6
extra : intermediate-source : b57189c8fa07cc066cf430358401c471b0927063
extra : source : b014f243626f5361a496edacb639a663abea2964
2017-03-09 15:31:11 +08:00
JW Wang 40cebfcf14 Bug 1346681 - Label runnables in dom/media/gmp/GMPVideoEncoderParent.cpp. r=jesup
MozReview-Commit-ID: GZqomJdBKxB

--HG--
extra : rebase_source : 352873047782018373349e42621847dcbfb71b79
extra : source : 29322d55a49e3555a1ab02f34cbb68cd3afb279e
2017-03-10 16:44:41 +08:00
JW Wang 3be61ebd8d Bug 1345753 - Pass the event target to the CDMProxy constructor. r=cpearce
MozReview-Commit-ID: 94QzJ5FnGDo

--HG--
extra : rebase_source : b863f95c7906327f00eb8e08dd5b7f37a3b3cc6c
extra : source : 6e6242c50af23128b23d3b955a081481cec0b6e2
2017-03-09 14:58:18 +08:00
JW Wang 2df35d6eb8 Bug 1345324 - Label runnables for CDMProxy sub-classes. r=cpearce
MozReview-Commit-ID: Fpf29Kctmxs

--HG--
extra : rebase_source : 24612112d4b474812e5fdcd2e14cd3679715c098
extra : source : f5d085c3221ec54785f9c98a5fd0eda78d446641
2017-03-07 15:32:10 +08:00
Chris Pearce af3f34b472 Bug 1345341 - Ensure Widevine expiration time of 0 means 'never expire'. r=jwwang
MozReview-Commit-ID: DtJnwDo7KZq

--HG--
extra : rebase_source : de55240a54c28046eda20530f610248ba2a02161
2017-03-08 17:00:07 +13:00
Carsten "Tomcat" Book 087da3f0d9 merge mozilla-inbound to mozilla-central a=merge 2017-03-07 15:13:31 +01:00
Chris Pearce 0310952278 Bug 1343140 - Output a black frame if Widevine CDM refuses to decode due to losing a key. r=gerald
MozReview-Commit-ID: JQon5f87FSF
2017-03-03 14:10:28 +13:00
Sebastian Hengst 945e8d94fc Backed out changeset bb2103358f84 (bug 1343140) for build bustage. r=backout on a CLOSED TREE 2017-03-06 19:34:25 +01:00
Chris Pearce d28c90112d Bug 1343140 - Output a black frame if Widevine CDM refuses to decode due to losing a key. r=gerald
MozReview-Commit-ID: JQon5f87FSF

--HG--
extra : rebase_source : be26f24968cee69ded5f7ceb8f1a99e25032afe5
2017-03-03 14:10:28 +13:00
Chris Pearce 076bd77329 Bug 1344614 - Improve GMP clock precision to match Chromium's CDM clock. r=jwwang
The clock that GMP currently exposes to CDMs has second precision. Whereas the
clock that Chromium exposes to CDMs has microsecond precision. We should use
the same clock as Chromium does (since we have its code in our tree already) so
that our CDM harness is as compatible to Chromium as possible.

MozReview-Commit-ID: FssZZFg4vhn

--HG--
extra : rebase_source : 8fab078ba0ecf351a9a8147d3f7434d40a2e0a25
2017-02-27 10:42:59 +13:00
Chris Pearce 756932ea4e Bug 1341894 - Correct encryption subsamples in AVCC -> AnnexB conversion. r=jya
This menas we can have GMPVideoDecoder's AVCC -> AnnexB conversion done by the H264Converter, and
simplify the code in WidevineVideoDecoder.

MozReview-Commit-ID: 3HT5VXth6LL

--HG--
extra : rebase_source : b840489edafa5dc981ba44f722d92083a40e34cd
2017-02-23 11:00:28 +13:00
Chris Pearce 2a8e086d7d Bug 1337778 - Use counter for decryptor ID instead of IPDL actor Id. r=gerald
The work I did in bug 1306314 seems to have either regressed or never worked
properly for multiple CDM same origin processes. I'd guess the decryptor IPDL
protocol actor ID must not be as unique as I thought. So if we just use a
counter managed by the GMPDecrytorChild, we'll get a per CDM unique ID, which
is sufficient.

MozReview-Commit-ID: KSh72ptX5fn

--HG--
extra : rebase_source : 9dd558aa9b2e9154e70fc328009b79e1daa884b2
2017-03-01 17:19:08 +13:00
Chris Pearce 6425456721 Bug 1342822 - Backed out changeset 70bc7d4e8512 (bug 1338924). r=gerald
MozReview-Commit-ID: DXGgfMMghOD

--HG--
extra : rebase_source : e5d329122754dfab6750ff2aedadc1f65a52f0f8
2017-02-27 13:58:27 +13:00
Chris Pearce 892e18f12e Bug 1342822 - Backed out changeset a379d64f8496 (Bug 1338924 patch 3). r=gerald
MozReview-Commit-ID: 4aFx52mwpQ6

--HG--
extra : rebase_source : 45cfb3aba27e93d49c5ebf64510d0143f1c57654
2017-02-27 13:57:39 +13:00
Carsten "Tomcat" Book e6b82618f4 merge mozilla-inbound to mozilla-central a=merge 2017-02-23 14:59:37 +01:00
Jeff Walden d73ce21741 Bug 1287006 - Adjust media/ code to not pass Maybe (or any class containing a Maybe member) by value, only by reference or pointer. r=jw_wang, r=rjesup
--HG--
extra : rebase_source : 176a2afde5772bbdf43f0f6dc8082201acadcf4f
2017-02-13 09:07:40 -08:00
Carsten "Tomcat" Book a7cadef96e Merge mozilla-central to mozilla-inbound 2017-02-22 14:40:19 +01:00
Jean-Yves Avenard 5de1d8e882 Bug 1322739: P1. Fix style and headers. r=gerald
MozReview-Commit-ID: L24Q7fX06Z0
2017-02-22 13:02:58 +01:00
Chris Pearce 83077824b8 Bug 1341497 - Move WidevineBuffer and WidevineDecryptedBlock into WidevineUtils. r=gerald
This makes it easier to reuse in the ChromiumCDM code.

Also add an ExtractBuffer() method, which allows us to Move() the contained nsTArray
out without needing to copy the data.

MozReview-Commit-ID: 9suJSfXTVYy

--HG--
extra : rebase_source : 6eec99eb5329f3b8c3bb14d22459fee3bd95caf5
2017-02-22 15:55:38 +13:00
Iris Hsiao 97fb7c952a Backed out changeset 5ec123aec8aa (bug 1341497) for bustage 2017-02-22 11:49:25 +08:00
Chris Pearce 994e1136fd Bug 1341497 - Move WidevineBuffer and WidevineDecryptedBlock into WidevineUtils. r=gerald
This makes it easier to reuse in the ChromiumCDM code.

Also add an ExtractBuffer() method, which allows us to Move() the contained nsTArray
out without needing to copy the data.

MozReview-Commit-ID: 9suJSfXTVYy

--HG--
extra : rebase_source : 89540b254249833cf8bb09792bb33cc402977d5a
2017-02-22 15:55:38 +13:00
Chris Pearce d927f25dc6 Bug 1341138 - Move LogToConsole from GMPCDMProxy to GMPUtils. r=gerald
This means we can reuse LogToConsole inside the new CDM decoder backend.

This change also makes GMPUtils.cpp build in non-unified build mode.

MozReview-Commit-ID: AFkdHIos4X2

--HG--
extra : rebase_source : d31e794ce94fa724a90b1cfa842a86d119a4e2d1
extra : source : 6cad0b06a556795f6d6de123bb5a153ff06062f5
2017-02-21 13:44:58 +13:00
Chris Pearce 7e95ac21ed Bug 1341135 - Rename CDM log macro from Log to CDM_LOG. r=gerald
This prevents the Log macro from colliding with the Log function on
IPC ParamTraits definitions.

MozReview-Commit-ID: Hd2v6ilbmGc

--HG--
extra : rebase_source : d26d495878706fe5a2009dd33d226cc71193be13
2017-02-21 13:07:10 +13:00
Wes Kocher 72ecfb5fd6 Merge m-c to autoland, a=merge
MozReview-Commit-ID: 7gVISUXnm2Q
2017-02-22 15:07:12 -08:00
Chris Pearce 2bca71e81c Bug 1341441 - Include nsPrintfCString in GMPVideoDecoderParent.cpp. r=gerald
Sometimes the build breaks because this file uses nsPrintfCString but
doesn't include its header.

MozReview-Commit-ID: CcawXkMucdA

--HG--
extra : rebase_source : 3b36138053c1ffa557fd59af37cf1cfa4166493a
2017-02-22 10:45:22 +13:00
Tom Tromey 5f8f360823 Bug 1060419 - make log_print use Printf.h, r=froydnj
MozReview-Commit-ID: BIZ1GQEZ1vs

--HG--
extra : rebase_source : 2f1f0aa12493c44f352d9a7e8683e7bb72d2d75b
2016-12-15 20:16:31 -07:00
Jean-Yves Avenard 52e09e4b68 Bug 1340129: P1. Allow empty raw frames. r=gerald
MozReview-Commit-ID: AU0QrahHtYe

--HG--
extra : rebase_source : 34604298e01db1b7b481fc55c25cb5f23e806fa2
2017-02-16 23:41:44 +01:00
Carsten "Tomcat" Book b218b4c6ae merge mozilla-inbound to mozilla-central a=merge 2017-02-16 13:15:55 +01:00
Wes Kocher 3797956aa6 Merge m-c to inbound a=merge
MozReview-Commit-ID: BemR756HJnR
2017-02-15 16:33:03 -08:00
David Anderson 0c95d36053 Allow finalizing external crash reports from CrashReportHost. (bug 1338281 part 4, r=billm) 2017-02-15 14:44:30 -08:00
David Anderson da43dac799 Store the child process thread id in CrashReporterHost. (bug 1338281 part 2, r=billm) 2017-02-15 14:44:29 -08:00
David Anderson a1f1be7f91 Store extra annotations directly on CrashReporterHost. (bug 1338281 part 1, r=billm) 2017-02-15 14:44:29 -08:00
Sebastian Hengst ba05030db7 Backed out changeset 5cc18343abdd (bug 1339748) for failing test_eme_canvas_blocked.html on Linux x64 asan. r=backout 2017-02-16 00:57:07 +01:00
Chris Pearce c5863900ee Bug 1338924 - Throttle decrypts to 2s of content per 1s of wall time. r=gerald
This ensures we don't trigger any of the CDMs in-built throuput
limiting protections.

MozReview-Commit-ID: EgNn8WpUZZg
2017-02-10 22:20:43 +13:00
Chris Pearce c6244a170d Bug 1338924 - Add GMPTask that takes/runs a lambda and a simple mechanism to set a timer on a lambda task. r=gerald
I'll use this for timers in a later patch.

MozReview-Commit-ID: J9QsMmrAWoI
2017-02-14 11:09:38 +13:00
Chris Pearce 4c05a6c492 Bug 1338924 - Pass duration of sample being decrypted to CDM. r=gerald
MozReview-Commit-ID: 3UujuYPpfJi
2017-02-14 11:29:32 +13:00
Sylvestre Ledru 0866d209a2 Bug 1338086 - Remove useless else blocks in order to reduce complexity in dom/media/gmp* r=cpearce
MozReview-Commit-ID: FaKW6Sb721i

--HG--
extra : rebase_source : f05a20bceeca69cb129067037e67f7bb57f5f450
2017-02-09 10:31:55 +01:00
Chris Pearce 9ee30b68ff Bug 1339755 - Move DecryptJob id calculation into its constructor. r=jwwang
The job id is just a counter, so rather than have other users of DecryptJob
reimplement their own counter, we can push the id/counter code into DecryptJob
itself.

MozReview-Commit-ID: 3RB8ctplWkK

--HG--
extra : rebase_source : f6cd7fddb2bf208419cf314cd7b01c508d68b49e
extra : source : 9b18193d0c1ccdedec25f7395fe124a86660b9d5
2016-12-01 11:23:27 +13:00
Chris Pearce cb48e7686c Bug 1339755 - Move GMPCDMProxy::DecryptJob out of GMPCDMProxy. r=jwwang
This means it can be used in other CDMProxies, specifically the
upcoming Chromium CDM code in bug 1315850.

MozReview-Commit-ID: G26xclqhtSw

--HG--
extra : rebase_source : 041c2cb41ba444e0dea8de3ddcc6a119d480f4f7
extra : source : c7f66edac83a6662d99f59a48f70c539f8ccecc8
2016-12-01 10:57:58 +13:00
Chris Pearce ecbbbfda10 Bug 1339748 - Convert samples to AnnexB before passing to CDMs, rather than inside CDMs. r=jya
MozReview-Commit-ID: 6i3uXC8ily9

--HG--
extra : rebase_source : 119b6bb657e2ddb36844f2a60cb80dd5ff9b1769
2017-02-15 16:03:09 +13:00
Wes Kocher 5b67cbcee7 Backed out 2 changesets (bug 1339755) for build bustage a=backout
Backed out changeset f3629503d405 (bug 1339755)
Backed out changeset 85641936e471 (bug 1339755)

MozReview-Commit-ID: LiZfM9OcO5s
2017-02-15 11:57:38 -08:00
Chris Pearce 8499c27da0 Bug 1339755 - Move DecryptJob id calculation into its constructor. r=jwwang
The job id is just a counter, so rather than have other users of DecryptJob
reimplement their own counter, we can push the id/counter code into DecryptJob
itself.

MozReview-Commit-ID: 3RB8ctplWkK

--HG--
extra : rebase_source : 7ee0e48ab7638d1f713ee6dd852ab4b5f91119e8
extra : source : 9b18193d0c1ccdedec25f7395fe124a86660b9d5
2016-12-01 11:23:27 +13:00
Chris Pearce ef8e49b7e5 Bug 1339755 - Move GMPCDMProxy::DecryptJob out of GMPCDMProxy. r=jwwang
This means it can be used in other CDMProxies, specifically the
upcoming Chromium CDM code in bug 1315850.

MozReview-Commit-ID: G26xclqhtSw

--HG--
extra : rebase_source : c4c99063f7423b8cbbd49865d2d45eca32c254ce
extra : source : c7f66edac83a6662d99f59a48f70c539f8ccecc8
2016-12-01 10:57:58 +13:00
Chris Pearce d29f094da0 Bug 1339733 - Move GMPCrashHelperHolder implementation into its own .cpp file. r=jwwang
This means we don't need to include GMPService.h in GMPCrashHelperHolder.h,
in order to use the GMPService inside GMPCrashHelperHolder.

This which prevents an inclusion cycle between GMPService.h and GMPCrashHelperHolder.h
in another patch I'm working on.


MozReview-Commit-ID: AbcXvv4UMyl

--HG--
extra : rebase_source : bdae6e1fbbbe8ce4100f51d2339f69c23f12859f
2016-11-23 15:53:42 +13:00
David Anderson 64b9b4aa19 Replace GMP use of PCrashReporter with shmem-based annotations. (bug 1337518, r=billm) 2017-02-12 11:39:44 -08:00
Jean-Yves Avenard 16bf821b42 Bug 1325707: P3. Fix coding style. r=gerald
Fixed coding style of files encountered in P1 and P2.

MozReview-Commit-ID: LApVu9K2oto

--HG--
extra : rebase_source : e3bb296baaec9df2011ff312fec2eda19dd125e6
2017-02-07 09:15:59 +01:00
Jean-Yves Avenard ec59353902 Bug 1325707: P2. Handle OOM conditions when creating MediaRawData object. r=gerald
MozReview-Commit-ID: HtkhrT36Kf4

--HG--
extra : rebase_source : febe0c4114d8d888b152db3f7b5331c0fb32f442
2017-02-07 09:03:36 +01:00
Carsten "Tomcat" Book 092e5dc5f1 merge mozilla-inbound to mozilla-central a=merge 2017-02-07 14:08:46 +01:00
Brad Lassey a5e07b93bf bug 1303096 - Stop sending sync messages soon after content process start-up r=billm 2017-02-05 00:52:38 -05:00
Chris Pearce 4757b59a5b Bug 1337159 - Use MOZ_LOG for WidevineAdapter logging. r=gerald
This works, at least on Windows, if the NSPR_LOG_FILE is set at a file
in the OS temp dir. This means we can turn on CDM logging in release
builds, in the sandboxed child process, without needing to recompile
to #define on logging.

This will make debugging issues with the CDM easier.

MozReview-Commit-ID: 6cAxMy4lv3T

--HG--
extra : rebase_source : eb75bba8e0dc38d1a0137cef28b7589ded43351a
2017-02-07 10:12:06 +13:00
Sebastian Hengst 122ebc553b Backed out changeset e9d8a75a0dcc (bug 1303096) for failing various tests on Android 4.3 debug (e.g. test_saveHeapSnapshot_e10s_01.html). r=backout 2017-02-05 10:26:28 +01:00
Brad Lassey ecdf363246 bug 1303096 - Stop sending sync messages soon after content process start-up r=billm 2017-02-05 00:52:38 -05:00
Jay Harris 4b018f109d Bug 1316650 - Changes the NS_WARNING to an EME_LOG r=cpearce
MozReview-Commit-ID: 2dDipFVr2Ip

--HG--
extra : rebase_source : 3807dc7697a59908f889dff110770c08b51b7f0c
2017-02-01 10:42:37 +13:00
Chris Pearce 302ca1dbee Bug 1332530 - Remove GMP enum storage names. r=gerald
Note: Only the Adobe GMP used enum storage, so not that it's unused we may
as well remove this.

MozReview-Commit-ID: JtmQ69eJzaI

--HG--
extra : rebase_source : 29929e680dc1692b957b34ce274c4944743768e8
2017-01-20 15:06:00 +13:00
Chris Pearce 67b9555200 Bug 1332530 - Remove code to pass nodeId to GMP process. r=gerald
MozReview-Commit-ID: Kw4Bx7zzkN1

--HG--
extra : rebase_source : 8b57219ff8856dfa33476c57449a55c9e12a5d37
2017-01-19 15:14:45 +13:00
Chris Pearce 21ca915169 Bug 1332530 - Don't require a SandboxStarter if MOZ_GMP_SANDBOX is not defined. r=jld
GMP gtests fail on ASAN builds now since the GMPLoader requires a sandbox
starter, and ASAN doesn't run with a GMP sandbox. So only enforce that we
need a sandbox starter if we've built with sandboxing enabled.

MozReview-Commit-ID: GptxIZ7TFIy

--HG--
extra : rebase_source : 6265f91a9c80555b63f71ac5da116450d4728df1
2017-01-25 10:30:37 +13:00
Chris Pearce a4fe4d518f Bug 1332530 - Flatten GMPLoader and GMPLoaderImpl. r=gerald
MozReview-Commit-ID: GZ8feXmLuCb

--HG--
extra : rebase_source : e869cf9b25bdf3b5a6e6cbdcbd8c521987f826cb
2017-01-19 15:44:54 +13:00
Chris Pearce 701e1daf19 Bug 1332530 - Move GMPLoader code out of plugin-container and back into XUL. r=gerald
The GMPLoader code was in plugin-container so that it was covered by
Adobe's voucher of plugin-container, but that's no longer necessary.

MozReview-Commit-ID: 3VRBAohRI9I

--HG--
extra : rebase_source : 58a30855ade14af4c4b1420edabd3abb398f232e
2017-01-19 15:39:03 +13:00
Chris Pearce 6b15c34475 Bug 1332530 - Remove librlz and EME/GMP device binding code. r=gerald
MozReview-Commit-ID: FzJ220XlrJi

--HG--
extra : rebase_source : 0945a3b46bcc90de9b48f56da46090cb2f777411
2017-01-20 13:47:48 +13:00
Carsten "Tomcat" Book a516a86a24 merge mozilla-inbound to mozilla-central a=merge 2017-01-27 10:42:54 +01:00
Chris Pearce c4a0c6d738 Bug 1324925 - Backed out changeset 229e1278d976. r=backout
MozReview-Commit-ID: NnHo7YXFls
2017-01-27 12:30:33 +13:00
Jay Harris 7c7fa081d8 Bug 1333979 - Adds a check in the WidevineVideoDecoder before shutting down r=cpearce
DeinitializeDecoder will now only be called if InitializeDecoder has been called first

MozReview-Commit-ID: 93WexomWp92

--HG--
extra : rebase_source : 96dfa5666041340d56fbfce7a46fb7f8f67181dc
2017-01-27 10:54:04 +13:00
David Parks 990402c301 Bug 1317735 - Consolidate env vars for logging. r=jimm
Assigns the preference security.sandbox.logging.enabled and the environment variable MOZ_SANDBOX_LOGGING to control whether or not sandbox violations are logged.  The pref defaults to true.  On Linux, only the environment variable is considered.

--HG--
extra : rebase_source : f67870a74795228548b290aec32d08552c068874
2017-01-23 12:46:49 -08:00
Andrew McCreight 556961ac46 Bug 1321871, part 2 - Remove PContent opens of PGMPService. r=peterv
--HG--
extra : rebase_source : 8db0331e7f1296f96f171cbd573ff40848967c49
2017-01-05 12:55:57 -08:00
Andrew McCreight 1951ea01ff Bug 1321871, part 1 - Replace use of opens and bridges in GMP protocols with endpoints. r=peterv
This removes the open of PGMPContent from PGMP, the bridge of
PGMPService and PGMP from PGMPContent, and the spawn of PGMP from
PGMPService. I did these changes all at once because the way the
bridges works it was hard to split it up.

--HG--
extra : rebase_source : d9311e3047b9855ad422838f5a8b6bfdc382d225
2017-01-05 12:55:27 -08:00
Chris Pearce 04b9e257a7 Bug 1332951 - On Linux check whether Widevine CDM can be sandboxed before advertising we support it. r=jld
We already do this in GMPParent::ReadGMPInfoFile(), and I neglected to check
this in the Chromium/Widevine manifest parsing code. This means we won't add
the GMPParent to our list of GMPParents, and so
navigator.requestMediaKeySystemAccess won't advertise that we support Widevine.


MozReview-Commit-ID: 7x7pbO5vC5e

--HG--
extra : rebase_source : 6d220066d01921d67f0ccf917cb94da887ea01a8
2017-01-23 11:38:15 +13:00
Bevis Tseng f2bdbd8fd1 Bug 1314833 - Part 2.1: Factor out AbstractThread::MainThread() used in Media Playback. r=billm,jwwang
MozReview-Commit-ID: 9yJi3iDtVZG

--HG--
extra : rebase_source : 39c720ccc576ed9247b5e8abb70d99d7873b3ad6
2016-11-29 13:03:36 +08:00
Chris Pearce fe31d4bd44 Bug 1332149 - Don't expose plugin-container or sandbox vouchers to GMPs. r=gerald
MozReview-Commit-ID: JZBoEptskf0

--HG--
extra : rebase_source : c2de46c71eced8fc9ad00f9fbb95f9dc9f5ee6ba
2017-01-19 14:57:30 +13:00
Carsten "Tomcat" Book 709bd29d0a merge mozilla-inbound to mozilla-central a=merge 2017-01-19 16:05:22 +01:00
David Parks 033c45c4ef Bug 1306239 - Add pref to toggle OS X sandbox violation debugging, default on. r=haik
Turns on sandbox denial logging if security.sandbox.logging.enabled is true.

Removes most sandbox violation messages but some related messages generated
by other processes will still get through.

--HG--
extra : rebase_source : 4f06e70d53b0f500cc85a869c5bd7f8ea20d8341
2017-01-17 15:47:13 -08:00
Ryan VanderMeulen 3aad788019 Merge m-c to inbound. a=merge 2017-01-18 09:54:06 -05:00
Chris Pearce 22f4a343b5 Bug 1329543 - Remove obsolete GMPDecryptor7 interface that was only used by Primetime. r=gerald
This basically rolls back aec9905b06fe from bug 1278198.

MozReview-Commit-ID: Drho21X6npW

--HG--
extra : rebase_source : 372bc7f4771ec0268535e3df2a745bc9fae8bd3b
2017-01-16 15:12:15 +13:00
Chris Pearce af0e6c4ab5 Bug 1329543 - Remove PGMPAudioDecoder. r=gerald
MozReview-Commit-ID: nwW4s4MtJX

--HG--
extra : rebase_source : 95079ac628f301f8ceb8b5540c7ea95a15deb931
2017-01-14 16:14:32 +08:00
Chris Pearce 0e603bda78 Bug 1329543 - Remove GMP storage migration. r=gerald
This was only to support legacy storage for the Adobe GMP, and we don't support that any more.



MozReview-Commit-ID: BQLTDq535Qa

--HG--
extra : rebase_source : df73267af09847487e78513e774baa209c700a76
2017-01-14 11:57:39 +08:00
Chris Pearce 95c18b7326 Bug 1329543 - Remove kEMEKeySystemPrimetime. r=gerald
MozReview-Commit-ID: FNvnpZVPMMt

--HG--
extra : rebase_source : c65d007a9894830bd3b85638dcc8c37b5f36fed5
2017-01-14 11:26:37 +08:00
Chris Pearce abf5ab3771 Bug 1331829 - Remove async shutdown GMP API. r=gerald
Now that we're not supporting Adobe EME anymore, we don't need to
provide a mechanism for GMPs to block browser shutdown.

MozReview-Commit-ID: KUC94IBQiod

--HG--
extra : rebase_source : ed521f28e272de11b2d0c4546b98baf6bd7c6e72
2017-01-18 15:01:56 +13:00
Mike Hommey 35a7101bda Bug 1306327 - Use UniquePtr for CreateGMPLoader. r=cpearce
--HG--
extra : rebase_source : 9f363a194d63c531f37946d76103cb0ad830c1a3
2016-12-15 16:14:34 +09:00
Wes Kocher 813009d982 Backed out 2 changesets (bug 1319159) for frequent media test failures a=backout
Backed out changeset afb84605c3c4 (bug 1319159)
Backed out changeset a14cade8b962 (bug 1319159)

MozReview-Commit-ID: 1ZWV6BPE8ne

--HG--
extra : source : 68c824ad72b817189143af771bb34408c72ad495
2017-01-13 13:23:56 -08:00
Wes Kocher 07fd8cebf7 Backed out 3 changesets (bug 1318965) for frequent media test failures a=backout
Backed out changeset 3f756d8ee4cf (bug 1318965)
Backed out changeset 4bdf65d60c9e (bug 1318965)
Backed out changeset c1e2b6c14a7f (bug 1318965)

MozReview-Commit-ID: 6CPk5oS5AOw

--HG--
extra : source : babe3f8a0258fb592e17a590450de6ceb09460c3
2017-01-13 13:23:31 -08:00
Jay Harris a5aa2bceb7 Bug 1318965 - Fixes a bug in the WideVineAdapter wherein session load failures were not adapted correctly r=cpearce
MozReview-Commit-ID: 2ze4d8EuHr9

--HG--
extra : rebase_source : 185272b47b0c70b83d6b88819e222a71e0e15dcc
extra : amend_source : b6d0b7e6f4705700d73cacfb024ea3a5c6f17a56
2016-12-20 14:35:55 +13:00
Jay Harris 06bce5da83 Bug 1318965 - Converts gmp-clearkey to use Chromium ContentDecryptionModule8 interface used by widevine r=cpearce
MozReview-Commit-ID: 6lOzItuuvdd

--HG--
extra : rebase_source : 7f70380be5628c3e6668cf9fa235c8d2525bf1dc
extra : amend_source : 8d6afebb484ed59cf02907cab8991e6f232b0f69
2017-01-12 09:52:05 +13:00
Jay Harris b8bec2ab2b Bug 1319159 - Updates the whitelist of libraries in GMPChild, r=cpearce
MozReview-Commit-ID: 2KZHwO34idZ

--HG--
extra : rebase_source : 37a1c58a0fbff6ea3f736c829853c18a3ee13526
extra : amend_source : 7e285d9c8abf80266515c62ea19ffe0b5f7bcf2e
2017-01-11 10:02:25 +13:00
Jay Harris 6f7214ca07 Bug 1319159 - Updates how 'ParseChromiumManifest' works so that it doesn't assume Widevine (now it assumes Widevine or Clearkey..). r=cpearce
MozReview-Commit-ID: 8m6hPIiUPT

--HG--
extra : rebase_source : 1e8de4d233e15cda3f08f1ca556ea4f82eb6cebe
extra : amend_source : 50a7e80ff09bd6cb1f4033425c136b4552cbda41
2016-12-22 11:28:40 +13:00
Andrea Marchesini 359ae91eac Bug 1328653 - Merging all the various *OriginAttributes to just one, r=huseby 2017-01-12 17:38:48 +01:00
Chris Peterson 4b28bd3f34 Bug 1329547 - Remove EME checks for Vista. r=cpearce
MozReview-Commit-ID: J1ww70KMQuw

--HG--
extra : rebase_source : 8cbf795562a02469ce1c5629c5c693700ee8fcea
2017-01-08 00:56:45 -08:00
Haik Aftandilian 7e7b9330e3 Bug 1322716 - Remove /private/var regex from GMP sandbox rules. r=jesup, r=cpearce, r=gcp
MozReview-Commit-ID: I1Y2MOum5T3
2016-12-19 18:16:31 -08:00
Chris Pearce 80a5e71248 Bug 1325185 - Fix operator precedence in GMPUtils' ToHexString(). r=gerald
MozReview-Commit-ID: 41KoItfOYts

--HG--
extra : rebase_source : b42a325a00f5939ee3c4945c1a5cee826f89c385
2016-12-22 09:20:17 +13:00
Chris Pearce 55e0da876c Bug 1324926 - Convert other EME/GMP byte logging from Base64 to Hex. r=gerald
This is marginly more readable.

MozReview-Commit-ID: DWJNFXxI7Vd

--HG--
extra : rebase_source : cb29271f3942db63da2b815e81977f98ec955968
2016-12-21 10:37:09 +13:00
Chris Pearce 9a69924b0c Bug 1324926 - Log keyId as hex when decoding video via GMP. r=gerald
MozReview-Commit-ID: DIiErrwjONo

--HG--
extra : rebase_source : 05a7b667c65ee11a80244c8c832c134cd6b05485
2016-12-21 09:54:20 +13:00
Chris Pearce dbd88a8bc7 Bug 1324926 - Log Gecko version and buildID in GMP log. r=gerald
MozReview-Commit-ID: 3QLi8aCrqUF

--HG--
extra : rebase_source : 7148b586bd82cc042db9f76101c962d078cff8d6
2016-12-21 09:53:15 +13:00
Wes Kocher 5401734deb Backed out 4 changesets (bug 1324926) for windows build bustage a=backout
Backed out changeset e57acea9a4ab (bug 1324926)
Backed out changeset 3a5fc19f492b (bug 1324926)
Backed out changeset 1694d0248f1a (bug 1324926)
Backed out changeset b0a59896aa01 (bug 1324926)
2016-12-20 16:53:41 -08:00
Chris Pearce d71275d786 Bug 1324926 - Convert other EME/GMP byte logging from Base64 to Hex. r=gerald
This is marginly more readable.

MozReview-Commit-ID: DWJNFXxI7Vd

--HG--
extra : rebase_source : bfc694c51a8f1de28a6a11155f0c3e6b723ff153
2016-12-21 10:37:09 +13:00
Chris Pearce e0308ca287 Bug 1324926 - Log keyId as hex when decoding video via GMP. r=gerald
MozReview-Commit-ID: DIiErrwjONo

--HG--
extra : rebase_source : dbc7c23a53cce7e997fdc03a9df5691ab05f7c94
2016-12-21 09:54:20 +13:00
Chris Pearce 6fc80c2aaa Bug 1324926 - Log Gecko version and buildID in GMP log. r=gerald
MozReview-Commit-ID: 3QLi8aCrqUF

--HG--
extra : rebase_source : 8ca50b09a04478453bf67ce9a055c6253e767b89
2016-12-21 09:53:15 +13:00
Chris Pearce 8e41b15452 Bug 1324925 - Convert GMPTimestamp to epoch seconds in GMPDecryptorChild::ExpirationChange(). r=gerald
MozReview-Commit-ID: 8tSl2kIQc1w

--HG--
extra : rebase_source : c10839a0df68716b2370e15645470442b0b69922
2016-12-21 11:52:16 +13:00
Chris Pearce d42aaaf304 Bug 1322305. r=gerald
MozReview-Commit-ID: BLPkf2yrASn

--HG--
extra : amend_source : 58028c34dd322ff23c6b3e4bd6b266791096e200
2016-12-04 18:21:01 +13:00
James Cheng 4f0ada8315 Bug 1323566 - Fix incorrect index usage in MediaKeySystemAccessManager::Observe(). r=cpearce
MozReview-Commit-ID: 1D6Yes6ofdj

--HG--
extra : rebase_source : aada68f7aab16fb51c3a5025993e52a01dd5ed07
2016-12-15 11:53:54 +08:00
JW Wang d4d5d4d5bb Bug 1321744. Part 3 - remove ThenPromise and replace its use with Then. r=gerald
MozReview-Commit-ID: AsmePdCp2tC

--HG--
extra : rebase_source : e08ac48584375d2bc12f5b73a1e60f2800359ed9
extra : intermediate-source : 94e727f7cd11bb04812da3662a0ee1fd461cc832
extra : source : 5307716231f93b01c0357011f8849015d4d97d0a
2016-12-04 08:51:25 +08:00
Andrea Marchesini f7f5990527 Bug 1317927 - Media caching needs to use origin attributes, r=cpearce, r=jesup 2016-12-07 07:07:09 -10:00
JW Wang c1ec600a1a Bug 1321471. Part 1 - Use of MozPromise::ThenPromise() in place of CompletionPromise(). r=jya.
MozReview-Commit-ID: INbGpzwK4f9

--HG--
extra : rebase_source : 76942aa9741f2ce59f6208cfb0699ad3718a25d4
extra : intermediate-source : 61f3ade0fb73f6318ae616393d66e3dc21d68323
extra : source : 92e78c9b199b252da5d219f8d68902ce353aa4c7
2016-11-30 18:19:26 +08:00
Jay Harris edfd7cd803 Bug 1318965 - Fixes a bug in the video decoder causing a crash if the video decoder was shutdown while in the middle of a drain or a reset r=cpearce
MozReview-Commit-ID: 2ePTOelGbuA

--HG--
extra : rebase_source : 5b8765b7070d659501cb97df2dd157b51e6c14f3
extra : histedit_source : 6e52e5d9d24ecbe864ba1bf838da0d4445194fe1
2017-01-18 14:47:30 +13:00
Jay Harris 0536ef6a6e Bug 1318965 - Adds a dummy WidevineDecoder so the CDM doesn't crash if the Decryptor has been destroyed r=cpearce
MozReview-Commit-ID: D8tCJRKF1vn

--HG--
extra : rebase_source : ad40c4b48d6cf6ce03d4592048902f37c39718fd
extra : histedit_source : c2f3213c9582e88ffcc8d0af5948e9b194f9be4a
2017-01-17 14:10:11 +13:00
Jay Harris 1bcf5b83cb Bug 1318965 - Fixes some bugs in the Widevine logging code and improves existing logging r=cpearce
MozReview-Commit-ID: 6ov80Xwi8OR

--HG--
extra : rebase_source : 1975ebdf7a1020c7e178e181559bdc1d9f9456d5
extra : histedit_source : 09f5788602ac73e778f56874c732703a44325666
2017-01-17 14:03:25 +13:00
Jay Harris c723828bd0 Bug 1318965 - Fixes a bug in the WidevineAdapter wherein session load failures were not adapted correctly r=cpearce
MozReview-Commit-ID: 2ze4d8EuHr9

--HG--
extra : rebase_source : 366f8da20f5b511eafcdcd20113d04d268f6321b
extra : histedit_source : 50f128f838b277a4287358e42c91fa95c67bb2fd
2016-12-20 14:35:55 +13:00
Jay Harris f44f926c07 Bug 1318965 - Converts gmp-clearkey to use Chromium ContentDecryptionModule8 interface used by widevine r=cpearce
MozReview-Commit-ID: 6lOzItuuvdd

--HG--
extra : rebase_source : b1e98ecd166954f0a9e7e9ad8544504210998f49
extra : histedit_source : 7d73e59040f8f5c15bc26c388b4b40bf2ec1e5fe
2017-01-12 09:52:05 +13:00
Jay Harris acd2a7ede3 Bug 1319159 - Updates the whitelist of libraries in GMPChild. r=cpearce
MozReview-Commit-ID: 2KZHwO34idZ

--HG--
extra : rebase_source : f58a37aa26250971d9f27039b7cb323cec26ef92
extra : histedit_source : 9ae40947eb3fd8b0d6fcbd0b98c0dc9ecf7604bf
2017-01-11 10:02:25 +13:00
Jay Harris f4929b46d1 Bug 1319159 - Updates how 'ParseChromiumManifest' works so that it doesn't assume Widevine (now it assumes Widevine or Clearkey..). r=cpearce
MozReview-Commit-ID: 8m6hPIiUPT

--HG--
extra : rebase_source : 457da21982f35b66eac1ff32316ceee243139652
extra : histedit_source : 4ebc011309b9013952435bf0ff32206a73de0854
2016-12-22 11:28:40 +13:00
Carsten "Tomcat" Book d98418da69 merge mozilla-inbound to mozilla-central a=merge 2016-11-28 16:37:22 +01:00
Chris Pearce 19f0b2fe44 Bug 1320614 - Remove MediaKeys::mNodeId as it's only ever written and never read. r=gerald
MozReview-Commit-ID: BWfrjzdfph

--HG--
extra : amend_source : 784b9d8341dc2fad29c522b5faa147a2a81a9388
2016-11-28 12:12:34 +13:00
Gerald Squelart 2f3c3d06e9 Bug 1313497 - Use InvokeAsync with Storages in GMPServiceParent - r=jya
MozReview-Commit-ID: LnbzlqQIWco

--HG--
extra : rebase_source : 8a546bf28875b9bdce8b8c75bd0d655bf30a8642
2016-11-13 17:03:35 +11:00
Gerald Squelart 926a1eab6b Bug 1313497 - Use InvokeAsync with Storages in GMPParent - r=jya
MozReview-Commit-ID: EQQFDzvAs8O

--HG--
extra : rebase_source : d5985a84058c3cab55e8896a8e74c36e62ddf150
2016-11-13 16:53:05 +11:00
Carsten "Tomcat" Book 61849e269d merge mozilla-inbound to mozilla-central a=merge 2016-11-24 16:41:59 +01:00
Jay Harris 7a7b0325f0 Bug 1319197 - Remove audio decoding from gmp-clearkey. r=cpearce
MozReview-Commit-ID: EA0AAoDjWUh

--HG--
extra : transplant_source : 1D%21%1C%21%15%F7A%CD%EF-%C9%8FS%ECl%A8%9A%DC%B5
2016-11-22 14:32:26 +13:00
Chris Pearce 27f8f13960 Bug 1316215 - Merge SelectGMP and LaunchGMP into one synchronous IPC operation. r=gerald
We were seeing almost permaorange failures in the WebRTC H.264/GMP tests
due to the GMP being shutdown in the parent process in between the
content process performing an OOP select operation and then performing
an OOP launch operation.

That is, in GeckoMediaPluginServiceChild::GetContentParent() in between
the SendSelectGMP completing and the SendLaunchGMP completing, the GMP
would shutdown and so when the launch operation ran in the main process
it would fail.

The select and launch are seperate operations so that the crash handler
can be reported to the content process and an association can be made
in the content process between the plugin ID and the crash helper before
we try to launch the GMP. This is so that if the GMP crashes on startup,
we're ready to handle the crash.

However it turns out that if the GMP crashes on startup, the crash report
message comes in after another round of the event/IPC message loop. So we
actually do have time in the content process to connect the crash helper
after the launch fails.

So in order to fix the problem of the GMP shutting down in between select
and launch, we can partially revert the changes I made in Bug 1267918 to
merge selecting and launching GMPs back into a single operation.


MozReview-Commit-ID: 5n4T1Gqlvr3

--HG--
extra : rebase_source : 6e6892a5e32a485b5bfc2f93bddb2d2fe5a422bd
2016-11-22 14:17:59 +13:00
Chris Pearce 39f5dc88d5 Bug 1316215 - Make GMPParent::IsUsed() take into account whether there are pending GetContentParent calls. r=gerald
In a similar vein to the previous patch, while we're waiting on a
GetContentParent promise to resolve, we don't want the GMPParent
to shutdown. So make IsUsed() check whether we're waiting on a
GetContentParent promise to resolve, so we don't pull the rug out
from under any code waiting to get a content parent to bridge a
GMP.

MozReview-Commit-ID: 8cTCuXLXMsK

--HG--
extra : rebase_source : 8cc04d57ea1ef4e48c7ff088dbb12eabe4b3b223
extra : source : f79a51d9bd193024f7359ba6ff75076b15d15faf
2016-11-18 12:37:14 +13:00
Chris Pearce 4fa2a5c829 Bug 1316215 - Block GMPContentParent close while a GMPService::GetContentParent is being processed. r=gerald
When GMPService::GetContentParent returns a MozPromise, we end up failing in
test_peerConnection_scaleResolution.html with e10s enabled because we Close()
the GMPContentParent twice. The test causes two GMPVideoEncoderParents to
be created. When the number of IPDL actors on the GMPContentParent reach 0,
we close the IPC connection. With GetContentParent() returning a MozPromise,
it's more async, and so we can end up requesting the content parent in order
to create the second GMPVideoEncoderParent, but while we're waiting for
the promise to resolve the previous GMPVideoEncoderParent is destroyed and
the GMPContentParent closes its IPC connection. Then the GetContentParent
promise resolves, and that fails to operate correctly since it's closed its
IPC connection.

My solution here is to add a "blocker" that prevents the GMPContentParent from
being shutdown while we're waiting for the GetContentParent promise to resolve.

MozReview-Commit-ID: HxBkFkmv0tV

--HG--
extra : rebase_source : 59aa7bcfe8b8f44274d136d6147a946542a64fff
extra : source : 59ab10349b58b0fbe13dca9312ec82332f7c3dbe
2016-11-16 10:59:08 +13:00
Chris Pearce c93e08bf59 Bug 1316215 - Promisify GMPService GetGMPContentParent and GetServiceChild. r=gerald
MozReview-Commit-ID: 5ydGmZWGzWG

--HG--
extra : rebase_source : bc61628e97243db55b68d1efc93e7b55f32628e5
extra : intermediate-source : 7ca4bd360797b8207d26e46192400307cf046593
extra : source : eda96f88317dbf0c696aeaab8993bf2f030517c0
2016-11-09 15:52:22 +13:00
Jed Davis 8f3f056572 Bug 1313808 - Part 1: Move LinuxSandboxStarter back into libxul. r=cpearce,glandium,tedd
MozReview-Commit-ID: FAReOZX7Rvn

--HG--
extra : rebase_source : 01d0d1970822b5af6a37ff450ac01408f871237a
2016-11-08 14:23:47 -07:00
Gerald Squelart c22dcadd40 Bug 1318228 - Replace nsAutoPtr with UniquePtr in GMPCDMProxy - r=cpearce
MozReview-Commit-ID: Hy4rag5UbsZ

--HG--
extra : rebase_source : d3802b3e0e22cb1ef982eecc4c1a5b016f0ff6aa
2016-11-17 18:40:28 +11:00
Sylvestre Ledru caf1487b6c Bug 1317430 - Avoid a unnecessary copy by passing a const & in dom/media/ r=jya,pehrsons
MozReview-Commit-ID: 9MDVY9mgui0

--HG--
extra : rebase_source : d077c3f4d39e9914c591a0ef671a7db99679c608
2016-11-14 23:15:53 +01:00
Chris Pearce 0a0e9d8f06 Bug 1317822 - Move GMPCrashHelper into its own file. r=gerald
MozReview-Commit-ID: 7CinZ2Y2Fmz

--HG--
extra : rebase_source : 3b176cbfadebf6463384105c261ff208bc58b1c2
2016-11-16 11:35:36 +13:00
Chris Pearce eac0e11773 Bug 1317473 - Make GMPService accept paths with mixed dir separators. r=jesup
The mochitest harness on Windows sets MOZ_GMP_PATH to paths with a mixture of
Windows and UNIX dir separators, and the NS_NewLocalFile() call in
GMPServiceParent::AddOnGMPThread() fails on this input.

We've had this problem before, and if we fixed the test harness to give us
input with platform specific line endings somebody would likely just break this
again someday and have this issue again, so just make the GMP service normalize
the paths it's given to have consistent dir separators.

This makes test_peerConnection_basicH264Video.html pass when run
locally on my Windows machine.


MozReview-Commit-ID: 88hSvTdZuWg

--HG--
extra : rebase_source : 2cf63ccd1155e59f9745163cf4a28d3bdb7012ba
2016-11-15 10:56:43 +13:00
Kan-Ru Chen f8100451db Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm
We will use the new type for the generated IPDL message handler
prototype to make sure correct error handling method is called.

MozReview-Commit-ID: AzVbApxFGZ0
2016-11-15 04:26:00 +01:00
Andi-Bogdan Postelnicu 65ae72060c Bug 1317241 - Use C++11's override and remove virtual where applicable in dom/ r=baku
MozReview-Commit-ID: 8jUAehd1odv

--HG--
extra : rebase_source : 13375a14447ce344214fa30babf540de0a394c6a
2016-11-15 13:09:07 +02:00
Andi-Bogdan Postelnicu aaf2063029 Bug 1317241 - Replace default bodies of special member functions with = default in dom/. r=baku
MozReview-Commit-ID: 12AHOhrpaNO

--HG--
extra : rebase_source : 7881277a13fe7389b95635ee9b94f1686f56d142
2016-11-14 11:40:37 +02:00
Andi-Bogdan Postelnicu 4df235170d Bug 1317241 - Use auto type specifier where aplicable for variable declarations to improve code readability and maintainability in dom/. r=baku
MozReview-Commit-ID: CST7fV4h20h

--HG--
extra : rebase_source : 663d24e9c15d7b42023f1557b75fb8dabfc9b6a9
2016-11-14 11:35:58 +02:00
Chris Pearce 6f8b365df3 Bug 1306314 - Allow Widevine CDM process to contain multiple CDM instances and to have persistent storage. r=gerald
This change ensures that we don't create a new random node Id for every
MediaKeys object using Widevine - which has the effect of ensuring
Widevine CDMs that are same origin get created in the same process, and
that persistent storage can be used and retrieved.

MozReview-Commit-ID: K55rkcu9jWo

--HG--
extra : rebase_source : ebca24d2eeb4acd5fb14e0063cf2065c419853b1
2016-11-14 11:43:45 +13:00
Chris Pearce d60faf6fad Bug 1306314 - Use decryptor ID in WidevineAdapter to link decryptors with decoders. r=gerald
Store a mapping of decryptor ID to the CDM instance that the corresponding
WidevineDecryptor is using. This allows us to link GMPDecryptor instances
with the corresponding GMPVideoDecoder.

The CDM is stored inside the CDMWrapper, so that we destroy the CDM instance
when the last reference to the CDM is dropped.

MozReview-Commit-ID: FQYzh77yjoC

--HG--
extra : rebase_source : 772d4bead18a9b88e7f9ee30b0f169a192322e24
2016-11-11 15:39:10 +13:00
Chris Pearce 451c0b5421 Bug 1306314 - Pipe decryptor ID through to WidevineAdapter. r=gerald
MozReview-Commit-ID: HqRoImDhuFl

--HG--
extra : rebase_source : b153d8f7557c0bbf78ed04c01dd11b2400c324a7
2016-11-11 14:55:56 +13:00
Chris Pearce 1b21fde486 Bug 1306314 - Pass decryptor ID to GMPVideoDecoder constructor. r=gerald
Retrieve the ID of the GMPDecryptor from the GMPCDMProxy, and pass that
through to the GMPVideoDecoder's constructor.

MozReview-Commit-ID: IuNsSroZ9Zu

--HG--
extra : rebase_source : d678628dec67a059aec06918f07ea93ecc54a5f9
2016-11-14 11:07:02 +13:00
Chris Pearce b430a8a481 Bug 1306314 - Add an ID to GMPDecryptor instances, reflect that on CDMProxy. r=gerald
This enables us to identify GMPDecryptor instances in the child process, so that
in a later patch when we create a GMPVideoDecoder instance, we can associate it
with a GMPDecryptor. Then the cdm::ContentDecryptionModule8 instance that these
two actors are adapted to can know whom it's supposed to respond to.

We use the IPDL PGMPDecryptorChild actor ID as the GMPDecryptor's ID. This is unique
per GMP process, which is sufficient.

MozReview-Commit-ID: 7NKND9VjPUW

--HG--
extra : rebase_source : da14d9a8a7313a609e30649af1a23e79b3e401fe
2016-11-11 12:10:43 +13:00
Iris Hsiao d9a1a0a083 Backed out changeset 9e9727bdc484 (bug 1306314) 2016-11-14 11:07:39 +08:00
Iris Hsiao 891306a89a Backed out changeset 9343cb73c218 (bug 1306314) 2016-11-14 11:07:28 +08:00
Iris Hsiao 8be72fb1e5 Backed out changeset e2a5702d96b0 (bug 1306314) 2016-11-14 11:07:23 +08:00
Iris Hsiao 85b8be1656 Backed out changeset d37e28309560 (bug 1306314) 2016-11-14 11:07:19 +08:00
Iris Hsiao cd600c5ab4 Backed out changeset 5c5600e1f30f (bug 1306314) for bustage 2016-11-14 11:07:13 +08:00
Chris Pearce 21137c728b Bug 1306314 - Allow Widevine CDM process to contain multiple CDM instances and to have persistent storage. r=gerald
This change ensures that we don't create a new random node Id for every
MediaKeys object using Widevine - which has the effect of ensuring
Widevine CDMs that are same origin get created in the same process, and
that persistent storage can be used and retrieved.

MozReview-Commit-ID: K55rkcu9jWo

--HG--
extra : rebase_source : 9bd789d05d1f5ed0a00eeb9870668e6335e899e6
2016-11-14 11:43:45 +13:00
Chris Pearce 14a0cc34ed Bug 1306314 - Use decryptor ID in WidevineAdapter to link decryptors with decoders. r=gerald
Store a mapping of decryptor ID to the CDM instance that the corresponding
WidevineDecryptor is using. This allows us to link GMPDecryptor instances
with the corresponding GMPVideoDecoder.

The CDM is stored inside the CDMWrapper, so that we destroy the CDM instance
when the last reference to the CDM is dropped.

MozReview-Commit-ID: FQYzh77yjoC

--HG--
extra : rebase_source : 7e8c264200e904a4f5a1311f11cd317d98df9791
2016-11-11 15:39:10 +13:00
Chris Pearce 7af167a212 Bug 1306314 - Pipe decryptor ID through to WidevineAdapter. r=gerald
MozReview-Commit-ID: HqRoImDhuFl

--HG--
extra : rebase_source : 7c8459af145e948a15eade34a842df92184353d4
2016-11-11 14:55:56 +13:00
Chris Pearce 5926bef365 Bug 1306314 - Pass decryptor ID to GMPVideoDecoder constructor. r=gerald
Retrieve the ID of the GMPDecryptor from the GMPCDMProxy, and pass that
through to the GMPVideoDecoder's constructor.

MozReview-Commit-ID: IuNsSroZ9Zu

--HG--
extra : rebase_source : 6f1db4a019deaedac07fa15c1958270268dcb941
2016-11-14 11:07:02 +13:00
Chris Pearce ec543ad267 Bug 1306314 - Add an ID to GMPDecryptor instances, reflect that on CDMProxy. r=gerald
This enables us to identify GMPDecryptor instances in the child process, so that
in a later patch when we create a GMPVideoDecoder instance, we can associate it
with a GMPDecryptor. Then the cdm::ContentDecryptionModule8 instance that these
two actors are adapted to can know whom it's supposed to respond to.

We use the IPDL PGMPDecryptorChild actor ID as the GMPDecryptor's ID. This is unique
per GMP process, which is sufficient.

MozReview-Commit-ID: 7NKND9VjPUW

--HG--
extra : rebase_source : 6ea7dfa358f8d13f7d36db5a581fc075268038b7
2016-11-11 12:10:43 +13:00
Chris Pearce 5cba5b5a25 Bug 1314858 - Refactor multiple callers of HasPluginForAPI into a helper. r=gerald
I've repeated myself a few times, so make a helper to make determining which
GMPs are available easier.

MozReview-Commit-ID: 2fFLeaA5o8u

--HG--
extra : rebase_source : 74ea0b429d339273535610df3bbd7fec7beae469
2016-11-03 14:33:31 +13:00
Chris Pearce 7250493ddc Bug 1314858 - Remove GMPDecoderModule::UpdateUsableCodecs. r=gerald
MozReview-Commit-ID: 7678JImLL9T

--HG--
extra : rebase_source : 77cd678431669cc3932cfaabc7034e546b92166c
2016-11-02 15:31:21 +13:00
Chris Pearce d6045d04f6 Bug 1314858 - Make content process cache of GMP capabilities thread safe. r=gerald
MozReview-Commit-ID: 5zTFlfReBne

--HG--
extra : rebase_source : 90e6018b6574c0d2f5a51ad56ab87ef5b535f124
2016-11-02 09:47:00 +13:00
Chris Pearce c28985ad89 Bug 1314445 - Remove GMPService::GetPluginVersionForAPI. r=gerald
MozReview-Commit-ID: ybq6ZZlA9P

--HG--
extra : rebase_source : 1a8356740cbb9d73f7d851cb82f8b71c0ca364c4
2016-11-02 11:57:14 +13:00
Chris Pearce ca6cc0c8f4 Bug 1314797 - Dispatch 'gmp-changed' notification after updating GMP capabilities. r=gerald
This ensures that when requests for keysystem access in the content process
retry, they do so on an up-to-date set of capabilities.

MozReview-Commit-ID: JxmlZnFhKYs

--HG--
extra : rebase_source : 6e02777be6a0692c7e157d3ab0a1952c3017c208
2016-11-03 11:18:29 +13:00
Chris Pearce 70807a8f54 Bug 1312540 - Remove GetGMPPluginVersionForAPI IPC. r=mconley
MozReview-Commit-ID: EKtFKd1dgjJ

--HG--
extra : rebase_source : 5ebac34f9346fc76e56e070e32d948e46169c085
2016-11-01 18:48:18 +13:00
Chris Pearce 43a9f990fb Bug 1312540 - Use GMP caps cached in content process for GetPluginVersion. r=gerald
MozReview-Commit-ID: 1nDHsW527Tu

--HG--
extra : rebase_source : b3c7d8ec04b2ebb78f03b3620b2cd2498b35a1e6
2016-11-01 16:55:08 +13:00
Chris Pearce f7f660aaf4 Bug 1312540 - Simplify behaviour of GMP::GetPluginVersionForAPI. r=gerald
We only have one version of a GMP installed at once anyway. This version code
is to support Adobe Primetime, and that's disabled.

Making the behaviour of this code simpler will make it easier to have the
same behaviour of the GetGMPVersion code in e10s and non-e10s mode.

I will be removing this code soon, but I will do that in a later patch, so as
to not complicate the uplift.

MozReview-Commit-ID: 3cn7GhihWzm

--HG--
extra : rebase_source : f4e3470794a2a3dd1d97b8e78fe21df887854dc0
2016-11-01 16:36:00 +13:00
Chris Pearce 0a480d38f2 Bug 1312540 - Maintain a cache of GMPs capabilities in content processes. r=billm,gerald
In order to avoid doing a synchronous call from content process to chrome
process in order to determine what GMPs are usable, maintain a cache of GMP
capabilities in the content processes.

We must seed the cache when content processes are created, as the GMP service
is started up and GMPs are added to it before the first (or any subsequent)
content process is created.


MozReview-Commit-ID: Eb4Pu81XHmn

--HG--
extra : rebase_source : ef5de4dd17ee337ca378569691e55d4cfb7939ef
2016-11-01 16:25:19 +13:00
James Cheng 472ba25796 Bug 1313878 - Use lambda to create runnable for dispatching to main thread in GMPCDMCallbackProxy.cpp r=cpearce
MozReview-Commit-ID: 2X1oWsL29n9

--HG--
extra : rebase_source : 0f652a7449f5af13641144811dc8e1d5457242db
2016-10-30 03:48:26 +08:00
Chris Pearce f98c7aa8b5 Bug 1313202 - Convert InvalidAccessErrors coming out of the Widevine CDM to TypeErrors like Chrome does. r=gerald
MozReview-Commit-ID: FEY08LZheTf

--HG--
extra : rebase_source : e6ddc8a5f7740a5e09822ea1b16ca58b05dee919
2016-10-27 14:04:10 +13:00
Kilik Kuo 55bf555b74 Bug 1303922 - Part 2: Remove KeyStatusChanged/ForgetKeyStatus IPDL messages. r=cpearce
MozReview-Commit-ID: Flx2SQI7lM0

--HG--
extra : transplant_source : %40p%5C%C3%06%D0m%0C/%7B%0C%5B%A2%93o%F6%A1%1B%00%7D
2016-10-04 17:19:53 +08:00
Kilik Kuo 4d162fcd4a Bug 1303922 - Part 1: Make EME keystatuschanged information notified in batch. r=cpearce
MozReview-Commit-ID: IeExaQ62qTF

--HG--
extra : transplant_source : t%D4%AFxu%D6%40%F8hU%D2%94%D4q8q%EDy%08-
2016-10-04 17:18:46 +08:00
James Cheng 48efb9caad Bug 1300654 Part1-Remove MOZ_EME from code base. r=cpearce,smaug
MozReview-Commit-ID: JboGO0w4tcE

--HG--
extra : rebase_source : abfe53f30081f74fc39c900cab48d08c7574bfec
2016-09-08 18:06:20 +08:00
James Cheng 2e79d305fc Bug 1302881 - Undefined behavior in GeckoMediaPluginServiceParent::RemoveOnGMPThread(). r=cpearce
MozReview-Commit-ID: KgMYm936lbL

--HG--
extra : rebase_source : 0d1a533ef0d9aacb27f2e3ae830d61fd59e8d67f
2016-09-23 07:24:21 +08:00
Cervantes Yu a703779628 Bug 1279612 - Block xpcom-will-shutdown before GMPServiceParent instances are shut down. r=gerald
MozReview-Commit-ID: HdF1RDxVXv1

--HG--
extra : rebase_source : f532fd60bd07ab91c6e089822258a0e3d7102a7b
2016-09-08 11:08:27 +08:00