1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "components/infobars/core/infobar_delegate.h" 6 7 #include "base/logging.h" 8 #include "build/build_config.h" 9 #include "components/infobars/core/infobar.h" 10 #include "components/infobars/core/infobar_manager.h" 11 #include "ui/base/resource/resource_bundle.h" 12 13 namespace infobars { 14 15 const int InfoBarDelegate::kNoIconID = 0; 16 ~InfoBarDelegate()17InfoBarDelegate::~InfoBarDelegate() { 18 } 19 20 InfoBarDelegate::InfoBarAutomationType GetInfoBarAutomationType() const21 InfoBarDelegate::GetInfoBarAutomationType() const { 22 return UNKNOWN_INFOBAR; 23 } 24 EqualsDelegate(InfoBarDelegate * delegate) const25bool InfoBarDelegate::EqualsDelegate(InfoBarDelegate* delegate) const { 26 return false; 27 } 28 ShouldExpire(const NavigationDetails & details) const29bool InfoBarDelegate::ShouldExpire(const NavigationDetails& details) const { 30 if (!details.is_navigation_to_different_page) 31 return false; 32 33 return ShouldExpireInternal(details); 34 } 35 InfoBarDismissed()36void InfoBarDelegate::InfoBarDismissed() { 37 } 38 GetIconID() const39int InfoBarDelegate::GetIconID() const { 40 return kNoIconID; 41 } 42 GetInfoBarType() const43InfoBarDelegate::Type InfoBarDelegate::GetInfoBarType() const { 44 return WARNING_TYPE; 45 } 46 AsAutoLoginInfoBarDelegate()47AutoLoginInfoBarDelegate* InfoBarDelegate::AsAutoLoginInfoBarDelegate() { 48 return NULL; 49 } 50 AsConfirmInfoBarDelegate()51ConfirmInfoBarDelegate* InfoBarDelegate::AsConfirmInfoBarDelegate() { 52 return NULL; 53 } 54 AsExtensionInfoBarDelegate()55ExtensionInfoBarDelegate* InfoBarDelegate::AsExtensionInfoBarDelegate() { 56 return NULL; 57 } 58 59 InsecureContentInfoBarDelegate* AsInsecureContentInfoBarDelegate()60 InfoBarDelegate::AsInsecureContentInfoBarDelegate() { 61 return NULL; 62 } 63 AsMediaStreamInfoBarDelegate()64MediaStreamInfoBarDelegate* InfoBarDelegate::AsMediaStreamInfoBarDelegate() { 65 return NULL; 66 } 67 AsPopupBlockedInfoBarDelegate()68PopupBlockedInfoBarDelegate* InfoBarDelegate::AsPopupBlockedInfoBarDelegate() { 69 return NULL; 70 } 71 72 RegisterProtocolHandlerInfoBarDelegate* AsRegisterProtocolHandlerInfoBarDelegate()73 InfoBarDelegate::AsRegisterProtocolHandlerInfoBarDelegate() { 74 return NULL; 75 } 76 77 ScreenCaptureInfoBarDelegate* AsScreenCaptureInfoBarDelegate()78 InfoBarDelegate::AsScreenCaptureInfoBarDelegate() { 79 return NULL; 80 } 81 82 ThemeInstalledInfoBarDelegate* AsThemePreviewInfobarDelegate()83 InfoBarDelegate::AsThemePreviewInfobarDelegate() { 84 return NULL; 85 } 86 AsTranslateInfoBarDelegate()87TranslateInfoBarDelegate* InfoBarDelegate::AsTranslateInfoBarDelegate() { 88 return NULL; 89 } 90 StoreActiveEntryUniqueID()91void InfoBarDelegate::StoreActiveEntryUniqueID() { 92 contents_unique_id_ = infobar()->owner()->GetActiveEntryID(); 93 } 94 GetIcon() const95gfx::Image InfoBarDelegate::GetIcon() const { 96 int icon_id = GetIconID(); 97 return (icon_id == kNoIconID) ? gfx::Image() : 98 ResourceBundle::GetSharedInstance().GetNativeImageNamed(icon_id); 99 } 100 InfoBarDelegate()101InfoBarDelegate::InfoBarDelegate() : contents_unique_id_(0) { 102 } 103 ShouldExpireInternal(const NavigationDetails & details) const104bool InfoBarDelegate::ShouldExpireInternal( 105 const NavigationDetails& details) const { 106 // NOTE: If you change this, be sure to check and adjust the behavior of 107 // anyone who overrides this as necessary! 108 return (contents_unique_id_ != details.entry_id) || details.is_reload; 109 } 110 111 } // namespace infobars 112