Index: cc/test/fake_picture_pile_impl.cc |
diff --git a/cc/test/fake_picture_pile_impl.cc b/cc/test/fake_picture_pile_impl.cc |
index bc751edbce2a06db93ab11eca671c3311490c63a..ce3e7e4dfa6f3d277e968a3952fa6295531b6535 100644 |
--- a/cc/test/fake_picture_pile_impl.cc |
+++ b/cc/test/fake_picture_pile_impl.cc |
@@ -9,6 +9,7 @@ |
#include "cc/test/impl_side_painting_settings.h" |
#include "testing/gtest/include/gtest/gtest.h" |
+#include "ui/gfx/skia_util.h" |
namespace cc { |
@@ -107,4 +108,26 @@ void FakePicturePileImpl::RerecordPile() { |
} |
} |
+void FakePicturePileImpl::AnalyzeInRect(gfx::Rect content_rect, |
+ float contents_scale, |
+ Analysis* analysis) { |
+ // Create and raster to a bitmap of content_rect size, even though the |
+ // analysis_rect may be smaller to simulate edge tiles where recorded content |
+ // doesn't cover the entire content_rect. |
+ SkBitmap empty_bitmap; |
+ empty_bitmap.setConfig(SkBitmap::kNo_Config, |
+ content_rect.width(), |
+ content_rect.height()); |
+ |
+ gfx::Rect analysis_rect( |
+ AnalysisRectForRaster(content_rect, contents_scale)); |
+ skia::AnalysisDevice device(empty_bitmap, gfx::RectToSkRect(analysis_rect)); |
+ skia::AnalysisCanvas canvas(&device); |
+ |
+ RasterDirect(&canvas, content_rect, contents_scale, NULL); |
+ |
+ analysis->is_solid_color = canvas.GetColorIfSolid(&analysis->solid_color); |
+ analysis->has_text = canvas.HasText(); |
+} |
+ |
} // namespace cc |