This source file includes following definitions.
- m_callback
 
- permissionRequestComplete
 
- initialize
 
- isInitialized
 
- show
 
- close
 
- notificationObjectDestroyed
 
- checkPermission
 
- requestPermission
 
#include "config.h"
#include "NotificationPresenterImpl.h"
#include "WebNotification.h"
#include "WebNotificationPermissionCallback.h"
#include "WebNotificationPresenter.h"
#include "WebSecurityOrigin.h"
#include "core/dom/ExecutionContext.h"
#include "modules/notifications/Notification.h"
#include "platform/weborigin/SecurityOrigin.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;
};
void NotificationPresenterImpl::initialize(WebNotificationPresenter* presenter)
{
    m_presenter = presenter;
}
bool NotificationPresenterImpl::isInitialized()
{
    return !!m_presenter;
}
bool NotificationPresenterImpl::show(Notification* notification)
{
    return m_presenter->show(PassRefPtr<Notification>(notification));
}
void NotificationPresenterImpl::close(Notification* notification)
{
    m_presenter->close(PassRefPtr<Notification>(notification));
    
    m_presenter->cancel(PassRefPtr<Notification>(notification));
}
void NotificationPresenterImpl::notificationObjectDestroyed(Notification* notification)
{
    m_presenter->objectDestroyed(PassRefPtr<Notification>(notification));
}
NotificationClient::Permission NotificationPresenterImpl::checkPermission(ExecutionContext* context)
{
    int result = m_presenter->checkPermission(WebSecurityOrigin(context->securityOrigin()));
    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));
}
}