X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fcontrols%2FFWebCtrl_CertificateConfirmPopup.cpp;h=0ef39ae65eee184c2042e9b74daaf966b843de80;hb=refs%2Ftags%2Faccepted%2Ftizen%2F2.2%2Fmain%2F20140102.100224;hp=9a23ff0e5ae9ca9d83d83a475b278b4679d845af;hpb=0a1a139f4a62767a9ea5792ec475c9f248bdae44;p=framework%2Fosp%2Fweb.git diff --git a/src/controls/FWebCtrl_CertificateConfirmPopup.cpp b/src/controls/FWebCtrl_CertificateConfirmPopup.cpp index 9a23ff0..0ef39ae 100755 --- a/src/controls/FWebCtrl_CertificateConfirmPopup.cpp +++ b/src/controls/FWebCtrl_CertificateConfirmPopup.cpp @@ -39,7 +39,7 @@ #include #include #include "FWebCtrl_CertificateConfirmPopup.h" -#include "FWebCtrl_EflWebkit.h" +#include "FWebCtrl_WebManager.h" #include "FWebCtrl_Utility.h" #include "FWebCtrl_WebImpl.h" @@ -66,17 +66,28 @@ _CertificateConfirmPopup::_CertificateConfirmPopup(void) : __certPopupMode(CERTIFICATE_POPUP_MODE_USER_CONFIRM) , __confirm(false) , __pCertificatePolicyData(null) + , __pParent(null) + , __pCertificatePopup(null) + , __reaction(false) { } _CertificateConfirmPopup::~_CertificateConfirmPopup(void) { + if (IsModalPopup() == true) + { + HandleUserAction(false); + } + if (__pCertificatePopup.get()) + { + __pCertificatePopup.reset(); + } } result -_CertificateConfirmPopup::Construct(_CertificatePopupMode certPopupMode, Ewk_Certificate_Policy_Decision* pPolicy) +_CertificateConfirmPopup::Construct(_CertificatePopupMode certPopupMode, Ewk_Certificate_Policy_Decision* pPolicy, Tizen::Web::Controls::_CertificateConfirmPopup* pParent) { SysTryReturnResult(NID_WEB_CTRL, pPolicy, E_INVALID_ARG, "Certificate Policy pointer is null."); result r = E_SUCCESS; @@ -93,6 +104,8 @@ _CertificateConfirmPopup::Construct(_CertificatePopupMode certPopupMode, Ewk_Cer int popupMaxHeight = 0; Rectangle rect(0, 0, 0, 0); + __pParent = pParent; + ArrayList idList; r = idList.Construct(); SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r)); @@ -103,30 +116,30 @@ _CertificateConfirmPopup::Construct(_CertificatePopupMode certPopupMode, Ewk_Cer if( __certPopupMode == CERTIFICATE_POPUP_MODE_VIEW ) { - titleText = pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_BR_BODY_CERTIFICATES"); - popupMaxHeight = 4*pPopupData->labelDim.height + pPopupData->btnDim.height + 2*pPopupData->sideMargin; + titleText = pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_TPLATFORM_HEADER_SECURITY_CERTIFICATE_ABB"); + popupMaxHeight = 4*pPopupData->labelDim.height + pPopupData->panelHeight; rect.height = 4*pPopupData->labelDim.height; rect.width = pPopupData->labelDim.width; idList.Add(*(new Integer(ID_BUTTON_CERTIFICATE_CLOSE))); - titleList.Add(*(new String(pSysResource->GetString("sys_string", "IDS_COM_BODY_DONE")))); + titleList.Add(*(new String(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_TPLATFORM_BUTTON_OK")))); } else // CERTIFICATE_POPUP_MODE_CONFIRM { - titleText = pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_BR_HEADER_SECURITY_WARNING"); - popupMaxHeight = 2*pPopupData->labelDim.height + pPopupData->btnDim.height + 2*pPopupData->sideMargin; + titleText = pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_TPLATFORM_HEADER_SECURITY_WARNING_ABB"); + popupMaxHeight = 2*pPopupData->labelDim.height + pPopupData->panelHeight; rect.height = 2*pPopupData->labelDim.height; rect.width = pPopupData->labelDim.width; - idList.Add(*(new Integer(ID_BUTTON_CERTIFICATE_ALLOW))); - idList.Add(*(new Integer(ID_BUTTON_CERTIFICATE_VIEW))); idList.Add(*(new Integer(ID_BUTTON_CERTIFICATE_CANCEL))); + idList.Add(*(new Integer(ID_BUTTON_CERTIFICATE_VIEW))); + idList.Add(*(new Integer(ID_BUTTON_CERTIFICATE_ALLOW))); - titleList.Add(*(new String(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_BR_OPT_ALLOW")))); - titleList.Add(*(new String(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_BR_OPT_VIEW")))); - titleList.Add(*(new String(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_BR_OPT_CANCEL")))); + titleList.Add(*(new String(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_TPLATFORM_BUTTON_CANCEL_ABB")))); + titleList.Add(*(new String(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_TPLATFORM_BUTTON2_VIEW_CERTIFICATE")))); + titleList.Add(*(new String(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_TPLATFORM_BUTTON_CONTINUE_ABB")))); } r = _WebPopup::Construct(true, Dimension(pPopupData->popupDim.width, popupMaxHeight)); @@ -170,7 +183,7 @@ _CertificateConfirmPopup::Construct(_CertificatePopupMode certPopupMode, Ewk_Cer SysTryReturnResult(NID_WEB_CTRL, pLabel.get(), E_OUT_OF_MEMORY, "Memory Allocation failed."); String message = L""; - message = pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_BR_BODY_SECURITY_CERTIFICATE_PROBLEM_MSG"); + message = pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_TPLATFORM_BODY_THERE_ARE_PROBLEMS_WITH_THE_SECURITY_CERTIFICATE_FOR_THIS_SITE_C"); message.Append(L"\n"); message.Append(ewk_certificate_policy_decision_url_get(__pCertificatePolicyData)); @@ -191,11 +204,6 @@ _CertificateConfirmPopup::Construct(_CertificatePopupMode certPopupMode, Ewk_Cer r = CreateAndAddButtons(idList, titleList, pButtonPanel); SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r)); - pLayout->SetHorizontalFitPolicy(*pButtonPanel, FIT_POLICY_PARENT); - pLayout->SetHorizontalAlignment(*pButtonPanel, LAYOUT_HORIZONTAL_ALIGN_CENTER); - - pLayout->SetSpacing(*pButtonPanel, 2*pPopupData->sideMargin); - SetPropagatedKeyEventListener(this); return E_SUCCESS; @@ -210,32 +218,57 @@ _CertificateConfirmPopup::OnActionPerformed(const Control& source, int actionId) switch (actionId) { case ID_BUTTON_CERTIFICATE_ALLOW: + { + if (__reaction) + { + return; + } + HandleUserAction(true); break; + } case ID_BUTTON_CERTIFICATE_VIEW: { + if (__reaction) + { + return; + } + + __reaction = true; std::unique_ptr<_CertificateConfirmPopup> pCertificatePopup(new (std::nothrow) _CertificateConfirmPopup()); SysTryReturnVoidResult(NID_WEB_CTRL, pCertificatePopup.get(), E_OUT_OF_MEMORY, "Memory Allocation failed."); - r = pCertificatePopup->Construct(CERTIFICATE_POPUP_MODE_VIEW, __pCertificatePolicyData); + r = pCertificatePopup->Construct(CERTIFICATE_POPUP_MODE_VIEW, __pCertificatePolicyData, this); SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r)); - pCertificatePopup->SetOwner(this); - - r = pCertificatePopup->ShowPopup(); - SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r)); + __pCertificatePopup = std::move(pCertificatePopup); - pCertificatePopup.release(); + r = __pCertificatePopup->ShowPopup(); + SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r)); return; } case ID_BUTTON_CERTIFICATE_CANCEL: + { + if (__reaction) + { + return; + } + HandleUserAction(false); break; + } case ID_BUTTON_CERTIFICATE_CLOSE: + { + if (__reaction) + { + return; + } + break; + } default: SysAssert(false); @@ -247,16 +280,40 @@ _CertificateConfirmPopup::OnActionPerformed(const Control& source, int actionId) { SysLogException(NID_WEB_CTRL, r, "[%s] Propagating.", GetErrorMessage(r)); } - if (__certPopupMode == CERTIFICATE_POPUP_MODE_VIEW ) + if (__certPopupMode == CERTIFICATE_POPUP_MODE_VIEW) { - GetOwner()->SendUserEvent(ID_CERTIFICATE_CONFIRM_POPUP_CLOSE, null); + __pParent->SendUserEvent(ID_CERTIFICATE_CONFIRM_POPUP_CLOSE, null); } } + +void +_CertificateConfirmPopup::OnUserEventReceivedN(RequestId requestId, IList* pArgs) +{ + switch (requestId) + { + case ID_CERTIFICATE_CONFIRM_POPUP_CLOSE: + { + __pCertificatePopup.reset(); + + if (__reaction) + { + __reaction = false; + } + + break; + } + default: + break; + } + +} + + bool _CertificateConfirmPopup::OnKeyPressed(Control& source, const KeyEventInfo& keyEventInfo) { - return true; + return false; } bool @@ -265,19 +322,22 @@ _CertificateConfirmPopup::OnKeyReleased(Control& source, const KeyEventInfo& key result r = E_SUCCESS; if ((keyEventInfo.GetKeyCode() == KEY_ESC || keyEventInfo.GetKeyCode() == KEY_BACK) && source.GetShowState() == true) { - HandleUserAction(false); + if (__certPopupMode == CERTIFICATE_POPUP_MODE_USER_CONFIRM) + { + HandleUserAction(false); + } r = HidePopup(); if (IsFailed(r)) { SysLogException(NID_WEB_CTRL, r, "[%s] Propagating.", GetErrorMessage(r)); } - if (__certPopupMode == CERTIFICATE_POPUP_MODE_VIEW ) + if (__certPopupMode == CERTIFICATE_POPUP_MODE_VIEW) { - GetOwner()->SendUserEvent(ID_CERTIFICATE_CONFIRM_POPUP_CLOSE, null); + __pParent->SendUserEvent(ID_CERTIFICATE_CONFIRM_POPUP_CLOSE, null); } } - return true; + return false; } bool @@ -359,45 +419,45 @@ _CertificateConfirmPopup::GenerateCertifiate(String& certString) SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r)); //Issued to - certString.Append(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_BR_HEADER_ISSUED_TO_C")); + certString.Append(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_TPLATFORM_BODY_ISSUED_TO_C")); certString.Append(L"\n\n"); String subject = certificate.GetSubject(); - certString.Append(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_BR_HEADER_COMMON_NAME_C")); + certString.Append(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_TPLATFORM_BODY_COMMON_NAME_C")); certString.Append(L"\n"); certString.Append(GetStringOfToken(subject, L"/CN=") + L"\n"); - certString.Append(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_BR_HEADER_ORGANIZATION_C")); + certString.Append(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_TPLATFORM_BODY_ORGANISATION_C")); certString.Append(L"\n"); certString.Append(GetStringOfToken(subject, L"/O=") + L"\n"); - certString.Append(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP ,"IDS_BR_HEADER_ORGANIZATIONAL_UNIT_C")); + certString.Append(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP ,"IDS_TPLATFORM_BODY_ORGANISATIONAL_UNIT_C")); certString.Append(L"\n"); certString.Append(GetStringOfToken(subject, L"/OU=") + L"\n"); - certString.Append(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_BR_BODY_CERTIFICATE_SERIAL_NUMBER")); - certString.Append(L":\n"); + certString.Append(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_TPLATFORM_BODY_SERIAL_NUMBER_C")); + certString.Append(L"\n"); certString.Append(certificate.GetSerialNumber() + L"\n\n\n"); //Issued by - certString.Append(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_BR_HEADER_ISSUED_BY_C")); + certString.Append(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_TPLATFORM_BODY_ISSUED_BY_C")); certString.Append(L"\n\n"); String issuer = certificate.GetIssuer(); - certString.Append(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_BR_HEADER_COMMON_NAME_C")); + certString.Append(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_TPLATFORM_BODY_COMMON_NAME_C")); certString.Append(L"\n"); certString.Append(GetStringOfToken(issuer, L"/CN=") + L"\n"); - certString.Append(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_BR_HEADER_ORGANIZATION_C")); + certString.Append(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_TPLATFORM_BODY_ORGANISATION_C")); certString.Append(L"\n"); certString.Append(GetStringOfToken(issuer, L"/O=") + L"\n"); - certString.Append(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_BR_HEADER_ORGANIZATIONAL_UNIT_C")); + certString.Append(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_TPLATFORM_BODY_ORGANISATIONAL_UNIT_C")); certString.Append(L"\n"); certString.Append(GetStringOfToken(issuer, L"/OU=") + L"\n\n"); //Validity - certString.Append(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_BR_HEADER_VALIDITY_C")); + certString.Append(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_TPLATFORM_BODY_VALIDITY_C")); certString.Append(L"\n\n"); certString.Append(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_BR_POP_CERTI_VALID_FROM_C")); certString.Append(L"\n"); @@ -408,8 +468,8 @@ _CertificateConfirmPopup::GenerateCertifiate(String& certString) certString.Append(certificate.GetNotAfter() + L"\n\n\n"); //FingerPrints - certString.Append(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_BR_BODY_ROOTCERTIFICATES_FINGER_PRINT")); - certString.Append(L":\n\n"); + certString.Append(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_TPLATFORM_BODY_FINGERPRINTS_C")); + certString.Append(L"\n\n"); certString.Append(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_BR_BODY_SIGNATURE_ALGORITHM_VODA")); certString.Append(L":\n"); certString.Append(certificate.GetSignatureAlgorithm() + L"\n\n"); @@ -419,6 +479,7 @@ _CertificateConfirmPopup::GenerateCertifiate(String& certString) { String fingerPrint; StringUtil::Utf8ToString((const char*)pFingerPrint->GetPointer(), fingerPrint); + fingerPrint.SetLength(pFingerPrint->GetLimit()); certString.Append(fingerPrint + L"\n\n"); }