| 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());
|
|
|