Commit 78d93379 authored by Ken Rockot's avatar Ken Rockot Committed by Commit Bot

Give Explore Sites feature its own Data Decoder

Instead of going through Service Manager to get a Data Decoder instance,
this changes the Explore Sites feature to maintain its own lazily
spawned Data Decoder instance using the public Content API.

This should effectively mirror the old behavior, including the 5-second
timeout of the instance used.

Bug: 977637
Change-Id: Ic76a472dabffbbce339cde6c3fab21d1f8b9a195
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1872418
Commit-Queue: Ken Rockot <rockot@google.com>
Reviewed-by: default avatarJustin DeWitt <dewittj@chromium.org>
Cr-Commit-Position: refs/heads/master@{#708857}
parent 989410cd
...@@ -1891,6 +1891,7 @@ jumbo_static_library("browser") { ...@@ -1891,6 +1891,7 @@ jumbo_static_library("browser") {
"//components/sync_device_info", "//components/sync_device_info",
"//content/public/browser", "//content/public/browser",
"//ipc", "//ipc",
"//services/data_decoder/public/mojom",
"//services/image_annotation/public/mojom", "//services/image_annotation/public/mojom",
"//sql", "//sql",
] ]
......
...@@ -7,10 +7,10 @@ ...@@ -7,10 +7,10 @@
#include "base/bind.h" #include "base/bind.h"
#include "base/memory/weak_ptr.h" #include "base/memory/weak_ptr.h"
#include "base/metrics/histogram_macros.h" #include "base/metrics/histogram_macros.h"
#include "base/time/time.h"
#include "chrome/browser/android/explore_sites/explore_sites_types.h" #include "chrome/browser/android/explore_sites/explore_sites_types.h"
#include "content/public/browser/system_connector.h" #include "content/public/browser/data_decoder_service.h"
#include "services/data_decoder/public/cpp/decode_image.h" #include "services/data_decoder/public/cpp/decode_image.h"
#include "services/service_manager/public/cpp/connector.h"
#include "third_party/skia/include/core/SkBitmap.h" #include "third_party/skia/include/core/SkBitmap.h"
#include "third_party/skia/include/core/SkImageInfo.h" #include "third_party/skia/include/core/SkImageInfo.h"
#include "third_party/skia/include/core/SkPixmap.h" #include "third_party/skia/include/core/SkPixmap.h"
...@@ -19,9 +19,17 @@ ...@@ -19,9 +19,17 @@
#include "ui/gfx/geometry/size.h" #include "ui/gfx/geometry/size.h"
namespace explore_sites { namespace explore_sites {
namespace { namespace {
// Ratio of icon size to the amount of padding between the icons. // Ratio of icon size to the amount of padding between the icons.
const int kIconPaddingScale = 8; const int kIconPaddingScale = 8;
// How long to let our Data Decoder service instance hang around unused before
// terminating it.
constexpr base::TimeDelta kDataDecoderInstanceTimeout{
base::TimeDelta::FromSeconds(5)};
} // namespace } // namespace
// Class Job is used to manage multiple calls to the ImageHelper. Each request // Class Job is used to manage multiple calls to the ImageHelper. Each request
...@@ -31,26 +39,26 @@ class ImageHelper::Job { ...@@ -31,26 +39,26 @@ class ImageHelper::Job {
public: public:
// WARNING: When ImageJobFinishedCallback is called, |this| may be deleted. // WARNING: When ImageJobFinishedCallback is called, |this| may be deleted.
// So nothing can be called after this callback. // So nothing can be called after this callback.
Job(ImageJobType job_type, Job(ImageHelper* image_helper,
ImageJobType job_type,
ImageJobFinishedCallback job_finished_callback, ImageJobFinishedCallback job_finished_callback,
BitmapCallback bitmap_callback, BitmapCallback bitmap_callback,
EncodedImageList images, EncodedImageList images,
int pixel_size, int pixel_size);
std::unique_ptr<service_manager::Connector> connector);
~Job(); ~Job();
// Start begins the work that a Job performs (decoding and composition). // Start begins the work that a Job performs (decoding and composition).
void Start(); void Start(data_decoder::mojom::DataDecoderService* service_override);
void DecodeImageBytes(std::unique_ptr<EncodedImageBytes> image_bytes); void DecodeImageBytes(
std::unique_ptr<EncodedImageBytes> image_bytes,
data_decoder::mojom::DataDecoderService* service_override);
void OnDecodeSiteImageDone(const SkBitmap& decoded_image); void OnDecodeSiteImageDone(const SkBitmap& decoded_image);
void OnDecodeCategoryImageDone(const SkBitmap& decoded_image); void OnDecodeCategoryImageDone(const SkBitmap& decoded_image);
std::unique_ptr<SkBitmap> CombineImages(); std::unique_ptr<SkBitmap> CombineImages();
private: private:
// Used to inject connector in tests. ImageHelper* const image_helper_;
void SetupConnector();
const ImageJobType job_type_; const ImageJobType job_type_;
ImageJobFinishedCallback job_finished_callback_; ImageJobFinishedCallback job_finished_callback_;
BitmapCallback bitmap_callback_; BitmapCallback bitmap_callback_;
...@@ -59,50 +67,42 @@ class ImageHelper::Job { ...@@ -59,50 +67,42 @@ class ImageHelper::Job {
int num_icons_, pixel_size_; int num_icons_, pixel_size_;
std::vector<SkBitmap> bitmaps_; std::vector<SkBitmap> bitmaps_;
std::unique_ptr<service_manager::Connector> connector_;
base::WeakPtrFactory<Job> weak_ptr_factory_{this}; base::WeakPtrFactory<Job> weak_ptr_factory_{this};
DISALLOW_COPY_AND_ASSIGN(Job); DISALLOW_COPY_AND_ASSIGN(Job);
}; };
ImageHelper::Job::Job(ImageJobType job_type, ImageHelper::Job::Job(ImageHelper* image_helper,
ImageJobType job_type,
ImageJobFinishedCallback job_finished_callback, ImageJobFinishedCallback job_finished_callback,
BitmapCallback bitmap_callback, BitmapCallback bitmap_callback,
EncodedImageList images, EncodedImageList images,
int pixel_size, int pixel_size)
std::unique_ptr<service_manager::Connector> connector) : image_helper_(image_helper),
: job_type_(job_type), job_type_(job_type),
job_finished_callback_(std::move(job_finished_callback)), job_finished_callback_(std::move(job_finished_callback)),
bitmap_callback_(std::move(bitmap_callback)), bitmap_callback_(std::move(bitmap_callback)),
images_(std::move(images)), images_(std::move(images)),
pixel_size_(pixel_size), pixel_size_(pixel_size) {
connector_(std::move(connector)) {
num_icons_ = (images_.size() < kFaviconsPerCategoryImage) num_icons_ = (images_.size() < kFaviconsPerCategoryImage)
? images_.size() ? images_.size()
: kFaviconsPerCategoryImage; : kFaviconsPerCategoryImage;
} }
ImageHelper::Job::~Job() {} ImageHelper::Job::~Job() = default;
void ImageHelper::Job::Start() { void ImageHelper::Job::Start(
data_decoder::mojom::DataDecoderService* service_override) {
for (int i = 0; i < num_icons_; i++) { for (int i = 0; i < num_icons_; i++) {
// TODO(freedjm): preserve order of images. // TODO(freedjm): preserve order of images.
DVLOG(1) << "Decoding image " << i + 1 << " of " << images_.size(); DVLOG(1) << "Decoding image " << i + 1 << " of " << images_.size();
DecodeImageBytes(std::move(images_[i])); DecodeImageBytes(std::move(images_[i]), service_override);
} }
} }
void ImageHelper::Job::SetupConnector() {
connector_ = content::GetSystemConnector()->Clone();
}
void ImageHelper::Job::DecodeImageBytes( void ImageHelper::Job::DecodeImageBytes(
std::unique_ptr<EncodedImageBytes> image_bytes) { std::unique_ptr<EncodedImageBytes> image_bytes,
if (!connector_) { data_decoder::mojom::DataDecoderService* service_override) {
SetupConnector();
}
data_decoder::mojom::ImageDecoder::DecodeImageCallback callback; data_decoder::mojom::ImageDecoder::DecodeImageCallback callback;
if (job_type_ == ImageJobType::kSiteIcon) { if (job_type_ == ImageJobType::kSiteIcon) {
callback = base::BindOnce(&ImageHelper::Job::OnDecodeSiteImageDone, callback = base::BindOnce(&ImageHelper::Job::OnDecodeSiteImageDone,
...@@ -112,7 +112,16 @@ void ImageHelper::Job::DecodeImageBytes( ...@@ -112,7 +112,16 @@ void ImageHelper::Job::DecodeImageBytes(
weak_ptr_factory_.GetWeakPtr()); weak_ptr_factory_.GetWeakPtr());
} }
data_decoder::DecodeImage(connector_.get(), *image_bytes, mojo::PendingRemote<data_decoder::mojom::ImageDecoder> decoder;
if (service_override) {
service_override->BindImageDecoder(
decoder.InitWithNewPipeAndPassReceiver());
} else {
image_helper_->GetDataDecoder()->BindImageDecoder(
decoder.InitWithNewPipeAndPassReceiver());
}
data_decoder::DecodeImage(std::move(decoder), *image_bytes,
data_decoder::mojom::ImageCodec::DEFAULT, false, data_decoder::mojom::ImageCodec::DEFAULT, false,
data_decoder::kDefaultMaxSizeInBytes, gfx::Size(), data_decoder::kDefaultMaxSizeInBytes, gfx::Size(),
std::move(callback)); std::move(callback));
...@@ -285,12 +294,12 @@ void ImageHelper::NewJob( ...@@ -285,12 +294,12 @@ void ImageHelper::NewJob(
BitmapCallback bitmap_callback, BitmapCallback bitmap_callback,
EncodedImageList images, EncodedImageList images,
int pixel_size, int pixel_size,
std::unique_ptr<service_manager::Connector> connector) { data_decoder::mojom::DataDecoderService* service_override) {
auto job = std::make_unique<Job>( auto job = std::make_unique<Job>(
job_type, std::move(job_finished_callback), std::move(bitmap_callback), this, job_type, std::move(job_finished_callback),
std::move(images), pixel_size, std::move(connector)); std::move(bitmap_callback), std::move(images), pixel_size);
id_to_job_[last_used_job_id_] = std::move(job); id_to_job_[last_used_job_id_] = std::move(job);
id_to_job_[last_used_job_id_]->Start(); id_to_job_[last_used_job_id_]->Start(service_override);
} }
void ImageHelper::OnJobFinished(int job_id) { void ImageHelper::OnJobFinished(int job_id) {
...@@ -301,7 +310,7 @@ void ImageHelper::OnJobFinished(int job_id) { ...@@ -301,7 +310,7 @@ void ImageHelper::OnJobFinished(int job_id) {
void ImageHelper::ComposeSiteImage( void ImageHelper::ComposeSiteImage(
BitmapCallback callback, BitmapCallback callback,
EncodedImageList images, EncodedImageList images,
std::unique_ptr<service_manager::Connector> connector) { data_decoder::mojom::DataDecoderService* service_override) {
DVLOG(1) << "Requested decoding for site image"; DVLOG(1) << "Requested decoding for site image";
if (images.size() == 0) { if (images.size() == 0) {
std::move(callback).Run(nullptr); std::move(callback).Run(nullptr);
...@@ -311,14 +320,14 @@ void ImageHelper::ComposeSiteImage( ...@@ -311,14 +320,14 @@ void ImageHelper::ComposeSiteImage(
NewJob(ImageJobType::kSiteIcon, NewJob(ImageJobType::kSiteIcon,
base::BindOnce(&ImageHelper::OnJobFinished, weak_factory_.GetWeakPtr(), base::BindOnce(&ImageHelper::OnJobFinished, weak_factory_.GetWeakPtr(),
++last_used_job_id_), ++last_used_job_id_),
std::move(callback), std::move(images), -1, std::move(connector)); std::move(callback), std::move(images), -1, service_override);
} }
void ImageHelper::ComposeCategoryImage( void ImageHelper::ComposeCategoryImage(
BitmapCallback callback, BitmapCallback callback,
int pixel_size, int pixel_size,
EncodedImageList images, EncodedImageList images,
std::unique_ptr<service_manager::Connector> connector) { data_decoder::mojom::DataDecoderService* service_override) {
DVLOG(1) << "Requested decoding " << images.size() DVLOG(1) << "Requested decoding " << images.size()
<< " images for category image"; << " images for category image";
...@@ -330,7 +339,17 @@ void ImageHelper::ComposeCategoryImage( ...@@ -330,7 +339,17 @@ void ImageHelper::ComposeCategoryImage(
NewJob(ImageJobType::kCategoryImage, NewJob(ImageJobType::kCategoryImage,
base::BindOnce(&ImageHelper::OnJobFinished, weak_factory_.GetWeakPtr(), base::BindOnce(&ImageHelper::OnJobFinished, weak_factory_.GetWeakPtr(),
++last_used_job_id_), ++last_used_job_id_),
std::move(callback), std::move(images), pixel_size, std::move(callback), std::move(images), pixel_size, service_override);
std::move(connector));
} }
data_decoder::mojom::DataDecoderService* ImageHelper::GetDataDecoder() {
if (!data_decoder_) {
data_decoder_ = content::LaunchDataDecoder();
data_decoder_.reset_on_disconnect();
data_decoder_.reset_on_idle_timeout(kDataDecoderInstanceTimeout);
}
return data_decoder_.get();
}
} // namespace explore_sites } // namespace explore_sites
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
#include "base/macros.h" #include "base/macros.h"
#include "base/memory/weak_ptr.h" #include "base/memory/weak_ptr.h"
#include "chrome/browser/android/explore_sites/explore_sites_types.h" #include "chrome/browser/android/explore_sites/explore_sites_types.h"
#include "services/service_manager/public/cpp/connector.h" #include "mojo/public/cpp/bindings/remote.h"
#include "services/data_decoder/public/mojom/data_decoder_service.mojom.h"
#include "third_party/skia/include/core/SkBitmap.h" #include "third_party/skia/include/core/SkBitmap.h"
namespace explore_sites { namespace explore_sites {
...@@ -31,7 +32,7 @@ class ImageHelper { ...@@ -31,7 +32,7 @@ class ImageHelper {
void ComposeSiteImage( void ComposeSiteImage(
BitmapCallback callback, BitmapCallback callback,
EncodedImageList images, EncodedImageList images,
std::unique_ptr<service_manager::Connector> connector = nullptr); data_decoder::mojom::DataDecoderService* service_override = nullptr);
// Compose a category icon containing [1 - 4] site icons and return via // Compose a category icon containing [1 - 4] site icons and return via
// |callback|. // |callback|.
...@@ -39,7 +40,7 @@ class ImageHelper { ...@@ -39,7 +40,7 @@ class ImageHelper {
BitmapCallback callback, BitmapCallback callback,
int pixel_size, int pixel_size,
EncodedImageList images, EncodedImageList images,
std::unique_ptr<service_manager::Connector> connector = nullptr); data_decoder::mojom::DataDecoderService* service_override = nullptr);
private: private:
class Job; class Job;
...@@ -49,10 +50,13 @@ class ImageHelper { ...@@ -49,10 +50,13 @@ class ImageHelper {
BitmapCallback bitmap_callback, BitmapCallback bitmap_callback,
EncodedImageList images, EncodedImageList images,
int pixel_size, int pixel_size,
std::unique_ptr<service_manager::Connector> connector); data_decoder::mojom::DataDecoderService* service_override);
void OnJobFinished(int job_id); void OnJobFinished(int job_id);
data_decoder::mojom::DataDecoderService* GetDataDecoder();
mojo::Remote<data_decoder::mojom::DataDecoderService> data_decoder_;
std::map<int, std::unique_ptr<Job>> id_to_job_; std::map<int, std::unique_ptr<Job>> id_to_job_;
int last_used_job_id_; int last_used_job_id_;
......
...@@ -13,8 +13,6 @@ ...@@ -13,8 +13,6 @@
#include "base/test/task_environment.h" #include "base/test/task_environment.h"
#include "base/test/test_simple_task_runner.h" #include "base/test/test_simple_task_runner.h"
#include "services/data_decoder/public/cpp/test_data_decoder_service.h" #include "services/data_decoder/public/cpp/test_data_decoder_service.h"
#include "services/data_decoder/public/mojom/constants.mojom.h"
#include "services/service_manager/public/cpp/test/test_connector_factory.h"
#include "testing/gtest/include/gtest/gtest.h" #include "testing/gtest/include/gtest/gtest.h"
#include "third_party/skia/include/core/SkBitmap.h" #include "third_party/skia/include/core/SkBitmap.h"
#include "third_party/skia/include/core/SkColor.h" #include "third_party/skia/include/core/SkColor.h"
...@@ -51,11 +49,8 @@ const int kUpperBoundCorner = 26; ...@@ -51,11 +49,8 @@ const int kUpperBoundCorner = 26;
class ExploreSitesImageHelperTest : public testing::Test { class ExploreSitesImageHelperTest : public testing::Test {
public: public:
ExploreSitesImageHelperTest() ExploreSitesImageHelperTest() = default;
: data_decoder_(connector_factory_.RegisterInstance( ~ExploreSitesImageHelperTest() override = default;
data_decoder::mojom::kServiceName)) {}
~ExploreSitesImageHelperTest() override {}
EncodedImageList GetEncodedImageList(int num_icons); EncodedImageList GetEncodedImageList(int num_icons);
BitmapCallback StoreBitmap() { BitmapCallback StoreBitmap() {
...@@ -68,14 +63,11 @@ class ExploreSitesImageHelperTest : public testing::Test { ...@@ -68,14 +63,11 @@ class ExploreSitesImageHelperTest : public testing::Test {
std::vector<std::unique_ptr<SkBitmap>> last_bitmap_list; std::vector<std::unique_ptr<SkBitmap>> last_bitmap_list;
data_decoder::DataDecoderService* data_decoder() { return &data_decoder_; }
protected: protected:
base::test::TaskEnvironment task_environment_; base::test::TaskEnvironment task_environment_;
std::unique_ptr<service_manager::Connector> GetConnector() {
return connector_factory_.CreateConnector();
}
service_manager::TestConnectorFactory connector_factory_;
data_decoder::DataDecoderService data_decoder_; data_decoder::DataDecoderService data_decoder_;
base::HistogramTester histogram_tester_; base::HistogramTester histogram_tester_;
}; };
...@@ -95,7 +87,7 @@ TEST_F(ExploreSitesImageHelperTest, TestImageHelper_SiteIcon) { ...@@ -95,7 +87,7 @@ TEST_F(ExploreSitesImageHelperTest, TestImageHelper_SiteIcon) {
ImageHelper image_helper; ImageHelper image_helper;
image_helper.ComposeSiteImage(StoreBitmap(), GetEncodedImageList(1), image_helper.ComposeSiteImage(StoreBitmap(), GetEncodedImageList(1),
GetConnector()); data_decoder());
task_environment_.RunUntilIdle(); task_environment_.RunUntilIdle();
...@@ -110,14 +102,14 @@ TEST_F(ExploreSitesImageHelperTest, TestImageHelper_SiteIcon) { ...@@ -110,14 +102,14 @@ TEST_F(ExploreSitesImageHelperTest, TestImageHelper_SiteIcon) {
TEST_F(ExploreSitesImageHelperTest, TestImageHelper_SiteIcon_MultipleCalls) { TEST_F(ExploreSitesImageHelperTest, TestImageHelper_SiteIcon_MultipleCalls) {
ImageHelper image_helper; ImageHelper image_helper;
image_helper.ComposeSiteImage(StoreBitmap(), GetEncodedImageList(1), image_helper.ComposeSiteImage(StoreBitmap(), GetEncodedImageList(1),
GetConnector()); data_decoder());
task_environment_.RunUntilIdle(); task_environment_.RunUntilIdle();
ASSERT_NE(nullptr, last_bitmap_list[0]); ASSERT_NE(nullptr, last_bitmap_list[0]);
EXPECT_FALSE(last_bitmap_list[0]->isNull()); EXPECT_FALSE(last_bitmap_list[0]->isNull());
image_helper.ComposeSiteImage(StoreBitmap(), GetEncodedImageList(1), image_helper.ComposeSiteImage(StoreBitmap(), GetEncodedImageList(1),
GetConnector()); data_decoder());
task_environment_.RunUntilIdle(); task_environment_.RunUntilIdle();
ASSERT_NE(nullptr, last_bitmap_list[1]); ASSERT_NE(nullptr, last_bitmap_list[1]);
...@@ -128,9 +120,9 @@ TEST_F(ExploreSitesImageHelperTest, TestImageHelper_SiteIcon_MultipleCalls) { ...@@ -128,9 +120,9 @@ TEST_F(ExploreSitesImageHelperTest, TestImageHelper_SiteIcon_MultipleCalls) {
TEST_F(ExploreSitesImageHelperTest, TestImageHelper_SiteIcon_ConcurrentCalls) { TEST_F(ExploreSitesImageHelperTest, TestImageHelper_SiteIcon_ConcurrentCalls) {
ImageHelper image_helper; ImageHelper image_helper;
image_helper.ComposeSiteImage(StoreBitmap(), GetEncodedImageList(1), image_helper.ComposeSiteImage(StoreBitmap(), GetEncodedImageList(1),
GetConnector()); data_decoder());
image_helper.ComposeSiteImage(StoreBitmap(), GetEncodedImageList(1), image_helper.ComposeSiteImage(StoreBitmap(), GetEncodedImageList(1),
GetConnector()); data_decoder());
task_environment_.RunUntilIdle(); task_environment_.RunUntilIdle();
ASSERT_NE(nullptr, last_bitmap_list[0]); ASSERT_NE(nullptr, last_bitmap_list[0]);
...@@ -143,7 +135,7 @@ TEST_F(ExploreSitesImageHelperTest, TestImageHelper_SiteIcon_ConcurrentCalls) { ...@@ -143,7 +135,7 @@ TEST_F(ExploreSitesImageHelperTest, TestImageHelper_SiteIcon_ConcurrentCalls) {
TEST_F(ExploreSitesImageHelperTest, TestImageHelper_CategoryImage_One) { TEST_F(ExploreSitesImageHelperTest, TestImageHelper_CategoryImage_One) {
ImageHelper image_helper; ImageHelper image_helper;
image_helper.ComposeCategoryImage(StoreBitmap(), kIconSize, image_helper.ComposeCategoryImage(StoreBitmap(), kIconSize,
GetEncodedImageList(1), GetConnector()); GetEncodedImageList(1), data_decoder());
task_environment_.RunUntilIdle(); task_environment_.RunUntilIdle();
ASSERT_NE(nullptr, last_bitmap_list[0]); ASSERT_NE(nullptr, last_bitmap_list[0]);
...@@ -170,7 +162,7 @@ TEST_F(ExploreSitesImageHelperTest, TestImageHelper_CategoryImage_One) { ...@@ -170,7 +162,7 @@ TEST_F(ExploreSitesImageHelperTest, TestImageHelper_CategoryImage_One) {
TEST_F(ExploreSitesImageHelperTest, TestImageHelper_CategoryImage_Two) { TEST_F(ExploreSitesImageHelperTest, TestImageHelper_CategoryImage_Two) {
ImageHelper image_helper; ImageHelper image_helper;
image_helper.ComposeCategoryImage(StoreBitmap(), kIconSize, image_helper.ComposeCategoryImage(StoreBitmap(), kIconSize,
GetEncodedImageList(2), GetConnector()); GetEncodedImageList(2), data_decoder());
task_environment_.RunUntilIdle(); task_environment_.RunUntilIdle();
ASSERT_NE(nullptr, last_bitmap_list[0]); ASSERT_NE(nullptr, last_bitmap_list[0]);
...@@ -196,7 +188,7 @@ TEST_F(ExploreSitesImageHelperTest, TestImageHelper_CategoryImage_Two) { ...@@ -196,7 +188,7 @@ TEST_F(ExploreSitesImageHelperTest, TestImageHelper_CategoryImage_Two) {
TEST_F(ExploreSitesImageHelperTest, TestImageHelper_CategoryImage_Three) { TEST_F(ExploreSitesImageHelperTest, TestImageHelper_CategoryImage_Three) {
ImageHelper image_helper; ImageHelper image_helper;
image_helper.ComposeCategoryImage(StoreBitmap(), kIconSize, image_helper.ComposeCategoryImage(StoreBitmap(), kIconSize,
GetEncodedImageList(3), GetConnector()); GetEncodedImageList(3), data_decoder());
task_environment_.RunUntilIdle(); task_environment_.RunUntilIdle();
ASSERT_NE(nullptr, last_bitmap_list[0]); ASSERT_NE(nullptr, last_bitmap_list[0]);
...@@ -225,7 +217,7 @@ TEST_F(ExploreSitesImageHelperTest, TestImageHelper_CategoryImage_Three) { ...@@ -225,7 +217,7 @@ TEST_F(ExploreSitesImageHelperTest, TestImageHelper_CategoryImage_Three) {
TEST_F(ExploreSitesImageHelperTest, TestImageHelper_CategoryImage_Four) { TEST_F(ExploreSitesImageHelperTest, TestImageHelper_CategoryImage_Four) {
ImageHelper image_helper; ImageHelper image_helper;
image_helper.ComposeCategoryImage(StoreBitmap(), kIconSize, image_helper.ComposeCategoryImage(StoreBitmap(), kIconSize,
GetEncodedImageList(4), GetConnector()); GetEncodedImageList(4), data_decoder());
task_environment_.RunUntilIdle(); task_environment_.RunUntilIdle();
ASSERT_NE(nullptr, last_bitmap_list[0]); ASSERT_NE(nullptr, last_bitmap_list[0]);
...@@ -265,7 +257,7 @@ TEST_F(ExploreSitesImageHelperTest, TestImageHelper_CategoryImage_InvalidWebP) { ...@@ -265,7 +257,7 @@ TEST_F(ExploreSitesImageHelperTest, TestImageHelper_CategoryImage_InvalidWebP) {
image_list.push_back(std::make_unique<EncodedImageBytes>(kWebpBytes)); image_list.push_back(std::make_unique<EncodedImageBytes>(kWebpBytes));
} }
image_helper.ComposeCategoryImage(StoreBitmap(), kIconSize, image_helper.ComposeCategoryImage(StoreBitmap(), kIconSize,
std::move(image_list), GetConnector()); std::move(image_list), data_decoder());
task_environment_.RunUntilIdle(); task_environment_.RunUntilIdle();
...@@ -284,7 +276,7 @@ TEST_F(ExploreSitesImageHelperTest, TestImageHelper_ImageDecodedUMA) { ...@@ -284,7 +276,7 @@ TEST_F(ExploreSitesImageHelperTest, TestImageHelper_ImageDecodedUMA) {
// Record one success UMA from CompseSiteImage. // Record one success UMA from CompseSiteImage.
image_helper.ComposeSiteImage(StoreBitmap(), GetEncodedImageList(1), image_helper.ComposeSiteImage(StoreBitmap(), GetEncodedImageList(1),
GetConnector()); data_decoder());
task_environment_.RunUntilIdle(); task_environment_.RunUntilIdle();
histograms().ExpectTotalCount("ExploreSites.ImageDecoded", 1); histograms().ExpectTotalCount("ExploreSites.ImageDecoded", 1);
...@@ -294,7 +286,7 @@ TEST_F(ExploreSitesImageHelperTest, TestImageHelper_ImageDecodedUMA) { ...@@ -294,7 +286,7 @@ TEST_F(ExploreSitesImageHelperTest, TestImageHelper_ImageDecodedUMA) {
EncodedImageList image_list; EncodedImageList image_list;
image_list.push_back(std::make_unique<EncodedImageBytes>(kInvalidWebpBytes)); image_list.push_back(std::make_unique<EncodedImageBytes>(kInvalidWebpBytes));
image_helper.ComposeSiteImage(StoreBitmap(), std::move(image_list), image_helper.ComposeSiteImage(StoreBitmap(), std::move(image_list),
GetConnector()); data_decoder());
task_environment_.RunUntilIdle(); task_environment_.RunUntilIdle();
histograms().ExpectTotalCount("ExploreSites.ImageDecoded", 2); histograms().ExpectTotalCount("ExploreSites.ImageDecoded", 2);
...@@ -302,7 +294,7 @@ TEST_F(ExploreSitesImageHelperTest, TestImageHelper_ImageDecodedUMA) { ...@@ -302,7 +294,7 @@ TEST_F(ExploreSitesImageHelperTest, TestImageHelper_ImageDecodedUMA) {
// Record 2 samples from ComposeCategoryImage. // Record 2 samples from ComposeCategoryImage.
image_helper.ComposeCategoryImage(StoreBitmap(), kIconSize, image_helper.ComposeCategoryImage(StoreBitmap(), kIconSize,
GetEncodedImageList(2), GetConnector()); GetEncodedImageList(2), data_decoder());
task_environment_.RunUntilIdle(); task_environment_.RunUntilIdle();
histograms().ExpectTotalCount("ExploreSites.ImageDecoded", 4); histograms().ExpectTotalCount("ExploreSites.ImageDecoded", 4);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment