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. |
Randy Smith (Not in Mondays)
2017/02/16 21:07:23
Opera?
|
+ |
+ * **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 |