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

Side by Side Diff: ui/base/resource/resource_bundle.cc

Issue 211493009: Ensure that extension resources are loaded with the correct scaling applied on Windows. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix try server errors Created 6 years, 9 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "ui/base/resource/resource_bundle.h" 5 #include "ui/base/resource/resource_bundle.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/big_endian.h" 9 #include "base/big_endian.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after
346 } 346 }
347 347
348 gfx::Image image; 348 gfx::Image image;
349 if (delegate_) 349 if (delegate_)
350 image = delegate_->GetImageNamed(resource_id); 350 image = delegate_->GetImageNamed(resource_id);
351 351
352 if (image.IsEmpty()) { 352 if (image.IsEmpty()) {
353 DCHECK(!data_packs_.empty()) << 353 DCHECK(!data_packs_.empty()) <<
354 "Missing call to SetResourcesDataDLL?"; 354 "Missing call to SetResourcesDataDLL?";
355 355
356 float scale = PlatformGetImageScale(); 356 #if defined(OS_CHROMEOS)
357 ui::ScaleFactor scale_factor_to_load = GetMaxScaleFactor();
358 #else
359 ui::ScaleFactor scale_factor_to_load = ui::SCALE_FACTOR_100P;
360 #endif
361
362 float scale = PlatformGetImageScale(scale_factor_to_load);
357 363
358 // TODO(oshima): Consider reading the image size from png IHDR chunk and 364 // TODO(oshima): Consider reading the image size from png IHDR chunk and
359 // skip decoding here and remove #ifdef below. 365 // skip decoding here and remove #ifdef below.
360 // ResourceBundle::GetSharedInstance() is destroyed after the 366 // ResourceBundle::GetSharedInstance() is destroyed after the
361 // BrowserMainLoop has finished running. |image_skia| is guaranteed to be 367 // BrowserMainLoop has finished running. |image_skia| is guaranteed to be
362 // destroyed before the resource bundle is destroyed. 368 // destroyed before the resource bundle is destroyed.
363 gfx::ImageSkia image_skia(new ResourceBundleImageSource(this, resource_id), 369 gfx::ImageSkia image_skia(new ResourceBundleImageSource(this, resource_id),
364 scale); 370 scale);
365 if (image_skia.isNull()) { 371 if (image_skia.isNull()) {
366 LOG(WARNING) << "Unable to load image with id " << resource_id; 372 LOG(WARNING) << "Unable to load image with id " << resource_id;
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
520 } 526 }
521 527
522 ScaleFactor ResourceBundle::GetMaxScaleFactor() const { 528 ScaleFactor ResourceBundle::GetMaxScaleFactor() const {
523 #if defined(OS_CHROMEOS) || defined(OS_WIN) 529 #if defined(OS_CHROMEOS) || defined(OS_WIN)
524 return max_scale_factor_; 530 return max_scale_factor_;
525 #else 531 #else
526 return GetSupportedScaleFactors().back(); 532 return GetSupportedScaleFactors().back();
527 #endif 533 #endif
528 } 534 }
529 535
536 #if !defined(OS_WIN)
537 // static
538 float ResourceBundle::PlatformGetImageScale(
539 ui::ScaleFactor scale_factor) {
540 return GetImageScale(scale_factor);
541 }
542 #endif
543
530 ResourceBundle::ResourceBundle(Delegate* delegate) 544 ResourceBundle::ResourceBundle(Delegate* delegate)
531 : delegate_(delegate), 545 : delegate_(delegate),
532 images_and_fonts_lock_(new base::Lock), 546 images_and_fonts_lock_(new base::Lock),
533 locale_resources_data_lock_(new base::Lock), 547 locale_resources_data_lock_(new base::Lock),
534 max_scale_factor_(SCALE_FACTOR_100P) { 548 max_scale_factor_(SCALE_FACTOR_100P) {
535 } 549 }
536 550
537 ResourceBundle::~ResourceBundle() { 551 ResourceBundle::~ResourceBundle() {
538 FreeImages(); 552 FreeImages();
539 UnloadLocaleResources(); 553 UnloadLocaleResources();
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after
816 return gfx::PNGCodec::Decode(buf, size, bitmap); 830 return gfx::PNGCodec::Decode(buf, size, bitmap);
817 } 831 }
818 832
819 #if !defined(OS_WIN) 833 #if !defined(OS_WIN)
820 // static 834 // static
821 SkBitmap ResourceBundle::PlatformScaleImage(const SkBitmap& image, 835 SkBitmap ResourceBundle::PlatformScaleImage(const SkBitmap& image,
822 float loaded_image_scale, 836 float loaded_image_scale,
823 float desired_scale) { 837 float desired_scale) {
824 return image; 838 return image;
825 } 839 }
826
827 float ResourceBundle::PlatformGetImageScale() {
828 #if defined(OS_CHROMEOS)
829 ui::ScaleFactor scale_factor_to_load = GetMaxScaleFactor();
830 #else
831 ui::ScaleFactor scale_factor_to_load = ui::SCALE_FACTOR_100P;
832 #endif
833 return GetImageScale(scale_factor_to_load);
834 }
835 #endif 840 #endif
836 841
837 } // namespace ui 842 } // namespace ui
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698