| OLD | NEW |
| 1 Chrome Foundation Services | 1 Chrome Foundation Services |
| 2 ==== | 2 ==== |
| 3 | 3 |
| 4 ### Overview | 4 ### Overview |
| 5 | 5 |
| 6 This directory contains Chrome Foundation Services. If you think of Chrome as a | 6 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' | 7 "portable OS," Chrome Foundation Services can be thought of as that OS' |
| 8 foundational "system services" layer. | 8 foundational "system services" layer. |
| 9 | 9 |
| 10 Roughly each subdirectory here corresponds to a service that: | 10 Roughly each subdirectory here corresponds to a service that: |
| 11 | 11 |
| 12 * is a client of `//services/service_manager` with its own unique Identity. | 12 * is a client of `//services/service_manager` with its own unique Identity. |
| 13 * could logically run a standalone process for security/performance isolation | 13 * could logically run a standalone process for security/performance isolation |
| 14 benefits depending on the constraints of the host OS. | 14 benefits depending on the constraints of the host OS. |
| 15 | 15 |
| 16 ### Service Directory Structure | 16 ### Service Directory Structure |
| 17 | 17 |
| 18 Individual services are structured like so: | 18 Individual services are structured like so: |
| 19 | 19 |
| 20 //services/foo/ <-- Implementation code, may have subdirs. | 20 //services/foo/ <-- Implementation code, may have subdirs. |
| 21 /public/ | 21 /public/ |
| 22 /cpp/ <-- C++ client libraries (optional) | 22 /cpp/ <-- C++ client libraries (optional) |
| 23 /interfaces/ <-- Mojom interfaces | 23 /interfaces/ <-- Mojom interfaces |
| 24 | 24 |
| 25 ### Dependencies | 25 ### Dependencies |
| 26 | 26 |
| 27 Code within `//services` may only depend on each other via each other's | 27 Code within `//services` may only depend on each other via each other's |
| 28 `/public/` directories, i.e. implementation code cannot be shared directly. | 28 `/public/` directories, i.e. implementation code cannot be shared directly. |
| 29 | 29 |
| 30 Service code should also take care to tightly limit the dependencies on static | 30 Service code should also take care to tightly limit the dependencies on static |
| 31 libraries from outside of `//services`. Dependencies to large platform | 31 libraries from outside of `//services`. Dependencies to large platform |
| (...skipping 11 matching lines...) Expand all Loading... |
| 43 ### Relationship to other top-level directories in // | 43 ### Relationship to other top-level directories in // |
| 44 | 44 |
| 45 Services can be thought of as integrators of library code from across the | 45 Services can be thought of as integrators of library code from across the |
| 46 Chromium repository, most commonly //base and //mojo (obviously) but for each | 46 Chromium repository, most commonly //base and //mojo (obviously) but for each |
| 47 service also //components, //ui, etc in accordance with the functionality they | 47 service also //components, //ui, etc in accordance with the functionality they |
| 48 provide. | 48 provide. |
| 49 | 49 |
| 50 Not everything in //components is automatically a service in its own right. | 50 Not everything in //components is automatically a service in its own right. |
| 51 Think of //components as sort of like a //lib. Individual //components can | 51 Think of //components as sort of like a //lib. Individual //components can |
| 52 define, implement and use mojom interfaces, but only //services have unique | 52 define, implement and use mojom interfaces, but only //services have unique |
| 53 identities with the Mojo Shell. | 53 identities with the Service Manager. |
| OLD | NEW |