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