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

Side by Side Diff: chrome/browser/extensions/api/notification_provider/notification_provider_api.cc

Issue 1871713002: Convert //chrome/browser/extensions from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase and fix header Created 4 years, 8 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/extensions/api/notification_provider/notification_provi der_api.h" 5 #include "chrome/browser/extensions/api/notification_provider/notification_provi der_api.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/callback.h" 9 #include "base/callback.h"
10 #include "base/guid.h" 10 #include "base/guid.h"
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 const std::string& sender_id, 54 const std::string& sender_id,
55 const std::string& notification_id) { 55 const std::string& notification_id) {
56 Clear(notification_provider_id, sender_id, notification_id); 56 Clear(notification_provider_id, sender_id, notification_id);
57 } 57 }
58 58
59 void NotificationProviderEventRouter::Create( 59 void NotificationProviderEventRouter::Create(
60 const std::string& notification_provider_id, 60 const std::string& notification_provider_id,
61 const std::string& sender_id, 61 const std::string& sender_id,
62 const std::string& notification_id, 62 const std::string& notification_id,
63 const api::notifications::NotificationOptions& options) { 63 const api::notifications::NotificationOptions& options) {
64 scoped_ptr<base::ListValue> args = 64 std::unique_ptr<base::ListValue> args =
65 api::notification_provider::OnCreated::Create( 65 api::notification_provider::OnCreated::Create(sender_id, notification_id,
66 sender_id, notification_id, options); 66 options);
67 67
68 scoped_ptr<Event> event(new Event( 68 std::unique_ptr<Event> event(new Event(
69 events::NOTIFICATION_PROVIDER_ON_CREATED, 69 events::NOTIFICATION_PROVIDER_ON_CREATED,
70 api::notification_provider::OnCreated::kEventName, std::move(args))); 70 api::notification_provider::OnCreated::kEventName, std::move(args)));
71 71
72 EventRouter::Get(profile_) 72 EventRouter::Get(profile_)
73 ->DispatchEventToExtension(notification_provider_id, std::move(event)); 73 ->DispatchEventToExtension(notification_provider_id, std::move(event));
74 } 74 }
75 75
76 void NotificationProviderEventRouter::Update( 76 void NotificationProviderEventRouter::Update(
77 const std::string& notification_provider_id, 77 const std::string& notification_provider_id,
78 const std::string& sender_id, 78 const std::string& sender_id,
79 const std::string& notification_id, 79 const std::string& notification_id,
80 const api::notifications::NotificationOptions& options) { 80 const api::notifications::NotificationOptions& options) {
81 scoped_ptr<base::ListValue> args = 81 std::unique_ptr<base::ListValue> args =
82 api::notification_provider::OnUpdated::Create( 82 api::notification_provider::OnUpdated::Create(sender_id, notification_id,
83 sender_id, notification_id, options); 83 options);
84 84
85 scoped_ptr<Event> event(new Event( 85 std::unique_ptr<Event> event(new Event(
86 events::NOTIFICATION_PROVIDER_ON_UPDATED, 86 events::NOTIFICATION_PROVIDER_ON_UPDATED,
87 api::notification_provider::OnUpdated::kEventName, std::move(args))); 87 api::notification_provider::OnUpdated::kEventName, std::move(args)));
88 88
89 EventRouter::Get(profile_) 89 EventRouter::Get(profile_)
90 ->DispatchEventToExtension(notification_provider_id, std::move(event)); 90 ->DispatchEventToExtension(notification_provider_id, std::move(event));
91 } 91 }
92 92
93 void NotificationProviderEventRouter::Clear( 93 void NotificationProviderEventRouter::Clear(
94 const std::string& notification_provider_id, 94 const std::string& notification_provider_id,
95 const std::string& sender_id, 95 const std::string& sender_id,
96 const std::string& notification_id) { 96 const std::string& notification_id) {
97 scoped_ptr<base::ListValue> args = 97 std::unique_ptr<base::ListValue> args =
98 api::notification_provider::OnCleared::Create(sender_id, notification_id); 98 api::notification_provider::OnCleared::Create(sender_id, notification_id);
99 99
100 scoped_ptr<Event> event(new Event( 100 std::unique_ptr<Event> event(new Event(
101 events::NOTIFICATION_PROVIDER_ON_CLEARED, 101 events::NOTIFICATION_PROVIDER_ON_CLEARED,
102 api::notification_provider::OnCleared::kEventName, std::move(args))); 102 api::notification_provider::OnCleared::kEventName, std::move(args)));
103 103
104 EventRouter::Get(profile_) 104 EventRouter::Get(profile_)
105 ->DispatchEventToExtension(notification_provider_id, std::move(event)); 105 ->DispatchEventToExtension(notification_provider_id, std::move(event));
106 } 106 }
107 107
108 NotificationProviderNotifyOnClearedFunction:: 108 NotificationProviderNotifyOnClearedFunction::
109 NotificationProviderNotifyOnClearedFunction() { 109 NotificationProviderNotifyOnClearedFunction() {
110 } 110 }
111 111
112 NotificationProviderNotifyOnClearedFunction:: 112 NotificationProviderNotifyOnClearedFunction::
113 ~NotificationProviderNotifyOnClearedFunction() { 113 ~NotificationProviderNotifyOnClearedFunction() {
114 } 114 }
115 115
116 ExtensionFunction::ResponseAction 116 ExtensionFunction::ResponseAction
117 NotificationProviderNotifyOnClearedFunction::Run() { 117 NotificationProviderNotifyOnClearedFunction::Run() {
118 scoped_ptr<api::notification_provider::NotifyOnCleared::Params> params = 118 std::unique_ptr<api::notification_provider::NotifyOnCleared::Params> params =
119 api::notification_provider::NotifyOnCleared::Params::Create(*args_); 119 api::notification_provider::NotifyOnCleared::Params::Create(*args_);
120 EXTENSION_FUNCTION_VALIDATE(params.get()); 120 EXTENSION_FUNCTION_VALIDATE(params.get());
121 121
122 const Notification* notification = 122 const Notification* notification =
123 g_browser_process->notification_ui_manager()->FindById( 123 g_browser_process->notification_ui_manager()->FindById(
124 params->notification_id, 124 params->notification_id,
125 NotificationUIManager::GetProfileID(GetProfile())); 125 NotificationUIManager::GetProfileID(GetProfile()));
126 126
127 bool found_notification = notification != NULL; 127 bool found_notification = notification != NULL;
128 if (found_notification) 128 if (found_notification)
129 notification->delegate()->Close(true); 129 notification->delegate()->Close(true);
130 130
131 return RespondNow( 131 return RespondNow(
132 ArgumentList(api::notification_provider::NotifyOnCleared::Results::Create( 132 ArgumentList(api::notification_provider::NotifyOnCleared::Results::Create(
133 found_notification))); 133 found_notification)));
134 } 134 }
135 135
136 NotificationProviderNotifyOnClickedFunction:: 136 NotificationProviderNotifyOnClickedFunction::
137 NotificationProviderNotifyOnClickedFunction() { 137 NotificationProviderNotifyOnClickedFunction() {
138 } 138 }
139 139
140 NotificationProviderNotifyOnClickedFunction:: 140 NotificationProviderNotifyOnClickedFunction::
141 ~NotificationProviderNotifyOnClickedFunction() { 141 ~NotificationProviderNotifyOnClickedFunction() {
142 } 142 }
143 143
144 ExtensionFunction::ResponseAction 144 ExtensionFunction::ResponseAction
145 NotificationProviderNotifyOnClickedFunction::Run() { 145 NotificationProviderNotifyOnClickedFunction::Run() {
146 scoped_ptr<api::notification_provider::NotifyOnClicked::Params> params = 146 std::unique_ptr<api::notification_provider::NotifyOnClicked::Params> params =
147 api::notification_provider::NotifyOnClicked::Params::Create(*args_); 147 api::notification_provider::NotifyOnClicked::Params::Create(*args_);
148 EXTENSION_FUNCTION_VALIDATE(params.get()); 148 EXTENSION_FUNCTION_VALIDATE(params.get());
149 149
150 const Notification* notification = 150 const Notification* notification =
151 g_browser_process->notification_ui_manager()->FindById( 151 g_browser_process->notification_ui_manager()->FindById(
152 params->notification_id, 152 params->notification_id,
153 NotificationUIManager::GetProfileID(GetProfile())); 153 NotificationUIManager::GetProfileID(GetProfile()));
154 154
155 bool found_notification = notification != NULL; 155 bool found_notification = notification != NULL;
156 if (found_notification) 156 if (found_notification)
157 notification->delegate()->Click(); 157 notification->delegate()->Click();
158 158
159 return RespondNow( 159 return RespondNow(
160 ArgumentList(api::notification_provider::NotifyOnClicked::Results::Create( 160 ArgumentList(api::notification_provider::NotifyOnClicked::Results::Create(
161 found_notification))); 161 found_notification)));
162 } 162 }
163 163
164 NotificationProviderNotifyOnButtonClickedFunction:: 164 NotificationProviderNotifyOnButtonClickedFunction::
165 NotificationProviderNotifyOnButtonClickedFunction() { 165 NotificationProviderNotifyOnButtonClickedFunction() {
166 } 166 }
167 167
168 NotificationProviderNotifyOnButtonClickedFunction:: 168 NotificationProviderNotifyOnButtonClickedFunction::
169 ~NotificationProviderNotifyOnButtonClickedFunction() { 169 ~NotificationProviderNotifyOnButtonClickedFunction() {
170 } 170 }
171 171
172 ExtensionFunction::ResponseAction 172 ExtensionFunction::ResponseAction
173 NotificationProviderNotifyOnButtonClickedFunction::Run() { 173 NotificationProviderNotifyOnButtonClickedFunction::Run() {
174 scoped_ptr<api::notification_provider::NotifyOnButtonClicked::Params> params = 174 std::unique_ptr<api::notification_provider::NotifyOnButtonClicked::Params>
175 api::notification_provider::NotifyOnButtonClicked::Params::Create(*args_); 175 params =
176 api::notification_provider::NotifyOnButtonClicked::Params::Create(
177 *args_);
176 EXTENSION_FUNCTION_VALIDATE(params.get()); 178 EXTENSION_FUNCTION_VALIDATE(params.get());
177 179
178 const Notification* notification = 180 const Notification* notification =
179 g_browser_process->notification_ui_manager()->FindById( 181 g_browser_process->notification_ui_manager()->FindById(
180 params->notification_id, 182 params->notification_id,
181 NotificationUIManager::GetProfileID(GetProfile())); 183 NotificationUIManager::GetProfileID(GetProfile()));
182 184
183 bool found_notification = notification != NULL; 185 bool found_notification = notification != NULL;
184 if (found_notification) 186 if (found_notification)
185 notification->delegate()->ButtonClick(params->button_index); 187 notification->delegate()->ButtonClick(params->button_index);
186 188
187 return RespondNow(ArgumentList( 189 return RespondNow(ArgumentList(
188 api::notification_provider::NotifyOnButtonClicked::Results::Create( 190 api::notification_provider::NotifyOnButtonClicked::Results::Create(
189 found_notification))); 191 found_notification)));
190 } 192 }
191 193
192 NotificationProviderNotifyOnPermissionLevelChangedFunction:: 194 NotificationProviderNotifyOnPermissionLevelChangedFunction::
193 NotificationProviderNotifyOnPermissionLevelChangedFunction() { 195 NotificationProviderNotifyOnPermissionLevelChangedFunction() {
194 } 196 }
195 197
196 NotificationProviderNotifyOnPermissionLevelChangedFunction:: 198 NotificationProviderNotifyOnPermissionLevelChangedFunction::
197 ~NotificationProviderNotifyOnPermissionLevelChangedFunction() { 199 ~NotificationProviderNotifyOnPermissionLevelChangedFunction() {
198 } 200 }
199 201
200 ExtensionFunction::ResponseAction 202 ExtensionFunction::ResponseAction
201 NotificationProviderNotifyOnPermissionLevelChangedFunction::Run() { 203 NotificationProviderNotifyOnPermissionLevelChangedFunction::Run() {
202 scoped_ptr<api::notification_provider::NotifyOnPermissionLevelChanged::Params> 204 std::unique_ptr<
205 api::notification_provider::NotifyOnPermissionLevelChanged::Params>
203 params = api::notification_provider::NotifyOnPermissionLevelChanged:: 206 params = api::notification_provider::NotifyOnPermissionLevelChanged::
204 Params::Create(*args_); 207 Params::Create(*args_);
205 EXTENSION_FUNCTION_VALIDATE(params.get()); 208 EXTENSION_FUNCTION_VALIDATE(params.get());
206 209
207 // Third party apps/extensions with notification provider API will not be able 210 // Third party apps/extensions with notification provider API will not be able
208 // to change permission levels of web notifiers, because the list of allowed 211 // to change permission levels of web notifiers, because the list of allowed
209 // websites should only be set in Chrome Settings manually by users. But they 212 // websites should only be set in Chrome Settings manually by users. But they
210 // are able to change permission levels of application type notifiers. 213 // are able to change permission levels of application type notifiers.
211 bool is_application_type = 214 bool is_application_type =
212 (params->notifier_type == 215 (params->notifier_type ==
(...skipping 21 matching lines...) Expand all
234 NotificationProviderNotifyOnShowSettingsFunction:: 237 NotificationProviderNotifyOnShowSettingsFunction::
235 NotificationProviderNotifyOnShowSettingsFunction() { 238 NotificationProviderNotifyOnShowSettingsFunction() {
236 } 239 }
237 240
238 NotificationProviderNotifyOnShowSettingsFunction:: 241 NotificationProviderNotifyOnShowSettingsFunction::
239 ~NotificationProviderNotifyOnShowSettingsFunction() { 242 ~NotificationProviderNotifyOnShowSettingsFunction() {
240 } 243 }
241 244
242 ExtensionFunction::ResponseAction 245 ExtensionFunction::ResponseAction
243 NotificationProviderNotifyOnShowSettingsFunction::Run() { 246 NotificationProviderNotifyOnShowSettingsFunction::Run() {
244 scoped_ptr<api::notification_provider::NotifyOnShowSettings::Params> params = 247 std::unique_ptr<api::notification_provider::NotifyOnShowSettings::Params>
245 api::notification_provider::NotifyOnShowSettings::Params::Create(*args_); 248 params = api::notification_provider::NotifyOnShowSettings::Params::Create(
249 *args_);
246 EXTENSION_FUNCTION_VALIDATE(params.get()); 250 EXTENSION_FUNCTION_VALIDATE(params.get());
247 251
248 bool has_advanced_settings; 252 bool has_advanced_settings;
249 // Only application type notifiers have advanced settings. 253 // Only application type notifiers have advanced settings.
250 if (params->notifier_type == 254 if (params->notifier_type ==
251 api::notification_provider::NotifierType::NOTIFIER_TYPE_APPLICATION) { 255 api::notification_provider::NotifierType::NOTIFIER_TYPE_APPLICATION) {
252 // TODO(dewittj): Refactor NotificationUIManage API to have a getter of 256 // TODO(dewittj): Refactor NotificationUIManage API to have a getter of
253 // NotifierSettingsProvider, since it holds the settings provider. 257 // NotifierSettingsProvider, since it holds the settings provider.
254 message_center::NotifierSettingsProvider* settings_provider = 258 message_center::NotifierSettingsProvider* settings_provider =
255 message_center::MessageCenter::Get()->GetNotifierSettingsProvider(); 259 message_center::MessageCenter::Get()->GetNotifierSettingsProvider();
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
297 301
298 ExtensionFunction::ResponseAction 302 ExtensionFunction::ResponseAction
299 NotificationProviderGetAllNotifiersFunction::Run() { 303 NotificationProviderGetAllNotifiersFunction::Run() {
300 std::vector<api::notification_provider::Notifier> notifiers; 304 std::vector<api::notification_provider::Notifier> notifiers;
301 305
302 return RespondNow(ArgumentList( 306 return RespondNow(ArgumentList(
303 api::notification_provider::GetAllNotifiers::Results::Create(notifiers))); 307 api::notification_provider::GetAllNotifiers::Results::Create(notifiers)));
304 } 308 }
305 309
306 } // namespace extensions 310 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698