Open Bug 1141888 Opened 8 years ago Updated 5 months ago

GMPParent::AbortAsyncShutdown doesn't really stop GMPChild from sending AsyncShutdownComplete


(Core :: Audio/Video: GMP, defect, P3)





(Reporter: jwwang, Unassigned)


(Blocks 1 open bug)


Call flow:

1. KillPlugins calls GMPParent::AbortAsyncShutdown(). [1]
2. |mAsyncShutdownRequired| is reset
3. GMPParent::RecvAsyncShutdownComplete is called to hit the assertion at [2] for |mAsyncShutdownRequired| is false.

This is because GMPParent::AbortAsyncShutdown doesn't do anything to stop GMPChild from sending AsyncShutdownComplete and there is no reliable way to do this for GMPChild runs on its own thread in another process.

Blocks: 1057908
KillPlugins is used by ForgetThisSite and ClearHistory. I think it should wait for AsyncShutdownComplete before clearing the storage data as GMPParent::AbortAsyncShutdown is racing with GMPChild and there is no reliable way to abort async shutdown in the child.
Component: Audio/Video → Audio/Video: MSG/cubeb/GMP
Component: Audio/Video: MediaStreamGraph → Audio/Video: GMP
Rank: 25
Priority: -- → P2
Mass change P2->P3 to align with new Mozilla triage process.
Priority: P2 → P3
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.