• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..16-Feb-2021-

arc/H16-Feb-2021-1,549959

attestation/H16-Feb-2021-1,5111,143

audio/H16-Feb-2021-3,0192,137

authpolicy/H16-Feb-2021-1,3251,031

biod/H16-Feb-2021-1,9411,340

cdm_factory_daemon/H16-Feb-2021-241151

chromebox_for_meetings/H16-Feb-2021-548366

constants/H16-Feb-2021-377196

cros_healthd/H16-Feb-2021-1,189807

cryptohome/H16-Feb-2021-3,1582,296

cups_proxy/H16-Feb-2021-270166

debug_daemon/H16-Feb-2021-1,8421,371

dlcservice/H16-Feb-2021-1,254920

hammerd/H16-Feb-2021-420282

hermes/H16-Feb-2021-2,7442,033

ip_peripheral/H16-Feb-2021-607440

kerberos/H16-Feb-2021-994717

lorgnette_manager/H16-Feb-2021-1,6391,196

machine_learning/H16-Feb-2021-241146

media_analytics/H16-Feb-2021-963699

permission_broker/H16-Feb-2021-849608

power/H16-Feb-2021-5,3713,823

services/H16-Feb-2021-678440

session_manager/H16-Feb-2021-2,7922,038

shill/H16-Feb-2021-10,6877,871

system_clock/H16-Feb-2021-486321

system_proxy/H16-Feb-2021-585409

upstart/H16-Feb-2021-498324

usb/H16-Feb-2021-386243

util/H16-Feb-2021-277180

BUILD.gnH A D16-Feb-20219 KiB326286

DEPSH A D16-Feb-2021325 1614

OWNERSH A D16-Feb-2021395 1210

README.mdH A D16-Feb-20213.2 KiB7251

anomaly_detector_client.ccH A D16-Feb-20213.5 KiB10581

anomaly_detector_client.hH A D16-Feb-20211.8 KiB5528

blocking_method_caller.ccH A D16-Feb-20212.5 KiB7252

blocking_method_caller.hH A D16-Feb-20211.5 KiB5430

blocking_method_caller_unittest.ccH A D16-Feb-20214.8 KiB151105

cec_service_client.ccH A D16-Feb-20214.6 KiB140104

cec_service_client.hH A D16-Feb-20212.7 KiB8235

cec_service_client_unittest.ccH A D16-Feb-20216.7 KiB200151

chunneld_client.ccH A D16-Feb-20213.1 KiB10377

chunneld_client.hH A D16-Feb-20212 KiB5929

cicerone_client.ccH A D16-Feb-202143.1 KiB1,066932

cicerone_client.hH A D16-Feb-202114.6 KiB355167

concierge_client.ccH A D16-Feb-202117 KiB460374

concierge_client.hH A D16-Feb-202110.8 KiB277143

cros_disks_client.ccH A D16-Feb-202129.1 KiB809576

cros_disks_client.hH A D16-Feb-202114.6 KiB423248

cros_disks_client_unittest.ccH A D16-Feb-20218.6 KiB203167

dbus_client.hH A D16-Feb-20211,023 3717

dbus_client_implementation_type.hH A D16-Feb-2021570 199

dbus_clients_browser.ccH A D16-Feb-20217 KiB152130

dbus_clients_browser.hH A D16-Feb-20213.1 KiB9069

dbus_method_call_status.hH A D16-Feb-20211.5 KiB4920

dbus_thread_manager.ccH A D16-Feb-202114.1 KiB427320

dbus_thread_manager.hH A D16-Feb-20217.4 KiB209128

dbus_thread_manager_unittest.ccH A D16-Feb-20214.3 KiB11585

easy_unlock_client.ccH A D16-Feb-20217.5 KiB211154

easy_unlock_client.hH A D16-Feb-20216.5 KiB15960

fake_anomaly_detector_client.ccH A D16-Feb-20211.2 KiB3825

fake_anomaly_detector_client.hH A D16-Feb-20211.4 KiB4527

fake_cec_service_client.ccH A D16-Feb-20211.2 KiB4127

fake_cec_service_client.hH A D16-Feb-20211.4 KiB5434

fake_chunneld_client.ccH A D16-Feb-20211.2 KiB4429

fake_chunneld_client.hH A D16-Feb-20211.2 KiB4426

fake_cicerone_client.ccH A D16-Feb-202117.9 KiB491402

fake_cicerone_client.hH A D16-Feb-202120.6 KiB450410

fake_concierge_client.ccH A D16-Feb-202114 KiB391316

fake_concierge_client.hH A D16-Feb-202115.3 KiB357315

fake_cros_disks_client.ccH A D16-Feb-20219.5 KiB266205

fake_cros_disks_client.hH A D16-Feb-20218.1 KiB210135

fake_easy_unlock_client.ccH A D16-Feb-20215.2 KiB146103

fake_easy_unlock_client.hH A D16-Feb-20211.8 KiB5233

fake_easy_unlock_client_unittest.ccH A D16-Feb-20219.2 KiB252180

fake_gnubby_client.ccH A D16-Feb-2021743 3017

fake_gnubby_client.hH A D16-Feb-20211 KiB3922

fake_gnubby_client_unittest.ccH A D16-Feb-20211.4 KiB5840

fake_image_burner_client.ccH A D16-Feb-2021895 3117

fake_image_burner_client.hH A D16-Feb-20211.2 KiB3924

fake_image_loader_client.ccH A D16-Feb-20214.3 KiB134108

fake_image_loader_client.hH A D16-Feb-20213.1 KiB8647

fake_oobe_configuration_client.ccH A D16-Feb-20211.9 KiB6445

fake_oobe_configuration_client.hH A D16-Feb-20211,005 3518

fake_runtime_probe_client.ccH A D16-Feb-20212.5 KiB7350

fake_runtime_probe_client.hH A D16-Feb-20211.5 KiB4623

fake_seneschal_client.ccH A D16-Feb-20212 KiB6649

fake_seneschal_client.hH A D16-Feb-20212.6 KiB8054

fake_smb_provider_client.ccH A D16-Feb-202111.4 KiB291234

fake_smb_provider_client.hH A D16-Feb-20216 KiB176121

fake_update_engine_client.ccH A D16-Feb-20213.4 KiB11384

fake_update_engine_client.hH A D16-Feb-20214.5 KiB12075

fake_virtual_file_provider_client.ccH A D16-Feb-20211.4 KiB4632

fake_virtual_file_provider_client.hH A D16-Feb-20211.5 KiB4527

fake_vm_plugin_dispatcher_client.ccH A D16-Feb-20213.3 KiB9271

fake_vm_plugin_dispatcher_client.hH A D16-Feb-20213.2 KiB9262

gnubby_client.ccH A D16-Feb-20212.2 KiB8054

gnubby_client.hH A D16-Feb-20211.4 KiB5027

image_burner_client.ccH A D16-Feb-20215.1 KiB152114

image_burner_client.hH A D16-Feb-20212.5 KiB7437

image_loader_client.ccH A D16-Feb-20216.3 KiB177147

image_loader_client.hH A D16-Feb-20212.6 KiB7339

initialize_dbus_client.hH A D16-Feb-2021802 3320

native_timer_unittest.ccH A D16-Feb-20213.2 KiB9360

oobe_configuration_client.ccH A D16-Feb-20213.1 KiB9672

oobe_configuration_client.hH A D16-Feb-20211.5 KiB5025

oobe_configuration_client_unittest.ccH A D16-Feb-20216.9 KiB203129

pipe_reader.ccH A D16-Feb-20212.6 KiB9261

pipe_reader.hH A D16-Feb-20212.3 KiB7839

pipe_reader_unittest.ccH A D16-Feb-20213.2 KiB10883

runtime_probe_client.ccH A D16-Feb-20212.9 KiB9268

runtime_probe_client.hH A D16-Feb-20211.3 KiB4323

seneschal_client.ccH A D16-Feb-20214.9 KiB144112

seneschal_client.hH A D16-Feb-20212.5 KiB7336

smb_provider_client.ccH A D16-Feb-202126.8 KiB726608

smb_provider_client.hH A D16-Feb-202113 KiB280150

update_engine_client.ccH A D16-Feb-202123.8 KiB668517

update_engine_client.hH A D16-Feb-20217 KiB17268

update_engine_client_unittest.ccH A D16-Feb-20213.4 KiB5744

use_real_dbus_clients.gniH A D16-Feb-2021324 118

virtual_file_provider_client.ccH A D16-Feb-20213.7 KiB11588

virtual_file_provider_client.hH A D16-Feb-20212.1 KiB5629

vm_plugin_dispatcher_client.ccH A D16-Feb-20217 KiB202161

vm_plugin_dispatcher_client.hH A D16-Feb-20213.1 KiB9256

README.md

1# src/chromeos/dbus
2
3This directory contains client libraries for communication with Chrome OS
4system service daemons over D-Bus.
5
6For more information, see [Chrome OS D-Bus Usage in Chrome].
7
8## DBusThreadManager
9
10The DBusThreadManager class was originally created to both own the D-Bus
11base::Thread, the system dbus::Bus instance, and all of the D-Bus clients.
12
13With the significantly increased number of clients and upcoming [Mash] effort
14splitting Chrome and Ash into separate processes, this model no longer makes
15sense.
16
17New clients should not be added to DBusThreadManager but instead should follow
18the pattern described below. DBusThreadManager will eventually be deprecated.
19
20## D-Bus Client Best Practices
21
22An example of a relatively simple client using existing patterns can be found
23in [src/chromeos/dbus/kerberos].
24
25*   Create a subdirectory under `src/chromeos/dbus` for new clients or use an
26    existing directory. Do not add new clients to this directory.
27
28*   D-Bus clients should only be accessed by a single process, e.g. Chrome or
29    Ash (preferably Ash), not both. Use a mojo interface to communicate between
30    Chrome and Ash where necessary.
31
32*   D-Bus clients are explicitly initialized and shut down. They provide a
33    static getter for the single global instance. In Chrome, initialization
34    occurs in [dbus_helper.cc]. In Ash it occurs in [ash_service.cc].
35
36*   For new clients, if test methods are required, create a `TestInterface` in
37    the base class with a virtual `GetTestInterface()` method and implement it
38    only in the fake (return null in the real implementation). See
39    [src/chromeos/dbus/kerberos] for an example.
40
41    (Many existing clients provide additional test functionality in the fake
42    implementation, however this complicates tests and the fake implementation).
43
44*   These clients do not have any dependency on FeatureList, and care should be
45    taken regarding initialization order if such dependencies are added (see
46    BluezDBusManager for an example of such client).
47
48## Shill clients
49
50Shill clients will eventually only be available to Chrome. As such, the
51DBusThreadManager::GetShill*Client() methods have been left intact for now.
52However, the clients are no longer owned by DBusThreadManager so that they can
53be initialized independently.
54
55New code should prefer Shill*Client::Get() over the DBusThreadManager accessors.
56
57## Older clients that have been removed:
58
59*   Amplifier (`amplifier_client.cc`)
60*   Audio DSP (`audio_dsp_client.cc`)
61*   Introspection (`introspectable_client.cc`)
62*   NFC (`nfc_manager_client.cc`)
63*   peerd (`peer_daemon_manager_client.cc`)
64*   privetd (`privet_daemon_manager_client.cc`)
65*   Wi-Fi AP manager (`ap_manager_client.cc`)
66
67[Chrome OS D-Bus Usage in Chrome]: https://chromium.googlesource.com/chromiumos/docs/+/master/dbus_in_chrome.md
68[Mash]: https://chromium.googlesource.com/chromium/src/+/HEAD/ash/README.md
69[src/chromeos/dbus/kerberos]: https://chromium.googlesource.com/chromium/src/+/HEAD/chromeos/dbus/kerberos
70[dbus_helper.cc]: https://chromium.googlesource.com/chromium/src/+/HEAD/chrome/browser/chromeos/dbus/dbus_helper.cc
71[ash_service.cc]: https://chromium.googlesource.com/chromium/src/+/HEAD/ash/ash_service.cc
72