1 <?xml version="1.0" encoding="utf-8"?> 2 3 <!-- Copyright 2014 The Chromium Authors. All rights reserved. 4 5 Use of this source code is governed by a BSD-style license that can be 6 found in the LICENSE file. 7 --> 8 9 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 10 package="org.chromium.chrome.shell"> 11 12 <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="20" /> 13 <permission android:name="org.chromium.chrome.shell.permission.SANDBOX" 14 android:protectionLevel="signature" /> 15 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 16 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 17 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> 18 <uses-permission android:name="android.permission.CAMERA" /> 19 <uses-permission android:name="android.permission.GET_ACCOUNTS"/> 20 <uses-permission android:name="android.permission.INTERNET"/> 21 <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/> 22 <uses-permission android:name="android.permission.RECORD_AUDIO"/> 23 <uses-permission android:name="android.permission.VIBRATE"/> 24 <uses-permission android:name="android.permission.WAKE_LOCK"/> 25 <uses-permission android:name="android.permission.READ_SYNC_SETTINGS"/> 26 <uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" /> 27 <uses-permission android:name="android.permission.USE_CREDENTIALS" /> 28 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 29 <!-- Only Chrome can receive the messages and registration result for GCM --> 30 <permission android:name="org.chromium.chrome.shell.permission.C2D_MESSAGE" 31 android:protectionLevel="signature" /> 32 <uses-permission android:name="org.chromium.chrome.shell.permission.C2D_MESSAGE" /> 33 <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> 34 35 <permission android:name="org.chromium.chrome.shell.permission.DEBUG" 36 android:label="Debug web pages in Chrome Shell" 37 android:permissionGroup="android.permission-group.DEVELOPMENT_TOOLS" 38 android:protectionLevel="signature" /> 39 40 <application android:name="org.chromium.chrome.shell.ChromeShellApplication" 41 android:icon="@mipmap/app_icon" 42 android:label="Chrome Shell"> 43 <activity android:name="org.chromium.chrome.shell.ChromeShellActivity" 44 android:launchMode="singleTask" 45 android:theme="@android:style/Theme.Holo.Light.NoActionBar" 46 android:configChanges="orientation|keyboardHidden|keyboard|screenSize" 47 android:hardwareAccelerated="true"> 48 <intent-filter> 49 <action android:name="android.intent.action.MAIN" /> 50 <category android:name="android.intent.category.LAUNCHER" /> 51 </intent-filter> 52 </activity> 53 <activity android:name="org.chromium.sync.test.util.MockGrantCredentialsPermissionActivity" 54 android:exported="true"> 55 <intent-filter> 56 <action android:name="android.intent.action.VIEW" /> 57 <category android:name="android.intent.category.DEFAULT" /> 58 </intent-filter> 59 </activity> 60 <!-- The following service entries exist in order to allow us to 61 start more than one sandboxed process. --> 62 63 <!-- NOTE: If you change the values of "android:process" for any of the below services, 64 you also need to update kHelperProcessExecutableName in chrome_constants.cc. --> 65 <service android:name="org.chromium.content.app.SandboxedProcessService0" 66 android:process=":sandboxed_process0" 67 android:permission="org.chromium.content_shell.permission.SANDBOX" 68 android:isolatedProcess="true" 69 android:exported="false" /> 70 <service android:name="org.chromium.content.app.SandboxedProcessService1" 71 android:process=":sandboxed_process1" 72 android:permission="org.chromium.content_shell.permission.SANDBOX" 73 android:isolatedProcess="true" 74 android:exported="false" /> 75 <service android:name="org.chromium.content.app.SandboxedProcessService2" 76 android:process=":sandboxed_process2" 77 android:permission="org.chromium.content_shell.permission.SANDBOX" 78 android:isolatedProcess="true" 79 android:exported="false" /> 80 <service android:name="org.chromium.content.app.SandboxedProcessService3" 81 android:process=":sandboxed_process3" 82 android:permission="org.chromium.content_shell.permission.SANDBOX" 83 android:isolatedProcess="true" 84 android:exported="false" /> 85 <service android:name="org.chromium.content.app.SandboxedProcessService4" 86 android:process=":sandboxed_process4" 87 android:permission="org.chromium.content_shell.permission.SANDBOX" 88 android:isolatedProcess="true" 89 android:exported="false" /> 90 <service android:name="org.chromium.content.app.SandboxedProcessService5" 91 android:process=":sandboxed_process5" 92 android:permission="org.chromium.content_shell.permission.SANDBOX" 93 android:isolatedProcess="true" 94 android:exported="false" /> 95 <service android:name="org.chromium.content.app.SandboxedProcessService6" 96 android:process=":sandboxed_process6" 97 android:permission="org.chromium.content_shell.permission.SANDBOX" 98 android:isolatedProcess="true" 99 android:exported="false" /> 100 <service android:name="org.chromium.content.app.SandboxedProcessService7" 101 android:process=":sandboxed_process7" 102 android:permission="org.chromium.content_shell.permission.SANDBOX" 103 android:isolatedProcess="true" 104 android:exported="false" /> 105 <service android:name="org.chromium.content.app.SandboxedProcessService8" 106 android:process=":sandboxed_process8" 107 android:permission="org.chromium.content_shell.permission.SANDBOX" 108 android:isolatedProcess="true" 109 android:exported="false" /> 110 <service android:name="org.chromium.content.app.SandboxedProcessService9" 111 android:process=":sandboxed_process9" 112 android:permission="org.chromium.content_shell.permission.SANDBOX" 113 android:isolatedProcess="true" 114 android:exported="false" /> 115 <service android:name="org.chromium.content.app.SandboxedProcessService10" 116 android:process=":sandboxed_process10" 117 android:permission="org.chromium.content_shell.permission.SANDBOX" 118 android:isolatedProcess="true" 119 android:exported="false" /> 120 <service android:name="org.chromium.content.app.SandboxedProcessService11" 121 android:process=":sandboxed_process11" 122 android:permission="org.chromium.content_shell.permission.SANDBOX" 123 android:isolatedProcess="true" 124 android:exported="false" /> 125 <service android:name="org.chromium.content.app.SandboxedProcessService12" 126 android:process=":sandboxed_process12" 127 android:permission="org.chromium.content_shell.permission.SANDBOX" 128 android:isolatedProcess="true" 129 android:exported="false" /> 130 <service android:name="org.chromium.content.app.SandboxedProcessService13" 131 android:process=":sandboxed_process13" 132 android:permission="org.chromium.content_shell.permission.SANDBOX" 133 android:isolatedProcess="true" 134 android:exported="false" /> 135 <service android:name="org.chromium.content.app.SandboxedProcessService14" 136 android:process=":sandboxed_process14" 137 android:permission="org.chromium.content_shell.permission.SANDBOX" 138 android:isolatedProcess="true" 139 android:exported="false" /> 140 <service android:name="org.chromium.content.app.SandboxedProcessService15" 141 android:process=":sandboxed_process15" 142 android:permission="org.chromium.content_shell.permission.SANDBOX" 143 android:isolatedProcess="true" 144 android:exported="false" /> 145 <service android:name="org.chromium.content.app.SandboxedProcessService16" 146 android:process=":sandboxed_process16" 147 android:permission="org.chromium.content_shell.permission.SANDBOX" 148 android:isolatedProcess="true" 149 android:exported="false" /> 150 <service android:name="org.chromium.content.app.SandboxedProcessService17" 151 android:process=":sandboxed_process17" 152 android:permission="org.chromium.content_shell.permission.SANDBOX" 153 android:isolatedProcess="true" 154 android:exported="false" /> 155 <service android:name="org.chromium.content.app.SandboxedProcessService18" 156 android:process=":sandboxed_process18" 157 android:permission="org.chromium.content_shell.permission.SANDBOX" 158 android:isolatedProcess="true" 159 android:exported="false" /> 160 <service android:name="org.chromium.content.app.SandboxedProcessService19" 161 android:process=":sandboxed_process19" 162 android:permission="org.chromium.content_shell.permission.SANDBOX" 163 android:isolatedProcess="true" 164 android:exported="false" /> 165 166 <!-- Receiver for GCM messages. Rebroadcasts them locally for sync. --> 167 <receiver android:exported="true" 168 android:name="com.google.ipc.invalidation.external.client.contrib.MultiplexingGcmListener$GCMReceiver" 169 android:permission="com.google.android.c2dm.permission.SEND"> 170 <intent-filter> 171 <action android:name="com.google.android.c2dm.intent.RECEIVE" /> 172 <action android:name="com.google.android.c2dm.intent.REGISTRATION" /> 173 <category android:name="org.chromium.chrome.shell"/> 174 </intent-filter> 175 </receiver> 176 <service android:exported="false" 177 android:name="com.google.ipc.invalidation.external.client.contrib.MultiplexingGcmListener"> 178 <meta-data android:name="sender_ids" 179 android:value="cloudprint.c2dm (a] gmail.com,ipc.invalidation (a] gmail.com"/> 180 </service> 181 182 <!-- Notification service for sync. --> 183 <meta-data android:name="ipc.invalidation.ticl.listener_service_class" 184 android:value="org.chromium.sync.notifier.InvalidationService"/> 185 <service android:name="org.chromium.sync.notifier.InvalidationService" 186 android:exported="false"> 187 <intent-filter> 188 <action android:name="com.google.ipc.invalidation.AUTH_TOKEN_REQUEST"/> 189 </intent-filter> 190 </service> 191 <service android:exported="false" 192 android:name="com.google.ipc.invalidation.ticl.android2.TiclService"/> 193 <service android:exported="false" 194 android:name="com.google.ipc.invalidation.ticl.android2.channel.AndroidMessageSenderService"/> 195 <receiver android:exported="false" 196 android:name="com.google.ipc.invalidation.ticl.android2.AndroidInternalScheduler$AlarmReceiver"/> 197 <receiver android:exported="false" 198 android:name="com.google.ipc.invalidation.external.client.contrib.AndroidListener$AlarmReceiver"/> 199 200 <!-- Notification service multiplexed GCM receiver --> 201 <service android:exported="false" 202 android:name="com.google.ipc.invalidation.ticl.android2.channel.AndroidMessageReceiverService" 203 android:enabled="true"/> 204 <receiver android:exported="false" 205 android:name="com.google.ipc.invalidation.ticl.android2.channel.AndroidMessageReceiverService$Receiver"> 206 <intent-filter> 207 <action android:name="com.google.ipc.invalidation.gcmmplex.EVENT" /> 208 </intent-filter> 209 </receiver> 210 211 <!-- GCMDriver multiplexed GCM receiver --> 212 <service android:exported="false" 213 android:name="org.chromium.components.gcm_driver.GCMListener"/> 214 <receiver android:exported="false" 215 android:name="org.chromium.components.gcm_driver.GCMListener$Receiver"> 216 <intent-filter> 217 <action android:name="com.google.ipc.invalidation.gcmmplex.EVENT" /> 218 </intent-filter> 219 </receiver> 220 221 <provider android:name="org.chromium.chrome.browser.ChromeBrowserProvider" 222 android:authorities="org.chromium.chrome.shell" 223 android:exported="true" /> 224 225 <!-- Provider for FileProvider. --> 226 <provider android:name="android.support.v4.content.FileProvider" 227 android:authorities="org.chromium.chrome.shell.FileProvider" 228 android:exported="false" 229 android:grantUriPermissions="true"> 230 <meta-data android:name="android.support.FILE_PROVIDER_PATHS" 231 android:resource="@xml/file_paths" /> 232 </provider> 233 234 <!-- Sync adapter for browser sync. --> 235 <service android:exported="false" 236 android:name="org.chromium.chrome.shell.sync.ChromeShellSyncAdapterService"> 237 <intent-filter> 238 <action android:name="android.content.SyncAdapter" /> 239 </intent-filter> 240 <meta-data android:name="android.content.SyncAdapter" 241 android:resource="@xml/syncadapter" /> 242 </service> 243 244 <!-- Broadcast receiver that will be notified of account changes. --> 245 <receiver android:name="org.chromium.chrome.shell.signin.AccountsChangedReceiver"> 246 <intent-filter> 247 <action android:name="android.accounts.LOGIN_ACCOUNTS_CHANGED" /> 248 </intent-filter> 249 </receiver> 250 <meta-data android:name="org.chromium.content.browser.SMART_CLIP_PROVIDER" 251 android:value="org.chromium.content.browser.SmartClipProvider" /> 252 253 </application> 254 </manifest> 255