cef/patch/patches/chrome_browser_printing_oop_osr.patch
2024-07-30 11:10:09 -04:00

22 lines
1017 B
Diff

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;