Index: chrome/browser/managed_mode/managed_mode_navigation_observer.cc |
=================================================================== |
--- chrome/browser/managed_mode/managed_mode_navigation_observer.cc (revision 175396) |
+++ chrome/browser/managed_mode/managed_mode_navigation_observer.cc (working copy) |
@@ -22,9 +22,12 @@ |
class ManagedModeWarningInfobarDelegate : public ConfirmInfoBarDelegate { |
public: |
- explicit ManagedModeWarningInfobarDelegate(InfoBarService* infobar_service); |
+ // Creates a managed mode warning delegate and adds it to |infobar_service|. |
+ // Returns the delegate if it was successfully added. |
+ static InfoBarDelegate* Create(InfoBarService* infobar_service); |
private: |
+ explicit ManagedModeWarningInfobarDelegate(InfoBarService* infobar_service); |
virtual ~ManagedModeWarningInfobarDelegate(); |
// ConfirmInfoBarDelegate overrides: |
@@ -64,6 +67,13 @@ |
web_contents->GetDelegate()->CloseContents(web_contents); |
} |
+// static |
+InfoBarDelegate* ManagedModeWarningInfobarDelegate::Create( |
+ InfoBarService* infobar_service) { |
+ return infobar_service->AddInfoBar(scoped_ptr<InfoBarDelegate>( |
+ new ManagedModeWarningInfobarDelegate(infobar_service))); |
+} |
+ |
ManagedModeWarningInfobarDelegate::ManagedModeWarningInfobarDelegate( |
InfoBarService* infobar_service) |
: ConfirmInfoBarDelegate(infobar_service) {} |
@@ -138,11 +148,8 @@ |
if (behavior == ManagedModeURLFilter::WARN) { |
if (!warn_infobar_delegate_) { |
- InfoBarService* infobar_service = |
- InfoBarService::FromWebContents(web_contents()); |
- warn_infobar_delegate_ = |
- new ManagedModeWarningInfobarDelegate(infobar_service); |
- infobar_service->AddInfoBar(warn_infobar_delegate_); |
+ warn_infobar_delegate_ = ManagedModeWarningInfobarDelegate::Create( |
+ InfoBarService::FromWebContents(web_contents())); |
} |
} else { |
if (warn_infobar_delegate_) { |