Commit e1b546ea authored by Julie Jeongeun Kim's avatar Julie Jeongeun Kim Committed by Commit Bot

Convert devtools_agent.mojom to new Mojo types

This CL converts DevToolsSessionHost and DevToolsSession
to new Mojo types.

The changes are two CLs and it is the first CL and the
second on is [1].

It updates AttachDevToolsSession and ChildWorkerCreated
from devtools_agent.mojom

It also converted methods and members which take these
DevToolsAgent and DevToolsAgentHost to new Mojo types.

SharedWorkerDevToolsAgentHost::WorkerReadyForInspection
and ServiceWorkerDevToolsAgentHost::WorkerReadyForInspection
still keep old types and these are handled at [1] with
the rest of code which still uses old types.

[1] https://crrev.com/c/1748906

Bug: 955171, 978694
Change-Id: I2d67a390b3299bfd71d4539857973481f349849e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1745944Reviewed-by: default avatarKen Rockot <rockot@google.com>
Reviewed-by: default avatarAndrey Kosyakov <caseq@chromium.org>
Reviewed-by: default avatarKinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Julie Kim <jkim@igalia.com>
Cr-Commit-Position: refs/heads/master@{#686352}
parent 623fea77
...@@ -19,41 +19,51 @@ namespace content { ...@@ -19,41 +19,51 @@ namespace content {
DevToolsRendererChannel::DevToolsRendererChannel(DevToolsAgentHostImpl* owner) DevToolsRendererChannel::DevToolsRendererChannel(DevToolsAgentHostImpl* owner)
: owner_(owner), : owner_(owner),
binding_(this),
associated_binding_(this),
process_id_(ChildProcessHost::kInvalidUniqueID) {} process_id_(ChildProcessHost::kInvalidUniqueID) {}
DevToolsRendererChannel::~DevToolsRendererChannel() = default; DevToolsRendererChannel::~DevToolsRendererChannel() = default;
void DevToolsRendererChannel::SetRenderer( void DevToolsRendererChannel::SetRenderer(
blink::mojom::DevToolsAgentPtr agent_ptr, mojo::PendingRemote<blink::mojom::DevToolsAgent> agent_remote,
blink::mojom::DevToolsAgentHostRequest host_request, mojo::PendingReceiver<blink::mojom::DevToolsAgentHost> host_receiver,
int process_id, int process_id,
RenderFrameHostImpl* frame_host) { RenderFrameHostImpl* frame_host,
base::OnceClosure connection_error) {
CleanupConnection(); CleanupConnection();
agent_ptr_ = std::move(agent_ptr); blink::mojom::DevToolsAgent* agent = nullptr;
if (host_request) if (agent_remote.is_valid()) {
binding_.Bind(std::move(host_request)); agent_remote_.Bind(std::move(agent_remote));
SetRendererInternal(agent_ptr_.get(), process_id, frame_host); agent = agent_remote_.get();
}
if (connection_error)
agent_remote_.set_disconnect_handler(std::move(connection_error));
if (host_receiver)
receiver_.Bind(std::move(host_receiver));
SetRendererInternal(agent, process_id, frame_host);
} }
void DevToolsRendererChannel::SetRendererAssociated( void DevToolsRendererChannel::SetRendererAssociated(
blink::mojom::DevToolsAgentAssociatedPtr agent_ptr, mojo::PendingAssociatedRemote<blink::mojom::DevToolsAgent> agent_remote,
blink::mojom::DevToolsAgentHostAssociatedRequest host_request, mojo::PendingAssociatedReceiver<blink::mojom::DevToolsAgentHost>
host_receiver,
int process_id, int process_id,
RenderFrameHostImpl* frame_host) { RenderFrameHostImpl* frame_host) {
CleanupConnection(); CleanupConnection();
associated_agent_ptr_ = std::move(agent_ptr); blink::mojom::DevToolsAgent* agent = nullptr;
if (host_request) if (agent_remote.is_valid()) {
associated_binding_.Bind(std::move(host_request)); associated_agent_remote_.Bind(std::move(agent_remote));
SetRendererInternal(associated_agent_ptr_.get(), process_id, frame_host); agent = associated_agent_remote_.get();
}
if (host_receiver)
associated_receiver_.Bind(std::move(host_receiver));
SetRendererInternal(agent, process_id, frame_host);
} }
void DevToolsRendererChannel::CleanupConnection() { void DevToolsRendererChannel::CleanupConnection() {
binding_.Close(); receiver_.reset();
associated_binding_.Close(); associated_receiver_.reset();
associated_agent_ptr_ = nullptr; associated_agent_remote_.reset();
agent_ptr_ = nullptr; agent_remote_.reset();
} }
void DevToolsRendererChannel::ForceDetachWorkerSessions() { void DevToolsRendererChannel::ForceDetachWorkerSessions() {
...@@ -81,25 +91,25 @@ void DevToolsRendererChannel::SetRendererInternal( ...@@ -81,25 +91,25 @@ void DevToolsRendererChannel::SetRendererInternal(
} }
void DevToolsRendererChannel::AttachSession(DevToolsSession* session) { void DevToolsRendererChannel::AttachSession(DevToolsSession* session) {
if (!agent_ptr_ && !associated_agent_ptr_) if (!agent_remote_ && !associated_agent_remote_)
owner_->UpdateRendererChannel(true /* force */); owner_->UpdateRendererChannel(true /* force */);
for (auto& pair : session->handlers()) for (auto& pair : session->handlers())
pair.second->SetRenderer(process_id_, frame_host_); pair.second->SetRenderer(process_id_, frame_host_);
if (agent_ptr_) if (agent_remote_)
session->AttachToAgent(agent_ptr_.get()); session->AttachToAgent(agent_remote_.get());
else if (associated_agent_ptr_) else if (associated_agent_remote_)
session->AttachToAgent(associated_agent_ptr_.get()); session->AttachToAgent(associated_agent_remote_.get());
} }
void DevToolsRendererChannel::InspectElement(const gfx::Point& point) { void DevToolsRendererChannel::InspectElement(const gfx::Point& point) {
if (!agent_ptr_ && !associated_agent_ptr_) if (!agent_remote_ && !associated_agent_remote_)
owner_->UpdateRendererChannel(true /* force */); owner_->UpdateRendererChannel(true /* force */);
// Previous call might update |agent_ptr_| or |associated_agent_ptr_| // Previous call might update |agent_remote_| or |associated_agent_remote_|
// via SetRenderer(), so we should check them again. // via SetRenderer(), so we should check them again.
if (agent_ptr_) if (agent_remote_)
agent_ptr_->InspectElement(point); agent_remote_->InspectElement(point);
else if (associated_agent_ptr_) else if (associated_agent_remote_)
associated_agent_ptr_->InspectElement(point); associated_agent_remote_->InspectElement(point);
} }
void DevToolsRendererChannel::SetReportChildWorkers( void DevToolsRendererChannel::SetReportChildWorkers(
...@@ -122,13 +132,13 @@ void DevToolsRendererChannel::SetReportChildWorkers( ...@@ -122,13 +132,13 @@ void DevToolsRendererChannel::SetReportChildWorkers(
wait_for_debugger_attachers_.insert(attacher); wait_for_debugger_attachers_.insert(attacher);
else else
wait_for_debugger_attachers_.erase(attacher); wait_for_debugger_attachers_.erase(attacher);
if (agent_ptr_) { if (agent_remote_) {
agent_ptr_->ReportChildWorkers( agent_remote_->ReportChildWorkers(
!report_attachers_.empty(), !wait_for_debugger_attachers_.empty(), !report_attachers_.empty(), !wait_for_debugger_attachers_.empty(),
base::BindOnce(&DevToolsRendererChannel::ReportChildWorkersCallback, base::BindOnce(&DevToolsRendererChannel::ReportChildWorkersCallback,
base::Unretained(this))); base::Unretained(this)));
} else if (associated_agent_ptr_) { } else if (associated_agent_remote_) {
associated_agent_ptr_->ReportChildWorkers( associated_agent_remote_->ReportChildWorkers(
!report_attachers_.empty(), !wait_for_debugger_attachers_.empty(), !report_attachers_.empty(), !wait_for_debugger_attachers_.empty(),
base::BindOnce(&DevToolsRendererChannel::ReportChildWorkersCallback, base::BindOnce(&DevToolsRendererChannel::ReportChildWorkersCallback,
base::Unretained(this))); base::Unretained(this)));
...@@ -143,8 +153,8 @@ void DevToolsRendererChannel::ReportChildWorkersCallback() { ...@@ -143,8 +153,8 @@ void DevToolsRendererChannel::ReportChildWorkersCallback() {
} }
void DevToolsRendererChannel::ChildWorkerCreated( void DevToolsRendererChannel::ChildWorkerCreated(
blink::mojom::DevToolsAgentPtr worker_devtools_agent, mojo::PendingRemote<blink::mojom::DevToolsAgent> worker_devtools_agent,
blink::mojom::DevToolsAgentHostRequest host_request, mojo::PendingReceiver<blink::mojom::DevToolsAgentHost> host_receiver,
const GURL& url, const GURL& url,
const std::string& name, const std::string& name,
const base::UnguessableToken& devtools_worker_token, const base::UnguessableToken& devtools_worker_token,
...@@ -159,7 +169,7 @@ void DevToolsRendererChannel::ChildWorkerCreated( ...@@ -159,7 +169,7 @@ void DevToolsRendererChannel::ChildWorkerCreated(
GURL filtered_url = url; GURL filtered_url = url;
process->FilterURL(true /* empty_allowed */, &filtered_url); process->FilterURL(true /* empty_allowed */, &filtered_url);
auto agent_host = base::MakeRefCounted<WorkerDevToolsAgentHost>( auto agent_host = base::MakeRefCounted<WorkerDevToolsAgentHost>(
process_id_, std::move(worker_devtools_agent), std::move(host_request), process_id_, std::move(worker_devtools_agent), std::move(host_receiver),
filtered_url, std::move(name), devtools_worker_token, owner_->GetId(), filtered_url, std::move(name), devtools_worker_token, owner_->GetId(),
base::BindOnce(&DevToolsRendererChannel::ChildWorkerDestroyed, base::BindOnce(&DevToolsRendererChannel::ChildWorkerDestroyed,
weak_factory_.GetWeakPtr())); weak_factory_.GetWeakPtr()));
......
...@@ -10,8 +10,10 @@ ...@@ -10,8 +10,10 @@
#include "base/macros.h" #include "base/macros.h"
#include "base/memory/weak_ptr.h" #include "base/memory/weak_ptr.h"
#include "content/common/content_export.h" #include "content/common/content_export.h"
#include "mojo/public/cpp/bindings/associated_binding.h" #include "mojo/public/cpp/bindings/associated_receiver.h"
#include "mojo/public/cpp/bindings/binding.h" #include "mojo/public/cpp/bindings/associated_remote.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "third_party/blink/public/mojom/devtools/devtools_agent.mojom.h" #include "third_party/blink/public/mojom/devtools/devtools_agent.mojom.h"
namespace gfx { namespace gfx {
...@@ -44,13 +46,16 @@ class CONTENT_EXPORT DevToolsRendererChannel ...@@ -44,13 +46,16 @@ class CONTENT_EXPORT DevToolsRendererChannel
// Dedicated workers use non-associated version, // Dedicated workers use non-associated version,
// while frames and other workers use DevToolsAgent associated // while frames and other workers use DevToolsAgent associated
// with respective control interfraces. See mojom for details. // with respective control interfraces. See mojom for details.
void SetRenderer(blink::mojom::DevToolsAgentPtr agent_ptr, void SetRenderer(
blink::mojom::DevToolsAgentHostRequest host_request, mojo::PendingRemote<blink::mojom::DevToolsAgent> agent_remote,
int process_id, mojo::PendingReceiver<blink::mojom::DevToolsAgentHost> host_receiver,
RenderFrameHostImpl* frame_host); int process_id,
RenderFrameHostImpl* frame_host,
base::OnceClosure connection_error = base::NullCallback());
void SetRendererAssociated( void SetRendererAssociated(
blink::mojom::DevToolsAgentAssociatedPtr agent_ptr, mojo::PendingAssociatedRemote<blink::mojom::DevToolsAgent> agent_remote,
blink::mojom::DevToolsAgentHostAssociatedRequest host_request, mojo::PendingAssociatedReceiver<blink::mojom::DevToolsAgentHost>
host_receiver,
int process_id, int process_id,
RenderFrameHostImpl* frame_host); RenderFrameHostImpl* frame_host);
void AttachSession(DevToolsSession* session); void AttachSession(DevToolsSession* session);
...@@ -64,12 +69,13 @@ class CONTENT_EXPORT DevToolsRendererChannel ...@@ -64,12 +69,13 @@ class CONTENT_EXPORT DevToolsRendererChannel
private: private:
// blink::mojom::DevToolsAgentHost implementation. // blink::mojom::DevToolsAgentHost implementation.
void ChildWorkerCreated(blink::mojom::DevToolsAgentPtr worker_devtools_agent, void ChildWorkerCreated(
blink::mojom::DevToolsAgentHostRequest host_request, mojo::PendingRemote<blink::mojom::DevToolsAgent> worker_devtools_agent,
const GURL& url, mojo::PendingReceiver<blink::mojom::DevToolsAgentHost> host_receiver,
const std::string& name, const GURL& url,
const base::UnguessableToken& devtools_worker_token, const std::string& name,
bool waiting_for_debugger) override; const base::UnguessableToken& devtools_worker_token,
bool waiting_for_debugger) override;
void ChildWorkerDestroyed(DevToolsAgentHostImpl*); void ChildWorkerDestroyed(DevToolsAgentHostImpl*);
void CleanupConnection(); void CleanupConnection();
...@@ -79,10 +85,11 @@ class CONTENT_EXPORT DevToolsRendererChannel ...@@ -79,10 +85,11 @@ class CONTENT_EXPORT DevToolsRendererChannel
void ReportChildWorkersCallback(); void ReportChildWorkersCallback();
DevToolsAgentHostImpl* owner_; DevToolsAgentHostImpl* owner_;
mojo::Binding<blink::mojom::DevToolsAgentHost> binding_; mojo::Receiver<blink::mojom::DevToolsAgentHost> receiver_{this};
mojo::AssociatedBinding<blink::mojom::DevToolsAgentHost> associated_binding_; mojo::AssociatedReceiver<blink::mojom::DevToolsAgentHost>
blink::mojom::DevToolsAgentPtr agent_ptr_; associated_receiver_{this};
blink::mojom::DevToolsAgentAssociatedPtr associated_agent_ptr_; mojo::Remote<blink::mojom::DevToolsAgent> agent_remote_;
mojo::AssociatedRemote<blink::mojom::DevToolsAgent> associated_agent_remote_;
int process_id_; int process_id_;
RenderFrameHostImpl* frame_host_ = nullptr; RenderFrameHostImpl* frame_host_ = nullptr;
base::flat_set<protocol::TargetAutoAttacher*> report_attachers_; base::flat_set<protocol::TargetAutoAttacher*> report_attachers_;
......
...@@ -44,9 +44,7 @@ static const char kSessionId[] = "sessionId"; ...@@ -44,9 +44,7 @@ static const char kSessionId[] = "sessionId";
} // namespace } // namespace
DevToolsSession::DevToolsSession(DevToolsAgentHostClient* client) DevToolsSession::DevToolsSession(DevToolsAgentHostClient* client)
: binding_(this), : client_(client), dispatcher_(new protocol::UberDispatcher(this)) {}
client_(client),
dispatcher_(new protocol::UberDispatcher(this)) {}
DevToolsSession::~DevToolsSession() { DevToolsSession::~DevToolsSession() {
if (proxy_delegate_) if (proxy_delegate_)
...@@ -98,19 +96,26 @@ void DevToolsSession::TurnIntoExternalProxy( ...@@ -98,19 +96,26 @@ void DevToolsSession::TurnIntoExternalProxy(
void DevToolsSession::AttachToAgent(blink::mojom::DevToolsAgent* agent) { void DevToolsSession::AttachToAgent(blink::mojom::DevToolsAgent* agent) {
DCHECK(agent_host_); DCHECK(agent_host_);
if (!agent) { if (!agent) {
binding_.Close(); receiver_.reset();
session_ptr_.reset(); session_.reset();
io_session_ptr_.reset(); io_session_.reset();
return; return;
} }
blink::mojom::DevToolsSessionHostAssociatedPtrInfo host_ptr_info; // TODO(https://crbug.com/978694): Consider a reset flow since new mojo types
binding_.Bind(mojo::MakeRequest(&host_ptr_info)); // checks is_bound strictly.
agent->AttachDevToolsSession( if (receiver_.is_bound()) {
std::move(host_ptr_info), mojo::MakeRequest(&session_ptr_), receiver_.reset();
mojo::MakeRequest(&io_session_ptr_), session_state_cookie_.Clone(), session_.reset();
client_->UsesBinaryProtocol()); io_session_.reset();
session_ptr_.set_connection_error_handler(base::BindOnce( }
agent->AttachDevToolsSession(receiver_.BindNewEndpointAndPassRemote(),
session_.BindNewEndpointAndPassReceiver(),
io_session_.BindNewPipeAndPassReceiver(),
session_state_cookie_.Clone(),
client_->UsesBinaryProtocol());
session_.set_disconnect_handler(base::BindOnce(
&DevToolsSession::MojoConnectionDestroyed, base::Unretained(this))); &DevToolsSession::MojoConnectionDestroyed, base::Unretained(this)));
if (!suspended_sending_messages_to_agent_) { if (!suspended_sending_messages_to_agent_) {
...@@ -134,9 +139,9 @@ void DevToolsSession::AttachToAgent(blink::mojom::DevToolsAgent* agent) { ...@@ -134,9 +139,9 @@ void DevToolsSession::AttachToAgent(blink::mojom::DevToolsAgent* agent) {
} }
void DevToolsSession::MojoConnectionDestroyed() { void DevToolsSession::MojoConnectionDestroyed() {
binding_.Close(); receiver_.reset();
session_ptr_.reset(); session_.reset();
io_session_ptr_.reset(); io_session_.reset();
} }
// The client of the devtools session will call this method to send a message // The client of the devtools session will call this method to send a message
...@@ -245,13 +250,13 @@ void DevToolsSession::DispatchProtocolMessageToAgent( ...@@ -245,13 +250,13 @@ void DevToolsSession::DispatchProtocolMessageToAgent(
message_ptr->data = mojo_base::BigBuffer(base::make_span( message_ptr->data = mojo_base::BigBuffer(base::make_span(
reinterpret_cast<const uint8_t*>(message.data()), message.length())); reinterpret_cast<const uint8_t*>(message.data()), message.length()));
if (ShouldSendOnIO(method)) { if (ShouldSendOnIO(method)) {
if (io_session_ptr_) if (io_session_)
io_session_ptr_->DispatchProtocolCommand(call_id, method, io_session_->DispatchProtocolCommand(call_id, method,
std::move(message_ptr)); std::move(message_ptr));
} else { } else {
if (session_ptr_) if (session_)
session_ptr_->DispatchProtocolCommand(call_id, method, session_->DispatchProtocolCommand(call_id, method,
std::move(message_ptr)); std::move(message_ptr));
} }
} }
......
...@@ -15,7 +15,9 @@ ...@@ -15,7 +15,9 @@
#include "base/values.h" #include "base/values.h"
#include "content/browser/devtools/protocol/forward.h" #include "content/browser/devtools/protocol/forward.h"
#include "content/public/browser/devtools_external_agent_proxy.h" #include "content/public/browser/devtools_external_agent_proxy.h"
#include "mojo/public/cpp/bindings/associated_binding.h" #include "mojo/public/cpp/bindings/associated_receiver.h"
#include "mojo/public/cpp/bindings/associated_remote.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "third_party/blink/public/mojom/devtools/devtools_agent.mojom.h" #include "third_party/blink/public/mojom/devtools/devtools_agent.mojom.h"
namespace content { namespace content {
...@@ -103,9 +105,9 @@ class DevToolsSession : public protocol::FrontendChannel, ...@@ -103,9 +105,9 @@ class DevToolsSession : public protocol::FrontendChannel,
// Merges the |updates| received from the renderer into session_state_cookie_. // Merges the |updates| received from the renderer into session_state_cookie_.
void ApplySessionStateUpdates(blink::mojom::DevToolsSessionStatePtr updates); void ApplySessionStateUpdates(blink::mojom::DevToolsSessionStatePtr updates);
mojo::AssociatedBinding<blink::mojom::DevToolsSessionHost> binding_; mojo::AssociatedReceiver<blink::mojom::DevToolsSessionHost> receiver_{this};
blink::mojom::DevToolsSessionAssociatedPtr session_ptr_; mojo::AssociatedRemote<blink::mojom::DevToolsSession> session_;
blink::mojom::DevToolsSessionPtr io_session_ptr_; mojo::Remote<blink::mojom::DevToolsSession> io_session_;
DevToolsAgentHostImpl* agent_host_ = nullptr; DevToolsAgentHostImpl* agent_host_ = nullptr;
DevToolsAgentHostClient* client_; DevToolsAgentHostClient* client_;
bool browser_only_ = false; bool browser_only_ = false;
......
...@@ -755,18 +755,21 @@ void RenderFrameDevToolsAgentHost::SynchronousSwapCompositorFrame( ...@@ -755,18 +755,21 @@ void RenderFrameDevToolsAgentHost::SynchronousSwapCompositorFrame(
} }
void RenderFrameDevToolsAgentHost::UpdateRendererChannel(bool force) { void RenderFrameDevToolsAgentHost::UpdateRendererChannel(bool force) {
blink::mojom::DevToolsAgentAssociatedPtr agent_ptr; mojo::PendingAssociatedRemote<blink::mojom::DevToolsAgent> agent_remote;
blink::mojom::DevToolsAgentHostAssociatedRequest host_request; mojo::PendingAssociatedReceiver<blink::mojom::DevToolsAgentHost>
host_receiver;
if (frame_host_ && render_frame_alive_ && force) { if (frame_host_ && render_frame_alive_ && force) {
blink::mojom::DevToolsAgentHostAssociatedPtrInfo host_ptr_info; mojo::PendingAssociatedRemote<blink::mojom::DevToolsAgentHost> host_remote;
host_request = mojo::MakeRequest(&host_ptr_info); host_receiver = host_remote.InitWithNewEndpointAndPassReceiver();
frame_host_->BindDevToolsAgent(std::move(host_ptr_info), frame_host_->BindDevToolsAgent(
mojo::MakeRequest(&agent_ptr)); std::move(host_remote),
agent_remote.InitWithNewEndpointAndPassReceiver());
} }
int process_id = frame_host_ ? frame_host_->GetProcess()->GetID() int process_id = frame_host_ ? frame_host_->GetProcess()->GetID()
: ChildProcessHost::kInvalidUniqueID; : ChildProcessHost::kInvalidUniqueID;
GetRendererChannel()->SetRendererAssociated( GetRendererChannel()->SetRendererAssociated(std::move(agent_remote),
std::move(agent_ptr), std::move(host_request), process_id, frame_host_); std::move(host_receiver),
process_id, frame_host_);
} }
bool RenderFrameDevToolsAgentHost::IsChildFrame() { bool RenderFrameDevToolsAgentHost::IsChildFrame() {
......
...@@ -164,9 +164,7 @@ void ServiceWorkerDevToolsAgentHost::WorkerReadyForInspection( ...@@ -164,9 +164,7 @@ void ServiceWorkerDevToolsAgentHost::WorkerReadyForInspection(
blink::mojom::DevToolsAgentHostRequest host_request) { blink::mojom::DevToolsAgentHostRequest host_request) {
DCHECK_EQ(WORKER_NOT_READY, state_); DCHECK_EQ(WORKER_NOT_READY, state_);
state_ = WORKER_READY; state_ = WORKER_READY;
blink::mojom::DevToolsAgentPtr agent_ptr; GetRendererChannel()->SetRenderer(std::move(agent_ptr_info),
agent_ptr.Bind(std::move(agent_ptr_info));
GetRendererChannel()->SetRenderer(std::move(agent_ptr),
std::move(host_request), worker_process_id_, std::move(host_request), worker_process_id_,
nullptr); nullptr);
for (auto* inspector : protocol::InspectorHandler::ForAgentHost(this)) for (auto* inspector : protocol::InspectorHandler::ForAgentHost(this))
...@@ -188,8 +186,9 @@ void ServiceWorkerDevToolsAgentHost::WorkerDestroyed() { ...@@ -188,8 +186,9 @@ void ServiceWorkerDevToolsAgentHost::WorkerDestroyed() {
state_ = WORKER_TERMINATED; state_ = WORKER_TERMINATED;
for (auto* inspector : protocol::InspectorHandler::ForAgentHost(this)) for (auto* inspector : protocol::InspectorHandler::ForAgentHost(this))
inspector->TargetCrashed(); inspector->TargetCrashed();
GetRendererChannel()->SetRenderer( GetRendererChannel()->SetRenderer(mojo::NullRemote(), mojo::NullReceiver(),
nullptr, nullptr, ChildProcessHost::kInvalidUniqueID, nullptr); ChildProcessHost::kInvalidUniqueID,
nullptr);
if (!sessions().empty()) if (!sessions().empty())
UpdateIsAttached(false); UpdateIsAttached(false);
} }
......
...@@ -95,7 +95,7 @@ void SharedWorkerDevToolsAgentHost::WorkerReadyForInspection( ...@@ -95,7 +95,7 @@ void SharedWorkerDevToolsAgentHost::WorkerReadyForInspection(
DCHECK_EQ(WORKER_NOT_READY, state_); DCHECK_EQ(WORKER_NOT_READY, state_);
DCHECK(worker_host_); DCHECK(worker_host_);
state_ = WORKER_READY; state_ = WORKER_READY;
GetRendererChannel()->SetRenderer(std::move(agent_ptr), GetRendererChannel()->SetRenderer(agent_ptr.PassInterface(),
std::move(agent_host_request), std::move(agent_host_request),
worker_host_->worker_process_id(), nullptr); worker_host_->worker_process_id(), nullptr);
for (auto* inspector : protocol::InspectorHandler::ForAgentHost(this)) for (auto* inspector : protocol::InspectorHandler::ForAgentHost(this))
...@@ -117,8 +117,9 @@ void SharedWorkerDevToolsAgentHost::WorkerDestroyed() { ...@@ -117,8 +117,9 @@ void SharedWorkerDevToolsAgentHost::WorkerDestroyed() {
for (auto* inspector : protocol::InspectorHandler::ForAgentHost(this)) for (auto* inspector : protocol::InspectorHandler::ForAgentHost(this))
inspector->TargetCrashed(); inspector->TargetCrashed();
worker_host_ = nullptr; worker_host_ = nullptr;
GetRendererChannel()->SetRenderer( GetRendererChannel()->SetRenderer(mojo::NullRemote(), mojo::NullReceiver(),
nullptr, nullptr, ChildProcessHost::kInvalidUniqueID, nullptr); ChildProcessHost::kInvalidUniqueID,
nullptr);
} }
} // namespace content } // namespace content
...@@ -14,8 +14,8 @@ namespace content { ...@@ -14,8 +14,8 @@ namespace content {
WorkerDevToolsAgentHost::WorkerDevToolsAgentHost( WorkerDevToolsAgentHost::WorkerDevToolsAgentHost(
int process_id, int process_id,
blink::mojom::DevToolsAgentPtr agent_ptr, mojo::PendingRemote<blink::mojom::DevToolsAgent> agent_remote,
blink::mojom::DevToolsAgentHostRequest host_request, mojo::PendingReceiver<blink::mojom::DevToolsAgentHost> host_receiver,
const GURL& url, const GURL& url,
const std::string& name, const std::string& name,
const base::UnguessableToken& devtools_worker_token, const base::UnguessableToken& devtools_worker_token,
...@@ -27,22 +27,24 @@ WorkerDevToolsAgentHost::WorkerDevToolsAgentHost( ...@@ -27,22 +27,24 @@ WorkerDevToolsAgentHost::WorkerDevToolsAgentHost(
name_(name), name_(name),
parent_id_(parent_id), parent_id_(parent_id),
destroyed_callback_(std::move(destroyed_callback)) { destroyed_callback_(std::move(destroyed_callback)) {
DCHECK(agent_ptr); DCHECK(agent_remote);
DCHECK(!devtools_worker_token.is_empty()); DCHECK(!devtools_worker_token.is_empty());
AddRef(); // Self keep-alive while the worker agent is alive. AddRef(); // Self keep-alive while the worker agent is alive.
agent_ptr.set_connection_error_handler(base::BindOnce( base::OnceClosure connection_error = (base::BindOnce(
&WorkerDevToolsAgentHost::Disconnected, base::Unretained(this))); &WorkerDevToolsAgentHost::Disconnected, base::Unretained(this)));
NotifyCreated(); NotifyCreated();
GetRendererChannel()->SetRenderer( GetRendererChannel()->SetRenderer(std::move(agent_remote),
std::move(agent_ptr), std::move(host_request), process_id, nullptr); std::move(host_receiver), process_id,
nullptr, std::move(connection_error));
} }
WorkerDevToolsAgentHost::~WorkerDevToolsAgentHost() {} WorkerDevToolsAgentHost::~WorkerDevToolsAgentHost() {}
void WorkerDevToolsAgentHost::Disconnected() { void WorkerDevToolsAgentHost::Disconnected() {
ForceDetachAllSessions(); ForceDetachAllSessions();
GetRendererChannel()->SetRenderer( GetRendererChannel()->SetRenderer(mojo::NullRemote(), mojo::NullReceiver(),
nullptr, nullptr, ChildProcessHost::kInvalidUniqueID, nullptr); ChildProcessHost::kInvalidUniqueID,
nullptr);
std::move(destroyed_callback_).Run(this); std::move(destroyed_callback_).Run(this);
Release(); // Matches AddRef() in constructor. Release(); // Matches AddRef() in constructor.
} }
......
...@@ -17,8 +17,8 @@ class WorkerDevToolsAgentHost : public DevToolsAgentHostImpl { ...@@ -17,8 +17,8 @@ class WorkerDevToolsAgentHost : public DevToolsAgentHostImpl {
public: public:
WorkerDevToolsAgentHost( WorkerDevToolsAgentHost(
int process_id, int process_id,
blink::mojom::DevToolsAgentPtr agent_ptr, mojo::PendingRemote<blink::mojom::DevToolsAgent> agent_remote,
blink::mojom::DevToolsAgentHostRequest host_request, mojo::PendingReceiver<blink::mojom::DevToolsAgentHost> host_receiver,
const GURL& url, const GURL& url,
const std::string& name, const std::string& name,
const base::UnguessableToken& devtools_worker_token, const base::UnguessableToken& devtools_worker_token,
......
...@@ -72,9 +72,9 @@ interface DevToolsAgent { ...@@ -72,9 +72,9 @@ interface DevToolsAgent {
// |client_expects_binary_response| indicates that responses (and // |client_expects_binary_response| indicates that responses (and
// notifications) sent from this session should use binary (CBOR) // notifications) sent from this session should use binary (CBOR)
// encoding as opposed to JSON encoding. // encoding as opposed to JSON encoding.
AttachDevToolsSession(associated DevToolsSessionHost host, AttachDevToolsSession(pending_associated_remote<DevToolsSessionHost> host,
associated DevToolsSession& session, pending_associated_receiver<DevToolsSession> session,
DevToolsSession& io_session, pending_receiver<DevToolsSession> io_session,
DevToolsSessionState? reattach_session_state, DevToolsSessionState? reattach_session_state,
bool client_expects_binary_responses); bool client_expects_binary_responses);
...@@ -102,8 +102,8 @@ interface DevToolsAgentHost { ...@@ -102,8 +102,8 @@ interface DevToolsAgentHost {
// |waiting_for_debugger| is true if worker was paused on startup and // |waiting_for_debugger| is true if worker was paused on startup and
// should be resumed by debugger to actually start. // should be resumed by debugger to actually start.
ChildWorkerCreated( ChildWorkerCreated(
DevToolsAgent worker_devtools_agent, pending_remote<DevToolsAgent> worker_devtools_agent,
DevToolsAgentHost& worker_devtools_agent_host, pending_receiver<DevToolsAgentHost> worker_devtools_agent_host,
url.mojom.Url url, url.mojom.Url url,
string name, string name,
mojo_base.mojom.UnguessableToken devtools_worker_token, mojo_base.mojom.UnguessableToken devtools_worker_token,
......
...@@ -255,10 +255,12 @@ void WebSharedWorkerImpl::StartWorkerContext( ...@@ -255,10 +255,12 @@ void WebSharedWorkerImpl::StartWorkerContext(
auto devtools_params = std::make_unique<WorkerDevToolsParams>(); auto devtools_params = std::make_unique<WorkerDevToolsParams>();
devtools_params->devtools_worker_token = devtools_worker_token; devtools_params->devtools_worker_token = devtools_worker_token;
devtools_params->wait_for_debugger = pause_worker_context_on_start; devtools_params->wait_for_debugger = pause_worker_context_on_start;
mojom::blink::DevToolsAgentPtrInfo devtools_agent_ptr_info; mojo::PendingRemote<mojom::blink::DevToolsAgent> devtools_agent_remote;
devtools_params->agent_request = mojo::MakeRequest(&devtools_agent_ptr_info); devtools_params->agent_receiver =
mojom::blink::DevToolsAgentHostRequest devtools_agent_host_request = devtools_agent_remote.InitWithNewPipeAndPassReceiver();
mojo::MakeRequest(&devtools_params->agent_host_ptr_info); mojo::PendingReceiver<mojom::blink::DevToolsAgentHost>
devtools_agent_host_receiver =
devtools_params->agent_host_remote.InitWithNewPipeAndPassReceiver();
GetWorkerThread()->Start(std::move(creation_params), thread_startup_data, GetWorkerThread()->Start(std::move(creation_params), thread_startup_data,
std::move(devtools_params)); std::move(devtools_params));
...@@ -268,9 +270,8 @@ void WebSharedWorkerImpl::StartWorkerContext( ...@@ -268,9 +270,8 @@ void WebSharedWorkerImpl::StartWorkerContext(
v8_inspector::V8StackTraceId()); v8_inspector::V8StackTraceId());
// We are now ready to inspect worker thread. // We are now ready to inspect worker thread.
client_->WorkerReadyForInspection( client_->WorkerReadyForInspection(devtools_agent_remote.PassPipe(),
devtools_agent_ptr_info.PassHandle(), devtools_agent_host_receiver.PassPipe());
devtools_agent_host_request.PassMessagePipe());
} }
void WebSharedWorkerImpl::OnAppCacheSelected() { void WebSharedWorkerImpl::OnAppCacheSelected() {
......
...@@ -56,8 +56,6 @@ DevToolsAgent::DevToolsAgent( ...@@ -56,8 +56,6 @@ DevToolsAgent::DevToolsAgent(
scoped_refptr<InspectorTaskRunner> inspector_task_runner, scoped_refptr<InspectorTaskRunner> inspector_task_runner,
scoped_refptr<base::SingleThreadTaskRunner> io_task_runner) scoped_refptr<base::SingleThreadTaskRunner> io_task_runner)
: client_(client), : client_(client),
binding_(this),
associated_binding_(this),
inspected_frames_(inspected_frames), inspected_frames_(inspected_frames),
probe_sink_(probe_sink), probe_sink_(probe_sink),
inspector_task_runner_(std::move(inspector_task_runner)), inspector_task_runner_(std::move(inspector_task_runner)),
...@@ -79,39 +77,40 @@ void DevToolsAgent::Dispose() { ...@@ -79,39 +77,40 @@ void DevToolsAgent::Dispose() {
} }
void DevToolsAgent::BindRequest( void DevToolsAgent::BindRequest(
mojom::blink::DevToolsAgentHostPtrInfo host_ptr_info, mojo::PendingRemote<mojom::blink::DevToolsAgentHost> host_remote,
mojom::blink::DevToolsAgentRequest request, mojo::PendingReceiver<mojom::blink::DevToolsAgent> receiver,
scoped_refptr<base::SingleThreadTaskRunner> task_runner) { scoped_refptr<base::SingleThreadTaskRunner> task_runner) {
DCHECK(!binding_); DCHECK(!receiver_.is_bound());
DCHECK(!associated_binding_); DCHECK(!associated_receiver_.is_bound());
binding_.Bind(std::move(request), std::move(task_runner)); receiver_.Bind(std::move(receiver), std::move(task_runner));
host_ptr_.Bind(std::move(host_ptr_info)); host_remote_.Bind(std::move(host_remote));
host_ptr_.set_connection_error_handler( host_remote_.set_disconnect_handler(
WTF::Bind(&DevToolsAgent::CleanupConnection, WrapWeakPersistent(this))); WTF::Bind(&DevToolsAgent::CleanupConnection, WrapWeakPersistent(this)));
} }
void DevToolsAgent::BindRequest( void DevToolsAgent::BindRequest(
mojom::blink::DevToolsAgentHostAssociatedPtrInfo host_ptr_info, mojo::PendingAssociatedRemote<mojom::blink::DevToolsAgentHost> host_remote,
mojom::blink::DevToolsAgentAssociatedRequest request, mojo::PendingAssociatedReceiver<mojom::blink::DevToolsAgent> receiver,
scoped_refptr<base::SingleThreadTaskRunner> task_runner) { scoped_refptr<base::SingleThreadTaskRunner> task_runner) {
DCHECK(!binding_); DCHECK(!receiver_.is_bound());
DCHECK(!associated_binding_); DCHECK(!associated_receiver_.is_bound());
associated_binding_.Bind(std::move(request), std::move(task_runner)); associated_receiver_.Bind(std::move(receiver), std::move(task_runner));
associated_host_ptr_.Bind(std::move(host_ptr_info)); associated_host_remote_.Bind(std::move(host_remote));
associated_host_ptr_.set_connection_error_handler( associated_host_remote_.set_disconnect_handler(
WTF::Bind(&DevToolsAgent::CleanupConnection, WrapWeakPersistent(this))); WTF::Bind(&DevToolsAgent::CleanupConnection, WrapWeakPersistent(this)));
} }
void DevToolsAgent::AttachDevToolsSession( void DevToolsAgent::AttachDevToolsSession(
mojom::blink::DevToolsSessionHostAssociatedPtrInfo host, mojo::PendingAssociatedRemote<mojom::blink::DevToolsSessionHost> host,
mojom::blink::DevToolsSessionAssociatedRequest session_request, mojo::PendingAssociatedReceiver<mojom::blink::DevToolsSession>
mojom::blink::DevToolsSessionRequest io_session_request, session_receiver,
mojo::PendingReceiver<mojom::blink::DevToolsSession> io_session_receiver,
mojom::blink::DevToolsSessionStatePtr reattach_session_state, mojom::blink::DevToolsSessionStatePtr reattach_session_state,
bool client_expects_binary_responses) { bool client_expects_binary_responses) {
client_->DebuggerTaskStarted(); client_->DebuggerTaskStarted();
DevToolsSession* session = MakeGarbageCollected<DevToolsSession>( DevToolsSession* session = MakeGarbageCollected<DevToolsSession>(
this, std::move(host), std::move(session_request), this, std::move(host), std::move(session_receiver),
std::move(io_session_request), std::move(reattach_session_state), std::move(io_session_receiver), std::move(reattach_session_state),
client_expects_binary_responses); client_expects_binary_responses);
sessions_.insert(session); sessions_.insert(session);
client_->DebuggerTaskFinished(); client_->DebuggerTaskFinished();
...@@ -154,8 +153,9 @@ std::unique_ptr<WorkerDevToolsParams> DevToolsAgent::WorkerThreadCreated( ...@@ -154,8 +153,9 @@ std::unique_ptr<WorkerDevToolsParams> DevToolsAgent::WorkerThreadCreated(
auto data = std::make_unique<WorkerData>(); auto data = std::make_unique<WorkerData>();
data->url = url; data->url = url;
result->agent_request = mojo::MakeRequest(&data->agent_ptr); result->agent_receiver = data->agent_remote.InitWithNewPipeAndPassReceiver();
data->host_request = mojo::MakeRequest(&result->agent_host_ptr_info); data->host_receiver =
result->agent_host_remote.InitWithNewPipeAndPassReceiver();
data->devtools_worker_token = result->devtools_worker_token; data->devtools_worker_token = result->devtools_worker_token;
data->waiting_for_debugger = agent->pause_child_workers_on_start_; data->waiting_for_debugger = agent->pause_child_workers_on_start_;
data->name = global_scope_name; data->name = global_scope_name;
...@@ -178,24 +178,24 @@ void DevToolsAgent::WorkerThreadTerminated(ExecutionContext* parent_context, ...@@ -178,24 +178,24 @@ void DevToolsAgent::WorkerThreadTerminated(ExecutionContext* parent_context,
} }
void DevToolsAgent::ReportChildWorker(std::unique_ptr<WorkerData> data) { void DevToolsAgent::ReportChildWorker(std::unique_ptr<WorkerData> data) {
if (host_ptr_.is_bound()) { if (host_remote_.is_bound()) {
host_ptr_->ChildWorkerCreated( host_remote_->ChildWorkerCreated(
std::move(data->agent_ptr), std::move(data->host_request), std::move(data->agent_remote), std::move(data->host_receiver),
std::move(data->url), std::move(data->name), std::move(data->url), std::move(data->name),
data->devtools_worker_token, data->waiting_for_debugger); data->devtools_worker_token, data->waiting_for_debugger);
} else if (associated_host_ptr_.is_bound()) { } else if (associated_host_remote_.is_bound()) {
associated_host_ptr_->ChildWorkerCreated( associated_host_remote_->ChildWorkerCreated(
std::move(data->agent_ptr), std::move(data->host_request), std::move(data->agent_remote), std::move(data->host_receiver),
std::move(data->url), std::move(data->name), std::move(data->url), std::move(data->name),
data->devtools_worker_token, data->waiting_for_debugger); data->devtools_worker_token, data->waiting_for_debugger);
} }
} }
void DevToolsAgent::CleanupConnection() { void DevToolsAgent::CleanupConnection() {
binding_.Close(); receiver_.reset();
associated_binding_.Close(); associated_receiver_.reset();
host_ptr_.reset(); host_remote_.reset();
associated_host_ptr_.reset(); associated_host_remote_.reset();
report_child_workers_ = false; report_child_workers_ = false;
pause_child_workers_on_start_ = false; pause_child_workers_on_start_ = false;
} }
......
...@@ -9,8 +9,10 @@ ...@@ -9,8 +9,10 @@
#include "base/single_thread_task_runner.h" #include "base/single_thread_task_runner.h"
#include "base/unguessable_token.h" #include "base/unguessable_token.h"
#include "mojo/public/cpp/bindings/associated_binding.h" #include "mojo/public/cpp/bindings/associated_receiver.h"
#include "mojo/public/cpp/bindings/binding.h" #include "mojo/public/cpp/bindings/associated_remote.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "third_party/blink/public/mojom/devtools/devtools_agent.mojom-blink.h" #include "third_party/blink/public/mojom/devtools/devtools_agent.mojom-blink.h"
#include "third_party/blink/renderer/core/core_export.h" #include "third_party/blink/renderer/core/core_export.h"
#include "third_party/blink/renderer/platform/heap/handle.h" #include "third_party/blink/renderer/platform/heap/handle.h"
...@@ -58,12 +60,13 @@ class CORE_EXPORT DevToolsAgent ...@@ -58,12 +60,13 @@ class CORE_EXPORT DevToolsAgent
void Dispose(); void Dispose();
void FlushProtocolNotifications(); void FlushProtocolNotifications();
void BindRequest(mojom::blink::DevToolsAgentHostPtrInfo, void BindRequest(mojo::PendingRemote<mojom::blink::DevToolsAgentHost>,
mojom::blink::DevToolsAgentRequest, mojo::PendingReceiver<mojom::blink::DevToolsAgent>,
scoped_refptr<base::SingleThreadTaskRunner>);
void BindRequest(mojom::blink::DevToolsAgentHostAssociatedPtrInfo,
mojom::blink::DevToolsAgentAssociatedRequest,
scoped_refptr<base::SingleThreadTaskRunner>); scoped_refptr<base::SingleThreadTaskRunner>);
void BindRequest(
mojo::PendingAssociatedRemote<mojom::blink::DevToolsAgentHost>,
mojo::PendingAssociatedReceiver<mojom::blink::DevToolsAgent>,
scoped_refptr<base::SingleThreadTaskRunner>);
virtual void Trace(blink::Visitor*); virtual void Trace(blink::Visitor*);
private: private:
...@@ -71,9 +74,10 @@ class CORE_EXPORT DevToolsAgent ...@@ -71,9 +74,10 @@ class CORE_EXPORT DevToolsAgent
// mojom::blink::DevToolsAgent implementation. // mojom::blink::DevToolsAgent implementation.
void AttachDevToolsSession( void AttachDevToolsSession(
mojom::blink::DevToolsSessionHostAssociatedPtrInfo, mojo::PendingAssociatedRemote<mojom::blink::DevToolsSessionHost>,
mojom::blink::DevToolsSessionAssociatedRequest main_session, mojo::PendingAssociatedReceiver<mojom::blink::DevToolsSession>
mojom::blink::DevToolsSessionRequest io_session, main_session,
mojo::PendingReceiver<mojom::blink::DevToolsSession> io_session,
mojom::blink::DevToolsSessionStatePtr reattach_session_state, mojom::blink::DevToolsSessionStatePtr reattach_session_state,
bool client_expects_binary_responses) override; bool client_expects_binary_responses) override;
void InspectElement(const WebPoint& point) override; void InspectElement(const WebPoint& point) override;
...@@ -83,8 +87,8 @@ class CORE_EXPORT DevToolsAgent ...@@ -83,8 +87,8 @@ class CORE_EXPORT DevToolsAgent
struct WorkerData { struct WorkerData {
KURL url; KURL url;
mojom::blink::DevToolsAgentPtr agent_ptr; mojo::PendingRemote<mojom::blink::DevToolsAgent> agent_remote;
mojom::blink::DevToolsAgentHostRequest host_request; mojo::PendingReceiver<mojom::blink::DevToolsAgentHost> host_receiver;
base::UnguessableToken devtools_worker_token; base::UnguessableToken devtools_worker_token;
bool waiting_for_debugger; bool waiting_for_debugger;
String name; String name;
...@@ -94,10 +98,12 @@ class CORE_EXPORT DevToolsAgent ...@@ -94,10 +98,12 @@ class CORE_EXPORT DevToolsAgent
void CleanupConnection(); void CleanupConnection();
Client* client_; Client* client_;
mojo::Binding<mojom::blink::DevToolsAgent> binding_; mojo::Receiver<mojom::blink::DevToolsAgent> receiver_{this};
mojo::AssociatedBinding<mojom::blink::DevToolsAgent> associated_binding_; mojo::AssociatedReceiver<mojom::blink::DevToolsAgent> associated_receiver_{
mojom::blink::DevToolsAgentHostPtr host_ptr_; this};
mojom::blink::DevToolsAgentHostAssociatedPtr associated_host_ptr_; mojo::Remote<mojom::blink::DevToolsAgentHost> host_remote_;
mojo::AssociatedRemote<mojom::blink::DevToolsAgentHost>
associated_host_remote_;
Member<InspectedFrames> inspected_frames_; Member<InspectedFrames> inspected_frames_;
Member<CoreProbeSink> probe_sink_; Member<CoreProbeSink> probe_sink_;
HeapHashSet<Member<DevToolsSession>> sessions_; HeapHashSet<Member<DevToolsSession>> sessions_;
......
...@@ -11,8 +11,8 @@ ...@@ -11,8 +11,8 @@
namespace blink { namespace blink {
struct CORE_EXPORT WorkerDevToolsParams { struct CORE_EXPORT WorkerDevToolsParams {
mojom::blink::DevToolsAgentRequest agent_request; mojo::PendingReceiver<mojom::blink::DevToolsAgent> agent_receiver;
mojom::blink::DevToolsAgentHostPtrInfo agent_host_ptr_info; mojo::PendingRemote<mojom::blink::DevToolsAgentHost> agent_host_remote;
bool wait_for_debugger = false; bool wait_for_debugger = false;
base::UnguessableToken devtools_worker_token; base::UnguessableToken devtools_worker_token;
}; };
......
...@@ -87,8 +87,8 @@ WorkerInspectorController::WorkerInspectorController( ...@@ -87,8 +87,8 @@ WorkerInspectorController::WorkerInspectorController(
agent_ = MakeGarbageCollected<DevToolsAgent>( agent_ = MakeGarbageCollected<DevToolsAgent>(
this, inspected_frames_.Get(), probe_sink_.Get(), this, inspected_frames_.Get(), probe_sink_.Get(),
std::move(inspector_task_runner), std::move(io_task_runner)); std::move(inspector_task_runner), std::move(io_task_runner));
agent_->BindRequest(std::move(devtools_params->agent_host_ptr_info), agent_->BindRequest(std::move(devtools_params->agent_host_remote),
std::move(devtools_params->agent_request), std::move(devtools_params->agent_receiver),
thread->GetTaskRunner(TaskType::kInternalInspector)); thread->GetTaskRunner(TaskType::kInternalInspector));
} }
trace_event::AddEnabledStateObserver(this); trace_event::AddEnabledStateObserver(this);
......
...@@ -367,10 +367,12 @@ void WebEmbeddedWorkerImpl::StartWorkerThread() { ...@@ -367,10 +367,12 @@ void WebEmbeddedWorkerImpl::StartWorkerThread() {
devtools_params->devtools_worker_token = devtools_worker_token_; devtools_params->devtools_worker_token = devtools_worker_token_;
devtools_params->wait_for_debugger = devtools_params->wait_for_debugger =
wait_for_debugger_mode_ == WebEmbeddedWorkerStartData::kWaitForDebugger; wait_for_debugger_mode_ == WebEmbeddedWorkerStartData::kWaitForDebugger;
mojom::blink::DevToolsAgentPtrInfo devtools_agent_ptr_info; mojo::PendingRemote<mojom::blink::DevToolsAgent> devtools_agent_remote;
devtools_params->agent_request = mojo::MakeRequest(&devtools_agent_ptr_info); devtools_params->agent_receiver =
mojom::blink::DevToolsAgentHostRequest devtools_agent_host_request = devtools_agent_remote.InitWithNewPipeAndPassReceiver();
mojo::MakeRequest(&devtools_params->agent_host_ptr_info); mojo::PendingReceiver<mojom::blink::DevToolsAgentHost>
devtools_agent_host_receiver =
devtools_params->agent_host_remote.InitWithNewPipeAndPassReceiver();
worker_thread_->Start(std::move(global_scope_creation_params), worker_thread_->Start(std::move(global_scope_creation_params),
WorkerBackingThreadStartupData::CreateDefault(), WorkerBackingThreadStartupData::CreateDefault(),
...@@ -428,8 +430,8 @@ void WebEmbeddedWorkerImpl::StartWorkerThread() { ...@@ -428,8 +430,8 @@ void WebEmbeddedWorkerImpl::StartWorkerThread() {
} }
// We are now ready to inspect worker thread. // We are now ready to inspect worker thread.
worker_context_client_->WorkerReadyForInspectionOnMainThread( worker_context_client_->WorkerReadyForInspectionOnMainThread(
devtools_agent_ptr_info.PassHandle(), devtools_agent_remote.PassPipe(),
devtools_agent_host_request.PassMessagePipe()); devtools_agent_host_receiver.PassPipe());
} }
std::unique_ptr<CrossThreadFetchClientSettingsObjectData> std::unique_ptr<CrossThreadFetchClientSettingsObjectData>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment