Merge from tizen_2.1
authorHyun Lee <hyunn.lee@samsung.com>
Wed, 5 Jun 2013 09:30:01 +0000 (18:30 +0900)
committerHyun Lee <hyunn.lee@samsung.com>
Wed, 5 Jun 2013 09:37:22 +0000 (18:37 +0900)
Change-Id: I8b444af6f448d63d267962217e10e88a6851f715
Signed-off-by: Hyun Lee <hyunn.lee@samsung.com>
src/controls/FWebCtrl_CertificateConfirmPopup.cpp
src/controls/FWebCtrl_SelectBox.cpp
src/controls/FWebCtrl_SelectBox.h
src/controls/FWebCtrl_UserConfirmPopup.cpp
src/controls/FWebCtrl_WebImpl.cpp

index 8bfebb5..5a0dcd8 100755 (executable)
@@ -34,6 +34,7 @@
 #include <FUiLayout.h>
 #include <FUiVerticalBoxLayout.h>
 #include <FIo_DatabaseImpl.h>
+#include <FSys_SystemResource.h>
 #include <FUi_ControlManager.h>
 #include <FUi_ResourceManager.h>
 #include "FWebCtrl_CertificateConfirmPopup.h"
@@ -47,6 +48,7 @@ using namespace Tizen::Base::Utility;
 using namespace Tizen::Graphics;
 using namespace Tizen::Io;
 using namespace Tizen::Security::Cert;
+using namespace Tizen::System;
 using namespace Tizen::Ui;
 using namespace Tizen::Ui::Controls;
 
@@ -74,6 +76,9 @@ _CertificateConfirmPopup::Construct(_CertificatePopupMode certPopupMode, Ewk_Cer
        SysTryReturnResult(NID_WEB_CTRL, pPolicy, E_INVALID_ARG, "Certificate Policy pointer is null.");
        result r = E_SUCCESS;
 
+       _SystemResource* pSysResource = _SystemResource::GetInstance();
+       SysAssertf(pSysResource != null, "Failed to get _SystemResource instance");
+
        _WebPopupData* pPopupData = _WebPopup::GetPopupData();
        SysTryReturn(NID_WEB_CTRL, pPopupData, r = GetLastResult(), r, "[%s] Propagating.", GetErrorMessage(r));
 
@@ -93,18 +98,18 @@ _CertificateConfirmPopup::Construct(_CertificatePopupMode certPopupMode, Ewk_Cer
 
        if( __certPopupMode == CERTIFICATE_POPUP_MODE_VIEW )
        {
-               titleText = L"Certificate";
+               titleText = pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_BR_BODY_CERTIFICATES");
                popupMaxHeight = pPopupData->popupDim.height;
 
                rect.height = pPopupData->popupDim.height - 4*pPopupData->sideMargin - 2*pPopupData->btnDim.height;
                rect.width = pPopupData->labelDim.width;
 
                idList.Add(*(new Integer(ID_BUTTON_CERTIFICATE_CLOSE)));
-               titleList.Add(*(new String(L"Close")));
+               titleList.Add(*(new String(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_COM_SK_DONE"))));
        }
        else    // CERTIFICATE_POPUP_MODE_CONFIRM
        {
-               titleText = L"Security Warning";
+               titleText = pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_BR_HEADER_SECURITY_WARNING");
                popupMaxHeight = 2*pPopupData->labelDim.height + 2*pPopupData->btnDim.height + 6*pPopupData->sideMargin;
 
                rect.height = 2*pPopupData->labelDim.height;
@@ -114,9 +119,9 @@ _CertificateConfirmPopup::Construct(_CertificatePopupMode certPopupMode, Ewk_Cer
                idList.Add(*(new Integer(ID_BUTTON_CERTIFICATE_VIEW)));
                idList.Add(*(new Integer(ID_BUTTON_CERTIFICATE_CANCEL)));
 
-               titleList.Add(*(new String(L"Allow")));
-               titleList.Add(*(new String(L"View")));
-               titleList.Add(*(new String(L"Cancel")));
+               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"))));
        }
 
        r = _WebPopup::Construct(true, Dimension(pPopupData->popupDim.width, popupMaxHeight));
@@ -160,7 +165,8 @@ _CertificateConfirmPopup::Construct(_CertificatePopupMode certPopupMode, Ewk_Cer
                SysTryReturnResult(NID_WEB_CTRL, pLabel.get(), E_OUT_OF_MEMORY, "Memory Allocation failed.");
 
                String message = L"";
-               message = L"There are problems with the security certificate of this site.\n";
+               message = pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_BR_BODY_SECURITY_CERTIFICATE_PROBLEM_MSG");
+               message.Append(L"\n");
                message.Append(ewk_certificate_policy_decision_url_get(__pCertificatePolicyData));
 
                r = pLabel->Construct(rect, message);
@@ -289,6 +295,9 @@ _CertificateConfirmPopup::GenerateCertifiate(String& certString)
 {
        SysTryReturnResult(NID_WEB_CTRL, __pCertificatePolicyData, E_INVALID_ARG, "Certificate Policy pointer is null.");
 
+       _SystemResource* pSysResource = _SystemResource::GetInstance();
+       SysAssertf(pSysResource != null, "Failed to get _SystemResource instance");
+
        String pemString(ewk_certificate_policy_decision_certificate_pem_get(__pCertificatePolicyData));
        std::unique_ptr<ByteBuffer> pByteBuf(StringUtil::StringToUtf8N(pemString));
        SysTryReturnResult(NID_WEB_CTRL, pByteBuf.get(), E_INVALID_DATA, "Certificate pem information is Empty.");
@@ -298,45 +307,59 @@ _CertificateConfirmPopup::GenerateCertifiate(String& certString)
        SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
 
        //Issued to
-       certString.Append(L"ISSUED TO:\n\n");
+       certString.Append(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_BR_HEADER_ISSUED_TO_C"));
+       certString.Append(L"\n\n");
        String subject = certificate.GetSubject();
 
-       certString.Append(L"Common Name:\n");
+       certString.Append(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_BR_HEADER_COMMON_NAME_C"));
+       certString.Append(L"\n");
        certString.Append(GetStringOfToken(subject, L"/CN=") + L"\n");
 
-       certString.Append(L"Organization:\n");
+       certString.Append(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_BR_HEADER_ORGANIZATION_C"));
+       certString.Append(L"\n");
        certString.Append(GetStringOfToken(subject, L"/O=") + L"\n");
 
-       certString.Append(L"Organizational Unit:\n");
+       certString.Append(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP ,"IDS_BR_HEADER_ORGANIZATIONAL_UNIT_C"));
+       certString.Append(L"\n");
        certString.Append(GetStringOfToken(subject, L"/OU=") + L"\n");
 
-       certString.Append(L"Serial Number:\n");
+       certString.Append(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_BR_BODY_CERTIFICATE_SERIAL_NUMBER"));
+       certString.Append(L":\n");
        certString.Append(certificate.GetSerialNumber() + L"\n\n\n");
 
        //Issued by
-       certString.Append(L"ISSUER:\n\n");
+       certString.Append(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_BR_HEADER_ISSUED_BY_C"));
+       certString.Append(L"\n\n");
        String issuer = certificate.GetIssuer();
 
-       certString.Append(L"Common Name:\n");
+       certString.Append(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_BR_HEADER_COMMON_NAME_C"));
+       certString.Append(L"\n");
        certString.Append(GetStringOfToken(issuer, L"/CN=") + L"\n");
 
-       certString.Append(L"Organization:\n");
+       certString.Append(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_BR_HEADER_ORGANIZATION_C"));
+       certString.Append(L"\n");
        certString.Append(GetStringOfToken(issuer, L"/O=") + L"\n");
 
-       certString.Append(L"Organizational Unit:\n");
+       certString.Append(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_BR_HEADER_ORGANIZATIONAL_UNIT_C"));
+       certString.Append(L"\n");
        certString.Append(GetStringOfToken(issuer, L"/OU=") + L"\n\n");
 
        //Validity
-       certString.Append(L"VALIDITY:\n\n");
-       certString.Append(L"Valid From:\n");
+       certString.Append(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_BR_HEADER_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");
        certString.Append(certificate.GetNotBefore() + L"\n\n");
 
-       certString.Append(L"Valid Till:\n");
+       certString.Append(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_BR_BODY_CERTIFICATE_VALID_TILL"));
+       certString.Append(L":\n");
        certString.Append(certificate.GetNotAfter() + L"\n\n\n");
 
        //FingerPrints
-       certString.Append(L"FINGERPRINTS:\n\n");
-       certString.Append(L"Signature Algorithm:\n");
+       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_BR_BODY_SIGNATURE_ALGORITHM_VODA"));
+       certString.Append(L":\n");
        certString.Append(certificate.GetSignatureAlgorithm() + L"\n\n");
 
        std::unique_ptr<ByteBuffer> pFingerPrint(certificate.GetFingerprintN());
index ae8448c..44caf60 100755 (executable)
@@ -52,13 +52,23 @@ using namespace Tizen::Ui::Controls;
 namespace Tizen { namespace Web { namespace Controls
 {
 
-static const int SELECTBOX_BUTTON_WIDTH = 100;
+static const int POSITION_INVALID = -1;
+
 template< class Type > Type
 Max(Type a, Type b)
 {
        return a > b ? a : b;
 }
 
+int CompareChangedItems(const void* pData1, const void* pData2)
+{
+       SysAssertf(pData1 && pData2, "input parameters are null");
+
+    const int* pLeft = static_cast<const int*>(pData1);
+    const int* pRight = static_cast<const int*>(pData2);
+
+    return (*pLeft - *pRight);
+}
 
 //Internal class for maintaining states of list elements
 class _ListElement
@@ -131,12 +141,19 @@ _SelectBox::_SelectBox(void)
        , __prevIndex(-1)
        , __orientation(_CONTROL_ORIENTATION_PORTRAIT)
        , __pWebView(null)
+       , __pToggledArray(null)
 {
 }
 
 
 _SelectBox::~_SelectBox(void)
 {
+       if (__multiSelection)
+       {
+               eina_inarray_flush(__pToggledArray);
+               delete __pToggledArray;
+       }
+
        __listElementArray.RemoveAll(true);
 }
 
@@ -219,6 +236,9 @@ _SelectBox::Construct(bool isMultiSelect, const String& title, int listCount, Ev
        if (__multiSelection)
        {
                titleList.Add(*(new String(pSysResource->GetString("sys_string", "IDS_COM_BODY_DONE"))));
+
+               __pToggledArray = eina_inarray_new(sizeof(int), 0);
+               SysTryReturnResult(NID_WEB_CTRL, __pToggledArray, E_OUT_OF_MEMORY, "Memory Allocation failed.");
        }
        titleList.Add(*(new String(pSysResource->GetString("sys_string", "IDS_COM_POP_CANCEL"))));
 
@@ -301,7 +321,6 @@ _SelectBox::CreateItem(int index, int itemWidth)
        GET_SHAPE_CONFIG(LISTVIEW::ITEM_ELEMENT_LEFT_MARGIN, __orientation, listItemXPos);
        GET_SHAPE_CONFIG(LIST::LIST_CHECK_ITEM_WIDTH, __orientation, checkBoxWidth);
        GET_SHAPE_CONFIG(MESSAGEBOX::BUTTON_TOP_MARGIN, __orientation, popupBetweenListNBtnGap);
-//     GET_SHAPE_CONFIG(LIST::GROUPITEM_DEFAULT_FONT_SIZE, __orientation, listItemTxtHeight);
 
        std::unique_ptr<CustomItem> pItem(new (std::nothrow) CustomItem());
        SysTryReturn(NID_WEB_CTRL, pItem.get(), null, E_OUT_OF_MEMORY, "[%s] Memory Allocation failed.",GetErrorMessage(E_OUT_OF_MEMORY));
@@ -382,19 +401,30 @@ _SelectBox::OnListViewItemStateChanged(ListView& listView, int index, int elemen
 {
        if (__multiSelection)
        {
-               return;
-       }
+               int pos = eina_inarray_search(__pToggledArray, &index, CompareChangedItems);
 
-       //In case of single selection ... update the index.
-       __SelectedIndex = index;
-       SysLog(NID_WEB_CTRL,"The current value of Update Selected index is %d",index);
-       if (__pWebView)
-       {
-               ewk_view_popup_menu_select(__pWebView, __SelectedIndex);
+               if (pos == POSITION_INVALID)
+               {
+                       eina_inarray_push(__pToggledArray, &index);
+               }
+               else
+               {
+                       eina_inarray_remove(__pToggledArray, &index);
+               }
        }
+       else
+       {
+               //In case of single selection ... update the index.
+               __SelectedIndex = index;
+               SysLog(NID_WEB_CTRL,"The current value of Update Selected index is %d",index);
+               if (__pWebView)
+               {
+                       ewk_view_popup_menu_select(__pWebView, __SelectedIndex);
+               }
 
-       result r = HidePopup(__SelectedIndex);
-       SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
+               result r = HidePopup(__SelectedIndex);
+               SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
+       }
 }
 
 
@@ -411,19 +441,28 @@ _SelectBox::OnActionPerformed(const Control& source, int actionId)
        switch (actionId)
        {
        case ID_BUTTON_SELECTION:
-       //fall through
+       {
+               ewk_view_popup_menu_multiple_select(__pWebView, __pToggledArray);
+               break;
+       }
        case ID_BUTTON_CANCEL:
        {
-               if (__pWebView)
+               if (__multiSelection)
+               {
+                       ewk_view_popup_menu_multiple_select(__pWebView, null);
+               }
+               else
                {
                        ewk_view_popup_menu_select(__pWebView, __prevIndex);
                }
-
-               result r = HidePopup(__SelectedIndex);
-               SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
                break;
        }
+       default:
+               SysAssertf(false, "Invalid Action ID");
        }
+
+       result r = HidePopup(__SelectedIndex);
+       SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
 }
 
 
@@ -435,24 +474,41 @@ _SelectBox::UpdateList(Eina_List* pItems, int prevIndex, bool clearPrevList, boo
        if (clearPrevList)
        {
                __listElementArray.RemoveAll(true);
+               if (__multiSelection)
+               {
+                       eina_inarray_flush(__pToggledArray);
+               }
        }
 
        //Create list required for selectBox
        int itemCount = eina_list_count(pItems);
        SysTryReturn(NID_WEB_CTRL, itemCount > 0, E_SYSTEM, E_SYSTEM, "[%s]  A system error has been occurred. ItemCount is invalid.", GetErrorMessage(E_SYSTEM));
 
-       __prevIndex = prevIndex;
+       bool isSelected = false;
+
+       if (!__multiSelection)
+       {
+               __prevIndex = prevIndex;
+       }
 
        for (int itemIndex = 0; itemIndex < itemCount; itemIndex++)
        {
                Ewk_Popup_Menu_Item* pItem = static_cast<Ewk_Popup_Menu_Item*>(eina_list_nth(pItems, itemIndex));
                SysTryReturn(NID_WEB_CTRL, pItem, E_SYSTEM, E_SYSTEM, "[%s]  A system error has been occurred. Failed to get item.", GetErrorMessage(E_SYSTEM));
 
-               bool isSelected = (itemIndex == prevIndex) ? true : false;
                if (ewk_popup_menu_item_type_get(pItem) == EWK_POPUP_MENU_ITEM)
                {
                        String text(ewk_popup_menu_item_text_get(pItem));
 
+                       if (__multiSelection)
+                       {
+                               isSelected = ( ewk_popup_menu_item_selected_get(pItem) == EINA_TRUE ) ? true : false;
+                       }
+                       else
+                       {
+                               isSelected = (itemIndex == prevIndex) ? true : false;
+                       }
+
                        if (isGroupdList)
                        {
                                AddListItem(text, _SelectBox::LIST_ITEM_TYPE_GROUP, isSelected);
index 7ef898e..638c237 100644 (file)
@@ -123,6 +123,7 @@ private:
        int __prevIndex;
        Tizen::Ui::_ControlOrientation __orientation;
        Evas_Object* __pWebView;
+       Eina_Inarray* __pToggledArray;
 }; // _SelectBox
 
 }}} //Tizen::Web::Controls
index bc7787b..4ce41dc 100755 (executable)
@@ -34,6 +34,7 @@
 #include <FUiLayout.h>
 #include <FUiVerticalBoxLayout.h>
 #include <FIo_DatabaseImpl.h>
+#include <FSys_SystemResource.h>
 #include <FUi_ControlManager.h>
 #include <FUi_ResourceManager.h>
 #include "FWebCtrl_EflWebkit.h"
@@ -47,6 +48,7 @@ using namespace Tizen::Base::Utility;
 using namespace Tizen::Graphics;
 using namespace Tizen::Io;
 using namespace Tizen::Security::Cert;
+using namespace Tizen::System;
 using namespace Tizen::Ui;
 using namespace Tizen::Ui::Controls;
 
@@ -77,6 +79,9 @@ _UserConfirmPopup::Construct(_UserConfirmMode userConfirmMode, void* pEventInfo,
        SysTryReturnResult(NID_WEB_CTRL, userConfirmMode >= USER_CONFIRM_USERMEDIA && userConfirmMode <= USER_CONFIRM_INDEXED_DB_QUOTA_EXCEDED, E_INVALID_ARG,
                                        "Invalid userConfirmMode is used. [%d]", userConfirmMode);
 
+       _SystemResource* pSysResource = _SystemResource::GetInstance();
+       SysAssertf(pSysResource != null, "Failed to get _SystemResource instance");
+
        _WebPopupData* pPopupData = _WebPopup::GetPopupData();
        SysTryReturn(NID_WEB_CTRL, pPopupData, r = GetLastResult(), r, "[%s] Propagating.", GetErrorMessage(r));
 
@@ -103,7 +108,7 @@ _UserConfirmPopup::Construct(_UserConfirmMode userConfirmMode, void* pEventInfo,
 
        if (userConfirmMode != USER_SCRIPT_ALERT)
        {
-               SetTitleText("Security Warning");
+               SetTitleText(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_BR_HEADER_SECURITY_WARNING"));
        }
 
        Rectangle rect(0, 0, 0, 0);
@@ -142,7 +147,7 @@ _UserConfirmPopup::Construct(_UserConfirmMode userConfirmMode, void* pEventInfo,
                std::unique_ptr<CheckButton> pCheckButton (new (std::nothrow) CheckButton());
                SysTryReturnResult(NID_WEB_CTRL, pCheckButton.get(), E_OUT_OF_MEMORY, "Memory Allocation failed.");
 
-               r = pCheckButton->Construct(Rectangle(0, 0, rect.width, rect.height), CHECK_BUTTON_STYLE_MARK, BACKGROUND_STYLE_NONE, false, L"Remember Preference");
+               r = pCheckButton->Construct(Rectangle(0, 0, rect.width, rect.height), CHECK_BUTTON_STYLE_MARK, BACKGROUND_STYLE_NONE, false, pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_BR_BODY_REMEMBER_PREFERENCE"));
                SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
 
                r = AddControl(*pCheckButton);
@@ -165,13 +170,13 @@ _UserConfirmPopup::Construct(_UserConfirmMode userConfirmMode, void* pEventInfo,
        idList.Add(*(new Integer(ID_BUTTON_USER_ALLOW)));
        if (userConfirmMode == USER_SCRIPT_ALERT)
        {
-               titleList.Add(*(new String(L"OK")));
+               titleList.Add(*(new String(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_TPLATFORM_BUTTON_OK"))));
        }
        else
        {
                idList.Add(*(new Integer(ID_BUTTON_USER_CANCEL)));
-               titleList.Add(*(new String(L"Allow")));
-               titleList.Add(*(new String(L"Cancel")));
+               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_CANCEL"))));
        }
 
        r = CreateAndAddButtons(idList, titleList, pButtonPanel);
@@ -228,6 +233,9 @@ _UserConfirmPopup::OnActionPerformed(const Control& source, int actionId)
 String
 _UserConfirmPopup::GetMessageFromPolicy(void)
 {
+       _SystemResource* pSysResource = _SystemResource::GetInstance();
+       SysAssertf(pSysResource != null, "Failed to get _SystemResource instance");
+
        String message;
 
        switch(__userConfirmMode)
@@ -265,7 +273,7 @@ _UserConfirmPopup::GetMessageFromPolicy(void)
                const Ewk_Security_Origin* pSecurityOrigin = ewk_geolocation_permission_request_origin_get(pGeoLocPermReq);
 
                message = _Utility::CreateOrigin(pSecurityOrigin);
-               message.Append(" Requests your Location");
+               message.Append(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_BR_BODY_PS_REQUESTS_YOUR_LOCATION"));
                break;
        }
        case USER_CONFIRM_NOTIFICATION:
index 987ed6b..3b8c943 100755 (executable)
@@ -1259,19 +1259,23 @@ OnLoadingErrorOccurred(void* pUserData, Evas_Object* pView, void* pEventInfo)
 
        SysLog(NID_WEB_CTRL, "The current value of code is %d, description is %s", code, pDescription);
 
-       pImpl->SetLoadingErrorOccurred(true);
        switch (code)
        {
        case EWK_ERROR_CODE_FRAMELOADINTERRUPTEDBYPOLICYCHANGE:
-               //fall through
+               pImpl->SetLoadingErrorOccurred(true);
+               break;
+
        case EWK_ERROR_CODE_PLUGINWILLHANDLELOAD:
+               evas_object_smart_callback_call(pView, "load,finished", NULL);
                break;
 
        case EWK_ERROR_NETWORK_STATUS_CANCELLED:
+               pImpl->SetLoadingErrorOccurred(true);
                evas_object_smart_callback_call(pView, "load,stop", NULL);
                break;
 
        default:
+               pImpl->SetLoadingErrorOccurred(true);
                if (pImpl->GetLoadingListener())
                {
                        result r = E_SUCCESS;
@@ -1845,25 +1849,25 @@ OnWebKeypadClosed(void* pUserData, Evas_Object* pView, void* pEventInfo)
 
 
 void
-OnWindowObjectFocusGained(void *pUserData, Evas_Object *pWin, void *pEvent_info)
+OnWindowObjectFocusGained(void* pUserData, Evas_Object* pWin, void* pEvent_info)
 {
        _WebImpl* pImpl = reinterpret_cast< _WebImpl* >(pUserData);
        SysAssertf(pImpl, "Failed to request");
 
-       if (pImpl->IsKeypadOpened() == true)
+       if (pImpl->IsKeypadOpened() == true && pImpl->IsVisible() == true)
        {
                _Web* pWebCore = dynamic_cast< _Web* >(&(pImpl->GetCore()));
                SysAssertf(pWebCore, "Failed to get Web core object");
 
                evas_object_focus_set(pWebCore->GetWebNativeNode(), EINA_TRUE);
-
-               pImpl->SetKeypadOpened(false);
        }
+
+       pImpl->SetKeypadOpened(false);
 }
 
 
 void
-OnWebNativeNodeFocusGained(void *pUserData, Evas *pCanvas, Evas_Object* pView, void* pEventInfo)
+OnWebNativeNodeFocusGained(void* pUserData, Evas* pCanvas, Evas_Object* pView, void* pEventInfo)
 {
        _WebImpl* pImpl = reinterpret_cast< _WebImpl* >(pUserData);
        SysAssertf(pImpl, "Failed to request");
@@ -1878,7 +1882,7 @@ OnWebNativeNodeFocusGained(void *pUserData, Evas *pCanvas, Evas_Object* pView, v
 
 
 Eina_Bool
-OnColorPickerProviderRequested(Ewk_View_Smart_Data *pSmartData, int red, int green, int blue, int alpha)
+OnColorPickerProviderRequested(Ewk_View_Smart_DatapSmartData, int red, int green, int blue, int alpha)
 {
        SysAssertf(pSmartData, "invalid smartdata");
        _WebImpl* pWebImpl = reinterpret_cast<_WebImpl*>(evas_object_data_get(pSmartData->self, WEB_CTRL));
@@ -1905,7 +1909,7 @@ OnColorPickerProviderRequested(Ewk_View_Smart_Data *pSmartData, int red, int gre
 
 
 Eina_Bool
-OnColorPickerProviderDismissed(Ewk_View_Smart_Data *pSmartData)
+OnColorPickerProviderDismissed(Ewk_View_Smart_DatapSmartData)
 {
        SysAssertf(pSmartData, "invalid smartdata");
 
@@ -1917,7 +1921,7 @@ OnColorPickerProviderDismissed(Ewk_View_Smart_Data *pSmartData)
 
 
 Eina_Bool
-OnDatePickerProviderRequested(Ewk_View_Smart_Data *pSmartData, Ewk_Input_Type inputType, const char* inputValue)
+OnDatePickerProviderRequested(Ewk_View_Smart_DatapSmartData, Ewk_Input_Type inputType, const char* inputValue)
 {
        SysAssertf(pSmartData, "Failed to request");
        _WebImpl* pWebImpl = reinterpret_cast<_WebImpl*>(evas_object_data_get(pSmartData->self, WEB_CTRL));
@@ -1947,7 +1951,7 @@ OnDatePickerProviderRequested(Ewk_View_Smart_Data *pSmartData, Ewk_Input_Type in
 
 
 Eina_Bool
-OnSelectBoxRequested(Ewk_View_Smart_Data *pSmartData, Eina_Rectangle rect, Ewk_Text_Direction textDirection, double pageScaleFactor, Eina_List* pItems, int selectedIndex)
+OnSelectBoxRequested(Ewk_View_Smart_DatapSmartData, Eina_Rectangle rect, Ewk_Text_Direction textDirection, double pageScaleFactor, Eina_List* pItems, int selectedIndex)
 {
        SysAssertf(pSmartData, "Failed to request");
 
@@ -1962,7 +1966,22 @@ OnSelectBoxRequested(Ewk_View_Smart_Data *pSmartData, Eina_Rectangle rect, Ewk_T
 
 
 Eina_Bool
-OnSelectBoxClosed(Ewk_View_Smart_Data *pSmartData)
+OnMultiSelectBoxRequested(Ewk_View_Smart_Data* pSmartData, Eina_Rectangle rect, Ewk_Text_Direction text_direction, double page_scale_factor, Eina_List* pItems)
+{
+       SysAssertf(pSmartData, "Failed to request");
+
+       _WebImpl* pWebImpl = reinterpret_cast<_WebImpl*>(evas_object_data_get(pSmartData->self, WEB_CTRL));
+       SysAssertf(pWebImpl, "Failed to get Impl");
+
+       result r = pWebImpl->ShowSelectBoxPopup(true, L"", pItems, pSmartData->self, 0);
+       SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, EINA_FALSE, r, "[%s] Propagating.", GetErrorMessage(r));
+
+       return EINA_TRUE;
+}
+
+
+Eina_Bool
+OnSelectBoxClosed(Ewk_View_Smart_Data* pSmartData)
 {
        SysAssertf(pSmartData, "invalid smartdata");
 
@@ -2355,7 +2374,6 @@ _WebImpl::InitializeSetting(void)
 
        SetCookieEnabled(pWebSettingImpl->IsCookieEnabled());
        SetPrivateBrowsingEnabled(pWebSettingImpl->IsPrivateBrowsingEnabled());
-       SetZoomLevel(pWebSettingImpl->GetZoomLevel());
 
        __defaultUserAgent = pWebSettingImpl->GetUserAgent();
 
@@ -3558,6 +3576,7 @@ _WebImpl::SetEventListenerCallback(void) const
                SysAssertf(pSmart, "Failed to request");
 
                pSmart->popup_menu_show = OnSelectBoxRequested;
+               pSmart->multiple_popup_menu_show = OnMultiSelectBoxRequested;
                pSmart->popup_menu_hide = OnSelectBoxClosed;
                pSmart->popup_menu_update = OnSelectBoxUpdateRequested;
 
@@ -4713,7 +4732,7 @@ _WebImpl::GetParentFormCore(_Control* pControlCore)
 bool 
 _WebImpl::OnFocusGained(const _ControlImpl& source)
 {
-       return true;
+       return false;
 }
 
 
@@ -4729,7 +4748,7 @@ _WebImpl::OnFocusLost(const _ControlImpl& source)
 
        evas_object_focus_set(__pWebCore->GetWebNativeNode(), EINA_FALSE);
 
-       return true;
+       return false;
 }
 
 
@@ -5128,11 +5147,7 @@ _WebImpl::IsFormDataWindowVisible(void) const
 result
 _WebImpl::ShowFormDataWindow(const Rectangle& windowRect, Evas_Object* pWebView)
 {
-       Point absPoint(windowRect.x, windowRect.y);
-
-       Point relPoint = __pWebCore->GetRelativeCoordinate(absPoint);
-
-       Rectangle rect(relPoint.x, relPoint.y, windowRect.width, windowRect.height);
+       Rectangle rect(_CoordinateSystemUtils::InverseTransform(Rectangle(windowRect.x, windowRect.y + windowRect.height, windowRect.width, windowRect.height)));
 
        if (__isFormDataVisible)
        {