| Index: ash/system/chromeos/tray_display.cc | 
| diff --git a/ash/system/chromeos/tray_display.cc b/ash/system/chromeos/tray_display.cc | 
| index 0e672d1d5a663fa52b87bcba1d99952219b0f8a4..6c09ddfcc835dab6b6d6a9acd8e3355fc4aabda2 100644 | 
| --- a/ash/system/chromeos/tray_display.cc | 
| +++ b/ash/system/chromeos/tray_display.cc | 
| @@ -5,6 +5,7 @@ | 
| #include "ash/system/chromeos/tray_display.h" | 
|  | 
| #include "ash/display/display_controller.h" | 
| +#include "ash/display/multi_display_manager.h" | 
| #include "ash/screen_ash.h" | 
| #include "ash/shell.h" | 
| #include "ash/system/tray/system_tray.h" | 
| @@ -23,10 +24,6 @@ | 
| #include "ui/views/controls/label.h" | 
| #include "ui/views/layout/box_layout.h" | 
|  | 
| -#if defined(USE_X11) | 
| -#include "ui/base/x/x11_util.h" | 
| -#endif | 
| - | 
| namespace ash { | 
| namespace internal { | 
|  | 
| @@ -60,37 +57,16 @@ class DisplayView : public ash::internal::ActionableView { | 
| SetVisible(false); | 
| return; | 
| case chromeos::STATE_DUAL_MIRROR: { | 
| -        // Simply assumes that the primary display appears first and the | 
| -        // secondary display appears next in the list. | 
| -        std::vector<std::string> display_names; | 
| -#if defined(USE_X11) | 
| -        std::vector<XID> output_ids; | 
| -        ui::GetOutputDeviceHandles(&output_ids); | 
| -        display_names = ui::GetDisplayNames(output_ids); | 
| -#endif | 
| -        if (display_names.size() > 1) { | 
| -          label_->SetText(l10n_util::GetStringFUTF16( | 
| -              IDS_ASH_STATUS_TRAY_DISPLAY_MIRRORING, | 
| -              UTF8ToUTF16(display_names[1]))); | 
| -          SetVisible(true); | 
| -        } else { | 
| -          SetVisible(false); | 
| -        } | 
| +        label_->SetText(l10n_util::GetStringFUTF16( | 
| +            IDS_ASH_STATUS_TRAY_DISPLAY_MIRRORING, GetExternalDisplayName())); | 
| +        SetVisible(true); | 
| return; | 
| } | 
| case chromeos::STATE_DUAL_PRIMARY_ONLY: | 
| case chromeos::STATE_DUAL_SECONDARY_ONLY: { | 
| -        aura::DisplayManager* display_manager = | 
| -            aura::Env::GetInstance()->display_manager(); | 
| -        if (display_manager->GetNumDisplays() > 1) { | 
| -          label_->SetText(l10n_util::GetStringFUTF16( | 
| -              IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED, | 
| -              UTF8ToUTF16(display_manager->GetDisplayNameFor( | 
| -                  ScreenAsh::GetSecondaryDisplay())))); | 
| -          SetVisible(true); | 
| -        } else { | 
| -          SetVisible(false); | 
| -        } | 
| +        label_->SetText(l10n_util::GetStringFUTF16( | 
| +            IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED, GetExternalDisplayName())); | 
| +        SetVisible(true); | 
| return; | 
| } | 
| default: | 
| @@ -99,6 +75,29 @@ class DisplayView : public ash::internal::ActionableView { | 
| } | 
|  | 
| private: | 
| +  // Returns the name of the currently connected external display. | 
| +  string16 GetExternalDisplayName() { | 
| +    MultiDisplayManager* display_manager = static_cast<MultiDisplayManager*>( | 
| +        aura::Env::GetInstance()->display_manager()); | 
| + | 
| +    gfx::Display external_display(gfx::Display::kInvalidDisplayID); | 
| +    if (display_manager->HasInternalDisplay()) { | 
| +      for (size_t i = 0; i < display_manager->GetNumDisplays(); ++i) { | 
| +        gfx::Display* display = display_manager->GetDisplayAt(i); | 
| +        if (!display_manager->IsInternalDisplayId(display->id())) { | 
| +          external_display = *display; | 
| +          break; | 
| +        } | 
| +      } | 
| +    } else { | 
| +      // Falls back to the secondary display since the system doesn't | 
| +      // distinguish the displays. | 
| +      external_display = ScreenAsh::GetSecondaryDisplay(); | 
| +    } | 
| + | 
| +    return UTF8ToUTF16(display_manager->GetDisplayNameFor(external_display)); | 
| +  } | 
| + | 
| // Overridden from ActionableView. | 
| virtual bool PerformAction(const ui::Event& event) OVERRIDE { | 
| if (login_status_ == ash::user::LOGGED_IN_USER || | 
|  |