diff options
author | mpcomplete@chromium.org <mpcomplete@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-18 22:53:47 +0000 |
---|---|---|
committer | mpcomplete@chromium.org <mpcomplete@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-18 22:53:47 +0000 |
commit | 86693068111d56f16fd2ceee6bb87ac72030e371 (patch) | |
tree | eaab33bc7911a31d022781ec35b7fe1efbfffadc /chrome/browser/views/extensions | |
parent | f1aadb738b716d2e32392023b9eb7b75eac59f07 (diff) | |
download | chromium_src-86693068111d56f16fd2ceee6bb87ac72030e371.zip chromium_src-86693068111d56f16fd2ceee6bb87ac72030e371.tar.gz chromium_src-86693068111d56f16fd2ceee6bb87ac72030e371.tar.bz2 |
Show the extension install UI when the user clicks Reenable for a disabled-on-upgrade extension.
Also fix a couple misc bugs with disabled extensions:
- Fix a crash when trying to reenable an uninstalled disabled extension.
- Fix a bug where upgrading a disabled extension would reenable it.
BUG=12140
TEST=no
Review URL: http://codereview.chromium.org/172006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23675 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/views/extensions')
-rw-r--r-- | chrome/browser/views/extensions/extension_install_prompt.cc | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/chrome/browser/views/extensions/extension_install_prompt.cc b/chrome/browser/views/extensions/extension_install_prompt.cc index e110464..6c58914 100644 --- a/chrome/browser/views/extensions/extension_install_prompt.cc +++ b/chrome/browser/views/extensions/extension_install_prompt.cc @@ -35,9 +35,10 @@ const int kRightColumnWidth = 290; // We could have a collection of funny descriptions for each color. class InstallDialogContent : public views::View, public views::DialogDelegate { public: - InstallDialogContent(CrxInstaller* crx_installer, Extension* extension, + InstallDialogContent(ExtensionInstallUI::Delegate* delegate, + Extension* extension, SkBitmap* icon) - : crx_installer_(crx_installer), icon_(NULL) { + : delegate_(delegate), icon_(NULL) { if (icon) { icon_ = new views::ImageView(); icon_->SetImage(*icon); @@ -93,12 +94,12 @@ class InstallDialogContent : public views::View, public views::DialogDelegate { } virtual bool Accept() { - crx_installer_->ContinueInstall(); + delegate_->ContinueInstall(); return true; } virtual bool Cancel() { - crx_installer_->AbortInstall(); + delegate_->AbortInstall(); return true; } @@ -162,7 +163,7 @@ class InstallDialogContent : public views::View, public views::DialogDelegate { y += severe_->height(); } - scoped_refptr<CrxInstaller> crx_installer_; + ExtensionInstallUI::Delegate* delegate_; views::ImageView* icon_; views::Label* heading_; views::Label* warning_; @@ -174,21 +175,21 @@ class InstallDialogContent : public views::View, public views::DialogDelegate { } // namespace void ExtensionInstallUI::ShowExtensionInstallPrompt(Profile* profile, - CrxInstaller* crx_installer, + Delegate* delegate, Extension* extension, SkBitmap* icon) { Browser* browser = BrowserList::GetLastActiveWithProfile(profile); if (!browser) { - crx_installer->AbortInstall(); + delegate->ContinueInstall(); return; } BrowserWindow* window = browser->window(); if (!window) { - crx_installer->AbortInstall(); + delegate->AbortInstall(); return; } views::Window::CreateChromeWindow(window->GetNativeHandle(), gfx::Rect(), - new InstallDialogContent(crx_installer, extension, icon))->Show(); + new InstallDialogContent(delegate, extension, icon))->Show(); } |