22 lines
999 B
Diff
22 lines
999 B
Diff
diff --git chrome/browser/printing/print_backend_service_manager.cc chrome/browser/printing/print_backend_service_manager.cc
|
|
index 9f3d26990651f..e89f779746ac5 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();
|
|
#endif
|