Changed notification permision ui to async
authorPraveen Gattu <gattu.p@samsung.com>
Mon, 22 Apr 2013 11:43:12 +0000 (17:13 +0530)
committerPraveen Gattu <gattu.p@samsung.com>
Mon, 22 Apr 2013 11:45:32 +0000 (17:15 +0530)
Change-Id: I6f64650c55447d99c9c75641989437f80ffea8d5
Signed-off-by: Praveen Gattu <gattu.p@samsung.com>
src/controls/FWebCtrl_UserConfirmPopup.cpp
src/controls/FWebCtrl_UserConfirmPopup.h
src/controls/FWebCtrl_WebImpl.cpp

index 4b46e02..fe9140c 100755 (executable)
@@ -74,7 +74,7 @@ _UserConfirmPopup::Construct(_UserConfirmMode userConfirmMode, void* pEventInfo,
 {
        result r = E_SUCCESS;
        SysTryReturnResult(NID_WEB_CTRL, pEventInfo, E_INVALID_ARG, "Invalid argument(s) is used. pPolicy is null.");
-       SysTryReturnResult(NID_WEB_CTRL, userConfirmMode >= USER_CONFIRM_USERMEDIA && userConfirmMode <= USER_CONFIRM_GEOLOCATION, E_INVALID_ARG,
+       SysTryReturnResult(NID_WEB_CTRL, userConfirmMode >= USER_CONFIRM_USERMEDIA && userConfirmMode <= USER_CONFIRM_NOTIFICATION, E_INVALID_ARG,
                                        "Invalid userConfirmMode is used. [%d]", userConfirmMode);
 
        _WebPopupData* pPopupData = _WebPopup::GetPopupData();
@@ -241,6 +241,14 @@ _UserConfirmPopup::GetMessageFromPolicy(void)
                message.Append(" Requests your Location");
                break;
        }
+       case USER_CONFIRM_NOTIFICATION:
+       {
+               Ewk_Notification_Permission_Request* pPermissionRequest = reinterpret_cast< Ewk_Notification_Permission_Request* >(__pUserPolicyData);
+               const Ewk_Security_Origin* pSecurityOrigin = ewk_notification_permission_request_origin_get(pPermissionRequest);
+               message = _Utility::CreateOrigin(pSecurityOrigin);
+               message.Append(L" wants to display notifications");
+               break;
+       }
        default:
                SysAssert(false);
        }
@@ -282,6 +290,12 @@ CATCH:
                ewk_geolocation_permission_request_set(pPolicy, allow);
                break;
        }
+       case USER_CONFIRM_NOTIFICATION:
+       {
+               Ewk_Notification_Permission_Request* pPermissionRequest = reinterpret_cast< Ewk_Notification_Permission_Request* >(__pUserPolicyData);
+               ewk_notification_permission_request_set(pPermissionRequest, allow);
+               break;
+       }
        default:
                SysAssert(false);
        }
index e285e4b..22b2852 100755 (executable)
@@ -48,7 +48,8 @@ enum _UserConfirmMode
        USER_CONFIRM_USERMEDIA,
        USER_CONTENT_HANDLER,
        USER_PROTOCOL_HANDLER,
-       USER_CONFIRM_GEOLOCATION
+       USER_CONFIRM_GEOLOCATION,
+       USER_CONFIRM_NOTIFICATION
 };
 
 class _UserConfirmPopup
index 8dd7eaa..919f771 100755 (executable)
@@ -574,28 +574,18 @@ OnNotificationPermissionRequested(void* pUserData, Evas_Object* pView, void* pEv
 {
        result r = E_SUCCESS;
        _WebImpl* pImpl = reinterpret_cast<_WebImpl*>(pUserData);
+
        Ewk_Notification_Permission_Request* pPermissionRequest = reinterpret_cast< Ewk_Notification_Permission_Request* >(pEventInfo);
        SysAssertf(pImpl && pPermissionRequest, "Failed to request");
 
-       MessageBox messageBox;
-       r = messageBox.Construct(L"Notification request", L"Do you want to allow notifications from this site ?", MSGBOX_STYLE_OKCANCEL);
-       SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
-
-       int modalResult = 0;
+       ewk_notification_permission_request_suspend(pPermissionRequest);
 
-       messageBox.SetOwner(&pImpl->GetPublic());
-
-       r = messageBox.ShowAndWait(modalResult);
-       SysTryReturnVoidResult(NID_WEB_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
+       r = pImpl->ShowUserConfirmPopupAsync(USER_CONFIRM_NOTIFICATION, pPermissionRequest);
+       SysTryCatch(NID_WEB_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
+       return;
 
-       if (modalResult == MSGBOX_RESULT_OK)
-       {
-               ewk_notification_permission_request_set(pPermissionRequest, EINA_TRUE);
-       }
-       else
-       {
-               ewk_notification_permission_request_set(pPermissionRequest, EINA_FALSE);
-       }
+CATCH:
+       ewk_notification_permission_request_set(pPermissionRequest, EINA_FALSE);
 }