Files
keepass2android/src/keepass2android-app/services/AutofillBase/Kp2aDigitalAssetLinksDataSource.cs
Jonathan Almeida 8759fe5346 Remove deprecated Firefox Nightly app ID from trusted browsers
This app ID has not been used for a few years now and can be safely removed. 

See the original PR for added context: https://github.com/PhilippC/keepass2android/pull/896
2025-02-03 18:05:10 -05:00

86 lines
3.6 KiB
C#

using System.Collections.Generic;
using System.Linq;
using Android.Content;
using Android.Preferences;
using keepass2android;
using Kp2aAutofillParser;
namespace keepass2android.services.AutofillBase
{
internal class Kp2aDigitalAssetLinksDataSource : IKp2aDigitalAssetLinksDataSource
{
private const string Autofilltrustedapps = "AutoFillTrustedApps";
private readonly Context _ctx;
public Kp2aDigitalAssetLinksDataSource(Context ctx)
{
_ctx = ctx;
}
public bool IsTrustedApp(string packageName)
{
if (_trustedBrowsers.Contains(packageName))
return true;
var prefs = PreferenceManager.GetDefaultSharedPreferences(_ctx);
var trustedApps = prefs.GetStringSet(Autofilltrustedapps, new List<string>()).ToHashSet();
return trustedApps.Contains(packageName);
}
public bool IsTrustedLink(string domain, string targetPackage)
{
//we can fill everything into trusted apps (aka browsers)
if (IsTrustedApp(targetPackage))
return true;
//see if the user explicitly allows to fill credentials for domain into targetPackage:
var prefs = PreferenceManager.GetDefaultSharedPreferences(_ctx);
var trustedLinks = prefs.GetStringSet("AutoFillTrustedLinks", new List<string>()).ToHashSet();
return trustedLinks.Contains(BuildLink(domain, targetPackage));
}
public bool IsEnabled()
{
return !PreferenceManager.GetDefaultSharedPreferences(_ctx).GetBoolean(_ctx.GetString(Resource.String.NoDalVerification_key), false);
}
public void RememberAsTrustedApp(string packageName)
{
var prefs = PreferenceManager.GetDefaultSharedPreferences(_ctx);
var trustedApps = prefs.GetStringSet(Autofilltrustedapps, new List<string>()).ToHashSet();
trustedApps.Add(packageName);
prefs.Edit().PutStringSet(Autofilltrustedapps, trustedApps).Commit();
}
public void RememberTrustedLink(string domain, string package)
{
var prefs = PreferenceManager.GetDefaultSharedPreferences(_ctx);
var trustedLinks = prefs.GetStringSet("AutoFillTrustedLinks", new List<string>()).ToHashSet();
trustedLinks.Add(BuildLink(domain, package));
prefs.Edit().PutStringSet("AutoFillTrustedLinks", trustedLinks).Commit();
}
private static string BuildLink(string domain, string package)
{
return domain + " + " + package;
}
static readonly HashSet<string> _trustedBrowsers = new HashSet<string>
{
"org.mozilla.firefox","org.mozilla.firefox_beta","org.mozilla.klar","org.mozilla.focus",
"org.mozilla.fenix","org.mozilla.reference.browser",
"com.android.browser","com.android.chrome","com.chrome.beta","com.chrome.dev","com.chrome.canary",
"com.google.android.apps.chrome","com.google.android.apps.chrome_dev",
"com.opera.browser","com.opera.browser.beta","com.opera.mini.native","com.opera.mini.native.beta","com.opera.touch",
"com.brave.browser","com.yandex.browser","com.microsoft.emmx","com.amazon.cloud9",
"com.sec.android.app.sbrowser","com.sec.android.app.sbrowser.beta","org.codeaurora.swe.browser",
"mark.via.gp","org.bromite.bromite", "org.mozilla.fennec_fdroid", "com.vivaldi.browser","com.kiwibrowser.browser",
"acr.browser.lightning", "acr.browser.barebones", "jp.hazuki.yuzubrowser"
};
}
}