#include <FIo_NormalFile.h>
#include <FSys_SettingInfoImpl.h>
#include <FSys_SystemResource.h>
-#include <FSys_VibratorImpl.h>
#include <FUi_Control.h>
#include <FUi_CoordinateSystemUtils.h>
#include <FUi_EcoreEvasMgr.h>
#include <FUi_EcoreEvas.h>
+#include <FUi_ResourceManager.h>
#include <FUi_ResourceSizeInfo.h>
#include <FUi_Window.h>
#include <FUiAnim_EflNode.h>
static const int PORTRAIT_KEYPAD_HEIGHT = 444;
static const int LANDSCAPE_KEYPAD_HEIGHT = 316;
-static const int DEFAULT_LIST_ITEM_COUNT = 4;
+static const int DEFAULT_LIST_ITEM_COUNT = 5;
Eina_Bool
Eina_Bool
-OnSavePasswordConfirmRequested(Evas_Object* pWebview, const char* pMessage, void* pUserData)
+_WebImpl::OnBeforeUnloadConfirmRequested(Evas_Object* pView, const char* pMessage, void* pUserData)
{
- SysLog(NID_WEB_CTRL, "The current value of message is %s", pMessage);
-
+ _WebImpl* pWebImpl = reinterpret_cast< _WebImpl* >(pUserData);
+ SysAssertf(pWebImpl, "Failed to request");
result r = E_SUCCESS;
- _WebImpl* pImpl = reinterpret_cast< _WebImpl* >(pUserData);
String msg(pMessage);
- r = pImpl->ShowUserConfirmPopupAsync(USER_CONFIRM_SAVE_PASSWORD, pWebview, msg);
+ r = pWebImpl->ShowUserConfirmPopupAsync(USER_BEFORE_UNLOAD_CONFIRM, pView, msg);
SysTryCatch(NID_WEB_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
return EINA_TRUE;
CATCH:
- ewk_view_password_confirm_popup_reply(pWebview, EWK_PASSWORD_POPUP_CANCEL);
-
+ ewk_view_javascript_confirm_reply(pView, EINA_FALSE);
return EINA_TRUE;
}
_WebImpl* pImpl = reinterpret_cast< _WebImpl* >(pUserData);
SysAssertf(pImpl , "Failed to request");
- const char* pHostName = ewk_security_origin_host_get(pSecOrigin);
- String msg;
- result r = msg.Format(256, L"Allow %s to use offline application cache?", pHostName);
- SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, EINA_FALSE, r, "[%s] Propagating.", GetErrorMessage(r));
+ _SystemResource* pSysResource = _SystemResource::GetInstance();
+ SysAssertf(pSysResource != null, "Failed to get _SystemResource instance");
- r = pImpl->ShowUserConfirmPopup(USER_CONFIRM_APP_CACHE, pView, msg);
- SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, EINA_FALSE, r, "[%s] Propagating.", GetErrorMessage(r));
+ result r = E_SUCCESS;
+
+ String message(L"");
+ r = message.Format(512,
+ pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_TPLATFORM_BODY_P1SS_HP2SS_IS_REQUESTING_PERMISSION_TO_STORE_DATA_ON_YOUR_DEVICE_FOR_OFFLINE_USE").GetPointer(),
+ _StringConverter::CopyToCharArrayN(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_BR_BODY_THIS_WEBPAGE")),
+ ewk_security_origin_host_get(pSecOrigin));
+ SysTryCatch(NID_WEB_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
+
+ r = pImpl->ShowUserConfirmPopup(USER_CONFIRM_APP_CACHE, pView, message);
+ SysTryCatch(NID_WEB_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
+
+ return EINA_TRUE;
+CATCH:
+ ewk_view_application_cache_permission_reply(pView, EINA_FALSE);
return EINA_TRUE;
}
_WebImpl* pImpl = reinterpret_cast< _WebImpl* >(pUserData);
SysAssertf(pImpl , "Failed to request");
- const char* pHostName = ewk_security_origin_host_get(pSecOrigin);
- String msg;
- result r = msg.Format(512, L"%s Used %lld of storage. Allow %s to use upto 2GB of indexed db?", pHostName, currentQuota, pHostName);
- SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, EINA_FALSE, r, "[%s] Propagating.", GetErrorMessage(r));
+ _SystemResource* pSysResource = _SystemResource::GetInstance();
+ SysAssertf(pSysResource != null, "Failed to get _SystemResource instance");
- r = pImpl->ShowUserConfirmPopup(USER_CONFIRM_INDEXED_DB_QUOTA_EXCEDED, pView, msg);
- SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, EINA_FALSE, r, "[%s] Propagating.", GetErrorMessage(r));
+ result r = E_SUCCESS;
+
+ String message(L"");
+ r = message.Format(512,
+ pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_TPLATFORM_BODY_P1SS_HP2SS_IS_ATTEMPTING_TO_STORE_A_LARGE_AMOUNT_OF_DATA_ON_YOUR_DEVICE_FOR_OFFLINE_USE").GetPointer(),
+ _StringConverter::CopyToCharArrayN(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_BR_BODY_THIS_WEBPAGE")),
+ ewk_security_origin_host_get(pSecOrigin));
+ SysTryCatch(NID_WEB_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
+ r = pImpl->ShowUserConfirmPopup(USER_CONFIRM_INDEXED_DB_QUOTA_EXCEDED, pView, message);
+ SysTryCatch(NID_WEB_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
+
+ return EINA_TRUE;
+
+CATCH:
+ ewk_view_exceeded_indexed_database_quota_reply(pView, EINA_FALSE);
return EINA_TRUE;
}
_WebImpl* pImpl = reinterpret_cast< _WebImpl* >(pUserData);
SysAssertf(pImpl , "Failed to request");
- const char* pHostName = ewk_security_origin_host_get(pSecOrigin);
- String msg;
- result r = msg.Format(512, L"Allow %s to open %s use upto %lld of web database?", pHostName, database_name, expectedQuota);
- SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, EINA_FALSE, r, "[%s] Propagating.", GetErrorMessage(r));
+ _SystemResource* pSysResource = _SystemResource::GetInstance();
+ SysAssertf(pSysResource != null, "Failed to get _SystemResource instance");
- r = pImpl->ShowUserConfirmPopup(USER_CONFIRM_DB_QUOTA_EXCEDED, pView, msg);
- SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, EINA_FALSE, r, "[%s] Propagating.", GetErrorMessage(r));
+ result r = E_SUCCESS;
+
+ String message(L"");
+ r = message.Format(512,
+ pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_TPLATFORM_BODY_P1SS_HP2SS_IS_ATTEMPTING_TO_STORE_A_LARGE_AMOUNT_OF_DATA_ON_YOUR_DEVICE_FOR_OFFLINE_USE").GetPointer(),
+ _StringConverter::CopyToCharArrayN(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_BR_BODY_THIS_WEBPAGE")),
+ ewk_security_origin_host_get(pSecOrigin));
+ SysTryCatch(NID_WEB_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
+
+ r = pImpl->ShowUserConfirmPopup(USER_CONFIRM_DB_QUOTA_EXCEDED, pView, message);
+ SysTryCatch(NID_WEB_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
return EINA_TRUE;
+
+CATCH:
+ ewk_view_exceeded_database_quota_reply(pView, EINA_FALSE);
+ return EINA_TRUE;
}
-Eina_Bool OnLocalFileSystemQuotaExceeded(Evas_Object* pView, Ewk_Security_Origin* pSecOrigin, long long currentQuota, void* pUserData)
+Eina_Bool
+OnLocalFileSystemQuotaExceeded(Evas_Object* pView, Ewk_Security_Origin* pSecOrigin, long long currentQuota, void* pUserData)
{
_WebImpl* pImpl = reinterpret_cast< _WebImpl* >(pUserData);
SysAssertf(pImpl , "Failed to request");
- const char* pHostName = ewk_security_origin_host_get(pSecOrigin);
- String msg;
- result r = msg.Format(512, L"%s Used %lld of storgae. Allow %s to use upto 2GB of file system?", pHostName, currentQuota, pHostName);
- SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, EINA_FALSE, r, "[%s] Propagating.", GetErrorMessage(r));
+ _SystemResource* pSysResource = _SystemResource::GetInstance();
+ SysAssertf(pSysResource != null, "Failed to get _SystemResource instance");
- r = pImpl->ShowUserConfirmPopup(USER_CONFIRM_LOCAL_FS_QUOTA_EXCEDED, pView, msg);
- SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, EINA_FALSE, r, "[%s] Propagating.", GetErrorMessage(r));
+ result r = E_SUCCESS;
+ String message(L"");
+ r = message.Format(512,
+ pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_TPLATFORM_BODY_P1SS_HP2SS_IS_ATTEMPTING_TO_STORE_A_LARGE_AMOUNT_OF_DATA_ON_YOUR_DEVICE_FOR_OFFLINE_USE").GetPointer(),
+ _StringConverter::CopyToCharArrayN(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_BR_BODY_THIS_WEBPAGE")),
+ ewk_security_origin_host_get(pSecOrigin));
+ SysTryCatch(NID_WEB_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
+
+ r = pImpl->ShowUserConfirmPopup(USER_CONFIRM_LOCAL_FS_QUOTA_EXCEDED, pView, message);
+ SysTryCatch(NID_WEB_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
+
+ return EINA_TRUE;
+
+CATCH:
+ ewk_view_exceeded_local_file_system_quota_reply(pView, EINA_FALSE);
return EINA_TRUE;
}
OnFullScreenEntered(void* pUserData, Evas_Object* pView, void* pEventInfo)
{
_WebImpl* pImpl = reinterpret_cast<_WebImpl*>(pUserData);
- bool* pIsHandleNeeded = reinterpret_cast< bool* >(pEventInfo);
SysAssertf(pImpl, "Failed to request");
_Web* pWebCore = dynamic_cast< _Web* >(&(pImpl->GetCore()));
SysAssertf(pWebCore, "Failed to get Web core object");
- if (pIsHandleNeeded && *pIsHandleNeeded)
- {
- pWebCore->SetFullScreenEntered(true);
- }
+ pWebCore->SetFullScreenEntered(true);
}
String uriScheme(uri.GetScheme());
SysSecureLog(NID_WEB_CTRL, "The current value of scheme is %ls", uriScheme.GetPointer());
- if ((uriScheme != L"http") && (uriScheme != L"https") && (uriScheme != L"file"))
+ if ((uriScheme != L"http") && (uriScheme != L"https") && (uriScheme != L"file") && (uriScheme != L""))
{
- ewk_policy_decision_ignore(pPolicy);
-
- if (uriScheme == L"")
- {
- return;
- }
-
result r = E_SUCCESS;
if (uriScheme == L"tel")
String operationId(L"http://tizen.org/appcontrol/operation/view");
r = _AppControlImpl::FindAndStart(operationId, &url, null, null, null, null);
}
- SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
- return;
+ if (r == E_SUCCESS)
+ {
+ ewk_policy_decision_ignore(pPolicy);
+
+ return;
+ }
}
ewk_policy_decision_use(pPolicy);
if (code >= REDIRECTION_HEADER_GROUP && code < REDIRECTION_HEADER_GROUP + 100)
{
pImpl->SetRedirectRequested(true);
- mime = L"";
}
ILoadingListener* pLoadingListener = pImpl->GetLoadingListener();
SysSecureLog(NID_WEB_CTRL, "The current value of key is %ls, value is %ls", key.GetPointer(), value.GetPointer());
r = httpHeader.AddField(key, value);
- SysTryCatch(NID_WEB_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
+ SysTryCatch(NID_WEB_CTRL, r == E_SUCCESS, eina_iterator_free(iterator), r, "[%s] Propagating.", GetErrorMessage(r));
}
eina_iterator_free(iterator);
SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
pEventArg.release();
}
-
}
if (pFormImpl)
{
pFormImpl->DeflateClientRectHeight(pXformer->TransformVertical(rect.height));
+
+ pFormImpl->Invalidate(false);
}
if (pImpl->GetWebKeypadEventListener())
{
pFormImpl->DeflateClientRectHeight(0);
+ pFormImpl->Invalidate(false);
+
if (pFormImpl->HasFooter())
{
pFormImpl->GetCore().SetKeypadShowState(false);
{
pImpl->SetKeypadOpened(false);
}
+ else if (pImpl->IsWinFocusLost() == true && pImpl->IsFocused() == false)
+ {
+ _Web* pWebCore = dynamic_cast< _Web* >(&(pImpl->GetCore()));
+ SysAssertf(pWebCore, "Failed to get Web core object");
+
+ evas_object_focus_set(pWebCore->GetWebNativeNode(), EINA_FALSE);
+ }
}
, __pNotificationConfirmPopup(null)
, __pScriptAlertConfirmPopup(null)
, __pScriptConfirmPopup(null)
+ , __pBeforeUnloadConfirmPopup(null)
, __pAppCacheConfirmPopup(null)
, __pDbQuotaConfirmPopup(null)
, __pLocalFsQuotaConfirmPopup(null)
, __pIndexedDbQuotaConfirmPopup(null)
- , __pSavePasswordConfirmPopup(null)
, __pPromptPopup(null)
, __pCertConfirmPopup(null)
, __pSelectBox(null)
_WebImpl::~_WebImpl()
{
_WebManager* pWebManager = _WebManager::GetInstance();
- SysTryCatch(NID_WEB_CTRL, pWebManager, , E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
-
+ SysTryCatch(NID_WEB_CTRL, pWebManager, , E_SYSTEM, "[%s] Failed to get the _ControlManager instance.", GetErrorMessage(E_SYSTEM));
pWebManager->RemoveWeb(reinterpret_cast< int >(this));
- pWebManager->RemoveActiveWeb(this);
CATCH:
+ _SettingInfoImpl::RemoveSettingEventListener(*this);
RemoveEventListenerCallback();
-
- ClearCertificateDb();
}
result
_WebImpl::LoadUrl(const String& url) const
{
+ Evas_Object* pWebview = __pWebCore->GetWebNativeNode();
+ if (!pWebview)
+ {
+ return E_SUCCESS;
+ }
+
std::unique_ptr<char[]> pUrl(_StringConverter::CopyToCharArrayN(url));
SysTryReturn(NID_WEB_CTRL, pUrl.get(), GetLastResult(), GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
- ewk_view_url_set(__pWebCore->GetWebNativeNode(), pUrl.get());
+ ewk_view_url_set(pWebview, pUrl.get());
return E_SUCCESS;
}
result
_WebImpl::LoadUrl(const String& url, const HttpHeader& header)
{
+ Evas_Object* pWebview = __pWebCore->GetWebNativeNode();
+ if (!pWebview)
+ {
+ return E_SUCCESS;
+ }
+
std::unique_ptr<char[]> pUrl(_StringConverter::CopyToCharArrayN(url));
SysTryReturn(NID_WEB_CTRL, pUrl.get(), GetLastResult(), GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
Eina_Hash* pHttpHeader = ConvertToSlpHeaderN(header);
- ewk_view_url_request_set(__pWebCore->GetWebNativeNode(), pUrl.get(), EWK_HTTP_METHOD_GET, pHttpHeader, null);
+ ewk_view_url_request_set(pWebview, pUrl.get(), EWK_HTTP_METHOD_GET, pHttpHeader, null);
eina_hash_free(pHttpHeader);
result
_WebImpl::LoadUrlWithPostRequest(const String& url, const HttpHeader& header, const ByteBuffer& body) const
{
+ Evas_Object* pWebview = __pWebCore->GetWebNativeNode();
+ if (!pWebview)
+ {
+ return E_SUCCESS;
+ }
+
std::unique_ptr<char[]> pUrl(_StringConverter::CopyToCharArrayN(url));
SysTryReturn(NID_WEB_CTRL, pUrl.get(), GetLastResult(), GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
Eina_Hash* pHttpHeader = ConvertToSlpHeaderN(header);
- ewk_view_url_request_set(__pWebCore->GetWebNativeNode(), pUrl.get(), EWK_HTTP_METHOD_POST, pHttpHeader, reinterpret_cast< const char* >(body.GetPointer()));
+ ewk_view_url_request_set(pWebview, pUrl.get(), EWK_HTTP_METHOD_POST, pHttpHeader, reinterpret_cast< const char* >(body.GetPointer()));
eina_hash_free(pHttpHeader);
result
_WebImpl::LoadData(const String& baseUrl, const ByteBuffer& content, const String& mime, const String& encoding) const
{
+ Evas_Object* pWebview = __pWebCore->GetWebNativeNode();
+ if (!pWebview)
+ {
+ return E_SUCCESS;
+ }
+
SysTryReturnResult(NID_WEB_CTRL, content.GetLimit() > 0, E_INVALID_ARG, "The content buffer is empty.");
std::unique_ptr<char[]> pUrl(_StringConverter::CopyToCharArrayN(baseUrl));
std::unique_ptr<char[]> pEncoding(_StringConverter::CopyToCharArrayN(encoding));
SysTryReturn(NID_WEB_CTRL, pUrl.get() && pMime.get() && pEncoding.get(), GetLastResult(), GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
- ewk_view_contents_set(__pWebCore->GetWebNativeNode(), reinterpret_cast< const char* >(content.GetPointer()), content.GetLimit(), pMime.get(), pEncoding.get(), pUrl.get());
+ ewk_view_contents_set(pWebview, reinterpret_cast< const char* >(content.GetPointer()), content.GetLimit(), pMime.get(), pEncoding.get(), pUrl.get());
return E_SUCCESS;
}
void
_WebImpl::Pause(void)
{
- ewk_view_suspend(__pWebCore->GetWebNativeNode());
+ Evas_Object* pWebview = __pWebCore->GetWebNativeNode();
+ if (!pWebview)
+ {
+ return;
+ }
+
+ ewk_view_suspend(pWebview);
}
void
_WebImpl::Resume(void)
{
- ewk_view_resume(__pWebCore->GetWebNativeNode());
+ Evas_Object* pWebview = __pWebCore->GetWebNativeNode();
+ if (!pWebview)
+ {
+ return;
+ }
+
+ ewk_view_resume(pWebview);
}
std::unique_ptr<_SelectBox> pSelectBox(new (std::nothrow) _SelectBox());
SysTryReturnResult(NID_WEB_CTRL, pSelectBox.get(), E_OUT_OF_MEMORY, "Memory allocation failed.");
- r = pSelectBox->Construct(this, isMultiSelect, title, DEFAULT_LIST_ITEM_COUNT, pWebView);
+ if (isMultiSelect)
+ {
+ r = pSelectBox->Construct(this, isMultiSelect, title, DEFAULT_LIST_ITEM_COUNT - 1, pWebView);
+ }
+ else
+ {
+ r = pSelectBox->Construct(this, isMultiSelect, title, DEFAULT_LIST_ITEM_COUNT, pWebView);
+ }
SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
r = pSelectBox->UpdateList(pItems, selectedIndex, false, false);
bool
_WebImpl::CanGoBack(void) const
{
- return static_cast< bool >(ewk_view_back_possible(__pWebCore->GetWebNativeNode()));
+ Evas_Object* pWebview = __pWebCore->GetWebNativeNode();
+ if (!pWebview)
+ {
+ return false;
+ }
+
+ return static_cast< bool >(ewk_view_back_possible(pWebview));
}
bool
_WebImpl::CanGoForward(void) const
{
- return static_cast< bool >(ewk_view_forward_possible(__pWebCore->GetWebNativeNode()));
+ Evas_Object* pWebview = __pWebCore->GetWebNativeNode();
+ if (!pWebview)
+ {
+ return false;
+ }
+
+ return static_cast< bool >(ewk_view_forward_possible(pWebview));
}
void
_WebImpl::GoBack(void) const
{
- ewk_view_back(__pWebCore->GetWebNativeNode());
+ Evas_Object* pWebview = __pWebCore->GetWebNativeNode();
+ if (!pWebview)
+ {
+ return;
+ }
+
+ ewk_view_back(pWebview);
}
void
_WebImpl::GoForward(void) const
{
- ewk_view_forward(__pWebCore->GetWebNativeNode());
+ Evas_Object* pWebview = __pWebCore->GetWebNativeNode();
+ if (!pWebview)
+ {
+ return;
+ }
+
+ ewk_view_forward(pWebview);
}
Tizen::Base::String
_WebImpl::GetUrl(void) const
{
- return ewk_view_url_get(__pWebCore->GetWebNativeNode());
+ Evas_Object* pWebview = __pWebCore->GetWebNativeNode();
+ if (!pWebview)
+ {
+ return L"";
+ }
+
+ return ewk_view_url_get(pWebview);
}
Tizen::Base::String
_WebImpl::GetTitle(void) const
{
- return ewk_view_title_get(__pWebCore->GetWebNativeNode());
+ Evas_Object* pWebview = __pWebCore->GetWebNativeNode();
+ if (!pWebview)
+ {
+ return L"";
+ }
+
+ return ewk_view_title_get(pWebview);
}
void
_WebImpl::StopLoading(void) const
{
- ewk_view_stop(__pWebCore->GetWebNativeNode());
+ Evas_Object* pWebview = __pWebCore->GetWebNativeNode();
+ if (!pWebview)
+ {
+ return;
+ }
+
+ ewk_view_stop(pWebview);
}
void
_WebImpl::Reload(void) const
{
- ewk_view_reload(__pWebCore->GetWebNativeNode());
+ Evas_Object* pWebview = __pWebCore->GetWebNativeNode();
+ if (!pWebview)
+ {
+ return;
+ }
+
+ ewk_view_reload(pWebview);
}
String*
_WebImpl::EvaluateJavascriptN(const String& scriptCode)
{
- Evas_Object* pView = __pWebCore->GetWebNativeNode();
- if (!pView)
+ Evas_Object* pWebview = __pWebCore->GetWebNativeNode();
+ if (!pWebview)
{
return null;
}
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));
- ewk_view_script_execute(pView, pScript.get(), OnScriptExecuted, pPresenter.get());
+ ewk_view_script_execute(pWebview, pScript.get(), OnScriptExecuted, pPresenter.get());
String* pResult = new (std::nothrow) String(L"");
SysTryReturn(NID_WEB_CTRL, pResult, null, E_OUT_OF_MEMORY, "[%s] Memory allocation failed.", GetErrorMessage(E_OUT_OF_MEMORY));
result
_WebImpl::SetZoomLevel(float level)
{
+ Evas_Object* pWebview = __pWebCore->GetWebNativeNode();
+ if (!pWebview)
+ {
+ return E_SUCCESS;
+ }
+
SysTryReturnResult(NID_WEB_CTRL, level >= MIN_ZOOM_LEVEL && level <= MAX_ZOOM_LEVEL, E_OUT_OF_RANGE, "The level(%f) must be between 0.3 and 2.0(%f).", level, level);
- ewk_view_scale_set(__pWebCore->GetWebNativeNode(), static_cast< double >(level), 0, 0);
+ ewk_view_scale_set(pWebview, static_cast< double >(level), 0, 0);
return E_SUCCESS;
}
float
_WebImpl::GetZoomLevel(void) const
{
- return static_cast< float >(ewk_view_scale_get(__pWebCore->GetWebNativeNode()));
+ Evas_Object* pWebview = __pWebCore->GetWebNativeNode();
+ if (!pWebview)
+ {
+ return -1.0f;
+ }
+
+ return static_cast< float >(ewk_view_scale_get(pWebview));
}
const PageNavigationList*
_WebImpl::GetBackForwardListN(void) const
{
- Evas_Object* pView = __pWebCore->GetWebNativeNode();
- if (!pView)
+ Evas_Object* pWebview = __pWebCore->GetWebNativeNode();
+ if (!pWebview)
{
return null;
}
String url(L"");
String title(L"");
- Ewk_History* pEwkHistoryList = ewk_view_history_get(pView);
+ Ewk_History* pEwkHistoryList = ewk_view_history_get(pWebview);
SysTryReturn(NID_WEB_CTRL, pEwkHistoryList, null, E_SYSTEM, "[%s] A system error has been occurred. Failed to get full history.", GetErrorMessage(E_SYSTEM));
Ewk_History_Item* pEwkItem = ewk_history_nth_item_get(pEwkHistoryList, 0);
bool
_WebImpl::SearchText(const String& text, bool searchForward)
{
- Evas_Object* pView = __pWebCore->GetWebNativeNode();
- if (!pView)
+ Evas_Object* pWebview = __pWebCore->GetWebNativeNode();
+ if (!pWebview)
{
return false;
}
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, pPresenter.get());
+ r = SynchronizeSearch(SEARCH_SYNC, pWebview, condition, text, searchForward, false, pPresenter.get());
SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, false, r, "[%s] Propagating.", GetErrorMessage(r));
int result = 0;
result
_WebImpl::SearchTextAllAsync(const Tizen::Base::String& text, bool caseSensitive)
{
- Evas_Object* pView = __pWebCore->GetWebNativeNode();
- if (!pView)
+ Evas_Object* pWebview = __pWebCore->GetWebNativeNode();
+ if (!pWebview)
{
return E_SUCCESS;
}
condition = static_cast <Ewk_Find_Options>(condition | EWK_FIND_OPTIONS_CASE_INSENSITIVE);
}
- r = SynchronizeSearch(SEARCH_ALL_ASYNC, pView, condition, text, true, caseSensitive);
+ r = SynchronizeSearch(SEARCH_ALL_ASYNC, pWebview, condition, text, true, caseSensitive);
SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
return E_SUCCESS;
result
_WebImpl::SearchNextAsync(bool searchForward)
{
- Evas_Object* pView = __pWebCore->GetWebNativeNode();
- if (!pView)
+ Evas_Object* pWebview = __pWebCore->GetWebNativeNode();
+ if (!pWebview)
{
return E_SUCCESS;
}
condition = static_cast <Ewk_Find_Options>(condition | EWK_FIND_OPTIONS_BACKWARDS);
}
- r = SynchronizeSearch(SEARCH_NEXT_ASYNC, pView, condition, __textSearch.__text, searchForward);
+ r = SynchronizeSearch(SEARCH_NEXT_ASYNC, pWebview, condition, __textSearch.__text, searchForward);
SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
return E_SUCCESS;
const HitElementResult*
_WebImpl::GetElementByPointN(const FloatPoint& point) const
{
- Evas_Object* pView = __pWebCore->GetWebNativeNode();
- if (!pView)
+ Evas_Object* pWebview = __pWebCore->GetWebNativeNode();
+ if (!pWebview)
{
return null;
}
Point absPoint(_CoordinateSystemUtils::ConvertToInteger(__pWebCore->GetAbsoluteCoordinate(point)));
- Ewk_Hit_Test* pEwkHitTest = ewk_view_hit_test_new(pView, absPoint.x, absPoint.y, EWK_HIT_TEST_MODE_ALL);
+ Ewk_Hit_Test* pEwkHitTest = ewk_view_hit_test_new(pWebview, absPoint.x, absPoint.y, EWK_HIT_TEST_MODE_ALL);
SysTryReturn(NID_WEB_CTRL, pEwkHitTest, null, E_SYSTEM, "[%s] Failed to get hit test.", GetErrorMessage(E_SYSTEM));
Eina_Hash* pAttrHash = ewk_hit_test_attribute_hash_get(pEwkHitTest);
bool
_WebImpl::IsLoading(void) const
{
- double percent = ewk_view_load_progress_get(__pWebCore->GetWebNativeNode());
+ Evas_Object* pWebview = __pWebCore->GetWebNativeNode();
+ if (!pWebview)
+ {
+ return false;
+ }
+
+ double percent = ewk_view_load_progress_get(pWebview);
if (Double::Compare(percent, 0.0) > 0 && Double::Compare(percent, 1.0) < 0)
{
String
_WebImpl::GetTextFromBlock(void) const
{
- return ewk_view_text_selection_text_get(__pWebCore->GetWebNativeNode());
+ Evas_Object* pWebview = __pWebCore->GetWebNativeNode();
+ if (!pWebview)
+ {
+ return L"";
+ }
+
+ return ewk_view_text_selection_text_get(pWebview);
}
bool
_WebImpl::IsPrivateBrowsingEnabled(void) const
{
- if (__pWebCore->GetWebNativeNode() == null)
+ Evas_Object* pWebview = __pWebCore->GetWebNativeNode();
+ if (!pWebview)
{
return _WebSettingImpl::GetInstance(__pWebCore->GetSetting())->IsPrivateBrowsingEnabled();
}
- Ewk_Settings* pSettings = ewk_view_settings_get(__pWebCore->GetWebNativeNode());
+ Ewk_Settings* pSettings = ewk_view_settings_get(pWebview);
SysAssertf(pSettings, "Failed to get webkit instance.");
return static_cast< bool >(ewk_settings_private_browsing_enabled_get(pSettings));
void
_WebImpl::SetPrivateBrowsingEnabled(bool enable)
{
- if (__pWebCore->GetWebNativeNode() == null)
+ Evas_Object* pWebview = __pWebCore->GetWebNativeNode();
+ if (!pWebview)
{
_WebSettingImpl::GetInstance(__pWebCore->GetSetting())->SetPrivateBrowsingEnabled(enable);
+
return;
}
- Ewk_Settings* pSettings = ewk_view_settings_get(__pWebCore->GetWebNativeNode());
+ Ewk_Settings* pSettings = ewk_view_settings_get(pWebview);
SysAssertf(pSettings, "Failed to get webkit instance.");
ewk_settings_private_browsing_enabled_set(pSettings, static_cast< Eina_Bool >(enable));
void
_WebImpl::ClearHistory(void)
{
- ewk_view_back_forward_list_clear(__pWebCore->GetWebNativeNode());
+ Evas_Object* pWebview = __pWebCore->GetWebNativeNode();
+ if (!pWebview)
+ {
+ return;
+ }
+
+ ewk_view_back_forward_list_clear(pWebview);
}
void
_WebImpl::ClearCache(void)
{
- Ewk_Context* pContext = ewk_view_context_get(__pWebCore->GetWebNativeNode());
+ Evas_Object* pWebview = __pWebCore->GetWebNativeNode();
+ if (!pWebview)
+ {
+ return;
+ }
+
+ Ewk_Context* pContext = ewk_view_context_get(pWebview);
ewk_context_cache_clear(pContext);
}
void
_WebImpl::ClearCookie(void)
{
- Ewk_Context* pContext = ewk_view_context_get(__pWebCore->GetWebNativeNode());
+ Evas_Object* pWebview = __pWebCore->GetWebNativeNode();
+ if (!pWebview)
+ {
+ return;
+ }
+
+ Ewk_Context* pContext = ewk_view_context_get(pWebview);
Ewk_Cookie_Manager* pCookieManager = ewk_context_cookie_manager_get(pContext);
ewk_cookie_manager_cookies_clear(pCookieManager);
void
_WebImpl::ClearFormData(void)
{
- Ewk_Context* pContext = ewk_view_context_get(__pWebCore->GetWebNativeNode());
+ Evas_Object* pWebview = __pWebCore->GetWebNativeNode();
+ if (!pWebview)
+ {
+ return;
+ }
+
+ Ewk_Context* pContext = ewk_view_context_get(pWebview);
ewk_context_form_candidate_data_clear(pContext);
}
void
_WebImpl::ClearLoginFormData(void)
{
- Ewk_Context* pContext = ewk_view_context_get(__pWebCore->GetWebNativeNode());
+ Evas_Object* pWebview = __pWebCore->GetWebNativeNode();
+ if (!pWebview)
+ {
+ return;
+ }
+
+ Ewk_Context* pContext = ewk_view_context_get(pWebview);
ewk_context_form_password_data_clear(pContext);
}
bool
_WebImpl::IsCookieEnabled(void) const
{
- if (__pWebCore->GetWebNativeNode() == null)
+ Evas_Object* pWebview = __pWebCore->GetWebNativeNode();
+ if (!pWebview)
{
return _WebSettingImpl::GetInstance(__pWebCore->GetSetting())->IsCookieEnabled();
}
- Ewk_Context* pContext = ewk_view_context_get(__pWebCore->GetWebNativeNode());
+ Ewk_Context* pContext = ewk_view_context_get(pWebview);
Ewk_Cookie_Manager* pCookieManager = ewk_context_cookie_manager_get(pContext);
SysAssertf(pCookieManager, "Failed to get webkit instance.");
void
_WebImpl::SetCookieEnabled(bool enable)
{
- if (__pWebCore->GetWebNativeNode() == null)
+ Evas_Object* pWebview = __pWebCore->GetWebNativeNode();
+ if (!pWebview)
{
_WebSettingImpl::GetInstance(__pWebCore->GetSetting())->SetCookiEnabled(enable);
return;
}
- Ewk_Context* pContext = ewk_view_context_get(__pWebCore->GetWebNativeNode());
+ Ewk_Context* pContext = ewk_view_context_get(pWebview);
Ewk_Cookie_Manager* pCookieManager = ewk_context_cookie_manager_get(pContext);
SysAssertf(pCookieManager, "Failed to get webkit instance.");
result
_WebImpl::SavePageAsPdf(const String& filePath, const Dimension* pSize) const
{
+ Evas_Object* pWebview = __pWebCore->GetWebNativeNode();
+ if (!pWebview)
+ {
+ return E_SUCCESS;
+ }
+
result r = E_SUCCESS;
std::unique_ptr<char[]> pFilePath(_StringConverter::CopyToCharArrayN(filePath));
{
SysTryReturnResult(NID_WEB_CTRL, pSize->width > 0 && pSize->height > 0, E_INVALID_ARG, "Invalid argument(s) is used. Size of pdf file is invalid.");
- ewk_view_contents_pdf_get(__pWebCore->GetWebNativeNode(), pSize->width, pSize->height, pFilePath.get());
+ ewk_view_contents_pdf_get(pWebview, pSize->width, pSize->height, pFilePath.get());
}
else
{
Evas_Coord contentsWidth;
Evas_Coord contentsHeight;
- ewk_view_contents_size_get(__pWebCore->GetWebNativeNode(), &contentsWidth, &contentsHeight);
- ewk_view_contents_pdf_get(__pWebCore->GetWebNativeNode(), contentsWidth, contentsHeight, pFilePath.get());
+ ewk_view_contents_size_get(pWebview, &contentsWidth, &contentsHeight);
+ ewk_view_contents_pdf_get(pWebview, contentsWidth, contentsHeight, pFilePath.get());
}
return E_SUCCESS;
bool
_WebImpl::IsMimeSupported(const String& mime) const
{
+ Evas_Object* pWebview = __pWebCore->GetWebNativeNode();
+ if (!pWebview)
+ {
+ return false;
+ }
+
std::unique_ptr<char[]> pMime(_StringConverter::CopyToCharArrayN(mime));
SysTryReturn(NID_WEB_CTRL, pMime.get(), false, GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
- return static_cast< bool >(ewk_frame_can_show_mime_type(ewk_view_main_frame_get(__pWebCore->GetWebNativeNode()), pMime.get()));
+ return static_cast< bool >(ewk_frame_can_show_mime_type(ewk_view_main_frame_get(pWebview), pMime.get()));
}
ewk_view_javascript_alert_callback_set(pWebNativeNode, OnScriptAlertRequested, const_cast< _WebImpl* >(this));
ewk_view_javascript_prompt_callback_set(pWebNativeNode, OnScriptPromptRequested, const_cast< _WebImpl* >(this));
ewk_view_javascript_confirm_callback_set(pWebNativeNode, OnScriptConfirmRequested, const_cast< _WebImpl* >(this));
+ ewk_view_before_unload_confirm_panel_callback_set(pWebNativeNode, OnBeforeUnloadConfirmRequested, const_cast< _WebImpl* >(this));
evas_object_smart_callback_add(pWebNativeNode, "policy,response,decide", OnWebDataReceived, this);
ewk_view_exceeded_database_quota_callback_set(pWebNativeNode, OnDatabaseQuotaExceeded, const_cast< _WebImpl* >(this));
ewk_view_exceeded_local_file_system_quota_callback_set(pWebNativeNode, OnLocalFileSystemQuotaExceeded, const_cast< _WebImpl* >(this));
- ewk_view_password_confirm_popup_callback_set(pWebNativeNode, OnSavePasswordConfirmRequested, const_cast< _WebImpl* >(this));
-
evas_object_event_callback_add(pWebNativeNode, EVAS_CALLBACK_FOCUS_IN, OnWebNativeNodeFocusGained, this);
evas_object_event_callback_add(pWebNativeNode, EVAS_CALLBACK_FOCUS_OUT, OnWebNativeNodeFocusLost, this);
}
ewk_view_javascript_alert_callback_set(pWebNativeNode, null, null);
ewk_view_javascript_prompt_callback_set(pWebNativeNode, null, null);
ewk_view_javascript_confirm_callback_set(pWebNativeNode, null, null);
+ ewk_view_before_unload_confirm_panel_callback_set(pWebNativeNode, null, null);
evas_object_smart_callback_del(pWebNativeNode, "policy,response,decide", OnWebDataReceived);
ewk_view_exceeded_database_quota_callback_set(pWebNativeNode, null, null);
ewk_view_exceeded_local_file_system_quota_callback_set(pWebNativeNode, null, null);
- ewk_view_password_confirm_popup_callback_set(pWebNativeNode, null, null);
-
evas_object_event_callback_del(pWebNativeNode, EVAS_CALLBACK_FOCUS_IN, OnWebNativeNodeFocusGained);
evas_object_event_callback_del(pWebNativeNode, EVAS_CALLBACK_FOCUS_OUT, OnWebNativeNodeFocusLost);
}
}
-void
-_WebImpl::ClearCertificateDb(void)
-{
- 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();
-}
-
-
result
_WebImpl::SetBlockSelectionPosition(const Point& startPoint)
{
char* pValue = reinterpret_cast< char* >(eina_hash_find(pAttrHash, "contenteditable"));
if (tagName.Equals(L"INPUT", false) || tagName.Equals(L"TEXTAREA", false) || pValue)
{
- ewk_view_command_execute(pWebview, "SelectWord", 0);
+ ewk_view_command_execute(pWebview, "SelectWord", null);
evas_object_smart_callback_call(pWebview, "magnifier,hide", NULL);
}
}
void
_WebImpl::ReleaseBlock(void)
{
- ewk_view_text_selection_range_clear(__pWebCore->GetWebNativeNode());
+ Evas_Object* pWebview = __pWebCore->GetWebNativeNode();
+ if (!pWebview)
+ {
+ return;
+ }
+
+ ewk_view_text_selection_range_clear(pWebview);
}
void
_WebImpl::GetBlockRange(FloatPoint& startPoint, FloatPoint& endPoint) const
{
+ Evas_Object* pWebview = __pWebCore->GetWebNativeNode();
+ if (!pWebview)
+ {
+ startPoint.x = startPoint.y = endPoint.x = endPoint.y = 0.0f;
+
+ }
+
Eina_Rectangle leftHandle;
Eina_Rectangle rightHandle;
Bitmap*
_WebImpl::GetFaviconN(void) const
{
+ Evas_Object* pWebview = __pWebCore->GetWebNativeNode();
+ if (!pWebview)
+ {
+ return null;
+ }
+
result r = E_SUCCESS;
- Evas_Object* pView = __pWebCore->GetWebNativeNode();
- Ewk_Context* pContext = ewk_view_context_get(pView);
- const char* pUrl = ewk_view_url_get(pView);
- Evas* pEvas = evas_object_evas_get(pView);
+ Ewk_Context* pContext = ewk_view_context_get(pWebview);
+ const char* pUrl = ewk_view_url_get(pWebview);
+ Evas* pEvas = evas_object_evas_get(pWebview);
Evas_Object* pFavicon = ewk_context_icon_database_icon_object_add(pContext, pUrl, pEvas);
if (!pFavicon)
void
_WebImpl::ScrollBy(const Tizen::Graphics::Point& diff)
{
- ewk_view_scroll_by(__pWebCore->GetWebNativeNode(), diff.x, diff.y);
+ Evas_Object* pWebview = __pWebCore->GetWebNativeNode();
+ if (!pWebview)
+ {
+ return;
+ }
+
+ ewk_view_scroll_by(pWebview, diff.x, diff.y);
}
void
_WebImpl::ScrollTo(const Tizen::Graphics::Point& dest)
{
- ewk_view_scroll_set(__pWebCore->GetWebNativeNode(), dest.x, dest.y);
+ Evas_Object* pWebview = __pWebCore->GetWebNativeNode();
+ if (!pWebview)
+ {
+ return;
+ }
+
+ ewk_view_scroll_set(pWebview, dest.x, dest.y);
}
Point
_WebImpl::GetScrollPosition(void) const
{
+ Evas_Object* pWebview = __pWebCore->GetWebNativeNode();
+ if (!pWebview)
+ {
+ return Point(0, 0);
+ }
+
Point position;
- ewk_view_scroll_pos_get(__pWebCore->GetWebNativeNode(), &position.x, &position.y);
+ ewk_view_scroll_pos_get(pWebview, &position.x, &position.y);
return position;
}
Dimension
_WebImpl::GetPageSize(void) const
{
+ Evas_Object* pWebview = __pWebCore->GetWebNativeNode();
+ if (!pWebview)
+ {
+ return Dimension(0, 0);
+ }
+
Evas_Coord width = 0;
Evas_Coord height = 0;
- ewk_view_contents_size_get(__pWebCore->GetWebNativeNode(), &width, &height);
+ ewk_view_contents_size_get(pWebview, &width, &height);
Dimension size(static_cast< int >(width), static_cast< int >(height));
}
-result
-_WebImpl::AddHttpHeaderField(const String& name, const String& value)
-{
- SysTryReturnResult(NID_WEB_CTRL, name.GetLength() > 0, E_INVALID_ARG, "Invalid argument(s) is used. name key is missing.");
-
- std::unique_ptr<char[]> pName(_StringConverter::CopyToCharArrayN(name));
- SysTryReturn(NID_WEB_CTRL, pName.get(), GetLastResult(), GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
-
- std::unique_ptr<char[]> pValue(_StringConverter::CopyToCharArrayN(value));
-
- ewk_view_custom_header_add(__pWebCore->GetWebNativeNode(), pName.get(), pValue.get());
-
- return E_SUCCESS;
-}
-
-
-result
-_WebImpl::RemoveHttpHeaderField(const String& name)
-{
- SysTryReturnResult(NID_WEB_CTRL, name.GetLength() > 0, E_INVALID_ARG, "Invalid argument(s) is used. name key is missing.");
-
- std::unique_ptr<char[]> pName(_StringConverter::CopyToCharArrayN(name));
- SysTryReturn(NID_WEB_CTRL, pName.get(), GetLastResult(), GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
-
- ewk_view_custom_header_remove(__pWebCore->GetWebNativeNode(), pName.get());
-
- return E_SUCCESS;
-}
-
-
void
_WebImpl::SetLoadingErrorOccurred(bool arg)
{
result
_WebImpl::SetFullScreenKeypad(void)
{
+ Evas_Object* pWebview = __pWebCore->GetWebNativeNode();
+ if (!pWebview)
+ {
+ return E_SUCCESS;
+ }
+
result r = E_SUCCESS;
std::unique_ptr<Keypad> pKeypad(new (std::nothrow) Keypad());
r = pKeypad->Construct(KEYPAD_STYLE_NORMAL, 100);
SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
- String text(ewk_view_focused_input_element_value_get(__pWebCore->GetWebNativeNode()));
- pKeypad->SetText(text);
+ Point absPoint(_CoordinateSystemUtils::ConvertToInteger(__pWebCore->GetAbsoluteCoordinate(__pWebCore->GetTouchPosition())));
+
+ Ewk_Hit_Test* pEwkHitTest = ewk_view_hit_test_new(pWebview, absPoint.x, absPoint.y, EWK_HIT_TEST_MODE_ALL);
+ SysTryReturnResult(NID_WEB_CTRL, pEwkHitTest, E_SYSTEM, "Failed to get hit test.");
+
+ String tagName(ewk_hit_test_tag_name_get(pEwkHitTest));
+ if (tagName.Equals(L"INPUT", false))
+ {
+ String text(ewk_view_focused_input_element_value_get(pWebview));
+ pKeypad->SetText(text);
+ }
+ else
+ {
+ String* pText = EvaluateJavascriptN(L"document.activeElement.value");
+ SysTryReturnResult(NID_WEB_CTRL, pText, E_OUT_OF_MEMORY, "Memory allocation failed.");
+ pKeypad->SetText(*pText);
+ }
r = pKeypad->SetShowState(true);
SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
void
_WebImpl::OnTextValueChanged(const Control& source)
{
+ Evas_Object* pWebview = __pWebCore->GetWebNativeNode();
+ if (!pWebview)
+ {
+ return;
+ }
+
std::unique_ptr<char[]> pText(_StringConverter::CopyToCharArrayN(__pKeypad->GetText()));
+ SysTryReturnVoidResult(NID_WEB_CTRL, pText.get(), E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
+
+ Point absPoint(_CoordinateSystemUtils::ConvertToInteger(__pWebCore->GetAbsoluteCoordinate(__pWebCore->GetTouchPosition())));
- ewk_view_focused_input_element_value_set(__pWebCore->GetWebNativeNode(), pText.get());
+ Ewk_Hit_Test* pEwkHitTest = ewk_view_hit_test_new(pWebview, absPoint.x, absPoint.y, EWK_HIT_TEST_MODE_ALL);
+ SysTryReturnVoidResult(NID_WEB_CTRL, pEwkHitTest, E_SYSTEM, "[E_SYSTEM] Failed to get hit test.");
+
+ String tagName(ewk_hit_test_tag_name_get(pEwkHitTest));
+ if (tagName.Equals(L"INPUT", false))
+ {
+ ewk_view_focused_input_element_value_set(__pWebCore->GetWebNativeNode(), pText.get());
+ }
+ else
+ {
+ ewk_view_command_execute(pWebview, "SelectAll", null);
+ ewk_view_command_execute(pWebview, "Delete", null);
+ ewk_view_command_execute(pWebview, "InsertText", pText.get());
+ }
RemoveFullScreenKeypad();
}
__pVibrator.reset();
- std::unique_ptr<_VibratorImpl> pVibrator(new (std::nothrow) _VibratorImpl);
+ std::unique_ptr<Vibrator> pVibrator(new (std::nothrow) Vibrator());
SysTryReturnResult(NID_WEB_CTRL, pVibrator.get(), E_OUT_OF_MEMORY, "Memory allocation failed.");
r = pVibrator->Construct();
IntensityDurationVibrationPattern pattern = {static_cast< int >(duration), -1};
- r = __pVibrator->Start(&pattern, 1, 1);
+ r = __pVibrator->Start(&pattern, 1);
SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
return E_SUCCESS;
r = pAuthPopup->Construct(host, realm, pAuthChallenge);
SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
+ __pAuthPopup.reset();
__pAuthPopup = std::move(pAuthPopup);
- int modalResult = 0;
-
- r = __pAuthPopup->ShowAndWait(modalResult);
- SysTryCatch(NID_WEB_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
-
-CATCH:
- if (__pAuthPopup)
- {
- __pAuthPopup.reset();
- }
+ r = __pAuthPopup->ShowPopup();
+ SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
- return r;
+ return E_SUCCESS;
}
break;
}
+ case USER_BEFORE_UNLOAD_CONFIRM:
+ {
+ __pBeforeUnloadConfirmPopup.reset();
+
+ __pBeforeUnloadConfirmPopup = std::move(pUserConfirmPopup);
+
+ r = __pBeforeUnloadConfirmPopup->ShowPopup();
+ SysTryCatch(NID_WEB_CTRL, r == E_SUCCESS, __pBeforeUnloadConfirmPopup.reset(), r, "[%s] Propagating.", GetErrorMessage(r));
+
+ break;
+ }
default:
break;
}
{
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();
SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
- SettingInfo::AddSettingEventListener(*this);
+ _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;
}
degree = 0;
break;
case _CONTROL_ROTATION_90:
- degree = 90;
+ degree = -90;
break;
case _CONTROL_ROTATION_180:
degree = 180;
break;
case _CONTROL_ROTATION_270:
- degree = -90;
+ degree = 90;
break;
default:
SysAssert(false);
}
_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);
- ewk_view_page_visibility_state_set(pWebview, EWK_PAGE_VISIBILITY_STATE_VISIBLE, false);
+ if (IsLoading())
+ {
+// ewk_view_page_visibility_state_set(pWebview, EWK_PAGE_VISIBILITY_STATE_VISIBLE, true);
+ }
+ else
+ {
+// ewk_view_page_visibility_state_set(pWebview, EWK_PAGE_VISIBILITY_STATE_VISIBLE, false);
+ }
}
else
{
pWebManager->RemoveActiveWeb(this);
- ewk_view_page_visibility_state_set(pWebview, EWK_PAGE_VISIBILITY_STATE_HIDDEN, false);
+ if (IsLoading())
+ {
+// ewk_view_page_visibility_state_set(pWebview, EWK_PAGE_VISIBILITY_STATE_HIDDEN, true);
+ }
+ else
+ {
+// ewk_view_page_visibility_state_set(pWebview, EWK_PAGE_VISIBILITY_STATE_HIDDEN, false);
+ }
}
}
case ID_USER_SCRIPT_CONFIRM_CLOSE:
__pScriptConfirmPopup.reset();
break;
- case ID_USER_CONFIRM_SAVE_PASSWORD_CLOSE:
- __pSavePasswordConfirmPopup.reset();
+
+ case ID_USER_BEFORE_UNLOAD_CONFIRM_CLOSE:
+ __pBeforeUnloadConfirmPopup.reset();
break;
+
case ID_USER_SCRIPT_SELECTBOX_CLOSE:
__pSelectBox.reset();
break;
__pColorPicker = std::move(pColorHadler);
- r = __pColorPicker->ShowPopup();
+ int modalResult = 0;
+ r = __pColorPicker->ShowAndWait(modalResult);
SysTryCatch(NID_WEB_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
if (__pColorPicker)
__pDatePicker = std::move(pInputPicker);
- r = __pDatePicker->ShowPopup();
+ int modalResult = 0;
+ r = __pDatePicker->ShowAndWait(modalResult);
SysTryCatch(NID_WEB_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
if (__pDatePicker)