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

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-17 22:21:57 -04:00 committed by GitHub
parent 32822cd747
commit ad9bf6b041
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -926,3 +926,23 @@ index 7a65f7f2d68edb74fbaf74fe41949ed9cc198b25..4d7c59e93d71b624d4e93e643932c816
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,