Index: chrome/browser/extensions/extension_infobar_delegate.cc |
=================================================================== |
--- chrome/browser/extensions/extension_infobar_delegate.cc (revision 238220) |
+++ chrome/browser/extensions/extension_infobar_delegate.cc (working copy) |
@@ -16,8 +16,6 @@ |
#include "extensions/common/extension.h" |
ExtensionInfoBarDelegate::~ExtensionInfoBarDelegate() { |
- if (observer_) |
- observer_->OnDelegateDeleted(); |
} |
// static |
@@ -26,23 +24,21 @@ |
const extensions::Extension* extension, |
const GURL& url, |
int height) { |
- infobar_service->AddInfoBar(scoped_ptr<InfoBarDelegate>( |
- new ExtensionInfoBarDelegate(browser, infobar_service, extension, url, |
- infobar_service->web_contents(), height))); |
+ infobar_service->AddInfoBar(ExtensionInfoBarDelegate::CreateInfoBar( |
+ scoped_ptr<ExtensionInfoBarDelegate>(new ExtensionInfoBarDelegate( |
+ browser, extension, url, infobar_service->web_contents(), height)))); |
} |
ExtensionInfoBarDelegate::ExtensionInfoBarDelegate( |
Browser* browser, |
- InfoBarService* infobar_service, |
const extensions::Extension* extension, |
const GURL& url, |
content::WebContents* web_contents, |
int height) |
- : InfoBarDelegate(infobar_service), |
+ : InfoBarDelegate(), |
#if defined(TOOLKIT_VIEWS) |
browser_(browser), |
#endif |
- observer_(NULL), |
extension_(extension), |
closing_(false) { |
extension_view_host_.reset( |
@@ -54,21 +50,15 @@ |
registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_UNLOADED, |
content::Source<Profile>(browser->profile())); |
-#if defined(TOOLKIT_VIEWS) || defined(TOOLKIT_GTK) || defined(OS_ANDROID) |
- // TODO(dtrainor): On Android, this is not used. Might need to pull this from |
- // Android UI level in the future. Tracked via issue 115303. |
- int default_height = InfoBar::kDefaultBarTargetHeight; |
-#elif defined(OS_MACOSX) |
- // TODO(pkasting): Once Infobars have been ported to Mac, we can remove the |
- // ifdefs and just use the Infobar constant below. |
- int default_height = 36; |
-#endif |
height_ = std::max(0, height); |
- height_ = std::min(2 * default_height, height_); |
+ height_ = std::min(2 * InfoBar::kDefaultBarTargetHeight, height_); |
if (height_ == 0) |
- height_ = default_height; |
+ height_ = InfoBar::kDefaultBarTargetHeight; |
} |
+// ExtensionInfoBarDelegate::CreateInfoBar() is implemented in platform-specific |
+// files. |
+ |
bool ExtensionInfoBarDelegate::EqualsDelegate(InfoBarDelegate* delegate) const { |
ExtensionInfoBarDelegate* extension_delegate = |
delegate->AsExtensionInfoBarDelegate(); |
@@ -105,11 +95,11 @@ |
if (type == chrome::NOTIFICATION_EXTENSION_HOST_VIEW_SHOULD_CLOSE) { |
if (extension_view_host_.get() == |
content::Details<extensions::ExtensionHost>(details).ptr()) |
- RemoveSelf(); |
+ infobar()->RemoveSelf(); |
} else { |
DCHECK(type == chrome::NOTIFICATION_EXTENSION_UNLOADED); |
if (extension_ == content::Details<extensions::UnloadedExtensionInfo>( |
details)->extension) |
- RemoveSelf(); |
+ infobar()->RemoveSelf(); |
} |
} |