Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(96)

Side by Side Diff: services/README.md

Issue 2783223004: Adds lots of Mojo documentation (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 Chrome Foundation Services 1 # Chrome Foundation Services
2 ====
3 2
4 ### Overview 3 [TOC]
4
5 ## Overview
5 6
6 This directory contains Chrome Foundation Services. If you think of Chrome as a 7 This directory contains Chrome Foundation Services. If you think of Chrome as a
7 "portable OS," Chrome Foundation Services can be thought of as that OS' 8 "portable OS," Chrome Foundation Services can be thought of as that OS'
8 foundational "system services" layer. 9 foundational "system services" layer.
9 10
10 Roughly each subdirectory here corresponds to a service that: 11 Roughly each subdirectory here corresponds to a service that:
11 12
12 * is a client of `//services/service_manager` with its own unique Identity. 13 * is a client of `//services/service_manager` with its own unique Identity.
13 * could logically run a standalone process for security/performance isolation 14 * could logically run a standalone process for security/performance isolation
14 benefits depending on the constraints of the host OS. 15 benefits depending on the constraints of the host OS.
15 16
16 ### Service Directory Structure 17 ## Service Directory Structure
17 18
18 Individual services are structured like so: 19 Individual services are structured like so:
19 20
20 //services/foo/ <-- Implementation code, may have subdirs. 21 ```
21 /public/ 22 //services/foo/ <-- Implementation code, may have subdirs.
22 /cpp/ <-- C++ client libraries (optional) 23 /public/
23 /interfaces/ <-- Mojom interfaces 24 /cpp/ <-- C++ client libraries (optional)
25 /interfaces/ <-- Mojom interfaces
26 ```
24 27
25 ### Dependencies 28 ## Dependencies
26 29
27 Code within `//services` may only depend on each other via each other's 30 Code within `//services` may only depend on each other via each other's
28 `/public/` directories, i.e. implementation code cannot be shared directly. 31 `/public/` directories, *i.e.* implementation code may not be shared directly.
29 32
30 Service code should also take care to tightly limit the dependencies on static 33 Service code should also take care to tightly limit the dependencies on static
31 libraries from outside of `//services`. Dependencies to large platform 34 libraries from outside of `//services`. Dependencies to large platform
32 layers like `//content`, `//chrome` or `//third_party/WebKit` must be avoided. 35 layers like `//content`, `//chrome` or `//third_party/WebKit` must be avoided.
33 36
34 ### Physical Packaging 37 ## Physical Packaging
35 38
36 Note that while it may be possible to build a discrete physical package (DSO) 39 Note that while it may be possible to build a discrete physical package (DSO)
37 for each service, products consuming these services may package them 40 for each service, products consuming these services may package them
38 differently, e.g. by combining them into a single package. 41 differently, e.g. by combining them into a single package.
39 42
40 ### Documentation 43 ## Additional Documentation
41 44
42 [High-level Design Doc](https://docs.google.com/document/d/15I7sQyQo6zsqXVNAlVd5 20tdGaS8FCicZHrN0yRu-oU) 45 [High-level Design Doc](https://docs.google.com/document/d/15I7sQyQo6zsqXVNAlVd5 20tdGaS8FCicZHrN0yRu-oU)
43 [Homepage](https://sites.google.com/a/chromium.org/dev/servicification)
44 46
45 ### Relationship to other top-level directories in // 47 [Servicification Homepage](https://sites.google.com/a/chromium.org/dev/servicifi cation)
48
49 ## Relationship To Other Top-Level Directories
46 50
47 Services can be thought of as integrators of library code from across the 51 Services can be thought of as integrators of library code from across the
48 Chromium repository, most commonly //base and //mojo (obviously) but for each 52 Chromium repository, most commonly `//base` and `//mojo` (obviously) but for
49 service also //components, //ui, etc in accordance with the functionality they 53 each service also `//components`, `//ui`, *etc.* in accordance with the
50 provide. 54 functionality they provide.
51 55
52 Not everything in //components is automatically a service in its own right. 56 Not everything in `//components` is automatically a service in its own right.
53 Think of //components as sort of like a //lib. Individual //components can 57 Think of `//components` as sort of like a `//lib`. Individual `//components` can
54 define, implement and use mojom interfaces, but only //services have unique 58 define, implement and use Mojom interfaces, but only `//services` have unique
55 identities with the Service Manager. 59 identities with the Service Manager and so only `//services` make it possible
60 for Mojom interfaces to be acquired.
56 61
57 ### Adding a new service 62 ## Adding a new service
58 63
59 Please start a thread on [services-dev](https://groups.google.com/a/chromium.org /forum/#!forum/services-dev) 64 See the [Service Manager documentation](/services/service_manager) for more
65 details regarding how to define a service and expose or consume interfaces to
66 and from other services.
60 67
68 Please start a thread on [services-dev@chromium.org](https://groups.google.com/a /chromium.org/forum/#!forum/services-dev)
69 if you want to introduce a new service.
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698