#include "public/web/WebNotificationPresenter.h"
#include "public/web/WebSecurityOrigin.h"
-using namespace WebCore;
-
namespace blink {
-class NotificationPermissionCallbackClient : public WebNotificationPermissionCallback {
-public:
- NotificationPermissionCallbackClient(WebNotificationPresenter* presenter, PassRefPtr<SecurityOrigin> securityOrigin, PassOwnPtr<NotificationPermissionCallback> callback)
- : m_presenter(presenter)
- , m_securityOrigin(securityOrigin)
- , m_callback(callback)
- {
- }
-
- virtual void permissionRequestComplete()
- {
- if (m_callback)
- m_callback->handleEvent(Notification::permissionString(static_cast<NotificationClient::Permission>(m_presenter->checkPermission(WebSecurityOrigin(m_securityOrigin)))));
- delete this;
- }
-
-private:
- virtual ~NotificationPermissionCallbackClient() { }
-
- WebNotificationPresenter* m_presenter;
- RefPtr<SecurityOrigin> m_securityOrigin;
- OwnPtr<NotificationPermissionCallback> m_callback;
-};
+NotificationPresenterImpl::NotificationPresenterImpl() : m_presenter(0) { }
void NotificationPresenterImpl::initialize(WebNotificationPresenter* presenter)
{
return static_cast<NotificationClient::Permission>(result);
}
-void NotificationPresenterImpl::requestPermission(ExecutionContext* context, WTF::PassOwnPtr<NotificationPermissionCallback> callback)
-{
- m_presenter->requestPermission(WebSecurityOrigin(context->securityOrigin()), new NotificationPermissionCallbackClient(m_presenter, context->securityOrigin(), callback));
-}
-
} // namespace blink