“How to treat subdomains” is always a challenge in the password manager space (and there can be wrinkles depending on specific product features/flow).
On the flipside: If you associate strictly against subdomains, you can end up in a situation where your accounts simply don’t appear at all when you expect them.
Here’s an example:
Before I came here to lead the extension, I was in charge of an extension with similar password management functionality at a different startup.
One of our features was an SSO-like “autologin” feature, where the security risks inherent to “clicking all buttons and entering all text for you on any site” caused us to design the feature so that it matched subdomains exactly.
It turned out that we faced challenges with this on a number of sites. Chase came to mind as particularly challenging — they served each input within its own iframe from a totally unique subdomain, with each one being rotated on every page load. The username field might’ve been in an iframe from “secure05a.chase.com” while the password field might be served in an iframe pointed at “secure4bf.chase.com”.
This is an extreme example, but simpler cases abound throughout the Internet — There is often a “login.example.com” page that exists within its own flow for a site, but in addition to that, there might be simple login modals served on “example.com”.
We could probably improve on the current behavior by recording the maximum possible information while retaining the current behavior against TLDs, but how we might use that extra subdomain information isn’t perfectly clear.
It’s also not obvious that the subdomain alone is relevant in these edge-cases — some sites use paths, query params, and even anchors to serve a similar function you’d expect from subdomains.