| Index: headless/lib/browser/headless_web_contents_impl.cc
|
| diff --git a/headless/lib/browser/headless_web_contents_impl.cc b/headless/lib/browser/headless_web_contents_impl.cc
|
| index b07cb2c7edef0e809b0bd0e3b756426ba09f6c88..0b10161f5cc562fc0652cebb3ef6103a3541a80c 100644
|
| --- a/headless/lib/browser/headless_web_contents_impl.cc
|
| +++ b/headless/lib/browser/headless_web_contents_impl.cc
|
| @@ -27,6 +27,14 @@
|
|
|
| namespace headless {
|
|
|
| +// static
|
| +HeadlessWebContentsImpl* HeadlessWebContentsImpl::From(
|
| + HeadlessWebContents* web_contents) {
|
| + // This downcast is safe because there is only one implementation of
|
| + // HeadlessWebContents.
|
| + return static_cast<HeadlessWebContentsImpl*>(web_contents);
|
| +}
|
| +
|
| class WebContentsObserverAdapter : public content::WebContentsObserver {
|
| public:
|
| WebContentsObserverAdapter(content::WebContents* web_contents,
|
| @@ -114,6 +122,7 @@ HeadlessWebContentsImpl::HeadlessWebContentsImpl(
|
| HeadlessBrowserImpl* browser)
|
| : web_contents_delegate_(new HeadlessWebContentsImpl::Delegate(browser)),
|
| web_contents_(web_contents),
|
| + agent_host_(content::DevToolsAgentHost::GetOrCreateFor(web_contents)),
|
| browser_(browser) {
|
| web_contents_->SetDelegate(web_contents_delegate_.get());
|
| }
|
| @@ -137,6 +146,10 @@ void HeadlessWebContentsImpl::Close() {
|
| browser_->DestroyWebContents(this);
|
| }
|
|
|
| +std::string HeadlessWebContentsImpl::GetDevtoolsAgentHostId() {
|
| + return agent_host_->GetId();
|
| +}
|
| +
|
| void HeadlessWebContentsImpl::AddObserver(Observer* observer) {
|
| DCHECK(observer_map_.find(observer) == observer_map_.end());
|
| observer_map_[observer] = base::WrapUnique(
|
| @@ -154,8 +167,6 @@ HeadlessDevToolsTarget* HeadlessWebContentsImpl::GetDevToolsTarget() {
|
| }
|
|
|
| void HeadlessWebContentsImpl::AttachClient(HeadlessDevToolsClient* client) {
|
| - if (!agent_host_)
|
| - agent_host_ = content::DevToolsAgentHost::GetOrCreateFor(web_contents());
|
| HeadlessDevToolsClientImpl::From(client)->AttachToHost(agent_host_.get());
|
| }
|
|
|
|
|