NotificationPresenterImpl.h [plain text]
#ifndef NotificationPresenterImpl_h
#define NotificationPresenterImpl_h
#if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS)
#include <NotificationAckListener.h>
#include <NotificationClient.h>
#include <NotificationPresenterBlackBerry.h>
#include <string>
#include <wtf/HashMap.h>
#include <wtf/HashSet.h>
#include <wtf/OwnPtr.h>
#include <wtf/text/StringHash.h>
namespace WebCore {
class NotificationPresenterImpl : public WebCore::NotificationClient, public BlackBerry::Platform::NotificationAckListener {
public:
static NotificationClient* instance();
virtual ~NotificationPresenterImpl();
virtual bool show(WebCore::Notification*);
virtual void cancel(WebCore::Notification*);
virtual void notificationObjectDestroyed(WebCore::Notification*);
virtual void notificationControllerDestroyed();
virtual void requestPermission(WebCore::ScriptExecutionContext*, PassRefPtr<WebCore::VoidCallback>);
virtual void cancelRequestsForPermission(WebCore::ScriptExecutionContext*);
virtual Permission checkPermission(WebCore::ScriptExecutionContext*);
virtual void notificationClicked(const std::string& id);
virtual void onPermission(const std::string& domain, bool isAllowed);
private:
NotificationPresenterImpl();
private:
OwnPtr<BlackBerry::Platform::NotificationPresenterBlackBerry> m_platformPresenter;
typedef HashMap<RefPtr<WebCore::Notification>, String> NotificationMap;
NotificationMap m_notifications;
typedef HashMap<RefPtr<WebCore::ScriptExecutionContext>, RefPtr<WebCore::VoidCallback> > PermissionRequestMap;
PermissionRequestMap m_permissionRequests;
HashSet<String> m_allowedDomains;
};
}
#endif // ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS)
#endif // NotificationPresenterImpl_h