mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-12-01 01:36:09 +03:00
125 lines
5.6 KiB
Markdown
125 lines
5.6 KiB
Markdown
|
# 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
|