Commit 28a79528 authored by prashant.n's avatar prashant.n Committed by Commit Bot

Fix crash in DarkModeImageClassifier::GetSamples().

For classifying images, DarkModeImageClassifier creates bitmap from
PaintImage. For empty paint images, this crashes. This patch prevents
classifying such empty paint images.

Bug: 1119761
Change-Id: I3961da716236b929cc5a6925ff5927d5e8f8ac60
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2368935
Commit-Queue: Prashant Nevase <prashant.n@samsung.com>
Reviewed-by: default avatarStephen Chenney <schenney@chromium.org>
Reviewed-by: default avatarPhilip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#801267}
parent eef4cc5c
......@@ -110,6 +110,10 @@ DarkModeClassification DarkModeImageClassifier::Classify(
const PaintImage& paint_image,
const SkRect& src,
const SkRect& dst) {
// Empty paint image cannot be classified.
if (!paint_image)
return DarkModeClassification::kDoNotApplyFilter;
DarkModeImageClassificationCache* cache =
DarkModeImageClassificationCache::GetInstance();
PaintImage::Id image_id = paint_image.stable_id();
......@@ -131,6 +135,8 @@ DarkModeClassification DarkModeImageClassifier::Classify(
bool DarkModeImageClassifier::GetBitmap(const PaintImage& paint_image,
const SkRect& src,
SkBitmap* bitmap) {
DCHECK(paint_image);
if (!src.width() || !src.height())
return false;
......
......@@ -150,6 +150,14 @@ TEST_F(DarkModeImageClassifierTest, FeaturesAndClassification) {
EXPECT_NEAR(0.0f, features.background_ratio, kEpsilon);
}
TEST_F(DarkModeImageClassifierTest, InvalidImage) {
PaintImage paint_image;
SkRect src = SkRect::MakeWH(50, 50);
SkRect dst = SkRect::MakeWH(50, 50);
EXPECT_EQ(image_classifier()->Classify(paint_image, src, dst),
DarkModeClassification::kDoNotApplyFilter);
}
TEST_F(DarkModeImageClassifierTest, Caching) {
PaintImage::Id image_id = PaintImage::GetNextId();
SkRect src1 = SkRect::MakeXYWH(0, 0, 50, 50);
......
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