| 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 fe9cbd461fbcbea8e56678cf0d8cc278d0b8f8f6..bc7aff976d09ad9a0955da2296fc9fcef546c301 100644
|
| --- a/headless/lib/browser/headless_web_contents_impl.cc
|
| +++ b/headless/lib/browser/headless_web_contents_impl.cc
|
| @@ -134,6 +134,15 @@ class HeadlessWebContentsImpl::Delegate : public content::WebContentsDelegate {
|
| DISALLOW_COPY_AND_ASSIGN(Delegate);
|
| };
|
|
|
| +namespace {
|
| +void ForwardToServiceFactory(
|
| + const base::Callback<void(mojo::InterfaceRequest<TabSocket>)>&
|
| + service_factory,
|
| + mojo::ScopedMessagePipeHandle handle) {
|
| + service_factory.Run(mojo::MakeRequest<TabSocket>(std::move(handle)));
|
| +}
|
| +} // namespace
|
| +
|
| // static
|
| std::unique_ptr<HeadlessWebContentsImpl> HeadlessWebContentsImpl::Create(
|
| HeadlessWebContents::Builder* builder) {
|
| @@ -149,9 +158,15 @@ std::unique_ptr<HeadlessWebContentsImpl> HeadlessWebContentsImpl::Create(
|
| if (builder->create_tab_socket_) {
|
| headless_web_contents->headless_tab_socket_ =
|
| base::MakeUnique<HeadlessTabSocketImpl>();
|
| - builder->AddMojoService(base::Bind(
|
| - &HeadlessTabSocketImpl::CreateMojoService,
|
| - base::Unretained(headless_web_contents->headless_tab_socket_.get())));
|
| +
|
| + builder->mojo_services_.emplace_back(
|
| + TabSocket::Name_,
|
| + base::Bind(
|
| + &ForwardToServiceFactory,
|
| + base::Bind(
|
| + &HeadlessTabSocketImpl::CreateMojoService,
|
| + base::Unretained(
|
| + headless_web_contents->headless_tab_socket_.get()))));
|
| }
|
|
|
| headless_web_contents->mojo_services_ = std::move(builder->mojo_services_);
|
| @@ -219,13 +234,6 @@ void HeadlessWebContentsImpl::RenderFrameCreated(
|
| browser_context_->SetFrameTreeNodeId(render_frame_host->GetProcess()->GetID(),
|
| render_frame_host->GetRoutingID(),
|
| render_frame_host->GetFrameTreeNodeId());
|
| -
|
| - std::string devtools_agent_host_id =
|
| - content::DevToolsAgentHost::GetOrCreateFor(render_frame_host)->GetId();
|
| - render_frame_host_to_devtools_agent_host_id_[render_frame_host] =
|
| - devtools_agent_host_id;
|
| - devtools_agent_id_to_frame_tree_node_id_[devtools_agent_host_id] =
|
| - render_frame_host->GetFrameTreeNodeId();
|
| }
|
|
|
| void HeadlessWebContentsImpl::RenderFrameDeleted(
|
| @@ -233,25 +241,6 @@ void HeadlessWebContentsImpl::RenderFrameDeleted(
|
| browser_context_->RemoveFrameTreeNode(
|
| render_frame_host->GetProcess()->GetID(),
|
| render_frame_host->GetRoutingID());
|
| -
|
| - auto find_it =
|
| - render_frame_host_to_devtools_agent_host_id_.find(render_frame_host);
|
| - if (find_it == render_frame_host_to_devtools_agent_host_id_.end())
|
| - return;
|
| -
|
| - devtools_agent_id_to_frame_tree_node_id_.erase(find_it->second);
|
| - render_frame_host_to_devtools_agent_host_id_.erase(find_it);
|
| -}
|
| -
|
| -bool HeadlessWebContentsImpl::GetFrameTreeNodeIdForDevToolsAgentHostId(
|
| - const std::string& devtools_agent_host_id,
|
| - int* frame_tree_node_id) const {
|
| - const auto& find_it =
|
| - devtools_agent_id_to_frame_tree_node_id_.find(devtools_agent_host_id);
|
| - if (find_it == devtools_agent_id_to_frame_tree_node_id_.end())
|
| - return false;
|
| - *frame_tree_node_id = find_it->second;
|
| - return true;
|
| }
|
|
|
| std::string
|
| @@ -392,14 +381,6 @@ HeadlessWebContents::Builder& HeadlessWebContents::Builder::SetWindowSize(
|
| return *this;
|
| }
|
|
|
| -HeadlessWebContents::Builder& HeadlessWebContents::Builder::AddMojoService(
|
| - const std::string& service_name,
|
| - const base::Callback<void(mojo::ScopedMessagePipeHandle)>&
|
| - service_factory) {
|
| - mojo_services_.emplace_back(service_name, service_factory);
|
| - return *this;
|
| -}
|
| -
|
| HeadlessWebContents::Builder& HeadlessWebContents::Builder::CreateTabSocket(
|
| bool create_tab_socket) {
|
| create_tab_socket_ = create_tab_socket;
|
|
|