chromium/chrome/browser/notifications/notification_ui_manager.h

// 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_