From 90e908552cd4ed902be34e354775e3f711f06511 Mon Sep 17 00:00:00 2001 From: "johnnyg@chromium.org" Date: Mon, 5 Oct 2009 01:40:12 +0000 Subject: Adds desktop notification support for renderer process, and enables the build flag for chromium build of webkit. Doesn't expose the feature to any websites yet. BUG=none TEST=none (This is part 1 of 3 for this feature; tests will follow). Review URL: http://codereview.chromium.org/194079 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@27973 0039d316-1c4b-4281-b951-d872f2087c98 --- webkit/api/public/WebNotification.h | 7 +++++++ webkit/api/src/WebNotification.cpp | 14 +++++++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) (limited to 'webkit') diff --git a/webkit/api/public/WebNotification.h b/webkit/api/public/WebNotification.h index 3d96c48..fb6cd6d 100644 --- a/webkit/api/public/WebNotification.h +++ b/webkit/api/public/WebNotification.h @@ -56,7 +56,9 @@ namespace WebKit { WebNotification& operator=(const WebNotification& other) { assign(other); return *this; } + // Operators required to put WebNotification in an ordered map. bool equals(const WebNotification& other) const { return m_private == other.m_private; } + bool lessThan(const WebNotification& other) const; // Is the notification HTML vs. icon-title-text? WEBKIT_API bool isHTML() const; @@ -101,6 +103,11 @@ namespace WebKit { return !a.equals(b); } + inline bool operator<(const WebNotification& a, const WebNotification& b) + { + return a.lessThan(b); + } + } // namespace WebKit #endif diff --git a/webkit/api/src/WebNotification.cpp b/webkit/api/src/WebNotification.cpp index 46baab7..2b2e3bb 100644 --- a/webkit/api/src/WebNotification.cpp +++ b/webkit/api/src/WebNotification.cpp @@ -58,6 +58,11 @@ void WebNotification::assign(const WebNotification& other) assign(p); } +bool WebNotification::lessThan(const WebNotification& other) const +{ + return reinterpret_cast(m_private) < reinterpret_cast(other.m_private); +} + bool WebNotification::isHTML() const { return m_private->isHTML(); @@ -89,19 +94,22 @@ WebString WebNotification::body() const void WebNotification::dispatchDisplayEvent() { - m_private->dispatchDisplayEvent(); + RefPtr event = Event::create("display", false, true); + m_private->dispatchEvent(event.release()); } void WebNotification::dispatchErrorEvent(const WebKit::WebString& /* errorMessage */) { // FIXME: errorMessage not supported by WebCore yet - m_private->dispatchErrorEvent(); + RefPtr event = Event::create(eventNames().errorEvent, false, true); + m_private->dispatchEvent(event.release()); } void WebNotification::dispatchCloseEvent(bool /* byUser */) { // FIXME: byUser flag not supported by WebCore yet - m_private->dispatchCloseEvent(); + RefPtr event = Event::create(eventNames().closeEvent, false, true); + m_private->dispatchEvent(event.release()); } WebNotification::WebNotification(const WTF::PassRefPtr& notification) -- cgit v1.1