Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(524)

Unified Diff: services/resource_coordinator/public/cpp/memory/memory_dump_manager_delegate_impl.h

Issue 2738093003: Revert of memory-infra: Finish moving to Mojo (2nd attempt) (Closed)
Patch Set: Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: services/resource_coordinator/public/cpp/memory/memory_dump_manager_delegate_impl.h
diff --git a/services/resource_coordinator/public/cpp/memory/memory_dump_manager_delegate_impl.h b/services/resource_coordinator/public/cpp/memory/memory_dump_manager_delegate_impl.h
index 60ff3765e5312fd5abe690c3bf251ac146a90009..117661997368983b166c9a275728e054f488a42b 100644
--- a/services/resource_coordinator/public/cpp/memory/memory_dump_manager_delegate_impl.h
+++ b/services/resource_coordinator/public/cpp/memory/memory_dump_manager_delegate_impl.h
@@ -5,8 +5,6 @@
#ifndef SERVICES_RESOURCE_COORDINATOR_PUBLIC_CPP_MEMORY_MEMORY_DUMP_MANAGER_DELEGATE_IMPL_H_
#define SERVICES_RESOURCE_COORDINATOR_PUBLIC_CPP_MEMORY_MEMORY_DUMP_MANAGER_DELEGATE_IMPL_H_
-#include "base/single_thread_task_runner.h"
-#include "base/synchronization/lock.h"
#include "base/trace_event/memory_dump_manager.h"
#include "base/trace_event/memory_dump_request_args.h"
#include "mojo/public/cpp/bindings/binding.h"
@@ -16,80 +14,34 @@
namespace memory_instrumentation {
-// This is the bridge between MemoryDumpManager and the Coordinator service.
-// This indirection is needed to avoid a dependency from //base, where
-// MemoryDumpManager lives, to //services, where the Coordinator service lives.
-//
-// This cannot just be implemented by the Coordinator service, because there is
-// no Coordinator service in child processes. So, in a child process, the
-// delegate remotely connects to the Coordinator service. In the browser
-// process, the delegate locally connects to the Coordinator service.
class MemoryDumpManagerDelegateImpl
: public base::trace_event::MemoryDumpManagerDelegate,
public mojom::ProcessLocalDumpManager {
public:
- class Config {
- public:
- Config(service_manager::InterfaceProvider* interface_provider)
- : interface_provider_(interface_provider), coordinator_(nullptr) {}
- Config(Coordinator* coordinator)
- : interface_provider_(nullptr), coordinator_(coordinator) {}
- ~Config();
+ // Use to bind to a remote coordinator.
+ MemoryDumpManagerDelegateImpl(
+ service_manager::InterfaceProvider* interface_provider);
- service_manager::InterfaceProvider* interface_provider() const {
- return interface_provider_;
- }
+ // Use to bind to a coordinator in the same process.
+ MemoryDumpManagerDelegateImpl(Coordinator* coordinator);
+ ~MemoryDumpManagerDelegateImpl() override;
- Coordinator* coordinator() const { return coordinator_; }
-
- private:
- service_manager::InterfaceProvider* interface_provider_;
- Coordinator* coordinator_;
- bool is_test_config_;
- };
-
- //
- static MemoryDumpManagerDelegateImpl* Create(const Config& config);
-
- bool IsCoordinator() const override;
+ bool IsCoordinator() const;
// The base::trace_event::MemoryDumpManager calls this.
void RequestGlobalMemoryDump(
const base::trace_event::MemoryDumpRequestArgs& args,
const base::trace_event::MemoryDumpCallback& callback) override;
- Config config() { return config_; }
- void SetAsNonCoordinatorForTesting();
-
private:
- friend std::default_delete<MemoryDumpManagerDelegateImpl>; // For testing
- friend class MemoryDumpManagerDelegateImplTest; // For testing
-
- MemoryDumpManagerDelegateImpl(const Config& config);
- ~MemoryDumpManagerDelegateImpl() override;
-
// The ProcessLocalDumpManager interface. The coordinator calls this.
void RequestProcessMemoryDump(
const base::trace_event::MemoryDumpRequestArgs& args,
const RequestProcessMemoryDumpCallback& callback) override;
- // A proxy callback for updating |pending_memory_dump_guid_|.
- void MemoryDumpCallbackProxy(
- const base::trace_event::MemoryDumpCallback& callback,
- uint64_t dump_guid,
- bool success);
-
+ bool is_coordinator_;
mojom::CoordinatorPtr coordinator_;
mojo::Binding<mojom::ProcessLocalDumpManager> binding_;
- const Config config_;
- scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
- uint64_t pending_memory_dump_guid_;
-
- // Prevents racy access to |pending_memory_dump_guid_|.
- base::Lock pending_memory_dump_guid_lock_;
-
- // Prevents racy access to |initialized_|.
- base::Lock initialized_lock_;
DISALLOW_COPY_AND_ASSIGN(MemoryDumpManagerDelegateImpl);
};

Powered by Google App Engine
This is Rietveld 408576698