 Chromium Code Reviews
 Chromium Code Reviews| Index: ui/base/resource/resource_bundle.cc | 
| diff --git a/ui/base/resource/resource_bundle.cc b/ui/base/resource/resource_bundle.cc | 
| index 8afa15b608988d97be8981edc0f61467667a3c13..af674403333e5bb2feba3007758f9bf395eb808b 100644 | 
| --- a/ui/base/resource/resource_bundle.cc | 
| +++ b/ui/base/resource/resource_bundle.cc | 
| @@ -390,12 +390,14 @@ gfx::Image& ResourceBundle::GetImageNamed(int resource_id) { | 
| DCHECK(!data_packs_.empty()) << | 
| "Missing call to SetResourcesDataDLL?"; | 
| -#if defined(OS_CHROMEOS) || defined(OS_WIN) | 
| - ui::ScaleFactor scale_factor_to_load = GetMaxScaleFactor(); | 
| +#if defined(OS_CHROMEOS) | 
| + ui::ScaleFactor scale_factor_to_load = GetMaxScaleFactor(); | 
| +#if defined(OS_WIN) | 
| + ui::ScaleFactor scale_factor_to_load = | 
| + gfx::GetDPIScale() > 1.25 ? GetMaxScaleFactor() : ui::SCALE_FACTOR_100P; | 
| #else | 
| - ui::ScaleFactor scale_factor_to_load = ui::SCALE_FACTOR_100P; | 
| + ui::ScaleFactor scale_factor_to_load = ui::SCALE_FACTOR_100P; | 
| #endif | 
| - | 
| // TODO(oshima): Consider reading the image size from png IHDR chunk and | 
| // skip decoding here and remove #ifdef below. | 
| // ResourceBundle::GetSharedInstance() is destroyed after the | 
| @@ -610,7 +612,7 @@ void ResourceBundle::ReloadFonts() { | 
| } | 
| ScaleFactor ResourceBundle::GetMaxScaleFactor() const { | 
| -#if defined(OS_CHROMEOS) || defined(OS_WIN) | 
| +#if defined(OS_CHROMEOS) || defined(OS_WIN) || defined(OS_LINUX) | 
| return max_scale_factor_; | 
| #else | 
| return GetSupportedScaleFactors().back(); | 
| @@ -642,7 +644,7 @@ void ResourceBundle::InitSharedInstance(Delegate* delegate) { | 
| DCHECK(g_shared_instance_ == NULL) << "ResourceBundle initialized twice"; | 
| g_shared_instance_ = new ResourceBundle(delegate); | 
| static std::vector<ScaleFactor> supported_scale_factors; | 
| -#if !defined(OS_IOS) && !defined(OS_WIN) | 
| +#if !defined(OS_IOS) | 
| // On platforms other than iOS, 100P is always a supported scale factor. | 
| // For Windows we have a separate case in this function. | 
| supported_scale_factors.push_back(SCALE_FACTOR_100P); | 
| @@ -672,22 +674,8 @@ void ResourceBundle::InitSharedInstance(Delegate* delegate) { | 
| #elif defined(OS_MACOSX) | 
| if (base::mac::IsOSLionOrLater()) | 
| supported_scale_factors.push_back(SCALE_FACTOR_200P); | 
| -#elif defined(OS_CHROMEOS) | 
| - // TODO(oshima): Include 200P only if the device support 200P | 
| +#elif defined(OS_CHROMEOS) || defined(OS_LINUX) || defined(OS_WIN) | 
| supported_scale_factors.push_back(SCALE_FACTOR_200P); | 
| -#elif defined(OS_LINUX) && BUILDFLAG(ENABLE_HIDPI) | 
| - supported_scale_factors.push_back(SCALE_FACTOR_200P); | 
| -#elif defined(OS_WIN) | 
| - bool default_to_100P = true; | 
| - // On Windows if the dpi scale is greater than 1.25 on high dpi machines | 
| - // downscaling from 200 percent looks better than scaling up from 100 | 
| - // percent. | 
| 
oshima
2016/03/28 18:46:47
ImageSkia uses 2.0 assets for 1.25 so this is no l
 | 
| - if (gfx::GetDPIScale() > 1.25) { | 
| - supported_scale_factors.push_back(SCALE_FACTOR_200P); | 
| - default_to_100P = false; | 
| - } | 
| - if (default_to_100P) | 
| - supported_scale_factors.push_back(SCALE_FACTOR_100P); | 
| #endif | 
| ui::SetSupportedScaleFactors(supported_scale_factors); | 
| } |