#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"
#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"
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)
{
__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;
+ }
}
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;
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);
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
{
result SetWebConfiguration(void) const;
- result CreateResourceDirectory(void) const;
-
- result InitializeCustomDb(void) const;
-
void InitializeCustomHeader(void) const;
_EflWebkit& operator =(const _EflWebkit&);
#include <FIoDbEnumerator.h>
#include <FWebCtrlGeolocationPermissionManager.h>
#include <FIo_DatabaseImpl.h>
-#include "FWebCtrl_EflWebkit.h"
+#include "FWebCtrl_WebManager.h"
#include "FWebCtrl_GeolocationPermissionManagerImpl.h"
#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"
{
_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);
{
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));
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();
_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;
}
{
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;
}
}
_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);
*/\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
\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
_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
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
}\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
\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
\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