From b13235a3be5de4768c9e9e6357a0a59779a40073 Mon Sep 17 00:00:00 2001 From: Arnaud Renevier Date: Fri, 27 Feb 2015 15:02:36 -0800 Subject: [PATCH] Delete default context in ewk Default Web context is managed by ewk. So it makes more sense to delete it in ewk layer than in efl. This will allow us to get rid of WebContext::defaultContext in a followup patch. Reviewed by: Antonio Gomes, Piotr Tworek Change-Id: I6ada8f2e46d2cf19ccacf072d384fd11008c3433 Signed-off-by: Arnaud Renevier --- tizen_src/ewk/efl_integration/public/ewk_context.cc | 8 +++++++- tizen_src/ewk/efl_integration/public/ewk_main.cc | 2 ++ tizen_src/impl/ewk_global_data.cc | 2 -- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/tizen_src/ewk/efl_integration/public/ewk_context.cc b/tizen_src/ewk/efl_integration/public/ewk_context.cc index 2252953..32a2244 100644 --- a/tizen_src/ewk/efl_integration/public/ewk_context.cc +++ b/tizen_src/ewk/efl_integration/public/ewk_context.cc @@ -26,6 +26,8 @@ using tizen_webview::WebContext; +static WebContext* default_context_ = NULL; + Ewk_Context *ewk_context_ref(Ewk_Context *context) { EINA_SAFETY_ON_NULL_RETURN_VAL(context, NULL); @@ -47,7 +49,11 @@ Ewk_Cookie_Manager* ewk_context_cookie_manager_get(const Ewk_Context* context) Ewk_Context* ewk_context_default_get() { - return static_cast(WebContext::DefaultContext()); + if (!default_context_) { + default_context_ = WebContext::Create(false); + default_context_->AddRef(); + } + return static_cast(default_context_); } Ewk_Context* ewk_context_new() diff --git a/tizen_src/ewk/efl_integration/public/ewk_main.cc b/tizen_src/ewk/efl_integration/public/ewk_main.cc index 4b56ba9..128d5de 100644 --- a/tizen_src/ewk/efl_integration/public/ewk_main.cc +++ b/tizen_src/ewk/efl_integration/public/ewk_main.cc @@ -34,6 +34,7 @@ #endif #include "public/ewk_log.h" +#include "public/ewk_view.h" #include "private/webview_delegate_ewk.h" #include "private/ewk_private.h" #include "private/ewk_main_private.h" @@ -191,6 +192,7 @@ void _ewk_shutdown_web_engine(void) { //TODO: any web engine destroy to be done here CommandLineEfl::Shutdown(); + ewk_context_delete(ewk_context_default_get()); EwkGlobalData::Delete(); } diff --git a/tizen_src/impl/ewk_global_data.cc b/tizen_src/impl/ewk_global_data.cc index a8e776ca..d5b6469 100644 --- a/tizen_src/impl/ewk_global_data.cc +++ b/tizen_src/impl/ewk_global_data.cc @@ -62,8 +62,6 @@ EwkGlobalData::EwkGlobalData() EwkGlobalData::~EwkGlobalData() { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); - // Release default context - tizen_webview::WebContext::DefaultContextRelease(); // We need to pretend that message loop was stopped so chromium unwinds correctly MessageLoop *loop = MessageLoop::current(); loop->QuitNow(); -- 2.7.4