diff options
author | newt <newt@chromium.org> | 2015-06-18 21:24:55 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-06-19 04:25:39 +0000 |
commit | 2f7c5984b86186dedeb17d551b9159df0462a8b5 (patch) | |
tree | f0d7b11a4828488d39ed176d0fb64b41c320aa1f | |
parent | b49aafb7e5a58579a3ce0b3c7b37a60aebef8c55 (diff) | |
download | chromium_src-2f7c5984b86186dedeb17d551b9159df0462a8b5.zip chromium_src-2f7c5984b86186dedeb17d551b9159df0462a8b5.tar.gz chromium_src-2f7c5984b86186dedeb17d551b9159df0462a8b5.tar.bz2 |
Move AndroidManifest.xml from java_staging to java.
This leaves a copy of AndroidManifest.xml in java_staging, which will be
removed once downstream targets are updated.
BUG=501140
Review URL: https://codereview.chromium.org/1190183004
Cr-Commit-Position: refs/heads/master@{#335206}
-rw-r--r-- | chrome/android/BUILD.gn | 2 | ||||
-rw-r--r-- | chrome/android/chrome_apk.gyp | 2 | ||||
-rw-r--r-- | chrome/android/java/AndroidManifest.xml | 592 |
3 files changed, 594 insertions, 2 deletions
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn index 9316bdc..52e65d5 100644 --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn @@ -751,7 +751,7 @@ copy_ex("chrome_public_apk_assets") { # GYP: //chrome/android/chrome_apk.gyp:chrome_apk_manifest jinja_template("chrome_public_apk_manifest") { - input = "java_staging/AndroidManifest.xml" + input = "java/AndroidManifest.xml" output = "$root_gen_dir/chrome_public_apk_manifest/AndroidManifest.xml" variables = jinja_variables variables += [ diff --git a/chrome/android/chrome_apk.gyp b/chrome/android/chrome_apk.gyp index 239236d..87078c9 100644 --- a/chrome/android/chrome_apk.gyp +++ b/chrome/android/chrome_apk.gyp @@ -270,7 +270,7 @@ 'target_name': 'chrome_public_manifest', 'type': 'none', 'variables': { - 'jinja_inputs': ['<(chrome_java_dir)/AndroidManifest.xml'], + 'jinja_inputs': ['java/AndroidManifest.xml'], 'jinja_output': '<(chrome_public_apk_manifest)', 'jinja_variables': [ 'channel=<(android_channel)', diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml new file mode 100644 index 0000000..46a755f --- /dev/null +++ b/chrome/android/java/AndroidManifest.xml @@ -0,0 +1,592 @@ +<?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 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" + {% block extra_application_attributes %}{% endblock %}> + + <!-- 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|mcc|mnc" + 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|mcc|mnc" + android:hardwareAccelerated="true"> + </activity> + <activity android:name="org.chromium.chrome.browser.customtabs.CustomTabActivity" + android:theme="@style/MainTheme" + android:exported="false" + android:windowSoftInputMode="adjustResize" + android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc" + 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|mcc|mnc" + 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|mcc|mnc" + 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|mcc|mnc"> + <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|mcc|mnc"> + </activity> + <activity android:name="org.chromium.chrome.browser.preferences.PreferencesStaging" + android:theme="@style/PreferencesTheme" + android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc" + 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|mcc|mnc"> + </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|mcc|mnc" > + </activity> + <activity android:name="org.chromium.chrome.browser.enhancedbookmarks.EnhancedBookmarkDetailActivity" + android:theme="@style/EnhancedBookmarkDialogWhite" + android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc" > + </activity> + <activity android:name="org.chromium.chrome.browser.enhancedbookmarks.EnhancedBookmarkAddEditFolderActivity" + android:theme="@style/EnhancedBookmarkDialogWhite" + android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc" > + </activity> + <activity android:name="org.chromium.chrome.browser.enhancedbookmarks.EnhancedBookmarkFolderSelectActivity" + android:theme="@style/EnhancedBookmarkDialogWhite" + android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc" > + </activity> + <activity android:name="org.chromium.chrome.browser.enhancedbookmarks.EnhancedBookmarkSigninActivity" + android:theme="@style/EnhancedBookmarkDialogWhite" + android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc" > + </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|mcc|mnc"> + </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:windowSoftInputMode="adjustResize" + android:persistableMode="persistNever" + android:hardwareAccelerated="true" + android:taskAffinity="{{ manifest_package }}.webapps.WebappActivity{{ i }}" + android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc"> + </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|mcc|mnc" + 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 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> + + <!-- 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 Worker Background Sync service listener --> + <service android:name="org.chromium.content.browser.BackgroundSyncLauncherService" + android:exported="false" /> + <receiver android:name="org.chromium.content.browser.BackgroundSyncLauncherService$Receiver"> + <intent-filter> + <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> + </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.customtabs.CustomTabsConnectionService" + android:exported="{{ 'true' if channel in ['dev', 'canary', 'default'] else 'false' }}" + tools:ignore="ExportedService"> + <intent-filter> + <action android:name="android.intent.action.MAIN" /> + <category android:name="android.intent.category.CUSTOM_TABS" /> + </intent-filter> + </service> + <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> |