Index: chrome/browser/ui/views/infobars/translate_infobar_base.cc |
=================================================================== |
--- chrome/browser/ui/views/infobars/translate_infobar_base.cc (revision 238220) |
+++ chrome/browser/ui/views/infobars/translate_infobar_base.cc (working copy) |
@@ -5,6 +5,7 @@ |
#include "chrome/browser/ui/views/infobars/translate_infobar_base.h" |
#include "base/strings/utf_string_conversions.h" |
+#include "chrome/browser/infobars/infobar.h" |
#include "chrome/browser/translate/translate_infobar_delegate.h" |
#include "chrome/browser/ui/views/infobars/after_translate_infobar.h" |
#include "chrome/browser/ui/views/infobars/before_translate_infobar.h" |
@@ -19,12 +20,14 @@ |
// TranslateInfoBarDelegate --------------------------------------------------- |
-InfoBar* TranslateInfoBarDelegate::CreateInfoBar(InfoBarService* owner) { |
- if (infobar_type_ == BEFORE_TRANSLATE) |
- return new BeforeTranslateInfoBar(owner, this); |
- if (infobar_type_ == AFTER_TRANSLATE) |
- return new AfterTranslateInfoBar(owner, this); |
- return new TranslateMessageInfoBar(owner, this); |
+// static |
+scoped_ptr<InfoBar> TranslateInfoBarDelegate::CreateInfoBar( |
+ scoped_ptr<TranslateInfoBarDelegate> delegate) { |
+ if (delegate->infobar_type() == BEFORE_TRANSLATE) |
+ return scoped_ptr<InfoBar>(new BeforeTranslateInfoBar(delegate.Pass())); |
+ if (delegate->infobar_type() == AFTER_TRANSLATE) |
+ return scoped_ptr<InfoBar>(new AfterTranslateInfoBar(delegate.Pass())); |
+ return scoped_ptr<InfoBar>(new TranslateMessageInfoBar(delegate.Pass())); |
} |
@@ -42,9 +45,9 @@ |
SchedulePaint(); |
} |
-TranslateInfoBarBase::TranslateInfoBarBase(InfoBarService* owner, |
- TranslateInfoBarDelegate* delegate) |
- : InfoBarView(owner, delegate), |
+TranslateInfoBarBase::TranslateInfoBarBase( |
+ scoped_ptr<TranslateInfoBarDelegate> delegate) |
+ : InfoBarView(delegate.PassAs<InfoBarDelegate>()), |
error_background_(InfoBarDelegate::WARNING_TYPE) { |
} |