summaryrefslogtreecommitdiffstats
path: root/mobile/android/base/AndroidManifest.xml.in
diff options
context:
space:
mode:
Diffstat (limited to 'mobile/android/base/AndroidManifest.xml.in')
-rw-r--r--mobile/android/base/AndroidManifest.xml.in447
1 files changed, 447 insertions, 0 deletions
diff --git a/mobile/android/base/AndroidManifest.xml.in b/mobile/android/base/AndroidManifest.xml.in
new file mode 100644
index 000000000..2ec98c35a
--- /dev/null
+++ b/mobile/android/base/AndroidManifest.xml.in
@@ -0,0 +1,447 @@
+#filter substitution
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="@ANDROID_PACKAGE_NAME@"
+ android:installLocation="auto"
+ android:versionCode="@ANDROID_VERSION_CODE@"
+ android:versionName="@MOZ_APP_VERSION@"
+#ifdef MOZ_ANDROID_SHARED_ID
+ android:sharedUserId="@MOZ_ANDROID_SHARED_ID@"
+#endif
+ >
+ <uses-sdk android:minSdkVersion="@MOZ_ANDROID_MIN_SDK_VERSION@"
+#ifdef MOZ_ANDROID_MAX_SDK_VERSION
+ android:maxSdkVersion="@MOZ_ANDROID_MAX_SDK_VERSION@"
+#endif
+ android:targetSdkVersion="23"/>
+
+<!-- The bouncer APK and the main APK should define the same set of
+ <permission>, <uses-permission>, and <uses-feature> elements. This reduces
+ the likelihood of permission-related surprises when installing the main APK
+ on top of a pre-installed bouncer APK. Add such shared elements in the
+ fileincluded here, so that they can be referenced by both APKs. -->
+#include FennecManifest_permissions.xml.in
+
+ <application android:label="@string/moz_app_displayname"
+ android:icon="@drawable/icon"
+ android:logo="@drawable/logo"
+ android:name="@MOZ_ANDROID_APPLICATION_CLASS@"
+ android:hardwareAccelerated="true"
+ android:allowBackup="false"
+# The preprocessor does not yet support arbitrary parentheses, so this cannot
+# be parenthesized thus to clarify that the logical AND operator has precedence:
+# !defined(MOZILLA_OFFICIAL) || (defined(NIGHTLY_BUILD) && defined(MOZ_DEBUG))
+#if !defined(MOZILLA_OFFICIAL) || defined(NIGHTLY_BUILD) && defined(MOZ_DEBUG)
+ android:debuggable="true">
+#else
+ android:debuggable="false">
+#endif
+
+ <meta-data android:name="com.sec.android.support.multiwindow" android:value="true"/>
+
+#ifdef MOZ_NATIVE_DEVICES
+ <!-- This resources comes from Google Play Services. Required for casting support. -->
+ <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
+ <service android:name="org.mozilla.gecko.RemotePresentationService" android:exported="false"/>
+
+#endif
+
+ <!-- This activity handles all incoming Intents and dispatches them to other activities. -->
+ <activity android:name="org.mozilla.gecko.LauncherActivity"
+ android:theme="@android:style/Theme.Translucent.NoTitleBar"
+ android:relinquishTaskIdentity="true"
+ android:taskAffinity=""
+ android:excludeFromRecents="true" />
+
+ <!-- Fennec is shipped as the Android package named
+ org.mozilla.{fennec,firefox,firefox_beta}. The internal Java
+ package hierarchy inside the Android package used to have an
+ org.mozilla.{fennec,firefox,firefox_beta} subtree *and* an
+ org.mozilla.gecko subtree; it now only has org.mozilla.gecko. -->
+ <activity android:name="@MOZ_ANDROID_BROWSER_INTENT_CLASS@"
+ android:label="@string/moz_app_displayname"
+ android:taskAffinity="@ANDROID_PACKAGE_NAME@.BROWSER"
+ android:alwaysRetainTaskState="true"
+ android:configChanges="keyboard|keyboardHidden|mcc|mnc|orientation|screenSize|locale|layoutDirection|smallestScreenSize|screenLayout"
+ android:windowSoftInputMode="stateUnspecified|adjustResize"
+ android:launchMode="singleTask"
+ android:exported="true"
+ android:theme="@style/Gecko.App" />
+
+ <!-- Bug 1256615 / Bug 1268455: We published an .App alias and we need to maintain it
+ forever. If we don't, home screen shortcuts will disappear because the intent
+ filter details change. -->
+ <activity-alias android:name=".App"
+ android:label="@MOZ_APP_DISPLAYNAME@"
+ android:targetActivity="org.mozilla.gecko.LauncherActivity">
+
+ <!-- android:priority ranges between -1000 and 1000. We never want
+ another activity to usurp the MAIN action, so we ratchet our
+ priority up. -->
+ <intent-filter android:priority="999">
+ <action android:name="android.intent.action.MAIN" />
+ <category android:name="android.intent.category.LAUNCHER" />
+ <category android:name="android.intent.category.MULTIWINDOW_LAUNCHER"/>
+ <category android:name="android.intent.category.APP_BROWSER" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+
+ <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="http" />
+ <data android:scheme="https" />
+ <data android:scheme="about" />
+ <data android:scheme="javascript" />
+ </intent-filter>
+ <intent-filter>
+ <action android:name="android.intent.action.VIEW" />
+ <category android:name="android.intent.category.BROWSABLE" />
+ <category android:name="android.intent.category.DEFAULT" />
+ <data android:scheme="file" />
+ <data android:scheme="http" />
+ <data android:scheme="https" />
+ <data android:mimeType="text/html"/>
+ <data android:mimeType="text/plain"/>
+ <data android:mimeType="application/xhtml+xml"/>
+ </intent-filter>
+
+ <meta-data android:name="com.sec.minimode.icon.portrait.normal"
+ android:resource="@drawable/icon"/>
+
+ <meta-data android:name="com.sec.minimode.icon.landscape.normal"
+ android:resource="@drawable/icon" />
+
+ <intent-filter>
+ <action android:name="org.mozilla.gecko.ACTION_ALERT_CALLBACK" />
+ </intent-filter>
+
+ <intent-filter>
+ <action android:name="org.mozilla.gecko.GUEST_SESSION_INPROGRESS" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+
+ <intent-filter>
+ <action android:name="org.mozilla.gecko.UPDATE"/>
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+
+ <intent-filter>
+ <action android:name="android.intent.action.WEB_SEARCH" />
+ <category android:name="android.intent.category.DEFAULT" />
+ <category android:name="android.intent.category.BROWSABLE" />
+ <data android:scheme="" />
+ <data android:scheme="http" />
+ <data android:scheme="https" />
+ </intent-filter>
+
+ <!-- For XPI installs from websites and the download manager. -->
+ <intent-filter>
+ <action android:name="android.intent.action.VIEW" />
+ <category android:name="android.intent.category.DEFAULT" />
+ <data android:scheme="file" />
+ <data android:scheme="http" />
+ <data android:scheme="https" />
+ <data android:mimeType="application/x-xpinstall" />
+ </intent-filter>
+
+ <!-- For XPI installs from file: URLs. -->
+ <intent-filter>
+ <action android:name="android.intent.action.VIEW" />
+ <category android:name="android.intent.category.DEFAULT" />
+ <data android:host="" />
+ <data android:scheme="file" />
+ <data android:pathPattern=".*\\.xpi" />
+ </intent-filter>
+
+#ifdef MOZ_ANDROID_BEAM
+ <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>
+#endif
+
+ <!-- For debugging -->
+ <intent-filter>
+ <action android:name="org.mozilla.gecko.DEBUG" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+ </activity-alias>
+
+ <service android:name="org.mozilla.gecko.GeckoService" />
+
+ <activity android:name="org.mozilla.gecko.trackingprotection.TrackingProtectionPrompt"
+ android:launchMode="singleTop"
+ android:theme="@style/OverlayActivity" />
+
+ <activity android:name="org.mozilla.gecko.promotion.SimpleHelperUI"
+ android:launchMode="singleTop"
+ android:theme="@style/OverlayActivity" />
+
+ <activity android:name="org.mozilla.gecko.promotion.HomeScreenPrompt"
+ android:launchMode="singleTop"
+ android:theme="@style/OverlayActivity" />
+
+ <!-- The main reason for the Tab Queue build flag is to not mess with the VIEW intent filter
+ before the rest of the plumbing is in place -->
+
+ <service android:name="org.mozilla.gecko.tabqueue.TabQueueService" />
+
+ <activity android:name="org.mozilla.gecko.tabqueue.TabQueuePrompt"
+ android:launchMode="singleTop"
+ android:theme="@style/OverlayActivity" />
+
+ <receiver android:name="org.mozilla.gecko.restrictions.RestrictionProvider">
+ <intent-filter>
+ <action android:name="android.intent.action.GET_RESTRICTION_ENTRIES" />
+ </intent-filter>
+ </receiver>
+
+ <!-- Masquerade as the Resolver so that we can be opened from the Marketplace. -->
+ <activity-alias
+ android:name="com.android.internal.app.ResolverActivity"
+ android:targetActivity="@MOZ_ANDROID_BROWSER_INTENT_CLASS@"
+ android:exported="true" />
+
+ <receiver android:name="org.mozilla.gecko.GeckoUpdateReceiver">
+ <intent-filter>
+ <action android:name="@ANDROID_PACKAGE_NAME@.CHECK_UPDATE_RESULT" />
+ </intent-filter>
+ </receiver>
+
+ <receiver android:name="org.mozilla.gecko.GeckoMessageReceiver"
+ android:exported="false">
+ </receiver>
+
+ <!-- Catch install referrer so we can do post-install work. -->
+ <receiver android:name="org.mozilla.gecko.distribution.ReferrerReceiver"
+ android:exported="true">
+ <intent-filter>
+ <action android:name="com.android.vending.INSTALL_REFERRER" />
+ </intent-filter>
+ </receiver>
+
+ <service android:name="org.mozilla.gecko.Restarter"
+ android:exported="false"
+ android:process="@MANGLED_ANDROID_PACKAGE_NAME@.Restarter">
+ </service>
+
+ <service android:name="org.mozilla.gecko.media.MediaControlService"
+ android:exported="false">
+ </service>
+
+ <receiver android:name="org.mozilla.gecko.AlarmReceiver" >
+ </receiver>
+
+ <receiver
+ android:name="org.mozilla.gecko.notifications.WhatsNewReceiver"
+ android:exported="false">
+ <intent-filter>
+ <action android:name="android.intent.action.PACKAGE_REPLACED" />
+ <data android:scheme="package" android:path="org.mozilla.gecko" />
+ </intent-filter>
+ </receiver>
+
+ <receiver
+ android:name="org.mozilla.gecko.notifications.NotificationReceiver"
+ android:exported="false">
+ <!-- Notification API V2 -->
+ <intent-filter>
+ <action android:name="@ANDROID_PACKAGE_NAME@.helperBroadcastAction" />
+ <action android:name="@ANDROID_PACKAGE_NAME@.NOTIFICATION_CLICK" />
+ <action android:name="@ANDROID_PACKAGE_NAME@.NOTIFICATION_CLOSE" />
+ <data android:scheme="moz-notification" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+ </receiver>
+
+#include ../services/manifests/FxAccountAndroidManifest_activities.xml.in
+#ifdef MOZ_ANDROID_SEARCH_ACTIVITY
+#include ../search/manifests/SearchAndroidManifest_activities.xml.in
+#endif
+
+#if MOZ_CRASHREPORTER
+ <activity android:name="org.mozilla.gecko.CrashReporter"
+ android:process="@ANDROID_PACKAGE_NAME@.CrashReporter"
+ android:label="@string/crash_reporter_title"
+ android:icon="@drawable/crash_reporter"
+ android:theme="@style/Gecko"
+ android:exported="false"
+ android:excludeFromRecents="true">
+ <intent-filter>
+ <action android:name="org.mozilla.gecko.reportCrash" />
+ </intent-filter>
+ </activity>
+#endif
+
+ <activity android:name="org.mozilla.gecko.preferences.GeckoPreferences"
+ android:theme="@style/Gecko.Preferences"
+ android:configChanges="orientation|screenSize|locale|layoutDirection"
+ android:excludeFromRecents="true"/>
+
+ <provider android:name="org.mozilla.gecko.db.BrowserProvider"
+ android:authorities="@ANDROID_PACKAGE_NAME@.db.browser"
+ android:exported="false"/>
+
+ <provider android:name="org.mozilla.gecko.distribution.PartnerBookmarksProviderProxy"
+ android:authorities="@ANDROID_PACKAGE_NAME@.partnerbookmarks"
+ android:exported="false"/>
+
+ <!-- Share overlay activity
+
+ Setting launchMode="singleTop" ensures onNewIntent is called when the Activity is
+ reused. Ideally we create a new instance but Android L breaks this (bug 1137928). -->
+ <activity android:name="org.mozilla.gecko.overlays.ui.ShareDialog"
+ android:label="@string/overlay_share_label"
+ android:theme="@style/OverlayActivity"
+ android:configChanges="keyboard|keyboardHidden|mcc|mnc|locale|layoutDirection"
+ android:launchMode="singleTop"
+ android:windowSoftInputMode="stateAlwaysHidden|adjustResize">
+
+ <intent-filter>
+ <action android:name="android.intent.action.SEND" />
+ <category android:name="android.intent.category.DEFAULT" />
+ <data android:mimeType="text/plain" />
+ </intent-filter>
+
+ </activity>
+
+#ifdef MOZ_ANDROID_CUSTOM_TABS
+ <activity android:name="org.mozilla.gecko.customtabs.CustomTabsActivity"
+ android:theme="@style/Theme.AppCompat.NoActionBar" />
+#endif
+
+ <!-- Service to handle requests from overlays. -->
+ <service android:name="org.mozilla.gecko.overlays.service.OverlayActionService" />
+
+ <!--
+ Ensure that passwords provider runs in its own process. (Bug 718760.)
+ Process name is per-application to avoid loading CPs from multiple
+ Fennec versions into the same process. (Bug 749727.)
+ Process name is a mangled version to avoid a Talos bug. (Bug 750548.)
+ -->
+ <provider android:name="org.mozilla.gecko.db.PasswordsProvider"
+ android:label="@string/sync_configure_engines_title_passwords"
+ android:authorities="@ANDROID_PACKAGE_NAME@.db.passwords"
+ android:exported="false"
+ android:process="@MANGLED_ANDROID_PACKAGE_NAME@.PasswordsProvider"/>
+
+ <provider android:name="org.mozilla.gecko.db.LoginsProvider"
+ android:label="@string/sync_configure_engines_title_passwords"
+ android:authorities="@ANDROID_PACKAGE_NAME@.db.logins"
+ android:exported="false"/>
+
+ <provider android:name="org.mozilla.gecko.db.FormHistoryProvider"
+ android:label="@string/sync_configure_engines_title_history"
+ android:authorities="@ANDROID_PACKAGE_NAME@.db.formhistory"
+ android:exported="false"/>
+
+ <provider android:name="org.mozilla.gecko.GeckoProfilesProvider"
+ android:authorities="@ANDROID_PACKAGE_NAME@.profiles"
+ android:exported="false"/>
+
+ <provider android:name="org.mozilla.gecko.db.TabsProvider"
+ android:label="@string/sync_configure_engines_title_tabs"
+ android:authorities="@ANDROID_PACKAGE_NAME@.db.tabs"
+ android:exported="false"/>
+
+ <provider android:name="org.mozilla.gecko.db.HomeProvider"
+ android:authorities="@ANDROID_PACKAGE_NAME@.db.home"
+ android:exported="false"/>
+
+ <provider android:name="org.mozilla.gecko.db.SearchHistoryProvider"
+ android:authorities="@ANDROID_PACKAGE_NAME@.db.searchhistory"
+ android:exported="false"/>
+
+ <service
+ android:exported="false"
+ android:name="org.mozilla.gecko.updater.UpdateService"
+ android:process="@MANGLED_ANDROID_PACKAGE_NAME@.UpdateService">
+ </service>
+
+ <service
+ android:exported="false"
+ android:name="org.mozilla.gecko.notifications.NotificationService">
+ </service>
+
+ <service
+ android:exported="false"
+ android:name="org.mozilla.gecko.dlc.DownloadContentService">
+ </service>
+
+ <service
+ android:exported="false"
+ android:name="org.mozilla.gecko.feeds.FeedService">
+ </service>
+
+ <!-- DON'T EXPORT THIS, please! An attacker could delete arbitrary files. -->
+ <service
+ android:exported="false"
+ android:name="org.mozilla.gecko.cleanup.FileCleanupService">
+ </service>
+
+ <receiver
+ android:name="org.mozilla.gecko.feeds.FeedAlarmReceiver"
+ android:exported="false" />
+
+ <receiver
+ android:name="org.mozilla.gecko.BootReceiver"
+ android:exported="false">
+ <intent-filter>
+ <action android:name="android.intent.action.BOOT_COMPLETED"></action>
+ </intent-filter>
+ </receiver>
+
+ <receiver
+ android:name="org.mozilla.gecko.PackageReplacedReceiver"
+ android:exported="false">
+ <intent-filter>
+ <action android:name="android.intent.action.MY_PACKAGE_REPLACED"></action>
+ </intent-filter>
+ </receiver>
+
+ <service
+ android:name="org.mozilla.gecko.telemetry.TelemetryUploadService"
+ android:exported="false"/>
+
+#ifdef MOZ_ANDROID_CUSTOM_TABS
+ <service
+ android:name="org.mozilla.gecko.customtabs.GeckoCustomTabsService"
+ android:exported="true">
+ <intent-filter>
+ <action android:name="android.support.customtabs.action.CustomTabsService" />
+ </intent-filter>
+ </service>
+#endif
+
+#include ../services/manifests/FxAccountAndroidManifest_services.xml.in
+
+ <service
+ android:name="org.mozilla.gecko.tabqueue.TabReceivedService"
+ android:exported="false" />
+
+
+#ifdef MOZ_ANDROID_SEARCH_ACTIVITY
+#include ../search/manifests/SearchAndroidManifest_services.xml.in
+#endif
+#ifdef MOZ_ANDROID_MLS_STUMBLER
+#include ../stumbler/manifests/StumblerManifest_services.xml.in
+#endif
+
+#ifdef MOZ_ANDROID_GCM
+#include GcmAndroidManifest_services.xml.in
+#endif
+
+ <service
+ android:name="org.mozilla.gecko.media.MediaManager"
+ android:enabled="true"
+ android:exported="false"
+ android:process=":media"
+ android:isolatedProcess="false">
+ </service>
+
+ </application>
+</manifest>