Chrome Foundation Services
Chrome Foundation Services
Contents
Overview
This directory contains Chrome Foundation Services. If you think of Chrome as a “portable OS,” Chrome Foundation Services can be thought of as that OS' foundational “system services” layer.
Roughly each subdirectory here corresponds to a service that:
- is a client of //services/service_managerwith its own unique Identity.
- could logically run a standalone process for security/performance isolation benefits depending on the constraints of the host OS.
API Standards
As illustrated above, the individual services in //services are intended for graceful reusability across a broad variety of use cases. To enable this goal, we have rigorous standards on services' public APIs. Before doing significant work in //services (and especially before becoming an owner of a service), please internalize these standards -- you are responsible for upholding them.
Service Directory Structure
Individual services are structured like so:
//services/foo/ <-- Implementation code, may have subdirs.
/public/
/cpp/ <-- C++ client libraries (optional)
/mojom/ <-- Mojom interfaces
Dependencies
Code within //services may only depend on each other via each other's /public/ directories, i.e. implementation code may not be shared directly.
Service code should also take care to tightly limit the dependencies on static libraries from outside of //services. Dependencies to large platform layers like //content, //chrome or //third_party/WebKit must be avoided.
Physical Packaging
Note that while it may be possible to build a discrete physical package (DSO) for each service, products consuming these services may package them differently, e.g. by combining them into a single package.
Additional Documentation
Relationship To Other Top-Level Directories
Services can be thought of as integrators of library code from across the Chromium repository, most commonly //base and //mojo (obviously) but for each service also //components, //ui, etc. in accordance with the functionality they provide.
Not everything in //components is automatically a service in its own right. Think of //components as sort of like a //lib. Individual //components can define, implement and use Mojom interfaces, but only //services have unique identities with the Service Manager and so only //services make it possible for Mojom interfaces to be acquired.
Adding a new service
See the Service Manager documentation for more details regarding how to define a service and expose or consume interfaces to and from other services.
Please start a thread on services-dev@chromium.org if you want to introduce a new service.
If you are servicifying existing Chromium code: Please first read the servicification strategies documentation, which contains information that will hopefully make your task easier.
Chrome Foundation Services的更多相关文章
- TF400324: Team Foundation services are not available from server…
		Quick Fix As a quick fix you can Close Visual Studio and related apps Browse to %LocalAppData%\Micro ... 
- Chrome Service Model
		Chrome Service Model John Abd-El-Malek February 2016 Objective Move Chrome codebase towards a servic ... 
- 《浏览器工作原理与实践》<01>Chrome架构:仅仅打开了1个页面,为什么有4个进程?
		无论你是想要设计高性能 Web 应用,还是要优化现有的 Web 应用,你都需要了解浏览器中的网络流程.页面渲染过程,JavaScript 执行流程,以及 Web 安全理论,而这些功能是分散在浏览器的各 ... 
- VMware Cloud Foundation 4.2 发布 - 领先的混合云平台
		VMware Cloud Foundation 4.2 | 09 FEB 2021 | Build 17559673 VMware Cloud Foundation 4.1 | 06 OCT 2020 ... 
- 微软职位内部推荐-Senior Network Engineer
		微软近期Open的职位: Global Foundation Services is the team behind the cloud. GFS is responsible for deliver ... 
- DevOps详解
		最近我阅读了很多有关DevOps的文章,其中一些非常有趣,然而一些内容也很欠考虑.貌似很多人越来越坚定地在DevOps与chef.puppet或Docker容器的熟练运用方面划了等号.对此我有不同看法 ... 
- [Windows Azure] How to Create and Deploy a Cloud Service?
		The Windows Azure Management Portal provides two ways for you to create and deploy a cloud service: ... 
- DevOps的概念
		DevOps(英文Development和Operations的组合)是一组过程.方法与系统的统称,用于促进开发(应用程序/软件工程).技术运营和质量保障(QA)部门之间的沟通.协作与整合.它的出现是 ... 
- 独立安装Oracle Hyperion Enterprise Performance Management 验证过程
		在安装EPM的过程中,都是安装既定的操作手册进行,只是一个过程的重复,对自己安装不会留下深刻的印象.根据自己学习体会,制定安装步骤,去验证自己学习过程中的体会,加深学习印象,解决安装中遇到的问题,模仿 ... 
随机推荐
- hdoj--5500--Reorder the Books(技巧)
			Reorder the Books Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Othe ... 
- Oracle RAC集群体系结构
			一. Oracle集群体系结构 Oracle RAC,全称是Oracle Real Application Cluster,即真正的应用集群,是oracle提供的一个并行集群系统,整个集群系统由Ora ... 
- xBIM 基础15 IFC导出Excel报表
			系列目录 [已更新最新开发文章,点击查看详细] IFC导出Excel空间报表文件 本篇将向您展示从IFC文件读取数据所需的一些概念.它使用IFC4接口,适用于IFC2x3和IFC4型号.要创建 ... 
- BZOJ 2096 单调队列
			思路: 偷懒用的STL //By SiriusRen #include <deque> #include <cstdio> using namespace std; struc ... 
- java web项目中资源国际化
			有一些网站会有语言栏选项: 选择英文,内容就显示为英文: 选择中文,内容就显示文中文. 这里就用到了国际化资源. 先看效果图: 步骤: 1.建立资源包: mess_en_US.properties ( ... 
- js调节图片的亮度
			js调节图片的亮度:(使用CSS3的滤镜) 1.实现点亮图标.熄灭图标的效果 效果图: 页面代码: <!DOCTYPE html> <%@ page language="j ... 
- 深入C#类的方法
			构造函数 example1: static void Main(string [] args) { SE engineer=new SE(); engineer.Age=; enginner.Name ... 
- .map(function(item)...)这个是按hashcode自动遍历的,怎么才能按照我想要的顺序遍历呢?
			上图是我前端的遍历代码.我的item上有一个name的字段,分别是营业执照,税务登记证和经营许可证,我怎么设置才能让函数每次遍历的时候按照这个顺序遍历,而不是item自带的顺序呢? .map(func ... 
- 【原创】MemCached中的参数解释
			优化MemCached的主要目的为增加命中率和提高内存使用率,在优化的时候可以根据以下参数综合考虑分析: 首先是进程项: pid Memcached进程ID uptime Memcached运行时间, ... 
- hdu 2037 - 典型贪心*
			题目链接 给一堆电视节目的起止时间,问最多能完整收看几个节目 --------------------------------------------------------------------- ... 
