cef/patch/patches/chrome_browser_printing_oop...

22 lines
1004 B
Diff

diff --git chrome/browser/printing/print_backend_service_manager.cc chrome/browser/printing/print_backend_service_manager.cc
index ea046f5f1dfe3..0a915b7e3a091 100644
--- chrome/browser/printing/print_backend_service_manager.cc
+++ chrome/browser/printing/print_backend_service_manager.cc
@@ -74,7 +74,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();
return 0;