Fix WebBrowser crash issue in exit process. 79/320779/4
authorjiangyuwei <yuwei.jiang@samsung.com>
Fri, 22 Nov 2024 14:43:19 +0000 (22:43 +0800)
committerBot Blink <blinkbot@samsung.com>
Sat, 23 Nov 2024 11:07:08 +0000 (11:07 +0000)
Sometimes, DoDelayedWork() is called after MessagePumpForUIEfl is released.
In such case, |schedule_delayed_work_timer_| may be already deleted. So,
check whether |pipe_| is nullptr or not to avoid crash.

Change-Id: Ia2874e6680011d9c90739763b3bf9ee531ef0e37
Signed-off-by: jiangyuwei <yuwei.jiang@samsung.com>
tizen_src/chromium_impl/base/message_loop/message_pump_for_ui_efl.cc

index 4eb0b0ddbe9e34e25662f41b48da8d7105783b36..d8c258d0e5d52112f250559622817f999154d6ca 100644 (file)
@@ -178,8 +178,13 @@ void MessagePumpForUIEfl::DoWork() {
 }
 
 void MessagePumpForUIEfl::DoDelayedWork() {
-  if (!schedule_delayed_work_timer_)
-    LOG(INFO) << __FUNCTION__;
+  // Sometimes, DoDelayedWork() is called after MessagePumpForUIEfl is released.
+  // In such case, |schedule_delayed_work_timer_| may be already deleted. So,
+  // check whether |pipe_| is nullptr or not to avoid crash.
+  if (!pipe_) {
+    LOG(ERROR) << "MessagePumpForUIEfl is already released";
+    return;
+  }
   Delegate::NextWorkInfo next_work_info = delegate_->DoWork();
   if (!next_work_info.delayed_run_time.is_max())
     ScheduleDelayedWork(next_work_info);