Compare commits
1 Commits
v1.10-pre
...
2449--igno
Author | SHA1 | Date | |
---|---|---|---|
![]() |
dd7a2718c9 |
@@ -71,6 +71,12 @@ namespace Kp2aAutofillParserTest
|
|||||||
var resourceName = "Kp2aAutofillParserTest.com-expressvpn-vpn-android13.json";
|
var resourceName = "Kp2aAutofillParserTest.com-expressvpn-vpn-android13.json";
|
||||||
RunTestFromAutofillInput(resourceName, "com.expressvpn.vpn", null);
|
RunTestFromAutofillInput(resourceName, "com.expressvpn.vpn", null);
|
||||||
}
|
}
|
||||||
|
[Fact]
|
||||||
|
public void TestIgnoresAndroidSettings()
|
||||||
|
{
|
||||||
|
var resourceName = "Kp2aAutofillParserTest.android14-settings.json";
|
||||||
|
RunTestFromAutofillInput(resourceName, "com.android.settings", null);
|
||||||
|
}
|
||||||
|
|
||||||
private void RunTestFromAutofillInput(string resourceName, string expectedPackageName = null, string expectedWebDomain = null)
|
private void RunTestFromAutofillInput(string resourceName, string expectedPackageName = null, string expectedWebDomain = null)
|
||||||
{
|
{
|
||||||
|
@@ -9,6 +9,7 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<None Remove="android14-settings.json" />
|
||||||
<None Remove="chrome-android10-amazon-it.json" />
|
<None Remove="chrome-android10-amazon-it.json" />
|
||||||
<None Remove="com-expressvpn-vpn-android13.json" />
|
<None Remove="com-expressvpn-vpn-android13.json" />
|
||||||
<None Remove="com-ifs-banking-fiid3364-android13.json" />
|
<None Remove="com-ifs-banking-fiid3364-android13.json" />
|
||||||
@@ -54,6 +55,9 @@
|
|||||||
<EmbeddedResource Include="com-servicenet-mobile-no-focus.json">
|
<EmbeddedResource Include="com-servicenet-mobile-no-focus.json">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="android14-settings.json">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="imdb.json">
|
<EmbeddedResource Include="imdb.json">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
99
src/Kp2aAutofillParserTest/android14-settings.json
Normal file
99
src/Kp2aAutofillParserTest/android14-settings.json
Normal file
@@ -0,0 +1,99 @@
|
|||||||
|
{
|
||||||
|
"InputFields": [
|
||||||
|
{
|
||||||
|
"IdEntry": null,
|
||||||
|
"Hint": null,
|
||||||
|
"ClassName": "android.widget.FrameLayout",
|
||||||
|
"AutofillHints": null,
|
||||||
|
"IsFocused": false,
|
||||||
|
"InputType": 0,
|
||||||
|
"HtmlInfoTag": null,
|
||||||
|
"HtmlInfoTypeAttribute": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"IdEntry": "content_parent",
|
||||||
|
"Hint": null,
|
||||||
|
"ClassName": "android.widget.LinearLayout",
|
||||||
|
"AutofillHints": null,
|
||||||
|
"IsFocused": false,
|
||||||
|
"InputType": 0,
|
||||||
|
"HtmlInfoTag": null,
|
||||||
|
"HtmlInfoTypeAttribute": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"IdEntry": "content_frame",
|
||||||
|
"Hint": null,
|
||||||
|
"ClassName": "android.widget.FrameLayout",
|
||||||
|
"AutofillHints": null,
|
||||||
|
"IsFocused": false,
|
||||||
|
"InputType": 0,
|
||||||
|
"HtmlInfoTag": null,
|
||||||
|
"HtmlInfoTypeAttribute": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"IdEntry": "main_content",
|
||||||
|
"Hint": null,
|
||||||
|
"ClassName": "android.widget.FrameLayout",
|
||||||
|
"AutofillHints": null,
|
||||||
|
"IsFocused": false,
|
||||||
|
"InputType": 0,
|
||||||
|
"HtmlInfoTag": null,
|
||||||
|
"HtmlInfoTypeAttribute": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"IdEntry": "password_entry",
|
||||||
|
"Hint": null,
|
||||||
|
"ClassName": "android.widget.EditText",
|
||||||
|
"AutofillHints": [
|
||||||
|
"passwordAuto"
|
||||||
|
],
|
||||||
|
"IsFocused": true,
|
||||||
|
"InputType": 18,
|
||||||
|
"HtmlInfoTag": null,
|
||||||
|
"HtmlInfoTypeAttribute": null,
|
||||||
|
"ExpectedAssignedHints": [ "password" ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"IdEntry": "checkbox",
|
||||||
|
"Hint": null,
|
||||||
|
"ClassName": "android.widget.CheckBox",
|
||||||
|
"AutofillHints": null,
|
||||||
|
"IsFocused": false,
|
||||||
|
"InputType": 0,
|
||||||
|
"HtmlInfoTag": null,
|
||||||
|
"HtmlInfoTypeAttribute": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"IdEntry": "button_bar",
|
||||||
|
"Hint": null,
|
||||||
|
"ClassName": "android.widget.RelativeLayout",
|
||||||
|
"AutofillHints": null,
|
||||||
|
"IsFocused": false,
|
||||||
|
"InputType": 0,
|
||||||
|
"HtmlInfoTag": null,
|
||||||
|
"HtmlInfoTypeAttribute": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"IdEntry": "switch_bar",
|
||||||
|
"Hint": null,
|
||||||
|
"ClassName": "android.widget.LinearLayout",
|
||||||
|
"AutofillHints": null,
|
||||||
|
"IsFocused": false,
|
||||||
|
"InputType": 0,
|
||||||
|
"HtmlInfoTag": null,
|
||||||
|
"HtmlInfoTypeAttribute": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"IdEntry": "action_bar",
|
||||||
|
"Hint": null,
|
||||||
|
"ClassName": "android.view.ViewGroup",
|
||||||
|
"AutofillHints": null,
|
||||||
|
"IsFocused": false,
|
||||||
|
"InputType": 0,
|
||||||
|
"HtmlInfoTag": null,
|
||||||
|
"HtmlInfoTypeAttribute": null
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"PackageId": "com.android.settings",
|
||||||
|
"WebDomain": null
|
||||||
|
}
|
@@ -40,6 +40,26 @@ namespace keepass2android.services.AutofillBase
|
|||||||
|
|
||||||
public abstract class AutofillServiceBase: AutofillService
|
public abstract class AutofillServiceBase: AutofillService
|
||||||
{
|
{
|
||||||
|
private HashSet<string> _internal_blacklistedUris = null;
|
||||||
|
|
||||||
|
public HashSet<string> BlacklistedUris
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (_internal_blacklistedUris == null)
|
||||||
|
{
|
||||||
|
_internal_blacklistedUris = new HashSet<string>()
|
||||||
|
{
|
||||||
|
KeePass.AndroidAppScheme + "android",
|
||||||
|
KeePass.AndroidAppScheme + "com.android.settings",
|
||||||
|
KeePass.AndroidAppScheme + this.PackageName
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return _internal_blacklistedUris;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
protected override void AttachBaseContext(Context baseContext)
|
protected override void AttachBaseContext(Context baseContext)
|
||||||
{
|
{
|
||||||
base.AttachBaseContext(LocaleManager.setLocale(baseContext));
|
base.AttachBaseContext(LocaleManager.setLocale(baseContext));
|
||||||
@@ -386,7 +406,7 @@ namespace keepass2android.services.AutofillBase
|
|||||||
|
|
||||||
private bool CanAutofill(StructureParser.AutofillTargetId query, bool isManual)
|
private bool CanAutofill(StructureParser.AutofillTargetId query, bool isManual)
|
||||||
{
|
{
|
||||||
if (query.PackageNameWithPseudoSchema == KeePass.AndroidAppScheme+"android" || query.PackageNameWithPseudoSchema == KeePass.AndroidAppScheme + this.PackageName)
|
if (BlacklistedUris.Contains(query.PackageNameWithPseudoSchema))
|
||||||
return false;
|
return false;
|
||||||
if (!isManual)
|
if (!isManual)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user