Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2686)

Unified Diff: Source/web/NotificationPresenterImpl.cpp

Issue 187323005: Revert of Remove support for legacy WebKit Notifications (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/web/NotificationPresenterImpl.h ('k') | Source/web/WebNotification.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/web/NotificationPresenterImpl.cpp
diff --git a/Source/web/NotificationPresenterImpl.cpp b/Source/web/NotificationPresenterImpl.cpp
index 49cab4ac6db5ad7ebe9fa2c8089827d49c9acb52..1cc58476dc023862ffbc3be44dc509a00e39a087 100644
--- a/Source/web/NotificationPresenterImpl.cpp
+++ b/Source/web/NotificationPresenterImpl.cpp
@@ -35,12 +35,34 @@
#include "WebNotificationPermissionCallback.h"
#include "WebNotificationPresenter.h"
#include "core/dom/ExecutionContext.h"
-#include "modules/notifications/Notification.h"
+#include "modules/notifications/NotificationBase.h"
#include "platform/weborigin/SecurityOrigin.h"
using namespace WebCore;
namespace blink {
+
+#if ENABLE(LEGACY_NOTIFICATIONS)
+class VoidCallbackClient : public WebNotificationPermissionCallback {
+public:
+ explicit VoidCallbackClient(PassOwnPtr<VoidCallback> callback)
+ : m_callback(callback)
+ {
+ }
+
+ virtual void permissionRequestComplete()
+ {
+ if (m_callback)
+ m_callback->handleEvent();
+ delete this;
+ }
+
+private:
+ virtual ~VoidCallbackClient() { }
+
+ OwnPtr<VoidCallback> m_callback;
+};
+#endif // ENABLE(LEGACY_NOTIFICATIONS)
class NotificationPermissionCallbackClient : public WebNotificationPermissionCallback {
public:
@@ -54,7 +76,7 @@
virtual void permissionRequestComplete()
{
if (m_callback)
- m_callback->handleEvent(Notification::permissionString(static_cast<NotificationClient::Permission>(m_presenter->checkPermission(WebSecurityOrigin(m_securityOrigin)))));
+ m_callback->handleEvent(NotificationBase::permissionString(static_cast<NotificationClient::Permission>(m_presenter->checkPermission(WebSecurityOrigin(m_securityOrigin)))));
delete this;
}
@@ -76,19 +98,19 @@
return !!m_presenter;
}
-bool NotificationPresenterImpl::show(Notification* notification)
+bool NotificationPresenterImpl::show(NotificationBase* notification)
{
- return m_presenter->show(PassRefPtr<Notification>(notification));
+ return m_presenter->show(PassRefPtr<NotificationBase>(notification));
}
-void NotificationPresenterImpl::cancel(Notification* notification)
+void NotificationPresenterImpl::cancel(NotificationBase* notification)
{
- m_presenter->cancel(PassRefPtr<Notification>(notification));
+ m_presenter->cancel(PassRefPtr<NotificationBase>(notification));
}
-void NotificationPresenterImpl::notificationObjectDestroyed(Notification* notification)
+void NotificationPresenterImpl::notificationObjectDestroyed(NotificationBase* notification)
{
- m_presenter->objectDestroyed(PassRefPtr<Notification>(notification));
+ m_presenter->objectDestroyed(PassRefPtr<NotificationBase>(notification));
}
NotificationClient::Permission NotificationPresenterImpl::checkPermission(ExecutionContext* context)
@@ -97,6 +119,13 @@
return static_cast<NotificationClient::Permission>(result);
}
+#if ENABLE(LEGACY_NOTIFICATIONS)
+void NotificationPresenterImpl::requestPermission(ExecutionContext* context, PassOwnPtr<VoidCallback> callback)
+{
+ m_presenter->requestPermission(WebSecurityOrigin(context->securityOrigin()), new VoidCallbackClient(callback));
+}
+#endif // ENABLE(LEGACY_NOTIFICATIONS)
+
void NotificationPresenterImpl::requestPermission(ExecutionContext* context, WTF::PassOwnPtr<NotificationPermissionCallback> callback)
{
m_presenter->requestPermission(WebSecurityOrigin(context->securityOrigin()), new NotificationPermissionCallbackClient(m_presenter, context->securityOrigin(), callback));
« no previous file with comments | « Source/web/NotificationPresenterImpl.h ('k') | Source/web/WebNotification.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698