Home | History | Annotate | Download | only in 3_software
      1 ## 3.4\. Web Compatibility
      2 
      3 ### 3.4.1\. WebView Compatibility
      4 
      5 If 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 
     37 If device implementations include a standalone Browser application for general
     38 web 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 
     59 However, If device implementations do not include a standalone Browser
     60 application, 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