[M108 Migration][VD]Add NULL pointer checking and logs for EWebView::Hide 45/289245/4
authorjiangyuwei <yuwei.jiang@samsung.com>
Fri, 3 Mar 2023 07:03:04 +0000 (15:03 +0800)
committerBot Blink <blinkbot@samsung.com>
Wed, 15 Mar 2023 06:25:44 +0000 (06:25 +0000)
1. The pointer(web_contents_) didn't do NULL check before use.
This may cause coredump if web_contents_ is NULL. So add NULL pointer
checking for function Hide.
2. Add some logs for function Hide and EWebView and ~EWebView to trace
certain WebView instance's life cycle.

Reference:
 - https://review.tizen.org/gerrit/#/c/285660/

Change-Id: I315c2e84f7c2f3260af2ddc77ccfad1b9f7e9232
Signed-off-by: jiangyuwei <yuwei.jiang@samsung.com>
tizen_src/ewk/efl_integration/eweb_view.cc
tizen_src/ewk/efl_integration/private/ewk_view_private.cc

index 3963c4a..cb440cc 100644 (file)
@@ -357,22 +357,23 @@ EWebView::EWebView(Ewk_Context* context, Evas_Object* object)
       rwi_info_showed_(false),
 #endif
       is_initialized_(false) {
- if (evas_object_) {
-   evas_object_smart_callback_add(evas_object_,
-                                  kVisibleContentChangedSignalName,
-                                  VisibleContentChangedCallback, this);
-
-   evas_object_smart_callback_add(evas_object_, kCustomScrollBeginSignalName,
-                                   OnCustomScrollBeginCallback, this);
-   evas_object_smart_callback_add(evas_object_, kCustomScrollEndSignalName,
-                                   OnCustomScrollEndCallback, this);
-   evas_object_event_callback_add(evas_object_, EVAS_CALLBACK_FOCUS_IN,
-                                  OnViewFocusIn, this);
-   evas_object_event_callback_add(evas_object_, EVAS_CALLBACK_FOCUS_OUT,
+  LOG(INFO) << "EWebView: " << this;
+  if (evas_object_) {
+    evas_object_smart_callback_add(evas_object_,
+                                    kVisibleContentChangedSignalName,
+                                    VisibleContentChangedCallback, this);
+
+    evas_object_smart_callback_add(evas_object_, kCustomScrollBeginSignalName,
+                                    OnCustomScrollBeginCallback, this);
+    evas_object_smart_callback_add(evas_object_, kCustomScrollEndSignalName,
+                                    OnCustomScrollEndCallback, this);
+    evas_object_event_callback_add(evas_object_, EVAS_CALLBACK_FOCUS_IN,
+                                    OnViewFocusIn, this);
+    evas_object_event_callback_add(evas_object_, EVAS_CALLBACK_FOCUS_OUT,
                                   OnViewFocusOut, this);
 #if BUILDFLAG(IS_TIZEN)
-   window_rotate_handler_ = ecore_event_handler_add(
-       ECORE_WL2_EVENT_WINDOW_ROTATE, RotateWindowCb, this);
+    window_rotate_handler_ = ecore_event_handler_add(
+      ECORE_WL2_EVENT_WINDOW_ROTATE, RotateWindowCb, this);
 #endif
   }
 }
@@ -443,6 +444,7 @@ void EWebView::Initialize() {
 }
 
 EWebView::~EWebView() {
+  LOG(INFO) << "EWebView: " << this;
   auto cbce = static_cast<ContentBrowserClientEfl*>(
       content::GetContentClientExport()->browser());
 #if !defined(EWK_BRINGUP)  // FIXME: m94 bringup
@@ -875,7 +877,10 @@ void EWebView::Show() {
 }
 
 void EWebView::Hide() {
+  LOG(INFO) << "EWebView: " << this;
   evas_object_hide(native_view_);
+  if (!web_contents_)
+    return;
   web_contents_->WasHidden();
 }
 
index c12ed9a..91efa95 100644 (file)
@@ -267,6 +267,7 @@ Evas_Object* CreateWebViewAsEvasObject(Ewk_Context* context,
   if (!view) {
     return NULL;
   }
+  LOG(INFO) << "EWebView: " << view << ", ewk_view:" << wv_evas_object;
   Ewk_View_Smart_Data* sd = GetEwkViewSmartDataFromEvasObject(wv_evas_object);
   if (!sd) {
     delete view;