Chrome Foundation servicescontents
- Overview
- API Standards
- Service Directory Structure
- Dependencies
- Physical packaging
- Additional Documentation
- Relationship to other top-level directories
- Adding a new service
Overview
This directory contains Chrome Foundation Services. If you think of Chrome as a "portable OS," The Chrome Foundation Services can be thought of as the OS ' foundational "system s Ervices "layer.
Roughly each subdirectory this corresponds to a service:
- is a client's with its
//services/service_manager
own unique Identity.
- Could logically run a standalone process for security/performance isolation benefits depending on the constraints of the H OST OS.
API Standards
As illustrated above, the individual services in//services is intended for graceful reusability across a broad variety O f Use cases. To enable the goal, we have the rigorous standards on services ' public APIs. Before doing significant work on//services (and especially before becoming an owner's a service), please internalize the SE Standards--responsible for upholding them.
Service Directory Structure
Individual services is structured like so:
services/foo/ <--Implementation code, May has subdirs. /public/ /cpp/ <--C + + client libraries (optional)/mojom/<--Mojom Interfaces
Dependencies
Code within may be depend on all other //services
via each /public/
of the other's directories, i.e. implementation code may Not is 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 is possible to build a discrete physical pack (DSO) for each service, products consuming these s ervices them differently, e.g. by combining them to a single package.
Additional Documentation
High-level Design Doc
Servicification Homepage
Servicification Strategies
Relationship to other top-level directories
Services can be thought of as integrators of library code from across the Chromium repository, most commonly and //base
(obviously) but for each service also //components
, //ui
etc. in accordance with the functionality they provide.
Not everything in are //components
automatically a service in it own right. Think of as sort of like //components
a //lib
. Individual //components
can define, implement and use MOJOM interfaces, if only has //services
unique identities with the Service Ma Nager and so is //services
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 the other services.
Please start a thread in [email protected] if you want to introduce a new service.
If you are servicifying existing Chromium code:please first read the Servicification strategies documentation, which cont Ains information that'll hopefully make your task easier.
Powered by gitiles| Privacy
Chrome Foundation Services