{
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();
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);
}
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);
}
{
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);
}