Open Bug 1141888 Opened 8 years ago Updated 5 years ago

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

Categories

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

defect

Tracking

()

People

(Reporter: jwwang, Unassigned)

References

(Blocks 1 open bug)

Details

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.

[1] https://hg.mozilla.org/mozilla-central/file/6686aacf006f/dom/media/gmp/GMPService.cpp#l1252
[2] https://hg.mozilla.org/mozilla-central/file/6686aacf006f/dom/media/gmp/GMPParent.cpp#l1029
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
You need to log in before you can comment on or make changes to this bug.