| 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..a9bc987f434361aa1c7c24041936f1bf3578dcfd 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,
|
| @@ -122,6 +130,12 @@ HeadlessWebContentsImpl::~HeadlessWebContentsImpl() {
|
| web_contents_->Close();
|
| }
|
|
|
| +content::DevToolsAgentHost* HeadlessWebContentsImpl::EnsureDevToolsAgentHost() {
|
| + if (!agent_host_)
|
| + agent_host_ = content::DevToolsAgentHost::GetOrCreateFor(web_contents());
|
| + return agent_host_.get();
|
| +}
|
| +
|
| bool HeadlessWebContentsImpl::OpenURL(const GURL& url) {
|
| if (!url.is_valid())
|
| return false;
|
| @@ -137,6 +151,10 @@ void HeadlessWebContentsImpl::Close() {
|
| browser_->DestroyWebContents(this);
|
| }
|
|
|
| +std::string HeadlessWebContentsImpl::GetAgentHostId() {
|
| + return EnsureDevToolsAgentHost()->GetId();
|
| +}
|
| +
|
| void HeadlessWebContentsImpl::AddObserver(Observer* observer) {
|
| DCHECK(observer_map_.find(observer) == observer_map_.end());
|
| observer_map_[observer] = base::WrapUnique(
|
| @@ -154,9 +172,8 @@ 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());
|
| + HeadlessDevToolsClientImpl::From(client)->AttachToHost(
|
| + EnsureDevToolsAgentHost());
|
| }
|
|
|
| void HeadlessWebContentsImpl::DetachClient(HeadlessDevToolsClient* client) {
|
|
|