1 <?xml version="1.0" encoding="utf-8"?> 2 3 <!-- Copyright (c) 2012 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.testshell"> 11 12 <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="19" /> 13 <permission android:name="org.chromium.chrome.testshell.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.CAMERA" /> 18 <uses-permission android:name="android.permission.GET_ACCOUNTS"/> 19 <uses-permission android:name="android.permission.INTERNET"/> 20 <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/> 21 <uses-permission android:name="android.permission.RECORD_AUDIO"/> 22 <uses-permission android:name="android.permission.VIBRATE"/> 23 <uses-permission android:name="android.permission.WAKE_LOCK"/> 24 <uses-permission android:name="android.permission.READ_SYNC_SETTINGS"/> 25 <uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" /> 26 <uses-permission android:name="android.permission.USE_CREDENTIALS" /> 27 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 28 <!-- Only Chrome can receive the messages and registration result for GCM --> 29 <permission android:name="org.chromium.chrome.testshell.permission.C2D_MESSAGE" 30 android:protectionLevel="signature" /> 31 <uses-permission android:name="org.chromium.chrome.testshell.permission.C2D_MESSAGE" /> 32 <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> 33 34 <application android:name="org.chromium.chrome.testshell.ChromiumTestShellApplication" 35 android:icon="@mipmap/app_icon" 36 android:label="Chrome Shell"> 37 <activity android:name="org.chromium.chrome.testshell.ChromiumTestShellActivity" 38 android:launchMode="singleTask" 39 android:theme="@android:style/Theme.Holo.Light.NoActionBar" 40 android:configChanges="orientation|keyboardHidden|keyboard|screenSize" 41 android:hardwareAccelerated="true"> 42 <intent-filter> 43 <action android:name="android.intent.action.MAIN" /> 44 <category android:name="android.intent.category.LAUNCHER" /> 45 </intent-filter> 46 </activity> 47 <activity android:name="org.chromium.sync.test.util.MockGrantCredentialsPermissionActivity" 48 android:exported="true"> 49 <intent-filter> 50 <action android:name="android.intent.action.VIEW" /> 51 <category android:name="android.intent.category.DEFAULT" /> 52 </intent-filter> 53 </activity> 54 <!-- The following service entries exist in order to allow us to 55 start more than one sandboxed process. --> 56 57 <!-- NOTE: If you change the values of "android:process" for any of the below services, 58 you also need to update kHelperProcessExecutableName in chrome_constants.cc. --> 59 <service android:name="org.chromium.content.app.SandboxedProcessService0" 60 android:process=":sandboxed_process0" 61 android:permission="org.chromium.content_shell.permission.SANDBOX" 62 android:isolatedProcess="true" 63 android:exported="false" /> 64 <service android:name="org.chromium.content.app.SandboxedProcessService1" 65 android:process=":sandboxed_process1" 66 android:permission="org.chromium.content_shell.permission.SANDBOX" 67 android:isolatedProcess="true" 68 android:exported="false" /> 69 <service android:name="org.chromium.content.app.SandboxedProcessService2" 70 android:process=":sandboxed_process2" 71 android:permission="org.chromium.content_shell.permission.SANDBOX" 72 android:isolatedProcess="true" 73 android:exported="false" /> 74 <service android:name="org.chromium.content.app.SandboxedProcessService3" 75 android:process=":sandboxed_process3" 76 android:permission="org.chromium.content_shell.permission.SANDBOX" 77 android:isolatedProcess="true" 78 android:exported="false" /> 79 <service android:name="org.chromium.content.app.SandboxedProcessService4" 80 android:process=":sandboxed_process4" 81 android:permission="org.chromium.content_shell.permission.SANDBOX" 82 android:isolatedProcess="true" 83 android:exported="false" /> 84 <service android:name="org.chromium.content.app.SandboxedProcessService5" 85 android:process=":sandboxed_process5" 86 android:permission="org.chromium.content_shell.permission.SANDBOX" 87 android:isolatedProcess="true" 88 android:exported="false" /> 89 <service android:name="org.chromium.content.app.SandboxedProcessService6" 90 android:process=":sandboxed_process6" 91 android:permission="org.chromium.content_shell.permission.SANDBOX" 92 android:isolatedProcess="true" 93 android:exported="false" /> 94 <service android:name="org.chromium.content.app.SandboxedProcessService7" 95 android:process=":sandboxed_process7" 96 android:permission="org.chromium.content_shell.permission.SANDBOX" 97 android:isolatedProcess="true" 98 android:exported="false" /> 99 <service android:name="org.chromium.content.app.SandboxedProcessService8" 100 android:process=":sandboxed_process8" 101 android:permission="org.chromium.content_shell.permission.SANDBOX" 102 android:isolatedProcess="true" 103 android:exported="false" /> 104 <service android:name="org.chromium.content.app.SandboxedProcessService9" 105 android:process=":sandboxed_process9" 106 android:permission="org.chromium.content_shell.permission.SANDBOX" 107 android:isolatedProcess="true" 108 android:exported="false" /> 109 <service android:name="org.chromium.content.app.SandboxedProcessService10" 110 android:process=":sandboxed_process10" 111 android:permission="org.chromium.content_shell.permission.SANDBOX" 112 android:isolatedProcess="true" 113 android:exported="false" /> 114 <service android:name="org.chromium.content.app.SandboxedProcessService11" 115 android:process=":sandboxed_process11" 116 android:permission="org.chromium.content_shell.permission.SANDBOX" 117 android:isolatedProcess="true" 118 android:exported="false" /> 119 <service android:name="org.chromium.content.app.SandboxedProcessService12" 120 android:process=":sandboxed_process12" 121 android:permission="org.chromium.content_shell.permission.SANDBOX" 122 android:isolatedProcess="true" 123 android:exported="false" /> 124 125 <!-- Receiver for GCM messages. Rebroadcasts them locally for sync. --> 126 <receiver android:exported="true" 127 android:name="com.google.ipc.invalidation.external.client.contrib.MultiplexingGcmListener$GCMReceiver" 128 android:permission="com.google.android.c2dm.permission.SEND"> 129 <intent-filter> 130 <action android:name="com.google.android.c2dm.intent.RECEIVE" /> 131 <action android:name="com.google.android.c2dm.intent.REGISTRATION" /> 132 <category android:name="org.chromium.chrome.testshell"/> 133 </intent-filter> 134 </receiver> 135 <service android:exported="false" 136 android:name="com.google.ipc.invalidation.external.client.contrib.MultiplexingGcmListener"> 137 <meta-data android:name="sender_ids" 138 android:value="cloudprint.c2dm (a] gmail.com,ipc.invalidation (a] gmail.com"/> 139 </service> 140 141 <!-- Notification service for sync. --> 142 <meta-data android:name="ipc.invalidation.ticl.listener_service_class" 143 android:value="org.chromium.sync.notifier.InvalidationService"/> 144 <service android:name="org.chromium.sync.notifier.InvalidationService" 145 android:exported="false"> 146 <intent-filter> 147 <action android:name="com.google.ipc.invalidation.AUTH_TOKEN_REQUEST"/> 148 </intent-filter> 149 </service> 150 <service android:exported="false" 151 android:name="com.google.ipc.invalidation.ticl.android2.TiclService"/> 152 <service android:exported="false" 153 android:name="com.google.ipc.invalidation.ticl.android2.channel.AndroidMessageSenderService"/> 154 <receiver android:exported="false" 155 android:name="com.google.ipc.invalidation.ticl.android2.AndroidInternalScheduler$AlarmReceiver"/> 156 <receiver android:exported="false" 157 android:name="com.google.ipc.invalidation.external.client.contrib.AndroidListener$AlarmReceiver"/> 158 159 <!-- Notification service multiplexed GCM receiver --> 160 <service android:exported="false" 161 android:name="com.google.ipc.invalidation.ticl.android2.channel.AndroidMessageReceiverService" 162 android:enabled="true"/> 163 <receiver android:exported="false" 164 android:name="com.google.ipc.invalidation.ticl.android2.channel.AndroidMessageReceiverService$Receiver"> 165 <intent-filter> 166 <action android:name="com.google.ipc.invalidation.gcmmplex.EVENT" /> 167 </intent-filter> 168 </receiver> 169 170 <provider android:name="org.chromium.chrome.browser.ChromeBrowserProvider" 171 android:authorities="org.chromium.chrome.testshell" 172 android:exported="true" /> 173 174 <!-- Sync adapter for browser sync. --> 175 <service android:exported="false" 176 android:name="org.chromium.chrome.testshell.sync.ChromiumTestShellSyncAdapterService"> 177 <intent-filter> 178 <action android:name="android.content.SyncAdapter" /> 179 </intent-filter> 180 <meta-data android:name="android.content.SyncAdapter" 181 android:resource="@xml/syncadapter" /> 182 </service> 183 184 <!-- Broadcast receiver that will be notified of account changes. --> 185 <receiver android:name="org.chromium.chrome.testshell.signin.AccountsChangedReceiver"> 186 <intent-filter> 187 <action android:name="android.accounts.LOGIN_ACCOUNTS_CHANGED" /> 188 </intent-filter> 189 </receiver> 190 </application> 191 </manifest> 192