diff --git a/src/Android/Accessibility/AccessibilityHelpers.cs b/src/Android/Accessibility/AccessibilityHelpers.cs index 5c2295837..1cf6eae3a 100644 --- a/src/Android/Accessibility/AccessibilityHelpers.cs +++ b/src/Android/Accessibility/AccessibilityHelpers.cs @@ -23,65 +23,66 @@ namespace Bit.Droid.Accessibility public static bool IsAutofillTileAdded = false; public static bool IsAccessibilityBroadcastReady = false; + // Be sure to keep these entries sorted alphabetically public static Dictionary SupportedBrowsers => new List { - new Browser("com.android.chrome", "url_bar"), - new Browser("com.chrome.beta", "url_bar"), - new Browser("org.chromium.chrome", "url_bar"), + new Browser("acr.browser.barebones", "search"), + new Browser("acr.browser.lightning", "search"), + new Browser("com.amazon.cloud9", "url"), new Browser("com.android.browser", "url"), + new Browser("com.android.chrome", "url_bar"), new Browser("com.brave.browser", "url_bar"), new Browser("com.brave.browser_beta", "url_bar"), + new Browser("com.chrome.beta", "url_bar"), + new Browser("com.chrome.canary", "url_bar"), + new Browser("com.chrome.dev", "url_bar"), + new Browser("com.duckduckgo.mobile.android", "omnibarTextInput"), + new Browser("com.ecosia.android", "url_bar"), + new Browser("com.feedback.browser.wjbrowser", "addressbar_url"), + new Browser("com.ghostery.android.ghostery", "search_field"), + new Browser("com.google.android.apps.chrome", "url_bar"), + new Browser("com.google.android.apps.chrome_dev", "url_bar"), + new Browser("com.htc.sense.browser", "title"), + new Browser("com.jerky.browser2", "enterUrl"), + new Browser("com.kiwibrowser.browser", "url_bar"), + new Browser("com.ksmobile.cb", "address_bar_edit_text"), + new Browser("com.linkbubble.playstore", "url_text"), + new Browser("com.microsoft.emmx", "url_bar"), + new Browser("com.mx.browser", "address_editor_with_progress"), + new Browser("com.mx.browser.tablet", "address_editor_with_progress"), + new Browser("com.naver.whale", "url_bar"), + new Browser("com.nubelacorp.javelin", "enterUrl"), new Browser("com.opera.browser", "url_field"), new Browser("com.opera.browser.beta", "url_field"), new Browser("com.opera.mini.native", "url_field"), new Browser("com.opera.touch", "addressbarEdit"), - new Browser("com.chrome.dev", "url_bar"), - new Browser("com.chrome.canary", "url_bar"), - new Browser("com.google.android.apps.chrome", "url_bar"), - new Browser("com.google.android.apps.chrome_dev", "url_bar"), - new Browser("org.codeaurora.swe.browser", "url_bar"), - new Browser("org.iron.srware", "url_bar"), + new Browser("com.qwant.liberty", "url_bar_title"), new Browser("com.sec.android.app.sbrowser", "location_bar_edit_text"), new Browser("com.sec.android.app.sbrowser.beta", "location_bar_edit_text"), - new Browser("com.yandex.browser", "bro_omnibar_address_title_text,bro_omnibox_collapsed_title", - (s) => s.Split(new char[]{' ', ' '}).FirstOrDefault()), // 0 = Regular Space, 1 = No-break space (00A0) - new Browser("org.mozilla.firefox", "url_bar_title"), - new Browser("org.mozilla.firefox_beta", "url_bar_title"), - new Browser("org.mozilla.fennec_aurora", "url_bar_title"), - new Browser("org.mozilla.fennec_fdroid", "url_bar_title"), - new Browser("org.mozilla.focus", "display_url"), - new Browser("org.mozilla.klar", "display_url"), - new Browser("org.mozilla.fenix", "mozac_browser_toolbar_url_view"), - new Browser("org.mozilla.fenix.nightly", "mozac_browser_toolbar_url_view"), - new Browser("org.mozilla.reference.browser", "mozac_browser_toolbar_url_view"), - new Browser("com.ghostery.android.ghostery", "search_field"), - new Browser("org.adblockplus.browser", "url_bar_title"), - new Browser("com.htc.sense.browser", "title"), - new Browser("com.amazon.cloud9", "url"), - new Browser("mobi.mgeek.TunnyBrowser", "title"), - new Browser("com.nubelacorp.javelin", "enterUrl"), - new Browser("com.jerky.browser2", "enterUrl"), - new Browser("com.mx.browser", "address_editor_with_progress"), - new Browser("com.mx.browser.tablet", "address_editor_with_progress"), - new Browser("com.linkbubble.playstore", "url_text"), - new Browser("com.ksmobile.cb", "address_bar_edit_text"), - new Browser("acr.browser.lightning", "search"), - new Browser("acr.browser.barebones", "search"), - new Browser("com.microsoft.emmx", "url_bar"), - new Browser("com.duckduckgo.mobile.android", "omnibarTextInput"), - new Browser("mark.via.gp", "aw"), - new Browser("org.bromite.bromite", "url_bar"), - new Browser("com.kiwibrowser.browser", "url_bar"), - new Browser("com.ecosia.android", "url_bar"), - new Browser("com.qwant.liberty", "url_bar_title"), - new Browser("jp.co.fenrir.android.sleipnir", "url_text"), - new Browser("jp.co.fenrir.android.sleipnir_black", "url_text"), - new Browser("jp.co.fenrir.android.sleipnir_test", "url_text"), new Browser("com.vivaldi.browser", "url_bar"), new Browser("com.vivaldi.browser.snapshot", "url_bar"), new Browser("com.vivaldi.browser.sopranos", "url_bar"), - new Browser("com.feedback.browser.wjbrowser", "addressbar_url"), - new Browser("com.naver.whale", "url_bar"), + new Browser("com.yandex.browser", "bro_omnibar_address_title_text,bro_omnibox_collapsed_title", + (s) => s.Split(new char[]{' ', ' '}).FirstOrDefault()), // 0 = Regular Space, 1 = No-break space (00A0) + new Browser("jp.co.fenrir.android.sleipnir", "url_text"), + new Browser("jp.co.fenrir.android.sleipnir_black", "url_text"), + new Browser("jp.co.fenrir.android.sleipnir_test", "url_text"), + new Browser("mark.via.gp", "aw"), + new Browser("mobi.mgeek.TunnyBrowser", "title"), + new Browser("org.adblockplus.browser", "url_bar_title"), + new Browser("org.bromite.bromite", "url_bar"), + new Browser("org.chromium.chrome", "url_bar"), + new Browser("org.codeaurora.swe.browser", "url_bar"), + new Browser("org.iron.srware", "url_bar"), + new Browser("org.mozilla.fenix", "mozac_browser_toolbar_url_view"), + new Browser("org.mozilla.fenix.nightly", "mozac_browser_toolbar_url_view"), + new Browser("org.mozilla.fennec_aurora", "url_bar_title"), + new Browser("org.mozilla.fennec_fdroid", "url_bar_title"), + new Browser("org.mozilla.firefox", "url_bar_title"), + new Browser("org.mozilla.firefox_beta", "url_bar_title"), + new Browser("org.mozilla.focus", "display_url"), + new Browser("org.mozilla.klar", "display_url"), + new Browser("org.mozilla.reference.browser", "mozac_browser_toolbar_url_view"), }.ToDictionary(n => n.PackageName); // Known packages to skip diff --git a/src/Android/Autofill/AutofillHelpers.cs b/src/Android/Autofill/AutofillHelpers.cs index 25b6d12ff..a46b2541e 100644 --- a/src/Android/Autofill/AutofillHelpers.cs +++ b/src/Android/Autofill/AutofillHelpers.cs @@ -17,56 +17,59 @@ namespace Bit.Droid.Autofill private static int _pendingIntentId = 0; // These browser work natively with the autofill framework + // Be sure to keep these entries sorted alphabetically public static HashSet TrustedBrowsers = new HashSet { + "com.duckduckgo.mobile.android", "org.mozilla.focus", "org.mozilla.klar", - "com.duckduckgo.mobile.android", }; // These browsers work using the compatibility shim for the autofill framework - // Be sure to keep this in sync with values in Resources/xml/autofillservice.xml + // Be sure to: + // - keep these entries sorted alphabetically + // - keep this list in sync with values in Resources/xml/autofillservice.xml public static HashSet CompatBrowsers = new HashSet { + "com.amazon.cloud9", "com.android.browser", "com.android.chrome", + "com.brave.browser", + "com.brave.browser_beta", "com.chrome.beta", - "com.chrome.dev", "com.chrome.canary", + "com.chrome.dev", + "com.ecosia.android", + "com.google.android.apps.chrome", + "com.google.android.apps.chrome_dev", + "com.kiwibrowser.browser", "com.microsoft.emmx", + "com.naver.whale", "com.opera.browser", "com.opera.browser.beta", "com.opera.mini.native", "com.opera.mini.native.beta", "com.opera.touch", + "com.qwant.liberty", "com.sec.android.app.sbrowser", "com.sec.android.app.sbrowser.beta", + "com.vivaldi.browser", + "com.vivaldi.browser.snapshot", + "com.vivaldi.browser.sopranos", + "com.yandex.browser", + "mark.via.gp", + "org.bromite.bromite", + "org.chromium.chrome", + "org.codeaurora.swe.browser", + "org.mozilla.fenix", + "org.mozilla.fenix.nightly", "org.mozilla.fennec_aurora", "org.mozilla.fennec_fdroid", "org.mozilla.firefox", "org.mozilla.firefox_beta", - "org.mozilla.fenix", - "org.mozilla.fenix.nightly", "org.mozilla.reference.browser", "org.mozilla.rocket", - "com.brave.browser", - "com.brave.browser_beta", - "com.google.android.apps.chrome", - "com.google.android.apps.chrome_dev", - "com.yandex.browser", - "org.codeaurora.swe.browser", - "com.amazon.cloud9", - "mark.via.gp", - "org.bromite.bromite", - "org.chromium.chrome", - "com.kiwibrowser.browser", - "com.ecosia.android", - "com.qwant.liberty", "org.torproject.torbrowser", - "com.vivaldi.browser", - "com.vivaldi.browser.snapshot", - "com.vivaldi.browser.sopranos", - "com.naver.whale", }; // The URLs are blacklisted from autofilling diff --git a/src/Android/Resources/xml/autofillservice.xml b/src/Android/Resources/xml/autofillservice.xml index b72a33006..c73c97980 100644 --- a/src/Android/Resources/xml/autofillservice.xml +++ b/src/Android/Resources/xml/autofillservice.xml @@ -1,6 +1,13 @@ - + + @@ -8,17 +15,38 @@ android:name="com.android.chrome" android:maxLongVersionCode="10000000000"/> + + + + + + + @@ -34,12 +62,45 @@ + + + + + + + + + + + @@ -52,70 +113,13 @@ - - - - - - - - - - - - - - - - - - -