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

Side by Side Diff: chrome/browser/extensions/extension_web_ui.cc

Issue 11360233: Ensure that favicons always have 1x representation regardless of whether the platform supports it (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 1 month 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 "chrome/browser/extensions/extension_web_ui.h" 5 #include "chrome/browser/extensions/extension_web_ui.h"
6 6
7 #include <set> 7 #include <set>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/command_line.h" 10 #include "base/command_line.h"
11 #include "base/string_util.h" 11 #include "base/string_util.h"
12 #include "base/utf_string_conversions.h" 12 #include "base/utf_string_conversions.h"
13 #include "chrome/browser/bookmarks/bookmark_manager_extension_api.h" 13 #include "chrome/browser/bookmarks/bookmark_manager_extension_api.h"
14 #include "chrome/browser/extensions/extension_service.h" 14 #include "chrome/browser/extensions/extension_service.h"
15 #include "chrome/browser/extensions/extension_tab_util.h" 15 #include "chrome/browser/extensions/extension_tab_util.h"
16 #include "chrome/browser/extensions/image_loading_tracker.h" 16 #include "chrome/browser/extensions/image_loading_tracker.h"
17 #include "chrome/browser/favicon/favicon_util.h"
17 #include "chrome/browser/prefs/pref_service.h" 18 #include "chrome/browser/prefs/pref_service.h"
18 #include "chrome/browser/prefs/scoped_user_pref_update.h" 19 #include "chrome/browser/prefs/scoped_user_pref_update.h"
19 #include "chrome/browser/profiles/profile.h" 20 #include "chrome/browser/profiles/profile.h"
20 #include "chrome/browser/ui/browser.h" 21 #include "chrome/browser/ui/browser.h"
21 #include "chrome/browser/ui/tab_contents/tab_contents.h" 22 #include "chrome/browser/ui/tab_contents/tab_contents.h"
22 #include "chrome/browser/ui/tab_contents/tab_contents_iterator.h" 23 #include "chrome/browser/ui/tab_contents/tab_contents_iterator.h"
23 #include "chrome/common/chrome_switches.h" 24 #include "chrome/common/chrome_switches.h"
24 #include "chrome/common/extensions/extension.h" 25 #include "chrome/common/extensions/extension.h"
25 #include "chrome/common/extensions/extension_constants.h" 26 #include "chrome/common/extensions/extension_constants.h"
26 #include "chrome/common/extensions/extension_icon_set.h" 27 #include "chrome/common/extensions/extension_icon_set.h"
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 // Even when the extensions service is enabled by default, it's still 92 // Even when the extensions service is enabled by default, it's still
92 // disabled in incognito mode. 93 // disabled in incognito mode.
93 ExtensionService* service = profile->GetExtensionService(); 94 ExtensionService* service = profile->GetExtensionService();
94 if (service) 95 if (service)
95 extension_ = service->extensions()->GetByID(page_url.host()); 96 extension_ = service->extensions()->GetByID(page_url.host());
96 } 97 }
97 98
98 void Init() { 99 void Init() {
99 if (extension_) { 100 if (extension_) {
100 // Fetch resources for all supported scale factors for which there are 101 // Fetch resources for all supported scale factors for which there are
101 // resources. Load image reps for all supported scale factors immediately 102 // resources. Load image reps for all supported scale factors (in
102 // instead of in an as needed fashion to be consistent with how favicons 103 // addition to 1x) immediately instead of in an as needed fashion to be
103 // are requested for chrome:// and page URLs. 104 // consistent with how favicons are requested for chrome:// and page
105 // URLs.
104 const std::vector<ui::ScaleFactor>& scale_factors = 106 const std::vector<ui::ScaleFactor>& scale_factors =
105 ui::GetSupportedScaleFactors(); 107 FaviconUtil::GetFaviconScaleFactors();
106 std::vector<ImageLoadingTracker::ImageRepresentation> info_list; 108 std::vector<ImageLoadingTracker::ImageRepresentation> info_list;
107 for (size_t i = 0; i < scale_factors.size(); ++i) { 109 for (size_t i = 0; i < scale_factors.size(); ++i) {
108 float scale = ui::GetScaleFactorScale(scale_factors[i]); 110 float scale = ui::GetScaleFactorScale(scale_factors[i]);
109 int pixel_size = static_cast<int>(gfx::kFaviconSize * scale); 111 int pixel_size = static_cast<int>(gfx::kFaviconSize * scale);
110 ExtensionResource icon_resource = 112 ExtensionResource icon_resource =
111 extension_->GetIconResource(pixel_size, 113 extension_->GetIconResource(pixel_size,
112 ExtensionIconSet::MATCH_BIGGER); 114 ExtensionIconSet::MATCH_BIGGER);
113 115
114 info_list.push_back( 116 info_list.push_back(
115 ImageLoadingTracker::ImageRepresentation( 117 ImageLoadingTracker::ImageRepresentation(
(...skipping 346 matching lines...) Expand 10 before | Expand all | Expand 10 after
462 } 464 }
463 465
464 // static 466 // static
465 void ExtensionWebUI::GetFaviconForURL(Profile* profile, 467 void ExtensionWebUI::GetFaviconForURL(Profile* profile,
466 FaviconService::GetFaviconRequest* request, const GURL& page_url) { 468 FaviconService::GetFaviconRequest* request, const GURL& page_url) {
467 // tracker deletes itself when done. 469 // tracker deletes itself when done.
468 ExtensionWebUIImageLoadingTracker* tracker = 470 ExtensionWebUIImageLoadingTracker* tracker =
469 new ExtensionWebUIImageLoadingTracker(profile, request, page_url); 471 new ExtensionWebUIImageLoadingTracker(profile, request, page_url);
470 tracker->Init(); 472 tracker->Init();
471 } 473 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698