src/controls/FWebCtrl_WebNotification.cpp
src/controls/FWebCtrl_WebNotificationHandler.cpp
src/controls/FWebCtrl_FormDataWindow.cpp
+ src/controls/FWebCtrl_WebManager.cpp
)
## Add Definitions
ADD_DEFINITIONS(${OSP_DEFINITIONS} -D_MODEL_RES_WVGA)
, __pPinchGestureHandler(null)
, __gestureType(WEB_GESTURE_TYPE_TAP)
, __edgeType(WEB_EDGE_NONE)
+ , __focus(false)
, __pTextElement(null)
, __previousTouchedPosition(0.0f, 0.0f)
{
}
+void
+_Web::SetFocusEnd(bool focus)
+{
+ __focus = focus;
+}
+
+
+bool
+_Web::IsFocusEnd(void)
+{
+ return __focus;
+}
+
+
+bool
+_Web::OnKeyPressed(const _Control& source, const _KeyInfo& keyInfo)
+{
+ _KeyCode keyCode = keyInfo.GetKeyCode();
+
+ if (IsFocusEnd() == true)
+ {
+ SetFocusEnd(false);
+ evas_object_focus_set(GetWebNativeNode(), EINA_FALSE);
+ return false;
+ }
+
+ switch(keyCode)
+ {
+ case _KEY_UP:
+ case _KEY_DOWN:
+ evas_object_focus_set(GetWebNativeNode(), EINA_FALSE);
+ return false;
+ break;
+ default:
+ break;
+ }
+
+ evas_object_focus_set(GetWebNativeNode(), EINA_TRUE);
+
+ return true;
+}
+
+
+bool
+_Web::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
+{
+ return false;
+}
+
+
+void
+_Web::OnDrawFocus(void)
+{
+}
+
+
bool
_Web::OnTouchPressed(const _Control& source, const _TouchInfo& touchInfo)
{
void SetEdgeReachedEvent(_WebEdgeType type);
+ void SetFocusEnd(bool focus);
+ bool IsFocusEnd(void);
+
virtual result OnAttaching(const _Control* pParent);
virtual result OnBoundsChanging(const Tizen::Graphics::Rectangle& bounds);
+ virtual bool OnKeyPressed(const Tizen::Ui::_Control& source, const Tizen::Ui::_KeyInfo& keyInfo);
+ virtual bool OnKeyReleased(const Tizen::Ui::_Control& source, const Tizen::Ui::_KeyInfo& keyInfo);
+ virtual void OnDrawFocus(void);
+
virtual bool OnTouchPressed(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchInfo);
virtual bool OnTouchReleased(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchInfo);
virtual bool OnTouchMoved(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchInfo);
int __edgeType;
+ bool __focus;
+
Tizen::Ui::_AccessibilityElement* __pTextElement;
Tizen::Graphics::FloatPoint __previousTouchedPosition;
#include "FWebCtrl_WebEvent.h"
#include "FWebCtrl_WebEventArg.h"
#include "FWebCtrl_WebImpl.h"
+#include "FWebCtrl_WebManager.h"
#include "FWebCtrl_WebPresenter.h"
#include "FWebCtrl_WebSettingImpl.h"
_WebImpl* pImpl = reinterpret_cast<_WebImpl*>(pUserData);
SysAssertf(pImpl, "Failed to request");
- _Web* pWebCore = dynamic_cast< _Web* >(&(pImpl->GetCore()));
- //pWebCore->SetFocusEnd(true);
+// _Web* pWebCore = dynamic_cast< _Web* >(&(pImpl->GetCore()));
+// pWebCore->SetFocusEnd(true);
}
_WebImpl* pImpl = reinterpret_cast<_WebImpl*>(pUserData);
SysAssertf(pImpl, "Failed to request");
- _Web* pWebCore = dynamic_cast< _Web* >(&(pImpl->GetCore()));
- //pWebCore->SetFocusEnd(true);
+// _Web* pWebCore = dynamic_cast< _Web* >(&(pImpl->GetCore()));
+// pWebCore->SetFocusEnd(true);
}
SysLog(NID_WEB_CTRL, "result : %ls", result.GetPointer());
_WebImpl* pImpl = reinterpret_cast< _WebImpl* >(evas_object_data_get(pView, WEB_CTRL));
- if (pImpl && pImpl->IsPresenterAlived(pPresenter))
+ _WebManager* pWebManager = _WebManager::GetInstance();
+ if (pWebManager->IsValidCallback(reinterpret_cast< int >(pImpl), reinterpret_cast< int >(pPresenter)))
{
pPresenter->EndAsyncProcess(result);
}
_WebImpl::~_WebImpl()
{
+ _WebManager* pWebManager = _WebManager::GetInstance();
+ pWebManager->RemoveWeb(reinterpret_cast< int >(this));
+
_DownloadManagerImpl* pManagerImpl = _DownloadManagerImpl::GetInstance();
pManagerImpl->SetDownloadListener(null);
r = __textSearch.__searchQueue.Construct();
SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
- r = __callbackList.Construct();
- SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
-
r = __webNotificationList.Construct();
SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
__pWebCore = dynamic_cast< _Web* >(&(GetCore()));
SysTryReturnResult(NID_WEB_CTRL, __pWebCore, E_SYSTEM, "A system error has been occurred. Failed to get web control");
+ _WebManager* pWebManager = _WebManager::GetInstance();
+ pWebManager->AddWeb(reinterpret_cast< int >(this));
+
return E_SUCCESS;
}
return null;
}
- result r = E_SUCCESS;
-
std::unique_ptr<char[]> pScript(_StringConverter::CopyToCharArrayN(scriptCode));
SysTryReturn(NID_WEB_CTRL, pScript.get(), null, GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
- std::unique_ptr<_WebPresenter> pPresenter(new (std::nothrow) _WebPresenter());
+ std::unique_ptr<_WebPresenter> pPresenter(new (std::nothrow) _WebPresenter(this));
SysTryReturn(NID_WEB_CTRL, pPresenter.get(), null, E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
- r = __callbackList.Add(pPresenter.get());
- SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
-
ewk_view_script_execute(pView, pScript.get(), OnScriptExecuted, pPresenter.get());
std::unique_ptr<String> pResult(new (std::nothrow) String(L""));
SysTryReturn(NID_WEB_CTRL, pResult.get(), null, E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
- pPresenter->WaitAsyncProcess(*pResult.get());
-
- r = __callbackList.Remove(*pPresenter.get());
- SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
- pPresenter.release();
-
- return pResult.release();
-}
+ pPresenter->WaitAsyncProcess(*pResult.get());
-bool
-_WebImpl::IsPresenterAlived(_WebPresenter* pPresenter) const
-{
- return __callbackList.Contains(*pPresenter);
+ return pResult.release();
}
condition = static_cast < Ewk_Find_Options >(condition | EWK_FIND_OPTIONS_BACKWARDS);
}
- _WebPresenter presenter;
- presenter.InitAsyncProcess();
+ std::unique_ptr<_WebPresenter> pPresenter(new (std::nothrow) _WebPresenter(this));
+ SysTryReturn(NID_WEB_CTRL, pPresenter.get(), false, E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
- r = SynchronizeSearch(SEARCH_SYNC, pView, condition, text, searchForward, false, &presenter);
- SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
+ r = SynchronizeSearch(SEARCH_SYNC, pView, condition, text, searchForward, false, pPresenter.get());
+ SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, false, r, "[%s] Propagating.", GetErrorMessage(r));
int result = 0;
- presenter.WaitAsyncProcess(result);
+ pPresenter->WaitAsyncProcess(result);
return static_cast < bool >(result);
}
Ewk_Cookie_Manager* pCookieManager = ewk_context_cookie_manager_get(pContext);
SysAssertf(pCookieManager, "Failed to get webkit instance.");
- _WebPresenter presenter;
- presenter.InitAsyncProcess();
+ std::unique_ptr<_WebPresenter> pPresenter(new (std::nothrow) _WebPresenter(this));
+ SysTryReturn(NID_WEB_CTRL, pPresenter.get(), false, E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
- ewk_cookie_manager_async_accept_policy_get(pCookieManager, OnCookiesPolicyGot, &presenter);
+ ewk_cookie_manager_async_accept_policy_get(pCookieManager, OnCookiesPolicyGot, pPresenter.get());
bool result = false;
- presenter.WaitAsyncProcess(result);
+ pPresenter->WaitAsyncProcess(result);
return result;
}
--- /dev/null
+//\r
+// Open Service Platform\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Apache License, Version 2.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://www.apache.org/licenses/LICENSE-2.0\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an "AS IS" BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file FWebCtrl_WebManager.cpp\r
+ * @brief The file contains the definition of _WebManager class.\r
+ *\r
+ * The file contains the definition of _WebManager class.\r
+ */\r
+\r
+#include <FBaseSysLog.h>\r
+#include "FWebCtrl_WebImpl.h"\r
+#include "FWebCtrl_WebManager.h"\r
+\r
+using namespace Tizen::Base;\r
+using namespace Tizen::Base::Collection;\r
+\r
+namespace Tizen { namespace Web { namespace Controls\r
+{\r
+\r
+_WebManager::_WebManager(void)\r
+ : __pWebList(null)\r
+ , __pCallbackList(null)\r
+{\r
+}\r
+\r
+_WebManager::~_WebManager(void)\r
+{\r
+}\r
+\r
+_WebManager*\r
+_WebManager::GetInstance(void)\r
+{\r
+ result r = E_SUCCESS;\r
+ static _WebManager* pWebMgr = null;\r
+\r
+ if (pWebMgr == null)\r
+ {\r
+ pWebMgr = new (std::nothrow) _WebManager();\r
+ SysTryReturn(NID_WEB_CTRL, pWebMgr != null, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] _WebManager allocation failed.");\r
+\r
+ r = pWebMgr->Construct();\r
+ SysTryCatch(NID_WEB_CTRL, !IsFailed(r), , r, "[%s] _WebManager construction failed.", GetErrorMessage(r));\r
+ }\r
+\r
+ return pWebMgr;\r
+\r
+CATCH:\r
+ delete pWebMgr;\r
+ pWebMgr = null;\r
+\r
+ return null;\r
+}\r
+\r
+result\r
+_WebManager::Construct(void)\r
+{\r
+ result r = E_SUCCESS;\r
+\r
+ std::unique_ptr<ArrayListT< int> > pWebList(new (std::nothrow) ArrayListT< int >());\r
+ SysTryReturnResult(NID_WEB_CTRL, pWebList.get(), E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Insufficient memory.");\r
+ r = pWebList->Construct();\r
+ SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));\r
+\r
+ std::unique_ptr<MultiHashMapT< int, int > > pCallbackList(new (std::nothrow) MultiHashMapT< int, int >());\r
+ SysTryReturnResult(NID_WEB_CTRL, pCallbackList.get(), E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Insufficient memory.");\r
+ r = pCallbackList->Construct();\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
+ return E_SUCCESS;\r
+}\r
+\r
+result\r
+_WebManager::AddWeb(int webAdress)\r
+{\r
+ result r = E_SUCCESS;\r
+\r
+ r = __pWebList->Add(webAdress);\r
+ SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));\r
+\r
+ return E_SUCCESS;\r
+}\r
+\r
+result\r
+_WebManager::RemoveWeb(int webAdress)\r
+{\r
+ result r = E_SUCCESS;\r
+\r
+ r = __pWebList->Remove(webAdress);\r
+ SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));\r
+\r
+ r = __pCallbackList->Remove(webAdress);\r
+ SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));\r
+\r
+ return E_SUCCESS;\r
+}\r
+\r
+bool\r
+_WebManager::IsValidWeb(int webAdress) const\r
+{\r
+ return __pWebList->Contains(webAdress);\r
+}\r
+\r
+\r
+result\r
+_WebManager::AddCallback(int callerAdress, int callbackAdress)\r
+{\r
+ result r = E_SUCCESS;\r
+\r
+ r = __pCallbackList->Add(callerAdress, callbackAdress);\r
+ SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));\r
+\r
+ return E_SUCCESS;\r
+}\r
+\r
+result\r
+_WebManager::RemoveCallback(int callerAdress, int callbackAdress)\r
+{\r
+ result r = E_SUCCESS;\r
+\r
+ r = __pCallbackList->Remove(callerAdress, callbackAdress);\r
+ SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));\r
+\r
+ return E_SUCCESS;\r
+}\r
+\r
+bool\r
+_WebManager::IsValidCallback(int callerAdress, int callbackAdress) const\r
+{\r
+ bool ret = true;\r
+\r
+ result r = __pCallbackList->Contains(callerAdress, callbackAdress, ret);\r
+ SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, true, r, "[%s] Propagating.", GetErrorMessage(r));\r
+\r
+ return ret;\r
+}\r
+\r
+} } }\r
--- /dev/null
+//\r
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
+//\r
+// Licensed under the Apache License, Version 2.0 (the License);\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+// http://www.apache.org/licenses/LICENSE-2.0\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an "AS IS" BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+//\r
+\r
+/**\r
+ * @file FWebCtrl_WebManager.h\r
+ * @brief This is the header file for the %_WebManager class.\r
+ *\r
+ * This header file contains the declarations of the %_WebManager class.\r
+ */\r
+ \r
+#ifndef _FWEB_CTRL_INTERNAL_WEB_MANAGER_H_\r
+#define _FWEB_CTRL_INTERNAL_WEB_MANAGER_H_\r
+\r
+#include <unique_ptr.h>\r
+#include <FBaseColArrayListT.h>\r
+#include <FBaseColMultiHashMapT.h>\r
+\r
+namespace Tizen { namespace Web { namespace Controls\r
+{\r
+class _WebImpl;\r
+\r
+class _WebManager\r
+ : public Tizen::Base::Object\r
+{\r
+public:\r
+ static _WebManager* GetInstance(void);\r
+ \r
+ result AddWeb(int webAdress);\r
+ result RemoveWeb(int webAdress);\r
+ bool IsValidWeb(int webAdress) const;\r
+\r
+ result AddCallback(int callerAdress, int callbackAdress);\r
+ result RemoveCallback(int callerAdress, int callbackAdress);\r
+ bool IsValidCallback(int callerAdress, int callbackAdress) const;\r
+\r
+private:\r
+ _WebManager(void);\r
+ _WebManager(const _WebManager& rhs);\r
+ virtual ~_WebManager(void);\r
+ result Construct(void);\r
+ _WebManager& operator=(const _WebManager& rhs);\r
+\r
+private:\r
+ std::unique_ptr<Tizen::Base::Collection::ArrayListT< int > > __pWebList;\r
+ std::unique_ptr<Tizen::Base::Collection::MultiHashMapT< int, int > > __pCallbackList;\r
+};\r
+\r
+} } }\r
+#endif\r
+\r
+
\ No newline at end of file
*/
#include <FBaseSysLog.h>
#include <FApp_AppImpl.h>
+#include "FWebCtrl_WebManager.h"
#include "FWebCtrl_WebPresenter.h"
{
-_WebPresenter::_WebPresenter(void)
+_WebPresenter::_WebPresenter(const Object* callerAddress)
: __stopState(false)
, __boolean(false)
, __string(L"")
, __integer(0)
, __pIList(null)
, __longInteger(0)
+ , __callerAddress(reinterpret_cast< int >(callerAddress))
{
- //empty statement
+ _WebManager* pWebManager = _WebManager::GetInstance();
+ pWebManager->AddCallback(__callerAddress, reinterpret_cast< int >(this));
}
_WebPresenter::~_WebPresenter(void)
{
-}
-
-
-void
-_WebPresenter::InitAsyncProcess(void)
-{
__stopState = false;
- __boolean = false;
- __string = L"";
- __integer = 0;
- __pIList = null;
- __longInteger = 0;
+
+ _WebManager* pWebManager = _WebManager::GetInstance();
+ pWebManager->RemoveCallback(__callerAddress, reinterpret_cast< int >(this));
}
{
// Lifecycle
public:
- _WebPresenter(void);
+ _WebPresenter(const Tizen::Base::Object* callerAddress);
virtual ~_WebPresenter(void);
// Operations
public:
- void InitAsyncProcess(void);
-
void WaitAsyncProcess(bool& result);
void WaitAsyncProcess(Tizen::Base::String& result);
void WaitAsyncProcess(int& result);
int __integer;
Eina_List* __pIList;
long __longInteger;
+
+ int __callerAddress;
};
}}} // Tizen::Web::Controls
Ewk_Context* pDefaultContext = ewk_context_default_get();
- _WebPresenter presenter;
- presenter.InitAsyncProcess();
+ std::unique_ptr<_WebPresenter> pPresenter(new (std::nothrow) _WebPresenter(this));
+ SysTryReturn(NID_WEB_CTRL, pPresenter.get(), null, E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
switch (storageType)
{
case WEB_STORAGE_TYPE_APPLICATION_CACHE:
- ewk_context_application_cache_origins_get(pDefaultContext, OnOriginReceived, &presenter);
+ ewk_context_application_cache_origins_get(pDefaultContext, OnOriginReceived, pPresenter.get());
break;
case WEB_STORAGE_TYPE_WEB_SQL_DATABASE:
- ewk_context_web_database_origins_get(pDefaultContext, OnOriginReceived, &presenter);
+ ewk_context_web_database_origins_get(pDefaultContext, OnOriginReceived, pPresenter.get());
break;
case WEB_STORAGE_TYPE_WEB_STORAGE:
- ewk_context_web_storage_origins_get(pDefaultContext, OnOriginReceived, &presenter);
+ ewk_context_web_storage_origins_get(pDefaultContext, OnOriginReceived, pPresenter.get());
break;
case WEB_STORAGE_TYPE_FILE_SYSTEM:
- ewk_context_local_file_system_origins_get(pDefaultContext, OnOriginReceived, &presenter);
+ ewk_context_local_file_system_origins_get(pDefaultContext, OnOriginReceived, pPresenter.get());
break;
default:
break;
}
- Eina_List* pOriginEinaList = presenter.WaitAsyncProcess();
+ Eina_List* pOriginEinaList = pPresenter->WaitAsyncProcess();
if (!pOriginEinaList)
{
return null;
SysTryReturn(NID_WEB_CTRL, storageType == WEB_STORAGE_TYPE_WEB_SQL_DATABASE, -1, E_UNSUPPORTED_TYPE, "[%s] This storage type is not supported.", GetErrorMessage(E_UNSUPPORTED_TYPE));
Ewk_Security_Origin* pOrigin = CompareOrigin(storageType, origin);
- SysTryReturn(NID_WEB_CTRL, pOrigin, -1, E_INVALID_ARG, "[%s] This origin does not exist.", GetErrorMessage(E_INVALID_ARG));
+ SysTryReturn(NID_WEB_CTRL, pOrigin, -1.0, E_INVALID_ARG, "[%s] This origin does not exist.", GetErrorMessage(E_INVALID_ARG));
- _WebPresenter presenter;
- presenter.InitAsyncProcess();
+ std::unique_ptr<_WebPresenter> pPresenter(new (std::nothrow) _WebPresenter(this));
+ SysTryReturn(NID_WEB_CTRL, pPresenter.get(), -1.0, E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
- ewk_context_web_database_quota_for_origin_get(pDefaultContext, OnUIntReceived, &presenter, pOrigin);
+ ewk_context_web_database_quota_for_origin_get(pDefaultContext, OnUIntReceived, pPresenter.get(), pOrigin);
- presenter.WaitAsyncProcess(quota);
+ pPresenter->WaitAsyncProcess(quota);
return quota;
}
Ewk_Security_Origin* pOrigin = CompareOrigin(storageType, origin);
SysTryReturn(NID_WEB_CTRL, pOrigin, -1, E_INVALID_ARG, "[%s] This origin does not exist.", GetErrorMessage(E_INVALID_ARG));
- _WebPresenter presenter;
- presenter.InitAsyncProcess();
+ std::unique_ptr<_WebPresenter> pPresenter(new (std::nothrow) _WebPresenter(this));
+ SysTryReturn(NID_WEB_CTRL, pPresenter.get(), -1.0, E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
switch (storageType)
{
case WEB_STORAGE_TYPE_APPLICATION_CACHE:
-// ewk_context_application_cache_usage_for_origin_get(pDefaultContext, pOrigin, OnIntReceived, &presenter);
+// ewk_context_application_cache_usage_for_origin_get(pDefaultContext, pOrigin, OnIntReceived, pPresenter.get());
break;
case WEB_STORAGE_TYPE_WEB_SQL_DATABASE:
- ewk_context_web_database_usage_for_origin_get(pDefaultContext, OnUIntReceived, &presenter, pOrigin);
+ ewk_context_web_database_usage_for_origin_get(pDefaultContext, OnUIntReceived, pPresenter.get(), pOrigin);
break;
case WEB_STORAGE_TYPE_WEB_STORAGE :
- ewk_context_web_storage_usage_for_origin_get(pDefaultContext, pOrigin, OnUIntReceived, &presenter);
+ ewk_context_web_storage_usage_for_origin_get(pDefaultContext, pOrigin, OnUIntReceived, pPresenter.get());
break;
default:
break;
}
- presenter.WaitAsyncProcess(usage);
+ pPresenter->WaitAsyncProcess(usage);
return usage;
}
_WebStorageManagerImpl::CompareOrigin(WebStorageType storageType, const String& origin)
{
Ewk_Context* pDefaultContext = ewk_context_default_get();
- _WebPresenter presenter;
- presenter.InitAsyncProcess();
+ std::unique_ptr<_WebPresenter> pPresenter(new (std::nothrow) _WebPresenter(this));
+ SysTryReturn(NID_WEB_CTRL, pPresenter.get(), null, E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
switch (storageType)
{
case WEB_STORAGE_TYPE_APPLICATION_CACHE:
- ewk_context_application_cache_origins_get(pDefaultContext, OnOriginReceived, &presenter);
+ ewk_context_application_cache_origins_get(pDefaultContext, OnOriginReceived, pPresenter.get());
break;
case WEB_STORAGE_TYPE_WEB_SQL_DATABASE:
- ewk_context_web_database_origins_get(pDefaultContext, OnOriginReceived, &presenter);
+ ewk_context_web_database_origins_get(pDefaultContext, OnOriginReceived, pPresenter.get());
break;
case WEB_STORAGE_TYPE_WEB_STORAGE:
- ewk_context_web_storage_origins_get(pDefaultContext, OnOriginReceived, &presenter);
+ ewk_context_web_storage_origins_get(pDefaultContext, OnOriginReceived, pPresenter.get());
break;
case WEB_STORAGE_TYPE_FILE_SYSTEM:
- ewk_context_local_file_system_origins_get(pDefaultContext, OnOriginReceived, &presenter);
+ ewk_context_local_file_system_origins_get(pDefaultContext, OnOriginReceived, pPresenter.get());
break;
default:
break;
}
- Eina_List* pOriginList = presenter.WaitAsyncProcess();
+ Eina_List* pOriginList = pPresenter->WaitAsyncProcess();
if (!pOriginList)
{
return null;
void SetKeypadOpened(bool isKeypadOpened);
- bool IsPresenterAlived(_WebPresenter* pPresenter) const;
Tizen::Graphics::Rectangle GetPreviousKeypadBounds(void) const;
void SetPreviousKeypadBounds(Tizen::Graphics::Rectangle& bounds);
_TextSearch __textSearch;
- Tizen::Base::Collection::ArrayList __callbackList;
-
Tizen::Base::Collection::ArrayList __webNotificationList;
DecisionPolicy __policy;