summaryrefslogtreecommitdiffstats
path: root/chromeos
diff options
context:
space:
mode:
authorcharliea <charliea@chromium.org>2016-01-26 15:42:50 -0800
committerCommit bot <commit-bot@chromium.org>2016-01-26 23:44:04 +0000
commitc1b44047e693b68a9a441a1d9f464e3c9e16ed89 (patch)
treed25f3605d883097cc62663f1b3be40dda3a2d828 /chromeos
parent11eedafabb5a5ad43ec8caadacd4fd7de2f8c112 (diff)
downloadchromium_src-c1b44047e693b68a9a441a1d9f464e3c9e16ed89.zip
chromium_src-c1b44047e693b68a9a441a1d9f464e3c9e16ed89.tar.gz
chromium_src-c1b44047e693b68a9a441a1d9f464e3c9e16ed89.tar.bz2
Adds a callback to TracingAgent::StartAgentTracing()
This allows us to use tracing agents that require more time to start. The first use case of this will be the BattOr tracing agent, which requires several round trips over USB before it can know whether StartTracing was successful. Review URL: https://codereview.chromium.org/1614063005 Cr-Commit-Position: refs/heads/master@{#371637}
Diffstat (limited to 'chromeos')
-rw-r--r--chromeos/dbus/debug_daemon_client.cc10
-rw-r--r--chromeos/dbus/fake_debug_daemon_client.cc9
-rw-r--r--chromeos/dbus/fake_debug_daemon_client.h4
3 files changed, 15 insertions, 8 deletions
diff --git a/chromeos/dbus/debug_daemon_client.cc b/chromeos/dbus/debug_daemon_client.cc
index 5358c94..4af9848 100644
--- a/chromeos/dbus/debug_daemon_client.cc
+++ b/chromeos/dbus/debug_daemon_client.cc
@@ -20,6 +20,7 @@
#include "base/posix/eintr_wrapper.h"
#include "base/strings/string_util.h"
#include "base/task_runner_util.h"
+#include "base/thread_task_runner_handle.h"
#include "chromeos/dbus/pipe_reader.h"
#include "dbus/bus.h"
#include "dbus/message.h"
@@ -206,8 +207,8 @@ class DebugDaemonClientImpl : public DebugDaemonClient {
std::string GetTraceEventLabel() override { return kCrOSTraceLabel; }
- bool StartAgentTracing(
- const base::trace_event::TraceConfig& trace_config) override {
+ void StartAgentTracing(const base::trace_event::TraceConfig& trace_config,
+ const StartAgentTracingCallback& callback) override {
dbus::MethodCall method_call(
debugd::kDebugdInterface,
debugd::kSystraceStart);
@@ -220,7 +221,10 @@ class DebugDaemonClientImpl : public DebugDaemonClient {
dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
base::Bind(&DebugDaemonClientImpl::OnStartMethod,
weak_ptr_factory_.GetWeakPtr()));
- return true;
+
+ base::ThreadTaskRunnerHandle::Get()->PostTask(
+ FROM_HERE,
+ base::Bind(callback, GetTracingAgentName(), true /* success */));
}
void StopAgentTracing(const StopAgentTracingCallback& callback) override {
diff --git a/chromeos/dbus/fake_debug_daemon_client.cc b/chromeos/dbus/fake_debug_daemon_client.cc
index a2952ec..2114331 100644
--- a/chromeos/dbus/fake_debug_daemon_client.cc
+++ b/chromeos/dbus/fake_debug_daemon_client.cc
@@ -57,9 +57,12 @@ std::string FakeDebugDaemonClient::GetTraceEventLabel() {
return kCrOSTraceLabel;
}
-bool FakeDebugDaemonClient::StartAgentTracing(
- const base::trace_event::TraceConfig& trace_config) {
- return true;
+void FakeDebugDaemonClient::StartAgentTracing(
+ const base::trace_event::TraceConfig& trace_config,
+ const StartAgentTracingCallback& callback) {
+ base::ThreadTaskRunnerHandle::Get()->PostTask(
+ FROM_HERE,
+ base::Bind(callback, GetTracingAgentName(), true /* success */));
}
void FakeDebugDaemonClient::StopAgentTracing(
diff --git a/chromeos/dbus/fake_debug_daemon_client.h b/chromeos/dbus/fake_debug_daemon_client.h
index a75edbf3..b7f7799 100644
--- a/chromeos/dbus/fake_debug_daemon_client.h
+++ b/chromeos/dbus/fake_debug_daemon_client.h
@@ -31,8 +31,8 @@ class CHROMEOS_EXPORT FakeDebugDaemonClient : public DebugDaemonClient {
const SetDebugModeCallback& callback) override;
std::string GetTracingAgentName() override;
std::string GetTraceEventLabel() override;
- bool StartAgentTracing(
- const base::trace_event::TraceConfig& trace_config) override;
+ void StartAgentTracing(const base::trace_event::TraceConfig& trace_config,
+ const StartAgentTracingCallback& callback) override;
void StopAgentTracing(const StopAgentTracingCallback& callback) override;
void SetStopAgentTracingTaskRunner(
scoped_refptr<base::TaskRunner> task_runner) override;