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

Convert perfetto_service.mojom to new Mojo types (2/n)

This CL converts interface ProducerClient occurrences to uses new Mojo
types.

Bug: 955171, 978694
Change-Id: I8de6441fdb00205deae283d6328c50afb4952838
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1797951Reviewed-by: default avatarRobert Sesek <rsesek@chromium.org>
Reviewed-by: default avatarOksana Zhuravlova <oksamyt@chromium.org>
Reviewed-by: default avataroysteine <oysteine@chromium.org>
Commit-Queue: Abhijeet Kandalkar <abhijeet@igalia.com>
Cr-Commit-Position: refs/heads/master@{#697279}
parent eed3261f
......@@ -78,7 +78,7 @@ void PerfettoService::BindReceiver(
}
void PerfettoService::ConnectToProducerHost(
mojom::ProducerClientPtr producer_client,
mojo::PendingRemote<mojom::ProducerClient> producer_client,
mojom::ProducerHostRequest producer_host_request) {
auto new_producer = std::make_unique<ProducerHost>();
uint32_t producer_pid = receivers_.current_context();
......
......@@ -40,8 +40,9 @@ class PerfettoService : public mojom::PerfettoService {
uint32_t pid);
// mojom::PerfettoService implementation.
void ConnectToProducerHost(mojom::ProducerClientPtr producer_client,
mojom::ProducerHostRequest producer_host) override;
void ConnectToProducerHost(
mojo::PendingRemote<mojom::ProducerClient> producer_client,
mojom::ProducerHostRequest producer_host) override;
perfetto::TracingService* GetService() const;
......
......@@ -36,13 +36,14 @@ ProducerHost::~ProducerHost() {
producer_endpoint_.reset();
}
void ProducerHost::Initialize(mojom::ProducerClientPtr producer_client,
perfetto::TracingService* service,
const std::string& name) {
void ProducerHost::Initialize(
mojo::PendingRemote<mojom::ProducerClient> producer_client,
perfetto::TracingService* service,
const std::string& name) {
DCHECK(service);
DCHECK(!producer_endpoint_);
producer_client_ = std::move(producer_client);
producer_client_.Bind(std::move(producer_client));
// Attempt to parse the PID out of the producer name.
// If the Producer is in-process, we:
......
......@@ -11,6 +11,7 @@
#include <vector>
#include "base/macros.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "services/tracing/perfetto/producer_host.h"
#include "services/tracing/public/mojom/perfetto_service.mojom.h"
#include "third_party/perfetto/include/perfetto/ext/tracing/core/producer.h"
......@@ -40,7 +41,7 @@ class ProducerHost : public tracing::mojom::ProducerHost,
// Called by the ProducerService to register the
// Producer with Perfetto and connect to the
// corresponding remote ProducerClient.
void Initialize(mojom::ProducerClientPtr producer_client,
void Initialize(mojo::PendingRemote<mojom::ProducerClient> producer_client,
perfetto::TracingService* service,
const std::string& name);
......@@ -88,7 +89,7 @@ class ProducerHost : public tracing::mojom::ProducerHost,
on_commit_callback_for_testing_;
private:
mojom::ProducerClientPtr producer_client_;
mojo::Remote<mojom::ProducerClient> producer_client_;
bool is_in_process_ = false;
protected:
......
......@@ -316,12 +316,12 @@ MockProducerHost::MockProducerHost(
: producer_name_(producer_name),
datasource_registered_callback_(
std::move(datasource_registered_callback)) {
mojom::ProducerClientPtr client;
mojo::PendingRemote<mojom::ProducerClient> client;
mojo::PendingRemote<mojom::ProducerHost> host_remote;
auto client_request = mojo::MakeRequest(&client);
auto client_receiver = client.InitWithNewPipeAndPassReceiver();
Initialize(std::move(client), service, producer_name_);
receiver_.Bind(host_remote.InitWithNewPipeAndPassReceiver());
producer_client->BindClientAndHostPipesForTesting(std::move(client_request),
producer_client->BindClientAndHostPipesForTesting(std::move(client_receiver),
std::move(host_remote));
producer_client->SetupDataSource(data_source_name);
}
......
......@@ -32,15 +32,15 @@ ProducerClient::~ProducerClient() {
void ProducerClient::Connect(
mojo::PendingRemote<mojom::PerfettoService> perfetto_service) {
mojom::ProducerClientPtr client;
auto client_request = mojo::MakeRequest(&client);
mojo::PendingRemote<mojom::ProducerClient> client;
auto client_receiver = client.InitWithNewPipeAndPassReceiver();
mojom::ProducerHostPtrInfo host_info;
mojo::Remote<mojom::PerfettoService>(std::move(perfetto_service))
->ConnectToProducerHost(std::move(client), mojo::MakeRequest(&host_info));
task_runner()->GetOrCreateTaskRunner()->PostTask(
FROM_HERE,
base::BindOnce(&ProducerClient::BindClientAndHostPipesOnSequence,
base::Unretained(this), std::move(client_request),
base::Unretained(this), std::move(client_receiver),
std::move(host_info)));
}
......
......@@ -139,7 +139,7 @@ interface ProducerClient {
// tracing system. A client that wishes to provide tracing data when requested,
// should implement ProducerClient for callbacks and pass along.
interface PerfettoService {
ConnectToProducerHost(ProducerClient producer_client,
ConnectToProducerHost(pending_remote<ProducerClient> producer_client,
ProducerHost& producer_host);
};
......
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