0

dbus: move DebugDaemonClient to debug_daemon subfolder

This refactors DebugDaemonClient by moving the the client to
debug_daemon subfolder under //chromeos/dbus.
metrics::DebugdClientProvider is also moved to the subfolder and renamed
to to chromeos::DebugDaemonClientProvider to be consistent with
chromeos::DebugDaemonClient.

Bug: 998364
Test: Build

Change-Id: Icfe85f1c2b55146f0130c42ceff3e57f8b376922
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1794944
Commit-Queue: Chinglin Yu <chinglinyu@chromium.org>
Reviewed-by: oysteine <oysteine@chromium.org>
Reviewed-by: Ben Wells <benwells@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Steven Bennetts <stevenjb@chromium.org>
Reviewed-by: Gabriel Marin <gmx@chromium.org>
Cr-Commit-Position: refs/heads/master@{#701442}
This commit is contained in:
Chinglin Yu
2019-10-01 05:57:54 +00:00
committed by Commit Bot
parent 1c73878659
commit cd6a9baf45
46 changed files with 193 additions and 134 deletions

@ -9,7 +9,7 @@
#include "chromeos/dbus/concierge/service.pb.h"
#include "chromeos/dbus/concierge_client.h"
#include "chromeos/dbus/dbus_thread_manager.h"
#include "chromeos/dbus/debug_daemon_client.h"
#include "chromeos/dbus/debug_daemon/debug_daemon_client.h"
#include "components/keyed_service/content/browser_context_dependency_manager.h"
#include "components/keyed_service/content/browser_context_keyed_service_factory.h"
#include "content/public/browser/browser_context.h"

@ -12,7 +12,7 @@
#include "chromeos/dbus/concierge/service.pb.h"
#include "chromeos/dbus/dbus_thread_manager.h"
#include "chromeos/dbus/fake_concierge_client.h"
#include "chromeos/dbus/fake_debug_daemon_client.h"
#include "chromeos/dbus/debug_daemon/fake_debug_daemon_client.h"
#include "content/public/test/browser_task_environment.h"
#include "dbus/bus.h"
#include "dbus/object_proxy.h"

@ -39,7 +39,7 @@
#include "chromeos/dbus/concierge_client.h"
#include "chromeos/dbus/cros_disks_client.h"
#include "chromeos/dbus/dbus_thread_manager.h"
#include "chromeos/dbus/debug_daemon_client.h"
#include "chromeos/dbus/debug_daemon/debug_daemon_client.h"
#include "chromeos/dbus/image_loader_client.h"
#include "chromeos/disks/disk_mount_manager.h"
#include "components/component_updater/component_updater_service.h"

@ -27,7 +27,7 @@
#include "chrome/common/pref_names.h"
#include "chromeos/constants/chromeos_switches.h"
#include "chromeos/dbus/dbus_thread_manager.h"
#include "chromeos/dbus/fake_debug_daemon_client.h"
#include "chromeos/dbus/debug_daemon/fake_debug_daemon_client.h"
#include "chromeos/dbus/fake_update_engine_client.h"
#include "chromeos/dbus/power/fake_power_manager_client.h"
#include "components/prefs/pref_service.h"

@ -23,7 +23,7 @@
#include "chrome/browser/download/download_service_factory.h"
#include "chrome/browser/profiles/profile.h"
#include "chromeos/dbus/dbus_thread_manager.h"
#include "chromeos/dbus/debug_daemon_client.h"
#include "chromeos/dbus/debug_daemon/debug_daemon_client.h"
#include "components/download/public/background_service/download_metadata.h"
#include "components/download/public/background_service/download_service.h"
#include "components/prefs/pref_service.h"

@ -20,7 +20,7 @@
#include "chrome/browser/ui/ash/launcher/shelf_spinner_item_controller.h"
#include "chrome/grit/generated_resources.h"
#include "chromeos/dbus/dbus_thread_manager.h"
#include "chromeos/dbus/debug_daemon_client.h"
#include "chromeos/dbus/debug_daemon/debug_daemon_client.h"
#include "components/keyed_service/content/browser_context_dependency_manager.h"
#include "components/keyed_service/content/browser_context_keyed_service_factory.h"
#include "components/prefs/pref_service.h"

@ -24,7 +24,7 @@
#include "chrome/browser/profiles/profile.h"
#include "chrome/common/chrome_features.h"
#include "chromeos/dbus/dbus_thread_manager.h"
#include "chromeos/dbus/debug_daemon_client.h"
#include "chromeos/dbus/debug_daemon/debug_daemon_client.h"
#include "chromeos/printing/ppd_provider.h"
#include "chromeos/printing/printer_configuration.h"
#include "components/device_event_log/device_event_log.h"

@ -25,7 +25,7 @@
#include "chrome/browser/chromeos/printing/synced_printers_manager_factory.h"
#include "chrome/browser/chromeos/printing/usb_printer_util.h"
#include "chromeos/dbus/dbus_thread_manager.h"
#include "chromeos/dbus/debug_daemon_client.h"
#include "chromeos/dbus/debug_daemon/debug_daemon_client.h"
#include "chromeos/printing/ppd_provider.h"
#include "chromeos/printing/usb_printer_id.h"
#include "content/public/browser/browser_task_traits.h"

@ -10,7 +10,7 @@
#include "base/metrics/field_trial_params.h"
#include "chrome/common/chrome_features.h"
#include "chrome/common/pref_names.h"
#include "chromeos/dbus/debug_daemon_client.h"
#include "chromeos/dbus/debug_daemon/debug_daemon_client.h"
#include "components/prefs/pref_registry_simple.h"
#include "components/prefs/pref_service.h"
#include "third_party/cros_system_api/dbus/debugd/dbus-constants.h"

@ -10,7 +10,7 @@
#include "base/test/task_environment.h"
#include "chrome/common/chrome_features.h"
#include "chrome/common/pref_names.h"
#include "chromeos/dbus/fake_debug_daemon_client.h"
#include "chromeos/dbus/debug_daemon/fake_debug_daemon_client.h"
#include "components/prefs/testing_pref_service.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/cros_system_api/dbus/debugd/dbus-constants.h"

@ -19,7 +19,7 @@
#include "chrome/browser/chromeos/profiles/profile_helper.h"
#include "chrome/common/chrome_switches.h"
#include "chromeos/dbus/dbus_thread_manager.h"
#include "chromeos/dbus/debug_daemon_client.h"
#include "chromeos/dbus/debug_daemon/debug_daemon_client.h"
#include "components/user_manager/user.h"
#include "components/user_manager/user_manager.h"
#include "content/public/browser/browser_thread.h"

@ -20,7 +20,7 @@
#include "base/task/post_task.h"
#include "chrome/common/logging_chrome.h"
#include "chromeos/dbus/dbus_thread_manager.h"
#include "chromeos/dbus/debug_daemon_client.h"
#include "chromeos/dbus/debug_daemon/debug_daemon_client.h"
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"

@ -8,7 +8,7 @@
#include "base/bind.h"
#include "chromeos/dbus/dbus_thread_manager.h"
#include "chromeos/dbus/debug_daemon_client.h"
#include "chromeos/dbus/debug_daemon/debug_daemon_client.h"
#include "content/public/browser/browser_thread.h"
namespace system_logs {

@ -11,7 +11,7 @@
#include "base/macros.h"
#include "base/run_loop.h"
#include "chromeos/dbus/dbus_thread_manager.h"
#include "chromeos/dbus/fake_debug_daemon_client.h"
#include "chromeos/dbus/debug_daemon/fake_debug_daemon_client.h"
#include "content/public/test/browser_task_environment.h"
#include "testing/gtest/include/gtest/gtest.h"

@ -22,7 +22,7 @@
#include "chrome/browser/ui/browser_navigator_params.h"
#include "chrome/grit/generated_resources.h"
#include "chromeos/dbus/dbus_thread_manager.h"
#include "chromeos/dbus/debug_daemon_client.h"
#include "chromeos/dbus/debug_daemon/debug_daemon_client.h"
#include "components/policy/proto/chrome_device_policy.pb.h"
#include "components/strings/grit/components_strings.h"
#include "third_party/cros_system_api/dbus/debugd/dbus-constants.h"

@ -21,6 +21,7 @@
#include "chrome/browser/metrics/perf/process_type_collector.h"
#include "chrome/browser/metrics/perf/windowed_incognito_observer.h"
#include "chrome/browser/ui/browser_list.h"
#include "chromeos/dbus/debug_daemon/debug_daemon_client_provider.h"
#include "components/variations/variations_associated_data.h"
#include "third_party/metrics_proto/sampled_profile.pb.h"
@ -256,7 +257,8 @@ void PerfCollector::SetUp() {
// Create DebugdClientProvider to bind its private DBus connection to the
// current sequence.
debugd_client_provider_ = std::make_unique<DebugdClientProvider>();
debugd_client_provider_ =
std::make_unique<chromeos::DebugDaemonClientProvider>();
auto task_runner = base::SequencedTaskRunnerHandle::Get();
base::PostTask(

@ -19,10 +19,13 @@ namespace base {
class SequencedTaskRunner;
}
namespace chromeos {
class DebugDaemonClientProvider;
} // namespace chromeos
namespace metrics {
struct CPUIdentity;
class DebugdClientProvider;
class WindowedIncognitoObserver;
// Enables collection of perf events profile data. perf aka "perf events" is a
@ -112,7 +115,7 @@ class PerfCollector : public internal::MetricCollector {
RandomSelector command_selector_;
// |debugd_client_provider_| hosts the private DBus connection to debugd.
std::unique_ptr<DebugdClientProvider> debugd_client_provider_;
std::unique_ptr<chromeos::DebugDaemonClientProvider> debugd_client_provider_;
// An active call to perf/quipper, if set.
std::unique_ptr<PerfOutputCall> perf_output_call_;

@ -7,7 +7,7 @@
#include "base/bind.h"
#include "base/bind_helpers.h"
#include "base/task/post_task.h"
#include "chromeos/dbus/debug_daemon_client.h"
#include "chromeos/dbus/debug_daemon/debug_daemon_client.h"
#include "dbus/bus.h"
#include "dbus/message.h"
#include "dbus/object_path.h"
@ -16,29 +16,6 @@
namespace metrics {
DebugdClientProvider::DebugdClientProvider()
: dbus_task_runner_(base::CreateSingleThreadTaskRunner(
{base::ThreadPool(), base::TaskPriority::BEST_EFFORT,
base::MayBlock()})),
debug_daemon_client_(chromeos::DebugDaemonClient::Create()) {
dbus::Bus::Options dbus_options;
dbus_options.bus_type = dbus::Bus::SYSTEM;
dbus_options.connection_type = dbus::Bus::PRIVATE;
dbus_options.dbus_task_runner = dbus_task_runner_;
dbus_bus_ = base::MakeRefCounted<dbus::Bus>(dbus_options);
debug_daemon_client_->Init(dbus_bus_.get());
}
DebugdClientProvider::~DebugdClientProvider() {
DCHECK(debug_daemon_client_);
DCHECK(dbus_bus_);
debug_daemon_client_ = nullptr;
dbus_task_runner_->PostTask(
FROM_HERE, base::BindOnce(&dbus::Bus::ShutdownAndBlock, dbus_bus_));
}
PerfOutputCall::PerfOutputCall(chromeos::DebugDaemonClient* debug_daemon_client,
base::TimeDelta duration,
const std::vector<std::string>& perf_args,

@ -21,32 +21,8 @@ namespace chromeos {
class DebugDaemonClient;
} // namespace chromeos
namespace dbus {
class Bus;
} // namespace dbus
namespace metrics {
// This class hosts a private DBus connection for perf collection. The collector
// sequence acts as the origin thread of the DBus Bus and ObjectProxy objects.
class DebugdClientProvider {
public:
DebugdClientProvider();
~DebugdClientProvider();
chromeos::DebugDaemonClient* debug_daemon_client() const {
return debug_daemon_client_.get();
}
private:
// The private bus.
scoped_refptr<dbus::Bus> dbus_bus_;
scoped_refptr<base::SequencedTaskRunner> dbus_task_runner_;
std::unique_ptr<chromeos::DebugDaemonClient> debug_daemon_client_;
DISALLOW_COPY_AND_ASSIGN(DebugdClientProvider);
};
// Class for handling getting output from perf over DBus. Manages the
// asynchronous DBus call and retrieving data from quipper over a pipe.
class PerfOutputCall {

@ -12,7 +12,7 @@
#include "base/task/post_task.h"
#include "base/threading/sequenced_task_runner_handle.h"
#include "base/threading/thread_restrictions.h"
#include "chromeos/dbus/fake_debug_daemon_client.h"
#include "chromeos/dbus/debug_daemon/fake_debug_daemon_client.h"
#include "content/public/test/browser_task_environment.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/metrics_proto/sampled_profile.pb.h"

@ -24,7 +24,7 @@
#include "chrome/browser/resource_coordinator/lifecycle_unit_state.mojom.h"
#include "chrome/browser/resource_coordinator/tab_manager.h"
#include "chrome/browser/ui/browser_list_observer.h"
#include "chromeos/dbus/debug_daemon_client.h"
#include "chromeos/dbus/debug_daemon/debug_daemon_client.h"
#include "components/arc/mojom/process.mojom.h"
#include "content/public/browser/notification_observer.h"
#include "content/public/browser/notification_registrar.h"

@ -15,7 +15,7 @@
#include "base/time/time.h"
#include "chrome/browser/resource_coordinator/test_lifecycle_unit.h"
#include "chrome/browser/resource_coordinator/time.h"
#include "chromeos/dbus/fake_debug_daemon_client.h"
#include "chromeos/dbus/debug_daemon/fake_debug_daemon_client.h"
#include "content/public/test/browser_task_environment.h"
#include "testing/gtest/include/gtest/gtest.h"

@ -23,8 +23,8 @@
#include "chrome/common/chrome_features.h"
#include "chrome/grit/generated_resources.h"
#include "chromeos/dbus/dbus_thread_manager.h"
#include "chromeos/dbus/debug_daemon/fake_debug_daemon_client.h"
#include "chromeos/dbus/fake_concierge_client.h"
#include "chromeos/dbus/fake_debug_daemon_client.h"
#include "chromeos/tpm/stub_install_attributes.h"
#include "components/account_id/account_id.h"
#include "components/download/public/background_service/download_metadata.h"

@ -21,7 +21,7 @@
#include "chromeos/constants/chromeos_switches.h"
#include "chromeos/dbus/cryptohome/cryptohome_client.h"
#include "chromeos/dbus/dbus_thread_manager.h"
#include "chromeos/dbus/debug_daemon_client.h"
#include "chromeos/dbus/debug_daemon/debug_daemon_client.h"
#include "chromeos/dbus/power/power_manager_client.h"
#include "components/login/localized_values_builder.h"
#include "components/prefs/pref_registry_simple.h"

@ -34,7 +34,7 @@
#if defined(OS_CHROMEOS)
#include "chromeos/dbus/dbus_thread_manager.h"
#include "chromeos/dbus/debug_daemon_client.h"
#include "chromeos/dbus/debug_daemon/debug_daemon_client.h"
#endif
#if defined(OS_LINUX)

@ -44,7 +44,7 @@
#include "chrome/browser/policy/policy_conversions.h"
#include "chrome/common/logging_chrome.h"
#include "chromeos/dbus/dbus_thread_manager.h"
#include "chromeos/dbus/debug_daemon_client.h"
#include "chromeos/dbus/debug_daemon/debug_daemon_client.h"
#include "chromeos/network/onc/onc_certificate_importer_impl.h"
#include "chromeos/network/onc/onc_parsed_certificates.h"
#include "chromeos/network/onc/onc_utils.h"

@ -25,7 +25,7 @@
#include "chrome/browser/ui/webui/print_preview/print_preview_utils.h"
#include "chrome/common/pref_names.h"
#include "chromeos/dbus/dbus_thread_manager.h"
#include "chromeos/dbus/debug_daemon_client.h"
#include "chromeos/dbus/debug_daemon/debug_daemon_client.h"
#include "chromeos/printing/printer_configuration.h"
#include "components/prefs/pref_service.h"
#include "components/printing/browser/printer_capabilities.h"

@ -36,7 +36,7 @@
#include "chrome/common/chrome_paths.h"
#include "chrome/common/pref_names.h"
#include "chromeos/dbus/dbus_thread_manager.h"
#include "chromeos/dbus/debug_daemon_client.h"
#include "chromeos/dbus/debug_daemon/debug_daemon_client.h"
#include "chromeos/printing/ppd_cache.h"
#include "chromeos/printing/ppd_line_reader.h"
#include "chromeos/printing/ppd_provider.h"

@ -12,7 +12,7 @@
#include "chrome/browser/chromeos/printing/printing_stubs.h"
#include "chrome/test/base/testing_profile.h"
#include "chromeos/dbus/dbus_thread_manager.h"
#include "chromeos/dbus/debug_daemon_client.h"
#include "chromeos/dbus/debug_daemon/debug_daemon_client.h"
#include "content/public/test/browser_task_environment.h"
#include "content/public/test/test_web_ui.h"
#include "testing/gtest/include/gtest/gtest.h"

@ -18,6 +18,7 @@ component("dbus") {
public_deps = [
":common",
"//chromeos/dbus/constants",
"//chromeos/dbus/debug_daemon",
"//chromeos/dbus/shill",
"//dbus",
]
@ -61,14 +62,11 @@ component("dbus") {
"concierge_client.h",
"cros_disks_client.cc",
"cros_disks_client.h",
"dbus_client.h",
"dbus_client_implementation_type.h",
"dbus_clients_browser.cc",
"dbus_clients_browser.h",
"dbus_thread_manager.cc",
"dbus_thread_manager.h",
"debug_daemon_client.cc",
"debug_daemon_client.h",
"easy_unlock_client.cc",
"easy_unlock_client.h",
"fake_arc_appfuse_provider_client.cc",
@ -91,8 +89,6 @@ component("dbus") {
"fake_concierge_client.h",
"fake_cros_disks_client.cc",
"fake_cros_disks_client.h",
"fake_debug_daemon_client.cc",
"fake_debug_daemon_client.h",
"fake_easy_unlock_client.cc",
"fake_easy_unlock_client.h",
"fake_gnubby_client.cc",
@ -177,6 +173,7 @@ component("common") {
sources = [
"blocking_method_caller.cc",
"blocking_method_caller.h",
"dbus_client.h",
"dbus_method_call_status.cc",
"dbus_method_call_status.h",
"initialize_dbus_client.h",

@ -16,7 +16,8 @@
#include "chromeos/dbus/cros_disks_client.h"
#include "chromeos/dbus/dbus_client_implementation_type.h"
#include "chromeos/dbus/dbus_thread_manager.h"
#include "chromeos/dbus/debug_daemon_client.h"
#include "chromeos/dbus/debug_daemon/debug_daemon_client.h"
#include "chromeos/dbus/debug_daemon/fake_debug_daemon_client.h"
#include "chromeos/dbus/easy_unlock_client.h"
#include "chromeos/dbus/fake_arc_appfuse_provider_client.h"
#include "chromeos/dbus/fake_arc_keymaster_client.h"
@ -27,7 +28,6 @@
#include "chromeos/dbus/fake_cicerone_client.h"
#include "chromeos/dbus/fake_concierge_client.h"
#include "chromeos/dbus/fake_cros_disks_client.h"
#include "chromeos/dbus/fake_debug_daemon_client.h"
#include "chromeos/dbus/fake_easy_unlock_client.h"
#include "chromeos/dbus/fake_gnubby_client.h"
#include "chromeos/dbus/fake_image_burner_client.h"

@ -22,7 +22,7 @@
#include "chromeos/dbus/cros_disks_client.h"
#include "chromeos/dbus/dbus_client.h"
#include "chromeos/dbus/dbus_clients_browser.h"
#include "chromeos/dbus/debug_daemon_client.h"
#include "chromeos/dbus/debug_daemon/debug_daemon_client.h"
#include "chromeos/dbus/easy_unlock_client.h"
#include "chromeos/dbus/gnubby_client.h"
#include "chromeos/dbus/image_burner_client.h"

@ -0,0 +1,24 @@
# Copyright 2019 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
assert(is_chromeos, "Non-ChromeOS builds cannot depend on //chromeos")
component("debug_daemon") {
defines = [ "IS_DEBUG_DAEMON_IMPL" ]
deps = [
"//base",
"//chromeos/dbus:common",
"//dbus",
]
sources = [
"debug_daemon_client.cc",
"debug_daemon_client.h",
"debug_daemon_client_provider.cc",
"debug_daemon_client_provider.h",
"fake_debug_daemon_client.cc",
"fake_debug_daemon_client.h",
]
}

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chromeos/dbus/debug_daemon_client.h"
#include "chromeos/dbus/debug_daemon/debug_daemon_client.h"
#include <dbus/dbus-protocol.h>
#include <fcntl.h>
@ -163,8 +163,7 @@ class DebugDaemonClientImpl : public DebugDaemonClient {
bool numeric,
bool ipv6,
DBusMethodCallback<std::vector<std::string>> callback) override {
dbus::MethodCall method_call(debugd::kDebugdInterface,
debugd::kGetRoutes);
dbus::MethodCall method_call(debugd::kDebugdInterface, debugd::kGetRoutes);
dbus::MessageWriter writer(&method_call);
dbus::MessageWriter sub_writer(NULL);
writer.OpenArray("{sv}", &sub_writer);
@ -255,8 +254,7 @@ class DebugDaemonClientImpl : public DebugDaemonClient {
}
void GetAllLogs(GetLogsCallback callback) override {
dbus::MethodCall method_call(debugd::kDebugdInterface,
debugd::kGetAllLogs);
dbus::MethodCall method_call(debugd::kDebugdInterface, debugd::kGetAllLogs);
debugdaemon_proxy_->CallMethod(
&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
base::BindOnce(&DebugDaemonClientImpl::OnGetAllLogs,
@ -280,9 +278,8 @@ class DebugDaemonClientImpl : public DebugDaemonClient {
void StartAgentTracing(const base::trace_event::TraceConfig& trace_config,
StartAgentTracingCallback callback) override {
dbus::MethodCall method_call(
debugd::kDebugdInterface,
debugd::kSystraceStart);
dbus::MethodCall method_call(debugd::kDebugdInterface,
debugd::kSystraceStart);
dbus::MessageWriter writer(&method_call);
if (trace_config.systrace_events().empty()) {
writer.AppendString("all"); // TODO(sleffler) parameterize category list
@ -341,8 +338,7 @@ class DebugDaemonClientImpl : public DebugDaemonClient {
void TestICMP(const std::string& ip_address,
TestICMPCallback callback) override {
dbus::MethodCall method_call(debugd::kDebugdInterface,
debugd::kTestICMP);
dbus::MethodCall method_call(debugd::kDebugdInterface, debugd::kTestICMP);
dbus::MessageWriter writer(&method_call);
writer.AppendString(ip_address);
debugdaemon_proxy_->CallMethod(
@ -630,9 +626,9 @@ class DebugDaemonClientImpl : public DebugDaemonClient {
while (sub_reader.HasMoreData()) {
dbus::MessageReader sub_sub_reader(NULL);
std::string key, value;
if (!sub_reader.PopDictEntry(&sub_sub_reader)
|| !sub_sub_reader.PopString(&key)
|| !sub_sub_reader.PopString(&value)) {
if (!sub_reader.PopDictEntry(&sub_sub_reader) ||
!sub_sub_reader.PopString(&key) ||
!sub_sub_reader.PopString(&value)) {
broken = true;
break;
}
@ -699,18 +695,16 @@ class DebugDaemonClientImpl : public DebugDaemonClient {
std::move(callback).Run(std::move(result));
}
void OnEnableDebuggingFeatures(
const EnableDebuggingCallback& callback,
dbus::Response* response) {
void OnEnableDebuggingFeatures(const EnableDebuggingCallback& callback,
dbus::Response* response) {
if (callback.is_null())
return;
callback.Run(response != NULL);
}
void OnQueryDebuggingFeatures(
const QueryDevFeaturesCallback& callback,
dbus::Response* response) {
void OnQueryDebuggingFeatures(const QueryDevFeaturesCallback& callback,
dbus::Response* response) {
if (callback.is_null())
return;
@ -723,9 +717,8 @@ class DebugDaemonClientImpl : public DebugDaemonClient {
callback.Run(true, feature_mask);
}
void OnRemoveRootfsVerification(
const EnableDebuggingCallback& callback,
dbus::Response* response) {
void OnRemoveRootfsVerification(const EnableDebuggingCallback& callback,
dbus::Response* response) {
if (callback.is_null())
return;

@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROMEOS_DBUS_DEBUG_DAEMON_CLIENT_H_
#define CHROMEOS_DBUS_DEBUG_DAEMON_CLIENT_H_
#ifndef CHROMEOS_DBUS_DEBUG_DAEMON_DEBUG_DAEMON_CLIENT_H_
#define CHROMEOS_DBUS_DEBUG_DAEMON_DEBUG_DAEMON_CLIENT_H_
#include <stdint.h>
#include <sys/types.h>
@ -23,10 +23,6 @@
#include "chromeos/dbus/dbus_method_call_status.h"
#include "third_party/cros_system_api/dbus/service_constants.h"
namespace metrics {
class DebugdClientProvider;
} // namespace metrics
namespace chromeos {
// A DbusLibraryError represents an error response received from D-Bus.
@ -37,7 +33,7 @@ enum DbusLibraryError {
};
// DebugDaemonClient is used to communicate with the debug daemon.
class COMPONENT_EXPORT(CHROMEOS_DBUS) DebugDaemonClient
class COMPONENT_EXPORT(DEBUG_DAEMON) DebugDaemonClient
: public DBusClient,
public base::trace_event::TracingAgent {
public:
@ -153,8 +149,8 @@ class COMPONENT_EXPORT(CHROMEOS_DBUS) DebugDaemonClient
// Called once QueryDebuggingFeatures() is complete. |succeeded| will be true
// if debugging features have been successfully enabled. |feature_mask| is a
// bitmask made out of DebuggingFeature enum values.
typedef base::Callback<void(bool succeeded,
int feature_mask)> QueryDevFeaturesCallback;
typedef base::Callback<void(bool succeeded, int feature_mask)>
QueryDevFeaturesCallback;
// Checks which debugging features have been already enabled.
virtual void QueryDebuggingFeatures(
const QueryDevFeaturesCallback& callback) = 0;
@ -274,7 +270,7 @@ class COMPONENT_EXPORT(CHROMEOS_DBUS) DebugDaemonClient
protected:
// For calling Init() in initiating a DebugDaemonClient instance for private
// connections.
friend class metrics::DebugdClientProvider;
friend class DebugDaemonClientProvider;
// Create() should be used instead.
DebugDaemonClient();
@ -285,4 +281,4 @@ class COMPONENT_EXPORT(CHROMEOS_DBUS) DebugDaemonClient
} // namespace chromeos
#endif // CHROMEOS_DBUS_DEBUG_DAEMON_CLIENT_H_
#endif // CHROMEOS_DBUS_DEBUG_DAEMON_DEBUG_DAEMON_CLIENT_H_

@ -0,0 +1,40 @@
// Copyright (c) 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chromeos/dbus/debug_daemon/debug_daemon_client_provider.h"
#include "base/task/post_task.h"
#include "chromeos/dbus/debug_daemon/debug_daemon_client.h"
#include "dbus/bus.h"
#include "dbus/message.h"
#include "dbus/object_path.h"
#include "dbus/object_proxy.h"
#include "third_party/cros_system_api/dbus/service_constants.h"
namespace chromeos {
DebugDaemonClientProvider::DebugDaemonClientProvider()
: dbus_task_runner_(base::CreateSingleThreadTaskRunner(
{base::ThreadPool(), base::TaskPriority::BEST_EFFORT,
base::MayBlock()})),
debug_daemon_client_(DebugDaemonClient::Create()) {
dbus::Bus::Options dbus_options;
dbus_options.bus_type = dbus::Bus::SYSTEM;
dbus_options.connection_type = dbus::Bus::PRIVATE;
dbus_options.dbus_task_runner = dbus_task_runner_;
dbus_bus_ = base::MakeRefCounted<dbus::Bus>(dbus_options);
debug_daemon_client_->Init(dbus_bus_.get());
}
DebugDaemonClientProvider::~DebugDaemonClientProvider() {
DCHECK(debug_daemon_client_);
DCHECK(dbus_bus_);
debug_daemon_client_ = nullptr;
dbus_task_runner_->PostTask(
FROM_HERE, base::BindOnce(&dbus::Bus::ShutdownAndBlock, dbus_bus_));
}
} // namespace chromeos

@ -0,0 +1,53 @@
// Copyright (c) 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROMEOS_DBUS_DEBUG_DAEMON_DEBUG_DAEMON_CLIENT_PROVIDER_H_
#define CHROMEOS_DBUS_DEBUG_DAEMON_DEBUG_DAEMON_CLIENT_PROVIDER_H_
#include <memory>
#include "base/component_export.h"
#include "base/memory/scoped_refptr.h"
namespace dbus {
class Bus;
} // namespace dbus
namespace chromeos {
class DebugDaemonClient;
// This class hosts an instance of DebugDaemonClient used to connect to debugd
// using a private DBus connection. The private connection uses the sequence
// on which DebugDaemonClientProvider is instantiated as the origin thread. Use
// this class if you need to connect to debugd from non-UI thread.
//
// Example:
// // From non-UI thread. The private dbus::Bus binds the current sequence as
// // its origin thread.
// std::unique_ptr<DebugDaemonClientProvider> provider =
// std::make_unique<DebugDaemonClientProvider>();
// DebugDaemonClient* client = provider->debug_daemon_client();
// client->GetPerfOutput(...);
//
class COMPONENT_EXPORT(DEBUG_DAEMON) DebugDaemonClientProvider {
public:
DebugDaemonClientProvider();
~DebugDaemonClientProvider();
DebugDaemonClient* debug_daemon_client() const {
return debug_daemon_client_.get();
}
private:
// The private bus.
scoped_refptr<dbus::Bus> dbus_bus_;
scoped_refptr<base::SequencedTaskRunner> dbus_task_runner_;
std::unique_ptr<DebugDaemonClient> debug_daemon_client_;
DISALLOW_COPY_AND_ASSIGN(DebugDaemonClientProvider);
};
} // namespace chromeos
#endif // CHROMEOS_DBUS_DEBUG_DAEMON_DEBUG_DAEMON_CLIENT_PROVIDER_H_

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chromeos/dbus/fake_debug_daemon_client.h"
#include "chromeos/dbus/debug_daemon/fake_debug_daemon_client.h"
#include <stddef.h>
#include <stdint.h>
@ -32,8 +32,7 @@ namespace chromeos {
FakeDebugDaemonClient::FakeDebugDaemonClient()
: features_mask_(DebugDaemonClient::DEV_FEATURE_NONE),
service_is_available_(true) {
}
service_is_available_(true) {}
FakeDebugDaemonClient::~FakeDebugDaemonClient() = default;
@ -140,8 +139,7 @@ void FakeDebugDaemonClient::TestICMPWithOptions(
FROM_HERE, base::BindOnce(std::move(callback), base::nullopt));
}
void FakeDebugDaemonClient::UploadCrashes() {
}
void FakeDebugDaemonClient::UploadCrashes() {}
void FakeDebugDaemonClient::EnableDebuggingFeatures(
const std::string& password,

@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROMEOS_DBUS_FAKE_DEBUG_DAEMON_CLIENT_H_
#define CHROMEOS_DBUS_FAKE_DEBUG_DAEMON_CLIENT_H_
#ifndef CHROMEOS_DBUS_DEBUG_DAEMON_FAKE_DEBUG_DAEMON_CLIENT_H_
#define CHROMEOS_DBUS_DEBUG_DAEMON_FAKE_DEBUG_DAEMON_CLIENT_H_
#include <stdint.h>
#include <sys/types.h>
@ -16,13 +16,13 @@
#include "base/compiler_specific.h"
#include "base/macros.h"
#include "chromeos/dbus/dbus_method_call_status.h"
#include "chromeos/dbus/debug_daemon_client.h"
#include "chromeos/dbus/debug_daemon/debug_daemon_client.h"
namespace chromeos {
// The DebugDaemonClient implementation used on Linux desktop,
// which does nothing.
class COMPONENT_EXPORT(CHROMEOS_DBUS) FakeDebugDaemonClient
class COMPONENT_EXPORT(DEBUG_DAEMON) FakeDebugDaemonClient
: public DebugDaemonClient {
public:
FakeDebugDaemonClient();
@ -125,4 +125,4 @@ class COMPONENT_EXPORT(CHROMEOS_DBUS) FakeDebugDaemonClient
} // namespace chromeos
#endif // CHROMEOS_DBUS_FAKE_DEBUG_DAEMON_CLIENT_H_
#endif // CHROMEOS_DBUS_DEBUG_DAEMON_FAKE_DEBUG_DAEMON_CLIENT_H_

@ -15,7 +15,7 @@
#include "chromeos/constants/chromeos_switches.h"
#include "chromeos/dbus/concierge_client.h"
#include "chromeos/dbus/dbus_thread_manager.h"
#include "chromeos/dbus/debug_daemon_client.h"
#include "chromeos/dbus/debug_daemon/debug_daemon_client.h"
#include "chromeos/dbus/session_manager/session_manager_client.h"
#include "components/arc/arc_features.h"
#include "components/exo/shell_surface_util.h"

@ -10,7 +10,7 @@
#include "base/callback_helpers.h"
#include "base/logging.h"
#include "chromeos/dbus/dbus_thread_manager.h"
#include "chromeos/dbus/debug_daemon_client.h"
#include "chromeos/dbus/debug_daemon/debug_daemon_client.h"
#include "chromeos/dbus/upstart/upstart_client.h"
#include "components/arc/arc_prefs.h"
#include "components/arc/arc_util.h"

@ -16,7 +16,7 @@
#include "base/task/post_task.h"
#include "base/trace_event/trace_config.h"
#include "chromeos/dbus/dbus_thread_manager.h"
#include "chromeos/dbus/debug_daemon_client.h"
#include "chromeos/dbus/debug_daemon/debug_daemon_client.h"
#include "content/public/browser/browser_task_traits.h"
#include "services/service_manager/public/cpp/connector.h"
#include "services/tracing/public/cpp/perfetto/perfetto_traced_process.h"

@ -47,7 +47,7 @@
#if defined(OS_CHROMEOS)
#include "chromeos/dbus/dbus_thread_manager.h"
#include "chromeos/dbus/debug_daemon_client.h"
#include "chromeos/dbus/debug_daemon/debug_daemon_client.h"
#include "chromeos/system/statistics_provider.h"
#include "content/browser/tracing/cros_tracing_agent.h"
#endif

@ -10,7 +10,7 @@
#include "base/strings/string_number_conversions.h"
#include "base/values.h"
#include "chromeos/dbus/dbus_thread_manager.h"
#include "chromeos/dbus/debug_daemon_client.h"
#include "chromeos/dbus/debug_daemon/debug_daemon_client.h"
namespace extensions {

@ -21,7 +21,7 @@
#include "base/strings/string_piece.h"
#include "base/values.h"
#include "chromeos/dbus/dbus_thread_manager.h"
#include "chromeos/dbus/debug_daemon_client.h"
#include "chromeos/dbus/debug_daemon/debug_daemon_client.h"
#include "chromeos/system/factory_ping_embargo_check.h"
#include "chromeos/system/statistics_provider.h"
#include "dbus/bus.h"

@ -53,7 +53,7 @@
#include "base/files/important_file_writer.h"
#include "base/stl_util.h"
#include "chromeos/dbus/dbus_thread_manager.h"
#include "chromeos/dbus/fake_debug_daemon_client.h"
#include "chromeos/dbus/debug_daemon/fake_debug_daemon_client.h"
#include "rlz/chromeos/lib/rlz_value_store_chromeos.h"
#endif