Commit b81c4ba2 authored by Abhijeet Kandalkar's avatar Abhijeet Kandalkar Committed by Commit Bot

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/+/1831930Reviewed-by: default avatarColin Blundell <blundell@chromium.org>
Reviewed-by: default avatarKinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Abhijeet Kandalkar <abhijeet@igalia.com>
Cr-Commit-Position: refs/heads/master@{#702857}
parent 6457d22d
......@@ -104,8 +104,9 @@ class TracingAgent::PerfettoTracingSession
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)));
......
......@@ -269,8 +269,9 @@ class TracingHandler::PerfettoTracingSession
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)));
......
......@@ -95,8 +95,9 @@ class PerfettoTracingSession
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)));
......
......@@ -118,8 +118,9 @@ PerfettoFileTracer::PerfettoFileTracer()
// 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)));
......
......@@ -118,8 +118,8 @@ class ConsumerHost::StreamWriter {
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 @@ ConsumerHost::TracingSession::TracingSession(
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 @@ ConsumerHost::~ConsumerHost() {
}
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 @@ void ConsumerHost::EnableTracing(
// 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() {}
......
......@@ -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 ConsumerHost : public perfetto::Consumer, public mojom::ConsumerHost {
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 @@ class ConsumerHost : public perfetto::Consumer, public mojom::ConsumerHost {
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 @@ class ConsumerHost : public perfetto::Consumer, public mojom::ConsumerHost {
}
// 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,
......
......@@ -143,9 +143,10 @@ class ThreadedPerfettoService : public mojom::TracingSessionClient {
}
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 @@ class MockConsumerHost : public mojom::TracingSessionClient {
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)));
......
......@@ -212,8 +212,8 @@ interface ConsumerHost {
// 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);
};
......
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