| Index: chrome/browser/extensions/theme_installed_infobar_delegate.cc
|
| ===================================================================
|
| --- chrome/browser/extensions/theme_installed_infobar_delegate.cc (revision 238220)
|
| +++ chrome/browser/extensions/theme_installed_infobar_delegate.cc (working copy)
|
| @@ -9,6 +9,7 @@
|
| #include "base/strings/utf_string_conversions.h"
|
| #include "chrome/browser/chrome_notification_types.h"
|
| #include "chrome/browser/extensions/extension_service.h"
|
| +#include "chrome/browser/infobars/infobar.h"
|
| #include "chrome/browser/infobars/infobar_service.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| #include "chrome/browser/themes/theme_service.h"
|
| @@ -47,16 +48,17 @@
|
| InfoBarService* infobar_service =
|
| InfoBarService::FromWebContents(web_contents);
|
| ThemeService* theme_service = ThemeServiceFactory::GetForProfile(profile);
|
| - scoped_ptr<InfoBarDelegate> new_infobar(new ThemeInstalledInfoBarDelegate(
|
| - infobar_service, profile->GetExtensionService(), theme_service, new_theme,
|
| - previous_theme_id, previous_using_native_theme));
|
| + scoped_ptr<InfoBar> new_infobar(ConfirmInfoBarDelegate::CreateInfoBar(
|
| + scoped_ptr<ConfirmInfoBarDelegate>(new ThemeInstalledInfoBarDelegate(
|
| + profile->GetExtensionService(), theme_service, new_theme,
|
| + previous_theme_id, previous_using_native_theme))));
|
|
|
| // If there's a previous theme infobar, just replace that instead of adding a
|
| // new one.
|
| for (size_t i = 0; i < infobar_service->infobar_count(); ++i) {
|
| - InfoBarDelegate* old_infobar = infobar_service->infobar_at(i);
|
| + InfoBar* old_infobar = infobar_service->infobar_at(i);
|
| ThemeInstalledInfoBarDelegate* theme_infobar =
|
| - old_infobar->AsThemePreviewInfobarDelegate();
|
| + old_infobar->delegate()->AsThemePreviewInfobarDelegate();
|
| if (theme_infobar) {
|
| // If the user installed the same theme twice, ignore the second install
|
| // and keep the first install info bar, so that they can easily undo to
|
| @@ -75,13 +77,12 @@
|
| }
|
|
|
| ThemeInstalledInfoBarDelegate::ThemeInstalledInfoBarDelegate(
|
| - InfoBarService* infobar_service,
|
| ExtensionService* extension_service,
|
| ThemeService* theme_service,
|
| const extensions::Extension* new_theme,
|
| const std::string& previous_theme_id,
|
| bool previous_using_native_theme)
|
| - : ConfirmInfoBarDelegate(infobar_service),
|
| + : ConfirmInfoBarDelegate(),
|
| extension_service_(extension_service),
|
| theme_service_(theme_service),
|
| name_(new_theme->name()),
|
| @@ -154,5 +155,5 @@
|
| // If the new theme is different from what this info bar is associated with,
|
| // close this info bar since it is no longer relevant.
|
| if (theme_id_ != theme_service_->GetThemeID())
|
| - RemoveSelf();
|
| + infobar()->RemoveSelf();
|
| }
|
|
|