Index: chrome/browser/extensions/extension_install_prompt.cc |
diff --git a/chrome/browser/extensions/extension_install_prompt.cc b/chrome/browser/extensions/extension_install_prompt.cc |
index dff6daa29cd76320ad7dae0d3b19868b0923efa2..f38287f21d1b2d3d0e32bdb0c56c36189ace8c70 100644 |
--- a/chrome/browser/extensions/extension_install_prompt.cc |
+++ b/chrome/browser/extensions/extension_install_prompt.cc |
@@ -15,6 +15,7 @@ |
#include "base/utf_string_conversions.h" |
#include "chrome/browser/extensions/bundle_installer.h" |
#include "chrome/browser/extensions/extension_install_ui.h" |
+#include "chrome/browser/extensions/image_loader.h" |
#include "chrome/browser/prefs/pref_service.h" |
#include "chrome/browser/profiles/profile.h" |
#include "chrome/browser/signin/token_service.h" |
@@ -376,9 +377,9 @@ ExtensionInstallPrompt::ExtensionInstallPrompt( |
extension_(NULL), |
install_ui_(ExtensionInstallUI::Create(ProfileForWebContents(contents))), |
delegate_(NULL), |
- prompt_(ProfileForWebContents(contents), UNSET_PROMPT_TYPE), |
- prompt_type_(UNSET_PROMPT_TYPE), |
- ALLOW_THIS_IN_INITIALIZER_LIST(tracker_(this)) { |
+ profile_(ProfileForWebContents(contents)), |
+ prompt_(profile_, UNSET_PROMPT_TYPE), |
+ prompt_type_(UNSET_PROMPT_TYPE) { |
} |
ExtensionInstallPrompt::~ExtensionInstallPrompt() { |
@@ -529,16 +530,15 @@ void ExtensionInstallPrompt::SetIcon(const SkBitmap* image) { |
} |
} |
-void ExtensionInstallPrompt::OnImageLoaded(const gfx::Image& image, |
- const std::string& extension_id, |
- int index) { |
+void ExtensionInstallPrompt::OnImageLoaded(const gfx::Image& image) { |
SetIcon(image.IsEmpty() ? NULL : image.ToSkBitmap()); |
FetchOAuthIssueAdviceIfNeeded(); |
} |
void ExtensionInstallPrompt::LoadImageIfNeeded() { |
// Bundle install prompts do not have an icon. |
- if (!icon_.empty()) { |
+ // Also |profile_| can be NULL in unit tests. |
+ if (!icon_.empty() || !profile_) { |
FetchOAuthIssueAdviceIfNeeded(); |
return; |
} |
@@ -552,9 +552,9 @@ void ExtensionInstallPrompt::LoadImageIfNeeded() { |
// TODO(tbarzic): We should use IconImage here and load the required bitmap |
// lazily. |
int pixel_size = GetSizeForMaxScaleFactor(kIconSize); |
- tracker_.LoadImage(extension_, image, |
- gfx::Size(pixel_size, pixel_size), |
- ImageLoadingTracker::DONT_CACHE); |
+ extensions::ImageLoader::Get(profile_)->LoadImageAsync( |
+ extension_, image, gfx::Size(pixel_size, pixel_size), |
+ base::Bind(&ExtensionInstallPrompt::OnImageLoaded, AsWeakPtr())); |
} |
void ExtensionInstallPrompt::FetchOAuthIssueAdviceIfNeeded() { |