From: Piotr Sieduszewski
Date: Wed, 16 Apr 2014 13:25:37 +0000 (+0200)
Subject: Implement EWebContext::Delete
X-Git-Tag: submit/tizen/20201118.160233~2024
X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=3edc30d9d03e435f469846bb0fd93af741af4854;p=platform%2Fframework%2Fweb%2Fchromium-efl.git
Implement EWebContext::Delete
Issue: CBWEBVIEW-226
Change-Id: Ic452609615301162d09944a36f68fffb8dd4330f
---
diff --git a/tizen_src/impl/eweb_context.cc b/tizen_src/impl/eweb_context.cc
index b70633c..f69ef2e 100644
--- a/tizen_src/impl/eweb_context.cc
+++ b/tizen_src/impl/eweb_context.cc
@@ -232,6 +232,20 @@ EWebContext* EWebContext::DefaultContext() {
return default_context_;
}
+void EWebContext::Delete(EWebContext*const context) {
+ if (!context)
+ return;
+
+ if (context == default_context_ && context->HasOneRef()) {
+ // With chromium engine there is only single context
+ // which is default context hence this delete
+ // function will not be implemented
+ NOTIMPLEMENTED();
+ return;
+ }
+ context->Release();
+}
+
EWebContext::EWebContext()
: browser_context_(new BrowserContextEfl(this))
, m_pixmap(0) {
@@ -244,6 +258,8 @@ EWebContext::EWebContext()
EWebContext::~EWebContext() {
VibrationProviderClient::DeleteInstance();
+ if (this == default_context_)
+ default_context_= NULL;
}
// static
diff --git a/tizen_src/impl/eweb_context.h b/tizen_src/impl/eweb_context.h
index d0aaee2..83d7ea5 100644
--- a/tizen_src/impl/eweb_context.h
+++ b/tizen_src/impl/eweb_context.h
@@ -60,6 +60,7 @@ class EWebContext : public EWebObject {
EWebContext();
static EWebContext* DefaultContext();
+ static void Delete(EWebContext*);
content::BrowserContextEfl* browser_context() const { return browser_context_.get(); }