| Index: ui/views/mus/screen_mus.cc
 | 
| diff --git a/ui/views/mus/screen_mus.cc b/ui/views/mus/screen_mus.cc
 | 
| index a7a05ba227598469e204bf3de8bdb9d52cda1090..d6fbbd74494bcc7d7b4c8b2307a913a4bc8d0243 100644
 | 
| --- a/ui/views/mus/screen_mus.cc
 | 
| +++ b/ui/views/mus/screen_mus.cc
 | 
| @@ -37,9 +37,14 @@ namespace views {
 | 
|  using Type = display::DisplayList::Type;
 | 
|  
 | 
|  ScreenMus::ScreenMus(ScreenMusDelegate* delegate)
 | 
| -    : delegate_(delegate), display_manager_observer_binding_(this) {}
 | 
| +    : delegate_(delegate), display_manager_observer_binding_(this) {
 | 
| +  display::Screen::SetScreenInstance(this);
 | 
| +}
 | 
|  
 | 
| -ScreenMus::~ScreenMus() {}
 | 
| +ScreenMus::~ScreenMus() {
 | 
| +  DCHECK_EQ(this, display::Screen::GetScreen());
 | 
| +  display::Screen::SetScreenInstance(nullptr);
 | 
| +}
 | 
|  
 | 
|  void ScreenMus::Init(service_manager::Connector* connector) {
 | 
|    connector->ConnectToInterface("service:ui", &display_manager_);
 | 
| @@ -56,11 +61,11 @@ void ScreenMus::Init(service_manager::Connector* connector) {
 | 
|    // The WaitForIncomingMethodCall() should have supplied the set of Displays,
 | 
|    // unless mus is going down, in which case encountered_error() is true, or the
 | 
|    // call to WaitForIncomingMethodCall() failed.
 | 
| -  if (display_list()->displays().empty()) {
 | 
| +  if (display_list().displays().empty()) {
 | 
|      DCHECK(display_manager_.encountered_error() || !success);
 | 
|      // In this case we install a default display and assume the process is
 | 
|      // going to exit shortly so that the real value doesn't matter.
 | 
| -    display_list()->AddDisplay(
 | 
| +    display_list().AddDisplay(
 | 
|          display::Display(0xFFFFFFFF, gfx::Rect(0, 0, 801, 802)), Type::PRIMARY);
 | 
|    }
 | 
|  }
 | 
| @@ -89,13 +94,13 @@ void ScreenMus::OnDisplays(mojo::Array<ui::mojom::WsDisplayPtr> ws_displays,
 | 
|                             int64_t primary_display_id,
 | 
|                             int64_t internal_display_id) {
 | 
|    // This should only be called once when ScreenMus is added as an observer.
 | 
| -  DCHECK(display_list()->displays().empty());
 | 
| +  DCHECK(display_list().displays().empty());
 | 
|  
 | 
|    for (size_t i = 0; i < ws_displays.size(); ++i) {
 | 
|      const display::Display& display = ws_displays[i]->display;
 | 
|      const bool is_primary = display.id() == primary_display_id;
 | 
| -    display_list()->AddDisplay(display,
 | 
| -                               is_primary ? Type::PRIMARY : Type::NOT_PRIMARY);
 | 
| +    display_list().AddDisplay(display,
 | 
| +                              is_primary ? Type::PRIMARY : Type::NOT_PRIMARY);
 | 
|      if (is_primary) {
 | 
|        // TODO(sky): Make WindowManagerFrameValues per display.
 | 
|        WindowManagerFrameValues frame_values =
 | 
| @@ -105,13 +110,13 @@ void ScreenMus::OnDisplays(mojo::Array<ui::mojom::WsDisplayPtr> ws_displays,
 | 
|      }
 | 
|    }
 | 
|  
 | 
| -  DCHECK(display_list()->GetPrimaryDisplayIterator() !=
 | 
| -         display_list()->displays().end());
 | 
| +  DCHECK(display_list().GetPrimaryDisplayIterator() !=
 | 
| +         display_list().displays().end());
 | 
|  
 | 
|    if (internal_display_id != display::Display::kInvalidDisplayID)
 | 
|      display::Display::SetInternalDisplayId(internal_display_id);
 | 
|  
 | 
| -  DCHECK(!display_list()->displays().empty());
 | 
| +  DCHECK(!display_list().displays().empty());
 | 
|  }
 | 
|  
 | 
|  void ScreenMus::OnDisplaysChanged(
 | 
| @@ -119,7 +124,7 @@ void ScreenMus::OnDisplaysChanged(
 | 
|    for (size_t i = 0; i < ws_displays.size(); ++i) {
 | 
|      const display::Display& display = ws_displays[i]->display;
 | 
|      const bool is_primary =
 | 
| -        display.id() == display_list()->GetPrimaryDisplayIterator()->id();
 | 
| +        display.id() == display_list().GetPrimaryDisplayIterator()->id();
 | 
|      ProcessDisplayChanged(display, is_primary);
 | 
|      if (is_primary) {
 | 
|        WindowManagerFrameValues frame_values =
 | 
| @@ -133,7 +138,7 @@ void ScreenMus::OnDisplaysChanged(
 | 
|  }
 | 
|  
 | 
|  void ScreenMus::OnDisplayRemoved(int64_t display_id) {
 | 
| -  display_list()->RemoveDisplay(display_id);
 | 
| +  display_list().RemoveDisplay(display_id);
 | 
|  }
 | 
|  
 | 
|  void ScreenMus::OnPrimaryDisplayChanged(int64_t primary_display_id) {
 | 
| @@ -142,7 +147,7 @@ void ScreenMus::OnPrimaryDisplayChanged(int64_t primary_display_id) {
 | 
|    if (primary_display_id == display::Display::kInvalidDisplayID)
 | 
|      return;
 | 
|  
 | 
| -  ProcessDisplayChanged(*display_list()->FindDisplayById(primary_display_id),
 | 
| +  ProcessDisplayChanged(*display_list().FindDisplayById(primary_display_id),
 | 
|                          true);
 | 
|  }
 | 
|  
 | 
| 
 |