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

Side by Side Diff: chrome/browser/notifications/message_center_notification_manager.h

Issue 2794103002: Add initial support for native Linux desktop notifications (Closed)
Patch Set: Refactor, move impl to chrome/browser/notifications Created 3 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 (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 #ifndef CHROME_BROWSER_NOTIFICATIONS_MESSAGE_CENTER_NOTIFICATION_MANAGER_H_ 5 #ifndef CHROME_BROWSER_NOTIFICATIONS_MESSAGE_CENTER_NOTIFICATION_MANAGER_H_
6 #define CHROME_BROWSER_NOTIFICATIONS_MESSAGE_CENTER_NOTIFICATION_MANAGER_H_ 6 #define CHROME_BROWSER_NOTIFICATIONS_MESSAGE_CENTER_NOTIFICATION_MANAGER_H_
7 7
8 #include <map> 8 #include <map>
9 #include <memory> 9 #include <memory>
10 #include <string> 10 #include <string>
(...skipping 10 matching lines...) Expand all
21 #include "chrome/browser/notifications/notification_ui_manager.h" 21 #include "chrome/browser/notifications/notification_ui_manager.h"
22 #include "ui/message_center/message_center.h" 22 #include "ui/message_center/message_center.h"
23 #include "ui/message_center/message_center_observer.h" 23 #include "ui/message_center/message_center_observer.h"
24 #include "ui/message_center/message_center_tray_delegate.h" 24 #include "ui/message_center/message_center_tray_delegate.h"
25 #include "ui/message_center/message_center_types.h" 25 #include "ui/message_center/message_center_types.h"
26 26
27 class Notification; 27 class Notification;
28 class Profile; 28 class Profile;
29 class ProfileNotification; 29 class ProfileNotification;
30 30
31 #if defined(USE_GLIB) && defined(USE_GIO)
32 class DbusNotificationManager;
33 #endif
34
31 namespace message_center { 35 namespace message_center {
32 class NotificationBlocker; 36 class NotificationBlocker;
33 FORWARD_DECLARE_TEST(WebNotificationTrayTest, ManuallyCloseMessageCenter); 37 FORWARD_DECLARE_TEST(WebNotificationTrayTest, ManuallyCloseMessageCenter);
34 } 38 }
35 39
36 // This class extends NotificationUIManagerImpl and delegates actual display 40 // This class extends NotificationUIManagerImpl and delegates actual display
37 // of notifications to MessageCenter, doing necessary conversions. 41 // of notifications to MessageCenter, doing necessary conversions.
38 class MessageCenterNotificationManager 42 class MessageCenterNotificationManager
39 : public NotificationUIManager, 43 : public NotificationUIManager,
40 public message_center::MessageCenterObserver { 44 public message_center::MessageCenterObserver {
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 78
75 // Returns the notification id which this manager will use to add to message 79 // Returns the notification id which this manager will use to add to message
76 // center, for this combination of delegate id and profile. 80 // center, for this combination of delegate id and profile.
77 std::string GetMessageCenterNotificationIdForTest( 81 std::string GetMessageCenterNotificationIdForTest(
78 const std::string& delegate_id, Profile* profile); 82 const std::string& delegate_id, Profile* profile);
79 83
80 private: 84 private:
81 FRIEND_TEST_ALL_PREFIXES(message_center::WebNotificationTrayTest, 85 FRIEND_TEST_ALL_PREFIXES(message_center::WebNotificationTrayTest,
82 ManuallyCloseMessageCenter); 86 ManuallyCloseMessageCenter);
83 87
88 #if defined(USE_GLIB) && defined(USE_GIO)
89 std::unique_ptr<DbusNotificationManager> dbus_notification_manager_;
90 #endif
84 std::unique_ptr<message_center::MessageCenterTrayDelegate> tray_; 91 std::unique_ptr<message_center::MessageCenterTrayDelegate> tray_;
85 message_center::MessageCenter* message_center_; // Weak, global. 92 message_center::MessageCenter* message_center_; // Weak, global.
86 93
87 // Use a map by notification_id since this mapping is the most often used. 94 // Use a map by notification_id since this mapping is the most often used.
88 std::map<std::string, std::unique_ptr<ProfileNotification>> 95 std::map<std::string, std::unique_ptr<ProfileNotification>>
89 profile_notifications_; 96 profile_notifications_;
90 97
91 // Helpers that add/remove the notification from local map. 98 // Helpers that add/remove the notification from local map.
92 // The local map takes ownership of profile_notification object. 99 // The local map takes ownership of profile_notification object.
93 void AddProfileNotification( 100 void AddProfileNotification(
(...skipping 11 matching lines...) Expand all
105 112
106 NotificationSystemObserver system_observer_; 113 NotificationSystemObserver system_observer_;
107 114
108 // Keeps track of all notification statistics for UMA purposes. 115 // Keeps track of all notification statistics for UMA purposes.
109 MessageCenterStatsCollector stats_collector_; 116 MessageCenterStatsCollector stats_collector_;
110 117
111 DISALLOW_COPY_AND_ASSIGN(MessageCenterNotificationManager); 118 DISALLOW_COPY_AND_ASSIGN(MessageCenterNotificationManager);
112 }; 119 };
113 120
114 #endif // CHROME_BROWSER_NOTIFICATIONS_MESSAGE_CENTER_NOTIFICATION_MANAGER_H_ 121 #endif // CHROME_BROWSER_NOTIFICATIONS_MESSAGE_CENTER_NOTIFICATION_MANAGER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698