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

Side by Side Diff: cc/tiles/checker_image_tracker_unittest.cc

Issue 2939243002: cc/blink: Veto checker-imaging for multipart image resources. (Closed)
Patch Set: tested Created 3 years, 6 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
OLDNEW
1 // Copyright 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 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 "cc/tiles/checker_image_tracker.h" 5 #include "cc/tiles/checker_image_tracker.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/memory/ptr_util.h" 8 #include "base/memory/ptr_util.h"
9 #include "base/run_loop.h" 9 #include "base/run_loop.h"
10 #include "base/threading/thread_task_runner_handle.h" 10 #include "base/threading/thread_task_runner_handle.h"
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 checker_image_tracker_ = base::MakeUnique<CheckerImageTracker>( 86 checker_image_tracker_ = base::MakeUnique<CheckerImageTracker>(
87 &image_controller_, this, checker_images_enabled); 87 &image_controller_, this, checker_images_enabled);
88 } 88 }
89 89
90 void TearDown() override { checker_image_tracker_.reset(); } 90 void TearDown() override { checker_image_tracker_.reset(); }
91 91
92 DrawImage CreateImage( 92 DrawImage CreateImage(
93 ImageType image_type, 93 ImageType image_type,
94 PaintImage::AnimationType animation = PaintImage::AnimationType::STATIC, 94 PaintImage::AnimationType animation = PaintImage::AnimationType::STATIC,
95 PaintImage::CompletionState completion = 95 PaintImage::CompletionState completion =
96 PaintImage::CompletionState::DONE) { 96 PaintImage::CompletionState::DONE,
97 bool is_multipart = false) {
97 int dimension = 0; 98 int dimension = 0;
98 switch (image_type) { 99 switch (image_type) {
99 case ImageType::CHECKERABLE: 100 case ImageType::CHECKERABLE:
100 dimension = kCheckerableImageDimension; 101 dimension = kCheckerableImageDimension;
101 break; 102 break;
102 case ImageType::SMALL_NON_CHECKERABLE: 103 case ImageType::SMALL_NON_CHECKERABLE:
103 dimension = kSmallNonCheckerableImageDimension; 104 dimension = kSmallNonCheckerableImageDimension;
104 break; 105 break;
105 case ImageType::LARGE_NON_CHECKERABLE: 106 case ImageType::LARGE_NON_CHECKERABLE:
106 dimension = kLargeNonCheckerableImageDimension; 107 dimension = kLargeNonCheckerableImageDimension;
107 break; 108 break;
108 } 109 }
109 110
110 sk_sp<SkImage> image = 111 sk_sp<SkImage> image =
111 CreateDiscardableImage(gfx::Size(dimension, dimension)); 112 CreateDiscardableImage(gfx::Size(dimension, dimension));
112 return DrawImage( 113 return DrawImage(PaintImage(PaintImage::GetNextId(), image, animation,
113 PaintImage(PaintImage::GetNextId(), image, animation, completion), 114 completion, 1, is_multipart),
114 SkIRect::MakeWH(dimension, dimension), kNone_SkFilterQuality, 115 SkIRect::MakeWH(dimension, dimension),
115 SkMatrix::I(), gfx::ColorSpace()); 116 kNone_SkFilterQuality, SkMatrix::I(), gfx::ColorSpace());
116 } 117 }
117 118
118 CheckerImageTracker::ImageDecodeQueue BuildImageDecodeQueue( 119 CheckerImageTracker::ImageDecodeQueue BuildImageDecodeQueue(
119 std::vector<DrawImage> images, 120 std::vector<DrawImage> images,
120 WhichTree tree) { 121 WhichTree tree) {
121 CheckerImageTracker::ImageDecodeQueue decode_queue; 122 CheckerImageTracker::ImageDecodeQueue decode_queue;
122 for (const auto& image : images) { 123 for (const auto& image : images) {
123 if (checker_image_tracker_->ShouldCheckerImage(image, tree)) 124 if (checker_image_tracker_->ShouldCheckerImage(image, tree))
124 decode_queue.push_back(image.paint_image()); 125 decode_queue.push_back(image.paint_image());
125 } 126 }
(...skipping 338 matching lines...) Expand 10 before | Expand all | Expand 10 after
464 CheckerImageTracker::ImageDecodeQueue image_decode_queue = 465 CheckerImageTracker::ImageDecodeQueue image_decode_queue =
465 BuildImageDecodeQueue(draw_images, WhichTree::PENDING_TREE); 466 BuildImageDecodeQueue(draw_images, WhichTree::PENDING_TREE);
466 checker_image_tracker_->ScheduleImageDecodeQueue(image_decode_queue); 467 checker_image_tracker_->ScheduleImageDecodeQueue(image_decode_queue);
467 EXPECT_EQ(image_controller_.decoded_images().size(), 1u); 468 EXPECT_EQ(image_controller_.decoded_images().size(), 1u);
468 EXPECT_EQ(image_controller_.decoded_images()[0].scale(), 469 EXPECT_EQ(image_controller_.decoded_images()[0].scale(),
469 SkSize::Make(1.8f, 1.8f)); 470 SkSize::Make(1.8f, 1.8f));
470 EXPECT_EQ(image_controller_.decoded_images()[0].filter_quality(), 471 EXPECT_EQ(image_controller_.decoded_images()[0].filter_quality(),
471 kHigh_SkFilterQuality); 472 kHigh_SkFilterQuality);
472 } 473 }
473 474
475 TEST_F(CheckerImageTrackerTest, DontCheckerMultiPartImages) {
476 SetUpTracker(true);
477
478 DrawImage image = CreateImage(ImageType::CHECKERABLE);
479 EXPECT_FALSE(image.paint_image().is_multipart());
480 DrawImage multi_part_image =
481 CreateImage(ImageType::CHECKERABLE, PaintImage::AnimationType::STATIC,
482 PaintImage::CompletionState::DONE, true);
483 EXPECT_TRUE(multi_part_image.paint_image().is_multipart());
484
485 EXPECT_TRUE(checker_image_tracker_->ShouldCheckerImage(
486 image, WhichTree::PENDING_TREE));
487 EXPECT_FALSE(checker_image_tracker_->ShouldCheckerImage(
488 multi_part_image, WhichTree::PENDING_TREE));
489 }
490
474 } // namespace 491 } // namespace
475 } // namespace cc 492 } // namespace cc
OLDNEW
« no previous file with comments | « cc/tiles/checker_image_tracker.cc ('k') | third_party/WebKit/Source/core/loader/resource/ImageResource.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698