summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ash/display/display_controller.cc60
-rw-r--r--ash/display/display_controller.h11
-rw-r--r--ash/display/display_controller_unittest.cc11
-rw-r--r--ash/display/display_manager.cc141
-rw-r--r--ash/display/display_manager.h29
-rw-r--r--ash/display/display_manager_unittest.cc82
-rw-r--r--ash/display/screen_position_controller_unittest.cc17
-rw-r--r--ash/screen_ash.cc6
-rw-r--r--ash/system/chromeos/tray_display.cc6
-rw-r--r--ash/test/display_manager_test_api.cc7
-rw-r--r--ash/touch/touch_observer_hud_unittest.cc7
-rw-r--r--chrome/browser/chromeos/display/display_preferences.cc2
-rw-r--r--chrome/browser/extensions/api/system_info_display/display_info_provider_chromeos.cc2
-rw-r--r--chrome/browser/extensions/api/system_info_display/display_info_provider_chromeos_unittest.cc181
-rw-r--r--chrome/browser/ui/webui/options/chromeos/display_options_handler.cc20
-rw-r--r--chrome/browser/ui/webui/options/chromeos/display_options_handler.h2
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, &center);
@@ -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);