diff --git a/dom/ipc/TabChild.cpp b/dom/ipc/TabChild.cpp index 0350fb570be5..c2b155616385 100644 --- a/dom/ipc/TabChild.cpp +++ b/dom/ipc/TabChild.cpp @@ -21,6 +21,7 @@ #include "mozilla/ipc/FileDescriptorUtils.h" #include "mozilla/layers/AsyncPanZoomController.h" #include "mozilla/layers/CompositorChild.h" +#include "mozilla/layers/ImageBridgeChild.h" #include "mozilla/layers/PLayerTransactionChild.h" #include "mozilla/layout/RenderFrameChild.h" #include "mozilla/StaticPtr.h" @@ -2176,6 +2177,7 @@ TabChild::InitRenderingState() NS_ABORT_IF_FALSE(lf && lf->HasShadowManager(), "PuppetWidget should have shadow manager"); lf->IdentifyTextureHost(mTextureFactoryIdentifier); + ImageBridgeChild::IdentifyCompositorTextureHost(mTextureFactoryIdentifier); mRemoteFrame = remoteFrame; diff --git a/gfx/layers/ipc/ImageBridgeChild.cpp b/gfx/layers/ipc/ImageBridgeChild.cpp index 70a14b0ce3f9..4a502843a8bf 100644 --- a/gfx/layers/ipc/ImageBridgeChild.cpp +++ b/gfx/layers/ipc/ImageBridgeChild.cpp @@ -480,6 +480,14 @@ void ImageBridgeChild::ConnectAsync(ImageBridgeParent* aParent) this, aParent)); } +void +ImageBridgeChild::IdentifyCompositorTextureHost(const TextureFactoryIdentifier& aIdentifier) +{ + if (sImageBridgeChildSingleton) { + sImageBridgeChildSingleton->IdentifyTextureHost(aIdentifier); + } +} + TemporaryRef ImageBridgeChild::CreateImageClient(CompositableType aType) { @@ -504,8 +512,6 @@ ImageBridgeChild::CreateImageClient(CompositableType aType) TemporaryRef ImageBridgeChild::CreateImageClientNow(CompositableType aType) { - mCompositorBackend = LAYERS_OPENGL; - RefPtr client = ImageClient::CreateImageClient(aType, this, 0); MOZ_ASSERT(client, "failed to create ImageClient"); diff --git a/gfx/layers/ipc/ImageBridgeChild.h b/gfx/layers/ipc/ImageBridgeChild.h index 058d38a31777..5f32dfa0cf2d 100644 --- a/gfx/layers/ipc/ImageBridgeChild.h +++ b/gfx/layers/ipc/ImageBridgeChild.h @@ -148,6 +148,8 @@ public: */ void ConnectAsync(ImageBridgeParent* aParent); + static void IdentifyCompositorTextureHost(const TextureFactoryIdentifier& aIdentifier); + void BeginTransaction(); void EndTransaction(); diff --git a/widget/xpwidgets/nsBaseWidget.cpp b/widget/xpwidgets/nsBaseWidget.cpp index c28e7d7a5149..d81cb8c22b38 100644 --- a/widget/xpwidgets/nsBaseWidget.cpp +++ b/widget/xpwidgets/nsBaseWidget.cpp @@ -7,6 +7,7 @@ #include "mozilla/layers/CompositorChild.h" #include "mozilla/layers/CompositorParent.h" +#include "mozilla/layers/ImageBridgeChild.h" #include "nsBaseWidget.h" #include "nsDeviceContext.h" #include "nsCOMPtr.h" @@ -952,6 +953,7 @@ void nsBaseWidget::CreateCompositor(int aWidth, int aHeight) } lf->SetShadowManager(shadowManager); lf->IdentifyTextureHost(textureFactoryIdentifier); + ImageBridgeChild::IdentifyCompositorTextureHost(textureFactoryIdentifier); mLayerManager = lm; return;