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

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

Issue 11414215: Add CloseAllByProfile to NotificationUIManager and call before destroyng a Profile (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years 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/threading/thread.h" 8 #include "base/threading/thread.h"
9 #include "base/utf_string_conversions.h" 9 #include "base/utf_string_conversions.h"
10 #include "chrome/browser/api/infobars/confirm_infobar_delegate.h" 10 #include "chrome/browser/api/infobars/confirm_infobar_delegate.h"
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after
269 origin_url, title, message, icon_url, replace_id, delegate, profile); 269 origin_url, title, message, icon_url, replace_id, delegate, profile);
270 #endif 270 #endif
271 } 271 }
272 272
273 // static 273 // static
274 void DesktopNotificationService::RemoveNotification( 274 void DesktopNotificationService::RemoveNotification(
275 const std::string& notification_id) { 275 const std::string& notification_id) {
276 g_browser_process->notification_ui_manager()->CancelById(notification_id); 276 g_browser_process->notification_ui_manager()->CancelById(notification_id);
277 } 277 }
278 278
279 DesktopNotificationService::DesktopNotificationService(Profile* profile, 279 DesktopNotificationService::DesktopNotificationService(
280 Profile* profile,
280 NotificationUIManager* ui_manager) 281 NotificationUIManager* ui_manager)
281 : profile_(profile), 282 : profile_(profile),
282 ui_manager_(ui_manager) { 283 ui_manager_(ui_manager) {
283 StartObserving(); 284 StartObserving();
284 } 285 }
285 286
286 DesktopNotificationService::~DesktopNotificationService() { 287 DesktopNotificationService::~DesktopNotificationService() {
287 StopObserving(); 288 StopObserving();
288 } 289 }
289 290
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
331 // which was unloaded. Don't use GetUIManager() here, because this may 332 // which was unloaded. Don't use GetUIManager() here, because this may
332 // get called during shutdown. 333 // get called during shutdown.
333 const extensions::Extension* extension = 334 const extensions::Extension* extension =
334 content::Details<extensions::UnloadedExtensionInfo>(details)->extension; 335 content::Details<extensions::UnloadedExtensionInfo>(details)->extension;
335 if (extension && 336 if (extension &&
336 g_browser_process && g_browser_process->notification_ui_manager()) { 337 g_browser_process && g_browser_process->notification_ui_manager()) {
337 g_browser_process->notification_ui_manager()-> 338 g_browser_process->notification_ui_manager()->
338 CancelAllBySourceOrigin(extension->url()); 339 CancelAllBySourceOrigin(extension->url());
339 } 340 }
340 } else if (type == chrome::NOTIFICATION_PROFILE_DESTROYED) { 341 } else if (type == chrome::NOTIFICATION_PROFILE_DESTROYED) {
342 if (g_browser_process && g_browser_process->notification_ui_manager()) {
343 g_browser_process->notification_ui_manager()->
344 CancelAllByProfile(profile_);
345 }
341 StopObserving(); 346 StopObserving();
342 } 347 }
343 } 348 }
344 349
345 ContentSetting DesktopNotificationService::GetDefaultContentSetting( 350 ContentSetting DesktopNotificationService::GetDefaultContentSetting(
346 std::string* provider_id) { 351 std::string* provider_id) {
347 return profile_->GetHostContentSettingsMap()->GetDefaultContentSetting( 352 return profile_->GetHostContentSettingsMap()->GetDefaultContentSetting(
348 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, provider_id); 353 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, provider_id);
349 } 354 }
350 355
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
510 515
511 if (setting == CONTENT_SETTING_ALLOW) 516 if (setting == CONTENT_SETTING_ALLOW)
512 return WebKit::WebNotificationPresenter::PermissionAllowed; 517 return WebKit::WebNotificationPresenter::PermissionAllowed;
513 if (setting == CONTENT_SETTING_BLOCK) 518 if (setting == CONTENT_SETTING_BLOCK)
514 return WebKit::WebNotificationPresenter::PermissionDenied; 519 return WebKit::WebNotificationPresenter::PermissionDenied;
515 if (setting == CONTENT_SETTING_ASK) 520 if (setting == CONTENT_SETTING_ASK)
516 return WebKit::WebNotificationPresenter::PermissionNotAllowed; 521 return WebKit::WebNotificationPresenter::PermissionNotAllowed;
517 NOTREACHED() << "Invalid notifications settings value: " << setting; 522 NOTREACHED() << "Invalid notifications settings value: " << setting;
518 return WebKit::WebNotificationPresenter::PermissionNotAllowed; 523 return WebKit::WebNotificationPresenter::PermissionNotAllowed;
519 } 524 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698