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

Unified Diff: chrome/browser/metrics/leak_detector/leak_detector_remote_controller.cc

Issue 2326913003: Privatize StrongBinding lifetime management (Closed)
Patch Set: rebase Created 4 years, 3 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: chrome/browser/metrics/leak_detector/leak_detector_remote_controller.cc
diff --git a/chrome/browser/metrics/leak_detector/leak_detector_remote_controller.cc b/chrome/browser/metrics/leak_detector/leak_detector_remote_controller.cc
index 669b14c40a8e98b1157e6e79eeba4051674441b5..c99d9b54c42d9eae8f699968bf7e98b734fb8e46 100644
--- a/chrome/browser/metrics/leak_detector/leak_detector_remote_controller.cc
+++ b/chrome/browser/metrics/leak_detector/leak_detector_remote_controller.cc
@@ -4,8 +4,11 @@
#include "chrome/browser/metrics/leak_detector/leak_detector_remote_controller.h"
+#include "base/bind.h"
+#include "base/callback.h"
#include "components/metrics/leak_detector/protobuf_to_mojo_converter.h"
#include "content/public/browser/browser_thread.h"
+#include "mojo/public/cpp/bindings/strong_binding.h"
namespace metrics {
@@ -23,7 +26,14 @@ LeakDetectorRemoteController::~LeakDetectorRemoteController() {}
// static
void LeakDetectorRemoteController::Create(mojom::LeakDetectorRequest request) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
- new LeakDetectorRemoteController(std::move(request));
+ std::unique_ptr<LeakDetectorRemoteController> controller =
+ base::WrapUnique(new LeakDetectorRemoteController);
+ base::Closure error_handler =
+ base::Bind(&LeakDetectorRemoteController::OnRemoteProcessShutdown,
+ base::Unretained(controller.get()));
+ auto binding =
+ mojo::MakeStrongBinding(std::move(controller), std::move(request));
+ binding->set_connection_error_handler(error_handler);
}
void LeakDetectorRemoteController::GetParams(
@@ -68,14 +78,8 @@ void LeakDetectorRemoteController::OnRemoteProcessShutdown() {
}
}
-LeakDetectorRemoteController::LeakDetectorRemoteController(
- mojom::LeakDetectorRequest request)
- : binding_(this, std::move(request)),
- leak_detector_enabled_on_remote_process_(false) {
- binding_.set_connection_error_handler(
- base::Bind(&LeakDetectorRemoteController::OnRemoteProcessShutdown,
- base::Unretained(this)));
-}
+LeakDetectorRemoteController::LeakDetectorRemoteController()
+ : leak_detector_enabled_on_remote_process_(false) {}
// static
void LeakDetectorRemoteController::SetLocalControllerInstance(
« no previous file with comments | « chrome/browser/metrics/leak_detector/leak_detector_remote_controller.h ('k') | chrome/gpu/chrome_content_gpu_client.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698