Bug 1321728 - Update nsDOMWindowUtils::GetLayerManagerRemote() r=nical

This commit is contained in:
sotaro 2016-12-04 17:35:33 +09:00
parent 8225e91629
commit 5d91e48b89
5 changed files with 19 additions and 2 deletions

View File

@ -2317,7 +2317,7 @@ nsDOMWindowUtils::GetLayerManagerRemote(bool* retval)
if (!mgr)
return NS_ERROR_FAILURE;
*retval = !!mgr->AsShadowForwarder();
*retval = !!mgr->AsKnowsCompositor();
return NS_OK;
}
@ -2335,7 +2335,7 @@ nsDOMWindowUtils::GetSupportsHardwareH264Decoding(JS::MutableHandle<JS::Value> a
LayerManager *mgr = widget->GetLayerManager();
NS_ENSURE_STATE(mgr);
RefPtr<Promise> promise =
MP4Decoder::IsVideoAccelerated(mgr->AsShadowForwarder(), parentObject);
MP4Decoder::IsVideoAccelerated(mgr->AsKnowsCompositor(), parentObject);
NS_ENSURE_STATE(promise);
aPromise.setObject(*promise->PromiseObj());
#else

View File

@ -93,6 +93,7 @@ class ReadbackLayer;
class ReadbackProcessor;
class RefLayer;
class HostLayer;
class KnowsCompositor;
class ShadowableLayer;
class ShadowLayerForwarder;
class LayerManagerComposite;
@ -202,6 +203,9 @@ public:
virtual ShadowLayerForwarder* AsShadowForwarder()
{ return nullptr; }
virtual KnowsCompositor* AsKnowsCompositor()
{ return nullptr; }
virtual LayerManagerComposite* AsLayerManagerComposite()
{ return nullptr; }

View File

@ -53,6 +53,11 @@ public:
return mForwarder;
}
virtual KnowsCompositor* AsKnowsCompositor() override
{
return mForwarder;
}
virtual ClientLayerManager* AsClientLayerManager() override
{
return this;

View File

@ -142,6 +142,12 @@ WebRenderLayerManager::WebRenderLayerManager(nsIWidget* aWidget)
{
}
KnowsCompositor*
WebRenderLayerManager::AsKnowsCompositor()
{
return mWRChild;
}
void
WebRenderLayerManager::Initialize(PCompositorBridgeChild* aCBChild,
uint64_t aLayersId,

View File

@ -17,6 +17,7 @@ namespace mozilla {
namespace layers {
class CompositorBridgeChild;
class KnowsCompositor;
class PCompositorBridgeChild;
class WebRenderBridgeChild;
@ -85,6 +86,7 @@ protected:
virtual ~WebRenderLayerManager();
public:
virtual KnowsCompositor* AsKnowsCompositor() override;
WebRenderLayerManager* AsWebRenderLayerManager() override { return this; }
CompositorBridgeChild* GetCompositorBridgeChild();