diff --git chrome/browser/printing/print_backend_service_manager.cc chrome/browser/printing/print_backend_service_manager.cc index aef82204869ce..b30d275c97ade 100644 --- chrome/browser/printing/print_backend_service_manager.cc +++ chrome/browser/printing/print_backend_service_manager.cc @@ -75,7 +75,15 @@ PrintBackendServiceManager* g_print_backend_service_manager_singleton = nullptr; // to support modal dialogs from OOP. uint32_t NativeViewToUint(gfx::NativeView view) { #if BUILDFLAG(IS_WIN) - return base::win::HandleToUint32(views::HWNDForNativeView(view)); + // |view| will be nullptr with CEF OSR. In that case return the desktop + // window handle (same behavior as PrintingContextWin::GetRootWindow) to + // avoid a DCHECK in PrintingContextSystemDialogWin::AskUserForSettings + // with OOP printing. + HWND hwnd = views::HWNDForNativeView(view); + if (!hwnd) { + hwnd = ::GetDesktopWindow(); + } + return base::win::HandleToUint32(hwnd); #else NOTREACHED_IN_MIGRATION(); return 0;