OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/notification_system_observer.h" | 5 #include "chrome/browser/notifications/notification_system_observer.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "chrome/browser/chrome_notification_types.h" | 8 #include "chrome/browser/chrome_notification_types.h" |
9 #include "chrome/browser/notifications/notification_ui_manager.h" | 9 #include "chrome/browser/notifications/notification_ui_manager.h" |
10 #include "chrome/browser/profiles/profile.h" | 10 #include "chrome/browser/profiles/profile.h" |
11 #include "content/public/browser/notification_service.h" | 11 #include "content/public/browser/notification_service.h" |
12 #include "extensions/common/extension.h" | 12 #include "extensions/common/extension.h" |
13 | 13 |
14 NotificationSystemObserver::NotificationSystemObserver( | 14 NotificationSystemObserver::NotificationSystemObserver( |
15 NotificationUIManager* ui_manager) | 15 NotificationUIManager* ui_manager) |
16 : ui_manager_(ui_manager) { | 16 : ui_manager_(ui_manager) { |
17 DCHECK(ui_manager_); | 17 DCHECK(ui_manager_); |
18 registrar_.Add(this, chrome::NOTIFICATION_APP_TERMINATING, | 18 registrar_.Add(this, chrome::NOTIFICATION_APP_TERMINATING, |
19 content::NotificationService::AllSources()); | 19 content::NotificationService::AllSources()); |
20 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_UNLOADED_DEPRECATED, | 20 registrar_.Add(this, |
| 21 extensions::NOTIFICATION_EXTENSION_UNLOADED_DEPRECATED, |
21 content::NotificationService::AllSources()); | 22 content::NotificationService::AllSources()); |
22 registrar_.Add(this, chrome::NOTIFICATION_PROFILE_DESTROYED, | 23 registrar_.Add(this, chrome::NOTIFICATION_PROFILE_DESTROYED, |
23 content::NotificationService::AllSources()); | 24 content::NotificationService::AllSources()); |
24 } | 25 } |
25 | 26 |
26 NotificationSystemObserver::~NotificationSystemObserver() { | 27 NotificationSystemObserver::~NotificationSystemObserver() { |
27 } | 28 } |
28 | 29 |
29 void NotificationSystemObserver::Observe( | 30 void NotificationSystemObserver::Observe( |
30 int type, | 31 int type, |
31 const content::NotificationSource& source, | 32 const content::NotificationSource& source, |
32 const content::NotificationDetails& details) { | 33 const content::NotificationDetails& details) { |
33 if (type == chrome::NOTIFICATION_APP_TERMINATING) { | 34 if (type == chrome::NOTIFICATION_APP_TERMINATING) { |
34 ui_manager_->CancelAll(); | 35 ui_manager_->CancelAll(); |
35 } else if (type == chrome::NOTIFICATION_EXTENSION_UNLOADED_DEPRECATED) { | 36 } else if (type == extensions::NOTIFICATION_EXTENSION_UNLOADED_DEPRECATED) { |
36 if (!content::Source<Profile>(source)->IsOffTheRecord()) { | 37 if (!content::Source<Profile>(source)->IsOffTheRecord()) { |
37 extensions::UnloadedExtensionInfo* extension_info = | 38 extensions::UnloadedExtensionInfo* extension_info = |
38 content::Details<extensions::UnloadedExtensionInfo>(details).ptr(); | 39 content::Details<extensions::UnloadedExtensionInfo>(details).ptr(); |
39 const extensions::Extension* extension = extension_info->extension; | 40 const extensions::Extension* extension = extension_info->extension; |
40 ui_manager_->CancelAllBySourceOrigin(extension->url()); | 41 ui_manager_->CancelAllBySourceOrigin(extension->url()); |
41 } | 42 } |
42 } else if (type == chrome::NOTIFICATION_PROFILE_DESTROYED) { | 43 } else if (type == chrome::NOTIFICATION_PROFILE_DESTROYED) { |
43 // We only want to remove the incognito notifications. | 44 // We only want to remove the incognito notifications. |
44 if (content::Source<Profile>(source)->IsOffTheRecord()) | 45 if (content::Source<Profile>(source)->IsOffTheRecord()) |
45 ui_manager_->CancelAllByProfile(content::Source<Profile>(source).ptr()); | 46 ui_manager_->CancelAllByProfile(content::Source<Profile>(source).ptr()); |
46 } else { | 47 } else { |
47 NOTREACHED(); | 48 NOTREACHED(); |
48 } | 49 } |
49 } | 50 } |
OLD | NEW |