Compare commits
	
		
			1 Commits
		
	
	
		
			2396--webd
			...
			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