Closed Bug 1047107 Opened 11 years ago Closed 11 years ago

[EME] CDMProxy needs to Close() its GMPDecryptorProxy on Shutdown

Categories

(Core :: Audio/Video, defect)

29 Branch
x86_64
Windows 7
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla34

People

(Reporter: cpearce, Assigned: cpearce)

References

Details

Attachments

(1 file)

The CDMProxy needs to ensure it calls Close() on its GMPDecryptorProxy, else we'll get intermittent crashes during shutdown when the CDMProxy dies before the GMPDecryptorProxy has called its callback Terminated() function. The will then callback the Terminated() function on a stale pointer and crash. Stack: > xul.dll!mozilla::gmp::GMPDecryptorParent::Shutdown() Line 322 C++ xul.dll!mozilla::gmp::GMPParent::CloseActive(bool aDieWhenUnloaded=true) Line 192 C++ xul.dll!mozilla::gmp::GeckoMediaPluginService::UnloadPlugins() Line 379 C++ xul.dll!nsRunnableMethodImpl<void (__thiscall mozilla::gmp::GeckoMediaPluginService::*)(void),void,1>::Run() Line 393 C++ xul.dll!nsThreadSyncDispatch::Run() Line 995 C++ xul.dll!nsThread::ProcessNextEvent(bool aMayWait=true, bool * aResult=0x0cdffb4f) Line 770 C++ xul.dll!NS_ProcessNextEvent(nsIThread * aThread=0x0cb2d500, bool aMayWait=true) Line 265 C++ xul.dll!mozilla::ipc::MessagePumpForNonMainThreads::Run(base::MessagePump::Delegate * aDelegate=0x0c67b240) Line 355 C++
Attached patch PatchSplinter Review
As discussed in bug 1043147, we need to cancel pending promises when the MediaKeys shutsdown. We also need to cut our connection to the CDM, otherwise it may try to call us back on a stale pointer, and we'll crash on shutdown.
Attachment #8468207 - Flags: review?(ehsan)
Attachment #8468207 - Flags: review?(ehsan) → review+
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla34
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: