Chrome OS D-Bus

Chrome OS D-Bus

D-Bus用于在Chrome OS上执行进程间通信。本文档介绍如何使用D-Bus在Chrome和系统守护(daemon)程序之间进行通信。

共享常量(Sharing constants)

system_api库包含了C++常量和协议缓冲器( protocol buffer)的.proto文件,这些文件在浏览器(chrome)和系统(chrome OS)
之间进行共享数据。这包括D-Bus服务名称,路径和接口,信号和方法名称以及作为D-Bus参数传递的枚举值。系统守护程序基本上
总是使用最新版本的存储库,而Chrome使用src / DEPS中指定的修订版。在使用新常量或删除已弃用的常量时要小心。要创建更新
以将Chrome使用的版本更新为ToT,请运行roll-dep src/third_party/cros_system_api。

创建Chrome D-Bus服务

接收方法调用或发出信号需要注册服务。Chrome使用各种服务名称注册服务,包括org.chromium.DisplayServiceorg.chromium.NetworkProxyService。服务实现了chromeos::CrosDBusService::ServiceProviderInterface接口。

代码位置

mus + ash(发音为“mustash”)是一个将chrome的shell/window management代码(/ash)与chrome浏览器代码(/chrome)分开的项目。
优点是浏览器之外的系统组件的性能隔离,以及哪些组件被视为ChromeOS UX的一部分以及浏览器的一部分之间的界限。mus + ash建立
在Mandoline UI Service(“Mus”)和Ash系统UI和窗口管理器之上。如果服务不依赖于任何//chrome目录下的浏览器代码,则提供该服务的
类应该存放在ash/dbus目录下,并且被ash_dbus_services.cc实例化

依赖于/chrome实现的服务应该在chrome/browser/chromeos/dbus中实现,并由chrome_browser_main_chromeos.cc实例化。

策略文件(Policy files)

为了使Chrome能够获得服务名称的所有权以及其他进程能够调用其方法,每个服务在ash/dbuschrome/browser/chromeos/dbus都有
一个后缀名为.conf的XML策略文件。这些规则文件被dbus-daemon服务加载,并指定那些unix用户可以拥有服务名称或调用服务的方法。
chrome的策略文件安装在/opt/google/chrome/dbus目录下,并且必须列在dbus_service_files目标下(在 ash/BUILD.gn或 chrome/browser/chromeos/BUILD.gn中)中。

使用系统守护进程的D-Bus服务

chrome使用在chromeos/dbus下的Client类调用系统守护进程的方法或检测信号。

Client 类都属于chromeos::DBusClientCommon和chromeos::DBusClientsBrowser,这两个类都属于chromeos::DBusThreadManager。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值