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

Unified Diff: ui/compositor/layer_unittest.cc

Issue 10391165: Notification for device scale factor change (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: demo_main fix Created 8 years, 7 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 | « ui/compositor/layer_delegate.h ('k') | ui/views/view.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/compositor/layer_unittest.cc
diff --git a/ui/compositor/layer_unittest.cc b/ui/compositor/layer_unittest.cc
index 3af502d818d4ea64a07e3e91d1c42b947e8ad6b9..581e1dba1d3e956dc5fc94e8caa514f1606c4644 100644
--- a/ui/compositor/layer_unittest.cc
+++ b/ui/compositor/layer_unittest.cc
@@ -132,6 +132,9 @@ class ColoredLayer : public Layer, public LayerDelegate {
canvas->DrawColor(color_);
}
+ virtual void OnDeviceScaleFactorChanged(float device_scale_factor) OVERRIDE {
+ }
+
private:
SkColor color_;
};
@@ -212,7 +215,7 @@ class LayerWithRealCompositorTest : public testing::Test {
// LayerDelegate that paints colors to the layer.
class TestLayerDelegate : public LayerDelegate {
public:
- explicit TestLayerDelegate() : color_index_(0) {}
+ explicit TestLayerDelegate() { reset(); }
virtual ~TestLayerDelegate() {}
void AddColor(SkColor color) {
@@ -226,6 +229,10 @@ class TestLayerDelegate : public LayerDelegate {
return StringPrintf("%.1f %.1f", scale_x_, scale_y_);
}
+ float device_scale_factor() const {
+ return device_scale_factor_;
+ }
+
// Overridden from LayerDelegate:
virtual void OnPaintLayer(gfx::Canvas* canvas) OVERRIDE {
SkBitmap contents = canvas->ExtractBitmap();
@@ -237,10 +244,15 @@ class TestLayerDelegate : public LayerDelegate {
scale_y_ = matrix.getScaleY();
}
+ virtual void OnDeviceScaleFactorChanged(float device_scale_factor) OVERRIDE {
+ device_scale_factor_ = device_scale_factor;
+ }
+
void reset() {
color_index_ = 0;
paint_size_.SetSize(0, 0);
scale_x_ = scale_y_ = 0.0f;
+ device_scale_factor_ = 0.0f;
}
private:
@@ -249,6 +261,7 @@ class TestLayerDelegate : public LayerDelegate {
gfx::Size paint_size_;
float scale_x_;
float scale_y_;
+ float device_scale_factor_;
DISALLOW_COPY_AND_ASSIGN(TestLayerDelegate);
};
@@ -270,6 +283,8 @@ class DrawTreeLayerDelegate : public LayerDelegate {
virtual void OnPaintLayer(gfx::Canvas* canvas) OVERRIDE {
painted_ = true;
}
+ virtual void OnDeviceScaleFactorChanged(float device_scale_factor) OVERRIDE {
+ }
bool painted_;
@@ -286,6 +301,8 @@ class NullLayerDelegate : public LayerDelegate {
// Overridden from LayerDelegate:
virtual void OnPaintLayer(gfx::Canvas* canvas) OVERRIDE {
}
+ virtual void OnDeviceScaleFactorChanged(float device_scale_factor) OVERRIDE {
+ }
DISALLOW_COPY_AND_ASSIGN(NullLayerDelegate);
};
@@ -1000,6 +1017,9 @@ class SchedulePaintLayerDelegate : public LayerDelegate {
last_clip_rect_ = gfx::SkRectToRect(sk_clip_rect);
}
+ virtual void OnDeviceScaleFactorChanged(float device_scale_factor) OVERRIDE {
+ }
+
int paint_count_;
Layer* layer_;
gfx::Rect schedule_paint_rect_;
@@ -1071,6 +1091,9 @@ TEST_F(LayerWithRealCompositorTest, MAYBE_ScaleUpDown) {
EXPECT_EQ("200x220", size_in_pixel.ToString());
size_in_pixel = l1->web_layer().bounds();
EXPECT_EQ("140x180", size_in_pixel.ToString());
+ // No scale change, so no scale notification.
+ EXPECT_EQ(0.0f, root_delegate.device_scale_factor());
+ EXPECT_EQ(0.0f, l1_delegate.device_scale_factor());
RunPendingMessages();
EXPECT_EQ("200x220", root_delegate.paint_size().ToString());
@@ -1085,6 +1108,9 @@ TEST_F(LayerWithRealCompositorTest, MAYBE_ScaleUpDown) {
EXPECT_EQ("400x440", size_in_pixel.ToString());
size_in_pixel = l1->web_layer().bounds();
EXPECT_EQ("280x360", size_in_pixel.ToString());
+ // New scale factor must have been notified.
+ EXPECT_EQ(2.0f, root_delegate.device_scale_factor());
+ EXPECT_EQ(2.0f, l1_delegate.device_scale_factor());
// Canvas size must have been scaled down up.
RunPendingMessages();
@@ -1102,6 +1128,9 @@ TEST_F(LayerWithRealCompositorTest, MAYBE_ScaleUpDown) {
EXPECT_EQ("200x220", size_in_pixel.ToString());
size_in_pixel = l1->web_layer().bounds();
EXPECT_EQ("140x180", size_in_pixel.ToString());
+ // New scale factor must have been notified.
+ EXPECT_EQ(1.0f, root_delegate.device_scale_factor());
+ EXPECT_EQ(1.0f, l1_delegate.device_scale_factor());
// Canvas size must have been scaled down too.
RunPendingMessages();
@@ -1112,8 +1141,12 @@ TEST_F(LayerWithRealCompositorTest, MAYBE_ScaleUpDown) {
root_delegate.reset();
l1_delegate.reset();
- // Just changing the size shouldn't trigger repaint.
+ // Just changing the size shouldn't notify the scale change nor
+ // trigger repaint.
GetCompositor()->SetScaleAndSize(1.0f, gfx::Size(1000, 1000));
+ // No scale change, so no scale notification.
+ EXPECT_EQ(0.0f, root_delegate.device_scale_factor());
+ EXPECT_EQ(0.0f, l1_delegate.device_scale_factor());
RunPendingMessages();
EXPECT_EQ("0x0", root_delegate.paint_size().ToString());
EXPECT_EQ("0.0 0.0", root_delegate.ToScaleString());
@@ -1139,6 +1172,7 @@ TEST_F(LayerWithRealCompositorTest, MAYBE_ScaleReparent) {
EXPECT_EQ("10,20 140x180", l1->bounds().ToString());
gfx::Size size_in_pixel = l1->web_layer().bounds();
EXPECT_EQ("140x180", size_in_pixel.ToString());
+ EXPECT_EQ(0.0f, l1_delegate.device_scale_factor());
RunPendingMessages();
EXPECT_EQ("140x180", l1_delegate.paint_size().ToString());
@@ -1159,6 +1193,7 @@ TEST_F(LayerWithRealCompositorTest, MAYBE_ScaleReparent) {
EXPECT_EQ("10,20 140x180", l1->bounds().ToString());
size_in_pixel = l1->web_layer().bounds();
EXPECT_EQ("280x360", size_in_pixel.ToString());
+ EXPECT_EQ(2.0f, l1_delegate.device_scale_factor());
RunPendingMessages();
EXPECT_EQ("280x360", l1_delegate.paint_size().ToString());
EXPECT_EQ("2.0 2.0", l1_delegate.ToScaleString());
@@ -1179,6 +1214,9 @@ TEST_F(LayerWithRealCompositorTest, MAYBE_NoScaleCanvas) {
GetCompositor()->SetScaleAndSize(2.0f, gfx::Size(500, 500));
GetCompositor()->SetRootLayer(root.get());
+ // Scale factor change is notified regardless of scale_canvas flag.
+ EXPECT_EQ(2.0f, l1_delegate.device_scale_factor());
+
RunPendingMessages();
EXPECT_EQ("280x360", l1_delegate.paint_size().ToString());
EXPECT_EQ("1.0 1.0", l1_delegate.ToScaleString());
« no previous file with comments | « ui/compositor/layer_delegate.h ('k') | ui/views/view.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698