| Index: services/ui/display/screen_manager_ozone_internal.cc
|
| diff --git a/services/ui/display/screen_manager_ozone_internal.cc b/services/ui/display/screen_manager_ozone_internal.cc
|
| index 0468312067019cd84dd9df8ec91d3309eeabf268..d175cee4569d6ca7653470f1f146c558a5fdd354 100644
|
| --- a/services/ui/display/screen_manager_ozone_internal.cc
|
| +++ b/services/ui/display/screen_manager_ozone_internal.cc
|
| @@ -60,12 +60,20 @@ std::unique_ptr<ScreenManager> ScreenManager::Create() {
|
| return base::MakeUnique<ScreenManagerOzoneInternal>();
|
| }
|
|
|
| -ScreenManagerOzoneInternal::ScreenManagerOzoneInternal() {}
|
| +ScreenManagerOzoneInternal::ScreenManagerOzoneInternal()
|
| + : screen_owned_(base::MakeUnique<ScreenBase>()),
|
| + screen_(screen_owned_.get()) {
|
| + Screen::SetScreenInstance(screen_owned_.get());
|
| +}
|
|
|
| ScreenManagerOzoneInternal::~ScreenManagerOzoneInternal() {
|
| // We are shutting down and don't want to make anymore display changes.
|
| fake_display_controller_ = nullptr;
|
|
|
| + // At this point |display_manager_| likely owns the Screen instance. It never
|
| + // cleans up the instance pointer though, which could cause problems in tests.
|
| + Screen::SetScreenInstance(nullptr);
|
| +
|
| touch_transform_controller_.reset();
|
|
|
| if (display_manager_)
|
| @@ -159,14 +167,9 @@ void ScreenManagerOzoneInternal::Init(ScreenManagerDelegate* delegate) {
|
| native_display_delegate_->GetFakeDisplayController();
|
| }
|
|
|
| - // Create a new Screen instance.
|
| - std::unique_ptr<ScreenBase> screen = base::MakeUnique<ScreenBase>();
|
| - Screen::SetScreenInstance(screen.get());
|
| - screen_ = screen.get();
|
| -
|
| // Configure display manager. ScreenManager acts as an observer to find out
|
| // display changes and as a delegate to find out when changes start/stop.
|
| - display_manager_ = base::MakeUnique<DisplayManager>(std::move(screen));
|
| + display_manager_ = base::MakeUnique<DisplayManager>(std::move(screen_owned_));
|
| display_manager_->set_configure_displays(true);
|
| display_manager_->AddObserver(this);
|
| display_manager_->set_delegate(this);
|
| @@ -200,10 +203,6 @@ void ScreenManagerOzoneInternal::RequestCloseDisplay(int64_t display_id) {
|
| fake_display_controller_->RemoveDisplay(display_id);
|
| }
|
|
|
| -int64_t ScreenManagerOzoneInternal::GetPrimaryDisplayId() const {
|
| - return primary_display_id_;
|
| -}
|
| -
|
| void ScreenManagerOzoneInternal::ToggleAddRemoveDisplay() {
|
| if (!fake_display_controller_)
|
| return;
|
|
|