<?xml version="1.0" encoding="utf-8"?>
<!--
  Copyright 2012 The Chromium Authors
  Use of this source code is governed by a BSD-style license that can be
  found in the LICENSE file.
-->

<!--
Note: This is a jinja2 template, processed at build time into the final manifest.

Blocks denoted with { % block some_name % }foo{ % endblock % } can be overridden
by a child template that "extends" this file.
-->

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.android.webview"
    android:isolatedSplits="true"
    tools:ignore="MissingLeanbackLauncher">

    <uses-feature android:name="android.hardware.touchscreen"
                  android:required="false" />
    <uses-feature android:name="android.software.leanback"
                  android:required="false" />
    <uses-feature android:name="android.hardware.type.automotive"
                  android:required="false" />

    <uses-feature android:glEsVersion="0x00030000" />

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

    <!-- Required by WebView Developer UI only -->
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />

    <uses-permission android:name="android.permission.FOREGROUND_SERVICE_SPECIAL_USE"/>
    <!-- Required to run the foreground service-->
    <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />

    <application android:label="Android System WebView"
                 android:icon="@com.android.webview:drawable/icon_webview"
                 android:name="org.chromium.android_webview.nonembedded.WebViewApkApplication"
                 android:multiArch="true"
                 android:use32bitAbi="true"
>
                    <meta-data android:name="com.android.webview.WebViewLibrary"
                       android:value="libwebviewchromium.so" />
            <!-- Service used to hold androidx.webkit startup feature metadata
                 that can be read from other apps via PackageManager. -->
            <service
              android:name="org.chromium.android_webview.services.StartupFeatureMetadataHolder"
              android:enabled="false"
              android:exported="true"
              tools:ignore="ExportedService">
              <meta-data
                  android:name="STARTUP_FEATURE_SET_DATA_DIRECTORY_SUFFIX"
                  android:value="true"/>
              <meta-data
                  android:name="STARTUP_FEATURE_SET_DIRECTORY_BASE_PATH"
                  android:value="true"/>
              <meta-data
                  android:name="STARTUP_FEATURE_CONFIGURE_PARTITIONED_COOKIES"
                  android:value="true"/>
            <meta-data
                  android:name="STARTUP_FEATURE_SET_UI_THREAD_STARTUP_MODE"
                  android:value="true"/>
            <meta-data
                  android:name="STARTUP_FEATURE_SET_UI_THREAD_STARTUP_MODE_V2"
                  android:value="true"/>
            <meta-data
                  android:name="STARTUP_FEATURE_SET_PROFILES_TO_LOAD"
                  android:value="true"/>
            </service>
            <!-- WebView Developer UI Activities. If you change these Activities, please update
                 android_webview/test/shell/AndroidManifest.xml as well. -->
            <!--suppress HardcodedText -->
            <activity android:name="org.chromium.android_webview.devui.MainActivity"
                      android:windowSoftInputMode="adjustPan"
                      android:visibleToInstantApps="true"
                      android:label="WebView DevTools"
                      android:icon="@drawable/icon_webview"
                      android:theme="@style/Theme.DevUi.DayNight"
                      android:launchMode="singleTask"
                      android:taskAffinity="com.android.webview.org.chromium.android_webview.devui"                       android:process=":webview_apk"                        android:exported="true">
                <intent-filter>
                    <action android:name="com.android.webview.SHOW_DEV_UI" />
                    <category android:name="android.intent.category.DEFAULT" />
                </intent-filter>
            </activity>
            <!-- Don't actually try to launch with this alias: it only exists so we can query its enabled state. -->
            <!-- If you change this component make sure to update the corresponding copy in
                 test/shell/AndroidManifest.xml -->
            <activity-alias android:name="org.chromium.android_webview.devui.DeveloperModeState"
                      android:targetActivity="org.chromium.android_webview.devui.MainActivity"
                      android:enabled="false" />
            <!-- End of WebView Developer UI Activities -->

            <!-- Don't actually try to launch with this alias: it only exists so we can query its enabled state. -->
            <!-- If you change this component make sure to update the corresponding copy in
                 test/shell/AndroidManifest.xml -->
            <activity-alias android:name="org.chromium.android_webview.SafeModeState"
                      android:targetActivity="org.chromium.android_webview.devui.MainActivity"
                      android:enabled="false" />

            <activity android:name="org.chromium.android_webview.nonembedded.LicenseActivity"
                      android:label="@string/license_activity_title"
                      android:process=":webview_apk"                        android:exported="true">
                <intent-filter>
                    <action android:name="android.settings.WEBVIEW_LICENSE" />
                    <category android:name="android.intent.category.DEFAULT" />
                </intent-filter>
                <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
                           android:value="true" />
            </activity>
            <provider android:name="org.chromium.android_webview.nonembedded.LicenseContentProvider"
                      android:exported="true"
                      android:authorities="com.android.webview.LicenseContentProvider"
                      android:grantUriPermissions="true"
                      android:process=":webview_apk"                        tools:ignore="ExportedContentProvider"/>
            <!-- Disabled by default, enabled at runtime by Developer UI. -->
            <!-- If you change this component make sure to update the corresponding copy in
                 test/shell/AndroidManifest.xml-->
            <provider android:name="org.chromium.android_webview.services.DeveloperModeContentProvider"
                      android:visibleToInstantApps="true"
                      android:exported="true"
                      android:authorities="com.android.webview.DeveloperModeContentProvider"
                      android:process=":webview_service"                        tools:ignore="ExportedContentProvider" />
            <provider android:name="androidx.core.content.FileProvider"
                      android:visibleToInstantApps="true"
                      android:exported="false"
                      android:authorities="com.android.webview.net_logs_provider"
                      android:process=":webview_service"                        android:grantUriPermissions="true"
                      tools:ignore="ExportedContentProvider">
                      <meta-data android:name="android.support.FILE_PROVIDER_PATHS"
                          android:resource="@xml/provider_paths" />
            </provider>
            <!-- If you change this component make sure to update the corresponding copy in
                 test/shell/AndroidManifest.xml-->
            <provider android:name="org.chromium.android_webview.services.SafeModeVariationsSeedContentProvider"
                      android:visibleToInstantApps="true"
                      android:exported="true"
                      android:authorities="com.android.webview.SafeModeVariationsSeedContentProvider"
                      android:process=":webview_service"                        tools:ignore="ExportedContentProvider" />
            <provider android:name="org.chromium.android_webview.services.SafeModeContentProvider"
                      android:visibleToInstantApps="true"
                      android:exported="true"
                      android:authorities="com.android.webview.SafeModeContentProvider"
                      android:process=":webview_service"                        tools:ignore="ExportedContentProvider" />
            <!-- Disables at startup init of Emoji2. See http://crbug.com/1205141 -->
            <provider
                android:name="androidx.startup.InitializationProvider"
                tools:node="remove">
            </provider>
            <!-- If you change the variations services, also see
                 android_webview/test/shell/AndroidManifest.xml. -->
            <!-- All WebView components need an android:process attribute. See //android_webview/nonembedded/README.md. -->
            <service android:name="org.chromium.android_webview.services.VariationsSeedServer"
                     android:exported="true"
                     android:process=":webview_service"                       tools:ignore="ExportedService" />
            <service android:name="org.chromium.android_webview.services.AwVariationsSeedFetcher"
                     android:permission="android.permission.BIND_JOB_SERVICE"
                     android:exported="false"
                     android:process=":webview_service" />              <service android:name="org.chromium.android_webview.services.CrashReceiverService"
                     android:exported="true"
                     android:process=":webview_service"                       tools:ignore="ExportedService" />
            <service android:name="org.chromium.android_webview.services.AwMinidumpUploadJobService"
                     android:permission="android.permission.BIND_JOB_SERVICE"
                     android:exported="true"
                     android:process=":webview_service" />              <service android:name="org.chromium.android_webview.services.DeveloperUiService"
                     android:foregroundServiceType="specialUse"
                     android:exported="true"
                     android:process=":webview_service"                       tools:ignore="ExportedService" >
                      <property
                        android:name="android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE"
                        android:value="debugging"
                      />
            </service>
            <service android:name="org.chromium.android_webview.services.SafeModeService"
                     android:exported="true"
                     android:process=":webview_service"                       tools:ignore="ExportedService" />
            <service android:name="org.chromium.android_webview.services.AwNetLogService"
                     android:exported="true"
                     android:process=":webview_service"                       tools:ignore="ExportedService" />
            <service android:name="org.chromium.android_webview.services.MetricsBridgeService"
                     android:exported="true"
                     android:visibleToInstantApps="true"
                     android:process=":webview_service"                       tools:ignore="ExportedService" />
            <service android:name="org.chromium.android_webview.services.MetricsUploadService"
                     android:exported="true"
                     android:visibleToInstantApps="true"
                     android:process=":webview_service"                       tools:ignore="ExportedService" />

            <!-- JS Execution Sandbox -->
            <service android:name="org.chromium.android_webview.js_sandbox.service.JsSandboxService0"
                android:process=":js_sandboxed_process0"
                android:isolatedProcess="true"
                android:exported="true"
                android:externalService="true"
                tools:ignore="ExportedService"
                android:visibleToInstantApps="true" />

        <meta-data android:name="org.chromium.content.browser.NUM_SANDBOXED_SERVICES"
                   android:value="40" />
            <service android:name="org.chromium.content.app.SandboxedProcessService0"
                     android:process=":sandboxed_process0"
                     android:isolatedProcess="true"
                     android:exported="true"
                     android:externalService="true"
                     tools:ignore="ExportedService"
                     android:visibleToInstantApps="true" />
            <service android:name="org.chromium.content.app.SandboxedProcessService1"
                     android:process=":sandboxed_process1"
                     android:isolatedProcess="true"
                     android:exported="true"
                     android:externalService="true"
                     tools:ignore="ExportedService"
                     android:visibleToInstantApps="true" />
            <service android:name="org.chromium.content.app.SandboxedProcessService2"
                     android:process=":sandboxed_process2"
                     android:isolatedProcess="true"
                     android:exported="true"
                     android:externalService="true"
                     tools:ignore="ExportedService"
                     android:visibleToInstantApps="true" />
            <service android:name="org.chromium.content.app.SandboxedProcessService3"
                     android:process=":sandboxed_process3"
                     android:isolatedProcess="true"
                     android:exported="true"
                     android:externalService="true"
                     tools:ignore="ExportedService"
                     android:visibleToInstantApps="true" />
            <service android:name="org.chromium.content.app.SandboxedProcessService4"
                     android:process=":sandboxed_process4"
                     android:isolatedProcess="true"
                     android:exported="true"
                     android:externalService="true"
                     tools:ignore="ExportedService"
                     android:visibleToInstantApps="true" />
            <service android:name="org.chromium.content.app.SandboxedProcessService5"
                     android:process=":sandboxed_process5"
                     android:isolatedProcess="true"
                     android:exported="true"
                     android:externalService="true"
                     tools:ignore="ExportedService"
                     android:visibleToInstantApps="true" />
            <service android:name="org.chromium.content.app.SandboxedProcessService6"
                     android:process=":sandboxed_process6"
                     android:isolatedProcess="true"
                     android:exported="true"
                     android:externalService="true"
                     tools:ignore="ExportedService"
                     android:visibleToInstantApps="true" />
            <service android:name="org.chromium.content.app.SandboxedProcessService7"
                     android:process=":sandboxed_process7"
                     android:isolatedProcess="true"
                     android:exported="true"
                     android:externalService="true"
                     tools:ignore="ExportedService"
                     android:visibleToInstantApps="true" />
            <service android:name="org.chromium.content.app.SandboxedProcessService8"
                     android:process=":sandboxed_process8"
                     android:isolatedProcess="true"
                     android:exported="true"
                     android:externalService="true"
                     tools:ignore="ExportedService"
                     android:visibleToInstantApps="true" />
            <service android:name="org.chromium.content.app.SandboxedProcessService9"
                     android:process=":sandboxed_process9"
                     android:isolatedProcess="true"
                     android:exported="true"
                     android:externalService="true"
                     tools:ignore="ExportedService"
                     android:visibleToInstantApps="true" />
            <service android:name="org.chromium.content.app.SandboxedProcessService10"
                     android:process=":sandboxed_process10"
                     android:isolatedProcess="true"
                     android:exported="true"
                     android:externalService="true"
                     tools:ignore="ExportedService"
                     android:visibleToInstantApps="true" />
            <service android:name="org.chromium.content.app.SandboxedProcessService11"
                     android:process=":sandboxed_process11"
                     android:isolatedProcess="true"
                     android:exported="true"
                     android:externalService="true"
                     tools:ignore="ExportedService"
                     android:visibleToInstantApps="true" />
            <service android:name="org.chromium.content.app.SandboxedProcessService12"
                     android:process=":sandboxed_process12"
                     android:isolatedProcess="true"
                     android:exported="true"
                     android:externalService="true"
                     tools:ignore="ExportedService"
                     android:visibleToInstantApps="true" />
            <service android:name="org.chromium.content.app.SandboxedProcessService13"
                     android:process=":sandboxed_process13"
                     android:isolatedProcess="true"
                     android:exported="true"
                     android:externalService="true"
                     tools:ignore="ExportedService"
                     android:visibleToInstantApps="true" />
            <service android:name="org.chromium.content.app.SandboxedProcessService14"
                     android:process=":sandboxed_process14"
                     android:isolatedProcess="true"
                     android:exported="true"
                     android:externalService="true"
                     tools:ignore="ExportedService"
                     android:visibleToInstantApps="true" />
            <service android:name="org.chromium.content.app.SandboxedProcessService15"
                     android:process=":sandboxed_process15"
                     android:isolatedProcess="true"
                     android:exported="true"
                     android:externalService="true"
                     tools:ignore="ExportedService"
                     android:visibleToInstantApps="true" />
            <service android:name="org.chromium.content.app.SandboxedProcessService16"
                     android:process=":sandboxed_process16"
                     android:isolatedProcess="true"
                     android:exported="true"
                     android:externalService="true"
                     tools:ignore="ExportedService"
                     android:visibleToInstantApps="true" />
            <service android:name="org.chromium.content.app.SandboxedProcessService17"
                     android:process=":sandboxed_process17"
                     android:isolatedProcess="true"
                     android:exported="true"
                     android:externalService="true"
                     tools:ignore="ExportedService"
                     android:visibleToInstantApps="true" />
            <service android:name="org.chromium.content.app.SandboxedProcessService18"
                     android:process=":sandboxed_process18"
                     android:isolatedProcess="true"
                     android:exported="true"
                     android:externalService="true"
                     tools:ignore="ExportedService"
                     android:visibleToInstantApps="true" />
            <service android:name="org.chromium.content.app.SandboxedProcessService19"
                     android:process=":sandboxed_process19"
                     android:isolatedProcess="true"
                     android:exported="true"
                     android:externalService="true"
                     tools:ignore="ExportedService"
                     android:visibleToInstantApps="true" />
            <service android:name="org.chromium.content.app.SandboxedProcessService20"
                     android:process=":sandboxed_process20"
                     android:isolatedProcess="true"
                     android:exported="true"
                     android:externalService="true"
                     tools:ignore="ExportedService"
                     android:visibleToInstantApps="true" />
            <service android:name="org.chromium.content.app.SandboxedProcessService21"
                     android:process=":sandboxed_process21"
                     android:isolatedProcess="true"
                     android:exported="true"
                     android:externalService="true"
                     tools:ignore="ExportedService"
                     android:visibleToInstantApps="true" />
            <service android:name="org.chromium.content.app.SandboxedProcessService22"
                     android:process=":sandboxed_process22"
                     android:isolatedProcess="true"
                     android:exported="true"
                     android:externalService="true"
                     tools:ignore="ExportedService"
                     android:visibleToInstantApps="true" />
            <service android:name="org.chromium.content.app.SandboxedProcessService23"
                     android:process=":sandboxed_process23"
                     android:isolatedProcess="true"
                     android:exported="true"
                     android:externalService="true"
                     tools:ignore="ExportedService"
                     android:visibleToInstantApps="true" />
            <service android:name="org.chromium.content.app.SandboxedProcessService24"
                     android:process=":sandboxed_process24"
                     android:isolatedProcess="true"
                     android:exported="true"
                     android:externalService="true"
                     tools:ignore="ExportedService"
                     android:visibleToInstantApps="true" />
            <service android:name="org.chromium.content.app.SandboxedProcessService25"
                     android:process=":sandboxed_process25"
                     android:isolatedProcess="true"
                     android:exported="true"
                     android:externalService="true"
                     tools:ignore="ExportedService"
                     android:visibleToInstantApps="true" />
            <service android:name="org.chromium.content.app.SandboxedProcessService26"
                     android:process=":sandboxed_process26"
                     android:isolatedProcess="true"
                     android:exported="true"
                     android:externalService="true"
                     tools:ignore="ExportedService"
                     android:visibleToInstantApps="true" />
            <service android:name="org.chromium.content.app.SandboxedProcessService27"
                     android:process=":sandboxed_process27"
                     android:isolatedProcess="true"
                     android:exported="true"
                     android:externalService="true"
                     tools:ignore="ExportedService"
                     android:visibleToInstantApps="true" />
            <service android:name="org.chromium.content.app.SandboxedProcessService28"
                     android:process=":sandboxed_process28"
                     android:isolatedProcess="true"
                     android:exported="true"
                     android:externalService="true"
                     tools:ignore="ExportedService"
                     android:visibleToInstantApps="true" />
            <service android:name="org.chromium.content.app.SandboxedProcessService29"
                     android:process=":sandboxed_process29"
                     android:isolatedProcess="true"
                     android:exported="true"
                     android:externalService="true"
                     tools:ignore="ExportedService"
                     android:visibleToInstantApps="true" />
            <service android:name="org.chromium.content.app.SandboxedProcessService30"
                     android:process=":sandboxed_process30"
                     android:isolatedProcess="true"
                     android:exported="true"
                     android:externalService="true"
                     tools:ignore="ExportedService"
                     android:visibleToInstantApps="true" />
            <service android:name="org.chromium.content.app.SandboxedProcessService31"
                     android:process=":sandboxed_process31"
                     android:isolatedProcess="true"
                     android:exported="true"
                     android:externalService="true"
                     tools:ignore="ExportedService"
                     android:visibleToInstantApps="true" />
            <service android:name="org.chromium.content.app.SandboxedProcessService32"
                     android:process=":sandboxed_process32"
                     android:isolatedProcess="true"
                     android:exported="true"
                     android:externalService="true"
                     tools:ignore="ExportedService"
                     android:visibleToInstantApps="true" />
            <service android:name="org.chromium.content.app.SandboxedProcessService33"
                     android:process=":sandboxed_process33"
                     android:isolatedProcess="true"
                     android:exported="true"
                     android:externalService="true"
                     tools:ignore="ExportedService"
                     android:visibleToInstantApps="true" />
            <service android:name="org.chromium.content.app.SandboxedProcessService34"
                     android:process=":sandboxed_process34"
                     android:isolatedProcess="true"
                     android:exported="true"
                     android:externalService="true"
                     tools:ignore="ExportedService"
                     android:visibleToInstantApps="true" />
            <service android:name="org.chromium.content.app.SandboxedProcessService35"
                     android:process=":sandboxed_process35"
                     android:isolatedProcess="true"
                     android:exported="true"
                     android:externalService="true"
                     tools:ignore="ExportedService"
                     android:visibleToInstantApps="true" />
            <service android:name="org.chromium.content.app.SandboxedProcessService36"
                     android:process=":sandboxed_process36"
                     android:isolatedProcess="true"
                     android:exported="true"
                     android:externalService="true"
                     tools:ignore="ExportedService"
                     android:visibleToInstantApps="true" />
            <service android:name="org.chromium.content.app.SandboxedProcessService37"
                     android:process=":sandboxed_process37"
                     android:isolatedProcess="true"
                     android:exported="true"
                     android:externalService="true"
                     tools:ignore="ExportedService"
                     android:visibleToInstantApps="true" />
            <service android:name="org.chromium.content.app.SandboxedProcessService38"
                     android:process=":sandboxed_process38"
                     android:isolatedProcess="true"
                     android:exported="true"
                     android:externalService="true"
                     tools:ignore="ExportedService"
                     android:visibleToInstantApps="true" />
            <service android:name="org.chromium.content.app.SandboxedProcessService39"
                     android:process=":sandboxed_process39"
                     android:isolatedProcess="true"
                     android:exported="true"
                     android:externalService="true"
                     tools:ignore="ExportedService"
                     android:visibleToInstantApps="true" />
        <service android:name="org.chromium.content.app.NativeOnlySandboxedProcessService0"
                 android:nativeService="true"
                 android:process=":sandboxed_process0"
                 android:isolatedProcess="true"
                 android:exported="true"
                 android:externalService="true"
                 tools:ignore="ExportedService"
                 android:visibleToInstantApps="true">
            <property android:name="android.app.PROPERTY_NATIVE_SERVICE_LIBRARY_NAME"
                      android:value="libwebviewchromium.so" />
            <property android:name="android.app.PROPERTY_NATIVE_SERVICE_FUNCTION_NAME"
                      android:value="NativeChildProcessService_onCreate" />
        </service>
        <meta-data android:name="org.chromium.content.browser.NUM_PRIVILEGED_SERVICES"
                   android:value="0" />
    </application>
</manifest>