summaryrefslogtreecommitdiffstats
path: root/chrome/browser/themes
diff options
context:
space:
mode:
authordavemoore@chromium.org <davemoore@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-09-24 03:25:48 +0000
committerdavemoore@chromium.org <davemoore@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-09-24 03:25:48 +0000
commit50b66263c3a926fd1de75248fb2100e72715696e (patch)
treea4ad06309d29bacf1c6de692a20f7d214f8ea7ab /chrome/browser/themes
parent2fa342b8ed9c8777f78b3ba8b344dab24a04ef97 (diff)
downloadchromium_src-50b66263c3a926fd1de75248fb2100e72715696e.zip
chromium_src-50b66263c3a926fd1de75248fb2100e72715696e.tar.gz
chromium_src-50b66263c3a926fd1de75248fb2100e72715696e.tar.bz2
Remove dependency on ui::ScaleFactor from ui/gfx
As part of the work to removed dependencies on ui/base from ui/gfx I have changed the public api to Canvas, ImageSkia, ImageSkiaRep and ImagePNGRep to take float scale values instead of ui::ScaleFactor. The notion of supported scale factors has been broken into 2 parts. ui::SetSupportedScaleFactors remains and calls the new ImageSkia::SetSupportedScales(). The initialization of the supported scale factors has been moved from layout.h into ResourceBundle, and is done explicitly in tests that don't use ResourceBundle. BUG=103304 R=ben@chromium.org, oshima@chromium.org, sky@chromium.org Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=224473 Review URL: https://codereview.chromium.org/24175004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@224876 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/themes')
-rw-r--r--chrome/browser/themes/browser_theme_pack.cc49
-rw-r--r--chrome/browser/themes/browser_theme_pack_unittest.cc28
2 files changed, 39 insertions, 38 deletions
diff --git a/chrome/browser/themes/browser_theme_pack.cc b/chrome/browser/themes/browser_theme_pack.cc
index 988450e..6f163af 100644
--- a/chrome/browser/themes/browser_theme_pack.cc
+++ b/chrome/browser/themes/browser_theme_pack.cc
@@ -245,7 +245,7 @@ bool InputScalesValid(const base::StringPiece& input,
// Do a memcpy to avoid misaligned memory access.
memcpy(scales.get(), input.data(), input.size());
for (size_t index = 0; index < scales_size; ++index) {
- if (scales[index] != ui::GetScaleFactorScale(expected[index]))
+ if (scales[index] != ui::GetImageScale(expected[index]))
return false;
}
return true;
@@ -256,7 +256,7 @@ std::string GetScaleFactorsAsString(
const std::vector<ui::ScaleFactor>& scale_factors) {
scoped_ptr<float[]> scales(new float[scale_factors.size()]);
for (size_t i = 0; i < scale_factors.size(); ++i)
- scales[i] = ui::GetScaleFactorScale(scale_factors[i]);
+ scales[i] = ui::GetImageScale(scale_factors[i]);
std::string out_string = std::string(
reinterpret_cast<const char*>(scales.get()),
scale_factors.size() * sizeof(float));
@@ -452,8 +452,8 @@ SkBitmap CreateLowQualityResizedBitmap(const SkBitmap& source_bitmap,
gfx::Size scaled_size = gfx::ToCeiledSize(
gfx::ScaleSize(gfx::Size(source_bitmap.width(),
source_bitmap.height()),
- ui::GetScaleFactorScale(desired_scale_factor) /
- ui::GetScaleFactorScale(source_scale_factor)));
+ ui::GetImageScale(desired_scale_factor) /
+ ui::GetImageScale(source_scale_factor)));
SkBitmap scaled_bitmap;
scaled_bitmap.setConfig(SkBitmap::kARGB_8888_Config,
scaled_size.width(),
@@ -477,17 +477,15 @@ class ThemeImageSource: public gfx::ImageSkiaSource {
}
virtual ~ThemeImageSource() {}
- virtual gfx::ImageSkiaRep GetImageForScale(
- ui::ScaleFactor scale_factor) OVERRIDE {
- if (source_.HasRepresentation(scale_factor))
- return source_.GetRepresentation(scale_factor);
- const gfx::ImageSkiaRep& rep_100p =
- source_.GetRepresentation(ui::SCALE_FACTOR_100P);
+ virtual gfx::ImageSkiaRep GetImageForScale(float scale) OVERRIDE {
+ if (source_.HasRepresentation(scale))
+ return source_.GetRepresentation(scale);
+ const gfx::ImageSkiaRep& rep_100p = source_.GetRepresentation(1.0f);
SkBitmap scaled_bitmap = CreateLowQualityResizedBitmap(
rep_100p.sk_bitmap(),
ui::SCALE_FACTOR_100P,
- scale_factor);
- return gfx::ImageSkiaRep(scaled_bitmap, scale_factor);
+ ui::GetSupportedScaleFactor(scale));
+ return gfx::ImageSkiaRep(scaled_bitmap, scale);
}
private:
@@ -509,13 +507,13 @@ class ThemeImagePngSource : public gfx::ImageSkiaSource {
virtual ~ThemeImagePngSource() {}
private:
- virtual gfx::ImageSkiaRep GetImageForScale(
- ui::ScaleFactor scale_factor) OVERRIDE {
+ virtual gfx::ImageSkiaRep GetImageForScale(float scale) OVERRIDE {
+ ui::ScaleFactor scale_factor = ui::GetSupportedScaleFactor(scale);
// Look up the bitmap for |scale factor| in the bitmap map. If found
// return it.
BitmapMap::const_iterator exact_bitmap_it = bitmap_map_.find(scale_factor);
if (exact_bitmap_it != bitmap_map_.end())
- return gfx::ImageSkiaRep(exact_bitmap_it->second, scale_factor);
+ return gfx::ImageSkiaRep(exact_bitmap_it->second, scale);
// Look up the raw PNG data for |scale_factor| in the png map. If found,
// decode it, store the result in the bitmap map and return it.
@@ -529,7 +527,7 @@ class ThemeImagePngSource : public gfx::ImageSkiaSource {
return gfx::ImageSkiaRep();
}
bitmap_map_[scale_factor] = bitmap;
- return gfx::ImageSkiaRep(bitmap, scale_factor);
+ return gfx::ImageSkiaRep(bitmap, scale);
}
// Find an available PNG for another scale factor. We want to use the
@@ -538,8 +536,8 @@ class ThemeImagePngSource : public gfx::ImageSkiaSource {
for (PngMap::const_iterator png_it = png_map_.begin();
png_it != png_map_.end(); ++png_it) {
if (available_png_it == png_map_.end() ||
- ui::GetScaleFactorScale(png_it->first) >
- ui::GetScaleFactorScale(available_png_it->first)) {
+ ui::GetImageScale(png_it->first) >
+ ui::GetImageScale(available_png_it->first)) {
available_png_it = png_it;
}
}
@@ -571,7 +569,7 @@ class ThemeImagePngSource : public gfx::ImageSkiaSource {
available_scale_factor,
scale_factor);
bitmap_map_[scale_factor] = scaled_bitmap;
- return gfx::ImageSkiaRep(scaled_bitmap, scale_factor);
+ return gfx::ImageSkiaRep(scaled_bitmap, scale);
}
PngMap png_map_;
@@ -1285,7 +1283,8 @@ bool BrowserThemePack::LoadRawBitmapsTo(
if (gfx::PNGCodec::Decode(raw_data->front(), raw_data->size(),
&bitmap)) {
image_skia.AddRepresentation(
- gfx::ImageSkiaRep(bitmap, scale_factor));
+ gfx::ImageSkiaRep(bitmap,
+ ui::GetImageScale(scale_factor)));
} else {
NOTREACHED() << "Unable to decode theme image resource "
<< it->first;
@@ -1473,7 +1472,9 @@ void BrowserThemePack::RepackImages(const ImageCache& images,
NOTREACHED() << "Image file for resource " << it->first
<< " could not be encoded.";
}
- int raw_id = GetRawIDByPersistentID(it->first, rep_it->scale_factor());
+ int raw_id = GetRawIDByPersistentID(
+ it->first,
+ ui::GetSupportedScaleFactor(rep_it->scale()));
(*reencoded_images)[raw_id] =
base::RefCountedBytes::TakeVector(&bitmap_data);
}
@@ -1533,7 +1534,7 @@ bool BrowserThemePack::GetScaleFactorFromManifestKey(
if (base::StringToInt(key, &percent)) {
float scale = static_cast<float>(percent) / 100.0f;
for (size_t i = 0; i < scale_factors_.size(); ++i) {
- if (fabs(ui::GetScaleFactorScale(scale_factors_[i]) - scale) < 0.001) {
+ if (fabs(ui::GetImageScale(scale_factors_[i]) - scale) < 0.001) {
*scale_factor = scale_factors_[i];
return true;
}
@@ -1570,8 +1571,8 @@ void BrowserThemePack::GenerateRawImageForAllSupportedScales(int prs_id) {
for (size_t i = 0; i < scale_factors_.size(); ++i) {
int raw_id = GetRawIDByPersistentID(prs_id, scale_factors_[i]);
if ((available_scale_factor == ui::SCALE_FACTOR_NONE ||
- (ui::GetScaleFactorScale(scale_factors_[i]) >
- ui::GetScaleFactorScale(available_scale_factor))) &&
+ (ui::GetImageScale(scale_factors_[i]) >
+ ui::GetImageScale(available_scale_factor))) &&
image_memory_.find(raw_id) != image_memory_.end()) {
available_scale_factor = scale_factors_[i];
}
diff --git a/chrome/browser/themes/browser_theme_pack_unittest.cc b/chrome/browser/themes/browser_theme_pack_unittest.cc
index b2fd658..7d41e55 100644
--- a/chrome/browser/themes/browser_theme_pack_unittest.cc
+++ b/chrome/browser/themes/browser_theme_pack_unittest.cc
@@ -36,8 +36,13 @@ class BrowserThemePackTest : public ::testing::Test {
BrowserThemePackTest()
: message_loop(),
fake_ui_thread(BrowserThread::UI, &message_loop),
- fake_file_thread(BrowserThread::FILE, &message_loop),
- theme_pack_(new BrowserThemePack) {
+ fake_file_thread(BrowserThread::FILE, &message_loop) {
+ std::vector<ui::ScaleFactor> scale_factors;
+ scale_factors.push_back(ui::SCALE_FACTOR_100P);
+ scale_factors.push_back(ui::SCALE_FACTOR_200P);
+ scoped_set_supported_scale_factors_.reset(
+ new ui::test::ScopedSetSupportedScaleFactors(scale_factors));
+ theme_pack_ = new BrowserThemePack();
}
// Transformation for link underline colors.
@@ -270,8 +275,7 @@ class BrowserThemePackTest : public ::testing::Test {
const gfx::ImageSkia* image_skia = image.ToImageSkia();
ASSERT_TRUE(image_skia);
// Scale 100%.
- const gfx::ImageSkiaRep& rep1 = image_skia->GetRepresentation(
- ui::SCALE_FACTOR_100P);
+ const gfx::ImageSkiaRep& rep1 = image_skia->GetRepresentation(1.0f);
ASSERT_FALSE(rep1.is_null());
EXPECT_EQ(80, rep1.sk_bitmap().width());
EXPECT_EQ(80, rep1.sk_bitmap().height());
@@ -283,8 +287,7 @@ class BrowserThemePackTest : public ::testing::Test {
EXPECT_EQ(SkColorSetRGB( 0, 241, 237), rep1.sk_bitmap().getColor(32, 32));
rep1.sk_bitmap().unlockPixels();
// Scale 200%.
- const gfx::ImageSkiaRep& rep2 = image_skia->GetRepresentation(
- ui::SCALE_FACTOR_200P);
+ const gfx::ImageSkiaRep& rep2 = image_skia->GetRepresentation(2.0f);
ASSERT_FALSE(rep2.is_null());
EXPECT_EQ(160, rep2.sk_bitmap().width());
EXPECT_EQ(160, rep2.sk_bitmap().height());
@@ -312,8 +315,7 @@ class BrowserThemePackTest : public ::testing::Test {
image_skia = image.ToImageSkia();
ASSERT_TRUE(image_skia);
// Scale 100%.
- const gfx::ImageSkiaRep& rep3 = image_skia->GetRepresentation(
- ui::SCALE_FACTOR_100P);
+ const gfx::ImageSkiaRep& rep3 = image_skia->GetRepresentation(1.0f);
ASSERT_FALSE(rep3.is_null());
EXPECT_EQ(80, rep3.sk_bitmap().width());
EXPECT_EQ(80, rep3.sk_bitmap().height());
@@ -335,8 +337,7 @@ class BrowserThemePackTest : public ::testing::Test {
EXPECT_EQ(static_cast<size_t>(9), normal.size());
rep3.sk_bitmap().unlockPixels();
// Scale 200%.
- const gfx::ImageSkiaRep& rep4 = image_skia->GetRepresentation(
- ui::SCALE_FACTOR_200P);
+ const gfx::ImageSkiaRep& rep4 = image_skia->GetRepresentation(2.0f);
ASSERT_FALSE(rep4.is_null());
EXPECT_EQ(160, rep4.sk_bitmap().width());
EXPECT_EQ(160, rep4.sk_bitmap().height());
@@ -355,6 +356,9 @@ class BrowserThemePackTest : public ::testing::Test {
content::TestBrowserThread fake_ui_thread;
content::TestBrowserThread fake_file_thread;
+ typedef scoped_ptr<ui::test::ScopedSetSupportedScaleFactors>
+ ScopedSetSupportedScaleFactors;
+ ScopedSetSupportedScaleFactors scoped_set_supported_scale_factors_;
scoped_refptr<BrowserThemePack> theme_pack_;
};
@@ -584,10 +588,6 @@ TEST_F(BrowserThemePackTest, CanBuildAndReadPack) {
}
TEST_F(BrowserThemePackTest, HiDpiThemeTest) {
- std::vector<ui::ScaleFactor> scale_factors;
- scale_factors.push_back(ui::SCALE_FACTOR_100P);
- scale_factors.push_back(ui::SCALE_FACTOR_200P);
- ui::test::ScopedSetSupportedScaleFactors test_scale_factors(scale_factors);
base::ScopedTempDir dir;
ASSERT_TRUE(dir.CreateUniqueTempDir());
base::FilePath file = dir.path().AppendASCII("theme_data.pak");