Commit 58a2bab7 authored by Abhijeet Kandalkar's avatar Abhijeet Kandalkar Committed by Commit Bot

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

This CL converts interface Coordinator to uses new Mojo types.

Bug: 955171, 978694

Change-Id: Iba377d93282198bccc27d6c071d9697e9d0aa28a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1789216Reviewed-by: default avatarOksana Zhuravlova <oksamyt@chromium.org>
Reviewed-by: default avatarColin Blundell <blundell@chromium.org>
Reviewed-by: default avatarDave Tapuska <dtapuska@chromium.org>
Commit-Queue: Dave Tapuska <dtapuska@chromium.org>
Cr-Commit-Position: refs/heads/master@{#695605}
parent b1d7b652
......@@ -95,14 +95,14 @@ CoordinatorImpl::ComputePidToServiceNamesMap() const {
service_manager::Identity CoordinatorImpl::GetClientIdentityForCurrentRequest()
const {
return bindings_.dispatch_context();
return receivers_.current_context();
}
void CoordinatorImpl::BindCoordinatorRequest(
mojom::CoordinatorRequest request,
void CoordinatorImpl::BindCoordinatorReceiver(
mojo::PendingReceiver<mojom::Coordinator> receiver,
const service_manager::BindSourceInfo& source_info) {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
bindings_.AddBinding(this, std::move(request), source_info.identity);
receivers_.Add(this, std::move(receiver), source_info.identity);
}
void CoordinatorImpl::BindHeapProfilerHelperRequest(
......
......@@ -16,6 +16,7 @@
#include "base/trace_event/memory_dump_request_args.h"
#include "mojo/public/cpp/bindings/binding.h"
#include "mojo/public/cpp/bindings/binding_set.h"
#include "mojo/public/cpp/bindings/receiver_set.h"
#include "services/resource_coordinator/memory_instrumentation/process_map.h"
#include "services/resource_coordinator/memory_instrumentation/queued_request.h"
#include "services/resource_coordinator/public/cpp/memory_instrumentation/coordinator.h"
......@@ -46,8 +47,8 @@ class CoordinatorImpl : public Coordinator,
CoordinatorImpl(service_manager::Connector* connector);
// Binds a client library to this coordinator instance.
void BindCoordinatorRequest(
mojom::CoordinatorRequest,
void BindCoordinatorReceiver(
mojo::PendingReceiver<mojom::Coordinator>,
const service_manager::BindSourceInfo& source_info) override;
void BindHeapProfilerHelperRequest(
......@@ -182,8 +183,8 @@ class CoordinatorImpl : public Coordinator,
in_progress_vm_region_requests_;
// There may be extant callbacks in |queued_memory_dump_requests_|. The
// bindings_ must be closed before destroying the un-run callbacks.
mojo::BindingSet<mojom::Coordinator, service_manager::Identity> bindings_;
// receivers_ must be closed before destroying the un-run callbacks.
mojo::ReceiverSet<mojom::Coordinator, service_manager::Identity> receivers_;
// There may be extant callbacks in |queued_memory_dump_requests_|. The
// bindings_ must be closed before destroying the un-run callbacks.
......
......@@ -48,7 +48,7 @@ ClientProcessImpl::ClientProcessImpl(const Config& config)
MemoryInstrumentation::CreateInstance(config.connector,
config.service_name);
} else {
config.coordinator_for_testing->BindCoordinatorRequest(
config.coordinator_for_testing->BindCoordinatorReceiver(
mojo::MakeRequest(&coordinator_), service_manager::BindSourceInfo());
}
......
......@@ -15,9 +15,9 @@ namespace memory_instrumentation {
class Coordinator {
public:
// Binds a CoordinatorRequest to this Coordinator instance.
virtual void BindCoordinatorRequest(
mojom::CoordinatorRequest,
// Binds a Coordinator Receiver to this Coordinator instance.
virtual void BindCoordinatorReceiver(
mojo::PendingReceiver<mojom::Coordinator>,
const service_manager::BindSourceInfo& source_info) = 0;
};
......
......@@ -21,7 +21,7 @@
#include "base/trace_event/trace_config.h"
#include "base/trace_event/trace_config_memory_test_util.h"
#include "base/trace_event/trace_log.h"
#include "mojo/public/cpp/bindings/binding_set.h"
#include "mojo/public/cpp/bindings/receiver_set.h"
#include "services/resource_coordinator/public/cpp/memory_instrumentation/coordinator.h"
#include "services/resource_coordinator/public/mojom/memory_instrumentation/memory_instrumentation.mojom.h"
#include "testing/gmock/include/gmock/gmock.h"
......@@ -101,10 +101,10 @@ class MockCoordinator : public Coordinator, public mojom::Coordinator {
public:
MockCoordinator(MemoryTracingIntegrationTest* client) : client_(client) {}
void BindCoordinatorRequest(
mojom::CoordinatorRequest request,
void BindCoordinatorReceiver(
mojo::PendingReceiver<mojom::Coordinator> receiver,
const service_manager::BindSourceInfo& source_info) override {
bindings_.AddBinding(this, std::move(request));
receivers_.Add(this, std::move(receiver));
}
void RegisterClientProcess(mojom::ClientProcessPtr,
......@@ -133,7 +133,7 @@ class MockCoordinator : public Coordinator, public mojom::Coordinator {
RequestGlobalMemoryDumpAndAppendToTraceCallback) override;
private:
mojo::BindingSet<mojom::Coordinator> bindings_;
mojo::ReceiverSet<mojom::Coordinator> receivers_;
MemoryTracingIntegrationTest* client_;
};
......
......@@ -31,7 +31,7 @@ void ResourceCoordinatorService::OnStart() {
std::make_unique<memory_instrumentation::CoordinatorImpl>(
service_binding_.GetConnector());
registry_.AddInterface(base::BindRepeating(
&memory_instrumentation::CoordinatorImpl::BindCoordinatorRequest,
&memory_instrumentation::CoordinatorImpl::BindCoordinatorReceiver,
base::Unretained(memory_instrumentation_coordinator_.get())));
registry_.AddInterface(base::BindRepeating(
&memory_instrumentation::CoordinatorImpl::BindHeapProfilerHelperRequest,
......
......@@ -278,7 +278,6 @@ Coordinator::Coordinator(AgentRegistry* agent_registry,
: task_runner_(base::SequencedTaskRunnerHandle::Get()),
agent_registry_(agent_registry),
on_disconnect_callback_(std::move(on_disconnect_callback)),
binding_(this),
// USER_VISIBLE because the task posted from StopAndFlushInternal() is
// required to stop tracing from the UI.
// TODO(fdoray): Once we have support for dynamic priorities
......@@ -295,7 +294,7 @@ Coordinator::~Coordinator() {
}
bool Coordinator::IsConnected() {
return !!binding_;
return receiver_.is_bound();
}
void Coordinator::Reset() {
......@@ -324,14 +323,14 @@ void Coordinator::Reset() {
void Coordinator::OnClientConnectionError() {
Reset();
binding_.Close();
receiver_.reset();
on_disconnect_callback_.Run();
}
void Coordinator::BindCoordinatorRequest(
mojom::CoordinatorRequest request,
mojo::PendingReceiver<mojom::Coordinator> receiver,
const service_manager::BindSourceInfo& source_info) {
binding_.Bind(std::move(request));
binding_.set_connection_error_handler(base::BindRepeating(
receiver_.Bind(std::move(receiver));
receiver_.set_disconnect_handler(base::BindRepeating(
&Coordinator::OnClientConnectionError, base::Unretained(this)));
}
......
......@@ -17,6 +17,7 @@
#include "base/timer/timer.h"
#include "base/trace_event/trace_config.h"
#include "base/values.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "mojo/public/cpp/system/data_pipe.h"
#include "services/tracing/agent_registry.h"
#include "services/tracing/public/mojom/tracing.mojom.h"
......@@ -46,7 +47,7 @@ class Coordinator : public mojom::Coordinator {
const base::RepeatingClosure& on_disconnect_callback);
void BindCoordinatorRequest(
mojom::CoordinatorRequest request,
mojo::PendingReceiver<mojom::Coordinator> request,
const service_manager::BindSourceInfo& source_info);
bool IsConnected();
......@@ -106,7 +107,7 @@ class Coordinator : public mojom::Coordinator {
uint32_t count);
base::RepeatingClosure on_disconnect_callback_;
mojo::Binding<mojom::Coordinator> binding_;
mojo::Receiver<mojom::Coordinator> receiver_{this};
const scoped_refptr<base::SequencedTaskRunner> backend_task_runner_;
std::string config_;
bool is_tracing_ = false;
......
......@@ -240,8 +240,7 @@ class PerfettoTracingCoordinator::TracingSession : public perfetto::Consumer {
PerfettoTracingCoordinator::PerfettoTracingCoordinator(
AgentRegistry* agent_registry,
base::RepeatingClosure on_disconnect_callback)
: Coordinator(agent_registry, std::move(on_disconnect_callback)),
binding_(this) {
: Coordinator(agent_registry, std::move(on_disconnect_callback)) {
DETACH_FROM_SEQUENCE(sequence_checker_);
}
......@@ -252,15 +251,15 @@ PerfettoTracingCoordinator::~PerfettoTracingCoordinator() {
void PerfettoTracingCoordinator::OnClientConnectionError() {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
tracing_session_.reset();
binding_.Close();
receiver_.reset();
Coordinator::OnClientConnectionError();
}
void PerfettoTracingCoordinator::BindCoordinatorRequest(
mojom::CoordinatorRequest request,
void PerfettoTracingCoordinator::BindCoordinatorReceiver(
mojo::PendingReceiver<mojom::Coordinator> receiver,
const service_manager::BindSourceInfo& source_info) {
binding_.Bind(std::move(request));
binding_.set_connection_error_handler(
receiver_.Bind(std::move(receiver));
receiver_.set_disconnect_handler(
base::BindOnce(&PerfettoTracingCoordinator::OnClientConnectionError,
base::Unretained(this)));
}
......
......@@ -10,7 +10,6 @@
#include "base/memory/weak_ptr.h"
#include "base/sequence_checker.h"
#include "mojo/public/cpp/bindings/binding.h"
#include "services/tracing/coordinator.h"
#include "services/tracing/public/mojom/tracing.mojom.h"
......@@ -31,8 +30,8 @@ class PerfettoTracingCoordinator : public Coordinator {
~PerfettoTracingCoordinator() override;
void BindCoordinatorRequest(
mojom::CoordinatorRequest request,
void BindCoordinatorReceiver(
mojo::PendingReceiver<mojom::Coordinator> receiver,
const service_manager::BindSourceInfo& source_info);
// mojom::Coordinator implementation.
......@@ -57,7 +56,7 @@ class PerfettoTracingCoordinator : public Coordinator {
const std::string& agent_label,
StopAndFlushCallback callback);
mojo::Binding<mojom::Coordinator> binding_;
mojo::Receiver<mojom::Coordinator> receiver_{this};
class TracingSession;
std::unique_ptr<TracingSession> tracing_session_;
......
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