Convert perfetto_service.mojom to new Mojo types (4/n)
This CL converts usage of |TracingSessionHostRequest| to
mojo::PendingReceiver<mojom::TracingSessionHost>
Bug: 955171, 978694
Change-Id: I79f31015757c0a92179c60fb5fea69adcd24ae59
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1831930
Reviewed-by: Colin Blundell <blundell@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Abhijeet Kandalkar <abhijeet@igalia.com>
Cr-Commit-Position: refs/heads/master@{#702857}
diff --git a/components/ui_devtools/tracing_agent.cc b/components/ui_devtools/tracing_agent.cc
index 76b01b2..747b1e6 100644
--- a/components/ui_devtools/tracing_agent.cc
+++ b/components/ui_devtools/tracing_agent.cc
@@ -104,8 +104,9 @@
perfetto::TraceConfig perfetto_config =
CreatePerfettoConfiguration(chrome_config);
- tracing::mojom::TracingSessionClientPtr tracing_session_client;
- receiver_.Bind(mojo::MakeRequest(&tracing_session_client));
+ mojo::PendingRemote<tracing::mojom::TracingSessionClient>
+ tracing_session_client;
+ receiver_.Bind(tracing_session_client.InitWithNewPipeAndPassReceiver());
receiver_.set_disconnect_handler(
base::BindOnce(&PerfettoTracingSession::OnTracingSessionFailed,
base::Unretained(this)));
diff --git a/content/browser/devtools/protocol/tracing_handler.cc b/content/browser/devtools/protocol/tracing_handler.cc
index c500679..43e5eae3 100644
--- a/content/browser/devtools/protocol/tracing_handler.cc
+++ b/content/browser/devtools/protocol/tracing_handler.cc
@@ -269,8 +269,9 @@
perfetto::TraceConfig perfetto_config =
CreatePerfettoConfiguration(chrome_config);
- tracing::mojom::TracingSessionClientPtr tracing_session_client;
- binding_.Bind(mojo::MakeRequest(&tracing_session_client));
+ mojo::PendingRemote<tracing::mojom::TracingSessionClient>
+ tracing_session_client;
+ binding_.Bind(tracing_session_client.InitWithNewPipeAndPassReceiver());
binding_.set_connection_error_handler(
base::BindOnce(&PerfettoTracingSession::OnTracingSessionFailed,
base::Unretained(this)));
diff --git a/content/browser/tracing/background_tracing_active_scenario.cc b/content/browser/tracing/background_tracing_active_scenario.cc
index 3a28296..4bba2980 100644
--- a/content/browser/tracing/background_tracing_active_scenario.cc
+++ b/content/browser/tracing/background_tracing_active_scenario.cc
@@ -95,8 +95,9 @@
perfetto_config.mutable_incremental_state_config()->set_clear_period_ms(
interning_reset_interval_ms);
- tracing::mojom::TracingSessionClientPtr tracing_session_client;
- binding_.Bind(mojo::MakeRequest(&tracing_session_client));
+ mojo::PendingRemote<tracing::mojom::TracingSessionClient>
+ tracing_session_client;
+ binding_.Bind(tracing_session_client.InitWithNewPipeAndPassReceiver());
binding_.set_connection_error_handler(
base::BindOnce(&PerfettoTracingSession::OnTracingSessionEnded,
base::Unretained(this)));
diff --git a/content/browser/tracing/perfetto_file_tracer.cc b/content/browser/tracing/perfetto_file_tracer.cc
index ff211fb..50e4ded 100644
--- a/content/browser/tracing/perfetto_file_tracer.cc
+++ b/content/browser/tracing/perfetto_file_tracer.cc
@@ -118,8 +118,9 @@
// We just need a single global trace buffer, for our data.
trace_config.mutable_buffers()->front().set_size_kb(32 * 1024);
- tracing::mojom::TracingSessionClientPtr tracing_session_client;
- binding_.Bind(mojo::MakeRequest(&tracing_session_client));
+ mojo::PendingRemote<tracing::mojom::TracingSessionClient>
+ tracing_session_client;
+ binding_.Bind(tracing_session_client.InitWithNewPipeAndPassReceiver());
binding_.set_connection_error_handler(base::BindOnce(
&PerfettoFileTracer::OnTracingSessionEnded, base::Unretained(this)));
diff --git a/services/tracing/perfetto/consumer_host.cc b/services/tracing/perfetto/consumer_host.cc
index 5e4b51d..ea9034e9 100644
--- a/services/tracing/perfetto/consumer_host.cc
+++ b/services/tracing/perfetto/consumer_host.cc
@@ -118,8 +118,8 @@
ConsumerHost::TracingSession::TracingSession(
ConsumerHost* host,
- mojom::TracingSessionHostRequest tracing_session_host,
- mojom::TracingSessionClientPtr tracing_session_client,
+ mojo::PendingReceiver<mojom::TracingSessionHost> tracing_session_host,
+ mojo::Remote<mojom::TracingSessionClient> tracing_session_client,
const perfetto::TraceConfig& trace_config,
mojom::TracingClientPriority priority)
: host_(host),
@@ -128,7 +128,7 @@
tracing_priority_(priority) {
host_->service()->RegisterTracingSession(this);
- tracing_session_client_.set_connection_error_handler(base::BindOnce(
+ tracing_session_client_.set_disconnect_handler(base::BindOnce(
&ConsumerHost::DestructTracingSession, base::Unretained(host)));
binding_.set_connection_error_handler(base::BindOnce(
&ConsumerHost::DestructTracingSession, base::Unretained(host)));
@@ -504,8 +504,8 @@
}
void ConsumerHost::EnableTracing(
- mojom::TracingSessionHostRequest tracing_session_host,
- mojom::TracingSessionClientPtr tracing_session_client,
+ mojo::PendingReceiver<mojom::TracingSessionHost> tracing_session_host,
+ mojo::PendingRemote<mojom::TracingSessionClient> tracing_session_client,
const perfetto::TraceConfig& trace_config,
mojom::TracingClientPriority priority) {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
@@ -515,23 +515,28 @@
// us to, after it's stopped any currently running lower or equal priority
// tracing sessions.
service_->RequestTracingSession(
- priority,
- base::BindOnce(
- [](base::WeakPtr<ConsumerHost> weak_this,
- mojom::TracingSessionHostRequest tracing_session_host,
- mojom::TracingSessionClientPtr tracing_session_client,
- const perfetto::TraceConfig& trace_config,
- mojom::TracingClientPriority priority) {
- if (!weak_this) {
- return;
- }
-
- weak_this->tracing_session_ = std::make_unique<TracingSession>(
- weak_this.get(), std::move(tracing_session_host),
- std::move(tracing_session_client), trace_config, priority);
- },
- weak_factory_.GetWeakPtr(), std::move(tracing_session_host),
- std::move(tracing_session_client), trace_config, priority));
+ priority, base::BindOnce(
+ [](base::WeakPtr<ConsumerHost> weak_this,
+ mojo::PendingReceiver<mojom::TracingSessionHost>
+ tracing_session_host,
+ mojo::PendingRemote<mojom::TracingSessionClient>
+ tracing_session_client,
+ const perfetto::TraceConfig& trace_config,
+ mojom::TracingClientPriority priority) {
+ if (!weak_this) {
+ return;
+ }
+ mojo::Remote<mojom::TracingSessionClient>
+ tracing_session_client_remote(
+ std::move(tracing_session_client));
+ weak_this->tracing_session_ =
+ std::make_unique<TracingSession>(
+ weak_this.get(), std::move(tracing_session_host),
+ std::move(tracing_session_client_remote),
+ trace_config, priority);
+ },
+ weak_factory_.GetWeakPtr(), std::move(tracing_session_host),
+ std::move(tracing_session_client), trace_config, priority));
}
void ConsumerHost::OnConnect() {}
diff --git a/services/tracing/perfetto/consumer_host.h b/services/tracing/perfetto/consumer_host.h
index 84b4bef5..088ab889 100644
--- a/services/tracing/perfetto/consumer_host.h
+++ b/services/tracing/perfetto/consumer_host.h
@@ -18,6 +18,7 @@
#include "base/threading/sequence_bound.h"
#include "base/timer/timer.h"
#include "mojo/public/cpp/bindings/binding.h"
+#include "mojo/public/cpp/bindings/remote.h"
#include "services/tracing/public/mojom/perfetto_service.mojom.h"
#include "third_party/perfetto/include/perfetto/ext/tracing/core/consumer.h"
#include "third_party/perfetto/include/perfetto/ext/tracing/core/tracing_service.h"
@@ -47,11 +48,12 @@
class StreamWriter;
class TracingSession : public mojom::TracingSessionHost {
public:
- TracingSession(ConsumerHost* host,
- mojom::TracingSessionHostRequest tracing_session_host,
- mojom::TracingSessionClientPtr tracing_session_client,
- const perfetto::TraceConfig& trace_config,
- mojom::TracingClientPriority priority);
+ TracingSession(
+ ConsumerHost* host,
+ mojo::PendingReceiver<mojom::TracingSessionHost> tracing_session_host,
+ mojo::Remote<mojom::TracingSessionClient> tracing_session_client,
+ const perfetto::TraceConfig& trace_config,
+ mojom::TracingClientPriority priority);
~TracingSession() override;
void OnPerfettoEvents(const perfetto::ObservableEvents&);
@@ -95,7 +97,7 @@
bool IsExpectedPid(base::ProcessId pid) const;
ConsumerHost* const host_;
- mojom::TracingSessionClientPtr tracing_session_client_;
+ mojo::Remote<mojom::TracingSessionClient> tracing_session_client_;
mojo::Binding<mojom::TracingSessionHost> binding_;
bool privacy_filtering_enabled_ = false;
base::SequenceBound<StreamWriter> read_buffers_stream_writer_;
@@ -129,10 +131,11 @@
}
// mojom::ConsumerHost implementation.
- void EnableTracing(mojom::TracingSessionHostRequest tracing_session_host,
- mojom::TracingSessionClientPtr tracing_session_client,
- const perfetto::TraceConfig& config,
- mojom::TracingClientPriority priority) override;
+ void EnableTracing(
+ mojo::PendingReceiver<mojom::TracingSessionHost> tracing_session_host,
+ mojo::PendingRemote<mojom::TracingSessionClient> tracing_session_client,
+ const perfetto::TraceConfig& config,
+ mojom::TracingClientPriority priority) override;
// perfetto::Consumer implementation.
// This gets called by the Perfetto service as control signals,
diff --git a/services/tracing/perfetto/consumer_host_unittest.cc b/services/tracing/perfetto/consumer_host_unittest.cc
index 14b8b9b6..1db75e70 100644
--- a/services/tracing/perfetto/consumer_host_unittest.cc
+++ b/services/tracing/perfetto/consumer_host_unittest.cc
@@ -143,9 +143,10 @@
}
void EnableTracingOnSequence(const perfetto::TraceConfig& config) {
- tracing::mojom::TracingSessionClientPtr tracing_session_client;
+ mojo::PendingRemote<tracing::mojom::TracingSessionClient>
+ tracing_session_client;
binding_ = std::make_unique<mojo::Binding<mojom::TracingSessionClient>>(
- this, mojo::MakeRequest(&tracing_session_client));
+ this, tracing_session_client.InitWithNewPipeAndPassReceiver());
consumer_->EnableTracing(
mojo::MakeRequest(&tracing_session_host_),
@@ -672,8 +673,9 @@
void EnableTracing(const perfetto::TraceConfig& config,
mojom::TracingClientPriority priority) {
- tracing::mojom::TracingSessionClientPtr tracing_session_client;
- binding_.Bind(mojo::MakeRequest(&tracing_session_client));
+ mojo::PendingRemote<tracing::mojom::TracingSessionClient>
+ tracing_session_client;
+ binding_.Bind(tracing_session_client.InitWithNewPipeAndPassReceiver());
binding_.set_connection_error_handler(base::BindOnce(
&MockConsumerHost::OnConnectionLost, base::Unretained(this)));
diff --git a/services/tracing/public/mojom/perfetto_service.mojom b/services/tracing/public/mojom/perfetto_service.mojom
index 6ef1565..604d229 100644
--- a/services/tracing/public/mojom/perfetto_service.mojom
+++ b/services/tracing/public/mojom/perfetto_service.mojom
@@ -212,8 +212,8 @@
// one in progress, the relative priorities will be used to figure out which
// one to be able to (keep) tracing; if the priorities are the same, the new
// session will take precedence.
- EnableTracing(TracingSessionHost& tracing_session_host,
- TracingSessionClient tracing_session_client,
+ EnableTracing(pending_receiver<TracingSessionHost> tracing_session_host,
+ pending_remote<TracingSessionClient> tracing_session_client,
TraceConfig config,
TracingClientPriority priority);
};