[M108 Migration][UA] Refactor user agent strings
[platform/framework/web/chromium-efl.git] / chromeos / README.md
1 # Chrome OS
2
3 This directory contains low-level support for Chrome running on Chrome OS.
4
5 The [Lacros project](go/lacros) is in the process of extracting the
6 browser-functionality into a separate binary. This introduces the following
7 terminology and rules:
8   * ash-chrome: The new name of the legacy "chrome" binary. It contains system
9     UI and the current/legacy web browser. Code that is only used by ash-chrome
10     should eventually be moved to //chromeos/ash, have an _ash suffix in
11     the filename, or have a (grand-)parent directory named /ash/.
12   * lacros-chrome: The name of the new, standalone web-browser binary. Code that
13     is only used by lacros-chrome should have a _lacros suffix in the filename,
14     or have a (grand-)parent directory named /lacros/.
15   * crosapi: The term "crosapi" is short for ChromeOS API. Ash-chrome
16     implements the API, and lacros-chrome is the only consumer.
17   * chromeos: The term "chromeos" refers to code that is shared by binaries
18     targeting the chromeos platform or using the chromeos toolchain. Code that
19     is shared by ash-chrome and lacros-chrome should have a _chromeos suffix in
20     the filename, or have a (grand-)parent directory named /chromeos/.
21   * Exception: The exception to the rule is //chrome/browser/chromeos. Following
22     existing conventions in //chrome, the directory *should* refer to
23     lacros-chrome. However, this would involve a massive and otherwise
24     unnecessary refactor. //chrome/browser/chromeos will continue to contain
25     code that is only used by ash-chrome. //chrome/browser/lacros will contain
26     code used only by lacros-chrome.
27 See [this document](go/lacros-code-layout) for more details.
28
29 Many subdirectories contain Chrome-style C++ wrappers around operating system
30 components.
31
32 For example, //chromeos/dbus contains wrappers around the D-Bus interfaces to
33 system daemons like the network configuration manager (shill). Most other
34 directories contain low-level utility code.
35
36 There are two exceptions:
37
38 - //chromeos/services contains mojo services that were not considered
39   sufficiently general to live in top-level //services and that, at the same
40   time, are shared between ash-chrome and lacros-chrome. In case of an
41   ash-chrome only mojo service, please use //chromeos/ash/services instead.
42
43 - //chromeos/components contains C++ components that were not considered
44   sufficiently general to live in top-level //components.
45
46 Note, //chromeos does not contain any user-facing UI code, and hence it has
47 "-ui" in its DEPS. The contents of //chromeos should also not depend on
48 //chrome or //content.