#include <FBaseSysLog.h>\r
#include <FIoDbEnumerator.h>\r
#include <FUiControl.h>\r
-#include <FIo_DirectoryImpl.h>\r
-#include <FIo_DatabaseImpl.h>\r
+#include <FIo_DirectoryImpl.h>
+#include <FIo_DatabaseImpl.h>
#include <FIo_FileImpl.h>\r
#include <FUiCtrl_FormImpl.h>\r
-#include <FIo_DirectoryImpl.h>\r
-#include <FIo_DatabaseImpl.h>\r
-#include <FIo_FileImpl.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
_WebManager* _WebManager::__pInstance = null;\r
\r
\r
-extern const wchar_t CUSTOM_DB_DIRECTORY_PATH[] = L"data/.webkit/customDatabase/";\r
-extern const wchar_t USER_CONFIRM_DB_NAME[] = L"userConfirm.db";\r
-extern const wchar_t GEOLOCATION_TABLE_NAME[] = L"geolocationPermission";\r
-extern const wchar_t CUSTOM_PROTOCOL_TABLE_NAME[] = L"customProtocol";\r
-extern const wchar_t CUSTOM_CONTENT_TABLE_NAME[] = L"customContent";\r
-extern const wchar_t CERTIFICATE_TABLE_NAME[] = L"certificate";\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
- , __pActivePopupList(null)\r
, __pActiveWeb(null)\r
+ , __pActivePopup(null)\r
, __pProxy(null)\r
{\r
}\r
r = pCallbackList->Construct();\r
SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));\r
\r
- std::unique_ptr<ArrayListT< int> > pActivePopupList(new (std::nothrow) ArrayListT< int >());\r
- SysTryReturnResult(NID_WEB_CTRL, pActivePopupList.get(), E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Insufficient memory.");\r
- r = pActivePopupList->Construct();\r
- 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
\r
\r
__pWebList = std::move(pWebList);\r
__pCallbackList = std::move(pCallbackList);\r
- __pActivePopupList = std::move(pActivePopupList);\r
\r
return E_SUCCESS;\r
}\r
\r
\r
-void\r
+void
_WebManager::ClearCertificateDb(void)\r
-{\r
- result r = E_SUCCESS;\r
-\r
- String certificatePath(Tizen::App::App::GetInstance()->GetAppRootPath() + CUSTOM_DB_DIRECTORY_PATH + USER_CONFIRM_DB_NAME);\r
- String table(CERTIFICATE_TABLE_NAME);\r
- _DatabaseImpl db;\r
-\r
- r = db.Construct(certificatePath, "r+", null);\r
- SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));\r
-\r
- db.BeginTransaction();\r
-\r
- r = db.ExecuteSql(L"Delete From " + table, true);\r
- SysTryCatch(NID_WEB_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));\r
-\r
- db.CommitTransaction();\r
-\r
- return;\r
-\r
-CATCH:\r
- db.RollbackTransaction();\r
+{
+ result r = E_SUCCESS;
+
+ String certificatePath(Tizen::App::App::GetInstance()->GetAppRootPath() + CUSTOM_DB_DIRECTORY_PATH + USER_CONFIRM_DB_NAME);
+ String table(CERTIFICATE_TABLE_NAME);
+ _DatabaseImpl db;
+
+ r = db.Construct(certificatePath, "r+", null);
+ SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
+
+ db.BeginTransaction();
+
+ r = db.ExecuteSql(L"Delete From " + table, true);
+ SysTryCatch(NID_WEB_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
+
+ db.CommitTransaction();
+
+ return;
+
+CATCH:
+ db.RollbackTransaction();
}\r
\r
\r
connection_h handle = null;\r
char* pProxy = null;\r
\r
- ret = connection_create(&handle);\r
- SysTryReturnResult(NID_WEB_CTRL, ret == CONNECTION_ERROR_NONE, E_SYSTEM, "A system error has been occurred. Failed to create connection.");\r
-\r
- connection_address_family_e family = CONNECTION_ADDRESS_FAMILY_IPV4;\r
+ ret = connection_create(&handle);
+ SysTryReturnResult(NID_WEB_CTRL, ret == CONNECTION_ERROR_NONE, E_SYSTEM, "A system error has been occurred. Failed to create connection.");
\r
- ret = connection_get_proxy(handle, family, &pProxy);\r
+ connection_address_family_e family = CONNECTION_ADDRESS_FAMILY_IPV4;
+
+ ret = connection_get_proxy(handle, family, &pProxy);
SysTryReturnResult(NID_WEB_CTRL, ret == CONNECTION_ERROR_NONE, E_SYSTEM, "A system error has been occurred. Failed to get proxy address.");\r
\r
- ret = connection_destroy(handle);\r
+ ret = connection_destroy(handle);
SysTryReturnResult(NID_WEB_CTRL, ret == CONNECTION_ERROR_NONE, E_SYSTEM, "A system error has been occurred. Failed to destroy connection.");\r
\r
__pProxy = pProxy;\r
}\r
\r
\r
-result\r
+result
_WebManager::CreateResourceDirectory(void) const\r
-{\r
- String html5FeaturesPath(Tizen::App::App::GetInstance()->GetAppRootPath() + CUSTOM_DB_DIRECTORY_PATH);\r
-\r
- if (!_FileImpl::IsFileExist(html5FeaturesPath))\r
- {\r
- result r = E_SUCCESS;\r
-\r
- r = _DirectoryImpl::Create(html5FeaturesPath, true);\r
- SysTryReturnResult(NID_WEB_CTRL, r == E_SUCCESS, E_SYSTEM, "A system error has been occurred. create html5 features directory.");\r
- }\r
-\r
- return E_SUCCESS;\r
-}\r
-\r
-\r
-result\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
-{\r
- result r = E_SUCCESS;\r
-\r
- _DatabaseImpl db;\r
- String path(Tizen::App::App::GetInstance()->GetAppRootPath() + CUSTOM_DB_DIRECTORY_PATH + USER_CONFIRM_DB_NAME);\r
- String geolocationTable(GEOLOCATION_TABLE_NAME);\r
- String protocolTable(CUSTOM_PROTOCOL_TABLE_NAME);\r
- String contentTable(CUSTOM_CONTENT_TABLE_NAME);\r
- String certificateTable(CERTIFICATE_TABLE_NAME);\r
-\r
- r = db.Construct(path, "a+", null);\r
- SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));\r
-\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"')"));\r
- if (pEnum.get())\r
- {\r
- int count = 0;\r
-\r
- r = pEnum->MoveNext();\r
- SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, false, r, "[%s] Propagating.", GetErrorMessage(r));\r
-\r
- r = pEnum->GetIntAt(0, count);\r
- SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, false, r, "[%s] Propagating.", GetErrorMessage(r));\r
-\r
- if (count == CUSTOM_DB_TABLE_COUNT)\r
- {\r
- return E_SUCCESS;\r
- }\r
- }\r
-\r
- pEnum.reset();\r
- pEnum = std::unique_ptr<DbEnumerator>(db.QueryN(L"Select name from sqlite_master Where type='table' And name = '" + geolocationTable + L"'"));\r
- if (!pEnum.get())\r
- {\r
- r = db.ExecuteSql(\r
- L"CREATE TABLE IF NOT EXISTS " + geolocationTable + L"(id INTEGER PRIMARY KEY AUTOINCREMENT, origin TEXT, permission INTEGER)",\r
- true);\r
- SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));\r
- }\r
-\r
- pEnum.reset();\r
- pEnum = std::unique_ptr<DbEnumerator>(db.QueryN(L"Select name from sqlite_master Where type='table' And name = '" + protocolTable + L"'"));\r
- if (!pEnum.get())\r
- {\r
- r = db.ExecuteSql(\r
- L"CREATE TABLE IF NOT EXISTS " + protocolTable + L"(id INTEGER PRIMARY KEY AUTOINCREMENT, baseUrl TEXT, url TEXT, mime TEXT, allow INTEGER)",\r
- true);\r
- SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));\r
- }\r
-\r
- pEnum.reset();\r
- pEnum = std::unique_ptr<DbEnumerator>(db.QueryN(L"Select name from sqlite_master Where type='table' And name = '" + contentTable + L"'"));\r
- if (!pEnum.get())\r
- {\r
- r = db.ExecuteSql(\r
- L"CREATE TABLE IF NOT EXISTS " + contentTable + L"(id INTEGER PRIMARY KEY AUTOINCREMENT, baseUrl TEXT, url TEXT, mime TEXT, allow INTEGER)",\r
- true);\r
- SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));\r
- }\r
-\r
- pEnum.reset();\r
- pEnum = std::unique_ptr<DbEnumerator>(db.QueryN(L"Select name from sqlite_master Where type='table' And name = '" + certificateTable + L"'"));\r
- if (!pEnum.get())\r
- {\r
- r = db.ExecuteSql(\r
- L"CREATE TABLE IF NOT EXISTS " + certificateTable + L"(id INTEGER PRIMARY KEY AUTOINCREMENT, pem TEXT, allow INTEGER)",\r
- true);\r
- SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));\r
- }\r
-\r
- return E_SUCCESS;\r
-}\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
__pActiveWeb = pWebAddress;\r
}\r
\r
- for (int i = 0; i < __pActivePopupList->GetCount(); i++)\r
+ if (__pActivePopup != null)\r
{\r
- int activePopupAddr = 0;\r
- __pActivePopupList->GetAt(i, activePopupAddr);\r
- _WebPopup* pActivePopup = reinterpret_cast< _WebPopup* >(activePopupAddr);\r
-\r
- if (pActivePopup != null)\r
- {\r
- pActivePopup->SetShowState(false);\r
+ __pActivePopup->SetShowState(false);\r
\r
- _FormImpl* pFormImpl = __pActiveWeb->GetParentFormImpl(__pActiveWeb);\r
+ _FormImpl* pFormImpl = __pActiveWeb->GetParentFormImpl(__pActiveWeb);\r
\r
- if (pFormImpl != null)\r
- {\r
- pActivePopup->SetOwner(&pFormImpl->GetPublic());\r
- }\r
- else\r
- {\r
- pActivePopup->SetOwner(&__pActiveWeb->GetPublic());\r
- }\r
-\r
- pActivePopup->SetShowState(true);\r
- pActivePopup->Show();\r
+ if (pFormImpl != null)\r
+ {\r
+ __pActivePopup->SetOwner(&pFormImpl->GetPublic());\r
}\r
+ else\r
+ {\r
+ __pActivePopup->SetOwner(&__pActiveWeb->GetPublic());\r
+ }\r
+\r
+ __pActivePopup->SetShowState(true);\r
+ __pActivePopup->Show();\r
}\r
}\r
\r
}\r
\r
\r
-result\r
-_WebManager::SetActivePopup(int popupAddress)\r
+void\r
+_WebManager::SetActivePopup(Tizen::Web::Controls::_WebPopup* pPopupAddress)\r
{\r
- result r = E_SUCCESS;\r
-\r
- r = __pActivePopupList->Add(popupAddress);\r
- SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));\r
-\r
- return r;\r
+ __pActivePopup = pPopupAddress;\r
}\r
\r
\r
-result\r
-_WebManager::RemoveActivePopup(int popupAddress)\r
+void\r
+_WebManager::RemoveActivePopup(Tizen::Web::Controls::_WebPopup* pPopupAddress)\r
{\r
- result r = E_SUCCESS;\r
-\r
- r = __pActivePopupList->Remove(popupAddress);\r
- SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));\r
-\r
- return r;\r
+ if (__pActivePopup == pPopupAddress)\r
+ {\r
+ __pActivePopup = null;\r
+ }\r
}\r
\r
\r