blob: a55e9a446a790cfcdb997367c521e9f9c841d97d [file] [log] [blame]
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2019 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"
package="org.chromium.weblayer.client">
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<application>
<!-- The following service entries exist in order to allow us to
start more than one sandboxed process. -->
<!-- NOTE: If you change the values of "android:process" for any of the below services,
you also need to update kHelperProcessExecutableName in chrome_constants.cc. -->
{% 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.weblayer.ChildProcessService$Sandboxed{{ i }}"
android:process=":sandboxed_process{{ i }}"
android:isolatedProcess="true"
android:exported="false" />
{% endfor %}
{% set num_privileged_services = 5 %}
<meta-data android:name="org.chromium.content.browser.NUM_PRIVILEGED_SERVICES"
android:value="{{ num_privileged_services }}"/>
{% for i in range(num_privileged_services) %}
<service android:name="org.chromium.weblayer.ChildProcessService$Privileged{{ i }}"
android:process=":privileged_process{{ i }}"
android:isolatedProcess="false"
android:exported="false" />
{% endfor %}
<provider android:name="org.chromium.weblayer.WebLayerFileProvider"
android:authorities="${applicationId}.org.chromium.weblayer.client.FileProvider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/weblayer_file_paths" />
</provider>
<activity android:name="org.chromium.weblayer.SettingsActivity"
android:theme="@style/Theme.WebLayer.Settings"
android:exported="false">
</activity>
<activity android:name="org.chromium.weblayer.SiteSettingsActivity"
android:theme="@style/Theme.WebLayer.Settings"
android:exported="false">
</activity>
<receiver android:name="org.chromium.weblayer.BroadcastReceiver"
android:exported="false">
<intent-filter>
<!-- these need to be in sync with DownloadImpl.java-->
<action android:name="org.chromium.weblayer.downloads.OPEN"/>
<action android:name="org.chromium.weblayer.downloads.DELETE"/>
<action android:name="org.chromium.weblayer.downloads.PAUSE"/>
<action android:name="org.chromium.weblayer.downloads.RESUME"/>
<action android:name="org.chromium.weblayer.downloads.CANCEL"/>
<!-- this needs to be in sync with IntentUtils.java-->
<action android:name="org.chromium.weblayer.intent_utils.ACTIVATE_TAB"/>
<!-- this needs to be in sync with MediaStreamManager.java-->
<!-- TODO(estade): deprecated, remove in M88. -->
<action android:name="org.chromium.weblayer.webrtc.ACTIVATE_TAB"/>
</intent-filter>
</receiver>
<service android:name="org.chromium.weblayer.MediaSessionService"
android:exported="false">
<intent-filter>
<action android:name="android.intent.action.MEDIA_BUTTON" />
</intent-filter>
</service>
<service android:name="org.chromium.weblayer.RemoteMediaService"
android:exported="false">
<intent-filter>
<action android:name="android.intent.action.MEDIA_BUTTON" />
</intent-filter>
</service>
<!-- Service for decoding images in a sandboxed process. -->
<service
android:name="org.chromium.weblayer.ImageDecoderService"
android:exported="false"
android:isolatedProcess="true"
android:process=":decoder_service" />
<!-- Cast support -->
<!-- TODO(crbug.com/1148410): remove this. -->
<meta-data
android:name="com.google.android.gms.cast.framework.OPTIONS_PROVIDER_CLASS_NAME"
android:value="org.chromium.components.media_router.caf.CastOptionsProvider"/>
</application>
</manifest>