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

52 Коммитов

Автор SHA1 Сообщение Дата
James Cheng bd88dbe2fe Bug 1403804 - P1 - Remove PGMPDecryptor.ipdl and its related code from code base. r=cpearce
MozReview-Commit-ID: 4mxdcvnRl3W

--HG--
extra : rebase_source : 4c047fa94448bdde302f4b325f786f1d1b904388
2017-09-28 11:40:30 +08:00
Gabriele Svelto 7387dc791b Bug 1393435 - Remove unnecessary inclusions of the crash reporter header files; r=mconley
MozReview-Commit-ID: 3tdFDrTYql8

--HG--
extra : rebase_source : cc862688f19afb8a5cf8c7cf915a5d3d45f041b5
2017-08-07 14:10:02 +02:00
Bill McCloskey d6affd5261 Bug 1365098 - Convert NS_GetCurrentThread uses in dom/media (r=cpearce)
MozReview-Commit-ID: DUPt6xj49zz
2017-06-12 20:20:08 -07: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
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
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
David Anderson 64b9b4aa19 Replace GMP use of PCrashReporter with shmem-based annotations. (bug 1337518, r=billm) 2017-02-12 11:39:44 -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 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
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
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
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 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
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
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 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
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 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 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 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 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 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
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
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 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
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 3da2dc5dd2 Bug 1228215 - Expose the GMP name on each GMPParent. r=jwwang 2015-11-27 10:53:32 +13: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
Chris Pearce 2c28e66665 Bug 1209385 - Backout 417dab86a413 and 6078e8b4878b. r=backout 2015-10-14 19:42:25 +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
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
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
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
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
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
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 22ff3a6f11 Bug 1148071 - Fix CDM update behaviour - r=cpearce 2015-04-04 17:03:16 +13: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 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 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
Gerald Squelart 93b76062f3 Bug 1135541 - Make crash reporting work for EME CDMs - r=cpearce 2015-03-26 19:55:30 +13: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
Chris Pearce feeeb99a0a Bug 1124031 part 1 - Expose GMP version on GMPParent. r=jesup 2015-02-20 14:37:49 +13:00