Chromium Code Reviews| Index: components/exo/display.cc |
| diff --git a/components/exo/display.cc b/components/exo/display.cc |
| index 7039936a1db49b11a4de1b0ff40cd987806c3a5f..24d3419a82dda71a7ae11ac301e73edfa93abca5 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" |
| @@ -179,4 +181,25 @@ 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_ && |
|
reveman
2016/06/23 16:34:52
nit: please fail if "!notification_surface_manager
xiyuan
2016/06/23 17:46:09
Done.
|
| + notification_surface_manager_->GetSurface(notification_id) != nullptr) { |
|
reveman
2016/06/23 16:34:52
nit: s/GetSurface(notification_id) != nullptr/GetS
xiyuan
2016/06/23 17:46:09
Done.
|
| + DLOG(ERROR) << "Invalid notification id, id=" << notification_id; |
| + return nullptr; |
| + } |
| + |
| + return base::WrapUnique(new NotificationSurface( |
| + notification_surface_manager_.get(), surface, notification_id)); |
| +} |
| + |
| +void Display::SetNotificationSurfaceManager( |
| + std::unique_ptr<NotificationSurfaceManager> notification_surface_manager) { |
| + notification_surface_manager_ = std::move(notification_surface_manager); |
| +} |
| + |
| } // namespace exo |