Bug 1350638 - Remove sync GetCompositorOptions call added in the last patch. r?dvander
This call should be a no-op in the real world, and should be safe to
remove. The patch also adds an assert to ensure that the call is
effectively a no-op.
MozReview-Commit-ID: BXdcnHULWW2
--- a/gfx/ipc/CompositorOptions.h
+++ b/gfx/ipc/CompositorOptions.h
@@ -40,16 +40,21 @@ public:
: mUseAPZ(aUseAPZ)
, mUseWebRender(aUseWebRender)
{
}
bool UseAPZ() const { return mUseAPZ; }
bool UseWebRender() const { return mUseWebRender; }
+ bool operator==(const CompositorOptions& aOther) {
+ return mUseAPZ == aOther.mUseAPZ &&
+ mUseWebRender == aOther.mUseWebRender;
+ }
+
friend struct IPC::ParamTraits<CompositorOptions>;
private:
bool mUseAPZ;
bool mUseWebRender;
// Make sure to add new fields to the ParamTraits implementation
};
--- a/gfx/layers/ipc/CompositorBridgeParent.cpp
+++ b/gfx/layers/ipc/CompositorBridgeParent.cpp
@@ -1586,16 +1586,19 @@ CompositorBridgeParent::RecvMapAndNotify
}
mozilla::ipc::IPCResult
CompositorBridgeParent::RecvAdoptChild(const uint64_t& child)
{
APZCTreeManagerParent* parent;
{
MonitorAutoLock lock(*sIndirectLayerTreesLock);
+ // We currently don't support adopting children from one compositor to
+ // another if the two compositors don't have the same options.
+ MOZ_ASSERT(sIndirectLayerTrees[child].mParent->mOptions == mOptions);
NotifyChildCreated(child);
if (sIndirectLayerTrees[child].mLayerTree) {
sIndirectLayerTrees[child].mLayerTree->SetLayerManager(mLayerManager);
}
parent = sIndirectLayerTrees[child].mApzcTreeManagerParent;
}
if (mApzcTreeManager && parent) {
--- a/layout/ipc/RenderFrameParent.cpp
+++ b/layout/ipc/RenderFrameParent.cpp
@@ -211,17 +211,16 @@ RenderFrameParent::OwnerContentChanged(n
{
MOZ_ASSERT(!mFrameLoader || mFrameLoader->GetOwnerContent() == aContent,
"Don't build new map if owner is same!");
RefPtr<LayerManager> lm = mFrameLoader ? GetFrom(mFrameLoader) : nullptr;
// Perhaps the document containing this frame currently has no presentation?
if (lm && lm->GetCompositorBridgeChild()) {
mLayersConnected = lm->GetCompositorBridgeChild()->SendAdoptChild(mLayersId);
- lm->GetCompositorBridgeChild()->SendGetCompositorOptions(mLayersId, &mCompositorOptions);
FrameLayerBuilder::InvalidateAllLayers(lm);
}
}
void
RenderFrameParent::ActorDestroy(ActorDestroyReason why)
{
if (mLayersId != 0) {