summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/extension_install_ui.cc
diff options
context:
space:
mode:
authoraa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-08-11 18:37:38 +0000
committeraa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-08-11 18:37:38 +0000
commit1e09a50056d013f04f980855e8c0c5a424070985 (patch)
tree1b86f0df4c12e0098be5790b26c56cf23571d943 /chrome/browser/extensions/extension_install_ui.cc
parent601298ebd4745c16d156c0a85fcf800acf110997 (diff)
downloadchromium_src-1e09a50056d013f04f980855e8c0c5a424070985.zip
chromium_src-1e09a50056d013f04f980855e8c0c5a424070985.tar.gz
chromium_src-1e09a50056d013f04f980855e8c0c5a424070985.tar.bz2
Make the theme install infobar have an 'undo' button instead
of a 'back to default' button. BUG=18986 TEST=none Review URL: http://codereview.chromium.org/164312 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23055 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/extension_install_ui.cc')
-rw-r--r--chrome/browser/extensions/extension_install_ui.cc11
1 files changed, 8 insertions, 3 deletions
diff --git a/chrome/browser/extensions/extension_install_ui.cc b/chrome/browser/extensions/extension_install_ui.cc
index cfc5e54..a2c9258 100644
--- a/chrome/browser/extensions/extension_install_ui.cc
+++ b/chrome/browser/extensions/extension_install_ui.cc
@@ -37,6 +37,11 @@ void ExtensionInstallUI::ConfirmInstall(CrxInstaller* installer,
// immediately installed, and then we show an infobar (see OnInstallSuccess)
// to allow the user to revert if they don't like it.
if (extension->IsTheme()) {
+ // Remember the current theme in case the user pressed undo.
+ Extension* previous_theme = profile_->GetTheme();
+ if (previous_theme)
+ previous_theme_id_ = previous_theme->id();
+
installer->ContinueInstall();
return;
}
@@ -100,8 +105,8 @@ void ExtensionInstallUI::OnOverinstallAttempted(Extension* extension) {
ShowThemeInfoBar(extension);
}
-void ExtensionInstallUI::ShowThemeInfoBar(Extension* extension) {
- if (!extension->IsTheme())
+void ExtensionInstallUI::ShowThemeInfoBar(Extension* new_theme) {
+ if (!new_theme->IsTheme())
return;
Browser* browser = BrowserList::GetLastActiveWithProfile(profile_);
@@ -124,7 +129,7 @@ void ExtensionInstallUI::ShowThemeInfoBar(Extension* extension) {
// Then either replace that old one or add a new one.
InfoBarDelegate* new_delegate = new ThemePreviewInfobarDelegate(tab_contents,
- extension->name());
+ new_theme->name(), previous_theme_id_);
if (old_delegate)
tab_contents->ReplaceInfoBar(old_delegate, new_delegate);