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

Side by Side Diff: chrome/browser/notifications/desktop_notification_service.cc

Issue 63273002: Rename WebKit namespace to blink (part 4) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 1 month 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/notifications/desktop_notification_service.h" 5 #include "chrome/browser/notifications/desktop_notification_service.h"
6 6
7 #include "base/metrics/histogram.h" 7 #include "base/metrics/histogram.h"
8 #include "base/prefs/scoped_user_pref_update.h" 8 #include "base/prefs/scoped_user_pref_update.h"
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "base/threading/thread.h" 10 #include "base/threading/thread.h"
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
51 #include "ui/message_center/notifier_settings.h" 51 #include "ui/message_center/notifier_settings.h"
52 52
53 #if defined(OS_CHROMEOS) 53 #if defined(OS_CHROMEOS)
54 #include "ash/system/system_notifier.h" 54 #include "ash/system/system_notifier.h"
55 #endif 55 #endif
56 56
57 using content::BrowserThread; 57 using content::BrowserThread;
58 using content::RenderViewHost; 58 using content::RenderViewHost;
59 using content::WebContents; 59 using content::WebContents;
60 using message_center::NotifierId; 60 using message_center::NotifierId;
61 using WebKit::WebNotificationPresenter; 61 using blink::WebNotificationPresenter;
62 using WebKit::WebTextDirection; 62 using blink::WebTextDirection;
63 63
64 64
65 // NotificationPermissionInfoBarDelegate -------------------------------------- 65 // NotificationPermissionInfoBarDelegate --------------------------------------
66 66
67 // The delegate for the infobar shown when an origin requests notification 67 // The delegate for the infobar shown when an origin requests notification
68 // permissions. 68 // permissions.
69 class NotificationPermissionInfoBarDelegate : public ConfirmInfoBarDelegate { 69 class NotificationPermissionInfoBarDelegate : public ConfirmInfoBarDelegate {
70 public: 70 public:
71 // Creates a notification permission infobar delegate and adds it to 71 // Creates a notification permission infobar delegate and adds it to
72 // |infobar_service|. 72 // |infobar_service|.
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 const GURL& icon_url, const string16& title, const string16& body, 219 const GURL& icon_url, const string16& title, const string16& body,
220 WebTextDirection dir) { 220 WebTextDirection dir) {
221 int resource; 221 int resource;
222 std::vector<std::string> subst; 222 std::vector<std::string> subst;
223 if (icon_url.is_valid()) { 223 if (icon_url.is_valid()) {
224 resource = IDR_NOTIFICATION_ICON_HTML; 224 resource = IDR_NOTIFICATION_ICON_HTML;
225 subst.push_back(icon_url.spec()); 225 subst.push_back(icon_url.spec());
226 subst.push_back(net::EscapeForHTML(UTF16ToUTF8(title))); 226 subst.push_back(net::EscapeForHTML(UTF16ToUTF8(title)));
227 subst.push_back(net::EscapeForHTML(UTF16ToUTF8(body))); 227 subst.push_back(net::EscapeForHTML(UTF16ToUTF8(body)));
228 // icon float position 228 // icon float position
229 subst.push_back(dir == WebKit::WebTextDirectionRightToLeft ? 229 subst.push_back(dir == blink::WebTextDirectionRightToLeft ?
230 "right" : "left"); 230 "right" : "left");
231 } else if (title.empty() || body.empty()) { 231 } else if (title.empty() || body.empty()) {
232 resource = IDR_NOTIFICATION_1LINE_HTML; 232 resource = IDR_NOTIFICATION_1LINE_HTML;
233 string16 line = title.empty() ? body : title; 233 string16 line = title.empty() ? body : title;
234 // Strings are div names in the template file. 234 // Strings are div names in the template file.
235 string16 line_name = title.empty() ? ASCIIToUTF16("description") 235 string16 line_name = title.empty() ? ASCIIToUTF16("description")
236 : ASCIIToUTF16("title"); 236 : ASCIIToUTF16("title");
237 subst.push_back(net::EscapeForHTML(UTF16ToUTF8(line_name))); 237 subst.push_back(net::EscapeForHTML(UTF16ToUTF8(line_name)));
238 subst.push_back(net::EscapeForHTML(UTF16ToUTF8(line))); 238 subst.push_back(net::EscapeForHTML(UTF16ToUTF8(line)));
239 } else { 239 } else {
240 resource = IDR_NOTIFICATION_2LINE_HTML; 240 resource = IDR_NOTIFICATION_2LINE_HTML;
241 subst.push_back(net::EscapeForHTML(UTF16ToUTF8(title))); 241 subst.push_back(net::EscapeForHTML(UTF16ToUTF8(title)));
242 subst.push_back(net::EscapeForHTML(UTF16ToUTF8(body))); 242 subst.push_back(net::EscapeForHTML(UTF16ToUTF8(body)));
243 } 243 }
244 // body text direction 244 // body text direction
245 subst.push_back(dir == WebKit::WebTextDirectionRightToLeft ? 245 subst.push_back(dir == blink::WebTextDirectionRightToLeft ?
246 "rtl" : "ltr"); 246 "rtl" : "ltr");
247 247
248 return CreateDataUrl(resource, subst); 248 return CreateDataUrl(resource, subst);
249 } 249 }
250 250
251 // static 251 // static
252 string16 DesktopNotificationService::CreateDataUrl( 252 string16 DesktopNotificationService::CreateDataUrl(
253 int resource, const std::vector<std::string>& subst) { 253 int resource, const std::vector<std::string>& subst) {
254 const base::StringPiece template_html( 254 const base::StringPiece template_html(
255 ResourceBundle::GetSharedInstance().GetRawDataResource( 255 ResourceBundle::GetSharedInstance().GetRawDataResource(
(...skipping 14 matching lines...) Expand all
270 const GURL& origin_url, 270 const GURL& origin_url,
271 const string16& title, 271 const string16& title,
272 const string16& message, 272 const string16& message,
273 const GURL& icon_url, 273 const GURL& icon_url,
274 const string16& replace_id, 274 const string16& replace_id,
275 NotificationDelegate* delegate, 275 NotificationDelegate* delegate,
276 Profile* profile) { 276 Profile* profile) {
277 if (message_center::IsRichNotificationEnabled()) { 277 if (message_center::IsRichNotificationEnabled()) {
278 // For message center create a non-HTML notification with |icon_url|. 278 // For message center create a non-HTML notification with |icon_url|.
279 Notification notification(origin_url, icon_url, title, message, 279 Notification notification(origin_url, icon_url, title, message,
280 WebKit::WebTextDirectionDefault, 280 blink::WebTextDirectionDefault,
281 string16(), replace_id, delegate); 281 string16(), replace_id, delegate);
282 g_browser_process->notification_ui_manager()->Add(notification, profile); 282 g_browser_process->notification_ui_manager()->Add(notification, profile);
283 return notification.notification_id(); 283 return notification.notification_id();
284 } 284 }
285 285
286 // Generate a data URL embedding the icon URL, title, and message. 286 // Generate a data URL embedding the icon URL, title, and message.
287 GURL content_url(CreateDataUrl( 287 GURL content_url(CreateDataUrl(
288 icon_url, title, message, WebKit::WebTextDirectionDefault)); 288 icon_url, title, message, blink::WebTextDirectionDefault));
289 Notification notification( 289 Notification notification(
290 GURL(), content_url, string16(), replace_id, delegate); 290 GURL(), content_url, string16(), replace_id, delegate);
291 g_browser_process->notification_ui_manager()->Add(notification, profile); 291 g_browser_process->notification_ui_manager()->Add(notification, profile);
292 return notification.notification_id(); 292 return notification.notification_id();
293 } 293 }
294 294
295 // static 295 // static
296 std::string DesktopNotificationService::AddIconNotification( 296 std::string DesktopNotificationService::AddIconNotification(
297 const GURL& origin_url, 297 const GURL& origin_url,
298 const string16& title, 298 const string16& title,
299 const string16& message, 299 const string16& message,
300 const gfx::Image& icon, 300 const gfx::Image& icon,
301 const string16& replace_id, 301 const string16& replace_id,
302 NotificationDelegate* delegate, 302 NotificationDelegate* delegate,
303 Profile* profile) { 303 Profile* profile) {
304 if (message_center::IsRichNotificationEnabled()) { 304 if (message_center::IsRichNotificationEnabled()) {
305 // For message center create a non-HTML notification with |icon|. 305 // For message center create a non-HTML notification with |icon|.
306 Notification notification(origin_url, icon, title, message, 306 Notification notification(origin_url, icon, title, message,
307 WebKit::WebTextDirectionDefault, 307 blink::WebTextDirectionDefault,
308 string16(), replace_id, delegate); 308 string16(), replace_id, delegate);
309 g_browser_process->notification_ui_manager()->Add(notification, profile); 309 g_browser_process->notification_ui_manager()->Add(notification, profile);
310 return notification.notification_id(); 310 return notification.notification_id();
311 } 311 }
312 312
313 GURL icon_url; 313 GURL icon_url;
314 if (!icon.IsEmpty()) 314 if (!icon.IsEmpty())
315 icon_url = GURL(webui::GetBitmapDataUrl(*icon.ToSkBitmap())); 315 icon_url = GURL(webui::GetBitmapDataUrl(*icon.ToSkBitmap()));
316 return AddNotification( 316 return AddNotification(
317 origin_url, title, message, icon_url, replace_id, delegate, profile); 317 origin_url, title, message, icon_url, replace_id, delegate, profile);
(...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after
643 const base::ListValue* pref_list = profile_->GetPrefs()->GetList(pref_name); 643 const base::ListValue* pref_list = profile_->GetPrefs()->GetList(pref_name);
644 for (size_t i = 0; i < pref_list->GetSize(); ++i) { 644 for (size_t i = 0; i < pref_list->GetSize(); ++i) {
645 std::string element; 645 std::string element;
646 if (pref_list->GetString(i, &element) && !element.empty()) 646 if (pref_list->GetString(i, &element) && !element.empty())
647 ids_field->insert(element); 647 ids_field->insert(element);
648 else 648 else
649 LOG(WARNING) << i << "-th element is not a string for " << pref_name; 649 LOG(WARNING) << i << "-th element is not a string for " << pref_name;
650 } 650 }
651 } 651 }
652 652
653 WebKit::WebNotificationPresenter::Permission 653 blink::WebNotificationPresenter::Permission
654 DesktopNotificationService::HasPermission(const GURL& origin) { 654 DesktopNotificationService::HasPermission(const GURL& origin) {
655 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 655 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
656 HostContentSettingsMap* host_content_settings_map = 656 HostContentSettingsMap* host_content_settings_map =
657 profile_->GetHostContentSettingsMap(); 657 profile_->GetHostContentSettingsMap();
658 ContentSetting setting = host_content_settings_map->GetContentSetting( 658 ContentSetting setting = host_content_settings_map->GetContentSetting(
659 origin, 659 origin,
660 origin, 660 origin,
661 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, 661 CONTENT_SETTINGS_TYPE_NOTIFICATIONS,
662 NO_RESOURCE_IDENTIFIER); 662 NO_RESOURCE_IDENTIFIER);
663 663
664 if (setting == CONTENT_SETTING_ALLOW) 664 if (setting == CONTENT_SETTING_ALLOW)
665 return WebKit::WebNotificationPresenter::PermissionAllowed; 665 return blink::WebNotificationPresenter::PermissionAllowed;
666 if (setting == CONTENT_SETTING_BLOCK) 666 if (setting == CONTENT_SETTING_BLOCK)
667 return WebKit::WebNotificationPresenter::PermissionDenied; 667 return blink::WebNotificationPresenter::PermissionDenied;
668 if (setting == CONTENT_SETTING_ASK) 668 if (setting == CONTENT_SETTING_ASK)
669 return WebKit::WebNotificationPresenter::PermissionNotAllowed; 669 return blink::WebNotificationPresenter::PermissionNotAllowed;
670 NOTREACHED() << "Invalid notifications settings value: " << setting; 670 NOTREACHED() << "Invalid notifications settings value: " << setting;
671 return WebKit::WebNotificationPresenter::PermissionNotAllowed; 671 return blink::WebNotificationPresenter::PermissionNotAllowed;
672 } 672 }
673 673
674 void DesktopNotificationService::Observe( 674 void DesktopNotificationService::Observe(
675 int type, 675 int type,
676 const content::NotificationSource& source, 676 const content::NotificationSource& source,
677 const content::NotificationDetails& details) { 677 const content::NotificationDetails& details) {
678 DCHECK_EQ(chrome::NOTIFICATION_EXTENSION_UNINSTALLED, type); 678 DCHECK_EQ(chrome::NOTIFICATION_EXTENSION_UNINSTALLED, type);
679 679
680 extensions::Extension* extension = 680 extensions::Extension* extension =
681 content::Details<extensions::Extension>(details).ptr(); 681 content::Details<extensions::Extension>(details).ptr();
(...skipping 12 matching lines...) Expand all
694 : extensions::api::notifications::PERMISSION_LEVEL_DENIED; 694 : extensions::api::notifications::PERMISSION_LEVEL_DENIED;
695 scoped_ptr<base::ListValue> args(new base::ListValue()); 695 scoped_ptr<base::ListValue> args(new base::ListValue());
696 args->Append(new base::StringValue( 696 args->Append(new base::StringValue(
697 extensions::api::notifications::ToString(permission))); 697 extensions::api::notifications::ToString(permission)));
698 scoped_ptr<extensions::Event> event(new extensions::Event( 698 scoped_ptr<extensions::Event> event(new extensions::Event(
699 extensions::api::notifications::OnPermissionLevelChanged::kEventName, 699 extensions::api::notifications::OnPermissionLevelChanged::kEventName,
700 args.Pass())); 700 args.Pass()));
701 extensions::ExtensionSystem::Get(profile_)->event_router()-> 701 extensions::ExtensionSystem::Get(profile_)->event_router()->
702 DispatchEventToExtension(notifier_id.id, event.Pass()); 702 DispatchEventToExtension(notifier_id.id, event.Pass());
703 } 703 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698