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