Files
brave-core/android/java/AndroidManifest.xml
T
Serg 90fadf6259 [Android] Register Brave as Android AutofillService for address autofill (#35567)
* [Android] Register Brave as Android AutofillService for address autofill

Re-enables the Android AutofillService that was removed in
https://github.com/brave/brave-core/pull/25759 due to crashes on
split-APK installs. Uses the SplitCompat pattern
(SplitCompatAutofillService base class) so the service works correctly
when installed from the Play Store.

When the user selects Brave as their autofill provider in Android Settings,
Brave can fill saved address profiles into third-party apps and save new
addresses from manually filled forms.

Resolves: https://github.com/brave/brave-browser/issues/41334
2026-04-16 14:23:41 -04:00

243 lines
9.9 KiB
XML

<receiver android:name="org.chromium.chrome.browser.notifications.retention.RetentionNotificationPublisher"
android:exported="false">
</receiver>
<receiver android:name="org.chromium.chrome.browser.vpn.timer.TimerVpnActionReceiver"
android:exported="false">
</receiver>
<activity
android:name="org.chromium.chrome.browser.customtabs.BraveAccountCustomTabActivity"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize|uiMode|navigation"
android:theme="@style/BraveAccountTheme"
android:exported="false"/>
<activity
android:name="org.chromium.chrome.browser.customtabs.FullScreenCustomTabActivity"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize|uiMode|navigation"
android:theme="@style/BottomSheetActivityTheme"
android:exported="false"/>
<!-- Onboarding notification -->
<receiver android:name="org.chromium.chrome.browser.notifications.BraveOnboardingNotification"
android:exported="false">
</receiver>
<receiver android:name="org.chromium.chrome.browser.vpn.DisconnectVpnBroadcastReceiver"
android:exported="false">
<intent-filter>
<action android:name="disconnect_vpn" />
</intent-filter>
</receiver>
<activity
android:name="org.chromium.chrome.browser.onboarding.OnboardingActivity"
android:theme="@style/Theme.Chromium.Activity.Fullscreen"
android:screenOrientation="sensorPortrait"
tools:ignore="LockedOrientationActivity,DiscouragedApi"/>
<activity
android:name="org.chromium.chrome.browser.firstrun.WelcomeOnboardingActivity"
android:theme="@style/Theme.Brave.WelcomeOnboarding"
android:screenOrientation="sensorPortrait"
tools:ignore="LockedOrientationActivity,DiscouragedApi"/>
<activity android:name="org.chromium.chrome.browser.crypto_wallet.activities.BraveWalletActivity"
android:theme="@style/Theme.Chromium.Activity"
android:screenOrientation="sensorPortrait"
tools:ignore="LockedOrientationActivity,DiscouragedApi"/>
<activity android:name="org.chromium.chrome.browser.crypto_wallet.activities.AddAccountActivity"
android:theme="@style/Theme.Chromium.Activity"
android:screenOrientation="sensorPortrait"
tools:ignore="LockedOrientationActivity,DiscouragedApi"/>
<activity android:name="org.chromium.chrome.browser.crypto_wallet.activities.NetworkSelectorActivity"
android:theme="@style/Theme.Chromium.Activity"
android:screenOrientation="sensorPortrait"
tools:ignore="LockedOrientationActivity,DiscouragedApi"/>
<activity android:name="org.chromium.chrome.browser.crypto_wallet.activities.AccountSelectorActivity"
android:theme="@style/Theme.Chromium.Activity"
android:screenOrientation="sensorPortrait"
tools:ignore="LockedOrientationActivity,DiscouragedApi"/>
<activity android:name="org.chromium.chrome.browser.crypto_wallet.activities.AdvanceTxSettingActivity"
android:theme="@style/Theme.Chromium.Activity"
android:screenOrientation="sensorPortrait"
tools:ignore="LockedOrientationActivity,DiscouragedApi"/>
<activity android:name="org.chromium.chrome.browser.crypto_wallet.activities.BraveWalletDAppsActivity"
android:theme="@style/Theme.Chromium.Activity.FakeTranslucent"
android:screenOrientation="sensorPortrait"
tools:ignore="LockedOrientationActivity,DiscouragedApi"/>
<activity
android:name="org.chromium.chrome.browser.vpn.split_tunnel.SplitTunnelActivity"
android:theme="@style/Theme.Chromium.Activity"
android:screenOrientation="sensorPortrait"
tools:ignore="LockedOrientationActivity,DiscouragedApi"/>
<activity
android:name="org.chromium.chrome.browser.vpn.activities.VpnPaywallActivity"
android:theme="@style/Theme.Chromium.Activity"
android:noHistory="true"
android:launchMode="singleTask" />
<activity
android:name="org.chromium.chrome.browser.vpn.activities.BraveVpnProfileActivity"
android:theme="@style/Theme.Chromium.Activity"
android:noHistory="true"
android:launchMode="singleTask"
android:screenOrientation="sensorPortrait"
tools:ignore="LockedOrientationActivity,DiscouragedApi"/>
<activity
android:name="org.chromium.chrome.browser.vpn.activities.VpnAlwaysOnActivity"
android:theme="@style/Theme.Chromium.Activity"
android:noHistory="true"
android:launchMode="singleTask"
android:screenOrientation="sensorPortrait"
tools:ignore="LockedOrientationActivity,DiscouragedApi"/>
<activity
android:name="org.chromium.chrome.browser.vpn.activities.VpnServerSelectionActivity"
android:theme="@style/Theme.Chromium.Activity"
android:screenOrientation="sensorPortrait"
tools:ignore="LockedOrientationActivity,DiscouragedApi"/>
<activity
android:name="org.chromium.chrome.browser.vpn.activities.VpnServerActivity"
android:theme="@style/Theme.Chromium.Activity"
android:screenOrientation="sensorPortrait"
tools:ignore="LockedOrientationActivity,DiscouragedApi"/>
<activity
android:name="org.chromium.chrome.browser.vpn.activities.BraveVpnParentActivity"
android:theme="@style/Theme.Chromium.Activity"
android:screenOrientation="sensorPortrait"
tools:ignore="LockedOrientationActivity,DiscouragedApi"/>
<activity
android:name="org.chromium.chrome.browser.vpn.activities.BraveVpnSupportActivity"
android:theme="@style/Theme.Chromium.Activity"
android:screenOrientation="sensorPortrait"
tools:ignore="LockedOrientationActivity,DiscouragedApi"/>
<activity
android:name="org.chromium.chrome.browser.playlist.PlaylistHostActivity"
android:theme="@style/Theme.Chromium.Activity.Fullscreen"
android:configChanges="orientation|keyboardHidden|screenSize"
android:screenOrientation="sensorPortrait"
tools:ignore="LockedOrientationActivity,DiscouragedApi"/>
<activity android:name="org.chromium.chrome.browser.settings.BraveSettingsActivity"
android:theme="@style/Theme.Chromium.Settings"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize"
android:label="@string/settings"
android:exported="false">
</activity>
<activity
android:name="org.chromium.chrome.browser.app.bookmarks.BraveBookmarkActivity"
android:theme="@style/Theme.Chromium.Activity.Fullscreen"
android:exported="false"
android:windowSoftInputMode="stateAlwaysHidden|adjustResize"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize"/>
<activity
android:name="org.chromium.chrome.browser.brave_leo.BraveLeoPlansActivity"
android:theme="@style/Theme.Chromium.Activity"
android:noHistory="true"
android:launchMode="singleTask"/>
<activity
android:name="org.chromium.chrome.browser.brave_origin.BraveOriginPlansActivity"
android:theme="@style/Theme.Chromium.Activity"
android:noHistory="true"
android:launchMode="singleTask"/>
<!-- Upgrade related -->
<receiver android:name="org.chromium.chrome.browser.upgrade.BravePackageReplacedBroadcastReceiver"
android:exported="false">
<intent-filter>
<action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
</intent-filter>
</receiver>
<receiver
android:name="org.chromium.chrome.browser.widget.quickactionsearchandbookmark.QuickActionSearchAndBookmarkWidgetProvider"
android:exported="false">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/quick_action_search_and_bookmark_widget_info" />
</receiver>
<service
android:name="org.chromium.chrome.browser.widget.quickactionsearchandbookmark.QuickActionSearchAndBookmarkWidgetService"
android:permission="android.permission.BIND_REMOTEVIEWS"
android:exported="false" />
<service
android:name="org.chromium.chrome.browser.autofill.BraveAutofillService"
android:label="@string/app_name"
android:permission="android.permission.BIND_AUTOFILL_SERVICE"
android:exported="true">
<meta-data
android:name="android.autofill"
android:resource="@xml/autofill_service_configuration" />
<intent-filter>
<action android:name="android.service.autofill.AutofillService" />
</intent-filter>
</service>
<service
android:name="org.chromium.chrome.browser.vpn.wireguard.WireguardService"
android:foregroundServiceType="dataSync"
android:exported="false">
</service>
<service
android:name="org.chromium.chrome.browser.playlist.hls_content.HlsService"
android:exported="false">
</service>
<service
android:name="com.wireguard.android.backend.GoBackend$VpnService"
android:permission="android.permission.BIND_VPN_SERVICE"
android:exported="false">
<intent-filter>
<action android:name="android.net.VpnService" />
</intent-filter>
</service>
<activity
android:name="com.brave.playlist.activity.PlaylistMenuOnboardingActivity"
android:exported="false"
android:launchMode="singleTask"
android:theme="@style/Theme.Chromium.Activity.Fullscreen" />
<service
android:name="com.brave.playlist.playback_service.VideoPlaybackService"
android:foregroundServiceType="mediaPlayback"
android:exported="false">
<intent-filter>
<action android:name="androidx.media3.session.MediaSessionService"/>
<action android:name="android.media.browse.MediaBrowserService"/>
</intent-filter>
</service>
<service android:name="org.chromium.chrome.browser.media.ui.BraveMediaNotificationControllerServices$PlaybackListenerMicService"
android:foregroundServiceType="mediaPlayback|microphone" android:exported="false">
<intent-filter>
<action android:name="android.intent.action.MEDIA_BUTTON" />
</intent-filter>
</service>
<!-- This activity is used for search provider widget -->
<activity android:name="org.chromium.chrome.browser.searchwidget.SearchWidgetProviderActivity"
android:theme="@style/Theme.Chromium.SearchActivity"
android:exported="true"/>