From cbe3cb770aa3f2dad92340546e3fbdecd742ed03 Mon Sep 17 00:00:00 2001 From: Shelley Vohr Date: Wed, 16 Oct 2024 19:15:21 +0200 Subject: [PATCH] fix: Linux crash after `webContents.print()` with no parent window (#44246) fix: Linux crash after print with no parent window --- patches/chromium/printing.patch | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/patches/chromium/printing.patch b/patches/chromium/printing.patch index d02dd3b348b7..4f895054245d 100644 --- a/patches/chromium/printing.patch +++ b/patches/chromium/printing.patch @@ -926,3 +926,23 @@ index 1e15568ad872c01c7c588ced81897f8dc229247a..ca528863a2dab2f437bbe95b343ccd33 namespace sandbox::policy { base::FilePath GetCanonicalPath(const base::FilePath& path) { +diff --git a/ui/gtk/gtk_util.cc b/ui/gtk/gtk_util.cc +index d86fbcf969f2fa0d176ead903703ab612e5464c2..6b963ea8401d20e655d068a69105586814bab320 100644 +--- a/ui/gtk/gtk_util.cc ++++ b/ui/gtk/gtk_util.cc +@@ -227,9 +227,13 @@ aura::Window* GetAuraTransientParent(GtkWidget* dialog) { + } + + void ClearAuraTransientParent(GtkWidget* dialog, aura::Window* parent) { ++ if (!parent || !parent->GetHost()) { ++ return; ++ } ++ + g_object_set_data(G_OBJECT(dialog), kAuraTransientParent, nullptr); +- GtkUi::GetPlatform()->ClearTransientFor( +- parent->GetHost()->GetAcceleratedWidget()); ++ gfx::AcceleratedWidget parent_id = parent->GetHost()->GetAcceleratedWidget(); ++ GtkUi::GetPlatform()->ClearTransientFor(parent_id); + } + + base::OnceClosure DisableHostInputHandling(GtkWidget* dialog,