1 <?xml version="1.0" encoding="utf-8"?>
2 <!-- Copyright 2015 The Chromium Authors. All rights reserved.
3 Use of this source code is governed by a BSD-style license that can be
4 found in the LICENSE file. -->
7 Note: This is a jinja2 template, processed at build time into the final manifest.
9 Blocks denoted with { % block some_name % }foo{ % endblock % } can be overridden
10 by a child template that "extends" this file.
13 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
14 xmlns:tools="http://schemas.android.com/tools"
15 package="{{ manifest_package }}"
16 tools:ignore="MissingVersion">
17 <!-- android:versionCode and android:versionName is set through gyp. See build/common.gypi -->
19 <uses-sdk android:minSdkVersion="{{min_sdk_version}}" android:targetSdkVersion="22" />
20 <uses-feature android:glEsVersion="0x00020000" />
22 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
23 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
24 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
25 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
26 <uses-permission android:name="android.permission.CAMERA" />
27 <uses-permission android:name="android.permission.GET_ACCOUNTS"/>
28 <uses-permission android:name="android.permission.INTERNET"/>
29 <uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/>
30 <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
31 <uses-permission android:name="android.permission.NFC"/>
32 <uses-permission android:name="android.permission.READ_SYNC_SETTINGS"/>
33 <uses-permission android:name="android.permission.READ_SYNC_STATS"/>
34 <uses-permission android:name="android.permission.RECORD_AUDIO"/>
35 <uses-permission android:name="android.permission.USE_CREDENTIALS"/>
36 <uses-permission android:name="android.permission.VIBRATE"/>
37 <uses-permission android:name="android.permission.WAKE_LOCK"/>
38 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
39 <uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS"/>
41 <permission android:name="{{ manifest_package }}.permission.CHILD_SERVICE" android:protectionLevel="signature" />
42 <permission android:name="{{ manifest_package }}.permission.READ_WRITE_BOOKMARK_FOLDERS" android:protectionLevel="signatureOrSystem" />
43 <permission android:name="{{ manifest_package }}.TOS_ACKED" android:protectionLevel="signatureOrSystem" />
44 <!-- Only chrome can receive the messages and registration result -->
45 <permission android:name="{{ manifest_package }}.permission.C2D_MESSAGE"
46 android:protectionLevel="signature" />
47 <permission android:name="{{ manifest_package }}.permission.DEBUG"
48 android:label="Debug web pages"
49 android:permissionGroup="android.permission-group.DEVELOPMENT_TOOLS"
50 android:protectionLevel="signature" />
52 <uses-permission android:name="{{ manifest_package }}.permission.C2D_MESSAGE" />
53 <uses-permission android:name="{{ manifest_package }}.permission.READ_WRITE_BOOKMARK_FOLDERS" />
54 <uses-permission android:name="{{ manifest_package }}.TOS_ACKED" />
56 <uses-permission android:name="com.chrome.permission.DEVICE_EXTRAS" />
57 <uses-permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS"/>
58 <uses-permission android:name="com.android.browser.permission.WRITE_HISTORY_BOOKMARKS"/>
59 <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
60 <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
62 {% block extra_uses_permissions %}
65 <!-- We may use GPS but it's not required -->
66 <uses-feature android:name="android.hardware.location.gps" android:required="false" />
67 <uses-feature android:name="android.hardware.camera" android:required="false" />
70 android.permission.RECORD_AUDIO makes this implied, however we don't
73 <uses-feature android:name="android.hardware.microphone" android:required="false" />
75 The app is usable with keyboard/mouse. This feature is implicitly true for
76 all applications and needs to be disabled manually.
78 <uses-feature android:name="android.hardware.touchscreen" android:required="false" />
80 <!-- Set android:largeHeap to "true" to allow more than the default
81 Java heap limit (32Mb on Nexus S, 48Mb on Xoom). -->
82 <application android:name="{% block application_name %}org.chromium.chrome.browser.ChromeMobileApplication{% endblock %}"
83 android:icon="@mipmap/app_icon"
84 android:label="@string/app_name"
85 android:largeHeap="false"
86 android:allowBackup="false"
87 android:supportsRtl="true">
89 <!-- Samsung MultiWindow Support -->
90 <meta-data android:name="com.samsung.android.sdk.multiwindow.enable"
91 android:value="true" />
92 <meta-data android:name="com.samsung.android.sdk.multiwindow.multiinstance.enable"
93 android:value="true" />
94 <meta-data android:name="com.samsung.android.sdk.multiwindow.multiinstance.launchmode"
95 android:value="singleTask" />
96 <meta-data android:name="com.samsung.android.sdk.multiwindow.penwindow.enable"
97 android:value="true"/>
99 {% if channel in ['dev', 'canary', 'default'] %}
100 <meta-data android:name="com.sec.android.support.multiwindow" android:value="true" />
102 {% if configuration_policy == '1' %}
103 <meta-data android:name="android.content.APP_RESTRICTIONS"
104 android:resource="@xml/app_restrictions"/>
107 <!-- Note: Set android:hardwareAccelerated to "false" in the ".Main"
108 activity below to go into software, browser tiling mode.
110 Since this activity (shown in the launcher) and the application
111 (shown in Android's Settings/Apps list) share the same label, we
112 do not specify one here to allow it to inherit from the app. -->
113 <activity android:name="org.chromium.chrome.browser.document.ChromeLauncherActivity"
114 android:theme="@android:style/Theme.Translucent.NoTitleBar">
116 <activity-alias android:name="com.google.android.apps.chrome.Main"
117 android:targetActivity="org.chromium.chrome.browser.document.ChromeLauncherActivity"
118 android:exported="true">
120 <action android:name="android.intent.action.MAIN" />
121 <category android:name="android.intent.category.DEFAULT" />
122 <category android:name="android.intent.category.LAUNCHER" />
123 <category android:name="android.intent.category.BROWSABLE" />
124 <category android:name="android.intent.category.APP_BROWSER" />
125 <category android:name="android.intent.category.NOTIFICATION_PREFERENCES" />
126 {% if channel in ['dev', 'canary', 'default'] %}
127 <category android:name="android.intent.category.MULTIWINDOW_LAUNCHER" />
130 <!-- Matches the common case of intents with no MIME type.
131 Make sure to keep in sync with the next filter. -->
133 <action android:name="android.intent.action.VIEW" />
134 <category android:name="android.intent.category.DEFAULT" />
135 <category android:name="android.intent.category.BROWSABLE" />
136 {% if channel in ['stable', 'default'] %}<data android:scheme="googlechrome" />{% endif %}
137 <data android:scheme="http" />
138 <data android:scheme="https" />
139 <data android:scheme="about" />
140 <data android:scheme="javascript" />
142 <!-- Same filter as above but with MIME types. Intents that
143 do not specify a MIME type won't match. -->
145 <action android:name="android.intent.action.VIEW" />
146 <category android:name="android.intent.category.DEFAULT" />
147 <category android:name="android.intent.category.BROWSABLE" />
148 {% if channel in ['stable', 'default'] %}<data android:scheme="googlechrome" />{% endif %}
149 <data android:scheme="http" />
150 <data android:scheme="https" />
151 <data android:scheme="about" />
152 <data android:scheme="content" />
153 <data android:scheme="javascript" />
154 <data android:mimeType="text/html"/>
155 <data android:mimeType="text/plain"/>
156 <data android:mimeType="application/xhtml+xml"/>
158 <!-- MHTML support, used for snapshots -->
160 <action android:name="android.intent.action.VIEW" />
161 <category android:name="android.intent.category.DEFAULT" />
162 <data android:scheme="file" android:mimeType="multipart/related"/>
165 <action android:name="android.intent.action.MEDIA_SEARCH" />
166 <category android:name="android.intent.category.DEFAULT" />
169 <action android:name="android.speech.action.VOICE_SEARCH_RESULTS" />
170 <category android:name="android.intent.category.DEFAULT" />
173 <action android:name="android.nfc.action.NDEF_DISCOVERED" />
174 <category android:name="android.intent.category.DEFAULT" />
175 <data android:scheme="http" />
176 <data android:scheme="https" />
179 <action android:name="android.intent.action.SEARCH" />
182 <action android:name="com.sec.android.airview.HOVER" />
184 <meta-data android:name="android.app.searchable"
185 android:resource="@xml/searchable" />
187 <activity android:name="org.chromium.chrome.browser.document.DocumentActivity"
188 android:exported="false"
189 android:theme="@style/MainTheme"
190 android:windowSoftInputMode="adjustResize"
191 android:taskAffinity=""
192 android:persistableMode="persistAcrossReboots"
193 android:autoRemoveFromRecents="false"
194 android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc"
195 android:hardwareAccelerated="true">
197 <activity android:name="org.chromium.chrome.browser.document.IncognitoDocumentActivity"
198 android:icon="@mipmap/incognito_app_icon"
199 android:exported="false"
200 android:theme="@style/IncognitoTheme"
201 android:windowSoftInputMode="adjustResize"
202 android:taskAffinity=""
203 android:persistableMode="persistNever"
204 android:autoRemoveFromRecents="false"
205 android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc"
206 android:hardwareAccelerated="true">
208 <activity android:name="org.chromium.chrome.browser.customtabs.CustomTabActivity"
209 android:theme="@style/MainTheme"
210 android:exported="false"
211 android:windowSoftInputMode="adjustResize"
212 android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc"
213 android:hardwareAccelerated="true">
215 <activity android:name="org.chromium.chrome.browser.ChromeTabbedActivity"
216 android:theme="@style/MainTheme"
217 android:exported="false"
218 android:windowBackground="@drawable/window_background"
219 android:windowSoftInputMode="adjustResize"
220 android:launchMode="singleTask"
221 android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc"
222 android:hardwareAccelerated="true">
224 <activity android:name="org.chromium.chrome.browser.multiwindow.MultiInstanceChromeTabbedActivity"
225 android:theme="@style/MainTheme"
226 android:exported="false"
227 android:windowBackground="@drawable/window_background"
228 android:windowSoftInputMode="adjustResize"
229 android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc"
230 android:hardwareAccelerated="true">
232 <activity android:name="org.chromium.chrome.browser.sync.ui.PassphraseActivity"
233 android:theme="@style/MainTheme"
234 android:autoRemoveFromRecents="true">
236 <activity android:name="org.chromium.chrome.browser.bookmark.ManageBookmarkActivity"
237 android:theme="@style/DialogWhenLargeHolo"
238 android:label="@string/save_bookmark"
239 android:windowSoftInputMode="stateHidden|adjustPan"
240 android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc">
242 <action android:name="android.intent.action.VIEW" />
243 <category android:name="android.intent.category.DEFAULT" />
244 <category android:name="android.intent.category.BROWSABLE" />
245 <data android:scheme="chrome" android:host="editbookmark" />
248 <!-- This is sent by the BrowserProviderProxy as a result of
249 calls to android.provider.Browser.saveBookmark(). -->
250 <action android:name="{{ manifest_package }}.ADDBOOKMARK" />
251 <category android:name="android.intent.category.DEFAULT" />
254 <activity android:name="org.chromium.chrome.browser.firstrun.FirstRunActivityStaging"
255 android:theme="@style/DialogWhenLarge"
256 android:label="@string/fre_label"
257 android:launchMode="singleTop"
258 android:windowSoftInputMode="stateHidden|adjustPan"
259 android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc">
261 <activity android:name="org.chromium.chrome.browser.preferences.PreferencesStaging"
262 android:theme="@style/PreferencesTheme"
263 android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc"
264 android:label="@string/preferences"
265 android:exported="false">
267 <activity android:name="org.chromium.chrome.browser.EmbedContentViewActivity"
268 android:theme="@style/ThemeWithActionBar"
269 android:hardwareAccelerated="true"
270 android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc">
272 <activity android:name="org.chromium.chrome.browser.prerender.PrerenderAPITestActivity"
273 android:theme="@style/MainTheme"
274 android:exported="true">
276 <activity android:name="org.chromium.chrome.browser.enhancedbookmarks.EnhancedBookmarkActivity"
277 android:theme="@style/EnhancedBookmarkDialogWhite"
278 android:windowSoftInputMode="stateHidden"
279 android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc" >
281 <activity android:name="org.chromium.chrome.browser.enhancedbookmarks.EnhancedBookmarkDetailActivity"
282 android:theme="@style/EnhancedBookmarkDialogWhite"
283 android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc" >
285 <activity android:name="org.chromium.chrome.browser.enhancedbookmarks.EnhancedBookmarkAddEditFolderActivity"
286 android:theme="@style/EnhancedBookmarkDialogWhite"
287 android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc" >
289 <activity android:name="org.chromium.chrome.browser.enhancedbookmarks.EnhancedBookmarkFolderSelectActivity"
290 android:theme="@style/EnhancedBookmarkDialogWhite"
291 android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc" >
293 <activity android:name="org.chromium.chrome.browser.enhancedbookmarks.EnhancedBookmarkSigninActivity"
294 android:theme="@style/EnhancedBookmarkDialogWhite"
295 android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc" >
299 Activities for webapps.
300 TODO(dfalcantara): Remove the aliases for the WebappActivities once we're pretty sure
301 that users don't have any instances of the original Activity still
304 <activity-alias android:name="com.google.android.apps.chrome.webapps.WebappManager"
305 android:targetActivity="org.chromium.chrome.browser.document.ChromeLauncherActivity">
307 <action android:name="com.google.android.apps.chrome.webapps.WebappManager.ACTION_START_WEBAPP" />
308 <category android:name="android.intent.category.DEFAULT" />
311 <activity android:name="org.chromium.chrome.browser.webapps.WebappActivity"
312 android:theme="@style/MainTheme"
313 android:label="@string/webapp_activity_title"
314 android:documentLaunchMode="intoExisting"
315 android:persistableMode="persistNever"
316 android:hardwareAccelerated="true"
317 android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc">
319 <activity-alias android:name="com.google.android.apps.chrome.webapps.WebappActivity"
320 android:targetActivity="org.chromium.chrome.browser.webapps.WebappActivity"
321 android:label="@string/webapp_activity_title">
323 {% for i in range(10) %}
324 <activity android:name="org.chromium.chrome.browser.webapps.WebappActivity{{ i }}"
325 android:theme="@style/MainTheme"
326 android:icon="@mipmap/app_shortcut_icon"
327 android:label="@string/webapp_activity_title"
328 android:launchMode="singleTask"
329 android:windowSoftInputMode="adjustResize"
330 android:persistableMode="persistNever"
331 android:hardwareAccelerated="true"
332 android:taskAffinity="{{ manifest_package }}.webapps.WebappActivity{{ i }}"
333 android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc">
335 <activity-alias android:name="com.google.android.apps.chrome.webapps.WebappActivity{{ i }}"
336 android:targetActivity="org.chromium.chrome.browser.webapps.WebappActivity{{ i }}"
337 android:icon="@mipmap/app_shortcut_icon"
338 android:label="@string/webapp_activity_title">
342 <activity android:name="org.chromium.chrome.browser.media.remote.ExpandedControllerActivity"
343 android:theme="@style/MainTheme"
344 android:label="Chrome.ExpandedControllerActivity"
345 android:hardwareAccelerated="true"
346 android:launchMode="singleTask"
347 android:noHistory="true"
348 android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc"
349 android:excludeFromRecents="true">
352 <activity android:name="org.chromium.chrome.browser.document.CipherKeyActivity"
353 android:launchMode="singleInstance"
354 android:theme="@android:style/Theme.Translucent.NoTitleBar"
355 android:excludeFromRecents="true">
358 <!-- Providers for chrome data. -->
359 <provider android:name="org.chromium.chrome.browser.ChromeBrowserProviderStaging"
360 android:authorities="{{ manifest_package }}.ChromeBrowserProvider;{{ manifest_package }}.browser;{{ manifest_package }}"
361 android:exported="true">
362 <path-permission android:path="/bookmarks/search_suggest_query"
363 android:readPermission="android.permission.GLOBAL_SEARCH" />
366 <!-- Provider for FileProvider. -->
367 <provider android:name="org.chromium.chrome.browser.util.CompatibilityFileProvider"
368 android:authorities="{{ manifest_package }}.FileProvider"
369 android:exported="false"
370 android:grantUriPermissions="true">
371 <meta-data android:name="android.support.FILE_PROVIDER_PATHS"
372 android:resource="@xml/file_paths" />
375 <!-- Sync adapter for browser sync. -->
376 <service android:name="org.chromium.chrome.browser.sync.ChromeBrowserSyncAdapterService"
377 android:exported="false">
379 <action android:name="android.content.SyncAdapter" />
381 <meta-data android:name="android.content.SyncAdapter"
382 android:resource="@xml/syncadapter" />
385 <!-- Broadcast receiver that will be notified of account changes -->
386 <receiver android:name="org.chromium.chrome.browser.services.AccountsChangedReceiver">
388 <action android:name="android.accounts.LOGIN_ACCOUNTS_CHANGED" />
392 <!-- Precache service. -->
393 <service android:name="org.chromium.chrome.browser.precache.PrecacheService"
394 android:exported="false" />
395 <receiver android:name="org.chromium.chrome.browser.precache.PrecacheServiceLauncher">
397 <action android:name="android.intent.action.ACTION_POWER_CONNECTED"/>
398 <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED"/>
399 <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
403 <receiver android:name="org.chromium.chrome.browser.firstrun.ToSAckedReceiver"
404 android:permission="{{ manifest_package }}.TOS_ACKED">
406 <action android:name="{{ manifest_package }}.TOS_ACKED" />
410 <activity android:name="org.chromium.chrome.browser.bookmark.ShortcutActivity"
411 android:enabled="{{ 'true' if channel in ['stable', 'default'] else 'false' }}"
412 android:label="@string/bookmark_shortcut_name"
413 android:icon="@mipmap/bookmark_shortcut_icon"
414 android:theme="@style/ThemeWithActionBar"
415 android:hardwareAccelerated="true">
418 <action android:name="android.intent.action.CREATE_SHORTCUT" />
419 <category android:name="android.intent.category.DEFAULT" />
423 <receiver android:name="com.google.android.apps.chrome.appwidget.bookmarks.BookmarkThumbnailWidgetProvider"
424 android:enabled="{{ 'true' if channel in ['stable', 'default'] else 'false' }}"
425 android:label="@string/bookmarks">
427 <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
428 <action android:name=".BOOKMARK_APPWIDGET_UPDATE" />
431 android:name="android.appwidget.provider"
432 android:resource="@xml/bookmark_thumbnail_widget_info" />
434 <service android:name="org.chromium.chrome.browser.bookmarkswidget.BookmarkThumbnailWidgetService"
435 android:permission="android.permission.BIND_REMOTEVIEWS"
436 android:exported="false" />
437 <receiver android:name="org.chromium.chrome.browser.bookmarkswidget.BookmarkWidgetProxy"
438 android:exported="false" />
440 <!-- Receiver for GCM messages. Rebroadcasts them locally for sync and cloudprint. -->
441 <receiver android:name="com.google.ipc.invalidation.external.client.contrib.MultiplexingGcmListener$GCMReceiver"
442 android:exported="true"
443 android:permission="com.google.android.c2dm.permission.SEND">
445 <action android:name="com.google.android.c2dm.intent.RECEIVE" />
446 <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
447 <category android:name="{{ manifest_package }}"/>
450 <service android:name="com.google.ipc.invalidation.external.client.contrib.MultiplexingGcmListener"
451 android:exported="false">
452 <meta-data android:name="sender_ids"
453 android:value="cloudprint.c2dm@gmail.com,ipc.invalidation@gmail.com"/>
456 <!-- Notification service for sync. -->
457 <meta-data android:name="ipc.invalidation.ticl.listener_service_class"
458 android:value="org.chromium.components.invalidation.InvalidationClientService"/>
459 <service android:name="org.chromium.components.invalidation.InvalidationClientService"
460 android:exported="false">
462 <action android:name="com.google.ipc.invalidation.AUTH_TOKEN_REQUEST"/>
465 <service android:name="com.google.ipc.invalidation.ticl.android2.TiclService"
466 android:exported="false"/>
467 <service android:name="com.google.ipc.invalidation.ticl.android2.channel.AndroidMessageSenderService"
468 android:exported="false"/>
469 <receiver android:name="com.google.ipc.invalidation.ticl.android2.AndroidInternalScheduler$AlarmReceiver"
470 android:exported="false"/>
471 <receiver android:name="com.google.ipc.invalidation.external.client2.contrib.AndroidListener$AlarmReceiver"
472 android:exported="false"/>
474 <!-- Notification service multiplexed GCM receiver -->
475 <service android:name="com.google.ipc.invalidation.ticl.android2.channel.AndroidMessageReceiverService"
476 android:exported="false"
477 android:enabled="true"/>
478 <receiver android:name="com.google.ipc.invalidation.ticl.android2.channel.AndroidMessageReceiverService$Receiver"
479 android:exported="false">
481 <action android:name="com.google.ipc.invalidation.gcmmplex.EVENT" />
485 <!-- GCMDriver multiplexed GCM receiver -->
486 <service android:name="org.chromium.chrome.browser.services.gcm.GCMListener"
487 android:exported="false"/>
488 <receiver android:name="org.chromium.chrome.browser.services.gcm.GCMListener$Receiver"
489 android:exported="false">
491 <action android:name="com.google.ipc.invalidation.gcmmplex.EVENT" />
495 <!-- Android Notification service listener -->
496 <service android:name="org.chromium.chrome.browser.notifications.NotificationService"
497 android:exported="false"/>
498 <receiver android:name="org.chromium.chrome.browser.notifications.NotificationService$Receiver"
499 android:exported="false">
501 <action android:name="org.chromium.chrome.browser.notifications.CLICK_NOTIFICATION" />
502 <action android:name="org.chromium.chrome.browser.notifications.CLOSE_NOTIFICATION" />
506 <!-- Service Worker Background Sync service listener -->
507 <service android:name="org.chromium.content.browser.BackgroundSyncLauncherService"
508 android:exported="false" />
509 <receiver android:name="org.chromium.content.browser.BackgroundSyncLauncherService$Receiver">
511 <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
515 <service android:name="org.chromium.chrome.browser.prerender.ChromePrerenderService"
516 android:exported="true"
517 tools:ignore="ExportedService" />
518 <service android:name="org.chromium.chrome.browser.customtabs.ChromeConnectionService"
519 android:exported="{{ 'true' if channel in ['dev', 'canary', 'default'] else 'false' }}"
520 tools:ignore="ExportedService">
522 <action android:name="android.intent.action.MAIN" />
523 <category android:name="android.intent.category.CUSTOM_TABS" />
526 <service android:name="org.chromium.chrome.browser.crash.MinidumpUploadService"
527 android:exported="false"/>
529 <service android:name="org.chromium.chrome.browser.omaha.OmahaClient"
530 android:exported="false"/>
532 <!-- The following service entries exist in order to allow us to
533 start more than one sandboxed process. -->
535 <!-- NOTE: If you change the value of "android:process" for the below services,
536 you also need to update kHelperProcessExecutableName in chrome_constants.cc. -->
537 {% set num_sandboxed_services = 20 %}
538 <meta-data android:name="org.chromium.content.browser.NUM_SANDBOXED_SERVICES"
539 android:value="{{ num_sandboxed_services }}"/>
540 {% for i in range(num_sandboxed_services) %}
541 <service android:name="org.chromium.content.app.SandboxedProcessService{{ i }}"
542 android:process=":sandboxed_process{{ i }}"
543 android:permission="{{ manifest_package }}.permission.CHILD_SERVICE"
544 android:isolatedProcess="true"
545 android:exported="false" />
548 {% set num_privileged_services = 3 %}
549 <meta-data android:name="org.chromium.content.browser.NUM_PRIVILEGED_SERVICES"
550 android:value="{{ num_privileged_services }}"/>
551 {% for i in range(num_privileged_services) %}
552 <service android:name="org.chromium.content.app.PrivilegedProcessService{{ i }}"
553 android:process=":privileged_process{{ i }}"
554 android:permission="{{ manifest_package }}.permission.CHILD_SERVICE"
555 android:isolatedProcess="false"
556 android:exported="false" />
559 <receiver android:name="org.chromium.chrome.browser.download.OpenDownloadReceiver">
561 <action android:name="android.intent.action.DOWNLOAD_NOTIFICATION_CLICKED"/>
565 <receiver android:name="org.chromium.base.PowerStatusReceiver">
567 <action android:name="android.intent.action.ACTION_POWER_CONNECTED"/>
568 <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED"/>
572 <service android:name="org.chromium.chrome.browser.media.remote.NotificationTransportControl$ListenerService" />
574 <!-- Receiver for lock screen input when casting -->
575 <receiver android:name="org.chromium.chrome.browser.media.remote.LockScreenTransportControl$MediaButtonIntentReceiver"/>
577 <service android:name="org.chromium.chrome.browser.media.MediaNotificationService"
578 android:exported="false"/>
580 <meta-data android:name="com.google.android.gms.version"
581 android:value="@integer/google_play_services_version" />
583 <meta-data android:name="org.chromium.content.browser.SMART_CLIP_PROVIDER"
584 android:value="org.chromium.content.browser.SmartClipProvider"/>
585 <meta-data android:name="org.chromium.components.service_tab_launcher.SERVICE_TAB_LAUNCHER"
586 android:value="org.chromium.chrome.browser.ChromeServiceTabLauncher" />
588 {% block extra_application_definitions %}