diff --git a/embedding/components/windowwatcher/src/nsWindowWatcher.cpp b/embedding/components/windowwatcher/src/nsWindowWatcher.cpp index cec251016f7..6ea021be037 100644 --- a/embedding/components/windowwatcher/src/nsWindowWatcher.cpp +++ b/embedding/components/windowwatcher/src/nsWindowWatcher.cpp @@ -1921,7 +1921,14 @@ nsWindowWatcher::SizeOpenedDocShellItem(nsIDocShellTreeItem *aDocShellItem, } if (mainWidget) { nsCOMPtr ctx = mainWidget->GetDeviceContext(); - devPixelsPerCSSPixel = float(ctx->AppUnitsPerCSSPixel()) / ctx->AppUnitsPerDevPixel(); + /* we might be called by an extension after mainWidget::OnDestroy() */ + if (ctx) { + PRInt32 unitsPerDevPixel = ctx->AppUnitsPerDevPixel(); + if (unitsPerDevPixel) { + devPixelsPerCSSPixel = float(ctx->AppUnitsPerCSSPixel()) / + unitsPerDevPixel; + } + } } /* The current position and size will be unchanged if not specified