Delete default context in ewk
authorArnaud Renevier <a.renevier@samsung.com>
Fri, 27 Feb 2015 23:02:36 +0000 (15:02 -0800)
committerYoungsoo Choi <kenshin.choi@samsung.com>
Tue, 10 Jul 2018 06:57:09 +0000 (06:57 +0000)
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 <a.renevier@samsung.com>
tizen_src/ewk/efl_integration/public/ewk_context.cc
tizen_src/ewk/efl_integration/public/ewk_main.cc
tizen_src/impl/ewk_global_data.cc

index 2252953..32a2244 100644 (file)
@@ -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<Ewk_Context*>(WebContext::DefaultContext());
+  if (!default_context_) {
+    default_context_ = WebContext::Create(false);
+    default_context_->AddRef();
+  }
+  return static_cast<Ewk_Context*>(default_context_);
 }
 
 Ewk_Context* ewk_context_new()
index 4b56ba9..128d5de 100644 (file)
@@ -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();
 }
 
index a8e776c..d5b6469 100644 (file)
@@ -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();