Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(538)

Unified Diff: services/ui/ws/test_utils.cc

Issue 2736943003: Start to decouple display::Display from ws::PlatformDisplay. (Closed)
Patch Set: Fix comments. Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « services/ui/ws/test_utils.h ('k') | services/ui/ws/window_manager_state.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: services/ui/ws/test_utils.cc
diff --git a/services/ui/ws/test_utils.cc b/services/ui/ws/test_utils.cc
index d444e0c6798c9025c0376e3fa2b4abf6e2404e56..94e8dbcdf008a2b6bed62508a7663499a84088c7 100644
--- a/services/ui/ws/test_utils.cc
+++ b/services/ui/ws/test_utils.cc
@@ -13,7 +13,6 @@
#include "services/ui/public/interfaces/cursor.mojom.h"
#include "services/ui/ws/display_binding.h"
#include "services/ui/ws/display_manager.h"
-#include "services/ui/ws/platform_display_init_params.h"
#include "services/ui/ws/window_manager_access_policy.h"
#include "services/ui/ws/window_manager_window_tree_factory.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -28,21 +27,15 @@ namespace {
// Empty implementation of PlatformDisplay.
class TestPlatformDisplay : public PlatformDisplay {
public:
- explicit TestPlatformDisplay(const PlatformDisplayInitParams& params,
+ explicit TestPlatformDisplay(const display::ViewportMetrics& metrics,
mojom::Cursor* cursor_storage)
- : id_(params.display_id),
- display_metrics_(params.metrics),
- cursor_storage_(cursor_storage) {
- display_metrics_.bounds = gfx::Rect(0, 0, 400, 300);
- display_metrics_.device_scale_factor = 1.f;
- }
+ : metrics_(metrics), cursor_storage_(cursor_storage) {}
~TestPlatformDisplay() override {}
// PlatformDisplay:
void Init(PlatformDisplayDelegate* delegate) override {
delegate->OnAcceleratedWidgetAvailable();
}
- int64_t GetId() const override { return id_; }
void SetViewportSize(const gfx::Size& size) override {}
void SetTitle(const base::string16& title) override {}
void SetCapture() override {}
@@ -52,24 +45,19 @@ class TestPlatformDisplay : public PlatformDisplay {
}
void UpdateTextInputState(const ui::TextInputState& state) override {}
void SetImeVisibility(bool visible) override {}
- gfx::Rect GetBounds() const override { return display_metrics_.bounds; }
bool UpdateViewportMetrics(const display::ViewportMetrics& metrics) override {
- if (display_metrics_ == metrics)
+ if (metrics_ == metrics)
return false;
- display_metrics_ = metrics;
+ metrics_ = metrics;
return true;
}
- const display::ViewportMetrics& GetViewportMetrics() const override {
- return display_metrics_;
- }
gfx::AcceleratedWidget GetAcceleratedWidget() const override {
return gfx::kNullAcceleratedWidget;
}
FrameGenerator* GetFrameGenerator() override { return nullptr; }
private:
- const int64_t id_;
- display::ViewportMetrics display_metrics_;
+ display::ViewportMetrics metrics_;
mojom::Cursor* cursor_storage_;
DISALLOW_COPY_AND_ASSIGN(TestPlatformDisplay);
@@ -86,16 +74,14 @@ ClientWindowId NextUnusedClientWindowId(WindowTree* tree) {
}
}
-// Creates a Display with |id| and same attributes as |metrics|.
-display::Display CreateDisplay(int64_t id,
- const display::ViewportMetrics& metrics) {
- display::Display display(id);
- display.set_bounds(metrics.bounds);
- display.set_work_area(metrics.work_area);
- display.set_device_scale_factor(metrics.device_scale_factor);
- display.set_rotation(metrics.rotation);
- display.set_touch_support(metrics.touch_support);
- return display;
+display::ViewportMetrics MakeViewportMetrics(const display::Display& display) {
+ gfx::Size pixel_size = gfx::ConvertSizeToPixel(display.device_scale_factor(),
+ display.bounds().size());
+
+ display::ViewportMetrics metrics;
+ metrics.bounds_in_pixels.set_size(pixel_size);
+ metrics.device_scale_factor = display.device_scale_factor();
+ return metrics;
}
} // namespace
@@ -109,21 +95,25 @@ TestScreenManager::~TestScreenManager() {
}
int64_t TestScreenManager::AddDisplay() {
- return AddDisplay(MakeViewportMetrics(0, 0, 100, 100, 1.0f));
+ return AddDisplay(
+ display::Display(display::kInvalidDisplayId, gfx::Rect(100, 100)));
}
-int64_t TestScreenManager::AddDisplay(const display::ViewportMetrics& metrics) {
+int64_t TestScreenManager::AddDisplay(const display::Display& input_display) {
// Generate a unique display id.
int64_t display_id = display_ids_.empty() ? 1 : *display_ids_.rbegin() + 1;
display_ids_.insert(display_id);
+ display::Display display = input_display;
+ display.set_id(display_id);
+
// First display added will be the primary display.
display::DisplayList::Type type = display::DisplayList::Type::NOT_PRIMARY;
if (display_ids_.size() == 1)
type = display::DisplayList::Type::PRIMARY;
- screen_->display_list().AddDisplay(CreateDisplay(display_id, metrics), type);
- delegate_->OnDisplayAdded(display_id, metrics);
+ screen_->display_list().AddDisplay(display, type);
+ delegate_->OnDisplayAdded(display, MakeViewportMetrics(display));
if (type == display::DisplayList::Type::PRIMARY)
delegate_->OnPrimaryDisplayChanged(display_id);
@@ -131,11 +121,10 @@ int64_t TestScreenManager::AddDisplay(const display::ViewportMetrics& metrics) {
return display_id;
}
-void TestScreenManager::ModifyDisplay(int64_t display_id,
- const display::ViewportMetrics& metrics) {
- DCHECK(display_ids_.count(display_id) == 1);
- screen_->display_list().UpdateDisplay(CreateDisplay(display_id, metrics));
- delegate_->OnDisplayModified(display_id, metrics);
+void TestScreenManager::ModifyDisplay(const display::Display& display) {
+ DCHECK(display_ids_.count(display.id()) == 1);
+ screen_->display_list().UpdateDisplay(display);
+ delegate_->OnDisplayModified(display, MakeViewportMetrics(display));
}
void TestScreenManager::RemoveDisplay(int64_t display_id) {
@@ -165,8 +154,9 @@ TestPlatformDisplayFactory::~TestPlatformDisplayFactory() {}
std::unique_ptr<PlatformDisplay>
TestPlatformDisplayFactory::CreatePlatformDisplay(
- const PlatformDisplayInitParams& init_params) {
- return base::MakeUnique<TestPlatformDisplay>(init_params, cursor_storage_);
+ ServerWindow* root_window,
+ const display::ViewportMetrics& metrics) {
+ return base::MakeUnique<TestPlatformDisplay>(metrics, cursor_storage_);
}
// TestFrameGeneratorDelegate -------------------------------------------------
@@ -522,7 +512,7 @@ WindowServerTestHelper::~WindowServerTestHelper() {
WindowEventTargetingHelper::WindowEventTargetingHelper() {
display_ = new Display(window_server());
display_binding_ = new TestDisplayBinding(window_server());
- display_->Init(PlatformDisplayInitParams(),
+ display_->Init(display::ViewportMetrics(),
base::WrapUnique(display_binding_));
wm_client_ = ws_test_helper_.window_server_delegate()->last_client();
wm_client_->tracker()->changes()->clear();
@@ -602,19 +592,20 @@ void AddWindowManager(WindowServer* window_server, const UserId& user_id) {
->CreateWindowTree(nullptr, nullptr);
}
-display::ViewportMetrics MakeViewportMetrics(int origin_x,
- int origin_y,
- int width_pixels,
- int height_pixels,
- float scale_factor) {
- display::ViewportMetrics metrics;
+display::Display MakeDisplay(int origin_x,
+ int origin_y,
+ int width_pixels,
+ int height_pixels,
+ float scale_factor) {
gfx::Size scaled_size = gfx::ConvertSizeToDIP(
scale_factor, gfx::Size(width_pixels, height_pixels));
- metrics.bounds = gfx::Rect(gfx::Point(origin_x, origin_y), scaled_size);
- metrics.work_area = metrics.bounds;
- metrics.pixel_size = gfx::Size(width_pixels, height_pixels);
- metrics.device_scale_factor = scale_factor;
- return metrics;
+ gfx::Rect bounds(gfx::Point(origin_x, origin_y), scaled_size);
+
+ display::Display display;
+ display.set_bounds(bounds);
+ display.set_work_area(bounds);
+ display.set_device_scale_factor(scale_factor);
+ return display;
}
ServerWindow* FirstRoot(WindowTree* tree) {
« no previous file with comments | « services/ui/ws/test_utils.h ('k') | services/ui/ws/window_manager_state.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698