Commit 87b38b5f authored by Abhijeet Kandalkar's avatar Abhijeet Kandalkar Committed by Commit Bot

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

This CL converts usage of
1. |ProducerHostRequest| to |mojo::PendingReceiver<mojom::ProducerHost>|
2. |StrongBindingSet| to |UniqueReceiverSet|

Bug: 955171, 978694
Change-Id: I06953f0494b3504901faa5e6cc65c8b59fd30298
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1831921
Commit-Queue: Abhijeet Kandalkar <abhijeet@igalia.com>
Reviewed-by: default avatarColin Blundell <blundell@chromium.org>
Reviewed-by: default avatarKen Buchanan <kenrb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#701666}
parent 29d9858f
...@@ -79,14 +79,14 @@ void PerfettoService::BindReceiver( ...@@ -79,14 +79,14 @@ void PerfettoService::BindReceiver(
void PerfettoService::ConnectToProducerHost( void PerfettoService::ConnectToProducerHost(
mojo::PendingRemote<mojom::ProducerClient> producer_client, mojo::PendingRemote<mojom::ProducerClient> producer_client,
mojom::ProducerHostRequest producer_host_request) { mojo::PendingReceiver<mojom::ProducerHost> producer_host_receiver) {
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();
new_producer->Initialize(std::move(producer_client), service_.get(), new_producer->Initialize(std::move(producer_client), service_.get(),
base::StrCat({mojom::kPerfettoProducerNamePrefix, base::StrCat({mojom::kPerfettoProducerNamePrefix,
base::NumberToString(producer_pid)})); base::NumberToString(producer_pid)}));
producer_bindings_.AddBinding(std::move(new_producer), producer_receivers_.Add(std::move(new_producer),
std::move(producer_host_request)); std::move(producer_host_receiver));
} }
void PerfettoService::AddActiveServicePid(base::ProcessId pid) { void PerfettoService::AddActiveServicePid(base::ProcessId pid) {
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
#include "base/macros.h" #include "base/macros.h"
#include "mojo/public/cpp/bindings/receiver_set.h" #include "mojo/public/cpp/bindings/receiver_set.h"
#include "mojo/public/cpp/bindings/strong_binding_set.h" #include "mojo/public/cpp/bindings/strong_binding_set.h"
#include "mojo/public/cpp/bindings/unique_receiver_set.h"
#include "services/service_manager/public/cpp/identity.h" #include "services/service_manager/public/cpp/identity.h"
#include "services/tracing/perfetto/consumer_host.h" #include "services/tracing/perfetto/consumer_host.h"
#include "services/tracing/public/cpp/perfetto/task_runner.h" #include "services/tracing/public/cpp/perfetto/task_runner.h"
...@@ -42,7 +43,8 @@ class PerfettoService : public mojom::PerfettoService { ...@@ -42,7 +43,8 @@ class PerfettoService : public mojom::PerfettoService {
// mojom::PerfettoService implementation. // mojom::PerfettoService implementation.
void ConnectToProducerHost( void ConnectToProducerHost(
mojo::PendingRemote<mojom::ProducerClient> producer_client, mojo::PendingRemote<mojom::ProducerClient> producer_client,
mojom::ProducerHostRequest producer_host) override; mojo::PendingReceiver<mojom::ProducerHost> producer_host_receiver)
override;
perfetto::TracingService* GetService() const; perfetto::TracingService* GetService() const;
...@@ -79,7 +81,7 @@ class PerfettoService : public mojom::PerfettoService { ...@@ -79,7 +81,7 @@ class PerfettoService : public mojom::PerfettoService {
PerfettoTaskRunner perfetto_task_runner_; PerfettoTaskRunner perfetto_task_runner_;
std::unique_ptr<perfetto::TracingService> service_; std::unique_ptr<perfetto::TracingService> service_;
mojo::ReceiverSet<mojom::PerfettoService, uint32_t> receivers_; mojo::ReceiverSet<mojom::PerfettoService, uint32_t> receivers_;
mojo::StrongBindingSet<mojom::ProducerHost> producer_bindings_; mojo::UniqueReceiverSet<mojom::ProducerHost> producer_receivers_;
std::set<ConsumerHost::TracingSession*> tracing_sessions_; // Not owned. std::set<ConsumerHost::TracingSession*> tracing_sessions_; // Not owned.
std::set<base::ProcessId> active_service_pids_; std::set<base::ProcessId> active_service_pids_;
bool active_service_pids_initialized_ = false; bool active_service_pids_initialized_ = false;
......
...@@ -38,14 +38,16 @@ void ProducerClient::Connect( ...@@ -38,14 +38,16 @@ void ProducerClient::Connect(
mojo::PendingRemote<mojom::PerfettoService> perfetto_service) { mojo::PendingRemote<mojom::PerfettoService> perfetto_service) {
mojo::PendingRemote<mojom::ProducerClient> client; mojo::PendingRemote<mojom::ProducerClient> client;
auto client_receiver = client.InitWithNewPipeAndPassReceiver(); auto client_receiver = client.InitWithNewPipeAndPassReceiver();
mojom::ProducerHostPtrInfo host_info; mojo::PendingRemote<mojom::ProducerHost> producer_host_remote;
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),
producer_host_remote.InitWithNewPipeAndPassReceiver());
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_receiver), base::Unretained(this), std::move(client_receiver),
std::move(host_info))); std::move(producer_host_remote)));
} }
void ProducerClient::BindClientAndHostPipesForTesting( void ProducerClient::BindClientAndHostPipesForTesting(
......
...@@ -140,7 +140,7 @@ interface ProducerClient { ...@@ -140,7 +140,7 @@ interface ProducerClient {
// should implement ProducerClient for callbacks and pass along. // should implement ProducerClient for callbacks and pass along.
interface PerfettoService { interface PerfettoService {
ConnectToProducerHost(pending_remote<ProducerClient> producer_client, ConnectToProducerHost(pending_remote<ProducerClient> producer_client,
ProducerHost& producer_host); pending_receiver<ProducerHost> producer_host_receiver);
}; };
// The policy for filling the trace buffer. // The policy for filling the trace buffer.
......
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