зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1132072 - Handle RequestNotifyLayerTreeReady when RenderFrameParent not ready (r=dvander)
This commit is contained in:
Родитель
7319a01bdc
Коммит
71d65e32e7
|
@ -276,6 +276,7 @@ TabParent::TabParent(nsIContentParent* aManager,
|
||||||
, mInitedByParent(false)
|
, mInitedByParent(false)
|
||||||
, mTabId(aTabId)
|
, mTabId(aTabId)
|
||||||
, mCreatingWindow(false)
|
, mCreatingWindow(false)
|
||||||
|
, mNeedLayerTreeReadyNotification(false)
|
||||||
{
|
{
|
||||||
MOZ_ASSERT(aManager);
|
MOZ_ASSERT(aManager);
|
||||||
}
|
}
|
||||||
|
@ -2315,6 +2316,12 @@ TabParent::RecvGetRenderFrameInfo(PRenderFrameParent* aRenderFrame,
|
||||||
RenderFrameParent* renderFrame = static_cast<RenderFrameParent*>(aRenderFrame);
|
RenderFrameParent* renderFrame = static_cast<RenderFrameParent*>(aRenderFrame);
|
||||||
renderFrame->GetTextureFactoryIdentifier(aTextureFactoryIdentifier);
|
renderFrame->GetTextureFactoryIdentifier(aTextureFactoryIdentifier);
|
||||||
*aLayersId = renderFrame->GetLayersId();
|
*aLayersId = renderFrame->GetLayersId();
|
||||||
|
|
||||||
|
if (mNeedLayerTreeReadyNotification) {
|
||||||
|
RequestNotifyLayerTreeReady();
|
||||||
|
mNeedLayerTreeReadyNotification = false;
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2617,11 +2624,11 @@ TabParent::RequestNotifyLayerTreeReady()
|
||||||
{
|
{
|
||||||
RenderFrameParent* frame = GetRenderFrame();
|
RenderFrameParent* frame = GetRenderFrame();
|
||||||
if (!frame) {
|
if (!frame) {
|
||||||
return false;
|
mNeedLayerTreeReadyNotification = true;
|
||||||
|
} else {
|
||||||
|
CompositorParent::RequestNotifyLayerTreeReady(frame->GetLayersId(),
|
||||||
|
new LayerTreeUpdateObserver());
|
||||||
}
|
}
|
||||||
|
|
||||||
CompositorParent::RequestNotifyLayerTreeReady(frame->GetLayersId(),
|
|
||||||
new LayerTreeUpdateObserver());
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -512,6 +512,11 @@ private:
|
||||||
// CreateWindow response. Then TabChild loads them immediately.
|
// CreateWindow response. Then TabChild loads them immediately.
|
||||||
nsTArray<FrameScriptInfo> mDelayedFrameScripts;
|
nsTArray<FrameScriptInfo> mDelayedFrameScripts;
|
||||||
|
|
||||||
|
// If the user called RequestNotifyLayerTreeReady and the RenderFrameParent
|
||||||
|
// wasn't ready yet, we set this flag and call RequestNotifyLayerTreeReady
|
||||||
|
// again once the RenderFrameParent arrives.
|
||||||
|
bool mNeedLayerTreeReadyNotification;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// This is used when APZ needs to find the TabParent associated with a layer
|
// This is used when APZ needs to find the TabParent associated with a layer
|
||||||
// to dispatch events.
|
// to dispatch events.
|
||||||
|
|
Загрузка…
Ссылка в новой задаче