| Index: chrome/browser/extensions/extension_uninstall_dialog.cc
|
| diff --git a/chrome/browser/extensions/extension_uninstall_dialog.cc b/chrome/browser/extensions/extension_uninstall_dialog.cc
|
| index 467a3527b11b99d384404b7a171afa0ac6acecfd..019d5383127243afd1b13634ce8d1868cd59ae02 100644
|
| --- a/chrome/browser/extensions/extension_uninstall_dialog.cc
|
| +++ b/chrome/browser/extensions/extension_uninstall_dialog.cc
|
| @@ -45,20 +45,14 @@ SkBitmap GetDefaultIconBitmapForMaxScaleFactor(bool is_app) {
|
|
|
| ExtensionUninstallDialog::ExtensionUninstallDialog(
|
| Profile* profile,
|
| - Browser* browser,
|
| + gfx::NativeWindow parent,
|
| ExtensionUninstallDialog::Delegate* delegate)
|
| : profile_(profile),
|
| - browser_(browser),
|
| + parent_(parent),
|
| delegate_(delegate),
|
| extension_(NULL),
|
| triggering_extension_(NULL),
|
| - state_(kImageIsLoading),
|
| ui_loop_(base::MessageLoop::current()) {
|
| - if (browser) {
|
| - registrar_.Add(this,
|
| - chrome::NOTIFICATION_BROWSER_CLOSED,
|
| - content::Source<Browser>(browser));
|
| - }
|
| }
|
|
|
| ExtensionUninstallDialog::~ExtensionUninstallDialog() {
|
| @@ -82,7 +76,6 @@ void ExtensionUninstallDialog::ConfirmUninstall(const Extension* extension) {
|
| extension_, icon_size, ExtensionIconSet::MATCH_BIGGER);
|
|
|
| // Load the image asynchronously. The response will be sent to OnImageLoaded.
|
| - state_ = kImageIsLoading;
|
| ImageLoader* loader = ImageLoader::Get(profile_);
|
|
|
| std::vector<ImageLoader::ImageRepresentation> images_list;
|
| @@ -96,6 +89,7 @@ void ExtensionUninstallDialog::ConfirmUninstall(const Extension* extension) {
|
| base::Bind(&ExtensionUninstallDialog::OnImageLoaded,
|
| AsWeakPtr(),
|
| extension_->id()));
|
| + Show();
|
| }
|
|
|
| void ExtensionUninstallDialog::SetIcon(const gfx::Image& image) {
|
| @@ -123,30 +117,7 @@ void ExtensionUninstallDialog::OnImageLoaded(const std::string& extension_id,
|
| }
|
|
|
| SetIcon(image);
|
| -
|
| - // Show the dialog unless the browser has been closed while we were waiting
|
| - // for the image.
|
| - DCHECK(state_ == kImageIsLoading || state_ == kBrowserIsClosing);
|
| - if (state_ == kImageIsLoading) {
|
| - state_ = kDialogIsShowing;
|
| - Show();
|
| - }
|
| -}
|
| -
|
| -void ExtensionUninstallDialog::Observe(
|
| - int type,
|
| - const content::NotificationSource& source,
|
| - const content::NotificationDetails& details) {
|
| - DCHECK(type == chrome::NOTIFICATION_BROWSER_CLOSED);
|
| -
|
| - browser_ = NULL;
|
| - // If the browser is closed while waiting for the image, we need to send a
|
| - // "cancel" event here, because there will not be another opportunity to
|
| - // notify the delegate of the cancellation as we won't open the dialog.
|
| - if (state_ == kImageIsLoading) {
|
| - state_ = kBrowserIsClosing;
|
| - delegate_->ExtensionUninstallCanceled();
|
| - }
|
| + RefreshIcon();
|
| }
|
|
|
| std::string ExtensionUninstallDialog::GetHeadingText() {
|
|
|