summaryrefslogtreecommitdiffstats
path: root/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.h
diff options
context:
space:
mode:
Diffstat (limited to 'WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.h')
-rw-r--r--WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.h34
1 files changed, 29 insertions, 5 deletions
diff --git a/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.h b/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.h
index 5967867..c949513 100644
--- a/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.h
+++ b/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.h
@@ -29,20 +29,35 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+#ifndef NotificationPresenterClientQt_h
+#define NotificationPresenterClientQt_h
+
#include "Notification.h"
#include "NotificationPresenter.h"
+#include <QMultiHash>
#include <QSystemTrayIcon>
+
#if ENABLE(NOTIFICATIONS)
+class QWebPage;
namespace WebCore {
class Document;
class KURL;
+struct NotificationIconWrapper {
+ NotificationIconWrapper();
+ ~NotificationIconWrapper();
+#ifndef QT_NO_SYSTEMTRAYICON
+ QSystemTrayIcon* m_notificationIcon;
+#endif
+};
+
class NotificationPresenterClientQt : public NotificationPresenter {
public:
- NotificationPresenterClientQt();
+ NotificationPresenterClientQt(QWebPage*);
+ ~NotificationPresenterClientQt() {}
/* WebCore::NotificationPresenter interface */
virtual bool show(Notification*);
@@ -51,13 +66,22 @@ public:
virtual void requestPermission(SecurityOrigin*, PassRefPtr<VoidCallback>);
virtual NotificationPresenter::Permission checkPermission(const KURL&);
+ void allowNotificationForOrigin(const QString& origin);
+ void clearNotificationsList();
+
static bool dumpNotification;
-private:
-#ifndef QT_NO_SYSTEMTRAYICON
- QSystemTrayIcon m_tray;
-#endif
+ void setReceiver(QObject* receiver) { m_receiver = receiver; }
+
+private:
+ void sendEvent(Notification*, const AtomicString& eventName);
+ QWebPage* m_page;
+ QMultiHash<QString, QList<RefPtr<VoidCallback> > > m_pendingPermissionRequests;
+ QHash <Notification*, NotificationIconWrapper*> m_notifications;
+ QObject* m_receiver;
};
}
#endif
+#endif
+