From f183ff8a5a7dab0eaa6cea218c992d64213c8b6b Mon Sep 17 00:00:00 2001 From: sotaro Date: Sat, 31 Mar 2018 07:48:27 +0900 Subject: [PATCH] Bug 1450212 - Change CompositorWindow creation and destruction timing r=nical --- gfx/layers/ipc/CompositorBridgeParent.cpp | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/gfx/layers/ipc/CompositorBridgeParent.cpp b/gfx/layers/ipc/CompositorBridgeParent.cpp index a7695e6436b7..cd90429840fd 100644 --- a/gfx/layers/ipc/CompositorBridgeParent.cpp +++ b/gfx/layers/ipc/CompositorBridgeParent.cpp @@ -1765,12 +1765,6 @@ CompositorBridgeParent::AllocPWebRenderBridgeParent(const wr::PipelineId& aPipel MOZ_ASSERT(!mCompositorScheduler); MOZ_ASSERT(mWidget); -#ifdef XP_WIN - if (DeviceManagerDx::Get()->CanUseDComp() && mWidget) { - mWidget->AsWindows()->EnsureCompositorWindow(); - } -#endif - RefPtr widget = mWidget; RefPtr api = wr::WebRenderAPI::Create(this, Move(widget), aSize); if (!api) { @@ -1815,11 +1809,6 @@ CompositorBridgeParent::DeallocPWebRenderBridgeParent(PWebRenderBridgeParent* aA it->second.mWrBridge = nullptr; } } -#ifdef XP_WIN - if (DeviceManagerDx::Get()->CanUseDComp() && mWidget) { - mWidget->AsWindows()->DestroyCompositorWindow(); - } -#endif parent->Release(); // IPDL reference return true; } @@ -1963,6 +1952,12 @@ CompositorBridgeParent::AllocPCompositorWidgetParent(const CompositorWidgetInitD new widget::CompositorWidgetParent(aInitData, mOptions); widget->AddRef(); +#ifdef XP_WIN + if (DeviceManagerDx::Get()->CanUseDComp()) { + widget->AsWindows()->EnsureCompositorWindow(); + } +#endif + // Sending the constructor acts as initialization as well. mWidget = widget; return widget;