From: zhishun.zhou Date: Thu, 16 Oct 2014 10:17:50 +0000 (+0800) Subject: [Tizen][M34-Merge] Implement favicon database get API X-Git-Tag: submit/tizen/20201118.160233~1579 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4bde239e4de6b7ef6ffbf119b5d164ebbabe9727;p=platform%2Fframework%2Fweb%2Fchromium-efl.git [Tizen][M34-Merge] Implement favicon database get API This patch is needed to support ewk_context_favicon_database_get. This is code migration from m34 beta to DEV, Original patch info: http://suprem.sec.samsung.net/gerrit/#/c/6865/ Bug: http://107.108.218.239/bugzilla/show_bug.cgi?id=7636 Reviewed by: Antonio Gomes, SeungSeop Park Change-Id: Ida3a261efa38ea4b636eb1abe65da64f107fc244 Signed-off-by: zhishun.zhou --- diff --git a/tizen_src/ewk/efl_integration/private/ewk_favicon_database_private.h b/tizen_src/ewk/efl_integration/private/ewk_favicon_database_private.h index f4970b2..5bfd2cc 100644 --- a/tizen_src/ewk/efl_integration/private/ewk_favicon_database_private.h +++ b/tizen_src/ewk/efl_integration/private/ewk_favicon_database_private.h @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#if defined(OS_TIZEN_TV) && !defined(EWK_BRINGUP) +#if defined(OS_TIZEN_TV) #ifndef ewk_favicon_database_private_h #define ewk_favicon_database_private_h @@ -15,6 +15,12 @@ struct EwkFaviconDatabase { public: + static EwkFaviconDatabase *Instance() + { + static EwkFaviconDatabase database; + return &database; + } + EwkFaviconDatabase() :favicon_database(NULL) { diff --git a/tizen_src/ewk/efl_integration/public/ewk_context.cc b/tizen_src/ewk/efl_integration/public/ewk_context.cc index 04ec1a4..02d3d4f 100644 --- a/tizen_src/ewk/efl_integration/public/ewk_context.cc +++ b/tizen_src/ewk/efl_integration/public/ewk_context.cc @@ -531,11 +531,11 @@ Ewk_Application_Cache_Manager* ewk_context_application_cache_manager_get(const E Ewk_Favicon_Database* ewk_context_favicon_database_get(const Ewk_Context* ewkContext) { -#if defined(OS_TIZEN_TV) && !defined(EWK_BRINGUP) +#if defined(OS_TIZEN_TV) EINA_SAFETY_ON_NULL_RETURN_VAL(ewkContext, 0); - Ewk_Favicon_Database favicon_database; - favicon_database.InitEwkFaviconDatabase(ewkContext); - return (&favicon_database); + Ewk_Favicon_Database *favicon_database = Ewk_Favicon_Database::Instance(); + favicon_database->InitEwkFaviconDatabase(ewkContext); + return favicon_database; #else LOG_EWK_API_MOCKUP("Only for Tizen TV Browser"); return NULL; diff --git a/tizen_src/impl/browser/favicon/favicon_service.cc b/tizen_src/impl/browser/favicon/favicon_service.cc index a68bcf2..4804cea 100644 --- a/tizen_src/impl/browser/favicon/favicon_service.cc +++ b/tizen_src/impl/browser/favicon/favicon_service.cc @@ -70,3 +70,9 @@ void FaviconService::Clear() { CHECK_OPEN; m_database->Clear(); } + +#if defined(OS_TIZEN_TV) +FaviconDatabase* FaviconService::GetFaviconDatabase() { + return FaviconDatabase::Instance(); +} +#endif diff --git a/tizen_src/impl/browser/favicon/favicon_service.h b/tizen_src/impl/browser/favicon/favicon_service.h index f124c8b..5359270 100644 --- a/tizen_src/impl/browser/favicon/favicon_service.h +++ b/tizen_src/impl/browser/favicon/favicon_service.h @@ -31,6 +31,9 @@ class FaviconService { bool ExistsForPageURL(const GURL &pageUrl) const; bool ExistsForFaviconURL(const GURL &iconUrl) const; void Clear(); +#if defined(OS_TIZEN_TV) + static FaviconDatabase* GetFaviconDatabase(); +#endif private: FaviconDatabase *m_database; diff --git a/tizen_src/impl/eweb_context.cc b/tizen_src/impl/eweb_context.cc index fb51e93..a160ebc 100644 --- a/tizen_src/impl/eweb_context.cc +++ b/tizen_src/impl/eweb_context.cc @@ -464,6 +464,12 @@ bool EWebContext::SetFaviconDatabasePath(const char* path) { return fs.SetDatabasePath(path); } +#if defined(OS_TIZEN_TV) +FaviconDatabase* EWebContext::GetFaviconDatabase() { + return FaviconService::GetFaviconDatabase(); +} +#endif + Evas_Object *EWebContext::AddFaviconObject(const char* uri, Evas* canvas) const { if (uri == NULL || canvas == NULL) { return NULL; diff --git a/tizen_src/impl/eweb_context.h b/tizen_src/impl/eweb_context.h index e570967..4df8cb4 100644 --- a/tizen_src/impl/eweb_context.h +++ b/tizen_src/impl/eweb_context.h @@ -20,6 +20,9 @@ class WrtIpcMessageData; typedef std::map HTTPCustomHeadersEflMap; class CookieManager; +#if defined(OS_TIZEN_TV) +class FaviconDatabase; +#endif namespace content { class BrowserContextEfl; @@ -97,6 +100,9 @@ class EWebContext { void ClearCandidateData(); void ClearPasswordData(); void Initialize(Evas_Object* object); +#if defined(OS_TIZEN_TV) + FaviconDatabase* GetFaviconDatabase(); +#endif private: EWebContext(); diff --git a/tizen_src/impl/tizen_webview/public/tw_web_context.cc b/tizen_src/impl/tizen_webview/public/tw_web_context.cc index ca58174..a2fe331 100644 --- a/tizen_src/impl/tizen_webview/public/tw_web_context.cc +++ b/tizen_src/impl/tizen_webview/public/tw_web_context.cc @@ -174,6 +174,12 @@ bool WebContext::SetFaviconDatabasePath(const char *path) { return impl->SetFaviconDatabasePath(path); } +#if defined(OS_TIZEN_TV) +FaviconDatabase* WebContext::GetFaviconDatabase() { + return impl->GetFaviconDatabase(); +} +#endif + Evas_Object * WebContext::AddFaviconObject(const char *uri, Evas *canvas) const { return impl->AddFaviconObject(uri, canvas); } diff --git a/tizen_src/impl/tizen_webview/public/tw_web_context.h b/tizen_src/impl/tizen_webview/public/tw_web_context.h index fba0649..9161348 100644 --- a/tizen_src/impl/tizen_webview/public/tw_web_context.h +++ b/tizen_src/impl/tizen_webview/public/tw_web_context.h @@ -16,6 +16,9 @@ class CookieManager; class Ewk_Cookie_Manager; class EWebContext; +#if defined(OS_TIZEN_TV) +class FaviconDatabase; +#endif //struct Ewk_IPC_Wrt_Message_Data; namespace content { @@ -118,6 +121,9 @@ struct WebContext : public tizen_webview::RefCounted { // Note: Do not use outside chromium EWebContext* GetImpl() { return impl; } +#if defined(OS_TIZEN_TV) + FaviconDatabase* GetFaviconDatabase(); +#endif private: EWebContext* impl;