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

589 Коммитов

Автор SHA1 Сообщение Дата
Mats Palmgren a25ec1d6dc Bug 1280743 - Put Widevine stuff under #ifdef MOZ_EME to make this file compile under --disable-eme. r=cpearce 2016-06-21 13:23:29 +02:00
Jonathan Watt b15368cfcb Bug 1279451 - Remove a lot of unnecessary includes of nsAutoPtr.h. rs=sparky 2016-06-07 21:10:18 +01:00
Chris Pearce 191e25eeb7 Bug 1276132 - Make more Widevine class constructors explicit to keep gcc happy. r=jwwang
Fixes compile errors on Linux when Widevine is compiled.

MozReview-Commit-ID: 19qQw02CqdQ

--HG--
extra : rebase_source : 335124655869da1f899986f7dcd0d7ec1e441f6a
2016-05-31 12:05:24 +12:00
Chris Pearce 91ab2bc0c4 Bug 1276132 - Remove use of #ifdef MOZ_{KEYSYSTEM}_EME in dom/media code. r=jwwang
Instead of controlling visibility of EME keysystems by build config, do it by
preference. This means keysystems can be turned on easier.


MozReview-Commit-ID: Ky1zrHPubOJ

--HG--
extra : rebase_source : 35d9c26436a86683b902225e7b0d6645b02d8ff9
2016-05-31 11:00:55 +12:00
Phil Ringnalda 7270ed519a Back out 4 changesets (bug 1276132) for browser_gmpProvider.js failures
CLOSED TREE

Backed out changeset 511a2389ca48 (bug 1276132)
Backed out changeset 91b3cdd0640a (bug 1276132)
Backed out changeset 09b9972e36f9 (bug 1276132)
Backed out changeset 69052d4e3dbb (bug 1276132)
2016-06-08 20:36:22 -07:00
Chris Pearce 57fa470692 Bug 1276132 - Make more Widevine class constructors explicit to keep gcc happy. r=jwwang
Fixes compile errors on Linux when Widevine is compiled.

MozReview-Commit-ID: 19qQw02CqdQ

--HG--
extra : rebase_source : ebb98b25738e0438d873834f07c72be1f4eb71db
2016-05-31 12:05:24 +12:00
Chris Pearce 64f7e2a1c9 Bug 1276132 - Remove use of #ifdef MOZ_{KEYSYSTEM}_EME in dom/media code. r=jwwang
Instead of controlling visibility of EME keysystems by build config, do it by
preference. This means keysystems can be turned on easier.


MozReview-Commit-ID: Ky1zrHPubOJ

--HG--
extra : rebase_source : 7d68ad8389afdac8fcfffd2c505f8467107c05a5
2016-05-31 11:00:55 +12:00
Chris Peterson 11ef78ae89 Bug 1275016 - Rename Endian.h to EndianUtils.h to avoid #include confusion with Android's endian.h stdlib header. r=froydnj
--HG--
rename : mfbt/Endian.h => mfbt/EndianUtils.h
2016-05-22 13:31:11 -07:00
Bill McCloskey 291c555f34 Bug 1262671 - void** -> PickleIterator (r=froydnj) 2016-05-27 09:57:38 -07:00
Chris Pearce a7ee9fee8a Bug 1271169 - Move all device binding code into librlz and remove static runtime requirement. r=glandium
I want the EME device binding/nodeId code to be callable from gtests, as well
as in plugin-container. I need this because I want to add a gtest that ensures
that we don't regress the EME/GMP device binding code. I want to call the GMP
device binding code in the gtest and in the GMP process, and compare the
result.

So we need to make it possible to link the device binding code into the gtests
as well as plugin-container. So move all code that device binding calls into
librlz, to make it easier to link against all the code required.

Note: the device binding code needs to be statically linked into
plugin-container so that it's covered by the Adobe CDM's voucher tool.


MozReview-Commit-ID: AvBAe1dh49Z

--HG--
rename : ipc/app/sha256.c => dom/media/gmp/rlz/sha256.c
rename : ipc/app/sha256.h => dom/media/gmp/rlz/sha256.h
extra : rebase_source : f60f1e68649fa90cbe1f2fe09f5f69948444b1df
2016-05-20 16:11:29 +12:00
Chris Pearce 9c711e8fb4 Bug 1271169 - Move EME/GMP device binding code into GMPDeviceBinding.h/cpp. r=gerald
I want the EME device binding/nodeId code to be callable from gtests, as well
as from in plugin-container.

First step is to move the device binding code into a discrete file, so I can
also link that into gtests, and call it from there to compare the result with
what's in the GMP process.

MozReview-Commit-ID: 9xT2rp3hWW

--HG--
extra : rebase_source : 824c7a9841bce83c438decad48ce210f6c2a5571
2016-05-11 19:56:42 +12:00
Bob Owen c43bf02cda Bug 1035125 Part 8: Pass sandboxing pointers through XRE_InitChildProcess instead of linking to more functions in xul. r=aklotz,glandium
MozReview-Commit-ID: 5AiktOArpfU

--HG--
extra : rebase_source : 1ba3be949e2bfeb3b67687ab05d43342852ab764
2016-05-15 16:35:22 +01:00
Bob Owen 71b3258726 Bug 1035125 Part 4: Back out changeset 8ae39d920f5c and associated subsequent changes. r=glandium
The original changeset that is being backed out had comment:
Bug 1023941 - Part 2: Static-link the CRT into plugin-container.exe.

MozReview-Commit-ID: 1iPJghgd0t2

--HG--
extra : rebase_source : cbed4e43f51af8ea0c3adbfc150ed029fe0d0f57
2016-05-15 16:23:57 +01:00
Chris Pearce b4b5bfb254 Bug 1270689 - Clear WidevineDecryptor::mCallback in WidevineDecryptor::DecryptingComplete(). r=gerald
The OnSessionClosed() callback is happening on a timer, after
WidevineDecryptor::DecryptingComplete() has been called. So mCallback could
actually be non-null because DecryptingComplete() has been called, but the
object pointed to by mCallback has been deallocated, and mCallback is a
dangling pointer.

MozReview-Commit-ID: 4xdHYRn7EAS

--HG--
extra : source : 55d79997aa3e3e2133d9155c37f4435317b44061
2016-05-16 14:34:20 +12:00
Chris Peterson 353ee65255 Bug 1272513 - Part 1: Suppress -Wshadow warnings-as-errors in some directories. r=glandium 2016-05-11 00:00:01 -07:00
Kyle Huey c8143d07d7 Bug 1272415: Don't include task.h everywhere. r=froydnj 2016-05-12 15:15:43 -07:00
Jean-Yves Avenard d31cb0499b Bug 1206637: P2. Replace all cached preferences with MediaPrefs ones. r=cpearce
Additionally, clean up stray and unused Preferences.h header.

MozReview-Commit-ID: IcPrD2inkDE

--HG--
extra : rebase_source : c3c6e37767627db3601090c2855a3dfa98cb4368
2016-05-10 11:02:28 +10:00
Chris Pearce 46a1552995 Bug 1271242 - Remove GMPDecryptorCallback::SetCapabilities(). r=jwwang
Now that GMPParent detects whether gmp-clearkey can decode using AAC/H.264
using WMF before reporting gmp-clearkey's GMPParent can decode AAC/H.264, we
don't need the GMPDecryptorCallback::SetCapabilities() callback from the GMP to
signal to the PDMFactory that the GMP can decode. We can now trust what the
GMPService tells us.

So we can remove the "waiting for CDM caps" step in the state machine's startup
sequence. And all the plumbing. :)

If we need more caps, like for an decode-and-render path, we can declare those
as API strings in the info file.


MozReview-Commit-ID: E0QhU4cYhjo

--HG--
extra : rebase_source : 7d15ab6a45bac88c15c053f416d941b5fe0807b0
2016-05-10 10:28:38 +12:00
Chris Pearce 817b6c705e Bug 1270689 - Null-check WidevineDecryptor::mCallback before use. r=gerald
We've observed some crashes derefing the callback pointer, which may be
occuring due to shutdown happening before init has setup the callback pointer.

MozReview-Commit-ID: JsOqfjejMVI

--HG--
extra : rebase_source : e175dd8556ad50316bc16232782e593eea3e2ec8
2016-05-09 14:21:26 +12:00
Gerald Squelart a147091776 Bug 1268434 - Mutex-protect and check GMP abstract thread before uses - c?cpearce r=cpearce
GeckoMediaPluginService::mAbstractThread was not reset as expected from
ShutdownGMPThread, meaning it would retain a reference to the GMP thread, and
it would allow dispatch attempts to the GMP thread after shutdown.

Also mAbstractThread was not protected by a mutex (as mGMPThread was), which is
definitely needed now that it can be reset at shutdown time.

As its prefix implies, GetAbstractThread could return a nullptr, so it should
be checked before every use.
Note that this GetAbstractThread call (and its check) has been moved closer to
the start of functions using it, to avoid unnecessary and potentially invariant-
breaking partial work to take place when we can know in advance that it won't
fully succeed because the GMP thread is not available.

MozReview-Commit-ID: B1drOeM65hr

--HG--
extra : rebase_source : 1d389c663e26a25035bf2aa22b2cca478ef954fe
2016-05-06 21:36:22 +10:00
Chris Pearce eddc1e9562 Bug 1270968 - Add mechanism to clear GMP storage when its version changes. r=gerald
In bug 1264497 we discovered that Netflix was broken because we'd made a change
to not send the Adobe GMP the device bound nodeId, which it stored in GMP
storage. When the GMP was comparing the nodeId it had stored against what it was
passed (nothing) the comparison was failing. Users could have worked around this
problem by clearing their GMP storage, whereupon the Adobe GMP will have stored
"nothing" as its nodeId.

When bug 1264497 was fixed, users who'd cleared their storage will see Netflix
fail again, as their stored nodeId of "nothing" will again not match what we
pass in. So to fix Netflix for these users, we need to clear GMP storage.

This is another instance of a more general problem that we have occasionally
encountered, namely that sometimes GMP storage becomes incompatible, and we
need to clear it. Having a general mechanism that we can use to clear storage
remotely will be helpful, so this patch adds one, and triggers it to fire.

This mechanism is pref controlled, so that we can issue a hotfix if necessary
to clear GMP storage.


MozReview-Commit-ID: GzSyBj0P2JG

--HG--
extra : rebase_source : b854860ee533b0742a664c862278ce54c9052596
2016-05-07 09:19:15 +12:00
Chris Pearce d0c07d0732 Bug 1264497 - Call GMPSetNodeId in GMPLoader. r=gerald
MozReview-Commit-ID: I6BApLKpjPS

--HG--
extra : rebase_source : de79801f0a0e295725c6bc8b8a99fe7022323956
2016-05-06 14:49:12 +12:00
Gerald Squelart a2b3ad3b63 Bug 1266336 - Clarify expected usage of CDM wrapper - r=cpearce
Assert that the CDM wrapper is given a non-null CDM pointer.
(so GetCDM() doesn't need to be null-checked.)
Renamed WidevineVideoDecoder mCDM to mCDMWrapper, to avoid (my) confusion.
Assert that WidevineVideoDecoder is given a non-null CDM-wrapper pointer.
Assert that WidevineVideoDecoder only accesses the CDM before DecodingComplete.

Small optimization: Move aCDM into mCDM (to save an AddRef/Release pair).

MozReview-Commit-ID: yKupY067ly

--HG--
extra : rebase_source : 94140b423a04f28368de0831761406c145fad93e
2016-05-06 12:10:59 +10:00
Gerald Squelart bb3afc2867 Bug 1266336 - Check actual CDM creation - r=cpearce
Check the return result from Widevine's CDM creation function, and handle
failure.

MozReview-Commit-ID: HYvKgdK53aQ

--HG--
extra : rebase_source : b3e28ba5e0020e3a6dd77c8a83b58be233fdc770
2016-05-05 12:04:07 +10:00
Gerald Squelart 7a14964bfb Bug 1266336 - Check sCDMWrapper before creating video decoder - r=cpearce
Ensure that there is a CDM before creating a video decoder that relies on that
CDM. This is mainly to prevent using the Widevine video decoder alone, without
decryption.

MozReview-Commit-ID: 7p49CnmV2r7

--HG--
extra : rebase_source : 49b07100b2be56584bc14f41d39d4872f0539c3a
2016-05-05 11:37:22 +10:00
Chris Pearce faee3cba4f Bug 1268984 - Prefer to re-use a GMPParent with the requested nodeId rather than clone. r=jesup
If you request a GMPParent with a nodeId, you should get any already running
instances with the same nodeId in preference to cloning an existing GMP and
assigning it the nodeId.

This is ensures that EME GMP actors that are same-origin run in the same GMP
instance.

The GMP gtests are failing because of the cross-origin checks in
GeckoMediaPluginServiceParent::SelectPluginForAPI(). The loop there selects the
first GMPParent that can be used from the nodeId passed in. We previously
assumed a GMPParent can be used from a nodeId if the GMPParent has the same
nodeId, or if it has not loaded its process and it has no nodeId. The problem
with assuming that, is if an in-use GMPParent with the target nodeId lies in
the GeckoMediaPluginServiceParent::mPlugins list after a GMPParent with no
nodeId, we'll end up using the first GMPParent (the one with no nodeId) rather
than the one with the target nodeId.

The solution is to change GeckoMediaPluginServiceParent::SelectPluginForAPI()
so that effectively if we have a target nodeId, we'll select the first
GMPParent that has the same nodeId, or we'll clone the first which supported
all the requested capabilities/tags.

This means when you request a GMPParent with a given nodeId, you'll get the one
with the same nodeId (origin) by preference.

MozReview-Commit-ID: 4yVnrO8B1Pg

--HG--
extra : rebase_source : 5db7c6ef5f360df7d2244ca828b68b340c4e9a41
2016-05-05 22:35:44 +12:00
Chris Pearce ad956f902f Bug 1268984 - Store GMPStorage on GMPServiceParent so that it persists inside the same PB session. r=gerald
Prior to this change, we'd store the GMPStorage records for private browsing
sessions in the GMPStorageParent. The problem with this is that they only have
a lifespan matching their corresponding GMPParent. This means that if a GMP
stores something in a PB session, and the GMP is shutdown and then re-created,
we are likely to loose the stored data. This could mean that the PB session
gets results it doesn't expect, and thus expose a way for PB mode to be
detected.


MozReview-Commit-ID: 1OMD0LvidYs

--HG--
extra : rebase_source : 75661a7b1717e39a29c3e12ad203d9273e8485ab
2016-05-05 11:41:33 +12:00
Chris Pearce cc6122ebd1 Bug 1268984 - Ensure GMPs are re-inserted in GMPServiceParent::mPlugins in the same order in ReAddOnGMPThread. r=gerald,jesup
The GMP which GeckoMediaPluginServiceParent::FindPluginForAPIFrom() returns
depends on the order in which GMPs lie in GMPServiceParent::mPlugins. However
when we shutdown a GMPParent we remove and then re-append the GMPParent to
mPlugins. This means the order in which GMPs lie in the list changes.

So when WebRTC requests an H.264 decoder, the first time it will get OpenH264,
since that's first in the list. But once we dispose of that decoder, its
GMPParent will be cloned and the clone will be appended to the end of the
list. This means the next time WebRTC requests a decoder, it'll get whatever
was next in the list.

This could be the Adobe GMP, which seems to be able to handle whatever WebRTC
is putting into it. However, if you do this enough times, you'll get the
Widevine CDM, which can't handle whatever WebRTC is putting into it.

So a quick hack to fix this is in ReAddOnGMPThread is to re-insert the clone
of the GMP into the slot in mPlugins that the original occupied. Then WebRTC
will always get OpenH264 whenever it requests for an H.264 decoder, as the
order of the GMPParents in mPlugins won't change.




MozReview-Commit-ID: Ii4AMqDqAo9

--HG--
extra : rebase_source : 62c10bc5b77ef259917aa6c88309be2423c93914
2016-05-04 13:57:20 +12:00
Chris Pearce 645ef4e747 Bug 1266286 - Ensure crash reports work for GMP used by EME code. r=mconley
Crash reporting for GMPs being used from the EME call site are not generating
crash reports because they depend on the MediaKeys object calling
GMPService::AddPluginCrashHandler() to associate a window to which the
PluginCrashedEvent is fired. This doesn't work with e10s enabled because the
GMPParent which causes the plugin crash handlers to run is in the chrome
process, but the MediaKeys which adds the handler is in the child process. So
the crash handler is on the GMPServiceChild, but we only run the crash handlers
that were added to the GMPServiceParent in the chrome/parent process.

The solution is to broadcast a message from the chrome process to all the
content processes when a GMP has crashed that causes the GMPServiceChild to
also run its crash handlers.

MozReview-Commit-ID: 8Lek16G9ZGb

--HG--
extra : rebase_source : 180691046812df474ea33324d2b98ac71d11c9cd
2016-05-04 20:32:00 -04:00
Kyle Huey 941ab1f522 Bug 1268313: Part 7 - Move NS_NewRunnableMethod and friends to mozilla::NewRunnableMethod. r=froydnj 2016-05-05 01:45:00 -07:00
Kyle Huey 44cee0989e Bug 1268313: Part 6 - Replace NewRunnableMethod with NS_NewRunnableMethod. r=froydnj 2016-05-05 01:45:00 -07:00
Kyle Huey 7311b10562 Bug 1268313: Part 2 - Replace some NewRunnableMethods with NS_NewNonOwningRunnableMethod. r=froydnj 2016-05-05 01:44:59 -07:00
Gerald Squelart 40a8d30e46 Bug 1268379 - Delay WMF checks in GMPParent - r=jesup
The WMF HasAAC/HasH264 checks were done off the main thread, as soon as the
plugin was loaded, which was way too soon in the overall startup process, when
the WMF subsystem may not have been properly initialized yet, or may be in the
middle of it.

The solution here is to delay these checks until they are actually needed to
respond to a format-support request, as they come later in the process.

Note: This may not be the ideal solution yet, as we are still relying on some
magic sequencing of events. Other avenues have been explored unsuccessfully
yet, but we may want to revisit this issue after this urgent patch has landed.

MozReview-Commit-ID: JVgINc5FLFx

--HG--
extra : rebase_source : 3d02570ed26043d050d4848d968e3c673b35f5c3
2016-05-02 15:03:11 +10:00
JW Wang 6197796b59 Bug 1268822 - rename mozilla::gmp::Runnable/SyncRunnable in order not to confuse NS_LOG_ADDREF/NS_LOG_RELEASE. r=rjesup. 2016-05-03 10:37:24 +08:00
Haik Aftandilian 01b38f360c Bug 1267453 - Amazon Widevine rejects HDCP on MacBook Pro with or without an external display. r=gcp
--HG--
extra : amend_source : 6a8094ddea6ac6c50e8ec8c11e0656eaddafc20e
2016-05-02 19:33:08 +02:00
Jim Mathies fa8be62cee Bug 1268714 - Check for failure result or a failed nsresult from SendLoadGMP. r=mccr8
MozReview-Commit-ID: 9bE9hfXiBI5
2016-04-29 13:24:30 -05:00
Carsten "Tomcat" Book dfff02b90d Backed out changeset fd833da413ad (bug 1268313)
--HG--
extra : rebase_source : f857127091900871034f44d89095895abe9932dc
2016-04-29 14:21:25 +02:00
Carsten "Tomcat" Book de92769e7e Backed out changeset 4bcb784492bb (bug 1268313)
--HG--
extra : rebase_source : f2f752ab73f5bbf31a909892a0fac0f42c894430
2016-04-29 14:21:18 +02:00
Carsten "Tomcat" Book ba3fe0975c Backed out changeset 85ce8cb0639a (bug 1268313)
--HG--
extra : rebase_source : 56d1cf41a2dc4959b67f834e07192a5c772176a8
2016-04-29 14:21:16 +02:00
Kyle Huey 48a594a09e Bug 1268313: Part 7 - Move NS_NewRunnableMethod and friends to mozilla::NewRunnableMethod. r=froydnj 2016-04-28 14:08:25 -07:00
Kyle Huey 12d497cb39 Bug 1268313: Part 6 - Replace NewRunnableMethod with NS_NewRunnableMethod. r=froydnj 2016-04-28 14:08:24 -07:00
Kyle Huey 72c9966484 Bug 1268313: Part 2 - Replace some NewRunnableMethods with NS_NewNonOwningRunnableMethod. r=froydnj 2016-04-28 14:08:24 -07:00
Kyle Huey 7579799b01 Bug 1266595: Replace Chromium Task with Runnable. r=froydnj 2016-04-27 17:06:05 -07:00
Jim Mathies 86d8f2f66f Bug 1263951 - Avoid trying to initialize new GMP instances once the browser enters shutdown. r=cpearce
MozReview-Commit-ID: G6ND2LyT0tp
2016-04-26 12:11:26 -05:00
Kyle Huey c73656947b Bug 1265927: Move nsRunnable to mozilla::Runnable, CancelableRunnable to mozilla::CancelableRunnable. r=froydnj 2016-04-25 17:23:21 -07:00
Peter Chang b9897cc163 Bug 1263499 - unify the QuickExit function, r=bsmedberg
MozReview-Commit-ID: DGJbyXULHPe

--HG--
extra : rebase_source : 26ad1fdc609060a578a27f3d44168160ec026c09
2016-04-11 16:12:33 +08:00
Chris Pearce 753e89fc45 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
2016-04-12 16:12:22 +12:00
Chris Pearce 1286c752d4 Bug 1245789 - Ensure GMP service has added all plugins before running GMP remove tests. r=gerald
MozReview-Commit-ID: 488sYVQbS4x
2016-04-12 16:12:22 +12:00
Chris Pearce 4038e1e9d9 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
2016-04-12 16:12:22 +12:00
Chris Pearce c96ec15fb4 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
2016-04-12 16:12:22 +12:00
Chris Pearce 4eaf999528 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
2016-04-12 16:12:22 +12:00
Chris Pearce a7ef15b6b8 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
2016-04-12 16:12:22 +12:00
Chris Pearce 2c831f28f4 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
2016-04-12 16:12:22 +12:00
Chris Pearce 1fbf846737 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
2016-04-12 16:12:21 +12:00
Chris Pearce 581bf9fd48 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
2016-02-26 14:01:41 +13:00
Chris Pearce da09cd13c1 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
2016-04-12 16:12:21 +12:00
Chris Pearce f744c99d0c 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
2016-04-12 16:12:21 +12:00
Chris Pearce c4ed00c030 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
2016-04-12 16:12:21 +12:00
Chris Pearce 446a1fe1c6 Bug 1245789 - Store GMPCapabilities by value, rather than on the heap. r=gerald
MozReview-Commit-ID: 6B2IpUEqHlQ
2016-04-12 16:12:21 +12:00
Chris Pearce 694f3fc693 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
2016-04-12 16:12:21 +12:00
Chris Pearce 67f4ed3368 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
2016-04-12 16:12:20 +12:00
Chris Pearce 1a971257c4 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
2016-04-12 16:12:20 +12:00
Chris Pearce f706b0c753 Bug 1245789 - Add GMPAdapter which can be passed to GMPLoader to adapt non GMP library to GMP API. r=gerald
This means we can pass a non GMP library to GMPLoader::Load() and the adapter will make it usable.


MozReview-Commit-ID: GihjX2JRw3l
2016-04-12 16:12:20 +12:00
Chris Pearce 2a0d4dd3a3 Bug 1245789 - Handle unencrypted samples in encrypted media. r=gerald
Some encrypted MP4 files lack subsample info for some samples, so we need this check
to prevent us crashing on such files.

MozReview-Commit-ID: AXqOCAlb7IY
2016-04-12 16:12:20 +12:00
George Wright e75c590407 Revert "Bug 1114647 - Rename "plugin-container" to "firefox-webcontent" and create a new executable target for Win32 called "firefox-plugin-container" r=ted,jhamer" because of widespread breakage due to whitelisted executable names in third parties
This reverts commit a94b5f861bd0d25043a3bb7a0c3128acf8c0b93a.


--HG--
rename : ipc/contentproc/firefox-webcontent.cpp => ipc/contentproc/plugin-container.cpp
2016-04-08 13:34:40 -04:00
Nathan Froyd bb79683a51 Bug 1262473 - don't needlessly construct nsAutoCString temporaries when serializing GMPVideoCodec; r=cpearce
We have nsDependentCString to avoid needless memory traffic here.  We
need an explicit cast, however, because we don't have a ParamTraits
specialization for nsDependentCString, only for nsCString, and template
specialization doesn't take derived classes into account.
2016-03-31 15:19:38 -04:00
George Wright 5c454494ce Bug 1114647 - Rename "plugin-container" to "firefox-webcontent" and create a new executable target for Win32 called "firefox-plugin-container" r=ted,jhamer
--HG--
rename : ipc/app/module.ver => ipc/app/plugin-container/module.ver
rename : ipc/contentproc/plugin-container.cpp => ipc/contentproc/firefox-webcontent.cpp
2016-04-01 02:12:59 -04:00
Kyle Huey d9265a3eaf Bug 1259294: Part 2 - Use MOZ_ALWAYS_SUCCEEDS. r=froydnj 2016-03-28 10:28:15 -07:00
Kyle Huey 20daca1a98 Bug 1258905: Remove a bunch of dead IPC code. r=jld 2016-03-28 10:28:14 -07:00
Chris Pearce 921ff0472b Bug 1258220 - Disable Adobe GMP if SSE2 isn't supported. r=gerald 2016-03-25 07:56:47 +13:00
Jean-Yves Avenard 52fb6b83da Bug 1249275: Fix mac compilation when sandbox is disabled. r=gerald
MozReview-Commit-ID: D1Xc0Ujnm74
2016-02-28 01:36:02 +11:00
Chris Pearce d681b4c0f7 Bug 1250745 - Share GMP processes when doing unencrypted decoding. r=jwwang
But make sure that there's no way a GMP can track and report what a user watches using unencrypted decoding.


MozReview-Commit-ID: DljjYjcziRS

--HG--
extra : rebase_source : 1c4204ff69df0ed03015c069736831e5f8b35a29
2016-02-24 14:38:56 +13:00
Chris Pearce 173de1feeb Bug 1249424 - Remove use of nsAutoArrayPtr from librlz. r=gerald
MozReview-Commit-ID: 2eXvcgbSQM0

--HG--
extra : rebase_source : 0397373e89a73972512d6d8178105c5ce57100a6
2016-02-24 10:53:10 +13:00
Chris Pearce 1db0b39f51 Bug 1247763 - Remove info file parsing from GMP child process. r=gerald
The only reason we need to parse the info file in the GMP child process
is because we need to read the "Libs:" line so that the child process
can preload DLLs on Windows. We already parse the GMP info file in the
parent process, so we can remove the need to parse it again if we parse
the "Libs" field in the parent, and pass that through to the child.
2016-02-24 07:21:47 +13:00
Aidin Gharibnavaz 6863090c8a Bug 1235830 - Renaming GetInternalNSEvent to WidgetEvent, in nsIDOMEvent r=smaug
MozReview-Commit-ID: Hm8Owq17KXn

--HG--
extra : transplant_source : 2%82%D5%89%19%94%7C%E7%CA1%99%B5%24%1F5%E1%C0%1F%DE%07
2016-02-12 19:10:07 +03:30
Chris Pearce ba52b24d0b Bug 1247556 - Use GMPInfoFileParser in GMPParent::ReadGMPMetaData(). r=gerald 2016-02-12 10:59:51 +13:00
Chris Pearce c098d0e875 Bug 1246835 - Reduce #ifdefs pain in GMPChild.cpp. r=gerald 2016-02-10 15:48:45 +13:00
Bob Owen 61758e667a Bug 1236680 Part 3: Add #ifs to include to fix bustage. r=me 2016-02-09 15:35:44 +00:00
Bob Owen fdc9ac4e02 Bug 1236680 Part 2: Resolve GMP path for moved Users folder. r=cpearce 2016-02-09 15:22:43 +00:00
Carsten "Tomcat" Book c72c544acd Backed out changeset c0b8f05a48d5 (bug 1246835) for bustage on a CLOSED TREE 2016-02-09 08:47:38 +01:00
Chris Pearce d5820bea46 Bug 1246835 - Reduce #ifdefs pain in GMPChild.cpp. r=gerald 2016-02-09 14:44:16 +13:00
Chris Pearce 66f7fa299a Bug 1246763 - Refactor GMP info file parsing into helper class. r=gerald 2016-02-09 14:37:22 +13: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
Bill McCloskey c663839ade Bug 1240871 - Don't allow implicit "async" in IPDL (r=mccr8,billm) 2016-01-28 20:56:37 -08:00
Jean-Yves Avenard a9394d5946 Bug 1240411: P5. Clean up GMP headers. r=cpearce
Remove redundant virtual keywords
2016-01-19 19:47:32 +11:00
Chris Pearce 30838a05fa Bug 1230857 - Ensure GMPService has sufficient file permissions to delete GMPs. r=gerald
Without this, existing installs of the Adobe x64 Windows GMP from the zip file
where the GMP files are read-only will not be able to be installed.

--HG--
extra : rebase_source : 21ac7b0e4c55cc26e17f05563f61bdce65117507
2016-01-14 15:11:04 +13:00
Gerald Squelart 124e39b2ba Bug 1237842 - Unlock mMutex before calling CloseActive. r=cpearce
UnloadPlugins runs in the GMP thread. While it locks mMutex, any locking
attempt on the main thread would effectively block the main thread while we are
calling CloseActive on each plugin.
The problem is that CloseActive calls GeckoMediaServiceParent::GetSingleton(),
which dispatches a task to the main thread, which may be blocked because of
mMutex.

To solve this inter-locking issue, the list of plugins is first copied to a
local array, after which mMutex may be released, and we may now call
CloseActive without risking locking.
2016-01-12 21:22:00 +01:00
Nicholas Nethercote 524b34adf6 Bug 1237151 (part 1) - Remove ignored qualifiers in dom/media/gmp/. r=cpearce.
--HG--
extra : rebase_source : a4934ff402b3402731d6070d36dd713368d09a1f
2016-01-07 15:43:37 -08:00
Gerald Squelart 74d744c943 Bug 1236380 - GMPStorage::mShutdown=true until Init() succeeds - r=cpearce
Initialize GMPStorage::mShutdown to true, so that if Init() has not completed
yet or if it failed, other methods will not try and access a null mStorage.
2016-01-07 08:06:47 +11:00
Randell Jesup f955d91200 Bug 1226200: Don't assume a TCPSocket has only one managee (and rename LoneManagedOrNull) r=jdm 2015-12-22 10:14:23 -05:00
Chris Pearce f212540c95 Bug 1232527 - Remove GMPVideoDecoderTrialCreator and friends. r=jwwang
Remove GMPVideoDecoderTrialCreator, and the tests and IPC/IDL supporting it.

--HG--
extra : commitid : HlbJPl2gPAl
extra : rebase_source : fe1773014e5d09da264f85d464e408aca46a60c4
2015-12-15 15:17:22 +13:00
Gerald Squelart 840a670aa1 Bug 1183972 - No sync-dispatch of new GMPParent - r=cpearce
Thanks to bug 1121676, GMPParent does not need to be created and destroyed
on the main thread. Main-thread constraints have been removed.

Also, this means that GeckoMediaPluginServiceParent::ClonePlugin() and
AddOnGMPThread (running on the GMP thread) do not need to sync-dispatch the
creation on the main thread.
This should remove the deadlock that prevents
GeckoMediaPluginServiceParent::UnloadPlugins() from running on the GMP thread.
2015-12-13 14:26:00 +01:00
Nathan Froyd ffeb7c7fe3 Bug 1229963 - use UniquePtr<T[]> instead of nsAutoArrayPtr<T> in dom/media/; r=cpearce 2015-12-02 18:07:59 -05:00
Chris Pearce 373cfa1365 Bug 1229508 - Support current and previous GMP_API_DECRYPTORs. r=gerald
To allow GMPs time to update to new GMPDecryptor versions, we support the
latest GMPDecryptor version, and the previous.

In order to support a consistent interface to Gecko, we adapt the previous
GMPDecryptor version to the latest in the GMP child process.  So Gecko always
thinks it's talking to the latest version.

We also make gmp-fake deliberately support the previous GMPDecryptor version,
to ensure this code path remains tested.
2015-12-02 15:37:09 +13:00
Mike Hommey 58b657359f Bug 1225682 - Don't use nsAuto{,C}String as class member variables in dom/media/. r=cpearce 2015-12-02 11:04:37 +09:00
Chris Pearce d81e2a9cf2 Bug 1186406 - Log why GMPVideoDecoderParent::Decode() fails. r=gerald
This helps us to identify the cause of such failures.
2015-12-01 18:13:52 +13:00
Chris Pearce 39cfd1238f Bug 1228215 - Migrate existing GMP storage from post-42 pre-45 location to 45 location. r=jwwang 2015-11-27 10:53:32 +13:00
Chris Pearce 537e205dfc Bug 1228215 - Store each GMP's storage and nodeId salt in separate directories. r=jwwang 2015-11-27 10:53:32 +13:00
Chris Pearce 3da2dc5dd2 Bug 1228215 - Expose the GMP name on each GMPParent. r=jwwang 2015-11-27 10:53:32 +13:00
Chris Pearce 6818d3ec67 Bug 1228215 - Add a 'gmpName' parameter to GMPService::GetNodeId(), so each GMP can see a different nodeId for the same origin. r=jwwang 2015-11-27 10:53:31 +13:00
Chris Pearce 8ed9d0fcbd Bug 1228215 - Add helper to do dir enumeration in GMPServiceParent. r=jwwang 2015-11-27 10:53:17 +13:00
Chris Pearce f14cc10a3d Bug 1227790 - Update GMP API to include new MediaKeyStatus types. r=jwwang 2015-11-26 13:51:05 +13:00
Ehsan Akhgari 2bc6fae605 Add a missing include to GMPLoader.cpp to fix local OSX builds, no bug 2015-11-23 10:10:44 -05:00
Gerald Squelart 2617625048 Bug 1220326 - Wipe stack after Mac node id generation. r=jrmuizel
Implemented GetStackAfterCurrentFrame() for Mac, by finding which Mach VM
region contains the stack, then erasing everything between the start of the
region (lowest possible stack address) and the current stack frame pointer.
2015-11-16 11:51:00 -05:00
sajitk 582e1a55fa Bug 1219480 - Replace PRLogModuleInfo with LazyLogModule in the media directory. r=rillian 2015-11-15 14:49:01 +01:00
Randell Jesup 2122816dfc Bug 1224442: null-check GMP Parent Shmem messages from the Child to handle messages after shutdown r=cpearce 2015-11-13 01:08:01 -05:00
Wes Kocher f3a9eb2a26 Backed out changeset 1e5f3d1151d6 (bug 1219480) for cpp unittest bustage CLOSED TREE
--HG--
extra : commitid : BMVKq6cPeho
2015-11-11 09:36:56 -08:00
sajitk 3cbe348cdd Bug 1219480 - Replace PRLogModuleInfo with LazyLogModule in the media directory. r=rillian
--HG--
extra : rebase_source : c73098485fa005d914304fb6e7f8eba3c15e66dc
2015-11-11 06:52:00 +01:00
Jean-Yves Avenard 66c9debe46 Bug 1221825: Fix logging arguments. r=cpearce 2015-11-12 01:10:36 +11:00
Bill McCloskey f8aa3d2562 Bug 1221371 - Switch chromium IPC code to use mozilla::Tuple (r=jld,cpearce,kats) 2015-11-09 10:21:11 -08:00
Gerald Squelart ccb6be36b4 Bug 1214018 - p4: Use machine_id_mac in GMPLoader - r=cpearce
Having HASH_NODE_ID_WITH_DEVICE_ID #defined is enough for GMPLoader to start
using the Mac version of GetRawMachineId.

Note: The stack (that may contain information gathered during GetRawMachineId)
is not erased, so it could theoretically be possible for a compromised GMP to
find out some sensitive user information. Another bug will deal with this.
2015-10-29 16:27:00 +01:00
Gerald Squelart c72882e4b1 Bug 1214018 - p3: Modify machine_id_mac for FF build - r=cpearce
Necessary routines were extracted from other files in:
6c3bf03265/
(otherwise a lot of code would have had to be imported, most of which would be
unused anyway.)
These extracted routines were reduced to only the actually-used code.

base::StringPrintf was only used to stringify a few hex values, this particular
use was easier to reimplement in a small loop rather than trying to extract the
whole printf suite.

base::UTF8toUTF16 is not needed, as we just return bytes. So internally a
std::string (containing UTF8) is used and its contents transferred to the
output buffer.
2015-10-29 20:20:00 +01:00
Gerald Squelart eb62c4044b Bug 1214018 - p2: Import machine_id_mac.cc from Chromium repo - r=cpearce
Retrieved from:
6c3bf03265/rlz/mac/lib/machine_id_mac.cc
2015-10-29 20:19:00 +01:00
Gerald Squelart b5784fbd39 Bug 1214018 - p1: Using vector to pass machine id - r=cpearce
GetRawMachineId was returning its generated data through a 'string16', which on
Windows was conveniently equivalent to a std::wstring.

However on Mac, wstring uses 32-bit characters, so in order to comply with the
string16 interface, a lot of non-trivial code would have to be imported and
vetted.

Also, in the end GMPLoader::Load passes this string16 to SHA256_Update() as a
sequence of bytes, the actual type of the data is lost!

So to simplify this work, GetRawMachineId will now return its data through a
vector of bytes, and the platform-dependent implementations may use whatever
data type they want internally.

The Windows GetRawMachineId actually returns the same data in this vector, so
it stays compatible with the previous code.
2015-10-29 16:25:00 +01:00
Birunthan Mohanathas 9985829ecc Bug 1219392 - Capitalize mozilla::unused to avoid conflicts. r=froydnj 2015-11-02 07:53:26 +02:00
Chris Pearce 7d1f46000c Bug 1214967 - Proxy observer service notification across to content process when GMPs are added/removed. r=billm,jwwang 2015-10-29 21:56:12 +13:00
Bob Owen 2233e7518a Bug 1187031: Move back to using USER_LOCKDOWN for the GMP sandbox policy on Windows. r=aklotz
This also removes turning off optimization for the Load function. That was an
attempt to fix the side-by-side loading. It may also have helped with ensuring
that the memsets were not optimized, but that has been fixed by Bug 1208892.
2015-10-21 08:46:57 +01:00
Mike Hommey 3de00b45dd Bug 1216444 - Remove GKMEDIAS_SHARED_LIBRARY. r=mshal
In bug 922912, we folded back gkmedias.dll info xul.dll, so in practice, there
is no default configuration left that exercises GKMEDIAS_SHARED_LIBRARY. And
sure enough, it's been broken for months in many different ways.

The gkmedias intermediate library is however kept for webrtc signaling tests.
2015-10-21 14:47:22 +09: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
Nathan Froyd 583afa0965 Bug 1207245 - part 3 - switch all uses of mozilla::RefPtr<T> to nsRefPtr<T>; r=ehsan
This commit was generated using the following script, executed at the
top level of a typical source code checkout.

 # Don't modify select files in mfbt/ because it's not worth trying to
 # tease out the dependencies currently.
 #
 # Don't modify anything in media/gmp-clearkey/0.1/ because those files
 # use their own RefPtr, defined in their own RefCounted.h.
find . -name '*.cpp' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    grep -v 'mfbt/RefPtr.h' | \
    grep -v 'mfbt/nsRefPtr.h' | \
    grep -v 'mfbt/RefCounted.h' | \
    grep -v 'media/gmp-clearkey/0.1/' | \
    xargs perl -p -i -e '
 s/mozilla::RefPtr/nsRefPtr/g; # handle declarations in headers
 s/\bRefPtr</nsRefPtr</g; # handle local variables in functions
 s#mozilla/RefPtr.h#mozilla/nsRefPtr.h#; # handle #includes
 s#mfbt/RefPtr.h#mfbt/nsRefPtr.h#;       # handle strange #includes
'

 # |using mozilla::RefPtr;| is OK; |using nsRefPtr;| is invalid syntax.
find . -name '*.cpp' -o -name '*.mm' | xargs sed -i -e '/using nsRefPtr/d'

 # RefPtr.h used |byRef| for dealing with COM-style outparams.
 # nsRefPtr.h uses |getter_AddRefs|.
 # Fixup that mismatch.
find . -name '*.cpp' -o -name '*.h'| \
    xargs perl -p -i -e 's/byRef/getter_AddRefs/g'
2015-10-18 00:40:10 -04:00
Phil Ringnalda 915c3cb404 Back out 2 changesets (bug 1214967) for b2g debug mochitest-14 hangs, or perhaps fatal assertions failing to be fatal until a hang, or summat
CLOSED TREE

Backed out changeset 120b53ea0f41 (bug 1214967)
Backed out changeset af6b752acbd0 (bug 1214967)
2015-10-16 20:26:20 -07:00
Chris Pearce 419cfce138 Bug 1214967 - Proxy observer service notification across to content process when GMPs are added/removed. r=billm,jwwang 2015-10-17 10:39:45 +13:00
Nathan Froyd fe57e31ffe Bug 1212027 - part 7 - modify IPDL codegen to store sub-protocols in a hashtable rather than an array; r=jld,nical,cpearce,billm 2015-10-07 14:30:33 -04:00
Nathan Froyd 835e1550cb Bug 1212027 - part 5 - add LoneManagedOrNull for simplifying a lot of upcoming code; r=jld
A lot of existing code has variations on:

  if (ManagedPFooChild().Length()) {
    ...(ManagedPFooChild()[0])...
  }
  // Do something with nullptr, or some other action.

It's pretty reasonable to repeat this code when the managed protocols
are stored in an array; the code gets much less nice when managed
protocols are stored in a hashtable.  Let's write a small utility
function to handle those details for us.  Then when we change the
underlying storage, we only need to update this function, rather than a
bunch of callsites.

ProtocolUtils.h is included by all the generated IPDL headers, so
LoneManagedOrNull should be available everywhere the above pattern would
be encountered.
2015-10-07 20:15:56 -04:00
Chris Pearce 2c28e66665 Bug 1209385 - Backout 417dab86a413 and 6078e8b4878b. r=backout 2015-10-14 19:42:25 +13:00
Chris Pearce 544e62ef89 Bug 121442 - Add platform to GMP storage base dir. r=gerald 2015-10-14 12:18:06 +13:00
Gerald Squelart 5b977ec21d Bug 1211337 - Added crash report annotations tracking sync shutdown process. r=cpearce 2015-10-05 04:14:00 +02:00
Sotaro Ikeda 739eddd54e Bug 1186813 - Replace nsBaseHashtable::EnumerateRead() calls in dom/media/ with iterators r=cpearce 2015-09-30 06:40:54 -07:00
Chris Pearce cc458e7e9d Bug 1209385 - Add pref to disable crashing hung GMPs. r=jwwang 2015-09-30 06:56:20 +13:00
Chris Pearce a76b46867d Bug 1209385 - Crash GMPs that don't respond to GMPVideoDecoder::Reset(). r=jwwang 2015-09-30 06:56:07 +13:00
Chris Pearce d565fd2492 Bug 1208289 - Log outstanding frames in GMP DrainComplete() and detect dropped ResetComplete. r=jwwang
* * *
Bug 1208289 - Yet another bustage fix. r=bustage
2015-09-29 13:06:14 +13:00
Nigel Babu 4013fbd739 Backed out changeset efcfe0c08c24 (bug 1208289) for B2G build bustage 2015-09-28 12:22:34 +05:30
Chris Pearce faefcaba27 Bug 1208289 - Log outstanding frames in GMP DrainComplete() and detect dropped ResetComplete. r=jwwang
* * *
Bug 1208289 - Yet another bustage fix. r=bustage
2015-09-28 17:57:10 +13:00
Chris Pearce e30c6e5fa9 Bug 1208289 - Backout. r=backout 2015-09-28 15:37:18 +13:00
Chris Pearce 8ded475d58 Bug 1208289 - Log outstanding frames in GMP DrainComplete() and detect dropped ResetComplete. r=jwwang 2015-09-28 14:03:21 +13:00
Ehsan Akhgari ad3a3c6527 Bug 1208892 - Replace the uses of memset to clean up data in GMPLoader::Load with an inline memset; r=cpearce
This is found by Viva64.  Because the data we're memsetting to 0
may not be used after this point, the compiler can eliminate the
memsets.  We need to roll our own inline memset that cannot be
optimized away.
2015-09-27 17:46:04 -04:00
Sotaro Ikeda 34a6dca7cc Bug 1205351 - Replace nsBaseHashtable::Enumerate() calls in dom/media/ with iterators r=cpearce 2015-09-24 18:48:25 -07:00
Nicholas Nethercote 9d68ee2953 Bug 1204277 - Disallow warnings in six more directories. r=glandium.
These are all conditional uses of ALLOW_COMPILER_WARNINGS=True that are no
longer necessary.

--HG--
extra : rebase_source : e654fa940aed18b1d5ef7b2bebb45bbef59cfd84
2015-09-14 21:16:37 -07:00
Bob Owen 607371b8d4 Bug 1197007: Turn off optimization for GMPLoaderImpl::Load. r=cpearce 2015-09-09 07:34:56 +01:00
Edwin Flores 5041fc1133 Bug 1172396 - Fix bustage... again. CLOSED TREE. - r=bustage 2015-09-01 18:40:36 +12:00
Edwin Flores 5a3685e229 Bug 1172396 - Update GMP trial creation pref from chrome process - r=cpearce 2015-09-01 17:31:48 +12:00
Edwin Flores bd3f1b7fed Bug 1172396 - Make GMP initialisation synchronous - r=cpearce 2015-09-01 17:31:48 +12:00
Nicholas Nethercote f44287005f Bug 1198334 (part 1) - Replace the opt-in FAIL_ON_WARNINGS with the opt-out ALLOW_COMPILER_WARNINGS. r=glandium.
The patch removes 455 occurrences of FAIL_ON_WARNINGS from moz.build files, and
adds 78 instances of ALLOW_COMPILER_WARNINGS. About half of those 78 are in
code we control and which should be removable with a little effort.

--HG--
extra : rebase_source : 82e3387abfbd5f1471e953961d301d3d97ed2973
2015-08-27 20:44:53 -07:00
Chris Pearce 2ad25b6368 Bug 1194576 - Add more NSPR logging around GMP*Parent actors. r=gerald 2015-08-14 19:18:19 +12:00
Chris Pearce c078618d1a Bug 1188235 - Make GMPStorage immune to record name hash collisions. r=gerald 2015-08-11 16:05:19 +12:00
Chris Pearce 8ded1472c3 Bug 1190252 - Remove use of mozilla\/Tokenizer from GMPChild so bug 1190252 can be uplift to 41. r=gerald 2015-08-11 10:27:41 +12:00
Chris Pearce c32f098f77 Bug 1190252. Backed out changeset d697030f7d59. r=backout 2015-08-10 13:38:03 +12:00
Chris Pearce 751d662f3d Bug 1190252 - Remove use of mozilla\/Tokenizer from GMPChild so bug 1190252 can be uplift to 41. r=gerald 2015-08-10 13:27:04 +12:00
Jean-Yves Avenard 8c8e3b2a70 Bug 1190258: P1. Use getter to access MediaRawData mData and mSize member. r=cpearce 2015-08-06 18:48:44 +10:00
Chris Pearce 6e943ecdb3 Bug 1190252 - Remove use of std::ifstream in GMPChild.cpp. r=edwin 2015-08-04 16:06:50 +12:00
Chris Pearce 65798c933d Bug 1190252 - Remove std::string from GMPChild and friends. r=edwin 2015-08-04 16:06:32 +12:00
Wes Kocher 0dde3fdf2e Backed out 2 changesets (bug 1190252) for windows gtest permafails
Backed out changeset 880fc4c49f7e (bug 1190252)
Backed out changeset ba77cb6046b7 (bug 1190252)
2015-08-03 16:00:53 -07:00
Chris Pearce 6c02d1d89d Bug 1190252 - Remove use of std::ifstream in GMPChild.cpp. r=edwin 2015-08-04 09:07:19 +12:00
Chris Pearce 598bc62ffb Bug 1190252 - Remove std::string from GMPChild and friends. r=edwin 2015-08-04 09:07:02 +12:00
Jacek Caban 403c515868 Bug 1188439 - Fixed GMPLoader.cpp compilation with sandbox disabled. r=cpearce 2015-07-29 12:27:07 +02:00
Chris Pearce 2fa9d4ad30 Bug 1187163 - Ensure we send Reset/Drain complete notifications no matter what happens in GMP{Audio,Video}Decoder. r=gerald 2015-07-27 11:52:16 +12:00
Gerald Squelart dc0830276f Bug 1187193 - Use UserData() instead of Data() in ConstIter loops that used to be EnumerateRead's. r=njn
--HG--
extra : rebase_source : db4109bfb53210a8b228c7e91427a636e2b5ea32
2015-07-24 02:25:00 +02:00
Kilik Kuo bf15291935 Bug 1186375 - Add GMP EME render flags and APIs for query. r=cpearce 2015-07-22 19:07:14 +08:00
Birunthan Mohanathas cb1bfa536f Bug 1182979 - Part 3: Use nsTHashtable::Iterator in GMPTimerParent. r=cpearce 2015-07-16 10:59:41 -07:00
Kyle Huey ee4f5ba9fb Bug 1185470: Remove 'Get' prefixes from hashtable iterator methods. r=froydnj 2015-07-20 20:21:28 +08:00
Gerald Squelart 459295e9c7 Bug 1185392 - Use a separate mutex to protect mAsyncShutdownPluginStatesMutex, as mMutex could already be held when trying to update the states. r=cpearce 2015-07-19 17:42:00 +02:00
Gerald Squelart 35f6d9fd0f Bug 1184432 - Use nsClassHashtable::ConstIter in GeckoMediaPluginServiceParent::AsyncShutdownPluginStates. r=cpearce 2015-07-16 17:00:00 -04:00
Chris Pearce c629cf3789 Bug 1184333 - Handle UTF8 paths as input for GMP loading. r=bobowen 2015-07-17 11:09:49 +12:00
Gerald Squelart fab84317db Bug 1183433 - Replace GMPParent's crash report annotations (using multiple keys) with centralized reporting. r=cpearce 2015-07-15 21:33:00 -04:00
Gerald Squelart 7c33619cb0 Bug 1183433 - Implement centralized crash report annotations, so that all async-shutdown hangs use only one key, and keeping track of all states each plugin has been through. r=cpearce 2015-07-15 21:32:00 -04:00
Gerald Squelart 268307adf7 Bug 1183433 - Make GMPParent's AbortWaitingForGMPAsyncShutdown class-static, to simplify upcoming work. r=cpearce 2015-07-15 21:32:00 -04:00
Gerald Squelart 36c7e0dff4 Bug 1183433 - Remove G-M-PServiceParent::AbortAsyncShutdown declaration, as it's not defined nor used anywhere. r=cpearce 2015-07-15 14:39:00 -04:00
Chris Pearce a4c7288fab Bug 1173195 - Don't assert success until successful in GMPSharedMemManager. r=edwin 2015-07-16 16:53:39 +12:00
Birunthan Mohanathas a8939590de Bug 1182996 - Fix and add missing namespace comments. rs=ehsan
The bulk of this commit was generated by running:

  run-clang-tidy.py \
    -checks='-*,llvm-namespace-comment' \
    -header-filter=^/.../mozilla-central/.* \
    -fix
2015-07-13 08:25:42 -07:00
Jim Mathies 9a5c8328b9 Bug 1128454 - Add crash report annotations for plugin bridge operation failures. r=billm 2015-07-09 19:07:49 -05:00
Gerald Squelart 50505a3655 Bug 1175765 - Start async-shutdown timer in GMPParent::CloseActive(). r=cpearce
--HG--
extra : rebase_source : d9d323544d36abf202a6a27fccf8a45fbe68e6f9
2015-07-03 19:37:00 +02:00
Juan Gomez 258ad59e3f Bug 1171931 - Refactor duplicated code using XRE_IsParent/ContentProcess. r=froydnj 2015-07-03 18:29:00 -07:00
Chris Pearce 4c18608471 Bug 1147692 - Remove gmp-decryptor backwards compatibility hack. r=edwin 2015-06-26 08:06:25 -07:00
Ryan VanderMeulen 5f5c327690 Backed out changeset 8b4e4083639e (bug 1171931) for B2G debug emulator bustage. 2015-06-25 19:48:42 -04:00
Juan Gomez 702a59d135 Bug 1171931 - Refactor duplicated code using XRE_IsParent/ContentProcess. r=froydnj
--HG--
extra : rebase_source : 2ecbe6c1dd8a7ad8dc529b53349ad431cf1116c9
2015-06-24 14:11:00 -04:00
Ryan VanderMeulen 7ac18353e6 Backed out changeset cbe9a2aea954 (bug 1147692) for test_eme_canvas_blocked.html failures.
CLOSED TREE
2015-06-25 16:05:41 -04:00
Chris Pearce e8b350b32d Bug 1147692 - Remove gmp-decryptor backwards compatibility hack. r=edwin 2015-06-25 11:19:42 -07:00
Gerald Squelart 2bd66050c4 Bug 1175783 - Add crash report annotations to track GMPParent shutdown. r=cpearce 2015-06-22 17:44:00 +02:00
Gerald Squelart b383286615 Bug 1173634 - Report pending async shutdowns in shutdown hangs. r=cpearce
--HG--
extra : rebase_source : 1b3f4d52abf0bacd066848834728783e9069a545
2015-06-17 17:35:00 +02:00
Gerald Squelart f4ccd23df1 Bug 1173631 - [EME] Implement async shutdown in clearkey GMP. r=cpearce
--HG--
extra : rebase_source : d6e510b5e081d581524a38a684a9cc677a5bde34
2015-06-11 22:05:00 +02:00
Ethan Hugg aa1585c499 Bug 1171499 - Defer processing GMP EncodingComplete() calls until intr shmem allocs are finished. r=jesup 2015-06-09 13:38:05 -07:00
Chris Pearce 8f7534bb5d Bug 1174064 - Ensure we don't try to reuse a GMP doing async shutdown. r=edwin 2015-06-12 21:36:48 +12:00
Chris Pearce aa0f7c2a75 Bug 1164245 - Add envvar check to disable stack clearing after generating GMP node id. r=edwin 2015-06-10 14:42:10 +12:00
Chris Pearce 52b825bcc3 Bug 1169129 - Make GMPParent hold a self ref while GMP child process is alive. r=edwin 2015-06-05 21:55:52 +12:00
Chris Pearce 461ef61358 Bug 1169129 - Test that an EME GMP can instantiate a plugin before report we support that keySystem. r=edwin 2015-06-05 21:55:51 +12:00
Chris Pearce 3e5d36b7ac Bug 1169129 - Make GMPService's GMP crash handlers easier to register. r=gerald 2015-06-05 21:55:51 +12:00
Chris Pearce c02d6f7096 Bug 1169129 - Change GMP*Parent::ParentId() to a more consistent GMP*Parent::GetPluginId(). r=edwin 2015-06-05 21:55:51 +12:00
Eric Rahm 75c4bebb79 Bug 1165515 - Part 13-2: Replace usage of PRLogModuleLevel and PR_LOG_*. rs=froydnj
This is straightforward mapping of PR_LOG levels to their LogLevel
counterparts:
  PR_LOG_ERROR   -> LogLevel::Error
  PR_LOG_WARNING -> LogLevel::Warning
  PR_LOG_WARN    -> LogLevel::Warning
  PR_LOG_INFO    -> LogLevel::Info
  PR_LOG_DEBUG   -> LogLevel::Debug
  PR_LOG_NOTICE  -> LogLevel::Debug
  PR_LOG_VERBOSE -> LogLevel::Verbose

Instances of PRLogModuleLevel were mapped to a fully qualified
mozilla::LogLevel, instances of PR_LOG levels in #defines were mapped to a
fully qualified mozilla::LogLevel::* level, and all other instances were
mapped to us a shorter format of LogLevel::*.

Bustage for usage of the non-fully qualified LogLevel were fixed by adding
|using mozilla::LogLevel;| where appropriate.
2015-06-03 15:25:57 -07:00
Hieu Le 87a0a9fc12 Bug 1142272 - platformAPI memory leak, delete on return false. r=erahm 2015-05-28 00:32:00 -07:00
Carsten "Tomcat" Book 5471309381 Backed out 14 changesets (bug 1165515) for linux x64 e10s m2 test failures
Backed out changeset d68dcf2ef372 (bug 1165515)
Backed out changeset 7c3b45a47811 (bug 1165515)
Backed out changeset b668b617bef2 (bug 1165515)
Backed out changeset d0916e1283a2 (bug 1165515)
Backed out changeset ac4dc7489942 (bug 1165515)
Backed out changeset e9632ce8bc65 (bug 1165515)
Backed out changeset c16d215cc7e4 (bug 1165515)
Backed out changeset e4d474f3c51a (bug 1165515)
Backed out changeset d87680bf9f7c (bug 1165515)
Backed out changeset b3c0a45ba99e (bug 1165515)
Backed out changeset 9370fa197674 (bug 1165515)
Backed out changeset 50970d668ca1 (bug 1165515)
Backed out changeset ffa4eb6d24b9 (bug 1165515)
Backed out changeset 5fcf1203cc1d (bug 1165515)

--HG--
extra : rebase_source : 6fb850d063cbabe738f97f0380302153e3eae97a
2015-06-02 13:05:56 +02:00
Eric Rahm a9afd68cef Bug 1165515 - Part 13-2: Replace usage of PRLogModuleLevel and PR_LOG_*. rs=froydnj
This is straightforward mapping of PR_LOG levels to their LogLevel
counterparts:
  PR_LOG_ERROR   -> LogLevel::Error
  PR_LOG_WARNING -> LogLevel::Warning
  PR_LOG_WARN    -> LogLevel::Warning
  PR_LOG_INFO    -> LogLevel::Info
  PR_LOG_DEBUG   -> LogLevel::Debug
  PR_LOG_NOTICE  -> LogLevel::Debug
  PR_LOG_VERBOSE -> LogLevel::Verbose

Instances of PRLogModuleLevel were mapped to a fully qualified
mozilla::LogLevel, instances of PR_LOG levels in #defines were mapped to a
fully qualified mozilla::LogLevel::* level, and all other instances were
mapped to us a shorter format of LogLevel::*.

Bustage for usage of the non-fully qualified LogLevel were fixed by adding
|using mozilla::LogLevel;| where appropriate.
2015-06-01 22:17:33 -07:00
Wes Kocher 4e9f80ed2e Backed out 14 changesets (bug 1165515) for b2g mochitest-6 permafail CLOSED TREE
Backed out changeset 9b97e2aa2ed9 (bug 1165515)
Backed out changeset 150606c022a2 (bug 1165515)
Backed out changeset 4e875a488349 (bug 1165515)
Backed out changeset 467e7feeb546 (bug 1165515)
Backed out changeset d6b6cc373197 (bug 1165515)
Backed out changeset 0615265b593c (bug 1165515)
Backed out changeset fafd1dce9f08 (bug 1165515)
Backed out changeset d1df869245f9 (bug 1165515)
Backed out changeset 6876a7c63611 (bug 1165515)
Backed out changeset b7841c94a9a3 (bug 1165515)
Backed out changeset e5e3617f7c73 (bug 1165515)
Backed out changeset 39be3db95978 (bug 1165515)
Backed out changeset 0ec74176f8de (bug 1165515)
Backed out changeset 5b928dd10d71 (bug 1165515)
2015-06-01 17:57:58 -07:00
Eric Rahm f82c0e7caf Bug 1165515 - Part 13-2: Replace usage of PRLogModuleLevel and PR_LOG_*. rs=froydnj
This is straightforward mapping of PR_LOG levels to their LogLevel
counterparts:
  PR_LOG_ERROR   -> LogLevel::Error
  PR_LOG_WARNING -> LogLevel::Warning
  PR_LOG_WARN    -> LogLevel::Warning
  PR_LOG_INFO    -> LogLevel::Info
  PR_LOG_DEBUG   -> LogLevel::Debug
  PR_LOG_NOTICE  -> LogLevel::Debug
  PR_LOG_VERBOSE -> LogLevel::Verbose

Instances of PRLogModuleLevel were mapped to a fully qualified
mozilla::LogLevel, instances of PR_LOG levels in #defines were mapped to a
fully qualified mozilla::LogLevel::* level, and all other instances were
mapped to us a shorter format of LogLevel::*.

Bustage for usage of the non-fully qualified LogLevel were fixed by adding
|using mozilla::LogLevel;| where appropriate.
2015-06-01 14:31:01 -07:00
Steven Michaud 551b2900b8 Bug 1167494 - Build error with --disable-sandbox on OS X. r=jld 2015-05-29 11:07:06 -05:00
Chris Pearce f877417e6a Bug 1168053 - Unified build fix in dom/media/gmp. r=jwwang 2015-05-29 14:07:22 +12:00
Eric Rahm 3925a960aa Bug 1165515 - Part 1: Convert PR_LOG to MOZ_LOG. r=froydnj 2015-05-21 13:22:04 -07:00
Gerald Squelart 6a35b44e1b Bug 1164264 - [EME] If there are no plugins left, don't wait for anything to shutdown. r=cpearce 2015-05-21 00:16:00 -04:00
Eric Rahm 4879ae86f4 Bug 1165518 - Part 2: Replace prlog.h with Logging.h. rs=froydnj 2015-05-19 11:15:34 -07:00
Ethan Hugg c597bbc86a Bug 1163239 - Check mGMPThread on shutdown. r=cpearce
--HG--
extra : rebase_source : 47c0458e8bc8bb14ca3245f33a416209b4f64ef4
2015-05-11 10:48:46 -07:00
Ehsan Akhgari 6532f9f013 Bug 1156084 - Disallow AddRef() and Release() calls on the return value of methods returning XPCOM objects; r=jrmuizel
When a method returns type D derived from RefCounted type B, there is an
ImplicitCastExpr (or an ExplicitCastExpr, if there is an explicit cast
to the base type in the code) in the AST between the CallExpr and
MemberExpr, which we didn't take into account before.  This caused the
analysis to not work on common patterns such as
nsCOMPtr<nsIXPCOMInterface>.
2015-05-15 08:39:55 -04:00
Eric Rahm 34f99e4b4c Bug 1163201 - Part 1: Remove instances of #ifdef PR_LOGGING in dom/. r=froydnj
PR_LOGGING is now always defined, we can remove #ifdefs checking for it.
2015-05-14 10:13:23 -07:00
Bob Owen c180b80463 Bug 1146874 Part 2: Add new nspr logging in GMPParent when process fails to launch. r=cpearce 2015-05-11 08:24:40 +01:00
Chris Pearce 256c472d27 Bug 1159495 - Change Windows to Unix line endings in GMPUtils.cpp. r=whitespace 2015-05-08 13:36:37 +12:00
Chris Pearce 0689f38a70 Bug 1162358 - Defer processing GMP DecodingComplete() calls until intr shmem allocs are finished. r=jesup 2015-05-08 13:36:34 +12:00
Gerald Squelart cc52a79034 Bug 1160908 - [EME] Delete GMPRecords that are 0 bytes in size. r=cpearce
--HG--
extra : rebase_source : 3a43775f0a892573e72f3a45697093e5868da67e
2015-05-06 04:08:00 -04:00
Mike Conley 97a46ed1e0 Bug 1146955 - Make the GMP pluginID a uint32_t, and dispatch it in the PluginCrashed event. r=jesup r=mrbkap
--HG--
extra : rebase_source : ef8893d470e437d93a44b393f595518acb411852
extra : source : ad87e781794d5bb5337feb6e2608730075a7f71e
extra : histedit_source : 91cbbdedc9273982d0eb6b3c58269c73e0f46f63
2015-05-04 15:40:29 -04:00
Mike Conley 91457c2516 Bug 1146955 - Unify pluginID for GMP and runID for NPAPI plugins to use the same internal incrementor. r=jesup, mrbkap.
--HG--
extra : rebase_source : bd7989a043f0b36f23ffc8d35a55a6110b09b163
extra : source : 175040b5d347dcbb31cf63f124f88ba1f53fda61
2015-04-27 15:09:45 -04:00
Chris Pearce 9f7e269f5d Bug 1159495 - Only report that Adobe EME is available if we have a plugin-container voucher. r=edwin 2015-04-30 21:52:14 +12:00
Edwin Flores 5e4843f394 Bug 1159300 - Don't use decrypting Gecko Media Plugins for non-encrypted playback - r=cpearce 2015-04-30 00:52:29 -04:00
Edwin Flores 5e27f10658 Bug 1155939 - Gtest for deletion of GMP plugins on removal - r=cpearce 2015-04-17 16:09:46 +12:00
Edwin Flores a6f18578e9 Bug 1155939 - GMPServiceParent fixes for GMP deletion - r=cpearce 2015-04-20 16:21:35 +12:00
Andrea Marchesini e666f02521 Bug 1156632 - Remove unused forward class declarations - patch 2 - dom/media, dom/indexedDB, dom/svg, r=ehsan 2015-04-22 08:29:17 +02:00
Edwin Flores 93909b8ff4 Bug 1156560 - Prefer old CDMs on update if they are in use - r=cpearce 2015-04-22 10:22:23 +12:00
Wes Kocher 78060d2f53 Backed out changeset 8b99d282cd87 (bug 1156084) for static bustage CLOSED TREE 2015-04-21 14:23:56 -07:00
Ehsan Akhgari 3f4737e49a Bug 1156084 - Disallow AddRef() and Release() calls on the return value of methods returning XPCOM objects; r=jrmuizel
When a method returns type D derived from RefCounted type B, there is an
ImplicitCastExpr (or an ExplicitCastExpr, if there is an explicit cast
to the base type in the code) in the AST between the CallExpr and
MemberExpr, which we didn't take into account before.  This caused the
analysis to not work on common patterns such as
nsCOMPtr<nsIXPCOMInterface>.
2015-04-21 16:24:41 -04:00
Chris Pearce 5dd903a2e0 Bug 1154513 - [EME] GMP crash crashes browser in Nightly - Remember if actor is destroyed, so that no messages are sent from subsequent Shutdown() - r=cpearce 2015-04-21 16:32:15 +12:00
Ryan VanderMeulen 592eb8e32d Backed out changesets f06080c6097f and 03ce639c4f13 (bug 1155939) for frequent Linux GMP gtest deadlocks.
--HG--
extra : rebase_source : ab588d9806e0c515943ebc0a387a58dce0c28a28
2015-04-20 11:39:36 -04:00
Ehsan Akhgari 4ebeb72f7b Bug 1155178 - Part 2: Rename GMPUnique to GMPUniquePtr; r=cpearce 2015-04-20 08:29:51 -04:00
Ehsan Akhgari 623b3ca075 Bug 1155178 - Part 1: Convert GMPUnique into a template alias; r=cpearce 2015-04-20 08:28:44 -04:00
Chris Pearce e0d0ef21b5 Bug 1156131 - Expand list of WMF DLLs that are whitelisted for use by EME plugins. r=bobowen 2015-04-20 20:10:40 +12:00
Edwin Flores 0394e1102c Bug 1155939 - Gtest for deletion of GMP plugins on removal - r=cpearce 2015-04-17 16:09:46 +12:00
Edwin Flores 9a59beb0c7 Bug 1155939 - GMPServiceParent fixes for GMP deletion - r=cpearce 2015-04-20 16:21:35 +12:00
Chris Pearce e61fe5c00d Bug 1143278 - Make gmp-clearkey not require a Win8 only DLL to decode audio on Win7. r=edwin 2015-04-13 13:39:46 +12:00
Edwin Flores 22ff3a6f11 Bug 1148071 - Fix CDM update behaviour - r=cpearce 2015-04-04 17:03:16 +13:00
Jean-Yves Avenard aa270b640c Bug 1152652: Part1. Use mStandardMozillaStyle for crypto classes. r=edwin 2015-04-09 21:14:56 +10:00
Jean-Yves Avenard e6858f0af5 Bug 1150853: Part2. Use new MediaRawObject across the board. r=cpearce. 2015-04-09 21:14:55 +10:00
Jean-Yves Avenard a441d92aa3 Bug 1150853: Part1. Create MediaRawData object type. r=cpearce
This object extends MediaData and will be used to contain demuxed compressed
data.
2015-04-09 21:14:55 +10:00
JW Wang a4af6bfb99 Bug 1150277 - Match hostname when removing GMP data. r=cpearce 2015-04-06 07:41:53 +08:00
Steven Michaud 33228918ed Bug 1110911 - Move Mac sandboxing code into plugin-container. r=cpearce,areinald,jld 2015-04-03 11:51:41 -05:00
Daniel Holbert a798d8e6bc Bug 1057908 followup: Add missing 'override' annotation on GMPServiceParent::ActorDestroy method decl. rs=ehsan 2015-04-02 10:32:04 -07:00
Peter Van der Beken 166fcb5464 Bug 1057908 - GeckoMediaPluginService needs to be proxied from Content processes to parent process. Part 5 - use bridging for GMP in e10s. r=billm.
--HG--
extra : rebase_source : a20ed3386758ceabccb50b68a9b9081c17a95c49
2015-02-10 11:49:03 +01:00
Peter Van der Beken 8308cf3a1b Bug 1057908 - GeckoMediaPluginService needs to be proxied from Content processes to parent process. Part 4 - make GetNodeId asynchronous. r=jwwang.
--HG--
extra : rebase_source : 59784b0a947cd870791a85b22c4d0607d9cdb835
2015-02-10 11:48:52 +01:00
Peter Van der Beken 75ade681f5 Bug 1057908 - GeckoMediaPluginService needs to be proxied from Content processes to parent process. Part 3 - split the GMP IPDL actors in 2 parts (and use opens to open the second in non-e10s). r=billm.
--HG--
extra : rebase_source : 260e61d4a3e688e3ae3fb5c956d3ecce50fd7e0d
2015-02-10 11:48:42 +01:00
Peter Van der Beken 83b03d9a6f Bug 1057908 - GeckoMediaPluginService needs to be proxied from Content processes to parent process. Part 2 - support asynchronous GMP API getters. r=jwwang,rjesup.
--HG--
extra : rebase_source : 7010b6a0d5f3efc1ee749f836a37905f250d7cc6
2015-02-10 11:48:29 +01:00
Peter Van der Beken f3fd8b5329 Bug 1057908 - GeckoMediaPluginService needs to be proxied from Content processes to parent process. Part 1 - split GeckoMediaPluginService into a part for chrome and a part for both content and chrome. r=jwwang.
--HG--
rename : dom/media/gmp/GMPService.cpp => dom/media/gmp/GMPServiceParent.cpp
rename : dom/media/gmp/GMPService.h => dom/media/gmp/GMPServiceParent.h
rename : dom/media/gmp/mozIGeckoMediaPluginService.idl => dom/media/gmp/mozIGeckoMediaPluginChromeService.idl
extra : rebase_source : 7fe8972a20b198ca960ae76df082b153d22c37b4
2015-02-09 21:54:12 +01:00
Peter Van der Beken 5ae3fb0f69 Bug 1057908 - GeckoMediaPluginService needs to be proxied from Content processes to parent process. Part 0 - Make mozIGeckoMediaPluginService::GetPluginVersionForAPI return whether we even have the plugin. r=cpearce.
--HG--
extra : rebase_source : fdb14a5ad68a7c6c76a4b67ca9ece1094d06422c
2015-02-24 15:03:56 +01:00
Bob Owen e4f543bb58 Bug 1119878 Part 2: Change IPC code to hold ProcessID instead of ProcessHandle. r=billm, r=dvander, r=aklotz, r=cpearce 2015-04-01 09:40:35 +01:00
Bob Owen eef3ca5f6e Bug 1119878 Part 1: Change SandboxTarget to hold sandbox target services to provide functions. r=aklotz, r=glandium, r=cpearce 2015-04-01 09:40:35 +01:00
Chris Pearce 5d922e0e8e Bug 1146201 - Delay navigator.requestMediaKeySystemAccess if CDM not downloaded yet or needs update. r=jwwang,ehsan 2015-03-31 20:50:01 +13:00
Edwin Flores 157fb06549 Bug 1142835 - Null check mPlugin on GMPAudioDecoderParent shutdown - r=cpearce 2015-03-30 14:58:19 +13:00
Andrea Marchesini e6f385fb3d Bug 1148527 - Indentation fix after bug 1145631, r=ehsan 2015-03-27 18:52:19 +00:00
Edwin Flores 347ea12255 Bug 1147689 - Fix static analysis bustage - r=bustage 2015-03-26 23:17:13 +13:00
Edwin Flores b790668a1f Bug 1147689 - Preserve compatibility with eme-decrypt-v6 - r=cpearce 2015-03-26 22:58:43 +13:00
Edwin Flores d888a5c88f Bug 1147689 - Increment eme-decrypt API version to v7 - r=cpearce 2015-03-26 22:58:43 +13:00
Edwin Flores 46cbfd3c6b Bug 1147689 - Pass the session ID(s) of an encrypted frame into EME CDMs - r=cpearce 2015-03-26 22:57:36 +13:00
Gerald Squelart 93b76062f3 Bug 1135541 - Make crash reporting work for EME CDMs - r=cpearce 2015-03-26 19:55:30 +13:00
Stephen Pohl d123931436 Bug 1145336: Remove old GMPs during updates. r=jwwang 2015-03-22 23:12:03 -04:00
Ehsan Akhgari 883849ee32 Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj
This patch was automatically generated using the following script:

function convert() {
echo "Converting $1 to $2..."
find . \
       ! -wholename "*/.git*" \
       ! -wholename "obj-ff-dbg*" \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -o -iname "*.c" \
         -o -iname "*.cc" \
         -o -iname "*.idl" \
         -o -iname "*.ipdl" \
         -o -iname "*.ipdlh" \
         -o -iname "*.mm" \) | \
    xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}

convert MOZ_OVERRIDE override
convert MOZ_FINAL final
2015-03-21 12:28:04 -04:00
JW Wang 2689394ff9 Bug 1143532 - Include pid in the log messages of GMPParent. r=edwin
--HG--
extra : rebase_source : 704c153d9227781f9cc443315603204efc7e2b0a
2015-03-15 23:30:00 +01:00
Matthew Gregan a5dd52d5ad Bug 1144523 - Convert input buffer to expected format for OpenH264 GMP plugin. r=cpearce 2015-03-20 17:52:10 +13:00
JW Wang 88d592058a Bug 1143562. Part2 - only init |mStorageBaseDir| in the chrome process. r=cpearce 2015-03-18 19:15:00 +01:00
JW Wang 80b1b90328 Bug 1143562 - use /data/b2g/mozilla/gmp as the gmp storage folder on B2G. r=cpearce 2015-03-16 19:51:00 +01:00
Nigel Babu 0a587c5cdd Backed out changeset 05850dac2882 (bug 1143562) for B2G Emulator ICS M2 bustage CLOSED TREE 2015-03-18 12:20:57 +05:30
JW Wang e21abfe964 Bug 1143562 - use /data/b2g/mozilla/gmp as the gmp storage folder on B2G. r=cpearce. 2015-03-18 10:29:31 +08:00
Daniel Holbert 082fd9cd7f Bug 1142841: Convert all nsRefPtr<nsIRunnable> to nsCOMPtr<nsIRunnable>. r=ehsan
This patch was generated by a script.  Here's the source of the script for
future reference:

find . \( -iname "*.cpp" -o -iname "*.h" \) | \
  xargs -n 1 sed -i "s/nsRefPtr<nsIRunnable>/nsCOMPtr<nsIRunnable>/g"
2015-03-17 09:29:17 -07:00
JW Wang 05f13e6968 Bug 1142917 - add logs to GMPChild. r=edwin. 2015-03-16 11:27:49 +08:00
Phil Ringnalda 571ce099b4 Back out 7f1f85ee4ba6 (bug 1143278) for Win7 near-permaorange in test_eme_canvas_blocked.html 2015-03-15 18:30:53 -07:00
Chris Pearce 151f899496 Bug 1143278 - Make gmp-clearkey not require a Win8 only DLL to decode audio on Win7. r=edwin 2015-03-15 11:30:24 +13:00
Chris Pearce ae1bee7f7b Bug 1138771 - Ensure we don't deref a null pointer in assertion in GMPVideoDecoderParent::Shutdown(). r=edwin 2015-03-04 23:20:45 +13:00
JW Wang 4c39b2596b Bug 1131908 - no IPC calls after GMPDecryptorChild::RecvDecryptingComplete(). r=edwin. 2015-03-04 10:04:33 +08:00
Chris Pearce e4ef49ff55 Bug 1136986 - Fix unthreadsafe uses of GMPVideoHost in gmp-clearkey. r=edwin 2015-02-28 10:23:33 +13:00
Chris Pearce 9c393b31d4 Bug 1136986 - Disable SharedDecoderManager for EME video. r=kentuckyfriedtakahe 2015-02-28 10:23:29 +13:00
Chris Pearce feeeb99a0a Bug 1124031 part 1 - Expose GMP version on GMPParent. r=jesup 2015-02-20 14:37:49 +13:00
Chris Pearce 9bf9f2a54e Bug 1111160 - Dispatch observer service notifications when content succeeds or fails to get CDM access. r=bz 2015-02-14 08:52:42 +13:00
JW Wang 241c9833da Bug 1130932 - allow GMPDecryptorParent::RecvKeyStatusChanged calls after Close(). r=edwin. 2015-02-09 07:32:59 +08:00
JW Wang 7a1fccea38 Bug 1130917 - Part 1 - disallow multiple records with the same name in GMPStorageChild::CreateRecord(). r=edwin 2015-02-08 20:37:18 +08:00
Matthew Gregan 554ea67ff5 Bug 1131340 - Avoid template aliasing since GCC 4.6 lacks support. r=cpearce 2015-02-10 14:27:36 +13:00
Nicholas Nethercote 242708cf72 Bug 1127201 (attempt 2, part 1) - Replace most NS_ABORT_IF_FALSE calls with MOZ_ASSERT. r=Waldo.
--HG--
extra : rebase_source : 488e401ff87e31a2074c4108c4df0572d9536667
2015-02-09 14:34:50 -08:00
Andrew McCreight d3826daa16 Back out Bug 1127201 (part 2) for various problems. 2015-02-06 15:04:32 -08:00
Nicholas Nethercote d34f0301b8 Bug 1127201 (part 2) - Convert all NS_ABORT_IF_FALSE calls to MOZ_ASSERT. r=Waldo.
--HG--
extra : rebase_source : 99182e70335d2b5ff95f8c528ae992d37294be3a
2015-02-04 20:05:36 -08:00
Bill McCloskey c04f106018 Bug 1124933 - Include crash reason when intentionally crashing content process (r=bent) 2015-02-03 09:09:27 -08:00
Edwin Flores e6bb7e2230 Bug 1075199 - Extend lifetime of VideoHost in GMPVideoDecoderParent to stop its destruction racing with the deallocation of video buffers - r=jesup 2015-01-16 11:04:03 +13:00
JW Wang 4d6309bd93 Bug 1083658 - add "output-downscaled" to GMP. r=cpearce. 2015-02-01 09:18:39 +08:00
JW Wang c1dd9140a5 Bug 1121332. Part 1 - add media key status to gmp-api. r=cpearce. 2015-01-31 13:22:12 +13:00
Jed Davis fef2dc290e Bug 1120045 - Pref off allowing media plugins on Linux systems which can't sandbox them. r=jesup
This does *not* affect the sandboxing requirement for EME CDMs added in
bug 1074561; that is enforced separately and regardless of this pref.

Bonus fix: GC unused includes of sandbox headers.
2015-01-28 10:06:53 -08:00
JW Wang bfc4d164a1 Bug 1124939 - Add "individualization-request" to MediaKeyMessageType. r=bz 2015-01-26 20:08:00 +01:00
Bob Owen 9bff5f0ad0 Bug 1094370: Use the USER_LOCKDOWN access token for GMP processes. r=aklotz 2015-01-26 10:14:39 +00:00
Matthew Gregan f29aff15e4 Bug 1124021 - Fix dangerous UniquePtr usage pattern in GMP. r=cpearce 2015-01-20 18:39:00 +13:00
Matthew Gregan 8e86d1cba8 Bug 1124023 - Fix naming of GMPAudioDecoderCallbackProxy. r=cpearce 2015-01-20 18:39:00 +13:00
Brian Smith 205709fd68 Bug 1119072, Part 12: Explicitly cast char16_t to wchar_t in dom/media/gmp/GMPChild.cpp, r=ehsan
--HG--
extra : rebase_source : 676fcb3cbc4cc828c88cf404baa6af086e405915
2015-01-08 15:26:28 -08:00
Kyle Huey 7c82e6dd0a Bug 1121673: Use move references in IPDL. r=bent 2015-01-16 11:58:52 -08:00
JW Wang a9391d3408 Bug 1102852 - add MediaKeyMessageType to and remove destinationURL from MediaKeyMessageEvent. r=cpearce,bz 2015-01-15 11:25:47 +13:00
JW Wang d842c12f59 Bug 1111788 - Part 3 - clear nodeIds/records which are modified after the time of "clear recent history". r=cpearce. 2015-01-11 19:22:00 +01:00
JW Wang b5a3daefe2 Bug 1111788 - Part 2 - have GeckoMediaPluginService listen to "browser:purge-session-history" event. r=cpearce. 2015-01-08 19:27:00 +01:00
Masatoshi Kimura bf312ad056 Bug 1120062 - Part 1: Remove most Nullptr.h includes. r=waldo 2015-01-11 11:34:52 +09:00
Chris Peterson 9e23388ca8 Bug 1118076 - Remove MOZ_THIS_IN_INITIALIZER_LIST. r=Waldo 2015-01-06 21:39:46 -08:00
Ehsan Akhgari 31a966ecd6 Bug 1117261 - Mark virtual overridden functions as MOZ_OVERRIDE in DOM media code; r=rillian 2015-01-08 23:11:30 -05:00
Chris Pearce 7ba4d8b1c1 Bug 1111391 - Enable keyMessages to be sent before create/load session promise is resolved. r=jwwang 2015-01-09 14:30:07 +13:00
JW Wang c9d6a08a8c Bug 1118574 - test case for "Forget This Site" command. r=cpearce 2015-01-06 18:51:00 +01:00
JW Wang 3434359fec Bug 1111787 - Part 3: Clear plugis and storage data associated with the node IDs. r=cpearce 2014-12-29 22:22:00 -05:00
JW Wang 1725e359fe Bug 1111787 - Part 2: Kill plugins with valid node IDs when clearing storage data for those IDs will be invalid and can't be used anymore. r=cpearce 2014-12-28 22:18:00 -05:00
JW Wang ea65e9fd34 Bug 1111787 - Part 1: Delete the directory for the origin pair when "forget this site" is invoked. r=cpearce 2015-01-05 19:00:00 -05:00
Chris Pearce 2e9cf595cd Bug 1114867 - Manually inline RtlSecureZeroMemory in GMPLoader, to ensure it doesn't wipe its own stack while running. r=dmajor 2015-01-06 07:36:42 +13:00
Chris Pearce 93923b922e Bug 1114867 - Revert c29ebd2b4a10. r=dmajor 2015-01-06 07:36:39 +13:00
Ehsan Akhgari de3498d101 Bug 1116358 - Directly call Release() on |this| when closing a GMP encoder/decoder proxies; r=cpearce
This is needed in order to avoid calling Release() on a smart pointer.
2014-12-30 14:53:12 -05:00
Chris Pearce 03dbaa0232 Bug 1101308 - Remove code to zero stack after GMP device binding as it's causing crashes. r=edwin 2014-12-22 19:59:00 +01:00
Chris Pearce c4e3f4a357 Bug 1113477 - Fix logging in GMPParent that incorrectly labels sending nodeId and startPlugin as failed when it actually succeeded. r=edwin 2014-12-23 11:21:54 +13:00