fix: Linux crash after webContents.print() with no parent window (#44282)

fix: Linux crash after print with no parent window

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
This commit is contained in:
trop[bot] 2024-10-18 11:25:31 -04:00 committed by GitHub
parent aaeedc768c
commit 7cfbdfaf34
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -949,3 +949,23 @@ index e89fd87753bad3c5663fa53f8dcc4542e7e307e5..2b433a0705234af6f9808ee741a9795d
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,