diff options
-rw-r--r-- | ash/display/display_controller.cc | 60 | ||||
-rw-r--r-- | ash/display/display_controller.h | 11 | ||||
-rw-r--r-- | ash/display/display_controller_unittest.cc | 11 | ||||
-rw-r--r-- | ash/display/display_manager.cc | 141 | ||||
-rw-r--r-- | ash/display/display_manager.h | 29 | ||||
-rw-r--r-- | ash/display/display_manager_unittest.cc | 82 | ||||
-rw-r--r-- | ash/display/screen_position_controller_unittest.cc | 17 | ||||
-rw-r--r-- | ash/screen_ash.cc | 6 | ||||
-rw-r--r-- | ash/system/chromeos/tray_display.cc | 6 | ||||
-rw-r--r-- | ash/test/display_manager_test_api.cc | 7 | ||||
-rw-r--r-- | ash/touch/touch_observer_hud_unittest.cc | 7 | ||||
-rw-r--r-- | chrome/browser/chromeos/display/display_preferences.cc | 2 | ||||
-rw-r--r-- | chrome/browser/extensions/api/system_info_display/display_info_provider_chromeos.cc | 2 | ||||
-rw-r--r-- | chrome/browser/extensions/api/system_info_display/display_info_provider_chromeos_unittest.cc | 181 | ||||
-rw-r--r-- | chrome/browser/ui/webui/options/chromeos/display_options_handler.cc | 20 | ||||
-rw-r--r-- | chrome/browser/ui/webui/options/chromeos/display_options_handler.h | 2 |
16 files changed, 295 insertions, 289 deletions
diff --git a/ash/display/display_controller.cc b/ash/display/display_controller.cc index e42b6ba..ccba3e0 100644 --- a/ash/display/display_controller.cc +++ b/ash/display/display_controller.cc @@ -298,9 +298,9 @@ void DisplayController::InitSecondaryDisplays() { internal::DisplayManager* display_manager = GetDisplayManager(); UpdateDisplayBoundsForLayout(); for (size_t i = 0; i < display_manager->GetNumDisplays(); ++i) { - const gfx::Display* display = display_manager->GetDisplayAt(i); - if (primary_display_id != display->id()) { - aura::RootWindow* root = AddRootWindowForDisplay(*display); + const gfx::Display& display = display_manager->GetDisplayAt(i); + if (primary_display_id != display.id()) { + aura::RootWindow* root = AddRootWindowForDisplay(display); Shell::GetInstance()->InitRootWindowForSecondaryDisplay(root); } } @@ -550,19 +550,12 @@ void DisplayController::SetPrimaryDisplay( display_info_list.push_back(display_manager->GetDisplayInfo( primary_display_id)); display_info_list.push_back(display_manager->GetDisplayInfo( - GetSecondaryDisplay()->id())); + ScreenAsh::GetSecondaryDisplay().id())); GetDisplayManager()->set_force_bounds_changed(true); GetDisplayManager()->UpdateDisplays(display_info_list); GetDisplayManager()->set_force_bounds_changed(false); } -gfx::Display* DisplayController::GetSecondaryDisplay() { - internal::DisplayManager* display_manager = GetDisplayManager(); - CHECK_EQ(2U, display_manager->GetNumDisplays()); - return display_manager->GetDisplayAt(0)->id() == primary_display_id ? - display_manager->GetDisplayAt(1) : display_manager->GetDisplayAt(0); -} - void DisplayController::EnsurePointerInDisplays() { // If the mouse is currently on a display in native location, // use the same native location. Otherwise find the display closest @@ -575,17 +568,17 @@ void DisplayController::EnsurePointerInDisplays() { aura::RootWindow* dst_root_window = NULL; for (size_t i = 0; i < display_manager->GetNumDisplays(); ++i) { - const gfx::Display* display = display_manager->GetDisplayAt(i); + const gfx::Display& display = display_manager->GetDisplayAt(i); const internal::DisplayInfo display_info = - display_manager->GetDisplayInfo(display->id()); - aura::RootWindow* root_window = GetRootWindowForDisplayId(display->id()); + display_manager->GetDisplayInfo(display.id()); + aura::RootWindow* root_window = GetRootWindowForDisplayId(display.id()); if (display_info.bounds_in_pixel().Contains( cursor_location_in_native_coords_for_restore_)) { dst_root_window = root_window; target_location_in_native = cursor_location_in_native_coords_for_restore_; break; } - gfx::Point center = display->bounds().CenterPoint(); + gfx::Point center = display.bounds().CenterPoint(); // Use the distance squared from the center of the dislay. This is not // exactly "closest" display, but good enough to pick one // appropriate (and there are at most two displays). @@ -595,7 +588,7 @@ void DisplayController::EnsurePointerInDisplays() { int64 distance_squared = (center - point_in_screen).LengthSquared(); if (closest_distance_squared < 0 || closest_distance_squared > distance_squared) { - aura::RootWindow* root_window = GetRootWindowForDisplayId(display->id()); + aura::RootWindow* root_window = GetRootWindowForDisplayId(display.id()); aura::client::ScreenPositionClient* client = aura::client::GetScreenPositionClient(root_window); client->ConvertPointFromScreen(root_window, ¢er); @@ -612,11 +605,11 @@ void DisplayController::EnsurePointerInDisplays() { bool DisplayController::UpdateWorkAreaOfDisplayNearestWindow( const aura::Window* window, const gfx::Insets& insets) { - const aura::RootWindow* root = window->GetRootWindow(); - gfx::Display* display = FindDisplayForRootWindow(root); - gfx::Rect old_work_area = display->work_area(); - display->UpdateWorkAreaFromInsets(insets); - return old_work_area != display->work_area(); + const aura::RootWindow* root_window = window->GetRootWindow(); + int64 id = root_window->GetProperty(internal::kDisplayIdKey); + // if id is |kInvaildDisplayID|, it's being deleted. + DCHECK(id != gfx::Display::kInvalidDisplayID); + return GetDisplayManager()->UpdateWorkAreaOfDisplay(id, insets); } const gfx::Display& DisplayController::GetDisplayNearestWindow( @@ -637,7 +630,7 @@ const gfx::Display& DisplayController::GetDisplayNearestWindow( if (display_manager->mirrored_display().id() == id) return display_manager->mirrored_display(); - return display_manager->FindDisplayForId(id); + return display_manager->GetDisplayForId(id); } const gfx::Display& DisplayController::GetDisplayNearestPoint( @@ -657,12 +650,12 @@ const gfx::Display& DisplayController::GetDisplayMatching( int max_area = 0; const gfx::Display* matching = NULL; for (size_t i = 0; i < GetDisplayManager()->GetNumDisplays(); ++i) { - gfx::Display* display = GetDisplayManager()->GetDisplayAt(i); - gfx::Rect intersect = gfx::IntersectRects(display->bounds(), rect); + const gfx::Display& display = GetDisplayManager()->GetDisplayAt(i); + gfx::Rect intersect = gfx::IntersectRects(display.bounds(), rect); int area = intersect.width() * intersect.height(); if (area > max_area) { max_area = area; - matching = display; + matching = &display; } } // Fallback to the primary display if there is no matching display. @@ -718,7 +711,7 @@ void DisplayController::OnDisplayRemoved(const gfx::Display& display) { return; } DCHECK_EQ(1U, root_windows_.size()); - primary_display_id = GetSecondaryDisplay()->id(); + primary_display_id = ScreenAsh::GetSecondaryDisplay().id(); aura::RootWindow* primary_root = root_to_delete; // Delete the other root instead. @@ -807,16 +800,6 @@ void DisplayController::PostDisplayConfigurationChange() { EnsurePointerInDisplays(); } -gfx::Display* DisplayController::FindDisplayForRootWindow( - const aura::RootWindow* root_window) { - int64 id = root_window->GetProperty(internal::kDisplayIdKey); - // if id is |kInvaildDisplayID|, it's being deleted. - DCHECK(id != gfx::Display::kInvalidDisplayID); - gfx::Display& display = GetDisplayManager()->FindDisplayForId(id); - DCHECK(display.is_valid()); - return display.is_valid() ? &display : NULL; -} - aura::RootWindow* DisplayController::AddRootWindowForDisplay( const gfx::Display& display) { static int root_window_count = 0; @@ -857,8 +840,9 @@ void DisplayController::UpdateDisplayBoundsForLayout() { DCHECK_EQ(2, Shell::GetScreen()->GetNumDisplays()); const DisplayLayout layout = GetCurrentDisplayLayout(); - Shell::GetInstance()->display_manager()->UpdateDisplayBoundsForLayout( - layout, GetPrimaryDisplay(), GetSecondaryDisplay()); + Shell::GetInstance()->display_manager()->UpdateDisplayBoundsForLayoutById( + layout, GetPrimaryDisplay(), + ScreenAsh::GetSecondaryDisplay().id()); } void DisplayController::OnFadeOutForSwapDisplayFinished() { diff --git a/ash/display/display_controller.h b/ash/display/display_controller.h index f313ba8..f67f27d 100644 --- a/ash/display/display_controller.h +++ b/ash/display/display_controller.h @@ -13,6 +13,7 @@ #include "ash/display/display_manager.h" #include "base/basictypes.h" #include "base/compiler_specific.h" +#include "base/gtest_prod_util.h" #include "base/memory/scoped_ptr.h" #include "base/observer_list.h" #include "base/time/time.h" @@ -112,9 +113,6 @@ class ASH_EXPORT DisplayController : public gfx::DisplayObserver, // window to given |display|. void SetPrimaryDisplay(const gfx::Display& display); - // Returns the secondary display. - gfx::Display* GetSecondaryDisplay(); - // Closes all child windows in the all root windows. void CloseChildWindows(); @@ -178,14 +176,11 @@ class ASH_EXPORT DisplayController : public gfx::DisplayObserver, virtual void PostDisplayConfigurationChange() OVERRIDE; private: + FRIEND_TEST_ALL_PREFIXES(DisplayControllerTest, BoundsUpdated); + FRIEND_TEST_ALL_PREFIXES(DisplayControllerTest, SecondaryDisplayLayout); friend class internal::DisplayManager; friend class internal::MirrorWindowController; - // Returns a display the |root| is assigned to for modification. - // Returns NULL if the no display is assigned, or the root window is - // for mirroring. - gfx::Display* FindDisplayForRootWindow(const aura::RootWindow* root); - // Creates a root window for |display| and stores it in the |root_windows_| // map. aura::RootWindow* AddRootWindowForDisplay(const gfx::Display& display); diff --git a/ash/display/display_controller_unittest.cc b/ash/display/display_controller_unittest.cc index 697779c..312c175 100644 --- a/ash/display/display_controller_unittest.cc +++ b/ash/display/display_controller_unittest.cc @@ -29,7 +29,6 @@ #endif namespace ash { -namespace test { namespace { const char kDesktopBackgroundView[] = "DesktopBackgroundView"; @@ -226,10 +225,9 @@ TEST_F(DisplayControllerTest, SecondaryDisplayLayout) { TestObserver observer; UpdateDisplay("500x500,400x400"); EXPECT_EQ(1, observer.CountAndReset()); // resize and add - gfx::Display* secondary_display = - Shell::GetInstance()->display_manager()->GetDisplayAt(1); gfx::Insets insets(5, 5, 5, 5); - secondary_display->UpdateWorkAreaFromInsets(insets); + Shell::GetInstance()->display_manager()->UpdateWorkAreaOfDisplay( + ScreenAsh::GetSecondaryDisplay().id(), insets); // Default layout is RIGHT. EXPECT_EQ("0,0 500x500", GetPrimaryDisplay().bounds().ToString()); @@ -303,9 +301,9 @@ TEST_F(DisplayControllerTest, BoundsUpdated) { internal::DisplayManager* display_manager = Shell::GetInstance()->display_manager(); - gfx::Display* secondary_display = display_manager->GetDisplayAt(1); gfx::Insets insets(5, 5, 5, 5); - secondary_display->UpdateWorkAreaFromInsets(insets); + display_manager->UpdateWorkAreaOfDisplay( + ScreenAsh::GetSecondaryDisplay().id(), insets); EXPECT_EQ("0,0 200x200", GetPrimaryDisplay().bounds().ToString()); EXPECT_EQ("0,200 300x300", GetSecondaryDisplay().bounds().ToString()); @@ -996,5 +994,4 @@ TEST_F(DisplayControllerTest, XWidowNameForRootWindow) { } #endif -} // namespace test } // namespace ash diff --git a/ash/display/display_manager.cc b/ash/display/display_manager.cc index 6ee1bde..48fb914 100644 --- a/ash/display/display_manager.cc +++ b/ash/display/display_manager.cc @@ -207,50 +207,16 @@ void DisplayManager::InitFromCommandLine() { OnNativeDisplaysChanged(info_list); } -void DisplayManager::UpdateDisplayBoundsForLayout( +// static +void DisplayManager::UpdateDisplayBoundsForLayoutById( const DisplayLayout& layout, const gfx::Display& primary_display, - gfx::Display* secondary_display) { - DCHECK_EQ("0,0", primary_display.bounds().origin().ToString()); - - const gfx::Rect& primary_bounds = primary_display.bounds(); - const gfx::Rect& secondary_bounds = secondary_display->bounds(); - gfx::Point new_secondary_origin = primary_bounds.origin(); - - DisplayLayout::Position position = layout.position; - - // Ignore the offset in case the secondary display doesn't share edges with - // the primary display. - int offset = layout.offset; - if (position == DisplayLayout::TOP || position == DisplayLayout::BOTTOM) { - offset = std::min( - offset, primary_bounds.width() - kMinimumOverlapForInvalidOffset); - offset = std::max( - offset, -secondary_bounds.width() + kMinimumOverlapForInvalidOffset); - } else { - offset = std::min( - offset, primary_bounds.height() - kMinimumOverlapForInvalidOffset); - offset = std::max( - offset, -secondary_bounds.height() + kMinimumOverlapForInvalidOffset); - } - switch (position) { - case DisplayLayout::TOP: - new_secondary_origin.Offset(offset, -secondary_bounds.height()); - break; - case DisplayLayout::RIGHT: - new_secondary_origin.Offset(primary_bounds.width(), offset); - break; - case DisplayLayout::BOTTOM: - new_secondary_origin.Offset(offset, primary_bounds.height()); - break; - case DisplayLayout::LEFT: - new_secondary_origin.Offset(-secondary_bounds.width(), offset); - break; - } - gfx::Insets insets = secondary_display->GetWorkAreaInsets(); - secondary_display->set_bounds( - gfx::Rect(new_secondary_origin, secondary_bounds.size())); - secondary_display->UpdateWorkAreaFromInsets(insets); + int64 secondary_display_id) { + DCHECK_NE(gfx::Display::kInvalidDisplayID, secondary_display_id); + UpdateDisplayBoundsForLayout( + layout, primary_display, + Shell::GetInstance()->display_manager()-> + FindDisplayForId(secondary_display_id)); } bool DisplayManager::IsActiveDisplay(const gfx::Display& display) const { @@ -271,7 +237,9 @@ bool DisplayManager::IsInternalDisplayId(int64 id) const { } const gfx::Display& DisplayManager::GetDisplayForId(int64 id) const { - return const_cast<DisplayManager*>(this)->FindDisplayForId(id); + gfx::Display* display = + const_cast<DisplayManager*>(this)->FindDisplayForId(id); + return display ? *display : GetInvalidDisplay(); } const gfx::Display& DisplayManager::FindDisplayContainingPoint( @@ -285,6 +253,15 @@ const gfx::Display& DisplayManager::FindDisplayContainingPoint( return GetInvalidDisplay(); } +bool DisplayManager::UpdateWorkAreaOfDisplay(int64 display_id, + const gfx::Insets& insets) { + gfx::Display* display = FindDisplayForId(display_id); + DCHECK(display); + gfx::Rect old_work_area = display->work_area(); + display->UpdateWorkAreaFromInsets(insets); + return old_work_area != display->work_area(); +} + void DisplayManager::SetOverscanInsets(int64 display_id, const gfx::Insets& insets_in_dip) { display_info_[display_id].SetOverscanInsets(insets_in_dip); @@ -634,8 +611,9 @@ void DisplayManager::UpdateDisplays( #endif } -gfx::Display* DisplayManager::GetDisplayAt(size_t index) { - return index < displays_.size() ? &displays_[index] : NULL; +const gfx::Display& DisplayManager::GetDisplayAt(size_t index) const { + DCHECK_LT(index, displays_.size()); + return displays_[index]; } const gfx::Display* DisplayManager::GetPrimaryDisplayCandidate() const { @@ -763,16 +741,6 @@ void DisplayManager::SetSoftwareMirroring(bool enabled) { mirrored_display_ = gfx::Display(); } -gfx::Display& DisplayManager::FindDisplayForId(int64 id) { - for (DisplayList::iterator iter = displays_.begin(); - iter != displays_.end(); ++iter) { - if ((*iter).id() == id) - return *iter; - } - DLOG(WARNING) << "Could not find display:" << id; - return GetInvalidDisplay(); -} - bool DisplayManager::UpdateDisplayBounds(int64 display_id, const gfx::Rect& new_bounds) { if (change_display_upon_host_resize_) { @@ -780,14 +748,24 @@ bool DisplayManager::UpdateDisplayBounds(int64 display_id, // Don't notify observers if the mirrored window has changed. if (software_mirroring_enabled_ && mirrored_display_.id() == display_id) return false; - gfx::Display& display = FindDisplayForId(display_id); - display.SetSize(display_info_[display_id].size_in_pixel()); - Shell::GetInstance()->screen()->NotifyBoundsChanged(display); + gfx::Display* display = FindDisplayForId(display_id); + display->SetSize(display_info_[display_id].size_in_pixel()); + Shell::GetInstance()->screen()->NotifyBoundsChanged(*display); return true; } return false; } +gfx::Display* DisplayManager::FindDisplayForId(int64 id) { + for (DisplayList::iterator iter = displays_.begin(); + iter != displays_.end(); ++iter) { + if ((*iter).id() == id) + return &(*iter); + } + DLOG(WARNING) << "Could not find display:" << id; + return NULL; +} + void DisplayManager::AddMirrorDisplayInfoIfAny( std::vector<DisplayInfo>* display_info_list) { if (software_mirroring_enabled_ && mirrored_display_.is_valid()) @@ -858,5 +836,52 @@ bool DisplayManager::UpdateSecondaryDisplayBoundsForLayout( return false; } +// static +void DisplayManager::UpdateDisplayBoundsForLayout( + const DisplayLayout& layout, + const gfx::Display& primary_display, + gfx::Display* secondary_display) { + DCHECK_EQ("0,0", primary_display.bounds().origin().ToString()); + + const gfx::Rect& primary_bounds = primary_display.bounds(); + const gfx::Rect& secondary_bounds = secondary_display->bounds(); + gfx::Point new_secondary_origin = primary_bounds.origin(); + + DisplayLayout::Position position = layout.position; + + // Ignore the offset in case the secondary display doesn't share edges with + // the primary display. + int offset = layout.offset; + if (position == DisplayLayout::TOP || position == DisplayLayout::BOTTOM) { + offset = std::min( + offset, primary_bounds.width() - kMinimumOverlapForInvalidOffset); + offset = std::max( + offset, -secondary_bounds.width() + kMinimumOverlapForInvalidOffset); + } else { + offset = std::min( + offset, primary_bounds.height() - kMinimumOverlapForInvalidOffset); + offset = std::max( + offset, -secondary_bounds.height() + kMinimumOverlapForInvalidOffset); + } + switch (position) { + case DisplayLayout::TOP: + new_secondary_origin.Offset(offset, -secondary_bounds.height()); + break; + case DisplayLayout::RIGHT: + new_secondary_origin.Offset(primary_bounds.width(), offset); + break; + case DisplayLayout::BOTTOM: + new_secondary_origin.Offset(offset, primary_bounds.height()); + break; + case DisplayLayout::LEFT: + new_secondary_origin.Offset(-secondary_bounds.width(), offset); + break; + } + gfx::Insets insets = secondary_display->GetWorkAreaInsets(); + secondary_display->set_bounds( + gfx::Rect(new_secondary_origin, secondary_bounds.size())); + secondary_display->UpdateWorkAreaFromInsets(insets); +} + } // namespace internal } // namespace ash diff --git a/ash/display/display_manager.h b/ash/display/display_manager.h index fb4288e..bfecbdc 100644 --- a/ash/display/display_manager.h +++ b/ash/display/display_manager.h @@ -69,11 +69,12 @@ class ASH_EXPORT DisplayManager // Returns next valid UI scale. static float GetNextUIScale(const DisplayInfo& info, bool up); - // Updates the bounds of |secondary_display| according to |layout|. - static void UpdateDisplayBoundsForLayout( + // Updates the bounds of the display given by |secondary_display_id| + // according to |layout|. + static void UpdateDisplayBoundsForLayoutById( const DisplayLayout& layout, const gfx::Display& primary_display, - gfx::Display* secondary_display); + int64 secondary_display_id); DisplayManager(); virtual ~DisplayManager(); @@ -115,6 +116,9 @@ class ASH_EXPORT DisplayManager const gfx::Display& FindDisplayContainingPoint( const gfx::Point& point_in_screen) const; + // Sets the work area's |insets| to the display given by |display_id|. + bool UpdateWorkAreaOfDisplay(int64 display_id, const gfx::Insets& insets); + // Registers the overscan insets for the display of the specified ID. Note // that the insets size should be specified in DIP size. It also triggers the // display's bounds change. @@ -154,10 +158,9 @@ class ASH_EXPORT DisplayManager // Updates current displays using current |display_info_|. void UpdateDisplays(); - // Obsoleted: Do not use in new code. // Returns the display at |index|. The display at 0 is // no longer considered "primary". - gfx::Display* GetDisplayAt(size_t index); + const gfx::Display& GetDisplayAt(size_t index) const; const gfx::Display* GetPrimaryDisplayCandidate() const; @@ -200,6 +203,9 @@ class ASH_EXPORT DisplayManager void SetSoftwareMirroring(bool enabled); #endif + // Update the bounds of the display given by |display_id|. + bool UpdateDisplayBounds(int64 display_id, + const gfx::Rect& new_bounds); private: FRIEND_TEST_ALL_PREFIXES(ExtendedDesktopTest, ConvertPoint); FRIEND_TEST_ALL_PREFIXES(DisplayManagerTest, TestNativeDisplaysChanged); @@ -210,10 +216,6 @@ private: friend class test::DisplayManagerTestApi; friend class test::SystemGestureEventFilterTest; friend class DisplayManagerTest; - // This is to allow DisplayController to modify the state of - // DisplayManager. TODO(oshima): consider provide separate - // interface to modify the state. - friend class ash::DisplayController; typedef std::vector<gfx::Display> DisplayList; @@ -221,10 +223,7 @@ private: change_display_upon_host_resize_ = value; } - gfx::Display& FindDisplayForId(int64 id); - - // Updates the bounds of the display given by |display_id|. - bool UpdateDisplayBounds(int64 display_id, const gfx::Rect& new_bounds); + gfx::Display* FindDisplayForId(int64 id); // Add the mirror display's display info if the software based // mirroring is in use. @@ -248,6 +247,10 @@ private: bool UpdateSecondaryDisplayBoundsForLayout(DisplayList* display_list, size_t* updated_index) const; + static void UpdateDisplayBoundsForLayout( + const DisplayLayout& layout, + const gfx::Display& primary_display, + gfx::Display* secondary_display); Delegate* delegate_; // not owned. diff --git a/ash/display/display_manager_unittest.cc b/ash/display/display_manager_unittest.cc index e3e460d..68eef1e 100644 --- a/ash/display/display_manager_unittest.cc +++ b/ash/display/display_manager_unittest.cc @@ -85,15 +85,15 @@ class DisplayManagerTest : public test::AshTestBase, } const DisplayInfo& GetDisplayInfoAt(int index) { - return GetDisplayInfo(*display_manager()->GetDisplayAt(index)); + return GetDisplayInfo(display_manager()->GetDisplayAt(index)); } - const gfx::Display& FindDisplayForId(int64 id) { - return display_manager()->FindDisplayForId(id); + const gfx::Display& GetDisplayForId(int64 id) { + return display_manager()->GetDisplayForId(id); } - const DisplayInfo& FindDisplayInfoForId(int64 id) { - return GetDisplayInfo(display_manager()->FindDisplayForId(id)); + const DisplayInfo& GetDisplayInfoForId(int64 id) { + return GetDisplayInfo(display_manager()->GetDisplayForId(id)); } const gfx::Display GetMirroredDisplay() { @@ -136,11 +136,11 @@ TEST_F(DisplayManagerTest, UpdateDisplayTest) { UpdateDisplay("100+0-500x500,0+501-400x400"); EXPECT_EQ(2U, display_manager()->GetNumDisplays()); EXPECT_EQ("0,0 500x500", - display_manager()->GetDisplayAt(0)->bounds().ToString()); + display_manager()->GetDisplayAt(0).bounds().ToString()); EXPECT_EQ("1 1 0", GetCountSummary()); - EXPECT_EQ(display_manager()->GetDisplayAt(0)->id(), changed()[0].id()); - EXPECT_EQ(display_manager()->GetDisplayAt(1)->id(), added()[0].id()); + EXPECT_EQ(display_manager()->GetDisplayAt(0).id(), changed()[0].id()); + EXPECT_EQ(display_manager()->GetDisplayAt(1).id(), added()[0].id()); EXPECT_EQ("0,0 500x500", changed()[0].bounds().ToString()); // Secondary display is on right. EXPECT_EQ("500,0 400x400", added()[0].bounds().ToString()); @@ -156,7 +156,7 @@ TEST_F(DisplayManagerTest, UpdateDisplayTest) { // Change primary. UpdateDisplay("1+1-1000x600"); EXPECT_EQ("1 0 0", GetCountSummary()); - EXPECT_EQ(display_manager()->GetDisplayAt(0)->id(), changed()[0].id()); + EXPECT_EQ(display_manager()->GetDisplayAt(0).id(), changed()[0].id()); EXPECT_EQ("0,0 1000x600", changed()[0].bounds().ToString()); reset(); @@ -164,7 +164,7 @@ TEST_F(DisplayManagerTest, UpdateDisplayTest) { UpdateDisplay("1+1-1000x600,1002+0-600x400"); EXPECT_EQ(2U, display_manager()->GetNumDisplays()); EXPECT_EQ("0 1 0", GetCountSummary()); - EXPECT_EQ(display_manager()->GetDisplayAt(1)->id(), added()[0].id()); + EXPECT_EQ(display_manager()->GetDisplayAt(1).id(), added()[0].id()); // Secondary display is on right. EXPECT_EQ("1000,0 600x400", added()[0].bounds().ToString()); EXPECT_EQ("1002,0 600x400", @@ -175,7 +175,7 @@ TEST_F(DisplayManagerTest, UpdateDisplayTest) { UpdateDisplay("1+1-800x300"); EXPECT_EQ(1U, display_manager()->GetNumDisplays()); EXPECT_EQ("1 0 1", GetCountSummary()); - EXPECT_EQ(display_manager()->GetDisplayAt(0)->id(), changed()[0].id()); + EXPECT_EQ(display_manager()->GetDisplayAt(0).id(), changed()[0].id()); EXPECT_EQ("0,0 800x300", changed()[0].bounds().ToString()); reset(); @@ -187,7 +187,7 @@ TEST_F(DisplayManagerTest, UpdateDisplayTest) { EXPECT_FALSE(root_window_destroyed()); // Display configuration stays the same EXPECT_EQ("0,0 800x300", - display_manager()->GetDisplayAt(0)->bounds().ToString()); + display_manager()->GetDisplayAt(0).bounds().ToString()); reset(); // Connect to display again @@ -210,10 +210,10 @@ TEST_F(DisplayManagerTest, UpdateDisplayTest) { UpdateDisplay("0+0-1000x600,1000+1000-600x400"); EXPECT_EQ(2U, display_manager()->GetNumDisplays()); EXPECT_EQ("0,0 1000x600", - display_manager()->GetDisplayAt(0)->bounds().ToString()); + display_manager()->GetDisplayAt(0).bounds().ToString()); // Secondary display is on right. EXPECT_EQ("1000,0 600x400", - display_manager()->GetDisplayAt(1)->bounds().ToString()); + display_manager()->GetDisplayAt(1).bounds().ToString()); EXPECT_EQ("1000,1000 600x400", GetDisplayInfoAt(1).bounds_in_pixel().ToString()); reset(); @@ -223,9 +223,9 @@ TEST_F(DisplayManagerTest, UpdateDisplayTest) { EXPECT_EQ("2 0 0", GetCountSummary()); reset(); EXPECT_EQ("0,0 800x600", - display_manager()->GetDisplayAt(0)->bounds().ToString()); + display_manager()->GetDisplayAt(0).bounds().ToString()); EXPECT_EQ("800,0 600x400", - display_manager()->GetDisplayAt(1)->bounds().ToString()); + display_manager()->GetDisplayAt(1).bounds().ToString()); } // Test in emulation mode (use_fullscreen_host_window=false) @@ -329,7 +329,7 @@ TEST_F(DisplayManagerTest, OverscanInsetsTest) { // HiDPI but overscan display. The specified insets size should be doubled. UpdateDisplay("0+0-500x500,0+501-400x400*2"); display_manager()->SetOverscanInsets( - display_manager()->GetDisplayAt(1)->id(), gfx::Insets(4, 5, 6, 7)); + display_manager()->GetDisplayAt(1).id(), gfx::Insets(4, 5, 6, 7)); EXPECT_EQ("0,0 500x500", GetDisplayInfoAt(0).bounds_in_pixel().ToString()); updated_display_info2 = GetDisplayInfoAt(1); @@ -364,7 +364,7 @@ TEST_F(DisplayManagerTest, ZeroOverscanInsets) { // Make sure the display change events is emitted for overscan inset changes. UpdateDisplay("0+0-500x500,0+501-400x400"); ASSERT_EQ(2u, display_manager()->GetNumDisplays()); - int64 display2_id = display_manager()->GetDisplayAt(1)->id(); + int64 display2_id = display_manager()->GetDisplayAt(1).id(); reset(); display_manager()->SetOverscanInsets(display2_id, gfx::Insets(0, 0, 0, 0)); @@ -420,14 +420,14 @@ TEST_F(DisplayManagerTest, TestNativeDisplaysChanged) { EXPECT_EQ(1U, display_manager()->GetNumDisplays()); EXPECT_EQ(1U, display_manager()->num_connected_displays()); std::string default_bounds = - display_manager()->GetDisplayAt(0)->bounds().ToString(); + display_manager()->GetDisplayAt(0).bounds().ToString(); std::vector<DisplayInfo> display_info_list; // Primary disconnected. display_manager()->OnNativeDisplaysChanged(display_info_list); EXPECT_EQ(1U, display_manager()->GetNumDisplays()); EXPECT_EQ(default_bounds, - display_manager()->GetDisplayAt(0)->bounds().ToString()); + display_manager()->GetDisplayAt(0).bounds().ToString()); EXPECT_EQ(1U, display_manager()->num_connected_displays()); EXPECT_FALSE(display_manager()->mirrored_display().is_valid()); @@ -439,9 +439,9 @@ TEST_F(DisplayManagerTest, TestNativeDisplaysChanged) { display_manager()->OnNativeDisplaysChanged(display_info_list); EXPECT_EQ(1U, display_manager()->GetNumDisplays()); - EXPECT_EQ(invalid_id, FindDisplayForId(internal_display_id).id()); + EXPECT_EQ(invalid_id, GetDisplayForId(internal_display_id).id()); EXPECT_EQ("1,1 100x100", - FindDisplayInfoForId(external_id).bounds_in_pixel().ToString()); + GetDisplayInfoForId(external_id).bounds_in_pixel().ToString()); EXPECT_EQ(1U, display_manager()->num_connected_displays()); EXPECT_FALSE(display_manager()->mirrored_display().is_valid()); EXPECT_EQ(external_id, Shell::GetScreen()->GetPrimaryDisplay().id()); @@ -458,9 +458,9 @@ TEST_F(DisplayManagerTest, TestNativeDisplaysChanged) { // This combinatino is new, so internal display becomes primary. EXPECT_EQ("0,0 500x500", - FindDisplayForId(internal_display_id).bounds().ToString()); + GetDisplayForId(internal_display_id).bounds().ToString()); EXPECT_EQ("1,1 100x100", - FindDisplayInfoForId(10).bounds_in_pixel().ToString()); + GetDisplayInfoForId(10).bounds_in_pixel().ToString()); EXPECT_EQ(2U, display_manager()->num_connected_displays()); EXPECT_FALSE(display_manager()->mirrored_display().is_valid()); EXPECT_EQ(ToDisplayName(internal_display_id), @@ -471,9 +471,9 @@ TEST_F(DisplayManagerTest, TestNativeDisplaysChanged) { display_manager()->OnNativeDisplaysChanged(display_info_list); EXPECT_EQ(2U, display_manager()->GetNumDisplays()); EXPECT_EQ("0,0 500x500", - FindDisplayForId(internal_display_id).bounds().ToString()); + GetDisplayForId(internal_display_id).bounds().ToString()); EXPECT_EQ("1,1 100x100", - FindDisplayInfoForId(10).bounds_in_pixel().ToString()); + GetDisplayInfoForId(10).bounds_in_pixel().ToString()); EXPECT_EQ(2U, display_manager()->num_connected_displays()); EXPECT_FALSE(display_manager()->mirrored_display().is_valid()); EXPECT_EQ(ToDisplayName(internal_display_id), @@ -484,7 +484,7 @@ TEST_F(DisplayManagerTest, TestNativeDisplaysChanged) { display_manager()->OnNativeDisplaysChanged(display_info_list); EXPECT_EQ(1U, display_manager()->GetNumDisplays()); EXPECT_EQ("0,0 500x500", - FindDisplayForId(internal_display_id).bounds().ToString()); + GetDisplayForId(internal_display_id).bounds().ToString()); EXPECT_EQ(1U, display_manager()->num_connected_displays()); EXPECT_FALSE(display_manager()->mirrored_display().is_valid()); @@ -518,7 +518,7 @@ TEST_F(DisplayManagerTest, TestNativeDisplaysChanged) { display_manager()->OnNativeDisplaysChanged(display_info_list); EXPECT_EQ(1U, display_manager()->GetNumDisplays()); EXPECT_EQ("0,0 500x500", - FindDisplayForId(internal_display_id).bounds().ToString()); + GetDisplayForId(internal_display_id).bounds().ToString()); EXPECT_EQ(2U, display_manager()->num_connected_displays()); EXPECT_EQ(11U, display_manager()->mirrored_display().id()); EXPECT_TRUE(display_manager()->IsMirrored()); @@ -541,18 +541,18 @@ TEST_F(DisplayManagerTest, TestNativeDisplaysChanged) { EXPECT_EQ(2U, display_manager()->num_connected_displays()); EXPECT_FALSE(display_manager()->IsMirrored()); EXPECT_EQ("0,0 500x500", - FindDisplayForId(internal_display_id).bounds().ToString()); + GetDisplayForId(internal_display_id).bounds().ToString()); EXPECT_EQ("500,0 100x100", - FindDisplayForId(10).bounds().ToString()); + GetDisplayForId(10).bounds().ToString()); // Turn off internal display_info_list.clear(); display_info_list.push_back(external_display_info); display_manager()->OnNativeDisplaysChanged(display_info_list); EXPECT_EQ(1U, display_manager()->GetNumDisplays()); - EXPECT_EQ(invalid_id, FindDisplayForId(internal_display_id).id()); + EXPECT_EQ(invalid_id, GetDisplayForId(internal_display_id).id()); EXPECT_EQ("1,1 100x100", - FindDisplayInfoForId(external_id).bounds_in_pixel().ToString()); + GetDisplayInfoForId(external_id).bounds_in_pixel().ToString()); EXPECT_EQ(1U, display_manager()->num_connected_displays()); EXPECT_FALSE(display_manager()->mirrored_display().is_valid()); @@ -563,7 +563,7 @@ TEST_F(DisplayManagerTest, TestNativeDisplaysChanged) { EXPECT_EQ(1U, display_manager()->GetNumDisplays()); EXPECT_EQ( "0,0 500x500", - FindDisplayInfoForId(internal_display_id).bounds_in_pixel().ToString()); + GetDisplayInfoForId(internal_display_id).bounds_in_pixel().ToString()); EXPECT_EQ(1U, display_manager()->num_connected_displays()); EXPECT_FALSE(display_manager()->mirrored_display().is_valid()); } @@ -593,7 +593,7 @@ TEST_F(DisplayManagerTest, MAYBE_TestNativeDisplaysChangedNoInternal) { display_manager()->OnNativeDisplaysChanged(display_info_list); EXPECT_EQ(1U, display_manager()->GetNumDisplays()); EXPECT_EQ("1,1 100x100", - FindDisplayInfoForId(10).bounds_in_pixel().ToString()); + GetDisplayInfoForId(10).bounds_in_pixel().ToString()); EXPECT_EQ("100x100", ash::Shell::GetPrimaryRootWindow()->GetHostSize().ToString()); } @@ -700,21 +700,21 @@ TEST_F(DisplayManagerTest, NativeDisplaysChangedAfterPrimaryChange) { display_manager()->OnNativeDisplaysChanged(display_info_list); EXPECT_EQ(2U, display_manager()->GetNumDisplays()); EXPECT_EQ("0,0 500x500", - FindDisplayForId(internal_display_id).bounds().ToString()); - EXPECT_EQ("500,0 100x100", FindDisplayForId(10).bounds().ToString()); + GetDisplayForId(internal_display_id).bounds().ToString()); + EXPECT_EQ("500,0 100x100", GetDisplayForId(10).bounds().ToString()); ash::Shell::GetInstance()->display_controller()->SetPrimaryDisplay( - FindDisplayForId(secondary_display_info.id())); + GetDisplayForId(secondary_display_info.id())); EXPECT_EQ("-500,0 500x500", - FindDisplayForId(internal_display_id).bounds().ToString()); - EXPECT_EQ("0,0 100x100", FindDisplayForId(10).bounds().ToString()); + GetDisplayForId(internal_display_id).bounds().ToString()); + EXPECT_EQ("0,0 100x100", GetDisplayForId(10).bounds().ToString()); // OnNativeDisplaysChanged may change the display bounds. Here makes sure // nothing changed if the exactly same displays are specified. display_manager()->OnNativeDisplaysChanged(display_info_list); EXPECT_EQ("-500,0 500x500", - FindDisplayForId(internal_display_id).bounds().ToString()); - EXPECT_EQ("0,0 100x100", FindDisplayForId(10).bounds().ToString()); + GetDisplayForId(internal_display_id).bounds().ToString()); + EXPECT_EQ("0,0 100x100", GetDisplayForId(10).bounds().ToString()); } TEST_F(DisplayManagerTest, Rotate) { diff --git a/ash/display/screen_position_controller_unittest.cc b/ash/display/screen_position_controller_unittest.cc index 76123b2..3b62f52 100644 --- a/ash/display/screen_position_controller_unittest.cc +++ b/ash/display/screen_position_controller_unittest.cc @@ -5,6 +5,7 @@ #include "ash/display/screen_position_controller.h" #include "ash/display/display_controller.h" +#include "ash/screen_ash.h" #include "ash/shell.h" #include "ash/test/ash_test_base.h" #include "ash/test/shell_test_api.h" @@ -177,11 +178,9 @@ TEST_F(ScreenPositionControllerTest, MAYBE_ConvertHostPointToScreenHiDPI) { EXPECT_EQ("100,500", root_windows[1]->GetHostOrigin().ToString()); EXPECT_EQ("200x200", root_windows[1]->GetHostSize().ToString()); - ash::DisplayController* display_controller = - Shell::GetInstance()->display_controller(); // Put |window_| to the primary 2x display. window_->SetBoundsInScreen(gfx::Rect(20, 20, 50, 50), - display_controller->GetPrimaryDisplay()); + Shell::GetScreen()->GetPrimaryDisplay()); // (30, 30) means the host coordinate, so the point is still on the primary // root window. Since it's 2x, the specified native point was halved. EXPECT_EQ("15,15", ConvertHostPointToScreen(30, 30)); @@ -205,11 +204,9 @@ TEST_F(ScreenPositionControllerTest, MAYBE_ConvertHostPointToScreenRotate) { // 1st display is rotated 90 clockise, and 2nd display is rotated // 270 clockwise. UpdateDisplay("100+100-200x200/r,100+500-200x200/l"); - ash::DisplayController* display_controller = - Shell::GetInstance()->display_controller(); // Put |window_| to the 1st. window_->SetBoundsInScreen(gfx::Rect(20, 20, 50, 50), - display_controller->GetPrimaryDisplay()); + Shell::GetScreen()->GetPrimaryDisplay()); // The point is on the 1st host. EXPECT_EQ("70,149", ConvertHostPointToScreen(50, 70)); @@ -221,7 +218,7 @@ TEST_F(ScreenPositionControllerTest, MAYBE_ConvertHostPointToScreenRotate) { // Move |window_| to the 2nd. window_->SetBoundsInScreen(gfx::Rect(300, 20, 50, 50), - *display_controller->GetSecondaryDisplay()); + ScreenAsh::GetSecondaryDisplay()); Shell::RootWindowList root_windows = Shell::GetInstance()->GetAllRootWindows(); EXPECT_EQ(root_windows[1], window_->GetRootWindow()); @@ -239,11 +236,9 @@ TEST_F(ScreenPositionControllerTest, MAYBE_ConvertHostPointToScreenRotate) { TEST_F(ScreenPositionControllerTest, MAYBE_ConvertHostPointToScreenUIScale) { // 1st display is 2x density with 1.5 UI scale. UpdateDisplay("100+100-200x200*2@1.5,100+500-200x200"); - ash::DisplayController* display_controller = - Shell::GetInstance()->display_controller(); // Put |window_| to the 1st. window_->SetBoundsInScreen(gfx::Rect(20, 20, 50, 50), - display_controller->GetPrimaryDisplay()); + Shell::GetScreen()->GetPrimaryDisplay()); // The point is on the 1st host. EXPECT_EQ("45,45", ConvertHostPointToScreen(60, 60)); @@ -255,7 +250,7 @@ TEST_F(ScreenPositionControllerTest, MAYBE_ConvertHostPointToScreenUIScale) { // Move |window_| to the 2nd. window_->SetBoundsInScreen(gfx::Rect(300, 20, 50, 50), - *display_controller->GetSecondaryDisplay()); + ScreenAsh::GetSecondaryDisplay()); Shell::RootWindowList root_windows = Shell::GetInstance()->GetAllRootWindows(); EXPECT_EQ(root_windows[1], window_->GetRootWindow()); diff --git a/ash/screen_ash.cc b/ash/screen_ash.cc index d47278d..f2217d7 100644 --- a/ash/screen_ash.cc +++ b/ash/screen_ash.cc @@ -84,7 +84,11 @@ gfx::Rect ScreenAsh::ConvertRectFromScreen(aura::Window* window, // static const gfx::Display& ScreenAsh::GetSecondaryDisplay() { - return *(Shell::GetInstance()->display_controller()->GetSecondaryDisplay()); + internal::DisplayManager* display_manager = GetDisplayManager(); + CHECK_EQ(2U, display_manager->GetNumDisplays()); + return display_manager->GetDisplayAt(0).id() == + DisplayController::GetPrimaryDisplay().id() ? + display_manager->GetDisplayAt(1) : display_manager->GetDisplayAt(0); } // static diff --git a/ash/system/chromeos/tray_display.cc b/ash/system/chromeos/tray_display.cc index fd62f7a..a49c412 100644 --- a/ash/system/chromeos/tray_display.cc +++ b/ash/system/chromeos/tray_display.cc @@ -93,7 +93,7 @@ base::string16 GetAllDisplayInfo() { } for (size_t i = 0; i < display_manager->GetNumDisplays(); ++i) { - int64 id = display_manager->GetDisplayAt(i)->id(); + int64 id = display_manager->GetDisplayAt(i).id(); if (id == internal_id) continue; lines.push_back(GetDisplayInfoLine(id)); @@ -115,7 +115,7 @@ base::string16 GetExternalDisplayName() { if (external_id == gfx::Display::kInvalidDisplayID) { int64 internal_display_id = gfx::Display::InternalDisplayId(); for (size_t i = 0; i < display_manager->GetNumDisplays(); ++i) { - int64 id = display_manager->GetDisplayAt(i)->id(); + int64 id = display_manager->GetDisplayAt(i).id(); if (id != internal_display_id) { external_id = id; break; @@ -361,7 +361,7 @@ base::string16 TrayDisplay::GetDisplayMessageForNotification() { DisplayInfoMap old_info; old_info.swap(display_info_); for (size_t i = 0; i < display_manager->GetNumDisplays(); ++i) { - int64 id = display_manager->GetDisplayAt(i)->id(); + int64 id = display_manager->GetDisplayAt(i).id(); display_info_[id] = display_manager->GetDisplayInfo(id); } diff --git a/ash/test/display_manager_test_api.cc b/ash/test/display_manager_test_api.cc index 2b0957a..d1be0f6 100644 --- a/ash/test/display_manager_test_api.cc +++ b/ash/test/display_manager_test_api.cc @@ -27,11 +27,12 @@ std::vector<DisplayInfo> CreateDisplayInfoListFromString( std::vector<DisplayInfo> display_info_list; std::vector<std::string> parts; base::SplitString(specs, ',', &parts); - int index = 0; + size_t index = 0; for (std::vector<std::string>::const_iterator iter = parts.begin(); iter != parts.end(); ++iter, ++index) { - gfx::Display* display = display_manager->GetDisplayAt(index); - int64 id = display ? display->id() : gfx::Display::kInvalidDisplayID; + int64 id = index < display_manager->GetNumDisplays() ? + display_manager->GetDisplayAt(index).id() : + gfx::Display::kInvalidDisplayID; display_info_list.push_back( DisplayInfo::CreateFromSpecWithID(*iter, id)); } diff --git a/ash/touch/touch_observer_hud_unittest.cc b/ash/touch/touch_observer_hud_unittest.cc index 3c60543..b72300e 100644 --- a/ash/touch/touch_observer_hud_unittest.cc +++ b/ash/touch/touch_observer_hud_unittest.cc @@ -7,6 +7,7 @@ #include "ash/ash_switches.h" #include "ash/display/display_manager.h" #include "ash/root_window_controller.h" +#include "ash/screen_ash.h" #include "ash/shell.h" #include "ash/test/ash_test_base.h" #include "ash/test/display_manager_test_api.h" @@ -49,12 +50,12 @@ class TouchHudTest : public test::AshTestBase { CreateDisplayInfo(mirrored_display_id_, gfx::Rect(0, 0, 100, 100)); } - const gfx::Display& GetPrimaryDisplay() { - return GetDisplayController()->GetPrimaryDisplay(); + gfx::Display GetPrimaryDisplay() { + return Shell::GetScreen()->GetPrimaryDisplay(); } const gfx::Display& GetSecondaryDisplay() { - return *GetDisplayController()->GetSecondaryDisplay(); + return ScreenAsh::GetSecondaryDisplay(); } void SetupSingleDisplay() { diff --git a/chrome/browser/chromeos/display/display_preferences.cc b/chrome/browser/chromeos/display/display_preferences.cc index 2650909..a6a6b89 100644 --- a/chrome/browser/chromeos/display/display_preferences.cc +++ b/chrome/browser/chromeos/display/display_preferences.cc @@ -182,7 +182,7 @@ void StoreCurrentDisplayProperties() { size_t num = display_manager->GetNumDisplays(); for (size_t i = 0; i < num; ++i) { - int64 id = display_manager->GetDisplayAt(i)->id(); + int64 id = display_manager->GetDisplayAt(i).id(); ash::internal::DisplayInfo info = display_manager->GetDisplayInfo(id); scoped_ptr<base::DictionaryValue> property_value( diff --git a/chrome/browser/extensions/api/system_info_display/display_info_provider_chromeos.cc b/chrome/browser/extensions/api/system_info_display/display_info_provider_chromeos.cc index e680bc2..caf95d0 100644 --- a/chrome/browser/extensions/api/system_info_display/display_info_provider_chromeos.cc +++ b/chrome/browser/extensions/api/system_info_display/display_info_provider_chromeos.cc @@ -437,7 +437,7 @@ bool DisplayInfoProvider::QueryInfo() { int64 primary_id = ash::Shell::GetScreen()->GetPrimaryDisplay().id(); for (size_t i = 0; i < display_manager->GetNumDisplays(); ++i) { - AddInfoForDisplay(*display_manager->GetDisplayAt(i), display_manager, + AddInfoForDisplay(display_manager->GetDisplayAt(i), display_manager, primary_id, &info_); } diff --git a/chrome/browser/extensions/api/system_info_display/display_info_provider_chromeos_unittest.cc b/chrome/browser/extensions/api/system_info_display/display_info_provider_chromeos_unittest.cc index d157a26..7b09b17 100644 --- a/chrome/browser/extensions/api/system_info_display/display_info_provider_chromeos_unittest.cc +++ b/chrome/browser/extensions/api/system_info_display/display_info_provider_chromeos_unittest.cc @@ -6,6 +6,7 @@ #include "ash/display/display_controller.h" #include "ash/display/display_manager.h" +#include "ash/screen_ash.h" #include "ash/shell.h" #include "ash/test/ash_test_base.h" #include "ash/test/display_manager_test_api.h" @@ -331,337 +332,337 @@ TEST_F(DisplayInfoProviderChromeosTest, GetBounds) { TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginLeftExact) { UpdateDisplay("1200x600,520x400"); - const gfx::Display* secondary = GetDisplayController()->GetSecondaryDisplay(); + const gfx::Display& secondary = ash::ScreenAsh::GetSecondaryDisplay(); api::system_info_display::DisplayProperties info; info.bounds_origin_x.reset(new int(-520)); info.bounds_origin_y.reset(new int(50)); bool success = false; std::string error; - CallSetDisplayUnitInfo(base::Int64ToString(secondary->id()), info, + CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, &success, &error); ASSERT_TRUE(success); ASSERT_TRUE(error.empty()); - EXPECT_EQ("-520,50 520x400", secondary->bounds().ToString()); + EXPECT_EQ("-520,50 520x400", secondary.bounds().ToString()); } TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginRightExact) { UpdateDisplay("1200x600,520x400"); - const gfx::Display* secondary = GetDisplayController()->GetSecondaryDisplay(); + const gfx::Display& secondary = ash::ScreenAsh::GetSecondaryDisplay(); api::system_info_display::DisplayProperties info; info.bounds_origin_x.reset(new int(1200)); info.bounds_origin_y.reset(new int(100)); bool success = false; std::string error; - CallSetDisplayUnitInfo(base::Int64ToString(secondary->id()), info, + CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, &success, &error); ASSERT_TRUE(success); ASSERT_TRUE(error.empty()); - EXPECT_EQ("1200,100 520x400", secondary->bounds().ToString()); + EXPECT_EQ("1200,100 520x400", secondary.bounds().ToString()); } TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginTopExact) { UpdateDisplay("1200x600,520x400"); - const gfx::Display* secondary = GetDisplayController()->GetSecondaryDisplay(); + const gfx::Display& secondary = ash::ScreenAsh::GetSecondaryDisplay(); api::system_info_display::DisplayProperties info; info.bounds_origin_x.reset(new int(1100)); info.bounds_origin_y.reset(new int(-400)); bool success = false; std::string error; - CallSetDisplayUnitInfo(base::Int64ToString(secondary->id()), info, + CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, &success, &error); ASSERT_TRUE(success); ASSERT_TRUE(error.empty()); - EXPECT_EQ("1100,-400 520x400", secondary->bounds().ToString()); + EXPECT_EQ("1100,-400 520x400", secondary.bounds().ToString()); } TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginBottomExact) { UpdateDisplay("1200x600,520x400"); - const gfx::Display* secondary = GetDisplayController()->GetSecondaryDisplay(); + const gfx::Display& secondary = ash::ScreenAsh::GetSecondaryDisplay(); api::system_info_display::DisplayProperties info; info.bounds_origin_x.reset(new int(-350)); info.bounds_origin_y.reset(new int(600)); bool success = false; std::string error; - CallSetDisplayUnitInfo(base::Int64ToString(secondary->id()), info, + CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, &success, &error); ASSERT_TRUE(success); ASSERT_TRUE(error.empty()); - EXPECT_EQ("-350,600 520x400", secondary->bounds().ToString()); + EXPECT_EQ("-350,600 520x400", secondary.bounds().ToString()); } TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginSameCenter) { UpdateDisplay("1200x600,520x400"); - const gfx::Display* secondary = GetDisplayController()->GetSecondaryDisplay(); + const gfx::Display& secondary = ash::ScreenAsh::GetSecondaryDisplay(); api::system_info_display::DisplayProperties info; info.bounds_origin_x.reset(new int(340)); info.bounds_origin_y.reset(new int(100)); bool success = false; std::string error; - CallSetDisplayUnitInfo(base::Int64ToString(secondary->id()), info, + CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, &success, &error); ASSERT_TRUE(success); ASSERT_TRUE(error.empty()); - EXPECT_EQ("1200,100 520x400", secondary->bounds().ToString()); + EXPECT_EQ("1200,100 520x400", secondary.bounds().ToString()); } TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginLeftOutside) { UpdateDisplay("1200x600,520x400"); - const gfx::Display* secondary = GetDisplayController()->GetSecondaryDisplay(); + const gfx::Display& secondary = ash::ScreenAsh::GetSecondaryDisplay(); api::system_info_display::DisplayProperties info; info.bounds_origin_x.reset(new int(-1040)); info.bounds_origin_y.reset(new int(100)); bool success = false; std::string error; - CallSetDisplayUnitInfo(base::Int64ToString(secondary->id()), info, + CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, &success, &error); ASSERT_TRUE(success); ASSERT_TRUE(error.empty()); - EXPECT_EQ("-520,100 520x400", secondary->bounds().ToString()); + EXPECT_EQ("-520,100 520x400", secondary.bounds().ToString()); } TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginTopOutside) { UpdateDisplay("1200x600,520x400"); - const gfx::Display* secondary = GetDisplayController()->GetSecondaryDisplay(); + const gfx::Display& secondary = ash::ScreenAsh::GetSecondaryDisplay(); api::system_info_display::DisplayProperties info; info.bounds_origin_x.reset(new int(-360)); info.bounds_origin_y.reset(new int(-301)); bool success = false; std::string error; - CallSetDisplayUnitInfo(base::Int64ToString(secondary->id()), info, + CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, &success, &error); ASSERT_TRUE(success); ASSERT_TRUE(error.empty()); - EXPECT_EQ("-360,-400 520x400", secondary->bounds().ToString()); + EXPECT_EQ("-360,-400 520x400", secondary.bounds().ToString()); } TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginLeftButSharesBottomSide) { UpdateDisplay("1200x600,1000x100"); - const gfx::Display* secondary = GetDisplayController()->GetSecondaryDisplay(); + const gfx::Display& secondary = ash::ScreenAsh::GetSecondaryDisplay(); api::system_info_display::DisplayProperties info; info.bounds_origin_x.reset(new int(-650)); info.bounds_origin_y.reset(new int(700)); bool success = false; std::string error; - CallSetDisplayUnitInfo(base::Int64ToString(secondary->id()), info, + CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, &success, &error); ASSERT_TRUE(success); ASSERT_TRUE(error.empty()); - EXPECT_EQ("-650,600 1000x100", secondary->bounds().ToString()); + EXPECT_EQ("-650,600 1000x100", secondary.bounds().ToString()); } TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginRightButSharesTopSide) { UpdateDisplay("1200x600,1000x100"); - const gfx::Display* secondary = GetDisplayController()->GetSecondaryDisplay(); + const gfx::Display& secondary = ash::ScreenAsh::GetSecondaryDisplay(); api::system_info_display::DisplayProperties info; info.bounds_origin_x.reset(new int(850)); info.bounds_origin_y.reset(new int(-150)); bool success = false; std::string error; - CallSetDisplayUnitInfo(base::Int64ToString(secondary->id()), info, + CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, &success, &error); ASSERT_TRUE(success); ASSERT_TRUE(error.empty()); - EXPECT_EQ("850,-100 1000x100", secondary->bounds().ToString()); + EXPECT_EQ("850,-100 1000x100", secondary.bounds().ToString()); } TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginTopButSharesLeftSide) { UpdateDisplay("1200x600,1000x100/l"); - const gfx::Display* secondary = GetDisplayController()->GetSecondaryDisplay(); + const gfx::Display& secondary = ash::ScreenAsh::GetSecondaryDisplay(); api::system_info_display::DisplayProperties info; info.bounds_origin_x.reset(new int(-150)); info.bounds_origin_y.reset(new int(-650)); bool success = false; std::string error; - CallSetDisplayUnitInfo(base::Int64ToString(secondary->id()), info, + CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, &success, &error); ASSERT_TRUE(success); ASSERT_TRUE(error.empty()); - EXPECT_EQ("-100,-650 100x1000", secondary->bounds().ToString()); + EXPECT_EQ("-100,-650 100x1000", secondary.bounds().ToString()); } TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginBottomButSharesRightSide) { UpdateDisplay("1200x600,1000x100/l"); - const gfx::Display* secondary = GetDisplayController()->GetSecondaryDisplay(); + const gfx::Display& secondary = ash::ScreenAsh::GetSecondaryDisplay(); api::system_info_display::DisplayProperties info; info.bounds_origin_x.reset(new int(1350)); info.bounds_origin_y.reset(new int(450)); bool success = false; std::string error; - CallSetDisplayUnitInfo(base::Int64ToString(secondary->id()), info, + CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, &success, &error); ASSERT_TRUE(success); ASSERT_TRUE(error.empty()); - EXPECT_EQ("1200,450 100x1000", secondary->bounds().ToString()); + EXPECT_EQ("1200,450 100x1000", secondary.bounds().ToString()); } TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginPrimaryHiDPI) { UpdateDisplay("1200x600*2,500x500"); - const gfx::Display* secondary = GetDisplayController()->GetSecondaryDisplay(); + const gfx::Display& secondary = ash::ScreenAsh::GetSecondaryDisplay(); api::system_info_display::DisplayProperties info; info.bounds_origin_x.reset(new int(250)); info.bounds_origin_y.reset(new int(-100)); bool success = false; std::string error; - CallSetDisplayUnitInfo(base::Int64ToString(secondary->id()), info, + CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, &success, &error); ASSERT_TRUE(success); ASSERT_TRUE(error.empty()); - EXPECT_EQ("600,-100 500x500", secondary->bounds().ToString()); + EXPECT_EQ("600,-100 500x500", secondary.bounds().ToString()); } TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginSecondaryHiDPI) { UpdateDisplay("1200x600,600x1000*2"); - const gfx::Display* secondary = GetDisplayController()->GetSecondaryDisplay(); + const gfx::Display& secondary = ash::ScreenAsh::GetSecondaryDisplay(); api::system_info_display::DisplayProperties info; info.bounds_origin_x.reset(new int(450)); info.bounds_origin_y.reset(new int(-100)); bool success = false; std::string error; - CallSetDisplayUnitInfo(base::Int64ToString(secondary->id()), info, + CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, &success, &error); ASSERT_TRUE(success); ASSERT_TRUE(error.empty()); - EXPECT_EQ("450,-500 300x500", secondary->bounds().ToString()); + EXPECT_EQ("450,-500 300x500", secondary.bounds().ToString()); } TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginOutOfBounds) { UpdateDisplay("1200x600,600x1000*2"); - const gfx::Display* secondary = GetDisplayController()->GetSecondaryDisplay(); + const gfx::Display& secondary = ash::ScreenAsh::GetSecondaryDisplay(); api::system_info_display::DisplayProperties info; info.bounds_origin_x.reset(new int(0x200001)); info.bounds_origin_y.reset(new int(-100)); bool success = false; std::string error; - CallSetDisplayUnitInfo(base::Int64ToString(secondary->id()), info, + CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, &success, &error); ASSERT_FALSE(success); ASSERT_EQ("Bounds origin x out of bounds.", error); - EXPECT_EQ("1200,0 300x500", secondary->bounds().ToString()); + EXPECT_EQ("1200,0 300x500", secondary.bounds().ToString()); } TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginOutOfBoundsNegative) { UpdateDisplay("1200x600,600x1000*2"); - const gfx::Display* secondary = GetDisplayController()->GetSecondaryDisplay(); + const gfx::Display& secondary = ash::ScreenAsh::GetSecondaryDisplay(); api::system_info_display::DisplayProperties info; info.bounds_origin_x.reset(new int(300)); info.bounds_origin_y.reset(new int(-0x200001)); bool success = false; std::string error; - CallSetDisplayUnitInfo(base::Int64ToString(secondary->id()), info, + CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, &success, &error); ASSERT_FALSE(success); ASSERT_EQ("Bounds origin y out of bounds.", error); - EXPECT_EQ("1200,0 300x500", secondary->bounds().ToString()); + EXPECT_EQ("1200,0 300x500", secondary.bounds().ToString()); } TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginMaxValues) { UpdateDisplay("1200x4600,600x1000*2"); - const gfx::Display* secondary = GetDisplayController()->GetSecondaryDisplay(); + const gfx::Display& secondary = ash::ScreenAsh::GetSecondaryDisplay(); api::system_info_display::DisplayProperties info; info.bounds_origin_x.reset(new int(200000)); info.bounds_origin_y.reset(new int(10)); bool success = false; std::string error; - CallSetDisplayUnitInfo(base::Int64ToString(secondary->id()), info, + CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, &success, &error); ASSERT_TRUE(success); EXPECT_TRUE(error.empty()); - EXPECT_EQ("1200,10 300x500", secondary->bounds().ToString()); + EXPECT_EQ("1200,10 300x500", secondary.bounds().ToString()); } TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginOnPrimary) { UpdateDisplay("1200x600,600x1000*2"); - const gfx::Display* secondary = GetDisplayController()->GetSecondaryDisplay(); + const gfx::Display& secondary = ash::ScreenAsh::GetSecondaryDisplay(); api::system_info_display::DisplayProperties info; info.bounds_origin_x.reset(new int(300)); info.is_primary.reset(new bool(true)); bool success = false; std::string error; - CallSetDisplayUnitInfo(base::Int64ToString(secondary->id()), info, + CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, &success, &error); ASSERT_FALSE(success); ASSERT_EQ("Bounds origin not allowed for the primary display.", error); - EXPECT_EQ("1200,0 300x500", secondary->bounds().ToString()); + EXPECT_EQ("1200,0 300x500", secondary.bounds().ToString()); // The operation failed because the primary property would be set before // setting bounds. The primary display shouldn't have been changed, though. - EXPECT_NE(ash::DisplayController::GetPrimaryDisplay().id(), secondary->id()); + EXPECT_NE(ash::DisplayController::GetPrimaryDisplay().id(), secondary.id()); } TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginWithMirroring) { UpdateDisplay("1200x600,600x1000*2"); - const gfx::Display* secondary = GetDisplayController()->GetSecondaryDisplay(); + const gfx::Display& secondary = ash::ScreenAsh::GetSecondaryDisplay(); const gfx::Display& primary = GetDisplayController()->GetPrimaryDisplay(); api::system_info_display::DisplayProperties info; @@ -671,7 +672,7 @@ TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginWithMirroring) { bool success = false; std::string error; - CallSetDisplayUnitInfo(base::Int64ToString(secondary->id()), info, + CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, &success, &error); ASSERT_FALSE(success); @@ -682,66 +683,66 @@ TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginWithMirroring) { TEST_F(DisplayInfoProviderChromeosTest, SetRotation) { UpdateDisplay("1200x600,600x1000*2"); - const gfx::Display* secondary = GetDisplayController()->GetSecondaryDisplay(); + const gfx::Display& secondary = ash::ScreenAsh::GetSecondaryDisplay(); api::system_info_display::DisplayProperties info; info.rotation.reset(new int(90)); bool success = false; std::string error; - CallSetDisplayUnitInfo(base::Int64ToString(secondary->id()), info, + CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, &success, &error); ASSERT_TRUE(success); EXPECT_TRUE(error.empty()); - EXPECT_EQ("1200,0 500x300", secondary->bounds().ToString()); - EXPECT_EQ(gfx::Display::ROTATE_90, secondary->rotation()); + EXPECT_EQ("1200,0 500x300", secondary.bounds().ToString()); + EXPECT_EQ(gfx::Display::ROTATE_90, secondary.rotation()); info.rotation.reset(new int(270)); - CallSetDisplayUnitInfo(base::Int64ToString(secondary->id()), info, + CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, &success, &error); ASSERT_TRUE(success); EXPECT_TRUE(error.empty()); - EXPECT_EQ("1200,0 500x300", secondary->bounds().ToString()); - EXPECT_EQ(gfx::Display::ROTATE_270, secondary->rotation()); + EXPECT_EQ("1200,0 500x300", secondary.bounds().ToString()); + EXPECT_EQ(gfx::Display::ROTATE_270, secondary.rotation()); info.rotation.reset(new int(180)); // Switch primary display. info.is_primary.reset(new bool(true)); - CallSetDisplayUnitInfo(base::Int64ToString(secondary->id()), info, + CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, &success, &error); ASSERT_TRUE(success); EXPECT_TRUE(error.empty()); - EXPECT_EQ("0,0 300x500", secondary->bounds().ToString()); - EXPECT_EQ(gfx::Display::ROTATE_180, secondary->rotation()); - EXPECT_EQ(ash::DisplayController::GetPrimaryDisplay().id(), secondary->id()); + EXPECT_EQ("0,0 300x500", secondary.bounds().ToString()); + EXPECT_EQ(gfx::Display::ROTATE_180, secondary.rotation()); + EXPECT_EQ(ash::DisplayController::GetPrimaryDisplay().id(), secondary.id()); info.rotation.reset(new int(0)); - CallSetDisplayUnitInfo(base::Int64ToString(secondary->id()), info, + CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, &success, &error); ASSERT_TRUE(success); EXPECT_TRUE(error.empty()); - EXPECT_EQ("0,0 300x500", secondary->bounds().ToString()); - EXPECT_EQ(gfx::Display::ROTATE_0, secondary->rotation()); - EXPECT_EQ(ash::DisplayController::GetPrimaryDisplay().id(), secondary->id()); + EXPECT_EQ("0,0 300x500", secondary.bounds().ToString()); + EXPECT_EQ(gfx::Display::ROTATE_0, secondary.rotation()); + EXPECT_EQ(ash::DisplayController::GetPrimaryDisplay().id(), secondary.id()); } TEST_F(DisplayInfoProviderChromeosTest, SetInvalidRotation) { UpdateDisplay("1200x600,600x1000*2"); - const gfx::Display* secondary = GetDisplayController()->GetSecondaryDisplay(); + const gfx::Display& secondary = ash::ScreenAsh::GetSecondaryDisplay(); api::system_info_display::DisplayProperties info; info.rotation.reset(new int(91)); bool success = false; std::string error; - CallSetDisplayUnitInfo(base::Int64ToString(secondary->id()), info, + CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, &success, &error); ASSERT_FALSE(success); @@ -751,70 +752,70 @@ TEST_F(DisplayInfoProviderChromeosTest, SetInvalidRotation) { TEST_F(DisplayInfoProviderChromeosTest, SetNegativeOverscan) { UpdateDisplay("1200x600,600x1000*2"); - const gfx::Display* secondary = GetDisplayController()->GetSecondaryDisplay(); + const gfx::Display& secondary = ash::ScreenAsh::GetSecondaryDisplay(); api::system_info_display::DisplayProperties info; info.overscan.reset(new api::system_info_display::Insets); info.overscan->left= -10; bool success = false; std::string error; - CallSetDisplayUnitInfo(base::Int64ToString(secondary->id()), info, + CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, &success, &error); ASSERT_FALSE(success); EXPECT_EQ("Negative overscan not allowed.", error); - EXPECT_EQ("1200,0 300x500", secondary->bounds().ToString()); + EXPECT_EQ("1200,0 300x500", secondary.bounds().ToString()); info.overscan->left= 0; info.overscan->right = -200; - CallSetDisplayUnitInfo(base::Int64ToString(secondary->id()), info, + CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, &success, &error); ASSERT_FALSE(success); EXPECT_EQ("Negative overscan not allowed.", error); - EXPECT_EQ("1200,0 300x500", secondary->bounds().ToString()); + EXPECT_EQ("1200,0 300x500", secondary.bounds().ToString()); info.overscan->right= 0; info.overscan->top = -300; - CallSetDisplayUnitInfo(base::Int64ToString(secondary->id()), info, + CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, &success, &error); ASSERT_FALSE(success); EXPECT_EQ("Negative overscan not allowed.", error); - EXPECT_EQ("1200,0 300x500", secondary->bounds().ToString()); + EXPECT_EQ("1200,0 300x500", secondary.bounds().ToString()); info.overscan->right= 0; info.overscan->top = -1000; - CallSetDisplayUnitInfo(base::Int64ToString(secondary->id()), info, + CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, &success, &error); ASSERT_FALSE(success); EXPECT_EQ("Negative overscan not allowed.", error); - EXPECT_EQ("1200,0 300x500", secondary->bounds().ToString()); + EXPECT_EQ("1200,0 300x500", secondary.bounds().ToString()); info.overscan->right= 0; info.overscan->top = 0; - CallSetDisplayUnitInfo(base::Int64ToString(secondary->id()), info, + CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, &success, &error); ASSERT_TRUE(success); EXPECT_TRUE(error.empty()); - EXPECT_EQ("1200,0 300x500", secondary->bounds().ToString()); + EXPECT_EQ("1200,0 300x500", secondary.bounds().ToString()); } TEST_F(DisplayInfoProviderChromeosTest, SetOverscanLargerThanHorizontalBounds) { UpdateDisplay("1200x600,600x1000*2"); - const gfx::Display* secondary = GetDisplayController()->GetSecondaryDisplay(); + const gfx::Display& secondary = ash::ScreenAsh::GetSecondaryDisplay(); api::system_info_display::DisplayProperties info; info.overscan.reset(new api::system_info_display::Insets); // Horizontal overscan is 151, which would make the bounds width 149. @@ -825,7 +826,7 @@ TEST_F(DisplayInfoProviderChromeosTest, SetOverscanLargerThanHorizontalBounds) { bool success = false; std::string error; - CallSetDisplayUnitInfo(base::Int64ToString(secondary->id()), info, + CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, &success, &error); ASSERT_FALSE(success); @@ -836,7 +837,7 @@ TEST_F(DisplayInfoProviderChromeosTest, SetOverscanLargerThanHorizontalBounds) { TEST_F(DisplayInfoProviderChromeosTest, SetOverscanLargerThanVerticalBounds) { UpdateDisplay("1200x600,600x1000"); - const gfx::Display* secondary = GetDisplayController()->GetSecondaryDisplay(); + const gfx::Display& secondary = ash::ScreenAsh::GetSecondaryDisplay(); api::system_info_display::DisplayProperties info; info.overscan.reset(new api::system_info_display::Insets); // Vertical overscan is 501, which would make the bounds height 499. @@ -847,7 +848,7 @@ TEST_F(DisplayInfoProviderChromeosTest, SetOverscanLargerThanVerticalBounds) { bool success = false; std::string error; - CallSetDisplayUnitInfo(base::Int64ToString(secondary->id()), info, + CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, &success, &error); ASSERT_FALSE(success); @@ -858,7 +859,7 @@ TEST_F(DisplayInfoProviderChromeosTest, SetOverscanLargerThanVerticalBounds) { TEST_F(DisplayInfoProviderChromeosTest, SetOverscan) { UpdateDisplay("1200x600,600x1000*2"); - const gfx::Display* secondary = GetDisplayController()->GetSecondaryDisplay(); + const gfx::Display& secondary = ash::ScreenAsh::GetSecondaryDisplay(); api::system_info_display::DisplayProperties info; info.overscan.reset(new api::system_info_display::Insets); info.overscan->left= 20; @@ -868,15 +869,15 @@ TEST_F(DisplayInfoProviderChromeosTest, SetOverscan) { bool success = false; std::string error; - CallSetDisplayUnitInfo(base::Int64ToString(secondary->id()), info, + CallSetDisplayUnitInfo(base::Int64ToString(secondary.id()), info, &success, &error); ASSERT_TRUE(success); EXPECT_TRUE(error.empty()); - EXPECT_EQ("1200,0 150x250", secondary->bounds().ToString()); + EXPECT_EQ("1200,0 150x250", secondary.bounds().ToString()); const gfx::Insets overscan = - GetDisplayManager()->GetOverscanInsets(secondary->id()); + GetDisplayManager()->GetOverscanInsets(secondary.id()); EXPECT_EQ(20, overscan.left()); EXPECT_EQ(199, overscan.top()); diff --git a/chrome/browser/ui/webui/options/chromeos/display_options_handler.cc b/chrome/browser/ui/webui/options/chromeos/display_options_handler.cc index 9d1f9e1..9dad157 100644 --- a/chrome/browser/ui/webui/options/chromeos/display_options_handler.cc +++ b/chrome/browser/ui/webui/options/chromeos/display_options_handler.cc @@ -146,7 +146,7 @@ void DisplayOptionsHandler::OnDisplayConfigurationChanged() { void DisplayOptionsHandler::SendAllDisplayInfo() { DisplayManager* display_manager = GetDisplayManager(); - std::vector<const gfx::Display*> displays; + std::vector<gfx::Display> displays; for (size_t i = 0; i < display_manager->GetNumDisplays(); ++i) { displays.push_back(display_manager->GetDisplayAt(i)); } @@ -154,7 +154,7 @@ void DisplayOptionsHandler::SendAllDisplayInfo() { } void DisplayOptionsHandler::SendDisplayInfo( - const std::vector<const gfx::Display*> displays) { + const std::vector<gfx::Display>& displays) { DisplayManager* display_manager = GetDisplayManager(); ash::DisplayController* display_controller = ash::Shell::GetInstance()->display_controller(); @@ -163,27 +163,27 @@ void DisplayOptionsHandler::SendDisplayInfo( int64 primary_id = ash::Shell::GetScreen()->GetPrimaryDisplay().id(); base::ListValue js_displays; for (size_t i = 0; i < displays.size(); ++i) { - const gfx::Display* display = displays[i]; + const gfx::Display& display = displays[i]; const ash::internal::DisplayInfo& display_info = - display_manager->GetDisplayInfo(display->id()); - const gfx::Rect& bounds = display->bounds(); + display_manager->GetDisplayInfo(display.id()); + const gfx::Rect& bounds = display.bounds(); base::DictionaryValue* js_display = new base::DictionaryValue(); - js_display->SetString("id", base::Int64ToString(display->id())); + js_display->SetString("id", base::Int64ToString(display.id())); js_display->SetInteger("x", bounds.x()); js_display->SetInteger("y", bounds.y()); js_display->SetInteger("width", bounds.width()); js_display->SetInteger("height", bounds.height()); js_display->SetString("name", - display_manager->GetDisplayNameForId(display->id())); - js_display->SetBoolean("isPrimary", display->id() == primary_id); - js_display->SetBoolean("isInternal", display->IsInternal()); + display_manager->GetDisplayNameForId(display.id())); + js_display->SetBoolean("isPrimary", display.id() == primary_id); + js_display->SetBoolean("isInternal", display.IsInternal()); js_display->SetInteger("orientation", static_cast<int>(display_info.rotation())); std::vector<float> ui_scales = DisplayManager::GetScalesForDisplay( display_info); base::ListValue* js_scales = new base::ListValue(); gfx::SizeF base_size = display_info.bounds_in_pixel().size(); - base_size.Scale(1.0f / display->device_scale_factor()); + base_size.Scale(1.0f / display.device_scale_factor()); if (display_info.rotation() == gfx::Display::ROTATE_90 || display_info.rotation() == gfx::Display::ROTATE_270) { float tmp = base_size.width(); diff --git a/chrome/browser/ui/webui/options/chromeos/display_options_handler.h b/chrome/browser/ui/webui/options/chromeos/display_options_handler.h index 2459ac9..e34617b 100644 --- a/chrome/browser/ui/webui/options/chromeos/display_options_handler.h +++ b/chrome/browser/ui/webui/options/chromeos/display_options_handler.h @@ -42,7 +42,7 @@ class DisplayOptionsHandler : public ::options::OptionsPageUIHandler, void SendAllDisplayInfo(); // Sends the specified display information to the web_ui of options page. - void SendDisplayInfo(const std::vector<const gfx::Display*> displays); + void SendDisplayInfo(const std::vector<gfx::Display>& displays); // Called when the fade-out animation for mirroring status change is finished. void OnFadeOutForMirroringFinished(bool is_mirroring); |