diff --git a/gfx/thebes/gfxPlatform.cpp b/gfx/thebes/gfxPlatform.cpp index 112a521f7a8..9a92ae54a10 100644 --- a/gfx/thebes/gfxPlatform.cpp +++ b/gfx/thebes/gfxPlatform.cpp @@ -2208,7 +2208,10 @@ gfxPlatform::NotifyCompositorCreated(LayersBackend aBackend) return; } - NS_ASSERTION(mCompositorBackend == LayersBackend::LAYERS_NONE, "Compositor backend changed."); + if (mCompositorBackend != LayersBackend::LAYERS_NONE) { + gfxCriticalNote << "Compositors might be mixed (" + << int(mCompositorBackend) << "," << int(aBackend) << ")"; + } // Set the backend before we notify so it's available immediately. mCompositorBackend = aBackend; diff --git a/widget/nsBaseWidget.cpp b/widget/nsBaseWidget.cpp index 5b8965c17ee..59a368078d5 100644 --- a/widget/nsBaseWidget.cpp +++ b/widget/nsBaseWidget.cpp @@ -1132,7 +1132,11 @@ void nsBaseWidget::CreateCompositor(int aWidth, int aHeight) mLayerManager = lm.forget(); - gfxPlatform::GetPlatform()->NotifyCompositorCreated(mLayerManager->GetCompositorBackendType()); + if (mWindowType == eWindowType_toplevel) { + // Only track compositors for top-level windows, since other window types + // may use the basic compositor. + gfxPlatform::GetPlatform()->NotifyCompositorCreated(mLayerManager->GetCompositorBackendType()); + } } bool nsBaseWidget::ShouldUseOffMainThreadCompositing()