зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1065536, part 3 - Explicitly shut down the CompositorChild in the child process. r=nical
This commit is contained in:
Родитель
cab7cc77c1
Коммит
b69d978b28
|
@ -192,6 +192,14 @@ CompositorChild::ActorDestroy(ActorDestroyReason aWhy)
|
|||
NewRunnableMethod(this, &CompositorChild::Release));
|
||||
}
|
||||
|
||||
void
|
||||
CompositorChild::ShutDown()
|
||||
{
|
||||
if (sCompositor) {
|
||||
sCompositor->ActorDestroy(NormalShutdown);
|
||||
}
|
||||
}
|
||||
|
||||
bool
|
||||
CompositorChild::RecvSharedCompositorFrameMetrics(
|
||||
const mozilla::ipc::SharedMemoryBasic::Handle& metrics,
|
||||
|
|
|
@ -80,6 +80,8 @@ public:
|
|||
|
||||
void CancelNotifyAfterRemotePaint(TabChild* aTabChild);
|
||||
|
||||
static void ShutDown();
|
||||
|
||||
private:
|
||||
// Private destructor, to discourage deletion outside of Release():
|
||||
virtual ~CompositorChild();
|
||||
|
|
|
@ -666,16 +666,19 @@ gfxPlatform::ShutdownLayersIPC()
|
|||
}
|
||||
sLayersIPCIsUp = false;
|
||||
|
||||
if (XRE_GetProcessType() == GeckoProcessType_Default)
|
||||
{
|
||||
GeckoProcessType processType = XRE_GetProcessType();
|
||||
if (processType == GeckoProcessType_Default) {
|
||||
// This must happen after the shutdown of media and widgets, which
|
||||
// are triggered by the NS_XPCOM_SHUTDOWN_OBSERVER_ID notification.
|
||||
layers::ImageBridgeChild::ShutDown();
|
||||
|
||||
#ifdef MOZ_WIDGET_GONK
|
||||
layers::SharedBufferManagerChild::ShutDown();
|
||||
#endif
|
||||
|
||||
layers::CompositorParent::ShutDown();
|
||||
} else if (processType == GeckoProcessType_Content) {
|
||||
layers::CompositorChild::ShutDown();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче