optimize performance
authorSeongjun Yim <se201.yim@samsung.com>
Thu, 24 Oct 2013 10:06:01 +0000 (19:06 +0900)
committerSeongjun Yim <se201.yim@samsung.com>
Thu, 24 Oct 2013 10:09:23 +0000 (19:09 +0900)
Change-Id: Iecb4deb63e5ed94aacb2e6e37319b2a694711a3e
Signed-off-by: Seongjun Yim <se201.yim@samsung.com>
src/controls/FWebCtrl_CertificateConfirmPopup.cpp
src/controls/FWebCtrl_EflWebkit.cpp
src/controls/FWebCtrl_EflWebkit.h
src/controls/FWebCtrl_GeolocationPermissionManagerImpl.cpp
src/controls/FWebCtrl_UserConfirmPopup.cpp
src/controls/FWebCtrl_WebImpl.cpp
src/controls/FWebCtrl_WebManager.cpp
src/controls/FWebCtrl_WebManager.h

index e30379a..0ef39ae 100755 (executable)
@@ -39,7 +39,7 @@
 #include <FUi_ControlManager.h>
 #include <FUi_ResourceManager.h>
 #include "FWebCtrl_CertificateConfirmPopup.h"
-#include "FWebCtrl_EflWebkit.h"
+#include "FWebCtrl_WebManager.h"
 #include "FWebCtrl_Utility.h"
 #include "FWebCtrl_WebImpl.h"
 
index 611a321..4504a4f 100755 (executable)
 #include <FAppApp.h>
 #include <FGrpPoint.h>
 #include <FGrpRectangle.h>
-#include <FIoDbEnumerator.h>
 #include <FSysVibrator.h>
 #include <FUiAnimVisualElement.h>
-#include <FApp_AppInfo.h>
 #include <FBaseSysLog.h>
 #include <FBase_StringConverter.h>
 #include <FGrp_CoordinateSystem.h>
-#include <FIo_DirectoryImpl.h>
-#include <FIo_DatabaseImpl.h>
-#include <FIo_FileImpl.h>
 #include <FSecCert_CertService.h>
-#include <FSys_VibratorImpl.h>
 #include <FUi_Control.h>
 #include <FUi_Window.h>
 #include "FUiAnim_EflNode.h"
@@ -64,22 +58,10 @@ namespace Tizen { namespace Web { namespace Controls
 
 static const char PLUGIN_DIRECTORY_PATH[] =  "/usr/lib/osp/browser-plugin/";
 
-
-extern const wchar_t CUSTOM_DB_DIRECTORY_PATH[] = L"data/.webkit/customDatabase/";
-extern const wchar_t USER_CONFIRM_DB_NAME[] = L"userConfirm.db";
-extern const wchar_t GEOLOCATION_TABLE_NAME[] = L"geolocationPermission";
-extern const wchar_t CUSTOM_PROTOCOL_TABLE_NAME[] = L"customProtocol";
-extern const wchar_t CUSTOM_CONTENT_TABLE_NAME[] = L"customContent";
-extern const wchar_t CERTIFICATE_TABLE_NAME[] = L"certificate";
-
-
 static const wchar_t ICON_DB_DIRECTORY_PATH[] = L"data/.webkit/iconDatabase/";
 static const wchar_t ICON_DB_FILE_NAME[] = L"icon.db";
 
 
-static const int CUSTOM_DB_TABLE_COUNT= 4;
-
-
 _EflWebkit::_EflWebkit(void)
        : __pWebFrame(null)
        , __pContainerVisualElement(null)
@@ -94,10 +76,15 @@ _EflWebkit::~_EflWebkit(void)
        {
                __pContainerVisualElement->SetSurface(null);
        }
+
        delete __pSurface;
-//     evas_object_smart_member_del(__pWebFrame);
-       evas_object_del(__pWebFrame);
-       __pWebFrame = null;
+       __pSurface = null;
+
+       if (__pWebFrame)
+       {
+               evas_object_del(__pWebFrame);
+               __pWebFrame = null;
+       }
 }
 
 
@@ -177,12 +164,6 @@ _EflWebkit::SetWebConfiguration(void) const
 
        ewk_context_icon_database_path_set(pContext, pIconPath.get());
 
-       r = CreateResourceDirectory();
-       SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
-
-       r = InitializeCustomDb();
-       SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
-
        InitializeCustomHeader();
 
        return E_SUCCESS;
@@ -190,99 +171,6 @@ _EflWebkit::SetWebConfiguration(void) const
 
 
 result
-_EflWebkit::CreateResourceDirectory(void) const
-{
-       String html5FeaturesPath(Tizen::App::App::GetInstance()->GetAppRootPath() + CUSTOM_DB_DIRECTORY_PATH);
-
-       if (!_FileImpl::IsFileExist(html5FeaturesPath))
-       {
-               result r = E_SUCCESS;
-
-               r = _DirectoryImpl::Create(html5FeaturesPath, true);
-               SysTryReturnResult(NID_WEB_CTRL, r == E_SUCCESS, E_SYSTEM, "A system error has been occurred. create html5 features directory.");
-       }
-
-       return E_SUCCESS;
-}
-
-
-result
-_EflWebkit::InitializeCustomDb(void) const
-{
-       result r = E_SUCCESS;
-
-       _DatabaseImpl db;
-       String path(Tizen::App::App::GetInstance()->GetAppRootPath() + CUSTOM_DB_DIRECTORY_PATH + USER_CONFIRM_DB_NAME);
-       String geolocationTable(GEOLOCATION_TABLE_NAME);
-       String protocolTable(CUSTOM_PROTOCOL_TABLE_NAME);
-       String contentTable(CUSTOM_CONTENT_TABLE_NAME);
-       String certificateTable(CERTIFICATE_TABLE_NAME);
-
-       r = db.Construct(path, "a+", null);
-       SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
-
-       std::unique_ptr<DbEnumerator>   pEnum(db.QueryN(L"Select count(name) from sqlite_master Where type='table' And name in ('" + geolocationTable + L"', '" + protocolTable + L"', '" + contentTable + L"', '" + certificateTable + L"')"));
-       if (pEnum.get())
-       {
-               int count = 0;
-
-               r = pEnum->MoveNext();
-               SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, false, r, "[%s] Propagating.", GetErrorMessage(r));
-
-               r = pEnum->GetIntAt(0, count);
-               SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, false, r, "[%s] Propagating.", GetErrorMessage(r));
-
-               if (count == CUSTOM_DB_TABLE_COUNT)
-               {
-                       return E_SUCCESS;
-               }
-       }
-
-       pEnum.reset();
-       pEnum = std::unique_ptr<DbEnumerator>(db.QueryN(L"Select name from sqlite_master Where type='table' And name = '" + geolocationTable + L"'"));
-       if (!pEnum.get())
-       {
-               r = db.ExecuteSql(
-                       L"CREATE TABLE IF NOT EXISTS " + geolocationTable + L"(id INTEGER PRIMARY KEY AUTOINCREMENT, origin TEXT, permission INTEGER)",
-                       true);
-               SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
-       }
-
-       pEnum.reset();
-       pEnum = std::unique_ptr<DbEnumerator>(db.QueryN(L"Select name from sqlite_master Where type='table' And name = '" + protocolTable + L"'"));
-       if (!pEnum.get())
-       {
-               r = db.ExecuteSql(
-                       L"CREATE TABLE IF NOT EXISTS " + protocolTable + L"(id INTEGER PRIMARY KEY AUTOINCREMENT, baseUrl TEXT, url TEXT, mime TEXT, allow INTEGER)",
-                       true);
-               SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
-       }
-
-       pEnum.reset();
-       pEnum = std::unique_ptr<DbEnumerator>(db.QueryN(L"Select name from sqlite_master Where type='table' And name = '" + contentTable + L"'"));
-       if (!pEnum.get())
-       {
-               r = db.ExecuteSql(
-                       L"CREATE TABLE IF NOT EXISTS " + contentTable + L"(id INTEGER PRIMARY KEY AUTOINCREMENT, baseUrl TEXT, url TEXT, mime TEXT, allow INTEGER)",
-                       true);
-               SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
-       }
-
-       pEnum.reset();
-       pEnum = std::unique_ptr<DbEnumerator>(db.QueryN(L"Select name from sqlite_master Where type='table' And name = '" + certificateTable + L"'"));
-       if (!pEnum.get())
-       {
-               r = db.ExecuteSql(
-                       L"CREATE TABLE IF NOT EXISTS " + certificateTable + L"(id INTEGER PRIMARY KEY AUTOINCREMENT, pem TEXT, allow INTEGER)",
-                       true);
-               SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
-       }
-
-       return E_SUCCESS;
-}
-
-
-result
 _EflWebkit::SetProxyAddress(char* pProxy) const
 {
        Ewk_Context* pContext = ewk_view_context_get(__pWebFrame);
index 8b5dbbf..5c3a239 100755 (executable)
@@ -47,13 +47,6 @@ class VisualElementSurface;
 namespace Tizen { namespace Web { namespace Controls
 {
 
-_OSP_EXPORT_ extern const wchar_t CUSTOM_DB_DIRECTORY_PATH[];
-_OSP_EXPORT_ extern const wchar_t USER_CONFIRM_DB_NAME[];
-_OSP_EXPORT_ extern const wchar_t GEOLOCATION_TABLE_NAME[];
-_OSP_EXPORT_ extern const wchar_t CUSTOM_PROTOCOL_TABLE_NAME[];
-_OSP_EXPORT_ extern const wchar_t CUSTOM_CONTENT_TABLE_NAME[];
-_OSP_EXPORT_ extern const wchar_t CERTIFICATE_TABLE_NAME[];
-
 class _EflWebkit
        : public Tizen::Base::Object
 {
@@ -75,10 +68,6 @@ private:
 
        result SetWebConfiguration(void) const;
 
-       result CreateResourceDirectory(void) const;
-
-       result InitializeCustomDb(void) const;
-
        void InitializeCustomHeader(void) const;
 
        _EflWebkit& operator =(const _EflWebkit&);
index 7f069ca..c0452da 100755 (executable)
@@ -28,7 +28,7 @@
 #include <FIoDbEnumerator.h>
 #include <FWebCtrlGeolocationPermissionManager.h>
 #include <FIo_DatabaseImpl.h>
-#include "FWebCtrl_EflWebkit.h"
+#include "FWebCtrl_WebManager.h"
 #include "FWebCtrl_GeolocationPermissionManagerImpl.h"
 
 
index c73961e..6f73c03 100755 (executable)
@@ -43,7 +43,7 @@
 #include <FSys_SystemResource.h>
 #include <FUi_ControlManager.h>
 #include <FUi_ResourceManager.h>
-#include "FWebCtrl_EflWebkit.h"
+#include "FWebCtrl_WebManager.h"
 #include "FWebCtrl_UserConfirmPopup.h"
 #include "FWebCtrl_Utility.h"
 #include "FWebCtrl_WebImpl.h"
index 8fabc3d..271d1b9 100755 (executable)
@@ -2294,9 +2294,7 @@ _WebImpl::~_WebImpl()
 {
        _WebManager* pWebManager = _WebManager::GetInstance();
        SysTryCatch(NID_WEB_CTRL, pWebManager, , E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
-
        pWebManager->RemoveWeb(reinterpret_cast< int >(this));
-       pWebManager->RemoveActiveWeb(this);
 
 CATCH:
        _SettingInfoImpl::RemoveSettingEventListener(*this);
@@ -5125,12 +5123,6 @@ _WebImpl::OnPreAttachedToMainTree(void)
 {
        result r = E_SUCCESS;
 
-       if (IsVisible() == true)
-       {
-               _WebManager* pWebManager = _WebManager::GetInstance();
-               pWebManager->SetActiveWeb(this);
-       }
-
        r = _ContainerImpl::OnPreAttachedToMainTree();
        SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
 
@@ -5140,7 +5132,7 @@ _WebImpl::OnPreAttachedToMainTree(void)
                SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
 
                _ControlManager* pControlManager = _ControlManager::GetInstance();
-               SysTryReturnResult(NID_WEB_CTRL, pControlManager, E_SYSTEM, "Failed to get the ControlManager instance.");
+               SysTryReturnResult(NID_WEB_CTRL, pControlManager, E_SYSTEM, "Failed to get the _ControlManager instance.");
                OnChangeLayout(pControlManager->GetScreenRotation());
 
                r = InitializeSetting();
@@ -5149,9 +5141,17 @@ _WebImpl::OnPreAttachedToMainTree(void)
                _SettingInfoImpl::AddSettingEventListener(*this);
 
                _WebManager* pWebManager = _WebManager::GetInstance();
+               SysTryReturnResult(NID_WEB_CTRL, pWebManager, E_SYSTEM, "Failed to get the _WebManager instance.");
                pWebManager->AddWeb(reinterpret_cast< int >(this));
        }
 
+       if (IsVisible() == true)
+       {
+               _WebManager* pWebManager = _WebManager::GetInstance();
+               SysTryReturnResult(NID_WEB_CTRL, pWebManager, E_SYSTEM, "Failed to get the _WebManager instance.");
+               pWebManager->SetActiveWeb(this);
+       }
+
        return E_SUCCESS;
 }
 
@@ -5161,12 +5161,13 @@ _WebImpl::OnDetachingFromMainTree(void)
 {
        result r = E_SUCCESS;
 
-       _WebManager* pWebManager = _WebManager::GetInstance();
-       pWebManager->RemoveActiveWeb(this);
-
        r = _ContainerImpl::OnDetachingFromMainTree();
        SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
 
+       _WebManager* pWebManager = _WebManager::GetInstance();
+       SysTryReturnResult(NID_WEB_CTRL, pWebManager, E_SYSTEM, "Failed to get the _WebManager instance.");
+       pWebManager->RemoveActiveWeb(this);
+
        return E_SUCCESS;
 }
 
@@ -5261,6 +5262,7 @@ _WebImpl::OnAncestorVisibleStateChanged(const _Control& control)
        }
 
        _WebManager* pWebManager = _WebManager::GetInstance();
+       SysTryReturnVoidResult(NID_WEB_CTRL, pWebManager, E_SYSTEM, "[E_SYSTEM] Failed to get the _WebManager instance.");
        if (IsVisible() == true)
        {
                pWebManager->SetActiveWeb(this);
index 2804ead..6b36392 100755 (executable)
  */\r
 #include <pthread.h>\r
 #include <net_connection.h>\r
+#include <FAppApp.h>\r
 #include <FBaseSysLog.h>\r
+#include <FIoDbEnumerator.h>\r
 #include <FUiControl.h>\r
+#include <FIo_DirectoryImpl.h>
+#include <FIo_DatabaseImpl.h>
+#include <FIo_FileImpl.h>\r
 #include <FUiCtrl_FormImpl.h>\r
+#include <FIo_DirectoryImpl.h>
+#include <FIo_DatabaseImpl.h>
+#include <FIo_FileImpl.h>
 #include "FWebCtrl_EflWebkit.h"\r
 #include "FWebCtrl_Web.h"\r
 #include "FWebCtrl_WebImpl.h"\r
@@ -34,6 +42,7 @@
 \r
 using namespace Tizen::Base;\r
 using namespace Tizen::Base::Collection;\r
+using namespace Tizen::Io;\r
 using namespace Tizen::Ui;\r
 using namespace Tizen::Ui::Controls;\r
 \r
@@ -44,6 +53,17 @@ namespace Tizen { namespace Web { namespace Controls
 _WebManager* _WebManager::__pInstance = null;\r
 \r
 \r
+extern const wchar_t CUSTOM_DB_DIRECTORY_PATH[] = L"data/.webkit/customDatabase/";
+extern const wchar_t USER_CONFIRM_DB_NAME[] = L"userConfirm.db";
+extern const wchar_t GEOLOCATION_TABLE_NAME[] = L"geolocationPermission";
+extern const wchar_t CUSTOM_PROTOCOL_TABLE_NAME[] = L"customProtocol";
+extern const wchar_t CUSTOM_CONTENT_TABLE_NAME[] = L"customContent";
+extern const wchar_t CERTIFICATE_TABLE_NAME[] = L"certificate";
+
+
+static const int CUSTOM_DB_TABLE_COUNT= 4;\r
+\r
+\r
 _WebManager::_WebManager(void)\r
        : __pWebList(null)\r
        , __pCallbackList(null)\r
@@ -118,8 +138,14 @@ _WebManager::Construct(void)
        SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));\r
 \r
        r = InitializeProxyAddress();\r
-       SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));      \r
-
+       SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));\r
+\r
+       r = CreateResourceDirectory();\r
+       SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));\r
+\r
+       r = InitializeCustomDb();\r
+       SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));\r
+\r
        __pWebList = std::move(pWebList);\r
        __pCallbackList = std::move(pCallbackList);\r
 \r
@@ -151,13 +177,105 @@ _WebManager::InitializeProxyAddress(void)
 }\r
 \r
 \r
+result
+_WebManager::CreateResourceDirectory(void) const\r
+{
+       String html5FeaturesPath(Tizen::App::App::GetInstance()->GetAppRootPath() + CUSTOM_DB_DIRECTORY_PATH);
+
+       if (!_FileImpl::IsFileExist(html5FeaturesPath))
+       {
+               result r = E_SUCCESS;
+
+               r = _DirectoryImpl::Create(html5FeaturesPath, true);
+               SysTryReturnResult(NID_WEB_CTRL, r == E_SUCCESS, E_SYSTEM, "A system error has been occurred. create html5 features directory.");
+       }
+
+       return E_SUCCESS;
+}
+
+
+result
+_WebManager::InitializeCustomDb(void) const\r
+{
+       result r = E_SUCCESS;
+
+       _DatabaseImpl db;
+       String path(Tizen::App::App::GetInstance()->GetAppRootPath() + CUSTOM_DB_DIRECTORY_PATH + USER_CONFIRM_DB_NAME);
+       String geolocationTable(GEOLOCATION_TABLE_NAME);
+       String protocolTable(CUSTOM_PROTOCOL_TABLE_NAME);
+       String contentTable(CUSTOM_CONTENT_TABLE_NAME);
+       String certificateTable(CERTIFICATE_TABLE_NAME);
+
+       r = db.Construct(path, "a+", null);
+       SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
+
+       std::unique_ptr<DbEnumerator>   pEnum(db.QueryN(L"Select count(name) from sqlite_master Where type='table' And name in ('" + geolocationTable + L"', '" + protocolTable + L"', '" + contentTable + L"', '" + certificateTable + L"')"));
+       if (pEnum.get())
+       {
+               int count = 0;
+
+               r = pEnum->MoveNext();
+               SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, false, r, "[%s] Propagating.", GetErrorMessage(r));
+
+               r = pEnum->GetIntAt(0, count);
+               SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, false, r, "[%s] Propagating.", GetErrorMessage(r));
+
+               if (count == CUSTOM_DB_TABLE_COUNT)
+               {
+                       return E_SUCCESS;
+               }
+       }
+
+       pEnum.reset();
+       pEnum = std::unique_ptr<DbEnumerator>(db.QueryN(L"Select name from sqlite_master Where type='table' And name = '" + geolocationTable + L"'"));
+       if (!pEnum.get())
+       {
+               r = db.ExecuteSql(
+                       L"CREATE TABLE IF NOT EXISTS " + geolocationTable + L"(id INTEGER PRIMARY KEY AUTOINCREMENT, origin TEXT, permission INTEGER)",
+                       true);
+               SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
+       }
+
+       pEnum.reset();
+       pEnum = std::unique_ptr<DbEnumerator>(db.QueryN(L"Select name from sqlite_master Where type='table' And name = '" + protocolTable + L"'"));
+       if (!pEnum.get())
+       {
+               r = db.ExecuteSql(
+                       L"CREATE TABLE IF NOT EXISTS " + protocolTable + L"(id INTEGER PRIMARY KEY AUTOINCREMENT, baseUrl TEXT, url TEXT, mime TEXT, allow INTEGER)",
+                       true);
+               SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
+       }
+
+       pEnum.reset();
+       pEnum = std::unique_ptr<DbEnumerator>(db.QueryN(L"Select name from sqlite_master Where type='table' And name = '" + contentTable + L"'"));
+       if (!pEnum.get())
+       {
+               r = db.ExecuteSql(
+                       L"CREATE TABLE IF NOT EXISTS " + contentTable + L"(id INTEGER PRIMARY KEY AUTOINCREMENT, baseUrl TEXT, url TEXT, mime TEXT, allow INTEGER)",
+                       true);
+               SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
+       }
+
+       pEnum.reset();
+       pEnum = std::unique_ptr<DbEnumerator>(db.QueryN(L"Select name from sqlite_master Where type='table' And name = '" + certificateTable + L"'"));
+       if (!pEnum.get())
+       {
+               r = db.ExecuteSql(
+                       L"CREATE TABLE IF NOT EXISTS " + certificateTable + L"(id INTEGER PRIMARY KEY AUTOINCREMENT, pem TEXT, allow INTEGER)",
+                       true);
+               SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
+       }
+
+       return E_SUCCESS;
+}
+\r
+\r
 result\r
 _WebManager::AddWeb(int webAdress)\r
 {\r
        result r = E_SUCCESS;\r
 \r
        _WebImpl* pImpl = reinterpret_cast< _WebImpl* >(webAdress);\r
-\r
        _Web* pWebCore = dynamic_cast< _Web* >(&(pImpl->GetCore()));\r
 \r
        r = pWebCore->GetEflWebkit()->SetProxyAddress(__pProxy);\r
index 8cdb305..ed5262f 100755 (executable)
 \r
 namespace Tizen { namespace Web { namespace Controls\r
 {\r
+\r
+_OSP_EXPORT_ extern const wchar_t CUSTOM_DB_DIRECTORY_PATH[];
+_OSP_EXPORT_ extern const wchar_t USER_CONFIRM_DB_NAME[];
+_OSP_EXPORT_ extern const wchar_t GEOLOCATION_TABLE_NAME[];
+_OSP_EXPORT_ extern const wchar_t CUSTOM_PROTOCOL_TABLE_NAME[];
+_OSP_EXPORT_ extern const wchar_t CUSTOM_CONTENT_TABLE_NAME[];
+_OSP_EXPORT_ extern const wchar_t CERTIFICATE_TABLE_NAME[];\r
+\r
 class _WebImpl;\r
 class _WebPopup;\r
 \r
@@ -62,7 +70,10 @@ private:
 \r
        static void InitWebManager(void);\r
        static void DestroyWebManager(void);\r
+\r
        result InitializeProxyAddress(void);\r
+       result CreateResourceDirectory(void) const;
+       result InitializeCustomDb(void) const;\r
 \r
        _WebManager& operator=(const _WebManager& rhs);\r
 \r