Eina_Bool
-AddHttpHeaderData(const Eina_Hash* pHash, const void* pKey, void* pValue, void* pUserData)
-{
- result r = E_SUCCESS;
-
- String key(reinterpret_cast< const char* >(pKey));
- String value(reinterpret_cast< char* >(pValue));
-
- SysLog(NID_WEB_CTRL, "The current value of key is %ls, value is %ls", key.GetPointer(), value.GetPointer());
-
- r = reinterpret_cast< HttpHeader* >(pUserData)->AddField(key, value);
- SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, EINA_FALSE, r, "[%s] Propagating.", GetErrorMessage(r));
-
- return EINA_TRUE;
-}
-
-
-Eina_Bool
AddHttpAttributeData(const Eina_Hash* pHash, const void* pKey, void* pValue, void* pUserData)
{
result r = E_SUCCESS;
ILoadingListener* pLoadingListener = pImpl->GetLoadingListener();
if (pLoadingListener)
{
- const Eina_Hash* pHeader = ewk_policy_decision_response_headers_get(pPolicy);
HttpHeader httpHeader;
- eina_hash_foreach(pHeader, AddHttpHeaderData, &httpHeader);
- SysTryCatch(NID_WEB_CTRL, GetLastResult() == E_SUCCESS, , GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
+ Eina_Iterator* iterator = eina_hash_iterator_tuple_new(ewk_policy_decision_response_headers_get(pPolicy));
+ if (iterator)
+ {
+ Eina_Hash_Tuple *tuple = null;
+
+ EINA_ITERATOR_FOREACH(iterator, tuple)
+ {
+ String key(reinterpret_cast< const char* >(tuple->key));
+ String value(reinterpret_cast< char* >(tuple->data));
+
+ 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));
+ }
+
+ eina_iterator_free(iterator);
+ }
pImpl->SetPolicyDecision(pLoadingListener->OnWebDataReceived(mime, httpHeader));
}
String redirectUrl(pImpl->GetRedirectUri(url, currentUrl, mime));
if (redirectUrl != L"")
{
- pImpl->LoadUrl(redirectUrl);
ewk_policy_decision_ignore(pPolicy);
+ pImpl->LoadUrl(redirectUrl);
+
return;
}
r = _AppControlImpl::FindAndStart(operationId, &url, &mime, null, null, null);
SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS || r == E_OBJ_NOT_FOUND, r, "[%s] Propagating.", GetErrorMessage(r));
+ if (r == E_OBJ_NOT_FOUND)
+ {
+ String operationId(L"http://tizen.org/appcontrol/operation/download");
+
+ r = _AppControlImpl::FindAndStart(operationId, &url, null, null, null, null);
+ SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
+ }
return;
}