<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2015 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. -->

<!--
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="{{ manifest_package }}"
    tools:ignore="MissingVersion">
    <!-- android:versionCode and android:versionName is set through gyp. See build/common.gypi -->

    <uses-sdk android:minSdkVersion="{{min_sdk_version}}" android:targetSdkVersion="{{target_sdk_version}}" />
    <uses-feature android:glEsVersion="0x00020000" />

    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <uses-permission-sdk-23 android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

    <!--
      Enable runtime permissions as uses-permission in tip of tree builds
      only for ease of development on Android L and earlier. For consumer
      channels use "runtime permission" uses-permission-sdk-23 which provides
      permission on Android M and later without a prompt.
    -->
    {% if channel in ['default'] %}
        <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
    {% endif %}
    <uses-permission-sdk-23 android:name="android.permission.BLUETOOTH"/>
    <uses-permission-sdk-23 android:name="android.permission.BLUETOOTH_ADMIN"/>
    <uses-permission-sdk-23 android:name="android.permission.READ_CONTACTS"/>
    <uses-permission-sdk-23 android:name="android.permission.REORDER_TASKS"/>
    <uses-permission-sdk-23 android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>

    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
    {% if target_sdk_version|int > 27 or target_sdk_version == "Q" %}
        <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
    {% endif %}
    <uses-permission android:name="android.permission.GET_ACCOUNTS"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/>
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
    {% if target_sdk_version|int > 28 or target_sdk_version == "Q" %}
        <uses-permission-sdk-23 android:name="android.permission.READ_MEDIA_IMAGES"/>
    {% endif %}
    <uses-permission android:name="android.permission.NFC"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_SYNC_SETTINGS"/>
    <uses-permission android:name="android.permission.READ_SYNC_STATS"/>
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
    <uses-permission android:name="android.permission.RECORD_AUDIO"/>
    <uses-permission android:name="android.permission.USE_CREDENTIALS"/>
    <uses-permission-sdk-23 android:name="android.permission.USE_FINGERPRINT"/>
    <uses-permission android:name="android.permission.VIBRATE"/>
    <uses-permission android:name="android.permission.WAKE_LOCK"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS"/>
    {% set enable_vr = enable_vr|default(0) %}
    {% if enable_vr == "true" %}
    <!-- Indicates use of Android's VR-mode, available only on Android N+. -->
    <uses-feature android:name="android.software.vr.mode" android:required="false"/>
    <!-- Indicates use of VR features that are available only on Daydream-ready devices. -->
    <uses-feature android:name="android.hardware.vr.high_performance" android:required="false"/>
    <!--
      Indicates that we don't need Chrome to be available on devices that only support landscape
      orientation. This is needed because we have VR specific activities that declare the
      android:orientation attribute.
    -->
    <uses-feature android:name="android.hardware.screen.landscape" android:required="false"/>
    <!-- Indicates that head tracking should be done in 6DoF, if available -->
    <uses-feature android:name="android.hardware.vr.headtracking" android:version="1" android:required="false"/>
    {% endif %}

    <permission android:name="{{ manifest_package }}.permission.CHILD_SERVICE" android:protectionLevel="signature" />
    <permission android:name="{{ manifest_package }}.permission.READ_WRITE_BOOKMARK_FOLDERS" android:protectionLevel="signatureOrSystem" />
    <permission android:name="{{ manifest_package }}.TOS_ACKED" android:protectionLevel="signatureOrSystem" />
    <!-- Only chrome can receive the messages and registration result -->
    <permission android:name="{{ manifest_package }}.permission.C2D_MESSAGE"
        android:protectionLevel="signature" />
    <permission android:name="{{ manifest_package }}.permission.DEBUG"
                android:label="Debug web pages"
                android:permissionGroup="android.permission-group.DEVELOPMENT_TOOLS"
                android:protectionLevel="signature" />

    <uses-permission android:name="{{ manifest_package }}.permission.C2D_MESSAGE" />
    <uses-permission android:name="{{ manifest_package }}.permission.READ_WRITE_BOOKMARK_FOLDERS" />
    <uses-permission android:name="{{ manifest_package }}.TOS_ACKED" />

    <uses-permission android:name="com.chrome.permission.DEVICE_EXTRAS" />
    <uses-permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS"/>
    <uses-permission android:name="com.android.browser.permission.WRITE_HISTORY_BOOKMARKS"/>
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
    <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>

    <uses-permission android:name="com.google.android.apps.now.CURRENT_ACCOUNT_ACCESS" />

    {% block extra_uses_permissions %}
    {% endblock %}

    <!-- We may use GPS but it's not required -->
    <uses-feature android:name="android.hardware.location.gps" android:required="false" />
    <uses-feature android:name="android.hardware.camera" android:required="false" />

    <!--
      android.permission.RECORD_AUDIO makes this implied, however we don't
      require a microphone.
    -->
    <uses-feature android:name="android.hardware.microphone" android:required="false" />
    <!--
      The app is usable with keyboard/mouse. This feature is implicitly true for
      all applications and needs to be disabled manually.
    -->
    <uses-feature android:name="android.hardware.touchscreen" android:required="false" />

    {% block extra_keyset_definitions %}
    {% endblock %}

    <!-- Set android:largeHeap to "true" to allow more than the default
         Java heap limit (32Mb on Nexus S, 48Mb on Xoom). -->
    <application android:name="{% block application_name %}org.chromium.chrome.browser.ChromeApplication{% endblock %}"
        android:icon="@drawable/ic_launcher"
        android:roundIcon="@drawable/ic_launcher_round"
        android:label="{% block application_label %}@string/app_name{% endblock %}"
        android:largeHeap="false"
        android:manageSpaceActivity="@string/manage_space_activity"
        android:supportsRtl="true"
        {% if (use_zygote|default(false) == 'true') %}
        android:zygotePreloadName="org.chromium.content.app.ZygotePreload"
        {% endif %}
        {% if backup_key is defined %}
        android:allowBackup="true"
        android:backupAgent="org.chromium.chrome.browser.ChromeBackupAgent"
        android:fullBackupOnly="false"
        android:restoreAnyVersion="true"
        {% else %}
        android:allowBackup="false"
        {% endif %}
        android:networkSecurityConfig="@xml/network_security_config"
        {% block extra_application_attributes %}{% endblock %}>

       <meta-data android:name="android.allow_multiple_resumed_activities" android:value="true" />

        <!-- Samsung MultiWindow Support -->
        <meta-data android:name="com.samsung.android.sdk.multiwindow.enable"
            android:value="true" />

        {% if min_sdk_version|int < 24 %}
        <meta-data android:name="com.samsung.android.sdk.multiwindow.multiinstance.enable"
            android:value="true" />
        <meta-data android:name="com.samsung.android.sdk.multiwindow.multiinstance.launchmode"
            android:value="singleTask" />
        {% endif %}

        <meta-data android:name="com.samsung.android.sdk.multiwindow.penwindow.enable"
            android:value="true"/>

        {% if backup_key is defined %}
        <!-- Backup keys are channel dependent -->
        <meta-data android:name="com.google.android.backup.api_key"
            android:value="{{ backup_key }}" />
        {% endif %}

        {% if channel in ['dev', 'canary', 'default'] %}
        <meta-data android:name="com.sec.android.support.multiwindow" android:value="true" />
        {% endif %}
        <meta-data android:name="android.content.APP_RESTRICTIONS"
            android:resource="@xml/app_restrictions"/>

        {% if include_arcore_manifest_flag == 'true' %}
        <!-- ARCore APK integration -->
        <!-- This tag indicates that this application optionally uses ARCore. -->
        <meta-data android:name="com.google.ar.core" android:value="optional" />
        <!-- This value must match value present in ARCore SDK's .aar -->
        <!-- TODO(https://crbug.com/917406): modify build scripts to
             automatically pull this value in - the problem exists because in
             bundle mode, the ARCore SDK is packaged into AR module and
             the module installation will not automatically bring in DFM's
             manifest entries. -->
        <meta-data android:name="com.google.ar.core.min_apk_version"
            android:value="190310000"/>
        <activity
            android:name="com.google.ar.core.InstallActivity"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:excludeFromRecents="true"
            android:exported="false"
            android:launchMode="singleTop"
            android:theme="@android:style/Theme.Material.Light.Dialog.Alert" />
        {% endif %}

        <!-- Cast support -->
        <meta-data
            android:name=
            "com.google.android.gms.cast.framework.OPTIONS_PROVIDER_CLASS_NAME"
            android:value="org.chromium.chrome.browser.media.router.caf.CastOptionsProvider"/>

        <!-- Note: All activities directly or indirectly derived from ChromeActivity
             must specify android:hardwareAccelerated="false".

             Since this activity (shown in the launcher) and the application
             (shown in Android's Settings/Apps list) share the same label, we
             do not specify one here to allow it to inherit from the app. -->
        <activity android:name="org.chromium.chrome.browser.document.ChromeLauncherActivity"
            android:theme="@style/LauncherTheme"
            android:relinquishTaskIdentity="true"
            android:taskAffinity=""
            android:excludeFromRecents="true"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize|uiMode|density">
            <!-- TODO(mthiesse, b/72214458): This is a duplication of the icon metadata below.
                 Daydream will actually ignore the metadata here, and use the metadata on the
                 activity-alias. However, play store apk validation fails to find the icons on the
                 alias, so we need to include them here to pass validation. -->
            {% if enable_vr == "true" %}
            <meta-data android:name="com.google.android.vr.icon"
                android:resource="@drawable/daydream_icon_foreground" />
            <meta-data android:name="com.google.android.vr.icon_background"
                android:resource="@drawable/daydream_icon_background" />
            {% endif %}
            {{ self.supports_vr() }}
        </activity>
        <activity-alias android:name="com.google.android.apps.chrome.IntentDispatcher"
            android:targetActivity="org.chromium.chrome.browser.document.ChromeLauncherActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.NOTIFICATION_PREFERENCES" />
                {% if enable_vr == "true" %}
                <category android:name="com.google.intent.category.DAYDREAM" />
                {% endif %}
            </intent-filter>
            <!-- Matches the common case of intents with no MIME type.
                 Make sure to keep in sync with the next filter.  -->
            <intent-filter>
                {% block common_view_intent_shared_filter_body %}
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                {% if enable_vr == "true" %}
                <category android:name="com.google.intent.category.DAYDREAM" />
                {% endif %}
                {% if channel in ['stable', 'default'] %}<data android:scheme="googlechrome" />{% endif %}
                <data android:scheme="http" />
                <data android:scheme="https" />
                <data android:scheme="about" />
                <data android:scheme="javascript" />
                {% endblock %}
            </intent-filter>
            <!-- Same filter as above but with MIME types.  Intents that
                 do not specify a MIME type won't match. -->
            <intent-filter>
                {{ self.common_view_intent_shared_filter_body() }}
                <data android:scheme="content" />
                <data android:mimeType="text/html"/>
                <data android:mimeType="text/plain"/>
                <data android:mimeType="application/xhtml+xml"/>
            </intent-filter>
            <!-- MHTML support, used for snapshots -->
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:scheme="file"/>
                <data android:scheme="content"/>
                <data android:mimeType="multipart/related"/>
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:scheme="file"/>
                <data android:scheme="content"/>
                <data android:mimeType="message/rfc822"/>
            </intent-filter>
            <intent-filter>
                {% block mhtml_view_intent_shared_filter_body %}
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                {% if enable_vr == "true" %}
                <category android:name="com.google.intent.category.DAYDREAM" />
                {% endif %}
                <data android:scheme="file"/>
                <data android:scheme="content"/>
                <data android:host="*" />
                <data android:pathPattern="/.*\\.mhtml"/>
                <data android:pathPattern="/.*\\.mht"/>
                {% endblock %}
            </intent-filter>
            <!-- Same filter as above but with mimeType="*/*". Used for
                 handling intent send by ShareIt. -->
            <intent-filter>
                {{ self.mhtml_view_intent_shared_filter_body() }}
                <data android:mimeType="*/*"/>
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.MEDIA_SEARCH" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.speech.action.VOICE_SEARCH_RESULTS" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.nfc.action.NDEF_DISCOVERED" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:scheme="http" />
                <data android:scheme="https" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.SEARCH" />
            </intent-filter>
            <intent-filter>
                <action android:name="com.sec.android.airview.HOVER" />
            </intent-filter>
            <meta-data android:name="android.app.searchable"
                android:resource="@xml/searchable" />
            {% if enable_vr == "true" %}
            <meta-data android:name="com.google.android.vr.icon"
                android:resource="@drawable/daydream_icon_foreground" />
            <meta-data android:name="com.google.android.vr.icon_background"
                android:resource="@drawable/daydream_icon_background" />
            {% endif %}
        </activity-alias>

        <activity android:name="org.chromium.chrome.browser.media.MediaLauncherActivity"
            android:theme="@android:style/Theme.NoDisplay"
            android:excludeFromRecents="true"
            android:exported="true"
            android:enabled="false"><!-- This will be selectively enabled at runtime. -->
            <intent-filter tools:ignore="AppLinkUrlError">
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <!-- TODO(https://crbug.com/800875): Limit these to supported MIME types. -->
                <data android:mimeType="audio/*" />
                <data android:mimeType="image/*" />
                <data android:mimeType="video/*" />
                <data android:scheme="file" />
                <data android:scheme="content" />
            </intent-filter>
        </activity>

        {% if notouch_build == "true" %}
        <activity-alias android:name="com.google.android.apps.chrome.DinoActivity"
            android:targetActivity="org.chromium.chrome.browser.touchless.DinoActivity"
            android:exported="true">
            <intent-filter android:priority="-1">
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity-alias>

        <activity android:name="org.chromium.chrome.browser.touchless.DinoActivity"
          android:theme="@style/Theme.Chromium.Activity"
            android:icon="@mipmap/dino"
            ## Proposed brand name, not to be localized.
            android:label="Dino Run"
            android:exported="false"
            android:persistableMode="persistNever"
            android:launchMode="singleTask"
            android:taskAffinity=""
            android:noHistory="true"
            {{ self.chrome_activity_common() }}>
          </activity>
        {% endif %}

        <activity android:name="org.chromium.chrome.browser.LauncherShortcutActivity"
            android:theme="@android:style/Theme.NoDisplay"
            android:taskAffinity=""
            android:excludeFromRecents="true"
            android:exported="false" />

        <activity android:name="org.chromium.chrome.browser.incognito.IncognitoTabLauncher"
            android:theme="@android:style/Theme.NoDisplay"
            android:taskAffinity=""
            android:enabled="false"
            android:excludeFromRecents="true"
            android:exported="true">
            <intent-filter>
                <action android:name="org.chromium.chrome.browser.incognito.OPEN_PRIVATE_TAB" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

        <!-- Upgrade related -->
        <activity android:name="org.chromium.chrome.browser.upgrade.UpgradeActivity"
            android:excludeFromRecents="true"
            android:theme="@style/Theme.Chromium.Activity"
            android:windowSoftInputMode="adjustResize"
            android:taskAffinity=""
            android:launchMode="singleInstance"
            android:persistableMode="persistNever"
            android:autoRemoveFromRecents="false"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize"
            android:hardwareAccelerated="false">
        </activity>
        <service android:name="org.chromium.chrome.browser.upgrade.UpgradeIntentService"
            android:exported="false"/>
        <receiver android:name="org.chromium.chrome.browser.upgrade.PackageReplacedBroadcastReceiver"
            android:exported="false">
            <intent-filter>
                <action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
            </intent-filter>
        </receiver>

        <!-- Locale related -->
        <receiver android:name="org.chromium.chrome.browser.locale.LocaleChangedBroadcastReceiver"
            android:exported="false">
            <intent-filter>
                <action android:name="android.intent.action.LOCALE_CHANGED" />
            </intent-filter>
        </receiver>

        <!-- Document mode Activities. -->
        <activity android:name="org.chromium.chrome.browser.document.DocumentActivity"
            android:exported="false"
            android:theme="@style/Theme.Chromium.Activity"
            android:taskAffinity=""
            android:persistableMode="persistAcrossReboots"
            android:autoRemoveFromRecents="false"
            {{ self.chrome_activity_common() }}>
            {{ self.extra_web_rendering_activity_definitions() }}
        </activity>
        <activity-alias android:name="com.google.android.apps.chrome.document.DocumentActivity"
            android:targetActivity="org.chromium.chrome.browser.document.DocumentActivity"
            android:exported="false"/>
        <activity android:name="org.chromium.chrome.browser.document.IncognitoDocumentActivity"
            android:icon="@mipmap/incognito_app_icon"
            android:exported="false"
            android:theme="@style/Theme.Chromium.Incognito"
            android:taskAffinity=""
            android:persistableMode="persistNever"
            android:autoRemoveFromRecents="false"
            {{ self.chrome_activity_common() }}>
            {{ self.extra_web_rendering_activity_definitions() }}
        </activity>
        <activity-alias android:name="com.google.android.apps.chrome.document.IncognitoDocumentActivity"
            android:targetActivity="org.chromium.chrome.browser.document.IncognitoDocumentActivity"
            android:exported="false"/>

        <!-- Custom Tabs -->
        <activity android:name="org.chromium.chrome.browser.customtabs.CustomTabActivity"
            android:theme="@style/Theme.Chromium.Activity"
            android:exported="false"
            {{ self.chrome_activity_common() }}
            {{ self.supports_video_persistence() }}
        >
            {{ self.supports_vr() }}
            {{ self.extra_web_rendering_activity_definitions() }}
        </activity>
        <activity android:name="org.chromium.chrome.browser.customtabs.TranslucentCustomTabActivity"
                  android:theme="@style/Theme.Chromium.Activity.FakeTranslucent"
                  android:exported="false"
            {{ self.chrome_activity_common() }}
            {{ self.supports_video_persistence() }}
            >
            {{ self.supports_vr() }}
            {{ self.extra_web_rendering_activity_definitions() }}
        </activity>
        <activity android:name="org.chromium.chrome.browser.customtabs.PaymentHandlerActivity"
            android:theme="@style/Theme.Chromium.Activity.Translucent"
            android:exported="false"
            {{ self.chrome_activity_common() }}
            {{ self.supports_video_persistence() }}
        >
            {{ self.supports_vr() }}
            {{ self.extra_web_rendering_activity_definitions() }}
        </activity>
        <!-- SeparateTaskCustomTabActivity is a wrapper of CustomTabActivity. It provides the
             general feeling of supporting multi tasks, even for versions that did not fully support
             it.
             TODO(arthursonzogni, tedchoc): Enabled this only on Android < 21 after M74.
        -->
        <activity android:name="org.chromium.chrome.browser.customtabs.SeparateTaskCustomTabActivity"
            android:theme="@style/Theme.Chromium.Activity"
            android:exported="false"
            android:taskAffinity=""
            android:persistableMode="persistNever"
            android:autoRemoveFromRecents="false"
            {{ self.chrome_activity_common() }}
            {{ self.supports_video_persistence() }}
        >
            {{ self.supports_vr() }}
            {{ self.extra_web_rendering_activity_definitions() }}
        </activity>
        {% if min_sdk_version|int < 21 %}
          {% for i in range(10) %}
            <activity android:name="org.chromium.chrome.browser.customtabs.SeparateTaskCustomTabActivity{{ i }}"
                android:theme="@style/Theme.Chromium.Activity"
                android:icon="@mipmap/app_single_page_icon"
                android:exported="false"
                android:launchMode="singleTask"
                android:persistableMode="persistNever"
                android:taskAffinity=""
                {{ self.chrome_activity_common() }}
                {{ self.supports_video_persistence() }}
            >
                {{ self.supports_vr() }}
                {{ self.extra_web_rendering_activity_definitions() }}
            </activity>
          {% endfor %}
        {% endif %}

        <activity android:name="org.chromium.chrome.browser.incognito.IncognitoDisclosureActivity"
          android:theme="@style/Theme.Chromium.Activity.Fullscreen.Transparent"
          android:exported="false">
        </activity>

        <!-- ChromeTabbedActivity related -->
        <activity android:name="org.chromium.chrome.browser.ChromeTabbedActivity"
            android:theme="@style/Theme.Chromium.TabbedMode"
            {% set notouch_build = notouch_build|default(0) %}
            {% if notouch_build == "true" %}
            android:exported="false"
            {% else %}
            android:exported="true"
            {% endif %}
            android:launchMode="singleTask"
            {# We can only use blocks once in Jinja, for future substitutions we use
            self.supports_video_persistence(). #}
            {% block supports_video_persistence %}
            android:supportsPictureInPicture="true"
            android:resizeableActivity="true"
            {% endblock %}
            {% block chrome_activity_common %}
            android:windowSoftInputMode="adjustResize"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize|uiMode|density"
            android:hardwareAccelerated="false"
            {% endblock %}
        >
            <!--
              Daydream api categorizes an activity to three categories: Cardboard only, hybrid
              or Daydream. It does so by testing if intents can be resolved by the activity
              that requests it.
            -->
            {% block supports_vr %}
            <intent-filter>
                <action android:name="org.chromium.chrome.browser.dummy.action" />
                <category android:name="com.google.intent.category.DAYDREAM" />
                <category android:name="com.google.intent.category.CARDBOARD" />
            </intent-filter>
            {% endblock %}

            {% block extra_web_rendering_activity_definitions %}
            {% endblock %}
        </activity>
        <!-- TODO(crbug.com/780674): retarget .Main back to CTA for non-modern APK -->
        <activity-alias android:name="com.google.android.apps.chrome.Main"
            {% if notouch_build == "true" %}
            android:targetActivity="org.chromium.chrome.browser.touchless.NoTouchActivity"
            {% elif min_sdk_version|int < 21 %}
            android:targetActivity="org.chromium.chrome.browser.document.ChromeLauncherActivity"
            {% else %}
            android:targetActivity="org.chromium.chrome.browser.ChromeTabbedActivity"
            {% endif %}
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.LAUNCHER" />
                <category android:name="android.intent.category.BROWSABLE" />
                <category android:name="android.intent.category.APP_BROWSER" />
                {% if channel in ['dev', 'canary', 'default'] %}
                <category android:name="android.intent.category.MULTIWINDOW_LAUNCHER" />
                {% endif %}
            </intent-filter>
            <meta-data android:name="android.app.shortcuts"
                android:resource="@xml/launchershortcuts" />
            {{ self.supports_vr() }}
            {% if min_sdk_version|int >= 21 %}
            {{ self.extra_web_rendering_activity_definitions() }}
            {% endif %}
        </activity-alias>
        <activity android:name="org.chromium.chrome.browser.ChromeTabbedActivity2"
            android:theme="@style/Theme.Chromium.TabbedMode"
            android:exported="false"
            android:taskAffinity="{{ manifest_package }}.ChromeTabbedActivity2"
            android:launchMode="singleTask"
            {{ self.chrome_activity_common() }}
            {{ self.supports_video_persistence() }}
        >
            {{ self.supports_vr() }}
            {{ self.extra_web_rendering_activity_definitions() }}
        </activity>
        <activity android:name="org.chromium.chrome.browser.multiwindow.MultiInstanceChromeTabbedActivity"
            android:theme="@style/Theme.Chromium.TabbedMode"
            android:exported="false"
            {{ self.chrome_activity_common() }}>
            {{ self.extra_web_rendering_activity_definitions() }}
        </activity>
        {% if notouch_build == "true" %}
        <activity android:name="org.chromium.chrome.browser.touchless.NoTouchActivity"
            android:theme="@style/Theme.Chromium.Activity"
            android:exported="false"
            android:launchMode="singleTask"
            {{ self.chrome_activity_common() }}
            {{ self.supports_video_persistence() }} >
            {{ self.extra_web_rendering_activity_definitions() }}
        </activity>
        {% endif %}

        <activity android:name="org.chromium.chrome.browser.sync.ui.PassphraseActivity"
            android:theme="@style/Theme.Chromium.Activity"
            android:autoRemoveFromRecents="true">
        </activity>
        <activity android:name="org.chromium.chrome.browser.firstrun.LightweightFirstRunActivity"
            android:theme="@style/Theme.Chromium.AlertDialog.NoActionBar"
            {{ self.first_run_activity_common() }}>
        </activity>
        <activity android:name="org.chromium.chrome.browser.firstrun.FirstRunActivity"
            android:theme="@style/Theme.Chromium.DialogWhenLarge"
            {% block first_run_activity_common %}
            android:label="@string/fre_activity_label"
            android:launchMode="singleInstance"
            android:excludeFromRecents="true"
            android:autoRemoveFromRecents="true"
            android:windowSoftInputMode="stateHidden|adjustPan"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize"
            {% endblock %}>
        </activity>
        <activity android:name="org.chromium.chrome.browser.firstrun.TabbedModeFirstRunActivity"
            android:theme="@style/Theme.Chromium.TabbedMode"
            {{ self.first_run_activity_common() }}>
        </activity>
        {% if enable_vr == "true" %}
        <activity android:name="org.chromium.chrome.browser.vr.VrFirstRunActivity"
            android:exported="false"
            android:launchMode="singleInstance"
            android:theme="@style/VrActivityTheme"
            android:excludeFromRecents="true"
            android:enableVrMode="@string/gvr_vr_mode_component"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize|uiMode">
            {{ self.supports_vr() }}
        </activity>
        {% endif %}
        <activity android:name="org.chromium.chrome.browser.signin.AccountSigninActivity"
            android:theme="@style/Theme.Chromium.DialogWhenLarge"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize">
        </activity>
        <activity android:name="org.chromium.chrome.browser.signin.SigninActivity"
            android:theme="@style/Theme.Chromium.DialogWhenLarge"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize"
            android:exported="false">
        </activity>
        {% if notouch_build == "true" %}
        <activity-alias android:name="org.chromium.chrome.browser.preferences.Preferences"
            android:targetActivity="org.chromium.chrome.browser.touchless.TouchlessPreferences">
        </activity-alias>
        <activity android:name="org.chromium.chrome.browser.touchless.TouchlessPreferences"
            android:theme="@style/Theme.Chromium.Preferences.Touchless"
        {% else %}
        <activity android:name="org.chromium.chrome.browser.preferences.Preferences"
            android:theme="@style/Theme.Chromium.Preferences"
        {% endif %}
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize"
            android:label="@string/preferences"
            android:exported="false">
        </activity>
        <activity android:name="org.chromium.chrome.browser.preferences.website.ManageSpaceActivity"
            android:theme="@style/Theme.Chromium.Preferences.ManageSpace"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize"
            android:label="@string/storage_management_activity_label"
            android:exported="false">
        </activity>
        <activity android:name="org.chromium.chrome.browser.bookmarks.BookmarkActivity"
            android:theme="@style/Theme.Chromium.Activity.Fullscreen"
            android:exported="false"
            android:windowSoftInputMode="stateAlwaysHidden|adjustResize"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize">
        </activity>
        <activity android:name="org.chromium.chrome.browser.bookmarks.BookmarkAddActivity"
            android:theme="@style/Theme.Chromium.DialogWhenLarge"
            android:windowSoftInputMode="stateHidden"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize">
            <intent-filter>
                <action android:name="{{ manifest_package }}.ADDBOOKMARK" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
        <activity android:name="org.chromium.chrome.browser.bookmarks.BookmarkEditActivity"
            android:theme="@style/Theme.Chromium.DialogWhenLarge"
            android:windowSoftInputMode="stateHidden"
            android:exported="false"
            android:label="@string/edit_bookmark"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize">
        </activity>
        <activity android:name="org.chromium.chrome.browser.bookmarks.BookmarkAddEditFolderActivity"
            android:theme="@style/Theme.Chromium.DialogWhenLarge"
            android:exported="false"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize">
        </activity>
        <activity android:name="org.chromium.chrome.browser.bookmarks.BookmarkFolderSelectActivity"
            android:theme="@style/Theme.Chromium.DialogWhenLarge"
            android:windowSoftInputMode="stateAlwaysHidden"
            android:label="@string/bookmark_choose_folder"
            android:exported="false"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize">
        </activity>

        <!-- Activities for downloads. -->
        <activity android:name="org.chromium.chrome.browser.download.DownloadActivity"
            android:theme="@style/Theme.Chromium.Activity.Fullscreen"
            android:windowSoftInputMode="stateAlwaysHidden|adjustResize"
            android:exported="false"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize">
        </activity>

        <!-- Activities for history. -->
        <activity android:name="org.chromium.chrome.browser.history.HistoryActivity"
            android:theme="@style/Theme.Chromium.Activity.Fullscreen"
            android:windowSoftInputMode="stateAlwaysHidden|adjustResize"
            android:exported="false"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize">
        </activity>

        <!--
            Activities for webapps.
            TODO(dfalcantara): Remove the aliases for the WebappActivities once we're pretty sure
                               that users don't have any instances of the original Activity still
                               running.
        -->
        <activity android:name="org.chromium.chrome.browser.webapps.WebappLauncherActivity"
            android:theme="@android:style/Theme.NoDisplay"
            android:taskAffinity=""
            android:excludeFromRecents="true">
            <intent-filter>
                <action android:name="com.google.android.apps.chrome.webapps.WebappManager.ACTION_START_WEBAPP" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
            <intent-filter>
                <action android:name="org.webapk.ACTION_START_WEBAPK" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
        <activity-alias android:name="com.google.android.apps.chrome.webapps.WebappManager"
            android:targetActivity="org.chromium.chrome.browser.webapps.WebappLauncherActivity">
        </activity-alias>
        <activity android:name="org.chromium.chrome.browser.webapps.WebappActivity"
            android:theme="@style/Theme.Chromium.Webapp"
            android:label="@string/webapp_activity_title"
            android:launchMode="singleTop"
            android:documentLaunchMode="intoExisting"
            android:exported="false"
            android:persistableMode="persistNever"
            {{ self.supports_video_persistence() }}
            {{ self.chrome_activity_common() }}
        >
            {{ self.supports_vr() }}
            {{ self.extra_web_rendering_activity_definitions() }}
        </activity>
        <activity-alias android:name="com.google.android.apps.chrome.webapps.WebappActivity"
            android:targetActivity="org.chromium.chrome.browser.webapps.WebappActivity"
            android:label="@string/webapp_activity_title"
            {{ self.supports_video_persistence() }} >
        </activity-alias>
        {% for i in range(10) %}
        <activity android:name="org.chromium.chrome.browser.webapps.WebappActivity{{ i }}"
            android:theme="@style/Theme.Chromium.Webapp"
            android:icon="@mipmap/app_shortcut_icon"
            android:label="@string/webapp_activity_title"
            android:launchMode="singleTask"
            android:exported="false"
            android:persistableMode="persistNever"
            android:taskAffinity="{{ manifest_package }}.webapps.WebappActivity{{ i }}"
            {{ self.supports_video_persistence() }}
            {{ self.chrome_activity_common() }}
        >
           {{ self.supports_vr() }}
           {{ self.extra_web_rendering_activity_definitions() }}
        </activity>
        <activity-alias android:name="com.google.android.apps.chrome.webapps.WebappActivity{{ i }}"
            android:targetActivity="org.chromium.chrome.browser.webapps.WebappActivity{{ i }}"
            android:icon="@mipmap/app_shortcut_icon"
            android:label="@string/webapp_activity_title">
        </activity-alias>
        {% endfor %}
        <!-- Activities for WebAPKs. -->
        <activity android:name="org.chromium.chrome.browser.webapps.SameTaskWebApkActivity"
            android:theme="@style/Theme.Chromium.Webapp"
            android:label="@string/webapp_activity_title"
            android:exported="false"
            android:persistableMode="persistNever"
            {{ self.supports_video_persistence() }}
            {{ self.chrome_activity_common() }}
        >
            {{ self.supports_vr() }}
            {{ self.extra_web_rendering_activity_definitions() }}
        </activity>
        <activity android:name="org.chromium.chrome.browser.webapps.WebApkActivity"
            android:theme="@style/Theme.Chromium.Webapp"
            android:label="@string/webapp_activity_title"
            android:launchMode="singleTop"
            android:documentLaunchMode="intoExisting"
            android:exported="false"
            android:persistableMode="persistNever"
            {{ self.supports_video_persistence() }}
            {{ self.chrome_activity_common() }}
        >
            {{ self.supports_vr() }}
            {{ self.extra_web_rendering_activity_definitions() }}
        </activity>
        {% for i in range(10) %}
        <activity android:name="org.chromium.chrome.browser.webapps.WebApkActivity{{ i }}"
            android:theme="@style/Theme.Chromium.Webapp"
            android:icon="@mipmap/app_shortcut_icon"
            android:label="@string/webapp_activity_title"
            android:launchMode="singleTask"
            android:exported="false"
            android:persistableMode="persistNever"
            android:taskAffinity="{{ manifest_package }}.webapps.WebApkActivity{{ i }}"
            {{ self.supports_video_persistence() }}
            {{ self.chrome_activity_common() }}
        >
            {{ self.supports_vr() }}
            {{ self.extra_web_rendering_activity_definitions() }}
        </activity>
        {% endfor %}

        <activity android:name="org.chromium.chrome.browser.webapps.ActivateWebApkActivity"
            android:theme="@android:style/Theme.NoDisplay"
            android:exported="true">
            <intent-filter>
                <action android:name="org.chromium.chrome.browser.webapps.ActivateWebApkActivity.ACTIVATE" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

        <activity android:name="org.chromium.chrome.browser.media.router.caf.remoting.CafExpandedControllerActivity"
            android:theme="@style/Theme.Chromium.Activity"
            android:label="Chrome.CafExpandedControllerActivity"
            android:hardwareAccelerated="true"
            android:launchMode="singleTask"
            android:noHistory="true"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize"
            android:excludeFromRecents="true">
        </activity>

        <!-- This activity is used to restart the main Chrome process.  Should never be exported. -->
        <activity android:name="org.chromium.chrome.browser.BrowserRestartActivity"
            android:launchMode="singleInstance"
            android:exported="false"
            android:theme="@android:style/Theme.Translucent.NoTitleBar"
            android:excludeFromRecents="true"
            android:process=":browser_restart_process">
        </activity>

        <!-- This activity is to expose the print option via the generic Android share action. -->
        <activity
            android:name="org.chromium.chrome.browser.printing.PrintShareActivity"
            android:icon="@drawable/print"
            android:label="@string/print_share_activity_title"
            android:enabled="false"
            android:excludeFromRecents="true"
            android:exported="true"
            android:noHistory="true"
            android:theme="@android:style/Theme.NoDisplay"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize" >
            <intent-filter>
                <action android:name="android.intent.action.SEND" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:mimeType="text/plain" />
            </intent-filter>
          </activity>

         <activity
            android:name="org.chromium.chrome.browser.send_tab_to_self.SendTabToSelfShareActivity"
            android:icon="@drawable/ic_launcher"
            android:label="@string/send_tab_to_self_share_activity_title"
            android:enabled="false"
            android:excludeFromRecents="true"
            android:exported="true"
            android:noHistory="true"
            android:theme="@android:style/Theme.NoDisplay"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize" >
            <intent-filter>
                <action android:name="android.intent.action.SEND" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:mimeType="text/plain" />
            </intent-filter>
          </activity>

        <!-- Activity for dispatching intents to Instant Apps. -->
        <activity
            android:name="org.chromium.chrome.browser.instantapps.AuthenticatedProxyActivity"
            android:exported="false"
            android:theme="@android:style/Theme.NoDisplay"
            android:noHistory="true"
            android:excludeFromRecents="true">
        </activity>

        <activity
            android:name="org.chromium.chrome.browser.vr.VrCancelAnimationActivity"
            android:exported="false"
            android:theme="@android:style/Theme.NoDisplay"
            android:noHistory="true"
            android:excludeFromRecents="true"
            {% if enable_vr == "true" %}
            android:enableVrMode="@string/gvr_vr_mode_component"
            {% endif %}
            >
            {{ self.supports_vr() }}
        </activity>

        <!-- Activities for Browser Actions -->
        <activity android:name="org.chromium.chrome.browser.browseractions.BrowserActionActivity"
            android:theme="@style/Theme.Chromium.Activity.Fullscreen.Transparent"
            android:exported="true"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize">
            <intent-filter>
                <action android:name="androidx.browser.browseractions.browser_action_open" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:scheme="http" />
                <data android:scheme="https" />
            </intent-filter>
        </activity>

        <service android:name="org.chromium.chrome.browser.browseractions.BrowserActionsService"
            android:exported="false">
        </service>

        <!-- Components for Trusted Web Activities -->
        <receiver android:name="org.chromium.chrome.browser.browserservices.ClientAppBroadcastReceiver"
            android:exported="true">
            <intent-filter>
                <data android:scheme="package" />
                <action android:name="android.intent.action.PACKAGE_FULLY_REMOVED" />
                <action android:name="android.intent.action.PACKAGE_DATA_CLEARED" />
            </intent-filter>
            {% if channel in ['default'] %}
            <intent-filter>
                <action android:name="org.chromium.chrome.browser.browserservices.ClientAppBroadcastReceiver.DEBUG" />
            </intent-filter>
            {% endif %}
        </receiver>

        <activity android:name="org.chromium.chrome.browser.browserservices.ClearDataDialogActivity"
            android:theme="@style/Theme.Chromium.ClearDataDialogActivity"
            android:exported="false"/>

        <activity
            android:name="org.chromium.chrome.browser.browserservices.ManageTrustedWebActivityDataActivity"
            android:theme="@style/Theme.Chromium.Activity.Fullscreen.Transparent"
            android:exported="true">
            <intent-filter>
                <action android:name="android.support.customtabs.action.ACTION_MANAGE_TRUSTED_WEB_ACTIVITY_DATA" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:scheme="https"/>
            </intent-filter>
        </activity>

        <!-- Service for decoding images in a sandboxed process. -->
        <service
            android:description="@string/decoder_description"
            android:name="org.chromium.chrome.browser.photo_picker.DecoderService"
            android:exported="false"
            android:isolatedProcess="true"
            android:process=":decoder_service" />

        <!-- Providers for chrome data. -->
        <provider android:name="org.chromium.chrome.browser.provider.ChromeBrowserProvider"
            android:authorities="{{ manifest_package }}.ChromeBrowserProvider;{{ manifest_package }}.browser;{{ manifest_package }}"
            android:exported="true">
            <path-permission android:path="/bookmarks/search_suggest_query"
                    android:readPermission="android.permission.GLOBAL_SEARCH" />
        </provider>

        <!-- Provider for FileProvider. -->
        <provider android:name="org.chromium.chrome.browser.util.ChromeFileProvider"
            android:authorities="{{ manifest_package }}.FileProvider"
            android:exported="false"
            android:grantUriPermissions="true">
            <meta-data android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/file_paths" />
        </provider>

        <!-- Sync adapter for browser invalidation. -->
        <service android:name="org.chromium.chrome.browser.invalidation.ChromeBrowserSyncAdapterService"
            android:exported="false">
            <intent-filter>
                <action android:name="android.content.SyncAdapter" />
            </intent-filter>
            <meta-data android:name="android.content.SyncAdapter"
                       android:resource="@xml/syncadapter" />
        </service>

        <!-- Broadcast receiver that will be notified of account changes -->
        <receiver android:name="org.chromium.chrome.browser.services.AccountsChangedReceiver">
            <intent-filter>
                <action android:name="android.accounts.LOGIN_ACCOUNTS_CHANGED" />
            </intent-filter>
        </receiver>

        <!-- Download foreground service -->
        <service android:name="org.chromium.chrome.browser.download.DownloadForegroundService"
            android:exported="false">
        </service>

        <!-- Download broadcast manager service -->
        <service android:name="org.chromium.chrome.browser.download.DownloadBroadcastManager"
            android:exported="false">
        </service>

        <!-- Bookmarks widget -->
        <receiver android:name="com.google.android.apps.chrome.appwidget.bookmarks.BookmarkThumbnailWidgetProvider"
            android:label="@string/bookmark_widget_title">
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
                <action android:name=".BOOKMARK_APPWIDGET_UPDATE" />
            </intent-filter>
            <meta-data
                android:name="android.appwidget.provider"
                android:resource="@xml/bookmark_widget_info" />
        </receiver>
        <service android:name="org.chromium.chrome.browser.bookmarkswidget.BookmarkWidgetService"
            android:permission="android.permission.BIND_REMOTEVIEWS"
            android:exported="false" />
        <receiver android:name="org.chromium.chrome.browser.bookmarkswidget.BookmarkWidgetProxy"
            android:exported="false" />

        <!-- Search widget -->
        <receiver
                android:name="org.chromium.chrome.browser.searchwidget.SearchWidgetProvider"
                android:label="@string/search_widget_title">
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
            </intent-filter>
            <intent-filter>
                <action android:name="org.chromium.chrome.browser.searchwidget.START_TEXT_QUERY" />
            </intent-filter>
            <intent-filter>
                <action android:name="org.chromium.chrome.browser.searchwidget.START_VOICE_QUERY" />
            </intent-filter>
            <intent-filter>
                <action android:name="org.chromium.chrome.browser.searchwidget.UPDATE_ALL_WIDGETS" />
            </intent-filter>
            <meta-data
                    android:name="android.appwidget.provider"
                    android:resource="@xml/search_widget_info" />
        </receiver>

        <!-- Search Activity -->
        <activity android:name="org.chromium.chrome.browser.searchwidget.SearchActivity"
            android:theme="@style/Theme.Chromium.SearchActivity"
            android:label="Search"
            android:exported="false"
            android:launchMode="singleTask"
            android:taskAffinity=""
            android:clearTaskOnLaunch="true"
            android:excludeFromRecents="true"
            android:windowSoftInputMode="adjustResize"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize"
            android:hardwareAccelerated="false" />

        <!-- Receiver for GCM messages. -->
        <receiver android:name="com.google.android.gms.gcm.GcmReceiver"
            android:exported="true"
            android:permission="com.google.android.c2dm.permission.SEND">
            <intent-filter>
                <action android:name="com.google.android.c2dm.intent.RECEIVE" />
                <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
               <category android:name="{{ manifest_package }}"/>
            </intent-filter>
        </receiver>
        <!-- GcmTaskService for registration for Invalidations. -->
        <service android:name="com.google.ipc.invalidation.ticl.android2.channel.GcmRegistrationTaskService"
            android:exported="true"
            android:permission="com.google.android.gms.permission.BIND_NETWORK_TASK_SERVICE" >
            <intent-filter>
                <action android:name="com.google.android.gms.gcm.ACTION_TASK_READY"/>
            </intent-filter>
        </service>
        <!-- InstanceIDListenerService for token refresh events from GCM. -->
        <service android:name="com.google.ipc.invalidation.ticl.android2.channel.AndroidInstanceIDListenerService"
            android:exported="false">
            <intent-filter>
                <action android:name="com.google.android.gms.iid.InstanceID"/>
            </intent-filter>
        </service>
        <!-- GcmListenerService for messages from GCM. -->
        <service android:name="org.chromium.chrome.browser.services.gcm.ChromeGcmListenerService"
            android:exported="false" >
            <intent-filter>
              <action android:name="com.google.android.c2dm.intent.RECEIVE" />
            </intent-filter>
        </service>
        <meta-data android:name="ipc.invalidation.ticl.gcm_upstream_service_class"
            android:value="org.chromium.chrome.browser.services.gcm.InvalidationGcmUpstreamSender" />
        <service android:name="org.chromium.chrome.browser.services.gcm.InvalidationGcmUpstreamSender"
            android:exported="false"/>

        <!-- Notification service for sync. -->
        <meta-data android:name="ipc.invalidation.ticl.listener_service_class"
            android:value="org.chromium.chrome.browser.invalidation.ChromeInvalidationClientService"/>
        <service android:name="org.chromium.chrome.browser.invalidation.ChromeInvalidationClientService"
            android:exported="false">
            <intent-filter>
              <action android:name="com.google.ipc.invalidation.AUTH_TOKEN_REQUEST"/>
            </intent-filter>
        </service>
        <service android:name="com.google.ipc.invalidation.ticl.android2.TiclService"
            android:exported="false"/>
        <service android:name="com.google.ipc.invalidation.ticl.android2.channel.AndroidMessageSenderService"
            android:exported="false"/>
        <receiver android:name="com.google.ipc.invalidation.ticl.android2.AndroidInternalScheduler$AlarmReceiver"
            android:exported="false"/>
        <receiver android:name="com.google.ipc.invalidation.external.client.contrib.AndroidListener$AlarmReceiver"
            android:exported="false"/>

        <!-- Android Notification service listener -->
        <service android:name="org.chromium.chrome.browser.notifications.NotificationService"
            android:exported="false"/>
        <receiver android:name="org.chromium.chrome.browser.notifications.NotificationService$Receiver"
            android:exported="false">
            <intent-filter>
                <action android:name="org.chromium.chrome.browser.notifications.CLICK_NOTIFICATION" />
                <action android:name="org.chromium.chrome.browser.notifications.CLOSE_NOTIFICATION" />
            </intent-filter>
        </receiver>

        <!-- Android Notification job service -->
        <service android:name="org.chromium.chrome.browser.notifications.NotificationJobService"
            android:exported="false"
            android:permission="android.permission.BIND_JOB_SERVICE"/>

        <!-- Background Task Scheduler job service -->
        <service android:name="org.chromium.components.background_task_scheduler.BackgroundTaskJobService"
            android:exported="false"
            android:permission="android.permission.BIND_JOB_SERVICE"/>

        <!-- Background Task Scheduler GCM task service -->
        <service android:name="org.chromium.components.background_task_scheduler.BackgroundTaskGcmTaskService"
            android:permission="com.google.android.gms.permission.BIND_NETWORK_TASK_SERVICE"
            android:exported="true">
            <intent-filter>
                <action android:name="com.google.android.gms.gcm.ACTION_TASK_READY" />
            </intent-filter>
        </service>

        <!-- GcmTaskService implementation to wake Chrome on scheduled events -->
        <service android:name="org.chromium.chrome.browser.ChromeBackgroundService"
            android:permission="com.google.android.gms.permission.BIND_NETWORK_TASK_SERVICE"
            android:exported="true">
            <intent-filter>
                <action android:name="com.google.android.gms.gcm.ACTION_TASK_READY" />
            </intent-filter>
        </service>

        <service android:name="org.chromium.chrome.browser.prerender.ChromePrerenderService"
            android:exported="true"
            tools:ignore="ExportedService" />
        <service android:name="org.chromium.chrome.browser.customtabs.CustomTabsConnectionService"
            android:exported="true"
            tools:ignore="ExportedService">
            <intent-filter>
              <action android:name="android.support.customtabs.action.CustomTabsService" />
              <category android:name="androidx.browser.trusted.category.TrustedWebActivities"/>
              <category android:name="androidx.browser.trusted.category.TrustedWebActivitySplashScreensV1"/>
            </intent-filter>
        </service>
        <service android:name="android.support.customtabs.PostMessageService" />

        <!-- Crash reporting services. -->
        <service android:name="org.chromium.chrome.browser.crash.ChromeMinidumpUploadJobService"
                 android:permission="android.permission.BIND_JOB_SERVICE"
                 android:exported="false"/>
        <service android:name="org.chromium.chrome.browser.crash.MinidumpUploadService"
            android:exported="false"/>

        <service android:name="org.chromium.chrome.browser.omaha.OmahaClient"
            android:exported="false"/>
        <service android:name="org.chromium.chrome.browser.incognito.IncognitoNotificationService"
            android:exported="false"/>

        <!-- The following service entries exist in order to allow us to
             start more than one sandboxed process. -->

        <!-- NOTE: If you change the value of "android:process" for 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.content.app.SandboxedProcessService{{ i }}"
            android:process=":sandboxed_process{{ i }}"
            android:permission="{{ manifest_package }}.permission.CHILD_SERVICE"
            android:isolatedProcess="true"
            android:exported="{{sandboxed_service_exported|default(false)}}"
            {% if (use_zygote|default(false) == 'true') %}
            android:useAppZygote="true"
            {% endif %}
            {% if (sandboxed_service_exported|default(false)) == 'true' %}
            android:externalService="true"
            tools:ignore="ExportedService"
            android:visibleToInstantApps="true"
            {% endif %} />
        {% 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) %}
        {% set privileged_process_name = ':privileged_process%d' % i %}
        <!-- TODO(tedchoc): Omit this for release builds as MultiDex is debug only. -->
        <meta-data android:name="{{ manifest_package }}{{ privileged_process_name }}.ignore_multidex"
android:value="true" />
        <service android:name="org.chromium.content.app.PrivilegedProcessService{{ i }}"
            android:process="{{ privileged_process_name }}"
            android:permission="{{ manifest_package }}.permission.CHILD_SERVICE"
            android:isolatedProcess="false"
            android:exported="false" />
        {% endfor %}

        <receiver android:name="org.chromium.chrome.browser.notifications.NotificationIntentInterceptor$Receiver"
            android:exported="false"/>

        <receiver android:name="org.chromium.chrome.browser.send_tab_to_self.NotificationManager$TapReceiver"
            android:exported="false"/>
        <receiver android:name="org.chromium.chrome.browser.send_tab_to_self.NotificationManager$DeleteReceiver"
            android:exported="false"/>
        <receiver android:name="org.chromium.chrome.browser.send_tab_to_self.NotificationManager$TimeoutReceiver"
            android:exported="false"/>

        <receiver android:name="org.chromium.chrome.browser.offlinepages.prefetch.PrefetchedPagesNotifier$ClickReceiver"
            android:exported="false"/>
        <receiver android:name="org.chromium.chrome.browser.offlinepages.prefetch.PrefetchedPagesNotifier$SettingsReceiver"
            android:exported="false"/>

        <receiver android:name="org.chromium.chrome.browser.offlinepages.AutoFetchNotifier$CompleteNotificationReceiver"
            android:exported="false"/>
        <receiver android:name="org.chromium.chrome.browser.offlinepages.AutoFetchNotifier$InProgressCancelReceiver"
            android:exported="false"/>

        <service android:name="org.chromium.chrome.browser.media.MediaCaptureNotificationService"
            android:exported="false"/>
        <service android:name="org.chromium.chrome.browser.media.ui.MediaNotificationManager$PlaybackListenerService"
            android:exported="false">
            <intent-filter>
                <action android:name="android.intent.action.MEDIA_BUTTON" />
            </intent-filter>
        </service>
        <service android:name="org.chromium.chrome.browser.media.ui.MediaNotificationManager$PresentationListenerService"
            android:exported="false">
            <intent-filter>
                <action android:name="android.intent.action.MEDIA_BUTTON" />
            </intent-filter>
        </service>
        <service android:name="org.chromium.chrome.browser.media.ui.MediaNotificationManager$CastListenerService"
            android:exported="false">
            <intent-filter>
                <action android:name="android.intent.action.MEDIA_BUTTON" />
            </intent-filter>
        </service>


        <receiver android:name="org.chromium.chrome.browser.media.ui.MediaNotificationManager$PlaybackMediaButtonReceiver">
            <intent-filter>
                <action android:name="android.intent.action.MEDIA_BUTTON" />
            </intent-filter>
        </receiver>
        <receiver android:name="org.chromium.chrome.browser.media.ui.MediaNotificationManager$PresentationMediaButtonReceiver">
            <intent-filter>
                <action android:name="android.intent.action.MEDIA_BUTTON" />
            </intent-filter>
        </receiver>
        <receiver android:name="org.chromium.chrome.browser.media.ui.MediaNotificationManager$CastMediaButtonReceiver">
            <intent-filter>
                <action android:name="android.intent.action.MEDIA_BUTTON" />
            </intent-filter>
        </receiver>


        <service android:name="org.chromium.chrome.browser.tracing.TracingNotificationService"
            android:exported="false"/>

        <receiver android:name="org.chromium.chrome.browser.omaha.UpdateNotificationController$UpdateNotificationReceiver"
            android:exported="false"/>

        <meta-data android:name="org.chromium.content.browser.SMART_CLIP_PROVIDER"
            android:value="org.chromium.content_public.browser.SmartClipProvider"/>

        {% block extra_application_definitions %}

        <!-- Media route controllers to use for remote playback (cast).
             This is here, rather than in code, since it varies between upstream and downstream,
             yet we need this list of classes in the notification service, which belongs upstream
             and doesn't run the downstream startup code. The Cast code will, for each media element,
             choose the first MediaRouteController that can play it, so the order of the list can be important.
             The most specific MediaRouteControllers should be listed first, followed by more generic ones.
             The downstream manifest replaces this block, and hence replaces the list of media route
             controllers with its own list. -->
        <meta-data android:name="org.chromium.content.browser.REMOTE_MEDIA_PLAYERS"
            android:value="org.chromium.chrome.browser.media.remote.DefaultMediaRouteController"/>

        {% endblock %}
        {% block extra_application_definitions_for_test %}
        {% endblock %}
    </application>
    {% block extra_root_definitions %}
    {% endblock %}
</manifest>
