| 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..1403dc3ab8be6ad380952d5618000f259efbc5bd
|
| --- /dev/null
|
| +++ b/net/docs/supported-projects.md
|
| @@ -0,0 +1,124 @@
|
| +# 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
|
| +
|
| +[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. While "releases" are made following the
|
| + same frequency as Google Chrome, because it is treated similar to
|
| + a "third-party" library, different products and projects will ship
|
| + different versions of Cronet for differing periods of time.
|
| + * **Command-line Flags**: No
|
| + * **Field Trials (Finch)**: No
|
| + * **Enterprise Policy**: No
|
| + * **User Metrics (UMA)**:
|
| + * __Yes__: First-party (Google) projects, although they will be
|
| + reported in project-specific buckets (e.g. no overarching set of
|
| + metrics for all Cronet consumers).
|
| + * __No__: In general
|
| + * **Component Updater**: No
|
|
|