String mime(ewk_policy_decision_response_mime_get(pPolicy));
SysSecureLog(NID_WEB_CTRL, "url : %s, mime : %ls, code : %d", pUrl, mime.GetPointer(), code);
+ String* pFieldValue = null;
+ String compareHeader(L"");
+ std::unique_ptr<IEnumerator> pFieldValueEnum;
+
ILoadingListener* pLoadingListener = pImpl->GetLoadingListener();
String url(ewk_policy_decision_url_get(pPolicy));
- if (pLoadingListener && ewk_frame_is_main_frame(ewk_policy_decision_frame_get(pPolicy)))
+ 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()));
+
+ pFieldValueEnum = std::unique_ptr<IEnumerator>(httpHeader.GetFieldValuesN(L"Content-Disposition"));
+
+ if( pFieldValueEnum != null)
{
- const Eina_Hash* pHeader = ewk_policy_decision_response_headers_get(pPolicy);
+ pFieldValueEnum->MoveNext();
+ pFieldValue = dynamic_cast< String* >(pFieldValueEnum->GetCurrent());
+ pFieldValue->SubString(0, 10, compareHeader);
+ }
+ if (pLoadingListener && ewk_frame_is_main_frame(ewk_policy_decision_frame_get(pPolicy)))
+ {
DecisionPolicy policy;
- HttpHeader httpHeader;
if (code >= REDIRECTION_HEADER_GROUP && code < REDIRECTION_HEADER_GROUP + 100)
{
mime = L"";
}
- eina_hash_foreach(pHeader, AddHttpHeaderData, &httpHeader);
- SysTryCatch(NID_WEB_CTRL, GetLastResult() == E_SUCCESS, , GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
-
policy = pLoadingListener->OnWebDataReceived(mime, httpHeader);
pImpl->SetPolicyDecision(policy);
}
return;
}
- if (pImpl->IsMimeSupported(mime) || mime == L"")
+ if ( String::Compare(compareHeader, L"attachment") != 0 && (pImpl->IsMimeSupported(mime) || mime == L""))
{
break;
}