Chromium Code Reviews| Index: net/docs/supported-projects.md |
| diff --git a/net/docs/supported-projects.md b/net/docs/supported-projects.md |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..2046a95106524b7cbc5f684b0a3501334c783b2d |
| --- /dev/null |
| +++ b/net/docs/supported-projects.md |
| @@ -0,0 +1,119 @@ |
| +# Supported Projects |
| + |
| +The `//net` stack is used on a variety of platforms and in a variety of open |
| +source projects. These different platforms and projects have differing |
| +degrees of support from `//net` OWNERS as well as differing requirements for |
| +designs and technical requirements. |
| + |
| +Note that this is a rough high-level overview of the major projects; as more |
| +of `//net` is broken into consumable services/components as part of the Mojo |
| +servicificaiton efforts, it's likely that there will be a larger number of |
| +'variants' of these projects with different constraints and features. |
| + |
| +## Google Chrome Browser |
| + |
| +The Google Chrome browser, which lives in `//chrome`, is the most important |
| +`//net` consumer and shapes many of the core design decisions. In general, |
| +features that are not intended with or not compatible with the needs of |
| +the Google Chrome browser will have a very high bar for acceptance in `//net`. |
| + |
| +The feature matrix |
| + |
| + * **Supported Platforms**: Windows, macOS, Linux, Chromium OS, iOS, Android |
| + * **Release Frequency**: ~6 weeks between releases |
| + * **Automatic Updates**: Yes |
| + * **Command-line Flags**: |
| + * __Yes__: Windows, macOS, Linux, Chromium OS (Dev image), Android (rooted) |
| + * __No__: Chromium OS (Release image), iOS, Android (Release) |
| + * **Field Trials (Finch)**: Yes |
| + * **Enterprise Policy**: Yes |
| + * **User Metrics (UMA)**: Yes |
| + * **Component Updater**: Yes |
| + |
| +## Chromium Browser |
| + |
| +The Chromium browser refers to the practice of certain Linux distributions to |
| +bundle the open-source components of Chrome Browser in `//chrome`, branded |
| +as Chromium. This version is not distributed by Google, but by individual |
| +Linux distributions (primarily). Other distributions based on building Chromium |
| +for other platforms exist, although do not see as wide of usage. |
| + |
| + * **Supported Platforms**: Windows, macOS, Linux, Chromium OS, iOS, Android |
| + * **Release Frequency**: Varies by distributor; some Linux distributions |
| + treat versions of Chromium as "Long Term Stable" and support a single |
| + version for a longer time than the Chromium projects do, others track |
| + the Google Chrome release frequency. |
| + * **Automatic Updates**: Varies by distributor |
| + * **Command-line Flags**: |
| + * __Yes__: Windows, macOS, Linux, Chromium OS (dev image), Android (rooted) |
| + * __No__: Chromium OS (Release image), iOS, Android (Release) |
| + * **Field Trials (Finch)**: No |
| + * **Enterprise Policy**: Yes |
| + * **User Metrics (UMA)**: Varies by distributor |
| + * **Component Updater**: Varies by distributor |
| + |
| +## Android WebView |
| + |
| +Distinct from the Chromium browser, the Android WebView is itself based on |
| +the Chromium browser. On official Android devices running Android N or later, |
| +WebView is automatically updated when Google Chrome is updated on the |
| +device. For earlier devices, Android WebView is updated by the System WebView |
| +component. |
| + |
| +Android WebView may also be used on non-official Android devices, such as |
| +those based on the Android Open Source Project but do not go through the |
| +Android [Compatability Test Suite](https://source.android.com/compatibility/cts/). |
| +Such releases have limited to no interaction with the Chromium projects, and |
| +so their capabilities cannot be conclusively documented. |
| + |
| +For official Android devices, WebView has the following capabilities. |
| + |
| + * **Supported Platforms**: Android |
| + * **Release Frequency**: ~6 weeks between releases |
| + * **Automatic Updates**: Varies. Updates are made available on the Android |
| + App Store, but users must explicitly choose to update. As such, the |
| + rate of update varies much more than for the Chromium browser. |
| + * **Command-line Flags**: No |
| + * **Field Trials (Finch)**: No |
| + * **Enterprise Policy**: No |
| + * **User Metrics (UMA)**: No |
| + * **Component Updater**: No |
| + |
| +## `//content` Embedders |
| + |
| +In addition to Chromium, there are a number of other of embedders of |
| +`//content`, such as projects like [Chromium Embedded Framework](https://bitbucket.org/chromiumembedded/cef) |
| +or [Electron](http://electron.atom.io/). While `//net` does not directly |
| +support these consumers, it does support the `//content` embedding API that |
| +these projects use. Note that this excludes the |
| +[content_shell](../../content/shell) test framework. |
| + |
| + * **Supported Platforms**: Windows, macOS, Linux, Chromium OS, iOS, Android |
| + * **Release Frequency**: Varies by consumer; Officially ~6 weeks |
| + * **Command-line Flags**: Varies by consumer |
| + * **Field Trials (Finch)**: No |
| + * **Enterprise Policy**: No |
| + * **User Metrics (UMA)**: No |
| + * **Component Updater**: No |
| + |
| +## Cronet |
|
Ryan Sleevi
2017/02/16 00:58:30
+mef: Could you review this for its capabilities a
mef
2017/02/16 18:00:00
Could you elaborate on 'capabilities'?
Ryan Sleevi
2017/02/16 18:03:55
The points below and making sure I got them right
mef
2017/02/16 18:11:13
Acknowledged.
|
| + |
| +[Cronet](../../components/cronet/README.md) is a version of the `//net` |
| +network stack for use in mobile applications on iOS and Android. While |
| +primarily targetting first-party Google applications, Cronet's status as an |
| +open-source project, similar to the Chromium browser, means that it may |
| +find itself embedded in a variety of other projects. |
| + |
| +Unlike some of the other `//net` consumers, Cronet does not necessarily |
| +implement "The Web Platform" (as the holistic set of user agent-focused |
| +features), and instead is more akin to an HTTP(s) client networking library. |
| + |
| + * **Supported Platforms**: iOS, Android |
| + * **Release Frequency**: Varies |
|
mef
2017/02/16 18:00:00
Builds follow Chrome release schedule with daily C
Ryan Sleevi
2017/02/16 18:03:55
Well, my understanding is that a build being avail
mef
2017/02/16 18:11:13
Correct. We generally make Dev channel builds avai
|
| + * **Command-line Flags**: No |
| + * **Field Trials (Finch)**: No |
|
mef
2017/02/16 18:00:00
There are 'experimental options' that consumers ca
Ryan Sleevi
2017/02/16 18:03:55
Do those options use base::FieldTrial? My understa
mef
2017/02/16 18:11:13
That's correct, those don't use base::FieldTrial.
|
| + * **Enterprise Policy**: No |
| + * **User Metrics (UMA)**: |
| + * __Yes__: First-party (Google) projects |
|
mef
2017/02/16 18:00:00
Proto-serialized UMA data is exposed via getGlobal
Ryan Sleevi
2017/02/16 18:03:55
No, but it does preclude other consumers from send
mef
2017/02/16 18:11:13
I don't know, I was under impression that UMA is l
|
| + * __No__: General consumers |
| + * **Component Updater**: No |