Index: services/ui/display/platform_screen_ozone.cc |
diff --git a/services/ui/display/platform_screen_ozone.cc b/services/ui/display/platform_screen_ozone.cc |
index 6d973a0843b4c3cf7709e0c12e57b4c7796e6936..888f20a19d5671e35c3cb89fbbc0482138602942 100644 |
--- a/services/ui/display/platform_screen_ozone.cc |
+++ b/services/ui/display/platform_screen_ozone.cc |
@@ -64,6 +64,19 @@ void PlatformScreenOzone::Init(PlatformScreenDelegate* delegate) { |
display_configurator_.ForceInitialConfigure(kChromeOsBootColor); |
} |
+void PlatformScreenOzone::RequestCloseDisplay(int64_t display_id) { |
+ if (!fake_display_controller_ || wait_for_display_config_update_) |
+ return; |
+ |
+ CachedDisplayIterator iter = GetCachedDisplayIterator(display_id); |
+ if (iter != cached_displays_.end()) { |
+ // Tell the NDD to remove the display. PlatformScreen will get an update |
+ // that the display configuration has changed and the display will be gone. |
+ wait_for_display_config_update_ = |
+ fake_display_controller_->RemoveDisplay(iter->id); |
+ } |
+} |
+ |
int64_t PlatformScreenOzone::GetPrimaryDisplayId() const { |
return primary_display_id_; |
} |