Index: chrome/browser/extensions/api/debugger/debugger_api.cc |
=================================================================== |
--- chrome/browser/extensions/api/debugger/debugger_api.cc (revision 238220) |
+++ chrome/browser/extensions/api/debugger/debugger_api.cc (working copy) |
@@ -66,11 +66,7 @@ |
namespace OnEvent = extensions::api::debugger::OnEvent; |
namespace SendCommand = extensions::api::debugger::SendCommand; |
-namespace { |
-class ExtensionDevToolsInfoBarDelegate; |
-} // namespace |
- |
// ExtensionDevToolsClientHost ------------------------------------------------ |
class ExtensionDevToolsClientHost : public DevToolsClientHost, |
@@ -82,7 +78,7 @@ |
const std::string& extension_id, |
const std::string& extension_name, |
const Debuggee& debuggee, |
- ExtensionDevToolsInfoBarDelegate* infobar); |
+ InfoBar* infobar); |
virtual ~ExtensionDevToolsClientHost(); |
@@ -117,7 +113,7 @@ |
typedef std::map<int, scoped_refptr<DebuggerSendCommandFunction> > |
PendingRequests; |
PendingRequests pending_requests_; |
- ExtensionDevToolsInfoBarDelegate* infobar_; |
+ InfoBar* infobar_; |
OnDetach::Reason detach_reason_; |
DISALLOW_COPY_AND_ASSIGN(ExtensionDevToolsClientHost); |
@@ -145,12 +141,10 @@ |
class ExtensionDevToolsInfoBarDelegate : public ConfirmInfoBarDelegate { |
public: |
- // Creates an extension dev tools infobar delegate and adds it to the |
- // InfoBarService associated with |rvh|. Returns the delegate if it was |
+ // Creates an extension dev tools infobar and delegate and adds the infobar to |
+ // the InfoBarService associated with |rvh|. Returns the infobar if it was |
// successfully added. |
- static ExtensionDevToolsInfoBarDelegate* Create( |
- RenderViewHost* rvh, |
- const std::string& client_name); |
+ static InfoBar* Create(RenderViewHost* rvh, const std::string& client_name); |
void set_client_host(ExtensionDevToolsClientHost* client_host) { |
client_host_ = client_host; |
@@ -157,8 +151,7 @@ |
} |
private: |
- ExtensionDevToolsInfoBarDelegate(InfoBarService* infobar_service, |
- const std::string& client_name); |
+ explicit ExtensionDevToolsInfoBarDelegate(const std::string& client_name); |
virtual ~ExtensionDevToolsInfoBarDelegate(); |
// ConfirmInfoBarDelegate: |
@@ -177,7 +170,7 @@ |
}; |
// static |
-ExtensionDevToolsInfoBarDelegate* ExtensionDevToolsInfoBarDelegate::Create( |
+InfoBar* ExtensionDevToolsInfoBarDelegate::Create( |
RenderViewHost* rvh, |
const std::string& client_name) { |
if (!rvh) |
@@ -192,15 +185,14 @@ |
if (!infobar_service) |
return NULL; |
- return static_cast<ExtensionDevToolsInfoBarDelegate*>( |
- infobar_service->AddInfoBar(scoped_ptr<InfoBarDelegate>( |
- new ExtensionDevToolsInfoBarDelegate(infobar_service, client_name)))); |
+ return infobar_service->AddInfoBar(ConfirmInfoBarDelegate::CreateInfoBar( |
+ scoped_ptr<ConfirmInfoBarDelegate>( |
+ new ExtensionDevToolsInfoBarDelegate(client_name)))); |
} |
ExtensionDevToolsInfoBarDelegate::ExtensionDevToolsInfoBarDelegate( |
- InfoBarService* infobar_service, |
const std::string& client_name) |
- : ConfirmInfoBarDelegate(infobar_service), |
+ : ConfirmInfoBarDelegate(), |
client_name_(client_name), |
client_host_(NULL) { |
} |
@@ -303,7 +295,7 @@ |
const std::string& extension_id, |
const std::string& extension_name, |
const Debuggee& debuggee, |
- ExtensionDevToolsInfoBarDelegate* infobar) |
+ InfoBar* infobar) |
: profile_(profile), |
agent_host_(agent_host), |
extension_id_(extension_id), |
@@ -329,7 +321,8 @@ |
agent_host_.get(), this); |
if (infobar_) { |
- infobar_->set_client_host(this); |
+ static_cast<ExtensionDevToolsInfoBarDelegate*>( |
+ infobar_->delegate())->set_client_host(this); |
registrar_.Add( |
this, chrome::NOTIFICATION_TAB_CONTENTS_INFOBAR_REMOVED, |
content::Source<InfoBarService>(InfoBarService::FromWebContents( |
@@ -344,7 +337,8 @@ |
registrar_.RemoveAll(); |
if (infobar_) { |
- infobar_->set_client_host(NULL); |
+ static_cast<ExtensionDevToolsInfoBarDelegate*>( |
+ infobar_->delegate())->set_client_host(NULL); |
InfoBarService::FromWebContents(WebContents::FromRenderViewHost( |
agent_host_->GetRenderViewHost()))->RemoveInfoBar(infobar_); |
} |
@@ -569,13 +563,13 @@ |
return false; |
} |
- ExtensionDevToolsInfoBarDelegate* infobar = NULL; |
+ InfoBar* infobar = NULL; |
if (!CommandLine::ForCurrentProcess()-> |
HasSwitch(switches::kSilentDebuggerExtensionAPI)) { |
// Do not attach to the target if for any reason the infobar cannot be shown |
// for this WebContents instance. |
infobar = ExtensionDevToolsInfoBarDelegate::Create( |
- agent_host_->GetRenderViewHost(), GetExtension()->name()); |
+ agent_host_->GetRenderViewHost(), GetExtension()->name()); |
if (!infobar) { |
error_ = ErrorUtils::FormatErrorMessage( |
keys::kSilentDebuggingRequired, |