Strange behavior while searching matches for form autofilling

Hello!

I’m using Win10, KeePass 2.46, Chromium Kee 3.6.27/Firefox Kee 3.6.27beta.

Trying to autofill form here - target domain is signin.ea.com.
In fact, domain name doesn’t matter, i have this issue with all domains i have in KeePass DB.

  1. In KeePass DB i have an URL ea.com with minimum URL match accuracy Hostname.

When i’m loading target page Kee doesn’t find any matching entries in KeePass DB:

DevTools failed to load SourceMap: Could not load content for chrome-extension://mmhlniccooihdimnnjhamobppdhaolme/lib/tp/browser-polyfill.min.js.map: HTTP error: status code 404, net::ERR_UNKNOWN_URL_SCHEME
common.js:16 * scanForOrphanedFields took: 0
common.js:16 Finding matches in a document. readyState: complete
common.js:16 findMatches processing 5 forms
common.js:16 about to get form fields
common.js:16 usernameIndex: -1
common.js:16 actualUsernameIndex: 0
common.js:16 otherFields.length:0
common.js:16 No password field found in this form and either there are no other fields or no whitelisted text field or form element
common.js:16 about to get form fields
common.js:16 processing field with domtype text…
common.js:16 processing field with domtype password…
common.js:16 processing field with domtype checkbox…
common.js:16 usernameIndex: 0
common.js:16 actualUsernameIndex: 0
common.js:16 otherFields.length:2
common.js:16 about to get form fields
common.js:16 processing field with domtype select-one…
common.js:16 processing field with domtype text…
common.js:16 usernameIndex: -1
common.js:16 actualUsernameIndex: 0
common.js:16 otherFields.length:2
common.js:16 No password field found in this form and either there are no other fields or no whitelisted text field or form element
common.js:16 about to get form fields
common.js:16 usernameIndex: -1
common.js:16 actualUsernameIndex: 0
common.js:16 otherFields.length:0
common.js:16 No password field found in this form and either there are no other fields or no whitelisted text field or form element
common.js:16 about to get form fields
common.js:16 usernameIndex: -1
common.js:16 actualUsernameIndex: 0
common.js:16 otherFields.length:0
common.js:16 No password field found in this form and either there are no other fields or no whitelisted text field or form element
common.js:16 Submit handlers attached asynchronously to form 1 in 0.30499999411404133ms
common.js:16 In browser content page script, received message from background script
common.js:16 fillAndSubmit started. automated: true, formIndex: undefined, entryIndex: undefined
common.js:16 Relevance of form is 0
common.js:16 Relevance of form is 0
common.js:16 Relevance of form is 0
common.js:16 Relevance of form is 0
common.js:16 Relevance of form is 0
common.js:16 The most relevant form is #0
common.js:16 We are allowed to auto-fill this form.
common.js:16 No entries for form.
common.js:16 Nothing to fill.
common.js:16 In browser content page script, received message from background script
common.js:16 In browser content page script, received message from background script

I’m sorry for this wall of text, but new users can’t upload files ::

  1. Let’s change settings. Now in KeePass DB we have an RegEx URL ea\.com with minimum URL match accuracy Hostname:

DevTools failed to load SourceMap: Could not load content for chrome-extension://mmhlniccooihdimnnjhamobppdhaolme/lib/tp/browser-polyfill.min.js.map: HTTP error: status code 404, net::ERR_UNKNOWN_URL_SCHEME
common.js:16 * scanForOrphanedFields took: 0
common.js:16 Finding matches in a document. readyState: complete
common.js:16 findMatches processing 5 forms
common.js:16 about to get form fields
common.js:16 usernameIndex: -1
common.js:16 actualUsernameIndex: 0
common.js:16 otherFields.length:0
common.js:16 No password field found in this form and either there are no other fields or no whitelisted text field or form element
common.js:16 about to get form fields
common.js:16 processing field with domtype text…
common.js:16 processing field with domtype password…
common.js:16 processing field with domtype checkbox…
common.js:16 usernameIndex: 0
common.js:16 actualUsernameIndex: 0
common.js:16 otherFields.length:2
common.js:16 about to get form fields
common.js:16 processing field with domtype select-one…
common.js:16 processing field with domtype text…
common.js:16 usernameIndex: -1
common.js:16 actualUsernameIndex: 0
common.js:16 otherFields.length:2
common.js:16 No password field found in this form and either there are no other fields or no whitelisted text field or form element
common.js:16 about to get form fields
common.js:16 usernameIndex: -1
common.js:16 actualUsernameIndex: 0
common.js:16 otherFields.length:0
common.js:16 No password field found in this form and either there are no other fields or no whitelisted text field or form element
common.js:16 about to get form fields
common.js:16 usernameIndex: -1
common.js:16 actualUsernameIndex: 0
common.js:16 otherFields.length:0
common.js:16 No password field found in this form and either there are no other fields or no whitelisted text field or form element
common.js:16 Submit handlers attached asynchronously to form 1 in 0.2749999985098839ms
common.js:16 In browser content page script, received message from background script
common.js:16 match found!
common.js:16 formVisible: true
common.js:16 Suitability of putting other field 0 into form field 0 (id: email) is 36
common.js:16 Suitability of putting other field 0 into form field 1 (id: rememberMe) is 0
common.js:16 Suitability of putting password field 0 into form field 0 (id: password) is 36
common.js:16 formFieldCount: 3, loginFieldCount: 2, loginFieldCountForAutofill: 2, formFieldCountForAutofill: 2, formMatchedFieldCountForAutofill: 2, numberOfNewPasswordFields: 0, fieldMatchRatio: 1
common.js:16 Relevance for 09D0174748B2F64DAB404078F4F0448C is: 62
common.js:16 Higher relevance score found for entry 0 with formIndex 1 (login-form)
common.js:16 Relevance of form 1 (login-form) is 62
common.js:16 fillAndSubmit started. automated: true, formIndex: undefined, entryIndex: undefined
common.js:16 Relevance of form is 0
common.js:16 Relevance of form is 62
3common.js:16 Relevance of form is 0
common.js:16 The most relevant form is #1
common.js:16 We are allowed to auto-fill this form.
common.js:16 Going to auto-fill a form
common.js:16 _fillManyFormFields started
common.js:16 We’ve received the data we need
common.js:16 Filling form fields for page -1
common.js:16 Suitability of putting data field 0 into form field 0 (id: password) is 36
common.js:16 We will populate field 0 (id:password)
common.js:16 _fillManyFormFields started
common.js:16 We’ve received the data we need
common.js:16 Filling form fields for page -1
common.js:16 Suitability of putting data field 0 into form field 0 (id: email) is 36
common.js:16 Suitability of putting data field 0 into form field 1 (id: rememberMe) is 0
common.js:16 We will populate field 0 (id:email)
common.js:16 Syncing UUID to: 09D0174748B2F64DAB404078F4F0448C
common.js:16 Automatic form fill complete.

Gotcha, form was autofilled!

My question is: why Kee can’t find matching domains in non-regex mode with matching accuracy Hostname?

I prepared a table to understand what’s going on:

    URL				Regex?		Match accuracy		Result
1	ea.com						Hostname			no match
2	ea\.com			yes			Hostname			MATCH
3	signin.ea.com				Domain				MATCH
4	signin.ea.com				Hostname			MATCH
5	signin\.ea.com	yes			Hostname			MATCH

So i can’t understand, why domain signin.ea.com cannot be found using first rule. signin.ea.com it’s a part oh host ea.com, isn’t it?

Is it a bug or maybe i have a heavy misunderstanding mechanic of searching matches?

Sorry for my bad English.

ea.com is a domain; it is also a hostname.
signin.ea.com is a hostname but not a domain.

Thus if you create an entry with the text ea.com and require a match to the same hostname, a different hostname (signin.ea.com for example) will not match.

The default behaviour (broadly option 3 in your table) typically works for most cases but you can change the match to be more restrictive when required (such as the configuration you have in option 1 in your table). It sounds like this is too restrictive for your needs on this website so just change the match accuracy to the less restrictive “Domain” option and you should find things behave closer to what you expect.

@luckyrat, thanks for the clarification.
How do I make URL ea.com to match signin.ea.com? I tried to set match accuracy to Domain but no luck.

And there is an updated version of table:

    URL			    Regex?		Match accuracy	    Result
1	ea.com						Hostname			no match
2	ea\.com			yes			Hostname			MATCH
3	signin.ea.com				Domain				MATCH
4	signin.ea.com				Hostname			MATCH
5	signin\.ea.com	yes			Hostname			MATCH
6	ea.com						Domain			    no match

Please watch to row 6.
Log:

DevTools failed to load SourceMap: Could not load content for chrome-extension://mmhlniccooihdimnnjhamobppdhaolme/lib/tp/browser-polyfill.min.js.map: HTTP error: status code 404, net::ERR_UNKNOWN_URL_SCHEME
common.js:16 * scanForOrphanedFields took: 0
common.js:16 Finding matches in a document. readyState: complete
common.js:16 findMatches processing 5 forms
common.js:16 about to get form fields
common.js:16 usernameIndex: -1
common.js:16 actualUsernameIndex: 0
common.js:16 otherFields.length:0
common.js:16 No password field found in this form and either there are no other fields or no whitelisted text field or form element
common.js:16 about to get form fields
common.js:16 processing field with domtype text…
common.js:16 processing field with domtype password…
common.js:16 processing field with domtype checkbox…
common.js:16 usernameIndex: 0
common.js:16 actualUsernameIndex: 0
common.js:16 otherFields.length:2
common.js:16 about to get form fields
common.js:16 processing field with domtype select-one…
common.js:16 processing field with domtype text…
common.js:16 usernameIndex: -1
common.js:16 actualUsernameIndex: 0
common.js:16 otherFields.length:2
common.js:16 No password field found in this form and either there are no other fields or no whitelisted text field or form element
common.js:16 about to get form fields
common.js:16 usernameIndex: -1
common.js:16 actualUsernameIndex: 0
common.js:16 otherFields.length:0
common.js:16 No password field found in this form and either there are no other fields or no whitelisted text field or form element
common.js:16 about to get form fields
common.js:16 usernameIndex: -1
common.js:16 actualUsernameIndex: 0
common.js:16 otherFields.length:0
common.js:16 No password field found in this form and either there are no other fields or no whitelisted text field or form element
common.js:16 Submit handlers attached asynchronously to form 1 in 0.31500007025897503ms
common.js:16 In browser content page script, received message from background script
common.js:16 fillAndSubmit started. automated: true, formIndex: undefined, entryIndex: undefined
5common.js:16 Relevance of form is 0
common.js:16 The most relevant form is #0
common.js:16 We are allowed to auto-fill this form.
common.js:16 No entries for form.
common.js:16 Nothing to fill.

It’s a bug or not? Any ideas?

Problems when KeePass can't determine a domain name using the PSL may well be relevant since I can’t reproduce the behaviour you have described.

Thanks! Lord, it works like a charm, with all domains!
I thought i must to do smth with database or KeePass settings, but this thing…

Thanks again and again.

Ok, you wrote

If you or your system administrators prevent KeePassRPC from remotely accessing or locally storing this data, things will go wrong.

Tell me please, what i must to do for allowing KeePassRPC remote access or local storing PSL data w/o modifying KeePass config file? I’m wondering why it happens with my instance, because i (believe) did not used any specific moves while installing KeePass or KeePassRPC.
My user have full access rights to Keepass directory (recursive). Moreover, KeePass installed in one of user Document’s subfoolder.

So, to the point. What will help me get my instance into a state of “like most people”?