1## 3.4\. Web Compatibility
2
3### 3.4.1\. WebView Compatibility
4
5If device implementations provide a complete implementation of the
6`android.webkit.Webview` API, they:
7
8*    [C-1-1] MUST report `android.software.webview`.
9*    [C-1-2] MUST use the [Chromium](http://www.chromium.org/) Project build
10     from the upstream Android Open Source Project on the Android
11     ANDROID_VERSION branch for the implementation of the
12     [`android.webkit.WebView`](
13     http://developer.android.com/reference/android/webkit/WebView.html)
14     API.
15*    [C-1-3] The user agent string reported by the WebView MUST be in this format:
16
17    Mozilla/5.0 (Linux; Android $(VERSION); $(MODEL) Build/$(BUILD); wv)
18    AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 $(CHROMIUM_VER) Mobile
19    Safari/537.36
20
21    *   The value of the $(VERSION) string MUST be the same as the value for
22        android.os.Build.VERSION.RELEASE.
23    *   The value of the $(MODEL) string MUST be the same as the value for
24        android.os.Build.MODEL.
25    *   The value of the $(BUILD) string MUST be the same as the value for
26        android.os.Build.ID.
27    *   The value of the $(CHROMIUM_VER) string MUST be the version of Chromium
28        in the upstream Android Open Source Project.
29    *   Device implementations MAY omit Mobile in the user agent string.
30
31*    The WebView component SHOULD include support for as many HTML5 features as
32     possible and if it supports the feature SHOULD conform to the
33     [HTML5 specification](http://html.spec.whatwg.org/multipage/).
34
35### 3.4.2\. Browser Compatibility
36
37If device implementations include a standalone Browser application for general
38web browsing, they:
39
40*    [C-1-1] MUST support each of these APIs associated with
41     HTML5:
42    *   [application cache/offline operation](
43        http://www.w3.org/html/wg/drafts/html/master/browsers.html#offline)
44    *   [<video> tag](
45        http://www.w3.org/html/wg/drafts/html/master/semantics.html#video)
46    *   [geolocation](http://www.w3.org/TR/geolocation-API/)
47*    [C-1-2] MUST support the HTML5/W3C [webstorage API](
48     http://www.w3.org/TR/webstorage/) and SHOULD support the HTML5/W3C
49     [IndexedDB API](http://www.w3.org/TR/IndexedDB/). Note that as the web
50     development standards bodies are transitioning to favor IndexedDB over
51     webstorage, IndexedDB is expected to become a required component in a
52     future version of Android.
53*    MAY ship a custom user agent string in the standalone Browser application.
54*    SHOULD implement support for as much of [HTML5](
55     http://html.spec.whatwg.org/multipage/) as possible on the standalone
56     Browser application (whether based on the upstream WebKit Browser
57     application or a third-party replacement).
58
59However, If device implementations do not include a standalone Browser
60application, they:
61
62*    [C-2-1] MUST still support the public intent patterns as described in
63     [section 3.2.3.1](#3_2_3_1_core_application_intents).
64