// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_UI_MANAGER_H_ #define CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_UI_MANAGER_H_ #include <memory> #include <set> #include <string> #include <vector> #include "chrome/browser/notifications/notification_common.h" #include "chrome/browser/notifications/profile_notification.h" class GURL; class Profile; namespace message_center { class Notification; } // This interface is used to manage the UI surfaces for non-native desktop // notifications (hence, this is not used by Chrome OS and is not used for // Windows Action Center notifications). There is just one instance for all // profiles. This represents the middle layer of notification and it's aware of // profile. It identifies a notification by the id string and a profile, hence // two notifications from two different profiles, even though they may have // identical ids, will not be considered the same notification. This interface // will generate a new id behind the scene based on the id string and the // profile's characteristics for each notification and use this new id to call // lower layer MessageCenter interface which is profile agnostic. Therefore the // ids passed into this interface are not the same as those passed into the // MessageCenter interface. class NotificationUIManager { … }; #endif // CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_UI_MANAGER_H_