Index: chrome/android/java_staging/AndroidManifest.xml |
diff --git a/chrome/android/java_staging/AndroidManifest.xml b/chrome/android/java_staging/AndroidManifest.xml |
new file mode 100644 |
index 0000000000000000000000000000000000000000..aad194c51e163fc264f76c50dbd5c9c97e524784 |
--- /dev/null |
+++ b/chrome/android/java_staging/AndroidManifest.xml |
@@ -0,0 +1,577 @@ |
+<?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="22" /> |
+ <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 android:name="android.permission.ACCESS_NETWORK_STATE" /> |
+ <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> |
+ <uses-permission android:name="android.permission.CAMERA" /> |
+ <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"/> |
+ <uses-permission android:name="android.permission.NFC"/> |
+ <uses-permission android:name="android.permission.READ_SYNC_SETTINGS"/> |
+ <uses-permission android:name="android.permission.READ_SYNC_STATS"/> |
+ <uses-permission android:name="android.permission.RECORD_AUDIO"/> |
+ <uses-permission android:name="android.permission.USE_CREDENTIALS"/> |
+ <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"/> |
+ |
+ <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"/> |
+ |
+ {% 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" /> |
+ |
+ <!-- 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.ChromeMobileApplication{% endblock %}" |
+ android:icon="@mipmap/app_icon" |
+ android:label="@string/app_name" |
+ android:largeHeap="false" |
+ android:allowBackup="false" |
+ android:supportsRtl="true"> |
+ |
+ <!-- Samsung MultiWindow Support --> |
+ <meta-data android:name="com.samsung.android.sdk.multiwindow.enable" |
+ android:value="true" /> |
+ <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" /> |
+ <meta-data android:name="com.samsung.android.sdk.multiwindow.penwindow.enable" |
+ android:value="true"/> |
+ |
+ {% if channel in ['dev', 'canary', 'default'] %} |
+ <meta-data android:name="com.sec.android.support.multiwindow" android:value="true" /> |
+ {% endif %} |
+ {% if configuration_policy == '1' %} |
+ <meta-data android:name="android.content.APP_RESTRICTIONS" |
+ android:resource="@xml/app_restrictions"/> |
+ {% endif %} |
+ |
+ <!-- Note: Set android:hardwareAccelerated to "false" in the ".Main" |
+ activity below to go into software, browser tiling mode. |
+ |
+ 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="@android:style/Theme.Translucent.NoTitleBar"> |
+ </activity> |
+ <activity-alias android:name="com.google.android.apps.chrome.Main" |
+ 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.DEFAULT" /> |
+ <category android:name="android.intent.category.LAUNCHER" /> |
+ <category android:name="android.intent.category.BROWSABLE" /> |
+ <category android:name="android.intent.category.APP_BROWSER" /> |
+ <category android:name="android.intent.category.NOTIFICATION_PREFERENCES" /> |
+ {% if channel in ['dev', 'canary', 'default'] %} |
+ <category android:name="android.intent.category.MULTIWINDOW_LAUNCHER" /> |
+ {% 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> |
+ <action android:name="android.intent.action.VIEW" /> |
+ <category android:name="android.intent.category.DEFAULT" /> |
+ <category android:name="android.intent.category.BROWSABLE" /> |
+ {% 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" /> |
+ </intent-filter> |
+ <!-- Same filter as above but with MIME types. Intents that |
+ do not specify a MIME type won't match. --> |
+ <intent-filter> |
+ <action android:name="android.intent.action.VIEW" /> |
+ <category android:name="android.intent.category.DEFAULT" /> |
+ <category android:name="android.intent.category.BROWSABLE" /> |
+ {% 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="content" /> |
+ <data android:scheme="javascript" /> |
+ <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" android:mimeType="multipart/related"/> |
+ </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" /> |
+ </activity-alias> |
+ <activity android:name="org.chromium.chrome.browser.document.DocumentActivity" |
+ android:exported="false" |
+ android:theme="@style/MainTheme" |
+ android:windowSoftInputMode="adjustResize" |
+ android:taskAffinity="" |
+ android:persistableMode="persistAcrossReboots" |
+ android:autoRemoveFromRecents="false" |
+ android:configChanges="orientation|keyboardHidden|keyboard|screenSize" |
+ android:hardwareAccelerated="true"> |
+ </activity> |
+ <activity android:name="org.chromium.chrome.browser.document.IncognitoDocumentActivity" |
+ android:icon="@mipmap/incognito_app_icon" |
+ android:exported="false" |
+ android:theme="@style/IncognitoTheme" |
+ android:windowSoftInputMode="adjustResize" |
+ android:taskAffinity="" |
+ android:persistableMode="persistNever" |
+ android:autoRemoveFromRecents="false" |
+ android:configChanges="orientation|keyboardHidden|keyboard|screenSize" |
+ android:hardwareAccelerated="true"> |
+ </activity> |
+ <activity android:name="org.chromium.chrome.browser.hosted.HostedActivity" |
+ android:theme="@style/MainTheme" |
+ android:exported="false" |
+ android:windowSoftInputMode="adjustResize" |
+ android:configChanges="orientation|keyboardHidden|keyboard|screenSize" |
+ android:hardwareAccelerated="true"> |
+ </activity> |
+ <activity android:name="org.chromium.chrome.browser.ChromeTabbedActivity" |
+ android:theme="@style/MainTheme" |
+ android:exported="false" |
+ android:windowBackground="@drawable/window_background" |
+ android:windowSoftInputMode="adjustResize" |
+ android:launchMode="singleTask" |
+ android:configChanges="orientation|keyboardHidden|keyboard|screenSize" |
+ android:hardwareAccelerated="true"> |
+ </activity> |
+ <activity android:name="org.chromium.chrome.browser.multiwindow.MultiInstanceChromeTabbedActivity" |
+ android:theme="@style/MainTheme" |
+ android:exported="false" |
+ android:windowBackground="@drawable/window_background" |
+ android:windowSoftInputMode="adjustResize" |
+ android:configChanges="orientation|keyboardHidden|keyboard|screenSize" |
+ android:hardwareAccelerated="true"> |
+ </activity> |
+ <activity android:name="org.chromium.chrome.browser.sync.ui.PassphraseActivity" |
+ android:theme="@style/MainTheme" |
+ android:autoRemoveFromRecents="true"> |
+ </activity> |
+ <activity android:name="org.chromium.chrome.browser.bookmark.ManageBookmarkActivity" |
+ android:theme="@style/DialogWhenLargeHolo" |
+ android:label="@string/save_bookmark" |
+ android:windowSoftInputMode="stateHidden|adjustPan" |
+ android:configChanges="orientation|keyboardHidden|keyboard|screenSize"> |
+ <intent-filter> |
+ <action android:name="android.intent.action.VIEW" /> |
+ <category android:name="android.intent.category.DEFAULT" /> |
+ <category android:name="android.intent.category.BROWSABLE" /> |
+ <data android:scheme="chrome" android:host="editbookmark" /> |
+ </intent-filter> |
+ <intent-filter> |
+ <!-- This is sent by the BrowserProviderProxy as a result of |
+ calls to android.provider.Browser.saveBookmark(). --> |
+ <action android:name="{{ manifest_package }}.ADDBOOKMARK" /> |
+ <category android:name="android.intent.category.DEFAULT" /> |
+ </intent-filter> |
+ </activity> |
+ <activity android:name="org.chromium.chrome.browser.firstrun.FirstRunActivityStaging" |
+ android:theme="@style/DialogWhenLarge" |
+ android:label="@string/fre_label" |
+ android:launchMode="singleTop" |
+ android:windowSoftInputMode="stateHidden|adjustPan" |
+ android:configChanges="orientation|keyboardHidden|keyboard|screenSize"> |
+ </activity> |
+ <activity android:name="org.chromium.chrome.browser.preferences.PreferencesStaging" |
+ android:theme="@style/PreferencesTheme" |
+ android:configChanges="orientation|keyboardHidden|keyboard|screenSize" |
+ android:label="@string/preferences" |
+ android:exported="false"> |
+ </activity> |
+ <activity android:name="org.chromium.chrome.browser.EmbedContentViewActivity" |
+ android:theme="@style/ThemeWithActionBar" |
+ android:hardwareAccelerated="true" |
+ android:configChanges="orientation|keyboardHidden|keyboard|screenSize"> |
+ </activity> |
+ <activity android:name="org.chromium.chrome.browser.prerender.PrerenderAPITestActivity" |
+ android:theme="@style/MainTheme" |
+ android:exported="true"> |
+ </activity> |
+ <activity android:name="org.chromium.chrome.browser.enhancedbookmarks.EnhancedBookmarkActivity" |
+ android:theme="@style/EnhancedBookmarkDialogWhite" |
+ android:windowSoftInputMode="stateHidden" |
+ android:configChanges="orientation|keyboardHidden|keyboard|screenSize" > |
+ </activity> |
+ <activity android:name="org.chromium.chrome.browser.enhancedbookmarks.EnhancedBookmarkDetailActivity" |
+ android:theme="@style/EnhancedBookmarkDialogWhite" |
+ android:configChanges="orientation|keyboardHidden|keyboard|screenSize" > |
+ </activity> |
+ <activity android:name="org.chromium.chrome.browser.enhancedbookmarks.EnhancedBookmarkAddEditFolderActivity" |
+ android:theme="@style/EnhancedBookmarkDialogWhite" |
+ android:configChanges="orientation|keyboardHidden|keyboard|screenSize" > |
+ </activity> |
+ <activity android:name="org.chromium.chrome.browser.enhancedbookmarks.EnhancedBookmarkFolderSelectActivity" |
+ android:theme="@style/EnhancedBookmarkDialogWhite" |
+ android:configChanges="orientation|keyboardHidden|keyboard|screenSize" > |
+ </activity> |
+ <activity android:name="org.chromium.chrome.browser.enhancedbookmarks.EnhancedBookmarkSigninActivity" |
+ android:theme="@style/EnhancedBookmarkDialogWhite" |
+ android:configChanges="orientation|keyboardHidden|keyboard|screenSize" > |
+ </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-alias android:name="com.google.android.apps.chrome.webapps.WebappManager" |
+ android:targetActivity="org.chromium.chrome.browser.document.ChromeLauncherActivity"> |
+ <intent-filter> |
+ <action android:name="com.google.android.apps.chrome.webapps.WebappManager.ACTION_START_WEBAPP" /> |
+ <category android:name="android.intent.category.DEFAULT" /> |
+ </intent-filter> |
+ </activity-alias> |
+ <activity android:name="org.chromium.chrome.browser.webapps.WebappActivity" |
+ android:theme="@style/MainTheme" |
+ android:label="@string/webapp_activity_title" |
+ android:documentLaunchMode="intoExisting" |
+ android:persistableMode="persistNever" |
+ android:hardwareAccelerated="true" |
+ android:configChanges="orientation|keyboardHidden|keyboard|screenSize"> |
+ </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"> |
+ </activity-alias> |
+ {% for i in range(10) %} |
+ <activity android:name="org.chromium.chrome.browser.webapps.WebappActivity{{ i }}" |
+ android:theme="@style/MainTheme" |
+ android:icon="@mipmap/app_shortcut_icon" |
+ android:label="@string/webapp_activity_title" |
+ android:launchMode="singleTask" |
+ android:persistableMode="persistNever" |
+ android:hardwareAccelerated="true" |
+ android:taskAffinity="{{ manifest_package }}.webapps.WebappActivity{{ i }}" |
+ android:configChanges="orientation|keyboardHidden|keyboard|screenSize"> |
+ </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 %} |
+ |
+ <activity android:name="org.chromium.chrome.browser.media.remote.ExpandedControllerActivity" |
+ android:theme="@style/MainTheme" |
+ android:label="Chrome.ExpandedControllerActivity" |
+ android:hardwareAccelerated="true" |
+ android:launchMode="singleTask" |
+ android:noHistory="true" |
+ android:configChanges="orientation|keyboardHidden|keyboard|screenSize" |
+ android:excludeFromRecents="true"> |
+ </activity> |
+ |
+ <activity android:name="org.chromium.chrome.browser.document.CipherKeyActivity" |
+ android:launchMode="singleInstance" |
+ android:theme="@android:style/Theme.Translucent.NoTitleBar" |
+ android:excludeFromRecents="true"> |
+ </activity> |
+ |
+ <!-- Providers for chrome data. --> |
+ <provider android:name="org.chromium.chrome.browser.ChromeBrowserProviderStaging" |
+ 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.CompatibilityFileProvider" |
+ 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 sync. --> |
+ <service android:name="org.chromium.chrome.browser.sync.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> |
+ |
+ <!-- Precache service. --> |
+ <service android:name="org.chromium.chrome.browser.precache.PrecacheService" |
+ android:exported="false" /> |
+ <receiver android:name="org.chromium.chrome.browser.precache.PrecacheServiceLauncher"> |
+ <intent-filter> |
+ <action android:name="android.intent.action.ACTION_POWER_CONNECTED"/> |
+ <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED"/> |
+ <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> |
+ </intent-filter> |
+ </receiver> |
+ |
+ <receiver android:name="org.chromium.chrome.browser.firstrun.ToSAckedReceiver" |
+ android:permission="{{ manifest_package }}.TOS_ACKED"> |
+ <intent-filter> |
+ <action android:name="{{ manifest_package }}.TOS_ACKED" /> |
+ </intent-filter> |
+ </receiver> |
+ |
+ <activity android:name="org.chromium.chrome.browser.bookmark.ShortcutActivity" |
+ android:enabled="{{ 'true' if channel in ['stable', 'default'] else 'false' }}" |
+ android:label="@string/bookmark_shortcut_name" |
+ android:icon="@mipmap/bookmark_shortcut_icon" |
+ android:theme="@style/ThemeWithActionBar" |
+ android:hardwareAccelerated="true"> |
+ |
+ <intent-filter> |
+ <action android:name="android.intent.action.CREATE_SHORTCUT" /> |
+ <category android:name="android.intent.category.DEFAULT" /> |
+ </intent-filter> |
+ </activity> |
+ |
+ <receiver android:name="com.google.android.apps.chrome.appwidget.bookmarks.BookmarkThumbnailWidgetProvider" |
+ android:enabled="{{ 'true' if channel in ['stable', 'default'] else 'false' }}" |
+ android:label="@string/bookmarks"> |
+ <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_thumbnail_widget_info" /> |
+ </receiver> |
+ <service android:name="org.chromium.chrome.browser.bookmarkswidget.BookmarkThumbnailWidgetService" |
+ android:permission="android.permission.BIND_REMOTEVIEWS" |
+ android:exported="false" /> |
+ <receiver android:name="org.chromium.chrome.browser.bookmarkswidget.BookmarkWidgetProxy" |
+ android:exported="false" /> |
+ |
+ <!-- Receiver for GCM messages. Rebroadcasts them locally for sync and cloudprint. --> |
+ <receiver android:name="com.google.ipc.invalidation.external.client.contrib.MultiplexingGcmListener$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> |
+ <service android:name="com.google.ipc.invalidation.external.client.contrib.MultiplexingGcmListener" |
+ android:exported="false"> |
+ <meta-data android:name="sender_ids" |
+ android:value="cloudprint.c2dm@gmail.com,ipc.invalidation@gmail.com"/> |
+ </service> |
+ |
+ <!-- Notification service for sync. --> |
+ <meta-data android:name="ipc.invalidation.ticl.listener_service_class" |
+ android:value="org.chromium.components.invalidation.InvalidationClientService"/> |
+ <service android:name="org.chromium.components.invalidation.InvalidationClientService" |
+ 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.client2.contrib.AndroidListener$AlarmReceiver" |
+ android:exported="false"/> |
+ |
+ <!-- Notification service multiplexed GCM receiver --> |
+ <service android:name="com.google.ipc.invalidation.ticl.android2.channel.AndroidMessageReceiverService" |
+ android:exported="false" |
+ android:enabled="true"/> |
+ <receiver android:name="com.google.ipc.invalidation.ticl.android2.channel.AndroidMessageReceiverService$Receiver" |
+ android:exported="false"> |
+ <intent-filter> |
+ <action android:name="com.google.ipc.invalidation.gcmmplex.EVENT" /> |
+ </intent-filter> |
+ </receiver> |
+ |
+ <!-- GCMDriver multiplexed GCM receiver --> |
+ <service android:name="org.chromium.chrome.browser.services.gcm.GCMListener" |
+ android:exported="false"/> |
+ <receiver android:name="org.chromium.chrome.browser.services.gcm.GCMListener$Receiver" |
+ android:exported="false"> |
+ <intent-filter> |
+ <action android:name="com.google.ipc.invalidation.gcmmplex.EVENT" /> |
+ </intent-filter> |
+ </receiver> |
+ |
+ <!-- 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> |
+ |
+ <service android:name="org.chromium.chrome.browser.prerender.ChromePrerenderService" |
+ android:exported="true" |
+ tools:ignore="ExportedService" /> |
+ <service android:name="org.chromium.chrome.browser.hosted.ChromeConnectionService" |
+ android:exported="{{ 'true' if channel in ['dev', 'canary', 'default'] else 'false' }}" |
+ tools:ignore="ExportedService" /> |
+ <service android:name="org.chromium.chrome.browser.crash.MinidumpUploadService" |
+ android:exported="false"/> |
+ |
+ <service android:name="org.chromium.chrome.browser.omaha.OmahaClient" |
+ 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 = 20 %} |
+ <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="false" /> |
+ {% endfor %} |
+ |
+ {% set num_privileged_services = 3 %} |
+ <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:permission="{{ manifest_package }}.permission.CHILD_SERVICE" |
+ android:isolatedProcess="false" |
+ android:exported="false" /> |
+ {% endfor %} |
+ |
+ <receiver android:name="org.chromium.chrome.browser.download.OpenDownloadReceiver"> |
+ <intent-filter> |
+ <action android:name="android.intent.action.DOWNLOAD_NOTIFICATION_CLICKED"/> |
+ </intent-filter> |
+ </receiver> |
+ |
+ <receiver android:name="org.chromium.base.PowerStatusReceiver"> |
+ <intent-filter> |
+ <action android:name="android.intent.action.ACTION_POWER_CONNECTED"/> |
+ <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED"/> |
+ </intent-filter> |
+ </receiver> |
+ |
+ <service android:name="org.chromium.chrome.browser.media.remote.NotificationTransportControl$ListenerService" /> |
+ |
+ <!-- Receiver for lock screen input when casting --> |
+ <receiver android:name="org.chromium.chrome.browser.media.remote.LockScreenTransportControl$MediaButtonIntentReceiver"/> |
+ |
+ <service android:name="org.chromium.chrome.browser.media.MediaNotificationService" |
+ android:exported="false"/> |
+ |
+ <meta-data android:name="com.google.android.gms.version" |
+ android:value="@integer/google_play_services_version" /> |
+ |
+ <meta-data android:name="org.chromium.content.browser.SMART_CLIP_PROVIDER" |
+ android:value="org.chromium.content.browser.SmartClipProvider"/> |
+ <meta-data android:name="org.chromium.components.service_tab_launcher.SERVICE_TAB_LAUNCHER" |
+ android:value="org.chromium.chrome.browser.ChromeServiceTabLauncher" /> |
+ |
+ {% block extra_application_definitions %} |
+ {% endblock %} |
+ </application> |
+</manifest> |
+ |