blob: 41d136ef70cb9326282bebc60dca8c1f479ef645 [file] [log] [blame]
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (c) 2012 The Chromium Authors. All rights reserved. Use of this
source code is governed by a BSD-style license that can be found in the
LICENSE file.
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="{{manifest_package|default('com.android.webview')}}"
{% if use_isolated_splits is defined and use_isolated_splits == 'true' %}
android:isolatedSplits="true"
{% endif %}
tools:ignore="MissingLeanbackLauncher">
<uses-feature android:name="android.hardware.touchscreen"
android:required="false" />
<uses-feature android:name="android.software.leanback"
android:required="false" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- Required by WebView Developer UI only -->
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<application android:label="{{ application_label|default('Android System WebView') }}"
android:icon="@{{manifest_package|default('com.android.webview')}}:drawable/icon_webview"
android:name="{{ application_name|default('org.chromium.android_webview.nonembedded.WebViewApkApplication') }}"
android:multiArch="true"
{{ use32bitAbi|default('android:use32bitAbi="true"') }}
android:extractNativeLibs="{{ trichrome_library is not defined }}">
{# This part is shared between stand-alone WebView and Monochrome #}
{% macro common(manifest_package, webview_lib) %}
<meta-data android:name="com.android.webview.WebViewLibrary"
android:value="{{ webview_lib }}" />
<!-- 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="{{ manifest_package }}.org.chromium.android_webview.devui" {# Explicit taskAffinity to distinguish from monochrome browser task. #}
android:process=":webview_apk" {# Explicit process required for monochrome compatibility. #}
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. -->
<activity-alias android:name="org.chromium.android_webview.devui.DeveloperModeState"
android:targetActivity="org.chromium.android_webview.devui.MainActivity"
android:visibleToInstantApps="true"
android:enabled="false"
android:process=":webview_apk" /> {# Explicit process required for monochrome compatibility. #}
<!-- End of WebView Developer UI Activities -->
<activity android:name="org.chromium.android_webview.nonembedded.LicenseActivity"
android:label="@string/license_activity_title"
android:process=":webview_apk" {# Explicit process required for monochrome compatibility. #}
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="{{ manifest_package }}.LicenseContentProvider"
android:grantUriPermissions="true"
android:process=":webview_apk" {# Explicit process required for monochrome compatibility. #}
tools:ignore="ExportedContentProvider"/>
<!-- Disabled by default, enabled at runtime by Developer UI. -->
<provider android:name="org.chromium.android_webview.services.DeveloperModeContentProvider"
android:visibleToInstantApps="true"
android:exported="true"
android:authorities="{{ manifest_package }}.DeveloperModeContentProvider"
android:process=":webview_service" {# Explicit process required for monochrome compatibility. #}
tools:ignore="ExportedContentProvider" />
{% if donor_package is not defined %}
<!-- If you change the variations services, also see
android_webview/test/shell/AndroidManifest.xml. -->
<!-- These have a separate android:process so that they can
run in Monochrome with a different value for
PathUtils.getDataDirectory() from Chrome. -->
<service android:name="org.chromium.android_webview.services.VariationsSeedServer"
android:exported="true"
android:process=":webview_service" {# Explicit process required for monochrome compatibility. #}
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" /> {# Explicit process required for monochrome compatibility. #}
<service android:name="org.chromium.android_webview.services.CrashReceiverService"
android:exported="true"
android:process=":webview_service" {# Explicit process required for monochrome compatibility. #}
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" /> {# Explicit process required for monochrome compatibility. #}
<service android:name="org.chromium.android_webview.services.DeveloperUiService"
android:exported="false"
android:process=":webview_service" /> {# Explicit process required for monochrome compatibility. #}
<service android:name="org.chromium.android_webview.services.MetricsBridgeService"
android:exported="true"
android:visibleToInstantApps="true"
android:process=":webview_service" {# Explicit process required for monochrome compatibility. #}
tools:ignore="ExportedService" />
{% endif %}
{% endmacro %}
{{ common(manifest_package|default('com.android.webview'), library|default('libwebviewchromium.so')) }}
{% if donor_package is defined %}
<meta-data android:name="com.android.webview.WebViewDonorPackage"
android:value="{{ donor_package }}" />
{% endif %}
{% set num_sandboxed_services = 40 %}
<meta-data android:name="org.chromium.content.browser.NUM_SANDBOXED_SERVICES"
android:value="{{ num_sandboxed_services }}" />
{% for i in range(num_sandboxed_services) %}
<service android:name="org.chromium.content.app.SandboxedProcessService{{ i }}"
android:process=":sandboxed_process{{ i }}"
android:isolatedProcess="true"
android:exported="true"
android:externalService="true"
tools:ignore="ExportedService"
android:visibleToInstantApps="true" />
{% endfor %}
<meta-data android:name="org.chromium.content.browser.NUM_PRIVILEGED_SERVICES"
android:value="0" />
{% if trichrome_library is defined %}
<uses-static-library
android:name="{{ trichrome_library }}"
android:version="{{ trichrome_version }}"
android:certDigest="{{ trichrome_certdigest }}" />
{% endif %}
</application>
</manifest>