| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 183 chrome::Navigate(¶ms); | 182 chrome::Navigate(¶ms); |
| 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 Loading... |
| 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 } |
| OLD | NEW |