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

Side by Side Diff: ui/compositor/layer_unittest.cc

Issue 1064103002: ui: Make compositor unittests access the canvas through PaintRecorder. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 8 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 unified diff | Download patch
« no previous file with comments | « no previous file | ui/compositor/paint_context.h » ('j') | ui/compositor/paint_context.h » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/basictypes.h" 5 #include "base/basictypes.h"
6 #include "base/bind.h" 6 #include "base/bind.h"
7 #include "base/compiler_specific.h" 7 #include "base/compiler_specific.h"
8 #include "base/files/file_path.h" 8 #include "base/files/file_path.h"
9 #include "base/files/file_util.h" 9 #include "base/files/file_util.h"
10 #include "base/json/json_reader.h" 10 #include "base/json/json_reader.h"
(...skipping 10 matching lines...) Expand all
21 #include "cc/output/copy_output_result.h" 21 #include "cc/output/copy_output_result.h"
22 #include "cc/output/delegated_frame_data.h" 22 #include "cc/output/delegated_frame_data.h"
23 #include "cc/test/pixel_test_utils.h" 23 #include "cc/test/pixel_test_utils.h"
24 #include "testing/gtest/include/gtest/gtest.h" 24 #include "testing/gtest/include/gtest/gtest.h"
25 #include "ui/compositor/compositor_observer.h" 25 #include "ui/compositor/compositor_observer.h"
26 #include "ui/compositor/dip_util.h" 26 #include "ui/compositor/dip_util.h"
27 #include "ui/compositor/layer.h" 27 #include "ui/compositor/layer.h"
28 #include "ui/compositor/layer_animation_sequence.h" 28 #include "ui/compositor/layer_animation_sequence.h"
29 #include "ui/compositor/layer_animator.h" 29 #include "ui/compositor/layer_animator.h"
30 #include "ui/compositor/paint_context.h" 30 #include "ui/compositor/paint_context.h"
31 #include "ui/compositor/paint_recorder.h"
31 #include "ui/compositor/test/context_factories_for_test.h" 32 #include "ui/compositor/test/context_factories_for_test.h"
32 #include "ui/compositor/test/draw_waiter_for_test.h" 33 #include "ui/compositor/test/draw_waiter_for_test.h"
33 #include "ui/compositor/test/test_compositor_host.h" 34 #include "ui/compositor/test/test_compositor_host.h"
34 #include "ui/compositor/test/test_layers.h" 35 #include "ui/compositor/test/test_layers.h"
35 #include "ui/gfx/canvas.h" 36 #include "ui/gfx/canvas.h"
36 #include "ui/gfx/codec/png_codec.h" 37 #include "ui/gfx/codec/png_codec.h"
37 #include "ui/gfx/gfx_paths.h" 38 #include "ui/gfx/gfx_paths.h"
38 #include "ui/gfx/skia_util.h" 39 #include "ui/gfx/skia_util.h"
39 40
40 using cc::MatchesPNGFile; 41 using cc::MatchesPNGFile;
(...skipping 16 matching lines...) Expand all
57 explicit ColoredLayer(SkColor color) 58 explicit ColoredLayer(SkColor color)
58 : Layer(LAYER_TEXTURED), 59 : Layer(LAYER_TEXTURED),
59 color_(color) { 60 color_(color) {
60 set_delegate(this); 61 set_delegate(this);
61 } 62 }
62 63
63 ~ColoredLayer() override {} 64 ~ColoredLayer() override {}
64 65
65 // Overridden from LayerDelegate: 66 // Overridden from LayerDelegate:
66 void OnPaintLayer(const ui::PaintContext& context) override { 67 void OnPaintLayer(const ui::PaintContext& context) override {
67 context.canvas()->DrawColor(color_); 68 ui::PaintRecorder recorder(context);
69 recorder.canvas()->DrawColor(color_);
68 } 70 }
69 71
70 void OnDelegatedFrameDamage(const gfx::Rect& damage_rect_in_dip) override {} 72 void OnDelegatedFrameDamage(const gfx::Rect& damage_rect_in_dip) override {}
71 73
72 void OnDeviceScaleFactorChanged(float device_scale_factor) override {} 74 void OnDeviceScaleFactorChanged(float device_scale_factor) override {}
73 75
74 base::Closure PrepareForLayerBoundsChange() override { 76 base::Closure PrepareForLayerBoundsChange() override {
75 return base::Closure(); 77 return base::Closure();
76 } 78 }
77 79
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
222 } 224 }
223 225
224 int color_index() const { return color_index_; } 226 int color_index() const { return color_index_; }
225 227
226 float device_scale_factor() const { 228 float device_scale_factor() const {
227 return device_scale_factor_; 229 return device_scale_factor_;
228 } 230 }
229 231
230 // Overridden from LayerDelegate: 232 // Overridden from LayerDelegate:
231 void OnPaintLayer(const ui::PaintContext& context) override { 233 void OnPaintLayer(const ui::PaintContext& context) override {
232 context.canvas()->DrawColor(colors_[color_index_]); 234 ui::PaintRecorder recorder(context);
235 recorder.canvas()->DrawColor(colors_[color_index_]);
233 color_index_ = (color_index_ + 1) % static_cast<int>(colors_.size()); 236 color_index_ = (color_index_ + 1) % static_cast<int>(colors_.size());
234 } 237 }
235 238
236 void OnDelegatedFrameDamage(const gfx::Rect& damage_rect_in_dip) override {} 239 void OnDelegatedFrameDamage(const gfx::Rect& damage_rect_in_dip) override {}
237 240
238 void OnDeviceScaleFactorChanged(float device_scale_factor) override { 241 void OnDeviceScaleFactorChanged(float device_scale_factor) override {
239 device_scale_factor_ = device_scale_factor; 242 device_scale_factor_ = device_scale_factor;
240 } 243 }
241 244
242 base::Closure PrepareForLayerBoundsChange() override { 245 base::Closure PrepareForLayerBoundsChange() override {
(...skipping 22 matching lines...) Expand all
265 void Reset() { 268 void Reset() {
266 painted_ = false; 269 painted_ = false;
267 } 270 }
268 271
269 bool painted() const { return painted_; } 272 bool painted() const { return painted_; }
270 273
271 private: 274 private:
272 // Overridden from LayerDelegate: 275 // Overridden from LayerDelegate:
273 void OnPaintLayer(const ui::PaintContext& context) override { 276 void OnPaintLayer(const ui::PaintContext& context) override {
274 painted_ = true; 277 painted_ = true;
275 context.canvas()->DrawColor(SK_ColorWHITE); 278 ui::PaintRecorder recorder(context);
279 recorder.canvas()->DrawColor(SK_ColorWHITE);
276 } 280 }
277 void OnDelegatedFrameDamage(const gfx::Rect& damage_rect_in_dip) override {} 281 void OnDelegatedFrameDamage(const gfx::Rect& damage_rect_in_dip) override {}
278 void OnDeviceScaleFactorChanged(float device_scale_factor) override {} 282 void OnDeviceScaleFactorChanged(float device_scale_factor) override {}
279 base::Closure PrepareForLayerBoundsChange() override { 283 base::Closure PrepareForLayerBoundsChange() override {
280 return base::Closure(); 284 return base::Closure();
281 } 285 }
282 286
283 bool painted_; 287 bool painted_;
284 288
285 DISALLOW_COPY_AND_ASSIGN(DrawTreeLayerDelegate); 289 DISALLOW_COPY_AND_ASSIGN(DrawTreeLayerDelegate);
(...skipping 913 matching lines...) Expand 10 before | Expand all | Expand 10 after
1199 void SetSchedulePaintRect(const gfx::Rect& rect) { 1203 void SetSchedulePaintRect(const gfx::Rect& rect) {
1200 schedule_paint_rect_ = rect; 1204 schedule_paint_rect_ = rect;
1201 } 1205 }
1202 1206
1203 int GetPaintCountAndClear() { 1207 int GetPaintCountAndClear() {
1204 int value = paint_count_; 1208 int value = paint_count_;
1205 paint_count_ = 0; 1209 paint_count_ = 0;
1206 return value; 1210 return value;
1207 } 1211 }
1208 1212
1209 const gfx::RectF& last_clip_rect() const { return last_clip_rect_; } 1213 const gfx::Rect& last_clip_rect() const { return last_clip_rect_; }
1210 1214
1211 private: 1215 private:
1212 // Overridden from LayerDelegate: 1216 // Overridden from LayerDelegate:
1213 void OnPaintLayer(const ui::PaintContext& context) override { 1217 void OnPaintLayer(const ui::PaintContext& context) override {
1214 gfx::Canvas* canvas = context.canvas();
1215 paint_count_++; 1218 paint_count_++;
1216 if (!schedule_paint_rect_.IsEmpty()) { 1219 if (!schedule_paint_rect_.IsEmpty()) {
1217 layer_->SchedulePaint(schedule_paint_rect_); 1220 layer_->SchedulePaint(schedule_paint_rect_);
1218 schedule_paint_rect_ = gfx::Rect(); 1221 schedule_paint_rect_ = gfx::Rect();
1219 } 1222 }
1220 SkRect sk_clip_rect; 1223 last_clip_rect_ = context.InvalidationForTesting();
1221 if (canvas->sk_canvas()->getClipBounds(&sk_clip_rect))
1222 last_clip_rect_ = gfx::SkRectToRectF(sk_clip_rect);
1223 } 1224 }
1224 1225
1225 void OnDelegatedFrameDamage(const gfx::Rect& damage_rect_in_dip) override {} 1226 void OnDelegatedFrameDamage(const gfx::Rect& damage_rect_in_dip) override {}
1226 1227
1227 void OnDeviceScaleFactorChanged(float device_scale_factor) override {} 1228 void OnDeviceScaleFactorChanged(float device_scale_factor) override {}
1228 1229
1229 base::Closure PrepareForLayerBoundsChange() override { 1230 base::Closure PrepareForLayerBoundsChange() override {
1230 return base::Closure(); 1231 return base::Closure();
1231 } 1232 }
1232 1233
1233 int paint_count_; 1234 int paint_count_;
1234 Layer* layer_; 1235 Layer* layer_;
1235 gfx::Rect schedule_paint_rect_; 1236 gfx::Rect schedule_paint_rect_;
1236 gfx::RectF last_clip_rect_; 1237 gfx::Rect last_clip_rect_;
1237 1238
1238 DISALLOW_COPY_AND_ASSIGN(SchedulePaintLayerDelegate); 1239 DISALLOW_COPY_AND_ASSIGN(SchedulePaintLayerDelegate);
1239 }; 1240 };
1240 1241
1241 } // namespace 1242 } // namespace
1242 1243
1243 // Verifies that if SchedulePaint is invoked during painting the layer is still 1244 // Verifies that if SchedulePaint is invoked during painting the layer is still
1244 // marked dirty. 1245 // marked dirty.
1245 TEST_F(LayerWithDelegateTest, SchedulePaintFromOnPaintLayer) { 1246 TEST_F(LayerWithDelegateTest, SchedulePaintFromOnPaintLayer) {
1246 scoped_ptr<Layer> root(CreateColorLayer(SK_ColorRED, 1247 scoped_ptr<Layer> root(CreateColorLayer(SK_ColorRED,
(...skipping 482 matching lines...) Expand 10 before | Expand all | Expand 10 after
1729 MakeFrameData(gfx::Size(10, 10)))); 1730 MakeFrameData(gfx::Size(10, 10))));
1730 layer->SetShowDelegatedContent(frame_provider.get(), gfx::Size(10, 10)); 1731 layer->SetShowDelegatedContent(frame_provider.get(), gfx::Size(10, 10));
1731 1732
1732 EXPECT_FALSE(delegate.delegated_frame_damage_called()); 1733 EXPECT_FALSE(delegate.delegated_frame_damage_called());
1733 layer->OnDelegatedFrameDamage(damage_rect); 1734 layer->OnDelegatedFrameDamage(damage_rect);
1734 EXPECT_TRUE(delegate.delegated_frame_damage_called()); 1735 EXPECT_TRUE(delegate.delegated_frame_damage_called());
1735 EXPECT_EQ(damage_rect, delegate.delegated_frame_damage_rect()); 1736 EXPECT_EQ(damage_rect, delegate.delegated_frame_damage_rect());
1736 } 1737 }
1737 1738
1738 } // namespace ui 1739 } // namespace ui
OLDNEW
« no previous file with comments | « no previous file | ui/compositor/paint_context.h » ('j') | ui/compositor/paint_context.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698