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

Side by Side Diff: chrome/browser/ui/app_list/extension_app_item.cc

Issue 10868003: chromeos: Fix pixelated icons in app list and launcher (part 3) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix win compile Created 8 years, 3 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 "chrome/browser/ui/app_list/extension_app_item.h" 5 #include "chrome/browser/ui/app_list/extension_app_item.h"
6 6
7 #include "base/utf_string_conversions.h" 7 #include "base/utf_string_conversions.h"
8 #include "chrome/browser/extensions/extension_prefs.h" 8 #include "chrome/browser/extensions/extension_prefs.h"
9 #include "chrome/browser/extensions/extension_service.h" 9 #include "chrome/browser/extensions/extension_service.h"
10 #include "chrome/browser/extensions/extension_system.h" 10 #include "chrome/browser/extensions/extension_system.h"
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
144 144
145 bool ExtensionAppItem::IsTalkExtension() const { 145 bool ExtensionAppItem::IsTalkExtension() const {
146 // Test most likely version first. 146 // Test most likely version first.
147 return extension_id_ == extension_misc::kTalkExtensionId || 147 return extension_id_ == extension_misc::kTalkExtensionId ||
148 extension_id_ == extension_misc::kTalkBetaExtensionId || 148 extension_id_ == extension_misc::kTalkBetaExtensionId ||
149 extension_id_ == extension_misc::kTalkAlphaExtensionId || 149 extension_id_ == extension_misc::kTalkAlphaExtensionId ||
150 extension_id_ == extension_misc::kTalkDebugExtensionId; 150 extension_id_ == extension_misc::kTalkDebugExtensionId;
151 } 151 }
152 152
153 void ExtensionAppItem::LoadImage(const Extension* extension) { 153 void ExtensionAppItem::LoadImage(const Extension* extension) {
154 tracker_.reset(new ImageLoadingTracker(this)); 154 icon_.reset(new extensions::IconImage(
155 tracker_->LoadImage(extension, 155 extension,
156 extension->GetIconResource( 156 extension->icons(),
157 extension_misc::EXTENSION_ICON_LARGE, 157 extension_misc::EXTENSION_ICON_MEDIUM,
158 ExtensionIconSet::MATCH_BIGGER), 158 Extension::GetDefaultIcon(true),
159 gfx::Size(extension_misc::EXTENSION_ICON_LARGE, 159 this));
160 extension_misc::EXTENSION_ICON_LARGE), 160 SetIcon(icon_->image_skia());
161 ImageLoadingTracker::DONT_CACHE);
162 } 161 }
163 162
164 void ExtensionAppItem::ShowExtensionOptions() { 163 void ExtensionAppItem::ShowExtensionOptions() {
165 const Extension* extension = GetExtension(); 164 const Extension* extension = GetExtension();
166 if (!extension) 165 if (!extension)
167 return; 166 return;
168 167
169 chrome::NavigateParams params(profile_, 168 chrome::NavigateParams params(profile_,
170 extension->options_url(), 169 extension->options_url(),
171 content::PAGE_TRANSITION_LINK); 170 content::PAGE_TRANSITION_LINK);
(...skipping 11 matching lines...) Expand all
183 chrome::Navigate(&params); 182 chrome::Navigate(&params);
184 } 183 }
185 184
186 void ExtensionAppItem::StartExtensionUninstall() { 185 void ExtensionAppItem::StartExtensionUninstall() {
187 // ExtensionUninstall deletes itself when done or aborted. 186 // ExtensionUninstall deletes itself when done or aborted.
188 ExtensionUninstaller* uninstaller = new ExtensionUninstaller(profile_, 187 ExtensionUninstaller* uninstaller = new ExtensionUninstaller(profile_,
189 extension_id_); 188 extension_id_);
190 uninstaller->Run(); 189 uninstaller->Run();
191 } 190 }
192 191
193 void ExtensionAppItem::OnImageLoaded(const gfx::Image& image, 192 void ExtensionAppItem::OnExtensionIconImageChanged(
194 const std::string& extension_id, 193 extensions::IconImage* image) {
195 int tracker_index) { 194 DCHECK(icon_.get() == image);
196 if (!image.IsEmpty()) { 195 SetIcon(icon_->image_skia());
197 gfx::ImageSkia image_skia = *image.ToImageSkia();
198 image_skia.MakeThreadSafe();
199 SetIcon(image_skia);
200 } else {
201 gfx::ImageSkia image_skia(Extension::GetDefaultIcon(true /* is_app */));
202 image_skia.MakeThreadSafe();
203 SetIcon(image_skia);
204 }
205 } 196 }
206 197
207 bool ExtensionAppItem::IsItemForCommandIdDynamic(int command_id) const { 198 bool ExtensionAppItem::IsItemForCommandIdDynamic(int command_id) const {
208 return command_id == TOGGLE_PIN; 199 return command_id == TOGGLE_PIN;
209 } 200 }
210 201
211 string16 ExtensionAppItem::GetLabelForCommandId(int command_id) const { 202 string16 ExtensionAppItem::GetLabelForCommandId(int command_id) const {
212 if (command_id == TOGGLE_PIN) { 203 if (command_id == TOGGLE_PIN) {
213 return controller_->IsAppPinned(extension_id_) ? 204 return controller_->IsAppPinned(extension_id_) ?
214 l10n_util::GetStringUTF16(IDS_APP_LIST_CONTEXT_MENU_UNPIN) : 205 l10n_util::GetStringUTF16(IDS_APP_LIST_CONTEXT_MENU_UNPIN) :
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
330 } 321 }
331 context_menu_model_->AddSeparator(ui::NORMAL_SEPARATOR); 322 context_menu_model_->AddSeparator(ui::NORMAL_SEPARATOR);
332 context_menu_model_->AddItemWithStringId(OPTIONS, IDS_NEW_TAB_APP_OPTIONS); 323 context_menu_model_->AddItemWithStringId(OPTIONS, IDS_NEW_TAB_APP_OPTIONS);
333 context_menu_model_->AddItemWithStringId(DETAILS, IDS_NEW_TAB_APP_DETAILS); 324 context_menu_model_->AddItemWithStringId(DETAILS, IDS_NEW_TAB_APP_DETAILS);
334 context_menu_model_->AddItemWithStringId(UNINSTALL, 325 context_menu_model_->AddItemWithStringId(UNINSTALL,
335 IDS_EXTENSIONS_UNINSTALL); 326 IDS_EXTENSIONS_UNINSTALL);
336 } 327 }
337 328
338 return context_menu_model_.get(); 329 return context_menu_model_.get();
339 } 330 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698