| <?xml version="1.0" encoding="utf-8"?> |
| |
| <!-- Copyright 2014 The Chromium Authors |
| 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="org.chromium.chromecast.shell"> |
| |
| <uses-sdk android:minSdkVersion="24"/> |
| |
| <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> |
| <uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> |
| <uses-permission android:name="android.permission.FOREGROUND_SERVICE_SPECIAL_USE"/> |
| <uses-permission android:name="android.permission.INTERNET"/> |
| <uses-permission android:name="android.permission.START_ACTIVITIES_FROM_BACKGROUND" |
| tools:ignore="ProtectedPermissions" /> |
| <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> |
| <uses-permission android:name="android.permission.WAKE_LOCK"/> |
| |
| <!-- Needed because CastWebContentsActivity sets orientation to landscape. --> |
| <uses-feature android:name="android.hardware.screen.landscape" android:required="false" /> |
| |
| <application android:name="org.chromium.chromecast.shell.CastApplication" |
| android:icon="@drawable/ic_settings_cast"> |
| <service android:name="org.chromium.chromecast.shell.CastBrowserService" |
| android:hardwareAccelerated="true" |
| android:label="Chromecast Web Browser" |
| android:exported="true" |
| android:foregroundServiceType="specialUse" |
| tools:ignore="ExportedService"> |
| <property android:name="android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE" |
| android:value="cast" /> |
| <intent-filter> |
| <action android:name="com.google.cast.action.START_CAST_BROWSER" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| </intent-filter> |
| </service> |
| <service android:name="org.chromium.chromecast.shell.CastWebContentsService" |
| android:foregroundServiceType="specialUse"> |
| <property android:name="android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE" |
| android:value="cast" /> |
| </service> |
| |
| <activity android:name="org.chromium.chromecast.shell.CastWebContentsActivity" |
| android:theme="@style/CastShellTheme" |
| android:exported="true" |
| android:hardwareAccelerated="true" |
| android:launchMode="singleInstance" |
| android:screenOrientation="landscape" |
| android:taskAffinity=".CastWebContentsActivity" |
| android:supportsPictureInPicture="true" |
| android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|screenLayout|smallestScreenSize|uiMode" |
| android:excludeFromRecents="false" |
| android:noHistory="false" |
| android:showWhenLocked="true"> |
| </activity> |
| |
| <service android:name="org.chromium.chromecast.shell.TaskRemovedMonitorService" |
| android:exported="false"> |
| </service> |
| |
| <!-- The following service entries exist in order to allow us to |
| start more than one sandboxed process. --> |
| {% 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="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.content.app.PrivilegedProcessService{{ i }}" |
| android:process=":privileged_process{{ i }}" |
| android:isolatedProcess="false" |
| android:exported="false" /> |
| {% endfor %} |
| </application> |
| |
| </manifest> |