Crashes were failing CHECKs, which expected the client to release all
evas WebView objects before calling ewk_shutdown. Client should fix that,
but Chromium shouldn't crash because of client's bug, so checks were
replaced with information in log.
Bug: http://107.108.218.239/bugzilla/show_bug.cgi?id=14628
Reviewed by: g.czajkowski, msu.koo
Change-Id: I23b09de78f2536608621a1de07b7de8c956c1ab3
Signed-off-by: Tomasz Czekala <t.czekala@samsung.com>
}
PersonalDataManagerFactory::~PersonalDataManagerFactory() {
- CHECK(personal_data_manager_id_map_.IsEmpty());
+ if (!personal_data_manager_id_map_.IsEmpty())
+ LOG(ERROR) << "Client didn't destroy all WebView objects"
+ << " before calling ewk_shutdown";
}
void PersonalDataManagerFactory::SetCallback(
GetPermissionPopupManager()->DeleteAllPermissionRequest();
permission_popup_manager_.reset();
+
+ if (context_->GetImpl()->browser_context()->IsOffTheRecord())
+ Ewk_Context::Delete(context_.get());
}
void EWebView::ReleasePopupMenuList() {
// be called only when all webviews are closed. This won't check if all
// webviews are destroyed but we will be sure that all webviews using
// default web context are destroyed.
- CHECK(default_context_->HasOneRef());
+ if (!default_context_->HasOneRef())
+ LOG(ERROR) << "Client didn't destroy all WebView objects"
+ << " before calling ewk_shutdown";
default_context_->Release();
- CHECK(default_context_ == NULL);
}
}
*
* If the reference count reaches 0 WebKit's instance is destroyed.
*
+ * Before calling ewk_shutdown client should delete all WebView objects it received from the engine.
+ *
* @return a reference count of WebKit's instance
*/
EXPORT_API int ewk_shutdown(void);