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

Side by Side Diff: Source/WebKit/chromium/src/NotificationPresenterImpl.cpp

Issue 12086041: Merge 140928 (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/1364/
Patch Set: Created 7 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 unified diff | Download patch
« no previous file with comments | « Source/WebKit/chromium/src/NotificationPresenterImpl.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2009 Google Inc. All rights reserved. 2 * Copyright (C) 2009 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 #include "WebNotificationPermissionCallback.h" 42 #include "WebNotificationPermissionCallback.h"
43 #include "WebNotificationPresenter.h" 43 #include "WebNotificationPresenter.h"
44 #include <public/WebURL.h> 44 #include <public/WebURL.h>
45 45
46 #include <wtf/PassRefPtr.h> 46 #include <wtf/PassRefPtr.h>
47 47
48 using namespace WebCore; 48 using namespace WebCore;
49 49
50 namespace WebKit { 50 namespace WebKit {
51 51
52 #if ENABLE(LEGACY_NOTIFICATIONS)
52 class VoidCallbackClient : public WebNotificationPermissionCallback { 53 class VoidCallbackClient : public WebNotificationPermissionCallback {
53 public: 54 public:
54 VoidCallbackClient(PassRefPtr<VoidCallback> callback) 55 explicit VoidCallbackClient(PassRefPtr<VoidCallback> callback)
55 : m_callback(callback) 56 : m_callback(callback)
56 { 57 {
57 } 58 }
58 59
59 virtual void permissionRequestComplete() 60 virtual void permissionRequestComplete()
60 { 61 {
61 if (m_callback) 62 if (m_callback)
62 m_callback->handleEvent(); 63 m_callback->handleEvent();
63 delete this; 64 delete this;
64 } 65 }
65 66
66 private: 67 private:
67 virtual ~VoidCallbackClient() { } 68 virtual ~VoidCallbackClient() { }
68 69
69 RefPtr<VoidCallback> m_callback; 70 RefPtr<VoidCallback> m_callback;
70 }; 71 };
72 #endif // ENABLE(LEGACY_NOTIFICATIONS)
73
74 #if ENABLE(NOTIFICATIONS)
75 class NotificationPermissionCallbackClient : public WebNotificationPermissionCal lback {
76 public:
77 NotificationPermissionCallbackClient(WebNotificationPresenter* presenter, Pa ssRefPtr<SecurityOrigin> securityOrigin, PassRefPtr<NotificationPermissionCallba ck> callback)
78 : m_presenter(presenter)
79 , m_securityOrigin(securityOrigin)
80 , m_callback(callback)
81 {
82 }
83
84 virtual void permissionRequestComplete()
85 {
86 if (m_callback)
87 m_callback->handleEvent(Notification::permissionString(static_cast<N otificationClient::Permission>(m_presenter->checkPermission(WebSecurityOrigin(m_ securityOrigin)))));
88 delete this;
89 }
90
91 private:
92 virtual ~NotificationPermissionCallbackClient() { }
93
94 WebNotificationPresenter* m_presenter;
95 RefPtr<SecurityOrigin> m_securityOrigin;
96 RefPtr<NotificationPermissionCallback> m_callback;
97 };
98 #endif // ENABLE(NOTIFICATIONS)
71 99
72 void NotificationPresenterImpl::initialize(WebNotificationPresenter* presenter) 100 void NotificationPresenterImpl::initialize(WebNotificationPresenter* presenter)
73 { 101 {
74 m_presenter = presenter; 102 m_presenter = presenter;
75 } 103 }
76 104
77 bool NotificationPresenterImpl::isInitialized() 105 bool NotificationPresenterImpl::isInitialized()
78 { 106 {
79 return !!m_presenter; 107 return !!m_presenter;
80 } 108 }
(...skipping 16 matching lines...) Expand all
97 void NotificationPresenterImpl::notificationControllerDestroyed() 125 void NotificationPresenterImpl::notificationControllerDestroyed()
98 { 126 {
99 } 127 }
100 128
101 NotificationClient::Permission NotificationPresenterImpl::checkPermission(Script ExecutionContext* context) 129 NotificationClient::Permission NotificationPresenterImpl::checkPermission(Script ExecutionContext* context)
102 { 130 {
103 int result = m_presenter->checkPermission(WebSecurityOrigin(context->securit yOrigin())); 131 int result = m_presenter->checkPermission(WebSecurityOrigin(context->securit yOrigin()));
104 return static_cast<NotificationClient::Permission>(result); 132 return static_cast<NotificationClient::Permission>(result);
105 } 133 }
106 134
135 #if ENABLE(LEGACY_NOTIFICATIONS)
107 void NotificationPresenterImpl::requestPermission(ScriptExecutionContext* contex t, PassRefPtr<VoidCallback> callback) 136 void NotificationPresenterImpl::requestPermission(ScriptExecutionContext* contex t, PassRefPtr<VoidCallback> callback)
108 { 137 {
109 m_presenter->requestPermission(WebSecurityOrigin(context->securityOrigin()), new VoidCallbackClient(callback)); 138 m_presenter->requestPermission(WebSecurityOrigin(context->securityOrigin()), new VoidCallbackClient(callback));
110 } 139 }
140 #endif // ENABLE(LEGACY_NOTIFICATIONS)
141
142 #if ENABLE(NOTIFICATIONS)
143 void NotificationPresenterImpl::requestPermission(ScriptExecutionContext* contex t, WTF::PassRefPtr<NotificationPermissionCallback> callback)
144 {
145 m_presenter->requestPermission(WebSecurityOrigin(context->securityOrigin()), new NotificationPermissionCallbackClient(m_presenter, context->securityOrigin() , callback));
146 }
147 #endif // ENABLE(NOTIFICATIONS)
111 148
112 } // namespace WebKit 149 } // namespace WebKit
113 150
114 #endif // ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS) 151 #endif // ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS)
OLDNEW
« no previous file with comments | « Source/WebKit/chromium/src/NotificationPresenterImpl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698