From df2fcc86b7bfe2157776393f38709ed9b1ba97fd Mon Sep 17 00:00:00 2001 From: Marshall Greenblatt Date: Thu, 12 Apr 2018 14:35:57 -0400 Subject: [PATCH] Linux: Fix crash when closing popup after printing (issue #2422) --- tests/cefclient/browser/print_handler_gtk.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/cefclient/browser/print_handler_gtk.cc b/tests/cefclient/browser/print_handler_gtk.cc index d00f0431b..9a822b7a9 100644 --- a/tests/cefclient/browser/print_handler_gtk.cc +++ b/tests/cefclient/browser/print_handler_gtk.cc @@ -513,7 +513,11 @@ struct ClientPrintHandlerGtk::PrintHandler { } void OnJobCompleted(GtkPrintJob* print_job, GError* error) { - job_callback_->Continue(); + // Continue() will result in a call to ClientPrintHandlerGtk::OnPrintReset + // which deletes |this|. Execute it asnychronously so the call stack has a + // chance to unwind. + CefPostTask(TID_UI, base::Bind(&CefPrintJobCallback::Continue, + job_callback_.get())); job_callback_ = NULL; }