| Index: components/exo/display.cc
|
| diff --git a/components/exo/display.cc b/components/exo/display.cc
|
| index 7039936a1db49b11a4de1b0ff40cd987806c3a5f..03261baf3f1269b14b7534fb9d57a3e999c1e12a 100644
|
| --- a/components/exo/display.cc
|
| +++ b/components/exo/display.cc
|
| @@ -12,6 +12,8 @@
|
| #include "base/memory/ptr_util.h"
|
| #include "base/trace_event/trace_event.h"
|
| #include "base/trace_event/trace_event_argument.h"
|
| +#include "components/exo/notification_surface.h"
|
| +#include "components/exo/notification_surface_manager.h"
|
| #include "components/exo/shared_memory.h"
|
| #include "components/exo/shell_surface.h"
|
| #include "components/exo/sub_surface.h"
|
| @@ -32,7 +34,10 @@ namespace exo {
|
| ////////////////////////////////////////////////////////////////////////////////
|
| // Display, public:
|
|
|
| -Display::Display() {}
|
| +Display::Display() : notification_surface_manager_(nullptr) {}
|
| +
|
| +Display::Display(NotificationSurfaceManager* notification_surface_manager)
|
| + : notification_surface_manager_(notification_surface_manager) {}
|
|
|
| Display::~Display() {}
|
|
|
| @@ -179,4 +184,20 @@ std::unique_ptr<SubSurface> Display::CreateSubSurface(Surface* surface,
|
| return base::WrapUnique(new SubSurface(surface, parent));
|
| }
|
|
|
| +std::unique_ptr<NotificationSurface> Display::CreateNotificationSurface(
|
| + Surface* surface,
|
| + const std::string& notification_id) {
|
| + TRACE_EVENT2("exo", "Display::CreateNotificationSurface", "surface",
|
| + surface->AsTracedValue(), "notification_id", notification_id);
|
| +
|
| + if (!notification_surface_manager_ ||
|
| + notification_surface_manager_->GetSurface(notification_id)) {
|
| + DLOG(ERROR) << "Invalid notification id, id=" << notification_id;
|
| + return nullptr;
|
| + }
|
| +
|
| + return base::MakeUnique<NotificationSurface>(notification_surface_manager_,
|
| + surface, notification_id);
|
| +}
|
| +
|
| } // namespace exo
|
|
|