1ee6ac3ef6a80d0267a393c7ae857e16a344b334: Bug 1245256 - Add support for Widevine to CDM updater. r=spohl
Kirk Steuber <ksteuber@mozilla.com> - Thu, 25 Feb 2016 14:24:13 -0800 - rev 330623
Push 6048 by kmoir@mozilla.com at Mon, 06 Jun 2016 19:02:08 +0000
Bug 1245256 - Add support for Widevine to CDM updater. r=spohl MozReview-Commit-ID: JwB4Q6ZEqoV
0586926e98f2571103292a3f904539568a5ebeda: Bug 1245789 - Expose AsyncAddPluginDirectory on GMPServiceParent. r=gerald
Chris Pearce <cpearce@mozilla.com> - Tue, 12 Apr 2016 16:12:22 +1200 - rev 330622
Push 6048 by kmoir@mozilla.com at Mon, 06 Jun 2016 19:02:08 +0000
Bug 1245789 - Expose AsyncAddPluginDirectory on GMPServiceParent. r=gerald Now that adding GMPs to the GMP service is async under the hood, for safety the GeckoMediaPluginServiceParent needs to expose when adding a GMP has finished so that things that depend on GMPs being present can be reliable. For example, the call to GMPDecoderModule::UpdateUsableCodecs() that happens at the end of AddPluginDirectory depends on the GMPs being up to date, so it needs to happen after the add has finished. MozReview-Commit-ID: Fn8b0GNILNg
22495621ec7f160a249613dc2339862699161173: Bug 1245789 - Ensure GMP service has added all plugins before running GMP remove tests. r=gerald
Chris Pearce <cpearce@mozilla.com> - Tue, 12 Apr 2016 16:12:22 +1200 - rev 330621
Push 6048 by kmoir@mozilla.com at Mon, 06 Jun 2016 19:02:08 +0000
Bug 1245789 - Ensure GMP service has added all plugins before running GMP remove tests. r=gerald MozReview-Commit-ID: 488sYVQbS4x
fa2c4563b69d72994caefb1c6bb630cee06496a1: Bug 1245789 - Enable Widevine EME in Mozilla official builds. r=glandium
Chris Pearce <cpearce@mozilla.com> - Tue, 12 Apr 2016 16:12:22 +1200 - rev 330620
Push 6048 by kmoir@mozilla.com at Mon, 06 Jun 2016 19:02:08 +0000
Bug 1245789 - Enable Widevine EME in Mozilla official builds. r=glandium MozReview-Commit-ID: FnzaXfT23rT
554a8498061f33d36ff6d51bcfbe9786446fdb85: Bug 1245789 - Ensure GMPs have finished loading from MOZ_GMP_PATH before GMPServiceParent::GetContentParentFrom returns. r=gerald
Chris Pearce <cpearce@mozilla.com> - Tue, 12 Apr 2016 16:12:22 +1200 - rev 330619
Push 6048 by kmoir@mozilla.com at Mon, 06 Jun 2016 19:02:08 +0000
Bug 1245789 - Ensure GMPs have finished loading from MOZ_GMP_PATH before GMPServiceParent::GetContentParentFrom returns. r=gerald This means we wait for the GMP service to have finished detecting all available GMPs from the environment before we start creating GMP actors. Without this, we get gtest failures due to gtests trying to create GMP actors before the async GMPServiceParent::LoadFromEnvironment() has completed, i.e. we fail to create actors because we've not had a chance to setup the GMPParent capabilities yet. MozReview-Commit-ID: Hl4o1c4QthJ
58d63f3f7e10673aa9a921a6978777e267f31f63: Bug 1245789 - Change GMPParent::InitPromise to instead use GenericPromise as defined in MozPromise.h. r=gerald
Chris Pearce <cpearce@mozilla.com> - Tue, 12 Apr 2016 16:12:22 +1200 - rev 330618
Push 6048 by kmoir@mozilla.com at Mon, 06 Jun 2016 19:02:08 +0000
Bug 1245789 - Change GMPParent::InitPromise to instead use GenericPromise as defined in MozPromise.h. r=gerald This makes it easier to chain promises returned by GMPParent::Init() with calls to GMPServiceParent::LoadFromEnvironment() in the next patch. MozReview-Commit-ID: KdGVvzAedJW
5d1fbbad622c81ca0d1fee3964b1f3aa63213bc8: Bug 1245789 - Make XPCOMThreadWrapper::GetCurrent() work. r=bholley
Chris Pearce <cpearce@mozilla.com> - Tue, 12 Apr 2016 16:12:22 +1200 - rev 330617
Push 6048 by kmoir@mozilla.com at Mon, 06 Jun 2016 19:02:08 +0000
Bug 1245789 - Make XPCOMThreadWrapper::GetCurrent() work. r=bholley XPCOMThreadWrapper::GetCurrent() is failing because it's not keeping AbstractThread::sCurrentThreadTLS up to date. This causes assertion failures during startup of the GMP stack when dispatching via InvokeAsync to the GMP thread, which is an XPCOM thread wrapped by the XPCOMThreadWrapper. We can trivially initialize AbstractThread::sCurrentThreadTLS to be the XPCOMThreadWrapper on the target thread, since it's thread-local-storage, and the target thread won't change. MozReview-Commit-ID: EIEFZppR2PS
0b9c34023af8201c6623877db40e14fc1deafda2: Bug 1245789 - Reject MediaKeys requests for Widevine if we don't have a platform AAC decoder. r=gerald
Chris Pearce <cpearce@mozilla.com> - Tue, 12 Apr 2016 16:12:22 +1200 - rev 330616
Push 6048 by kmoir@mozilla.com at Mon, 06 Jun 2016 19:02:08 +0000
Bug 1245789 - Reject MediaKeys requests for Widevine if we don't have a platform AAC decoder. r=gerald The Widevine CDM does not have an AAC decoder. It can however decrypt audio streams. It's our policy to not decode AAC streams decrypted by the Widevine CDM with the Adobe GMP's unencrypted decoding functionality. So reject MediaKeySystemAccess requests for Widevine if we don't have a system AAC decoder that we can use. MozReview-Commit-ID: Ltq52wT1qno
e0dbbeb2ae3b14d3ef948010829138a47c2310d5: Bug 1245789 - Push detection of WMF decoding for clearkey into GMPParent to simplify request media key system access logic. r=gerald
Chris Pearce <cpearce@mozilla.com> - Tue, 12 Apr 2016 16:12:22 +1200 - rev 330615
Push 6048 by kmoir@mozilla.com at Mon, 06 Jun 2016 19:02:08 +0000
Bug 1245789 - Push detection of WMF decoding for clearkey into GMPParent to simplify request media key system access logic. r=gerald The logic in MediaKeySystemAccess is convoluted because it needs to keep checking whether we're servicing a clearkey request and whether WMF is available for gmp-clearkey to decode with. If we instead push those checks down into GMPParent at the time where we parse the GMP info file, we can just not add the decode capability to the GMPParent, and can remove the special cases in MediaKeySystemAccess. This simplifies adding the (similar) special cases for Widevine in the next patch. MozReview-Commit-ID: IKD5LU86zIv
d69c88b741832f1546d90a0a233d9cfe76dc873c: Bug 1245789 - Use ifdef MOZ_WIDEVINE_EME to prevent compilation when not enabled. r=gerald
Chris Pearce <cpearce@mozilla.com> - Tue, 12 Apr 2016 16:12:21 +1200 - rev 330614
Push 6048 by kmoir@mozilla.com at Mon, 06 Jun 2016 19:02:08 +0000
Bug 1245789 - Use ifdef MOZ_WIDEVINE_EME to prevent compilation when not enabled. r=gerald This means we won't try to build it when ac_add_options --enable-eme=widevine is not present, and critically, we won't try to build it on Android, since the Chromium Widevine plugin isn't available there. MozReview-Commit-ID: 1jQvAbJP8HG
0b14f30da67f5cba9c6f6243a0a73dc36ab08b69: Bug 1245789 - Added support for --enable-eme=widevine and expose MOZ_$(keySystem)_EME in dom/media/{eme,gmp}. r=glandium
Chris Pearce <cpearce@mozilla.com> - Fri, 26 Feb 2016 14:01:41 +1300 - rev 330613
Push 6048 by kmoir@mozilla.com at Mon, 06 Jun 2016 19:02:08 +0000
Bug 1245789 - Added support for --enable-eme=widevine and expose MOZ_$(keySystem)_EME in dom/media/{eme,gmp}. r=glandium We need to not build Widevine by default, and when enabled we will need to be able to ifdef on MOZ_WIDEVINE_EME (see next patch) so that we can not build the code on platforms where it can't possibly work (Android specifcally, as Widevine isn't available as a Chromium plugin there). MozReview-Commit-ID: Avgz5NRcl9v
b4e76b374690de4baf1c6ece8acc13a995faadac: Bug 1245789 - Ensure Widevine's nodeId are always unique and not permitted persistent storage. r=gerald
Chris Pearce <cpearce@mozilla.com> - Tue, 12 Apr 2016 16:12:21 +1200 - rev 330612
Push 6048 by kmoir@mozilla.com at Mon, 06 Jun 2016 19:02:08 +0000
Bug 1245789 - Ensure Widevine's nodeId are always unique and not permitted persistent storage. r=gerald This ensures that we don't try to use one GMP instance to service multiple same-origin MediaKeys' CDM access, as the Widevine CDM's Chromium interface is synchronous, so it doesn't handle running multiple decoders well. Multiple same-origin GMPs can't safely use the same storage concurrently, but thankfully Widevine doesn't require persistent storage, so we can just disallow that entirely and avoid the problem. MozReview-Commit-ID: 78I4IIGgHRA
b8fb2ac78142ad28d90a9cc9fbc590aac6824527: Bug 1245789 - Whitelist functions needed by Widevine CDM in GMP child processes. r=jed
Chris Pearce <cpearce@mozilla.com> - Tue, 12 Apr 2016 16:12:21 +1200 - rev 330611
Push 6048 by kmoir@mozilla.com at Mon, 06 Jun 2016 19:02:08 +0000
Bug 1245789 - Whitelist functions needed by Widevine CDM in GMP child processes. r=jed MozReview-Commit-ID: C6bpItv1qpi
e46009d07dbc6195f2762717e52ddeea5218cc24: Bug 1245789 - Send name of GMPAdapter over to GMP process in StartPlugin message. r=gerald
Chris Pearce <cpearce@mozilla.com> - Tue, 12 Apr 2016 16:12:21 +1200 - rev 330610
Push 6048 by kmoir@mozilla.com at Mon, 06 Jun 2016 19:02:08 +0000
Bug 1245789 - Send name of GMPAdapter over to GMP process in StartPlugin message. r=gerald This lets the GMPChild know whether it needs to instantiate the WidevineAdapter. MozReview-Commit-ID: 5X6IrRZPHdu
82dd58ddc0e6c0ab0549c34ced000b4423485a70: Bug 1245789 - Parse Chrome CDM manifest in GMPService.addPluginDir. r=gerald
Chris Pearce <cpearce@mozilla.com> - Tue, 12 Apr 2016 16:12:21 +1200 - rev 330609
Push 6048 by kmoir@mozilla.com at Mon, 06 Jun 2016 19:02:08 +0000
Bug 1245789 - Parse Chrome CDM manifest in GMPService.addPluginDir. r=gerald This has to happen on the main thread, as WebIDL parsing only happens there. So it has to be async. MozReview-Commit-ID: AfAoSkQAhl3
40d6d4f042f9f819fabb0467068eab9d834a9fd7: Bug 1245789 - Store GMPCapabilities by value, rather than on the heap. r=gerald
Chris Pearce <cpearce@mozilla.com> - Tue, 12 Apr 2016 16:12:21 +1200 - rev 330608
Push 6048 by kmoir@mozilla.com at Mon, 06 Jun 2016 19:02:08 +0000
Bug 1245789 - Store GMPCapabilities by value, rather than on the heap. r=gerald MozReview-Commit-ID: 6B2IpUEqHlQ
c79eac7ebbb8ef35191e0dfea69170b75fb133f7: Bug 1245789 - Make GMPParent::Init() return a promise, so it can be async. r=gerald
Chris Pearce <cpearce@mozilla.com> - Tue, 12 Apr 2016 16:12:21 +1200 - rev 330607
Push 6048 by kmoir@mozilla.com at Mon, 06 Jun 2016 19:02:08 +0000
Bug 1245789 - Make GMPParent::Init() return a promise, so it can be async. r=gerald This means that when initializing the Widevine CDM, we will be able to asynchronously parse its manifest.json on the main thread, as the WebIDL JSON parser only runs there. MozReview-Commit-ID: GI1sc4x4m16
a0bb8c572bcc4d543f79e71eca8b03a07b1180b2: Bug 1245789 - Add abstract thread wrapper for the GMP thread. r=gerald
Chris Pearce <cpearce@mozilla.com> - Tue, 12 Apr 2016 16:12:20 +1200 - rev 330606
Push 6048 by kmoir@mozilla.com at Mon, 06 Jun 2016 19:02:08 +0000
Bug 1245789 - Add abstract thread wrapper for the GMP thread. r=gerald I need to make GMPParent::Init() async, because the WebIDL JSON parsing must happen on the main thread, and GMPParent::Init() is called on the GMP thread, so I need GMPParent::Init() to be async so that in the Chrome manifest case it can dispatch a task to the main thread to parse the Chrome manifest before completing. So I'll make GMPParent::Init() return a promise, and to do that, I need the GMP thread to have an AbstractThread wrapper. MozReview-Commit-ID: 44b4Z4jpar8
eaecc891ddcd8a536a8456b8951b45dc0b9c752c: Bug 1245789 - Add WebIDL dict definition for Widevine manifest JSON file. r=bz
Chris Pearce <cpearce@mozilla.com> - Tue, 12 Apr 2016 16:12:20 +1200 - rev 330605
Push 6048 by kmoir@mozilla.com at Mon, 06 Jun 2016 19:02:08 +0000
Bug 1245789 - Add WebIDL dict definition for Widevine manifest JSON file. r=bz The Widevine CDM has an accompanying manifest file which is in JSON format, so I use this WebIDL dict to parse the manifest file in a later patch in this series. MozReview-Commit-ID: EoPSEciHVKh
f8602e536671b8724251c0e2e39bf7338b4b3562: Bug 1245789 - Add Widevine CDM -> GMP adapter. r=gerald
Chris Pearce <cpearce@mozilla.com> - Tue, 12 Apr 2016 16:12:20 +1200 - rev 330604
Push 6048 by kmoir@mozilla.com at Mon, 06 Jun 2016 19:02:08 +0000
Bug 1245789 - Add Widevine CDM -> GMP adapter. r=gerald Add a GMPAdapter implementation that adapts the Widevine Chrome CDM to the GeckoMediaPlugin API. We're still allocating memory for video frames in non shmem buffers, and copying them over to a shmem before returning them to Gecko, we can fix that at a later date. I hook this adapter up in a later patch in the series. MozReview-Commit-ID: 7iSFODVWPu3
(0) -300000 -100000 -30000 -10000 -3000 -1000 -300 -100 -50 -20 +20 +50 +100 +300 +1000 +3000 +10000 +30000 +100000 tip