Bug 1392705 - part 4: Assert in ~nsBaseWidget on Android if the compositor session has not been destroyed r=jchen
MozReview-Commit-ID: IsLj3AWu0ZO
--- a/widget/nsBaseWidget.cpp
+++ b/widget/nsBaseWidget.cpp
@@ -347,16 +347,22 @@ nsBaseWidget::~nsBaseWidget()
if (mLayerManager) {
if (BasicLayerManager* mgr = mLayerManager->AsBasicLayerManager()) {
mgr->ClearRetainerWidget();
}
}
FreeShutdownObserver();
RevokeTransactionIdAllocator();
+#if defined(MOZ_WIDGET_ANDROID)
+ // The mCompositorSession should have been cleaned up in nsBaseWidget::Shutdown()
+ // DestroyLayerManager() will call DestroyCompositor() which will crash if
+ // called from nsBaseWidget destructor. See Bug 1392705
+ MOZ_ASSERT(!mCompositorSession);
+#endif // defined(MOZ_WIDGET_ANDROID)
DestroyLayerManager();
#ifdef NOISY_WIDGET_LEAKS
gNumWidgets--;
printf("WIDGETS- = %d\n", gNumWidgets);
#endif
delete mOriginalBounds;