Bug 1277167 - CreateTaskbarTabPreview should return error when we cannot get nsWindow object from toplevel HWND. r?jimm
CreateTaskbarTabPreview doesn't check whether window is alive. So we should check it to avoid crash.
MozReview-Commit-ID: F4nPdMnOajx
--- a/widget/windows/WinTaskbar.cpp
+++ b/widget/windows/WinTaskbar.cpp
@@ -385,16 +385,21 @@ WinTaskbar::CreateTaskbarTabPreview(nsID
NS_ENSURE_ARG_POINTER(shell);
NS_ENSURE_ARG_POINTER(controller);
HWND toplevelHWND = ::GetAncestor(GetHWNDFromDocShell(shell), GA_ROOT);
if (!toplevelHWND)
return NS_ERROR_INVALID_ARG;
+ nsWindow* window = WinUtils::GetNSWindowPtr(toplevelHWND);
+ if (!window || window->Destroyed()) {
+ return NS_ERROR_FAILURE;
+ }
+
RefPtr<TaskbarTabPreview> preview(new TaskbarTabPreview(mTaskbar, controller, toplevelHWND, shell));
if (!preview)
return NS_ERROR_OUT_OF_MEMORY;
preview.forget(_retval);
return NS_OK;
}