xref: /aosp_15_r20/external/cronet/net/docs/supported-projects.md (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker# Supported Projects
2*6777b538SAndroid Build Coastguard Worker
3*6777b538SAndroid Build Coastguard WorkerThe `//net` stack is used on a variety of platforms and in a variety of open
4*6777b538SAndroid Build Coastguard Workersource projects. These different platforms and projects have differing
5*6777b538SAndroid Build Coastguard Workerdegrees of support from `//net` OWNERS as well as differing requirements for
6*6777b538SAndroid Build Coastguard Workerdesigns and technical requirements.
7*6777b538SAndroid Build Coastguard Worker
8*6777b538SAndroid Build Coastguard WorkerNote that this is a rough high-level overview of the major projects; as more
9*6777b538SAndroid Build Coastguard Workerof `//net` is broken into consumable services/components as part of the Mojo
10*6777b538SAndroid Build Coastguard Workerservicificaiton efforts, it's likely that there will be a larger number of
11*6777b538SAndroid Build Coastguard Worker'variants' of these projects with different constraints and features.
12*6777b538SAndroid Build Coastguard Worker
13*6777b538SAndroid Build Coastguard Worker## Google Chrome Browser
14*6777b538SAndroid Build Coastguard Worker
15*6777b538SAndroid Build Coastguard WorkerThe Google Chrome browser, which lives in `//chrome`, is the most important
16*6777b538SAndroid Build Coastguard Worker`//net` consumer and shapes many of the core design decisions. In general,
17*6777b538SAndroid Build Coastguard Workerfeatures that are not intended with or not compatible with the needs of
18*6777b538SAndroid Build Coastguard Workerthe Google Chrome browser will have a very high bar for acceptance in `//net`.
19*6777b538SAndroid Build Coastguard Worker
20*6777b538SAndroid Build Coastguard WorkerThe feature matrix
21*6777b538SAndroid Build Coastguard Worker
22*6777b538SAndroid Build Coastguard Worker  * **Supported Platforms**: Windows, macOS, Linux, Chromium OS, iOS, Android
23*6777b538SAndroid Build Coastguard Worker  * **Release Frequency**: ~6 weeks between releases
24*6777b538SAndroid Build Coastguard Worker  * **Automatic Updates**: Yes
25*6777b538SAndroid Build Coastguard Worker  * **Command-line Flags**:
26*6777b538SAndroid Build Coastguard Worker    * __Yes__: Windows, macOS, Linux, Chromium OS (Dev image), Android (rooted)
27*6777b538SAndroid Build Coastguard Worker    * __No__: Chromium OS (Release image), iOS, Android (Release)
28*6777b538SAndroid Build Coastguard Worker  * **Field Trials (Finch)**: Yes
29*6777b538SAndroid Build Coastguard Worker  * **Enterprise Policy**: Yes
30*6777b538SAndroid Build Coastguard Worker  * **User Metrics (UMA)**: Yes
31*6777b538SAndroid Build Coastguard Worker  * **Component Updater**: Yes
32*6777b538SAndroid Build Coastguard Worker
33*6777b538SAndroid Build Coastguard Worker## Chromium Browser
34*6777b538SAndroid Build Coastguard Worker
35*6777b538SAndroid Build Coastguard WorkerThe Chromium browser refers to the practice of certain Linux distributions to
36*6777b538SAndroid Build Coastguard Workerbundle the open-source components of Chrome Browser in `//chrome`, branded
37*6777b538SAndroid Build Coastguard Workeras Chromium. This version is not distributed by Google, but by individual
38*6777b538SAndroid Build Coastguard WorkerLinux distributions (primarily). Other distributions based on building Chromium
39*6777b538SAndroid Build Coastguard Workerfor other platforms exist, although do not see as wide of usage.
40*6777b538SAndroid Build Coastguard Worker
41*6777b538SAndroid Build Coastguard Worker  * **Supported Platforms**: Windows, macOS, Linux, Chromium OS, iOS, Android
42*6777b538SAndroid Build Coastguard Worker  * **Release Frequency**: Varies by distributor; some Linux distributions
43*6777b538SAndroid Build Coastguard Worker    treat versions of Chromium as "Long Term Stable" and support a single
44*6777b538SAndroid Build Coastguard Worker    version for a longer time than the Chromium projects do, others track
45*6777b538SAndroid Build Coastguard Worker    the Google Chrome release frequency.
46*6777b538SAndroid Build Coastguard Worker  * **Automatic Updates**: Varies by distributor
47*6777b538SAndroid Build Coastguard Worker  * **Command-line Flags**:
48*6777b538SAndroid Build Coastguard Worker    * __Yes__: Windows, macOS, Linux, Chromium OS (dev image), Android (rooted)
49*6777b538SAndroid Build Coastguard Worker    * __No__: Chromium OS (Release image), iOS, Android (Release)
50*6777b538SAndroid Build Coastguard Worker  * **Field Trials (Finch)**: No
51*6777b538SAndroid Build Coastguard Worker  * **Enterprise Policy**: Yes
52*6777b538SAndroid Build Coastguard Worker  * **User Metrics (UMA)**: Varies by distributor
53*6777b538SAndroid Build Coastguard Worker  * **Component Updater**: Varies by distributor
54*6777b538SAndroid Build Coastguard Worker
55*6777b538SAndroid Build Coastguard Worker## Android WebView
56*6777b538SAndroid Build Coastguard Worker
57*6777b538SAndroid Build Coastguard WorkerDistinct from the Chromium browser, the Android WebView is itself based on
58*6777b538SAndroid Build Coastguard Workerthe Chromium browser. On official Android devices running Android N or later,
59*6777b538SAndroid Build Coastguard WorkerWebView is automatically updated when Google Chrome is updated on the
60*6777b538SAndroid Build Coastguard Workerdevice. For earlier devices, Android WebView is updated by the System WebView
61*6777b538SAndroid Build Coastguard Workercomponent.
62*6777b538SAndroid Build Coastguard Worker
63*6777b538SAndroid Build Coastguard WorkerAndroid WebView may also be used on non-official Android devices, such as
64*6777b538SAndroid Build Coastguard Workerthose based on the Android Open Source Project but do not go through the
65*6777b538SAndroid Build Coastguard WorkerAndroid [Compatability Test Suite](https://source.android.com/compatibility/cts/).
66*6777b538SAndroid Build Coastguard WorkerSuch releases have limited to no interaction with the Chromium projects, and
67*6777b538SAndroid Build Coastguard Workerso their capabilities cannot be conclusively documented.
68*6777b538SAndroid Build Coastguard Worker
69*6777b538SAndroid Build Coastguard WorkerFor official Android devices, WebView has the following capabilities.
70*6777b538SAndroid Build Coastguard Worker
71*6777b538SAndroid Build Coastguard Worker  * **Supported Platforms**: Android
72*6777b538SAndroid Build Coastguard Worker  * **Release Frequency**: ~6 weeks between releases
73*6777b538SAndroid Build Coastguard Worker  * **Automatic Updates**: Varies. Updates are made available on the Android
74*6777b538SAndroid Build Coastguard Worker    App Store, but users must explicitly choose to update. As such, the
75*6777b538SAndroid Build Coastguard Worker    rate of update varies much more than for the Chromium browser.
76*6777b538SAndroid Build Coastguard Worker  * **Command-line Flags**: No for production devices, [yes for userdebug
77*6777b538SAndroid Build Coastguard Worker    devices](https://chromium.googlesource.com/chromium/src/+/HEAD/android_webview/docs/commandline-flags.md)
78*6777b538SAndroid Build Coastguard Worker  * **Field Trials (Finch)**: Yes, [with
79*6777b538SAndroid Build Coastguard Worker    caveats](https://g3doc.corp.google.com/analysis/uma/g3doc/finch/platforms.md?cl=head)
80*6777b538SAndroid Build Coastguard Worker  * **Enterprise Policy**: Yes, with caveats (TODO(rsleevi): document caveats)
81*6777b538SAndroid Build Coastguard Worker  * **User Metrics (UMA)**: Yes, [with caveats](http://go/clank-webview/uma)
82*6777b538SAndroid Build Coastguard Worker  * **Component Updater**: No
83*6777b538SAndroid Build Coastguard Worker
84*6777b538SAndroid Build Coastguard Worker## `//content` Embedders
85*6777b538SAndroid Build Coastguard Worker
86*6777b538SAndroid Build Coastguard WorkerIn addition to Chromium, there are a number of other of embedders of
87*6777b538SAndroid Build Coastguard Worker`//content`, such as projects like [Chromium Embedded Framework](https://bitbucket.org/chromiumembedded/cef),
88*6777b538SAndroid Build Coastguard Worker[Electron](http://electron.atom.io/) or Fuchsia's [WebEngine](https://chromium.googlesource.com/chromium/src/+/HEAD/fuchsia_web/webengine/).
89*6777b538SAndroid Build Coastguard WorkerWhile `//net` does not directly support these consumers, it does support the
90*6777b538SAndroid Build Coastguard Worker`//content` embedding API that these projects use. Note that this excludes the
91*6777b538SAndroid Build Coastguard Worker[content_shell](../../content/shell) test framework.
92*6777b538SAndroid Build Coastguard Worker
93*6777b538SAndroid Build Coastguard Worker  * **Supported Platforms**: Windows, macOS, Linux, Chromium OS, iOS, Android,
94*6777b538SAndroid Build Coastguard Worker    Fuchsia
95*6777b538SAndroid Build Coastguard Worker  * **Release Frequency**: Varies by consumer; Officially ~6 weeks
96*6777b538SAndroid Build Coastguard Worker  * **Command-line Flags**: Varies by consumer
97*6777b538SAndroid Build Coastguard Worker  * **Field Trials (Finch)**: No
98*6777b538SAndroid Build Coastguard Worker  * **Enterprise Policy**: No
99*6777b538SAndroid Build Coastguard Worker  * **User Metrics (UMA)**: No
100*6777b538SAndroid Build Coastguard Worker  * **Component Updater**: No
101*6777b538SAndroid Build Coastguard Worker
102*6777b538SAndroid Build Coastguard Worker## Cronet
103*6777b538SAndroid Build Coastguard Worker
104*6777b538SAndroid Build Coastguard Worker[Cronet](../../components/cronet/README.md) is a version of the `//net`
105*6777b538SAndroid Build Coastguard Workernetwork stack for use in mobile applications on iOS and Android. While
106*6777b538SAndroid Build Coastguard Workerprimarily targetting first-party Google applications, Cronet's status as an
107*6777b538SAndroid Build Coastguard Workeropen-source project, similar to the Chromium browser, means that it may
108*6777b538SAndroid Build Coastguard Workerfind itself embedded in a variety of other projects.
109*6777b538SAndroid Build Coastguard Worker
110*6777b538SAndroid Build Coastguard WorkerUnlike some of the other `//net` consumers, Cronet does not necessarily
111*6777b538SAndroid Build Coastguard Workerimplement "The Web Platform" (as the holistic set of user agent-focused
112*6777b538SAndroid Build Coastguard Workerfeatures), and instead is more akin to an HTTP(s) client networking library.
113*6777b538SAndroid Build Coastguard Worker
114*6777b538SAndroid Build Coastguard Worker  * **Supported Platforms**: iOS, Android
115*6777b538SAndroid Build Coastguard Worker  * **Release Frequency**: Varies. While "releases" are made following the
116*6777b538SAndroid Build Coastguard Worker    same frequency as Google Chrome, because it is treated similar to
117*6777b538SAndroid Build Coastguard Worker    a "third-party" library, different products and projects will ship
118*6777b538SAndroid Build Coastguard Worker    different versions of Cronet for differing periods of time.
119*6777b538SAndroid Build Coastguard Worker  * **Command-line Flags**: No
120*6777b538SAndroid Build Coastguard Worker  * **Field Trials (Finch)**: No
121*6777b538SAndroid Build Coastguard Worker  * **Enterprise Policy**: No
122*6777b538SAndroid Build Coastguard Worker  * **User Metrics (UMA)**:
123*6777b538SAndroid Build Coastguard Worker    * __Yes__: First-party (Google) projects, although they will be
124*6777b538SAndroid Build Coastguard Worker      reported in project-specific buckets (e.g. no overarching set of
125*6777b538SAndroid Build Coastguard Worker      metrics for all Cronet consumers).
126*6777b538SAndroid Build Coastguard Worker    * __No__: In general
127*6777b538SAndroid Build Coastguard Worker  * **Component Updater**: No
128