Settings

Theme

Issue 914451: Autofill does not respect autocomplete="off"

bugs.chromium.org

820 points by bullman 6 years ago · 382 comments

Reader

romaaeterna 6 years ago

A few years ago, I left a $1000 tip at the restaurant up the street because Chrome filled out the tip field with my zip code (which thankfully merely defaulted to max $1000 instead). The tip field was off-screen, and the ordering software didn't have a confirmation screen, just a "we just charged your card $X amount" screen, which made my eyes boggle.

EDIT: Looking at the original March 17th, 2015 bug, it would have been at exactly around that time...In fact, checking my emails, this happened on March 18th, 2015. I had ordered from them several times before this with no problems (they used "chownow.com" for their ordering backend).

  • dmethvin 6 years ago

    This has a lot of really serious implications. I built a form for a charity that allowed users to buy a subscription but include an additional donation amount. Chrome was sometimes filling that field with the two-digit year. The charity got a lot of complaints and it ruined the trust relationship with the donors who didn't understand what was happening and thought it was intentional.

    • mikorym 6 years ago

      Chrome has other behaviour that I think violates a sort of trust relationship. One of which is that Youtube would ask you "do you want to install Chrome"? Almost as if your current browser is not "what you need to access Youtube". This is especially a problem for elderly people who often use the web but don't really understand how things fit together (the way 5 year olds actually do).

      • smt88 6 years ago

        > Almost as if your current browser is not "what you need to access Youtube"

        This is not just confusing. It's intentionally misleading and unethical.

        And it doesn't just affect old people, or YouTube wouldn't have come up with it. Lots of young people grew up with computers and understand how to do what they want to do, but they never develop a systematic understanding of what they're using.

        It gets worse, though. While we tech-folk know that all modern browsers are supposed to have near-parity, Google optimizes its sites for Chrome, leading to additional confusion for both knowledgeable and lay users.

  • 1570949436970 6 years ago

    Fun fact: something similar once happened in production in the early days of an iPad-based point of sale startup.

    In certain cases, a previously-entered zip code was interpreted as the number of cents to tip.

  • userbinator 6 years ago

    The tip field was off-screen

    I wonder how much the [1] hiding of scrollbars and [2] UIs with excessive amounts of whitespace, increasing the need to scroll also contributed to you making this error.

  • jbeales 6 years ago

    We have trouble in our org with autofill on our New Customer forms. Depending on the browser it can be very difficult to remove the saved autocomplete values.

  • mehrdadn 6 years ago

    (How) did you resolve this?

  • sedatk 6 years ago

    How do you pay with Chrome at a restaurant?

carstenhag 6 years ago

As I had already commented on the issue, it completely breaks Germany's main train ticket selling website:

https://i.imgur.com/BjYTgSn.png

They have tagged the field as autocomplete=off but Chrome just doesn't care.

Also see this linked issue where they collected valid use cases for autocomplete=off. They just seem to ignore 452 use cases (I can't comment on the quality of them, I did not read any).

https://bugs.chromium.org/p/chromium/issues/detail?id=587466

  • obituary_latte 6 years ago

    OT: direct link bypassing imgur’s horribly hostile UX https://i.imgur.com/BjYTgSn_d.jpg?maxwidth=1640&shape=&fidel...

  • watwut 6 years ago

    Imo, valid use case for autocomplete=off is "the developer of webapp wants it".

    Literally that and nothing more.

    • Nitramp 6 years ago

      It's called "user agent", not "developer's agent". We'd be in a terrible situation if the browsers just followed developer's whims. Cf. popup blocking.

      • ckrailo 6 years ago

        Browsers already follow developer whims, see: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Fe...

        YouTubeTV uses feature policy to disable the browser's picture-in-picture feature.

      • sky_rw 6 years ago

        Dismissing the above use cases as "developer's whims" is the fundamental issue most people here are taking with these decisions.

        I think we can all agree that browser behavior should not be left solely up to the developer and is not a black and white issue. Nobody here is arguing that. We are arguing for following a guideline that makes sense. This is why we have the w3c, an organization that attempts to weigh the needs of user, developers, and browser maintainers.

        • TeMPOraL 6 years ago

          The issue is that the browser is supposed to be the meeting place for negotiating between developer and user preferences. Its job is to take into account preferences of both sides, and render the site accordingly. Not to be a third party at the negotiating table. Breaking agreed standard in a way that can't be overridden by the user? Browsers should never do that.

          • bayindirh 6 years ago

            > Breaking agreed standard in a way that can't be overridden by the user?

            This was done by Microsoft by the old days, now it's Google. How ironic.

          • rictic 6 years ago

            Correct behavior is debated and decided in public, resulting in a specification. In this case the HTML spec says "should", not "must". HTML Spec:

            > When an element's autofill field name is "off", the user agent should not remember the control's data, and should not offer past values to the user.

            RFC2119:

            > SHOULD: This word, or the adjective "RECOMMENDED", mean that there may exist valid reasons in particular circumstances to ignore a particular item, but the full implications must be understood and carefully weighed before choosing a different course.

            As I read it, this behavior may or may not be a good idea, but it is not a violation of the standard.

            Disclosure: I used to work on the Chrome team at Google, but I have no particular knowledge of autocomplete.

          • muro 6 years ago

            In this case, it can be overridden by the user, just not the developer :)

            • xg15 6 years ago

              Not really if the user is non-technical and doesn't even know they'd have to override it.

              • basch 6 years ago

                "this website has asked us to NOT autofill your saved info.

                if you would like to autofill the form anyway click"

                i made it a little terse, but there has to be a way to make it succinct and human readable.

                • xg15 6 years ago

                  I think this could still be confusing as enough users will likely have no idea who "us" is in that message - if they understand the difference between browser and website at all. It could also be confusing if the website already provided its own autocompletion via JS: The user would get a message that autocomplete is turned off while they see that it seems to be right there.

                  But I think in general, some kind of prompt or override would work. I absolutely agree that if a user wants to use the browser autocomplete functionality, they should have an option to do so. I have no understanding for websites that just want to disable autocomplete without replacement.

                  However the concerns seemed to be about autocomplete being incorrect or conflicting with application-provided lists. I can see how that leads to frustration and confusion with users.

                  The Chrome team seems to trust its algorithm to an amount where they don't seem to find it necessary to deal with incorrect results - a view which doesn't match reality apparently.

                • CathedralBorrow 6 years ago

                  Who is addressing the user here?

        • Vinnl 6 years ago

          GP is explicitly not dismissing the above use cases, but merely the supposed justification of "the developer wants it" being enough.

          > I think we can all agree that browser behavior should not be left solely up to the developer and is not a black and white issue. Nobody here is arguing that.

          GGP was literally arguing that: https://news.ycombinator.com/item?id=21239172

          • watwut 6 years ago

            Should developer be able to make it impossible to close browser or open 100 new tabs? No.

            Should developer decide that fields are autocomplete off or green or show javascript warnings? Absolutely yes.

            If user wish to change that, users thing. The browser/google has no business to be mediator here, second guess application they know nothing about and manipulate it.

            The browser should be predictable, well specified and harmless. It should not force me to convert all ids into random strings just so that random data do not get prefilled in.

            • michaelt 6 years ago

              I've heard plenty of people on HN say password managers should ignore autocomplete=off and I agree with them. Because that setting is mostly applied by organisations like banks who incorrectly think they're making things more secure by doing so.

              IMHO there are cases where autocomplete=off should be respected, and other times when it shouldn't be - it's certainly not as simple as saying always do or always don't respect it.

              • kalleboo 6 years ago

                Password managers should ignore autocomplete=off in login screens, but not in administration screens where you’re editing other people’s credentials.

                IMO the distinction could be made to not automatically fill when the autocomplete=off but instead add a button to let the user initiate it

                • rhizome 6 years ago

                  >not in administration screens where you’re editing other people’s credentials

                      <input type="password" name="other-users-password" id="other-users-password">...
                  • kalleboo 6 years ago

                    That was recommended by Google 3 years ago, but there are a bunch of reports in the bug reporter thread that that doesn’t work now. And credentials go beyond passwords - names, usernames, ID numbers

              • Rapzid 6 years ago

                Well, all major browsers now ignore it on password fields so the browser ship has sailed on that one:

                > This is the behavior in Firefox (since version 38), Google Chrome (since 34), and Internet Explorer (since version 11). - MDN

                • Osiris 6 years ago

                  I recently received a ticket from or security team to add "autocomplete=off" to all our password input fields.

                  I was pretty sure that it wouldn't do anything except make the security team feel better.

            • AJ007 6 years ago

              * should a developer be able to hijack browser shortcuts, no. Should a developer be able to disable right click functionality, no.

        • Nitramp 6 years ago

          > Nobody here is arguing that.

          Well, OP that I responded to literally argued that.

          I agree the platform needs to expose useful features in a predictable manner for application developers.

          But I'd much rather have browsers decide what's reasonable control over the user experience.

      • watwut 6 years ago

        If the user installs extension to auto fill everything, it is on him.

        When the browser decided to ignore spec, it is not user agency at all.

        The need for auto fill is extremely application specific and the action is quite often destructive. And it is developer who gets to be blamed for lost data.

      • chaboud 6 years ago

        That's a bit of an appeal to extremes. Visually rendering static HTML per the spec is a situation where a browser "just followed developer's whims", and it's why protocols and standards exist.

        That a browser could reliably infer from context what the right information to insert into a field could be is one of those things that gives great demo and may even work more often than not, but it's a virtually impossible problem to solve comprehensively. Developers have plenty of valid reasons to disable autocomplete and autofill functionality. Taking that away from them and requiring an obfuscating workaround is tantamount to creating an invisible pseudo-standard.

        Imagine what would happen if we decided to solve the scourge of signed-unsigned pointer value bugs in C++ by having the compiler virally assume unsigned variable typing for memory related operations based on variable name. It might feel like a quick fix to a widespread problem, but it would break down all over the place and would break the code of developers who A) followed the spec B) knew what they were doing and C), at least some of the time, were doing it for a specific purpose.

        These sorts of changes remove the incentive to write standards compliant code, leading to a mangled universe of hacks, quirks, and, in the end, bugs.

      • Hamuko 6 years ago

        But I'm developing the application for the users.

        It's pretty annoying that we have to make hacks for a client card page not to automatically assume you want to fill in your own details.

      • codedokode 6 years ago

        Then ask the user before filling anything.

      • dreamcompiler 6 years ago

        And e.g. disabling Paste. But it seems clear that autocomplete gets it wrong often enough that developers should have some say in the matter.

    • klmr 6 years ago

      Unfortunately a few developers are morons who misuse features, and browser vendors try hard to work around them. Case in point, lots of websites used to put `autocomplete="off"` on password boxes, which breaks some password managers. IIRC that’s why Chrome (and other browsers) decided to sometimes ignore the `autocomplete` attribute in the first place. Of course that doesn’t justify ignoring it completely (just for password fields) but maybe a similar reason is at play.

      • onli 6 years ago

        Exactly. Autocomplete=off gets misused. For example, there was a browsergame I played where because of idiotic "security considerations" autocomplete=off got applied to the login screen. At that time for me that meant typing in the password manually, thus picking a bad password.

        So it's a good thing in that situation when the browser ignores the attribute.

      • erichurkman 6 years ago

        Now they need to ban intercepting/blocking `onpaste` in form fields.

        • antisemiotic 6 years ago

          This has the added benefit of disabling local password managers like PasswordSafe. Might as well throw in some stupid password policy (like maximum password length, or banning some special characters but not explaining which) to make sure stubborn users won't use a secure password even if they're willing to type it in every time.

        • vorpalhex 6 years ago

          As an fyi, you can disable the onpaste event in the dev console. Obviously doesn't fix the actual problem but at least helps retyping your email...

      • TurningCanadian 6 years ago

        That was even mandated for all password fields by the PCI scans required for any sites accepting credit cards.

    • wdr1 6 years ago

      What if the user doesn't?

    • Rexxar 6 years ago

      It's the same meaning but I would prefer "just follow the specification an let developer decide what they want"

  • atVelocet 6 years ago

    Finally i know why this happens only in Chromium. This irritates me for quite some time now...

    Seems that Chromium based browsers aren't favorable any more: Tracking, Bugs, uBlock extension is flagged, Manifestv3, etc.

    But Firefox has the same problem since it ships with Pocket and other sync stuff. I know that they really do care but they have problems of their own which really make me think which browser to use. The actual situation right now is very frustrating...

    • phyzome 6 years ago

      Pocket and sync are opt-in and seem pretty tame compared to the stuff in Chrome, just saying...

    • breakingcups 6 years ago

      I use Firefox as my main browser on all my machines and haven't once been bothered about Pocket or other sync stuff. I vastly prefer it, for moral and technical reasons. I feared the switch from Chrome would be very hard and aggravating but it wasn't.

      (The only thing that got me the first few weeks is that opening an incognito window is ctrl+shift+p instead of ctrl+shift+n. Once I got used to that I realized it actually makes sense because ctrl+shift+n re-opens a closed window just like ctrl+shift+t reopens a closed tab.)

      • _v7gu 6 years ago

        ctrl+shift+p feels more natural to me as Forefox calls it "Private Browsing" whereas Incognito doesn't even start with a n

        • jvzr 6 years ago

          (Firefox user here) I find that ctrl+shift+n makes more sense: ctrl+n for a new window, add shift for a modified (incognito) new window. Although whichever shortcut is a very quick habit change to make anyway

  • lqet 6 years ago

    Can anyone explain why the same behavior does not occur on https://www.sbb.ch/, the Swiss equivalent (which is based on the same software by HaCon)?

    E: as soon as you submit a search on sbb.ch, the same problem occurs.

    • subroutine 6 years ago

      Did you try using a first-letter of a location you commonly use in forms? Here is what mine looks like when I use 'm' (like OP):

      https://i.imgur.com/NlzVqhT.png

      and here's what it looks like when I enter 's':

      https://i.imgur.com/1u4Iy7S.png

      (actually, S does not autocomplete in the Swiss site)

      • lqet 6 years ago

        You are correct! As soon as I submit a search query on sbb.ch, the same problem occurs with that query.

        I always concluded that it was the fault of the website creators. Guess I have to switch to Firefox...

        • subroutine 6 years ago

          I think it might have that behavior because they have the auto-complete tag set to...

          <input id="fromField" type="text" inputmode="text" class="mod_textfield_control" placeholder="Von" autocomplete="new-password"...

          Though, there is also a lot of other stuff going on in that html element I don't understand.

          • masklinn 6 years ago

            That's an interesting hack as autocomplete=new-password will generally disable autocomplete.

            Though it may not work every time, as browsers & password managers might also suggest new passwords (following whatever their internal generation rules are).

      • basch 6 years ago

        does the escape key close the extra context menu?

        • subroutine 6 years ago

          Yeah! Good to know. Did the chrome UI make us aware of that shortcut at some point?

          • basch 6 years ago

            I discovered it during a panic once, never saw it mentioned anywhere.

    • carstenhag 6 years ago

      Also occurs there. See https://imgur.com/a/4K73twK

  • lone_haxx0r 6 years ago

    In general, I don't like software defaulting to convoluted "grandpa-friendly" behavior instead of the simple, no-bullshit behavior. Moreover, if you want the simple, sane behavior you're a weirdo and need to justify yourself.

    Another example of this is chrome hiding "trivial" parts of the URL. i.e. any subdomain that coincides with "www" or "m".

  • takeda 6 years ago

    I'm guessing chrome ignores, it because people often place the option when they shouldn't. I don't understand why browsers can't simply respect setting and perhaps provide option for the user to modify behavior per site per field with ability to save. They could go even step further and do what Opera used to do i.e. provide same defaults for most popular sites.

  • jmkni 6 years ago

    I had this issue the other day, I solved it by generating a GUID each time the page loads and appending it onto the end of the ID.

    Not ideal, but worked!

sandstrom 6 years ago

This has turned into a sad chicken-race between Google and developers, with lots of innovative workarounds on Stackoverflow.

Their tactic of overruling web developers doesn't work, it only make things more complicated for everyone, since many of the workarounds have other negative side-effects.

https://stackoverflow.com/questions/12374442/chrome-ignores-...

    ## Example 1

    For a reliable workaround, you can add this code to your layout page:

    <div style="display: none;">
     <input type="text" id="PreventChromeAutocomplete" 
      name="PreventChromeAutocomplete" autocomplete="address-level4" />
    </div>

    Chrome respects autocomplete=off only when there is at least 
    one other input element in the form with any other autocomplete value.



    ## Example 2

    Simply make your input readonly, and on focus, remove it. This is a very 
    simple approach and browsers will not populate readonly inputs. 
    Therefore, this method is accepted and will never be overwritten by 
    future browser updates.

    <input type="text" onfocus="this.removeAttribute('readonly');" readonly />

    Style your input accordingly so that it does not look like a readonly input.


    ## Example 3

    Tell Chrome that this is a new password input and it won't provide 
    old ones as autocomplete suggestions:
    <input type="password" name="password" autocomplete="new-password">
  • obituary_latte 6 years ago

    I think it mentioned chrome is even now ignoring ‘display:none’ and ‘visibility:hidden’ declarations so those workarounds no longer work either.

    • msclrhd 6 years ago

      Great! :( Now I need to recheck to see if an autocomplete bug has reappeared where it thinks an email address field is a username field in a change password UI and autocompletes the email address with the username from the login page.

      Sigh!

      • obituary_latte 6 years ago

        I feel your pain - sorry you have to deal with it. I’m working on a client data management app and I’m having issues everywhere with this. It’s been an open ticket on Jira for months!

    • identity0 6 years ago

      Why would they ever do that. That’s just asking for autofill phishing.

  • scient 6 years ago

    Preach. Them changing the rules and overriding the usage of this attribute is ridiculously stupid in the first place. HTML attributes are there for a reason, developers are supposed to be able to use them and they are supposed to work as expected. But in order to push their password management and form filling functionality, they just give everyone a finger.

    • pas 6 years ago

      At the same time many many many dumb corp-o-rat shit sites disable autocomplete because cOmpLiEncE. And users love autocomplete...

      Naturally the problem is choice. Chrome/G should show a button to auto fill fields.

      They could simply unleash some AI magic, train a network to recognize good and bad sites, etc. (Aka. the Apple way. As they also have a we know better policy, and users seem to love that.)

  • EugeneOZ 6 years ago

    I haven't tried it, but maybe div with "contenteditable" could help?

    • notatoad 6 years ago

      This is what I resorted to on one of our internal tools that wants a phone number to be entered and kept getting auto-completed with our staff'S phone numbers.

      I wouldn't recommend it for public use. There's a lot of subtle behaviour around an input field that you'd need to replicate manually.

  • clairity 6 years ago

    > “ This has turned into a sad chicken-race...”

    great dash use! i almost read that as a race of sad chickens (seriously) but the dash autocorrected me. bravo!

jchw 6 years ago

Because other people here are throwing in their frustrations, I will at least add that on the flip side I have been frustrated by sites that attempt to disable autofill for illegitimate reasons, like attempting to disallow password managers. I think I understand where this is coming from.

On the other hand, I, too, have been bit by this at least once, in the past. I think it was easier to just disable it at that time, but IIRC, the solution we landed on was to not use form controls at all but switch said text controls over to use content-editable elements. In our case it made sense, since it was not a form at all. My memory could be a bit hazy here, though.

(I do not work on Chrome or use Chrome at home, but as disclosure I do currently work at Google.)

  • gnud 6 years ago

    Chrome explains in their security FAQ [0] why they don't adhere to autocomplete=off for password fields.

    They could still follow it for other fields.

    0: https://chromium.googlesource.com/chromium/src/+/master/docs...

    • kevincox 6 years ago

      Of course then websites will just stop using password fields and that is awful for security and convinced.

    • kerng 6 years ago

      Shouldn't the work on changing the spec, rather then confusing majority of developers and causing even financial loss and embarrassment for many? This thread is filled with cases where this caused issues.

      Google should spend their cycles to work on a standard for password managers. The current design of those is flawed anyway.

  • anoncake 6 years ago

    I think we need a way to disable features only for those developers that abuse them. Like uMatrix but built-in and with rules being supplied automatically as ad blocking lists are.

    You autocomplete=off a password field? That attribute won't have an effect on your site anymore.

    You auto-play videos when the user doesn't expect it? What videos? The web doesn't support videos – as far as you are concerned.

    Scroll hijacking? I hope you used progressive enhancement because you just lost your Javascript privileges.

    • Roritharr 6 years ago

      This is actually a reasonable proposal. A moderate list could be an in-built feature, with some config options.

      • anoncake 6 years ago

        It would only work if a strict list is the default in browsers that developers are not willing not to support. The point is not to hack around user-hostile patterns. That frequently means entering an arms race you cannot win. Even in the best case, you're doing that site developers' job. Badly: You have to remove the bad stuff while avoiding overblocking. That's a lot harder than not adding it to start with.

        I'm proposing to take away tools from developers that abuse them no matter how much that breaks. If you mine bitcoins or annoy the user using pop-ups we shouldn't spend time finding out what scripts are good and which are bad but just disable all of them, till you remove the user-hostile stuff. We just broke your SPA? That's your problem. Better start working then.

    • basch 6 years ago

      I asked if something similar was coming to Brave, and the answer was yes. Opera maintained what i believe was a somewhat community powered site patching repository back in the Presto days.

      https://news.ycombinator.com/item?id=20831774

    • msclrhd 6 years ago

      Can we have a reliable cross-browser way to say "this is a change password field, so don't autocomplete it" and "this is an email address field not a username field, so don't autocomplete it with the login username"?

      • shdon 6 years ago

        The autocomplete="new-password" (or autocomplete="off" or even autocomplete="some-random-nonsense") method is supposed to be doing that according to the spec. It is ignored by browser developers probably due to abuse. Additionally, all of those also trigger the prompt to save the password. For a password change form, that is the right thing to do, for many others it is not.

        I'd very much like to see a way to disable that save prompt too, especially in user management screens. When I create a new user, I want neither my own password to be autofilled, nor do I want to overwrite my saved password with theirs.

      • Santosh83 6 years ago

        The web needs strong typing. Right now most input fields are variants of text boxes and there are no naming standards that can be enforced without breaking millions of sites.

      • edoceo 6 years ago

        I've seen/used autocomplete="new-password"

      • anoncake 6 years ago

        Developers can say that. What we need is a reliable way to know if they're lying.

    • anticensor 6 years ago

      I even found a name for such an extension: PunishIt.

  • doctorpangloss 6 years ago

    Disabling autocomplete is so incredibly frustrating that I ran an extension in Safari to remove the off tag from sites. Of course I want to use KeyChain, the whole point is that touch based ID is more secure.

    • Nitramp 6 years ago

      I have my own extension for Chrome that yanks the autocomplete attribute. I much rather deal with over eager completion than websites disabling it for silly reasons and pseudo security.

    • httpsterio 6 years ago

      Touch based are not better. Your fingerprint is not a password, it's just an identifier and shouldn't be treated as a secret.

      • geofft 6 years ago

        Your fingerprint is an additional factor (something you are) for the actual better-than-passwords thing here, the isolates processor/storage in your laptop that handles Touch ID (something you have). Without physical possession of the laptop, the fingerprint is useless.

      • dustinmoris 6 years ago

        > Your fingerprint is not a password

        Correct, because a fingerprint makes a password to some extent redundant.

        > it's just an identifier and shouldn't be treated as a secret

        Correct, identifiers are not secrets. Your face is not a secret and your fingerprint either. The problem is that we use secrets to identfy someone, when we potentially already have tech which can identify someone without having to remember a secret and store it in a dictionary of secrets on someone else's computer in the cloud.

        The sole purpose of a password is to identify someone with a certain degree of confidence. If a fingerprint taken from a handheld device, which has already been proven to belong to a person, can provide the same if not even a higher level of certainty about someone's identy, then a password or as you say "secret" is not required at all anymore.

        • NeedMoreTea 6 years ago

          Um no. The user Name or ID is to identify.

          The password is to secure that identity. With TouchID or FaceID you are using them for both. Which reduces security.

          > then a password or as you say "secret" is not required at all anymore

          Definitely incorrect. Someone can cut your finger off, lift a print off your coffee mug, extract it from a selfie etc. There's been dozens of ways to exploit over the years, many of which have hit HN.

          • dustinmoris 6 years ago

            What is the compromise? What is insecure about me being me? Either we talk past each other not understanding each other's point, or I feel like you profoundly misunderstand the reason for people using username/password for authentication nowadays?

            With most things you need to authenticate to gain access. Authentication is only trying to solve one question - identifying that a person is who they say they are. If I walk home and my wife sees me, she can identify me immediately by simply seeing my face and other biological attributes which gives her 100% certainty that I am who I am, therefore she doesn't question me on entering the house or calls the police.

            If I was to go through some top secret lab experiment which would change my look (make me younger by 10 years or something) then I'd struggle to walk home and convince my wife that I am me without providing additional evidence, like sharing some secrets which only she and I know and we know that nobody else would know.

            With technology so far we didn't have the ability to identify someone as confidently and as fast via biometrics (like my wife does) as via other means, which is why a few decades ago we had to invent a workaround, namely username and password - which is a secret that hopefully only me and the website knows. This was to date the best way to identify someone, but times are changing fast, as as biometric identificaiton via technology is advancing fast, we are more and more removing the need of username + password for authentication.

            Hope now my point makes sense.

            • NeedMoreTea 6 years ago

              A biometric identifies you. An identity does not inherently authenticate you.

              Identification is knowing which account to log in. dustinmoris, User123 or user124.

              That alone is useless, as anyone who knows your name could log in. So we need to add security to authenticate you. To authenticate with reasonable certainty that the person accessing dustinmoris actually is Dustin Moris, at this moment willingly accessing their own account, willingly transferring £1m to NeedMoreTea. :)

              Now, it's certainly true that biometrics are uniquely associated with you, but prove identity not authentication - bear with me here.

              You leak DNA and fingerprints all over the place, constantly. Fingerprints have even been picked up from photos. That makes fingerprints surprisingly weak authentication. Face IDs have been fooled by video and photos. I'm not at all current on what the state of the art on FaceID hacking and devices is, so can't say more there. In a police interview they can place your thumb on the phone or wave phone under your face. Maybe borrow your thumb while you sleep to transfer that £1m. The bank will say you fully authenticated it, in their highly secure app, you will deny it.

              In combining biometrics as identification and authentication we've compromised the system. It does not give certainty, or even especially high confidence. If motivated, anyone in your office could lift a print while you're out. Computer or phone says Dustin Moris is believed awake and accessing, but you're certainly not doing so willingly, nor can you resist if just a touch or look unlocks. In this context, your wife might easily pick up on whether you were willing in a police interview or not, the phone can't, because mere identification is the unlock.

              With a password they have to persuade you to reveal it. It is very easy to not leak passwords accidentally on PostIts, and manage the complex with a password manager. The police can certainly beat it out of you, but most places are supposed to have rules against that. Many places actually honour those rules. A judge might question the bruises and missing teeth.

              For a lot of people that's a fine distinction that doesn't matter, the convenience of it probably being you willingly unlocking the phone with your thumb is good enough. If security actually matters, it's not.

              Sorry that got a bit long.

              • kortilla 6 years ago

                You highlight flaws in faceid, etc but passwords also have flaws.

                - Fingerprints can be lifted from pictures. - Passwords can be forgotten and thus have seriously flawed reset schemes that often fallback to something as simple as having the right phone or backup code. - passwords can be lifted by keyloggers - passwords can easily be phished - passwords can be shared

                Authenticating access can come from 1 or more of: something you know, something you have, something you are.

                They each have flaws. They all do the same thing.

                • NeedMoreTea 6 years ago

                  They don't do the same thing. All the flaws in passwords can be avoided, the semi-public state of biometrics cannot.

                  Authenticating access, if you follow standard security practice, should be at least two of, and preferably all three of: something you know, something you have, something you are. Not one or more.

                  • kortilla 6 years ago

                    There is no axiom that the flaws of biometrics cannot be avoided. “Something you know” is in fact a biometric property of the brain that can easily be transferred.

                    Touch ID combines something you have with something you are. It’s easily better for 99.9% of the threats out there that result from weak passwords shares across sites and users trained to type them into anything that resembles the real logon page.

            • Dylan16807 6 years ago

              If we had technology that doesn't exist, we could have secure biometrics.

              In practice the computer is just getting a picture, which is semi-public information, and that's why the only thing you can rely on is that it's an identifier. It's not enough to authenticate when you really need security, only in more casual situations.

        • enriquepablo 6 years ago

          > The password ... is a way of identifying that you are you.

          That is not correct. The "system" identifies you by your ID (username - biometrics - whatever). And for the system to ensure that whatever actions you perform on it, are really coming from you, you have to add proof of your identity to the orders for those actions. You use a secret to create that proof of identity. The secret is yours, the identity is the system's (what it uses to identify you).

          If you use something you don't treat as a secret (such as your fingerprint) as your proof of identity, you'll be loosing it left and right - you'll be inviting everyone around to impersonate you. Drinking a can of coke and throwing it to the bin would be the same as printing your password in cards and passing them around.

        • Santosh83 6 years ago

          Anonymity is weakened if we tie authentication to biometrics. Something you know (as in password) is always theoretically more secure than something you are (your physical characteristics).

          • scient 6 years ago

            I think the statement you make about "something you know" always being more secure is not nearly as clear cut as you present it.

            A combination of "something you know" and "something you have" is always going to be a very strong authentication scenario, and making "something you have" a non-hackable thing that truly only you can have (i.e not a USB key or a TOTP seed etc.) is a good choice.

            The catch here is that when you mention biometrics, you make the assumption of static biometrics (rightfully so, as most methods like Touch ID and Face ID are static), but if you combine lets say face biometrics with liveness checks, you are getting into a territory where faking them becomes much much more difficult (there are various mechanisms out there, the good ones rely on completely random interactions and light-bouncing detection methods as an example).

            The real challenge is how do you make these very strong biometric methods frictionless and cheap? Or how do you introduce similar controls - like liveness - for easier methods like fingerprints?

            And using any of these (ideally) has absolutely nothing to do with anonymity. You are not anonymous online regardless of what you use for authentication - and you are frankly not smart if you assume thats the case. A company offering a service with biometrics is no different from a company doing the same based on email/username and a password, if they do privacy and security right.

            I could actually get into a much longer rant about this last part, as it blows my mind how many netizens are all about privacy and whatnot, yet are willing to expose every single detail about them when its convenient from them...

            • Santosh83 6 years ago

              > And using any of these (ideally) has absolutely nothing to do with anonymity. You are not anonymous online regardless of what you use for authentication - and you are frankly not smart if you assume thats the case. A company offering a service with biometrics is no different from a company doing the same based on email/username and a password, if they do privacy and security right.

              Why should I use unchangeable, personally identifiable details when logging into some random joe's website? The mechanics of it are also tied to specific devices if I'm not wrong. I can't just login anywhere without risking leaking secrets. When did fingerprints, iris patterns and DNA go from necessary tools in law enforcement and biology (and for highly secure installations) into casual usage all over the place?

              • dustinmoris 6 years ago

                You don't have to identify yourself with a "random Joe's website". You can read the comments here without identification, you can seach for flights without identifying yourself, you can search for hotels without giving away who you are, you can read the news, watch YouTube, etc.

                But when you want to access something that should only belong to you, e.g. your bank account, your Google Drive files, your private emails, etc. then you must find a way of identifying yourself with given website. Username/password is one way, biometrics is another way.

                Only my family has permission to enter my house. When someone enters my house who doesn't look like my family, then they can throw around all secrets, passwords and usernames they want, I'll kick them out, because in my eyes they don't pass the ultimate test of verification, namely biometrics.

                So far we were unable to provide the same level of identificaiton via the web, but technology is changing rapidly, so I don't see why username/password are always going to be more secure. On a theoretical basis it doesn't make sense. Because inforation can be easily shared, spread and copied. My physical composition not.

                • paulryanrogers 6 years ago

                  Biometrics are digital interpretations, which can be copied. The biological sources cannot be easily changed. So _when_ the digital copies leak they become a liability.

                  Passwords can be easily changed. And until reliable, remote, mind reading technology becomes available they'll continue to be better than biometrics.

          • enriquepablo 6 years ago

            > Anonymity is weakened if we tie authentication to biometrics.

            I think you mean pseudonimity. There should be no authentication in anonimity.

            > Something you know (as in password) is always theoretically more secure than something you are (your physical characteristics).

            If you authenticate, you can use methods that are more or less secure. If you use a password method, and use a secret as password, it will be more secure than if you use a biometric as password.

            But the security of the authentication method will bear no weight on the "pseudonimization" - meaning on the difficulty of linking the authenticated identity with your real, legal identity.

            • Santosh83 6 years ago

              It's effectively like using one password for every app/site authentication. What if the hashes/keys leak out? Then how easy would it be to change your keys for other sites while still using the same biometrics?

          • dustinmoris 6 years ago

            Anonymity is of course weakened, but that is a different debate. Currently there is no anonymity at all if your account is linked to your email address, which you've also used to register your online banking account, your credit card verification, your PayPal account, etc. and when you have your mobile phone number confirmed, etc.

            A password gives you 0 extra anonymity in this case. All it is used if for "identifycation" and in this regard it sucks in comparison to true biologial identification.

            • cuu508 6 years ago

              You are mixing up terminology. When logging in a website, your username identifies you, and your password authenticates you.

        • Natanael_L 6 years ago

          Password authenticated key exchange algorithms (PAKE) solves the dictionary of secrets problem, by hiding the password from the server.

  • cdubzzz 6 years ago

    We recently had to go through a website project and disable autocomplete on all password fields after a security scan as part of a PCI compliance process. For autofill password it didn’t seem to have any effect in _any_ browser I tested in. How can it be used to thwart password managers?

    • driverdan 6 years ago

      Why would you need to disable autocomplete passwords for PCI compliance?

      • toast0 6 years ago

        Because either the PCI standard says so, or the PCI consultant says so.

        PCI compliance is about checking boxes, not weighing the options and making good choices.

        • cdubzzz 6 years ago

          Exactly this. Some of the checks _are_ valuable. We found a couple of real issues and made good security improvements. But we also ticked off more than a few boxes that made no damn real sense.

ss3000 6 years ago

Setting aside the merits/lack-thereof of this particular decision, Chromium ignoring established web standards like this is especially dangerous as we're trending towards a world where 1) Chromium itself powers the most popular browser in the world by an increasingly unhealthy margin, and 2) even competing browsers are increasingly becoming skins on top of Chromium.

We are becoming more and more reliant on the developers of Chromium to be steadfast stewards of the standardization process. Their massive influence means that any deviation from actual web standards on their part will inevitably create a new and conflicting de-facto standard that will create decades of lasting damage and irreversible tech debt for the entire web (eventually leading to a repeat of the IE6 dark ages).

Decisions like this demonstrate an utter disregard for the crucial role Chromium plays in the web standardization process, and jeopardizes the entire ecosystem.

  • ss3000 6 years ago

    W.r.t. this particular decision, I feel a more reasonable approach here might have been to allow users to manually trigger autocomplete on individual fields with `autocomplete="off"`, and/or to allow users to strip away the ability to disable autocomplete on a site by site basis.

    Analogously to how users are able to selectively grant access to certain default-off features for each website (notifications, camera access), users should also be able to revoke access to certain default-on features for sites that abuse them without affecting the vast majority of sites that use the features for their intended purposes to create a better user experience.

  • jjcm 6 years ago

    This isn't even the first time we've seen this either. Both Chrome Mobile and Safari Mobile go against the standard and implement `vh` incorrectly.

    Honestly it seems strange that they go against the standard though considering how much power they have in defining it. Why break from the standard when you can just update the standard. It ends up being the worst of both worlds - documentation that says one thing (that they had a hand in building) and an implementation that does something completely different.

    • chrismorgan 6 years ago

      Admittedly, the viewport units are just all-round badly thought out and fundamentally broken. (The corresponding problem with vw is that the viewport units includes viewport scrollbars, so that on a page with vertical scrolling, `width: 100vw` will cause horizontal scrolling on platforms where the scrollbars take space.)

      • Santosh83 6 years ago

        Genuinely curious but how are they fundamentally broken? Or at least, any more so than px or cm or em etc? They all have weird edge cases at extreme usage scenarios... Or rather, if you were to 'fix' vw/vh, how would you go about it?

        • chrismorgan 6 years ago

          There are two fundamental problems.

          First is the scrollbar thing I mentioned. It means that you can’t use it for layout purposes; you thought you could sit four blocks side-by-side with `width: 25vw`? (And that was pretty much the whole reason why people wanted viewport units in the first place—this being before flexbox provided alternatives that are generally acceptable, though not without flaws, or grid provided often better alternatives.) Sorry, that’ll only work on a platform with overlay scrollbars, not where scrollbars actually take up space. There’s fun history around Firefox’s implementation where they made it possible to get the “right” behaviour, but no one else implemented that, so it was eventually removed from the spec.

          Secondly, it was also predicated on the idea that the physical viewport size won’t be changing all the time; but on mobile platforms where the address bar can get out of the way as you scroll that’s simply not true, so you’re stuck with browsers having to decide between two interpretations: vh picking either the smallest or largest value and thus not actually reflecting the viewport height half the time, or vh reflecting the viewport height and causing the page layout to jump around in a jarring fashion when the address bar expands or collapses, when vh is used as part of the layout.

          The first can be fixed in two ways (which can be combined): firstly, by defining new units that exclude document element scrollbars (e.g. 100vw2 ≅ calc(100vw - env(scrollbar-layout-width-auto, 0px)), to define it in terms of what follows); secondly, by exposing the layout width of scrollbars to CSS, e.g. as env(scrollbar-layout-width-auto) for the width with `scrollbar-width: auto` and env(scrollbar-layout-width-thin) for the width with `scrollbar-width: thin`. These values would be something like 17px and 8px on Firefox on Windows, and 0px and 0px on platforms with overlay scrollbars.

          The second, you probably need to expose new constants for the possible extreme values of viewport height. e.g. I could imagine env(viewport-min-height, 100vh) and env(viewport-max-height, 100vh) working, which would then allow developers to select one or the other, as suited their purpose. Or define new units opinionated on which value should be used, and then deprecate vw and vh since they’re inconsistently implemented.

          (In using env(), I must caution that it’s currently rather broken for some sorts of situations: https://github.com/w3c/csswg-drafts/issues/3285.)

    • Natanael_L 6 years ago

      All browsers on iOS are Safari wrappers

  • ko27 6 years ago

    Strictly speaking, Chrome is not ignoring a web standard, since the standard does not require this behavior (no "MUST" keyword).

    • obituary_latte 6 years ago

      Well they are ignoring hundreds if not thousands of developers which is the main issue at this point.

      • ko27 6 years ago

        Well, that's what Chrome always does? Just like the preventDefault breaking change thing. They have no problem ignoring developers if they think it will be a net benefit for user experience.

        • obituary_latte 6 years ago

          Yup. Very frustrating as a dev. I don’t really get how they rationalize it either - having their autofill appear over and obstruct a developers autocomplete functionality is not user friendly!

      • jrockway 6 years ago

        By ignoring "hundreds if not thousands of developers" they are respecting the wishes of millions of end-users that don't want the site owner to decide what they can and can't autofill.

        Obviously a simple boolean is the wrong design here. But can you suggest a better one?

        • fuzzy2 6 years ago

          I don't think "millions of end-users" want broken websites because now another developer (Google) gets to decide what's correct (instead of the web dev).

          A better solution could be to just behave reasonably by default but allow the user to re-enable auto-fill with a single click.

        • obituary_latte 6 years ago

          Surely there’s a way to check if a field has some kind of programatic interaction like typeahead. Maybe check for that before taking over with autofill? I don’t know - maybe that would break spec or something - I’m not a browser developer. I just know the pain of autocomplete=“off” not working as expected.

    • dwb 6 years ago

      That depends entirely on your interpretation of RFC 2119 in this context – whether you consider Google to have "valid reasons" or not. It's not an objective or inarguable issue.

    • ss3000 6 years ago

      Point taken. Maybe in this case the spec authors were also at fault for leaving too much leeway in the implementation.

      Nevertheless, from their stance on the issue so far it stands to reason that the Chromium team would have objected to any efforts to tighten the spec, which would also have led us to this same situation.

azernik 6 years ago

I ran into this last week (with LastPass, not Chrome - this seems to be a common practice):

I have a form where users enter information about their suppliers (I make restaurant management software). This includes a field for the contact email address, which LastPass was autofilling the email address the user used to log in. This happened silently, quickly enough that users wouldn't notice it on page transition, and would overwrite the initial value. Even with autocomplete=off.

This was a DATA LOSS bug - users would load the page, make a few changes, save, and not notice that they'd lost the email address they'd stored for the supplier. Fortunately LP has a method to force disabling of autofill (data-lpignore=on), but this could have all been avoided if they'd followed the spec I was relying on. I still don't know if some other password manager, maybe built in to Firefox or something, will make the same mistake, haven't had time to check yet.

  • iforgotpassword 6 years ago

    Similar thing at my last job. Some internal webapp that was communicating with a bunch of other services. Whenever you edited the connection to such a backend you'd get a bunch of settings to change, as well as - depending on the backend type - credentials to talk to that other service. So if you were saving your credentials to that web app, whenever you edited such a backend connection, it would overwrite the username and password field in that settings page with your credentials for the web app itself. Even though the fields were pre-filled with the current values in the html the server sent you, chrome just went ahead and replaced them on page load. It happened more than once someone accidentally saved the settings and replaced the actual credentials for the backend with their login credentials for the webapp. So anyone accessing that edit page afterwards could steal their coworkers password.

    So at some point a colleague went ahead, found the template and added a fake username and password field at the very beginning of the form that had something like "position: absolute; top: -2000" (after an hour of failed attempts with the autofill attribute and using hidden fields and whatnot).

    So yes, f*ck those Google devs on their high horse.

  • notatoad 6 years ago

    The LastPass on is especially horrific because it fills in fields that are already filled, and it fires a change event. So if you're auto-saving on a change event, that data is lost as soon as the page is loaded.

    • kerng 6 years ago

      The entire design of password managers that hijacking the DOM is flawed.

      • SaladFork 6 years ago

        A recent LastPass version does not fail gracefully and a lot of my webapps started getting weird console errors from users with LastPass extensions that were trying to unsuccessfully inject into our forms. :/

Geeflow 6 years ago

As a user, Chrome's autocomplete went down the drain for me once they started to fill all fields at once. I tried to autocomplete one field and often chrome filled the other fields with unfitting data. This happened so often that I started to manually complete fields even if autocomplete was available. I still miss the good old times[tm] of single-field autocomplete...

(And for the record: As a developer, I have been bitten by Chrome ignoring autocomplete="off" as well.)

  • megous 6 years ago

    Yup, I like how FF does it. I basically just do a repeated sequence of:

    TAB -> Arrow Down (select one of the previously filled values I've used) -> Enter

    When filling a form. Given that sometimes we order things on made up names, it's quite useful no to have that autofilled when we're not wanting to.

  • stefan_ 6 years ago

    This is a bit of a missing perspective. I wouldn't even care about them not following autocomplete=off if the damn autocomplete was useful. Instead 90% of the time I'm fighting it.

    They really, really need to stop trying to autocomplete entire forms, and probably not anything other than "user/password" forms. The whole 'look at this input id and match it to a bunch of categories' approach has been thoroughly debunked as useless.

TekMol 6 years ago

I guess this will lead to a horrible coding style where instead of having this in the form:

    <input name="email">
We will see stuff like this:

    <input name="16fkr9547kancot944128sddfksdf934998aafccugt75">
Where developers use some type of abstraction that generates a random id for each field and then assigns it to the original value server side or in javascript.

Just like they already randomise asset filenames to avoid caching.

  • wiredfool 6 years ago

    I’m doing this with a field where I provide server side autocomplete of an item. It sucks, but I can’t find a better workaround.

  • masklinn 6 years ago

    MDN literally mentions jquery.disableAutoFill which basically does that for you under the cover (scrambling the name on display, and unscrambling on submission).

  • StavrosK 6 years ago

    Your comment about randomizing filenames got me thinking. It would be great if we could add a cache key to the HTML element, that way we could cache everything forever with the same filenames and still invalidate things by just making the key being the SHA of the deploy. Too bad that's not a thing.

    • jstanley 6 years ago
      • StavrosK 6 years ago

        Subresource integrity is for ensuring that you got the right file (it fails if you didn't), it doesn't do anything with the cache, unfortunately.

        • jstanley 6 years ago

          Really?

          Seems like it would be crazy not to use it for caching.

          • summm 6 years ago

            The problems are 1) side channels. Caching those would mean that a malicious script could use timing to find out if the user accessed specific other websites. Also it enables a channel for cross-domain communication. 2) malicious user tracking would not work as well anymore, which would be good but Google probably will not support that. Currently they get all those nice http log entries from sites that only include fonts etc.

            • Natanael_L 6 years ago

              For sensitive files with known names, you should be able to set that the cache is only valid for requests from the same host website (as the server might decide to send another response when the host is different). That would fix the sidechannel.

  • ProfSarkov 6 years ago

    It's like Internet Explorer 6 all over again. SAD.

  • donatj 6 years ago

    lol, years and years ago (like 2005) as an attempt at stopping XSS and CSRF attacks and bots I came up with a system that named all the inputs a salted MD5 of the intended name with the salt randomly generated then stored in the users server side session.

    It’s still a reasonably effective solution for CSRF, though there are much simpler options, but today’s bots largely have cookie jars so you will likely need a CAPTCHA.

    • Thorrez 6 years ago

      How would it stop XSS? Is it meant to stop attackers from getting JS execution on your site, or to mitigate the attackers' abilities after they have JS execution? I don't see how it would do either.

      • donatj 6 years ago

        I mean both CSRF and XSS. If your inputs are named something different on everyone’s machine, per session, you can only XSS yourself. Not very useful, you can already do in many other ways.

        Also my comment above is not an endorsement of the methodology, it’s just a thing that happened.

        • Thorrez 6 years ago

          Why can you only XSS yourself? If an attacker has javascript execution on the website, the javascript can identify forms not just via their names, but by relation to other elements in the DOM tree. The javascript can for example do

          document.querySelector("form > input");

          That doesn't rely on names at all. Just like a human can use eyes to find the right input, the javascript can use the DOM tree to find the right input.

          I understand that it provides CSRF protection. It's basically a CSRF token embedded in the name.

          • donatj 6 years ago

            You misunderstand. Specifically on sites without cross-user visible content, the JavaScript needs to get into the system via an input, POST or GET. When every user input is named something different, you have no ability to send a link with a JavaScript payload.

            • Thorrez 6 years ago

              Hmm, I guess it could provide some protection against some types of XSS, but it's not comprehensive. It doesn't provide any protection against stored XSS. And even for reflected XSS, it assumes the only dynamic thing in your URL is form inputs.

              An example of something dynamic in your URL that's not a form input would be links to various articles posted through some type of CMS. For example http://example.com/article?id=foo or even http://example.com/article/foo . In both cases if foo doesn't exist, a badly-written error page could print out "Error, foo was not found" without escaping foo.

      • justicz 6 years ago

        Maybe they mean CSRF? Then things make more sense since you can’t guess the field names cross-origin.

  • xg15 6 years ago

    > Just like they already randomise asset filenames to avoid caching.

    But why? Isn't the whole point of caching to improve delivery if static assets?

    Did they run into staleness problems? Then why not use if-modified-since/if-none-match?

    • noselasd 6 years ago

      You are assuming browsers(there are many more than chrome&ff) ,proxies, etc. do caching correctly.

      • summm 6 years ago

        And you are assuming web devs could configure their servers properly. Anyway, it all boils down to the mentality of lowest common denominator: using that workaround, nobody has any incentive to fix their proxy.

  • mxxx 6 years ago

    Yep. We recently noticed this problem after renaming form fields for the purpose of accessibility (screen readers)

VMG 6 years ago

Autofill for offscreen elements gives me the creeps even without the data getting misinterpreted

  • dmix 6 years ago

    This is why form elements should never be hidden after loading. Display none should be the default in the HTML for non-relevant content, which should be enough for most autofillers. It also prevents flashing of content when autofillers try to populate it, causing the hiding to delay, which I recently saw in a production app.

    Frameworks like React and Vue don’t even render the HTML into the DOM until conditions are met so the situation is improving.

    Another positive step away from jQuery hackery!

    • pantalaimon 6 years ago

      If you want to be malicious and capture wrong auto fill data, wouldn't a simple AJAX request on change be enough to capture sensitive data before the user gets a chance to correct it?

      • AJ007 6 years ago

        Yes, and there are popular third party analytics platforms that record all activity on a page, which includes not just every key press, but the speed at which it was done, with or without a submission of the form.

        Web browsers should never, ever use auto fill unless the user has already entered that information on that domain already. Popular domains that host third party content should never be able to auto fill.

      • HeavyStorm 6 years ago

        I'm not really sure but I think the behavior is a bit different with autofill. While the browser show the field highlighted, the data is there for _the user_ but the actual form field has not been actually changed and no dom event is fired.

    • meredydd 6 years ago

      If you think late rendering or "display:none" will put Chrome off, think again! The anvil.works IDE is Angular, so it's all rendered post-loading, and Chrome still autofills the weirdest things. Relentlessly.

      Search boxes? Sure! App titles? Yeah, one week a bunch of our users' apps got renamed to the author's email address.

      Being an IDE, of course, there are lots of places where inserting random text will break things. When I open up the console and see it filled with "'meredydd@anvil.works' is not a valid Python identifier"? That's the signal to go hunting for which dynamically-generated off-screen text box Chrome is stuffing credentials into this week.

      TL;DR Chrome's autofill is out there. It can't be bargained with. It can't be reasoned with. It does not feel pity or remorse. And it will not stop.

  • yk 6 years ago

    That begs the question, at which point does autofill happen in an iframe? So I pay for an ad, and have a password, creditcard number, address etc. form in the background. Does the browser autofil, or does it autofill when the user starts to fill in a form in the foreground?

    Asking for a friend.

  • throwaway_bad 6 years ago

    And worse part is that autofill still works in incognito.

  • TazeTSchnitzel 6 years ago

    Oh yes. I seem to recall it was demonstrated as a way to covertly steal user information from the browser a while ago.

  • Hamuko 6 years ago

    Haven't browsers already done changes to combat that?

sky_rw 6 years ago

Curious as to the global business impact this has had. I personally have spent at least a dozen hours debugging forms and trying to disable autocomplete/autofill on my kiosk-based applications. How many development hours collectively have been wasted on this unilateral decision.

I have not been this frustrated since the days of writing css for ie6, and at least back then the devs response was more "sorry its our rendering engine" and not battre just saying GFY seemingly out of disdain.

I try to be as free-market as possible but I sure wish that the w3c had some teeth when it came to things like this.

  • sundbry 6 years ago

    You're not the only one. I remember spending a good two days on it this year for a page where the user puts in their credentials for external integrations.

albertzeyer 6 years ago

Btw, at http://google.com, this is what they have for the search field:

<input class="..." maxlength="2048" name="q" type="text" jsaction="..." aria-autocomplete="both" aria-haspopup="false" autocapitalize="off" autocomplete="off" autocorrect="off" role="combobox" spellcheck="false" title="Search" value="" aria-label="Search" data-ved="...">

  • carstenhag 6 years ago

    Does anybody have a clue why it does not show up there? The Google team must have done something in order to circumvent what the Chrome team did. Horrible.

goatinaboat 6 years ago

Overall, I still believe that neither of the extreme strategies ("always honor autocomplete=off"

Is it “extreme” now for a computer to do what the user wants and not what a random Google employee wants? How does this differ from malware?

  • ProfSarkov 6 years ago

    It's also in the spec.

    People might not like the spec or it might be incomplete, but adhering to it is a very important part of improving it until it's a good one.

    Now I'm no webdev, but I could very well imagine that the spec is already a good one. So the situation might be even worse.

    • ko27 6 years ago

      No, it's not a requirement in the spec. Chrome is actually spec compliant regarding this issue.

    • nikanj 6 years ago

      The spec only says "should", not "must". Apparently these wingnuts thought that means the spec can be ignored.

      • reificator 6 years ago

        > The spec only says "should", not "must". Apparently these wingnuts thought that means the spec can be ignored.

        Not arguing in favor of this particular choice, but yes. That is exactly what "should" means in most cases.

        For instance, in RFC 2119: https://tools.ietf.org/html/rfc2119

        > SHOULD This word, or the adjective "RECOMMENDED", mean that there may exist valid reasons in particular circumstances to ignore a particular item, but the full implications must be understood and carefully weighed before choosing a different course.

        • azernik 6 years ago

          Blanket disregard of a SHOULD directive as a UX decision neither falls under "in particular circumstances" nor indicates that they've "understood and carefully weighed" the consequences.

      • ko27 6 years ago

        There are no semantics to discuss. Chrome is spec compliant. That's a fact. Words like "should" and "must" have well defined meaning that is clarified in every spec document, which I would highly advise you to read before writing any further comments and insults.

  • shpx 6 years ago

    autocomplete=off is set by website developers, not users.

    • jussij 6 years ago

      However the more important point made by the OP still remains which was some random Google employee chooses to ignore it.

lstamour 6 years ago

The way I see it, autofill off should mean off and if I click the icon in the address bar to bring up, well, let’s call it “quick access to per-site settings” then maybe I could override it for a specific page load or site, like you can Flash, etc.? This per-site configuration is starting to become “normal” given iOS 13 does the same in Safari for permissions, content blocking, automatic reader mode, etc. It would make sense that the default is “follow the HTML5 spec” but you could put a notice in the address bar if you really felt otherwise...?

Safari does a much better job by only filling visible form fields, I think (though it too has a tendency to put my address both in Line 1 and Line 3, which is annoying...).

the_pwner224 6 years ago

Explanation from the 'rogue Chromium dev' is linked to in comment 19 of this bug: https://bugs.chromium.org/p/chromium/issues/detail?id=914451...

https://bugs.chromium.org/p/chromium/issues/detail?id=468153...

  • antoinevg 6 years ago

    ...which really makes it worse:

    1. Our programming language has an attribute called "autocomplete" with two possible values: "on" and "off"

    2. We will now (without consultation or announcement) simply start ignoring one of those values when you specify it. (and certainly not document the new behaviour!)

    3. Here, I made you a convoluted (and undocumented!) workaround for getting the original behaviour of the attribute back.

    I'm not sure which horse these FAANG kids who excel at programming challenges rode in on, but this attitude is RIFE in their product SDK's and API's.

    Dijkstra must be spinning in his grave.

  • Carpetsmoker 6 years ago

    > somewhere along the journey of the web autocomplete=off become a default for many form fields, without any real thought being given as to whether or not that was good for users

    And here I was, all along, thinking that website authors were in control of how their websites behaved. How silly of me!

    • Reelin 6 years ago

      It's complicated. Sometimes website authors do silly things that negatively impact users; browsers ought to help (without breaking things!) where possible.

      Some daily annoyances that I wish browsers would actively mitigate, in no particular order: js-based redirects, blocking copy-paste, disabling text selection, hijacking the forward slash to open the website's own search function (I'm looking at you, Github), hijacking any of my other keyboard shortcuts that I rely on, creatively breaking my back and forward buttons (yes I realize there are legitimate reasons for some webapps), and overriding the built in right-click context menu.

      • Carpetsmoker 6 years ago

        The things is that there are valid reasons for all those features: JS-based redirects are useful for many webapps, blocking text selection can be useful for some buttons and such, many people do use custom app-specific key mappings, overriding right-click is useful for many apps (e.g. Google docs), etc. etc.

        Of course, all those features can also be abused, but that doesn't mean it's a good idea to try and second-guess website authors; that just makes things much much more complicated for everyone.

        Any feature can be abused in any platform, and as the web has moved towards an "application platform" – instead of just a document viewing platform – there are many more features with potential for abuse, but it also becomes much more important that behaviour is consistent and predictable.

        I'm most definitely not on the "the specification is holy"-side of things, but from what I read in this issue the Chrome team seems surprising tone-deaf to concerns about Chrome's behaviour here. This is general patterns I see with Chrome, which confuses "it works for the majority of cases/users" with "it works well". These are simply not the same things.

        • pas 6 years ago

          Google is allergic to user interaction. No support, no configuration, no choices, no questions, no customization, no power users.

          :/

          This should be a simple per-site toggle. And/or a per form/input button to do the autocomplete. It usually only matters for the password field, anyway.

      • kps 6 years ago

        In Firefox, shift+right-click brings up the browser context menu.

        • the_pwner224 6 years ago

          Arrgh. I wish shortcuts like this were more discoverable. Shift+right click seems useful and I'll probably end up using it sometime in the future, but I would have never known about it if it were not for this comment. Same as ctrl-L, and for 99% of people F5 and alt+left/right. There should be a page listed in the Firefox menu with a list of useful shortcuts, from most useful (F5, alt+left/right) at the top (so that normal people can get some efficiency gains easily) and going to to more obscure ones like shift+right click so that power users like us can... well, be power users.

    • rcxdude 6 years ago

      They are in control of their servers. They are not in control of how the user agent (clue is in the name) interprets the javascript and HTML sent to it.

GrayShade 6 years ago

Firefox used to ignore autocomplete="off" until relatively recently. I'm sick of sites thinking they know better than me -- like those who don't let me paste in the password field. While I understand the good use cases for this attribute, given the binary choice I would rather have it ignored.

  • mcv 6 years ago

    That is absolutely stuff that the user needs to be able to override. In fact, anything related to cutting and pasting is not something I think the browser should mess with.

    Also: websites that generate a custom login name or password for me so I won't remember it, and then refuse to allow autofill or pasting. Fortunately dev tools are standard on the desktop these days.

    (I would really, really like access to dev tools on mobile, though. It's simply necessary to get around some broken websites.)

  • elcritch 6 years ago

    In best cases there’d be an option to honor the attribute or not.

andrewstuart 6 years ago

The weird thing is that there's other teams within Google who offer autocomplete libraries that simply don't work because Chrome overlays it's own autocomplete on top.

The maps team seems to have given up on trying to resolve that.

Chrome team have made a judgement that autocomplete is required and no-one - not even other teams within Google are allowed to override that functionality.

It's weird.

  • nikanj 6 years ago

    Google really is the new Microsoft

  • jefftk 6 years ago

    > not even other teams within Google are allowed to override that functionality

    Isn't that how things should work? If other teams within Google had a special way to override autocomplete wouldn't that be worse?

    (Disclosure: I work at Google)

    • andrewstuart 6 years ago

      My point is that this decision from the Chrome team even breaks Google's own software.

      This emphasises the craziness of the unilateral decision by the Chrome team which is essentially saying: "we, the Chrome team are correct and everyone else can go jump in the lake".

      I'm not suggesting that Google should have secret special ways to do things.

      • atomicfiredoll 6 years ago

        Angular Material's Autocomplete component is an example of this. Our users would have found that really helpful... if Chrome's autofill behavior didn't break it.

xg15 6 years ago

Relevant reply from a Googler seems to be this: https://bugs.chromium.org/p/chromium/issues/detail?id=914451...

by battre@google.com

... which doesn't read at all to me like a "rogue dev" and more like a shared sentiment inside the Chrome team that autocomplete=off should be ignored.

At least, if there is a direct spec violation that breaks all kinds of applications and the answer your hear is "oh well, we're working on giving the user more options and improving our algorithm", that's not exactly encouraging.

  • bullmanOP 6 years ago

    It is a direct spec violation, and it is breaking all kinds of applications.

    Look, I get that this capability is super useful on shopping sites, and I rely on it practically every day.

    But, I also build enterprise applications, where Chrome simply would not ever understand or know what would be valid choice.

    I do, though; I built it. Invoice Numbers / Pre-Validated Travel Dates & Locations / Pre-Validated Locations / Pre-Validated IssueID that are so esoteric, we have built custom autocomplete that provide additional relevant information / Pre-Validated Users where the number of valid "John Smith"s number in the 10s, and additional meta data must be provided to differentiate.

    Application developers need a reliable, durable way to tell the UA that a particular field should never be autofilled or autocompleted. The spec says this is autocomplete=off. Just do that.

tannhaeuser 6 years ago

It's odd that the linked bug report references and complains about W3C specs when browser/HTML specs have been coming from WHATWG for well over ten years now. W3C has ceased publishing HTML with W3C HTML 5.2 in 2017, and has announced an intent to merely publish WHATWG snapshots going forward; so far, I'm not aware of any actual work under this model by W3C.

But OTOH that Chromium interprets form field names heuristically to enable auto-autocomplete is worrying, and reflects poorly on the whole "standardization" process by WHATWG.

  • Santosh83 6 years ago

    Indeed. Chrome and Firefox both autocomplete my user name and password into GitHub's new user registration form, even though I already have an account. It's flaky and just asking to be abused.

duxup 6 years ago

It's really frustrating to have to work around this with hit or miss hidden inputs and such.

So many cases too where auto complete misfires an obliterated forms that had helpful placeholder text.

Just having a user change passwords and auto complete will often put an old saved password in the first field but not the second confirmation password field.

  • johneth 6 years ago

    > Just having a user change passwords and auto complete will often put an old saved password in the first field but not the second confirmation password field.

    You can hint to the browser which password you want to autofill with autocomplete="current-password" and autocomplete="new-password"

    • duxup 6 years ago

      I've found that auto complete still sometimes guesses at what to do in that case depending on what the other fields are. At least it did last time I fought with it.

Hokusai 6 years ago

I do not get from where it comes that it is a rogue developer. I have worked in many companies where developers make mistakes. And, it is always the ways of working, giving more priority to features than quality, and similar cultural attributes of the company at fault.

The only time I saw this being a rogue developer was a commit and run done by a guy on his last day.

It is easy to blame one person when actually is a systemic failure that needs to be addressed at the company level.

  • londons_explore 6 years ago

    I agree - and in fact, I think accusing this guy of being rogue is an unnecessary direct attack on him/her.

    They are just doing their job, and in this case, acting in what they believe is best way for users. Here on HN, it seems most disagree, but that is still no reason to accuse someone of being rogue.

    Headline should be "Google Chrome actively ignores HTML5 standard"

    • jefftk 6 years ago

      The standard says "SHOULD", not "MUST".

      (Disclosure: I work for Google)

      • craftinator 6 years ago

        And not following the spec recommendation has gotten us... Here. Where Google is protecting users from both bad actors and good actors, whether the user likes it or not! The overwhelming response to this issue makes it clear that the heuristics used are simply not good ENOUGH. They can't accurately predict the best user outcome in a majority of situations. The Chrome team has wrenched the onus of autofill responsibility from all other developers, then fumbled it, badly. A good fix for this is to give the onus to the user. Popup toggle buttons, labeled: Autofill: Yes, No, Auto. This means we can all stop hating Chrome team for being patronizing, stop hating web devs for being unable to make their beautiful apps work in our godawful browsers, and start hating ourselves instead!

      • bullmanOP 6 years ago

        Where is this supposed "should"?

        From the spec - The autocomplete attribute represents either:

        a) autofill expectation mantle

        b) autofill anchor mantle

        If the input type is "hidden", then it is wearing the "autofill anchor mantle". IN ALL OTHER CASES (emphasis mine) it wears the "autofill expectation mantle"

        And what are the rules on "autofill expectation mantle"?

        "When wearing the autofill expectation mantle, the autocomplete attribute, if specified, must have a value that is an ordered set of space-separated tokens consisting of either a single token that is an ASCII case-insensitive match for the string "off", or a single token that is an ASCII case-insensitive match for the string "on", or autofill detail tokens

        ...

        The "off" keyword indicates either that the control's input data is particularly sensitive (for example the activation code for a nuclear weapon); or that it is a value that will never be reused (for example a one-time-key for a bank login) and the user will therefore have to explicitly enter the data each time, instead of being able to rely on the UA to prefill the value for them; OR THAT THE DOCUMENT PROVIDES ITS OWN AUTOCOMPLETE MECHANISM AND DOES NOT WANT THE USER AGENT TO PROVIDE AUTOCOMPLETION VALUES. (emphasis mine)"

        Per: https://html.spec.whatwg.org/multipage/form-control-infrastr...

        • jefftk 6 years ago

          The "should" is in the spec's description of how to interpret "off": "When an element's autofill field name is 'off', the user agent should not remember the control's data, and should not offer past values to the user."

          • bullmanOP 6 years ago

            So then the crux of the conflict:

            In 4.10.18.7.1...

            "The "off" keyword indicates either that the control's input data is particularly sensitive (for example the activation code for a nuclear weapon); or that it is a value that will never be reused (for example a one-time-key for a bank login) and the user will therefore have to explicitly enter the data each time, instead of being able to rely on the UA to prefill the value for them; or that the document provides its own autocomplete mechanism and does not want the user agent to provide autocompletion values."

            In 4.10.18.7.2...

            "When an element's autofill field name is "off", the user agent should not remember the control's data, and should not offer past values to the user.

            NOTE: In addition, when an element's autofill field name is "off", values are reset when traversing the history."

            @jeffk - Ok, I now understand where you are getting this interpretation.

            I think this is a dangerous interpretation (and perhaps it requires altering the spec to say must). Again Application developers need a reliable, durable way to tell the UA that a particular field should never be autofilled or autocompleted. How else do you propose we do that, other than following 4.10.18.7.1.

            • jefftk 6 years ago

              My parent was saying Chrome was not compliant with the spec, but SHOULD directives are not mandatory and a User Agent may decide that it would be a worse experience for users to follow them.

              Chrome is claiming that enough developers have marked fields as autocomplete=off in user-hostile ways that it shouldn't be respected, while many people here are making the case that conflicts with site-provided autocomplete and other issues push the other direction. That's how to have this discussion, not by pretending this SHOULD is a MUST.

              (I don't work on Chrome and don't know any Google-internal anything about this)

          • bullmanOP 6 years ago

            Additional food for thought. Elsewhere, in 4.10.5.1.2 (Text (type=text))...

            "If the element is mutable, its value SHOULD (emphasis mine) be editable by the user. User agents must not allow users to insert U+000A LINE FEED (LF) or U+000D CARRIAGE RETURN (CR) characters into the element's value."

            https://html.spec.whatwg.org/multipage/input.html

            So, according to this spec, the UA is allowed to make an input field type=text non-editable if it so chooses.

            Would you argue that this is another place where Chrome would be allowed to act in a manner differently than expected, because "SHOULD" was used?

            • jefftk 6 years ago

              If a browser offered a user a way to edit immutable fields, or blocked users from editing mutable fields, the discussion should be "is whatever reason they're doing this for strong enough to outweigh the presumption that following the web developer's request is the right thing to do". Not "the spec prohibits it, no matter how good your reason may be".

              For example, you can use the browser's devtools to edit an immutable field, because "allowing someone to develop the site" is a strong enough reason.

      • azernik 6 years ago

        SHOULD means you can ignore it in particular circumstances and with good reasons. Not all the time as a matter of UI judgment.

speedplane 6 years ago

I run a site with a normal login/password, but which maintains passwords for other systems. It's pretty frustrating when the internal external usernames are autofilled with the username from our site. It confuses the user, suggesting that the username from the external site should be the same as our own.

PerfectElement 6 years ago

I was using Google Places' address auto-complete on a CRM, and most users loved it. Chrome's behavior completely broke this functionality by overlaying their auto-fill on top of Google Places suggestions, with no sane way to disable it. We decided to stop using address auto-complete and force our customers to type the address fields instead.

Ironically, we were paying Google a few thousand dollars per month for this, so they are not getting our revenue as a direct consequence of Chrome's behavior.

dazbradbury 6 years ago

I'm not sure who Chrome think they're helping. We get many, many users contacting our support team because of this feature / bug on https://www.openrent.co.uk.

It's frustrating, we've used workarounds, which then stop working and reports come flooding in again. It's crazy to me that the Chrome team think this is better for users, and that there isn't a more intelligent workaround for sites abusing autocomplete=off.

  • vidarh 6 years ago

    At some point the alternative will be to implement a custom input control, which will just be awful in all kinds of ways, but it's just as awful to have Chrome think it knows best in some contexts.

andrewstuart 6 years ago

The Chrome dev team have implemented autocomplete the way they think it should work, not the way web developers want.

You cannot switch off Chrome's handling of autocomplete, thus any other autocomplete implementation will be overwritten by Chrome's handling.

Chrome team feel they know best.

  • chris_wot 6 years ago

    They are becoming the Gnome of browsers. The Chrome dev team seem to be getting more and more user hostile.

avodonosov 6 years ago

Bad that chrome developers don't practice web development enough to know the use cases where ignoring autocomplete=off breaks the application.

mgoetzke 6 years ago

Or line of business applications which (when rendered with Chrome) wants me to pick from my credit cards when I enter a certain field which has nothing to do with credit cards. I think it depends on the field name, but there seems to be a very loose correlation.

needle0 6 years ago

Another reason to abandon ship and switch to Firefox.

avellable 6 years ago

With the new direction chrome is going I wouldn't mind putting "works best on anything but Chrome" on my next web project.

  • dustinmoris 6 years ago

    I was thinking the same, websites should just have a big popup somewhere saying that the website might not work on Google Chrome, because it is W3C compliant and Google Chrome doesn't implement W3C standards, whith links to download alternatives browsers.

    • vntok 6 years ago

      Please go read the spec, you will find that Chrome is perfectly compliant with it regarding the autocomplete attribute handling.

dang 6 years ago

The submitted title was heavily editorialized:

"Rogue Chromium dev lead ignores W3C 'autocomplete' spec; frustrates Internet"

lowercased 6 years ago

> This causes some problems, e.g. in <input type="text" name="name">, the "name" can refer to different concepts (a person's name or the name of a spare part).

Maybe I need context, but I don't understand why they're trying to 'guess' context around 'name' and trying to autofill something - either a spare part or a person's name.

Doesn't "name='name'" indicate that it should refill with the previously filled value of field named 'named' on that same page/document/url? Why are they trying to add algorithmic complexity on to already existing stuff?

<input --chrome-type="name"/>

This might make more sense, no? Let chrome try to determine a 'name' based on whatever logic they want.

velox_io 6 years ago

There's a major security flaw with auto-fill when it comes to passwords. Sure, it's hidden on screen, but you only have to change the password box's type, so it isn't "type='password'" and it is revealed. This only takes a matter of seconds.

Chrome should remove the password if there is any attempt to change that form object.

This flaw has been there for years, it's actually handy if I'm not sure what the password is.

  • Someone1234 6 years ago

    If you can modify the type of the field, you can also read the field's value without changing the type (e.g. document.getElementById('password').value from the console). Even just using the address bar via javascript:{alert(document.getElementById('password').value);}

    As Raymond Chen and others call it: "the airtight hatchway problem."[0] Meaning you're sitting in a context where you can steal the password in infinite ways and complaining about the easiest one. But ultimately fixing that one way still leaves infinite remaining ways.

    You're in the superuser context for the webpage. If you can modify the password field's type you can literally do anything to that page.

    [0] https://stackoverflow.com/questions/2787853/arent-passwords-...

  • Smithalicious 6 years ago

    Is this really an issue? Presumably anyone with access to the browser can acces saved passwords anyways; the censoring only prevents onlookers from reading it.

    • Avamander 6 years ago

      Actually on Windows at least Chrome asks for a password when trying to view all passwords. So it isn't _that_ easy.

user5994461 6 years ago

>>> - How to trigger the hiding? - right mouse button menu or (more likely) something in the drop down? where would we put that? ...

Mobiles notoriously don't have mouse buttons, so any UI relying on right-click will not be usable there.

It's odd that Google is considering mouse-based workarounds in all considered solutions, as if unaware of that. or maybe Chromium is only the desktop browser?

packetized 6 years ago

This position seems at odds with a recently opened WHATWG issue.

https://github.com/whatwg/html/issues/4986

codegladiator 6 years ago

> if you add an <input type="hidden" autocomplete="username" name="does_not_matter" value="{the actual username}"> before your current-password and new-password fields, Chrome should get it right

I can't believe that this suggested hack is coming from google.

https://bugs.chromium.org/p/chromium/issues/detail?id=914451...

platz 6 years ago

> Comment 66 by battre@google.com on Tue, Oct 8, 2019, 3:48 AM CDT (5 days ago) - Overall, I still believe that neither of the extreme strategies ("always honor autocomplete=off" and "never honor autocomplete=off") are good

https://bugs.chromium.org/p/chromium/issues/detail?id=914451...

We're in for the Long haul on this one.

tyingq 6 years ago

Discussion about a demo of the issue...

https://news.ycombinator.com/item?id=13329525

marcoseliziario 6 years ago

If you look at the chrome sources you can find this flag:

const char kAutofillOffNoServerDataDescription[] = "Disables Autofill for fields with autocomplete off that have no " "crowd-sourced evidence that Autofill would be helpful.";

So, at least in a company, this should work to avoid autocomplete making corporate apps unusable.

another thing that seems to work for me, is adding role="combobox" along with autocomplete="off"

tehabe 6 years ago

I guess this bug is the real reason why I turned off auto-fill in the browser a while ago, because it acted weird a lot of times.

asdf-asdf-asdf 6 years ago

title is wrong, the spec is not ignored. spec says: " When an element’s autofill field name is "off", the user agent should not remember the control’s data, and should not offer past values to the user. "

please note that it uses "should", not "must". these words have precise definition in specs, see RFC2119:

" SHOULD This word, or the adjective "RECOMMENDED", mean that there may exist valid reasons in particular circumstances to ignore a particular item, but the full implications must be understood and carefully weighed before choosing a different course. "

one may argue whether chrome has valid reasons or not, but saying they ignore it is incorrect.

  • mstade 6 years ago

    > [...] there may exist valid reasons in particular circumstances [...]

    (Emphasis mine.)

    Is it really spec compliant when the "particular" circumstance is all of them?

chris_wot 6 years ago

Previously closed as WONTFIX: https://bugs.chromium.org/p/chromium/issues/detail?id=468153

marcoseliziario 6 years ago

So far this combinations seems to be working for me

role="combobox" autocomplete="off"

onion2k 6 years ago

Does Chromium not have anyone doing QA or acceptance criteria? A rogue dev lead could make whatever feature they want, but there should be a robust process of testing by many people before the feature makes it in to a production build.

aiCeivi9 6 years ago

I hat to fight with browser autocomplete in Kibana main search bar. On the other hand I guess it is the same as right mouse button - I don't allow any site to capture that event since some abuse it.

dannykwells 6 years ago

A rare example where an editorialized HN post title is appreciated. Bravo!

sm4rk0 6 years ago

Just stop using Chrome. There are good (even better) alternatives.

edoceo 6 years ago

I use autocomplete="x" and it seems to work for my apps.

Both Twilio and NameCheap seem to have login that defeat autocomplete in a nice way. Haven't investigate their tricks

mfer 6 years ago

> This has turned into a sad tit-for-tat between developers and Chrome, where no-one is winning.

Not the kind of relationship you want to build with an army of advocates

enriquto 6 years ago

I love the edited title of this post. It reflects accurately the reality of the situation. Hey, battre, hi there! You are famous now!

robotstate 6 years ago

I wrote a Medium article on how to actually turn it off 3 years ago that consistently gets about 500 views a week to this day.

phendrenad2 6 years ago

I wonder what kind of engine overhaul Chrome is doing to cause all of these strange breakages.

smashah 6 years ago

This also screws with notion to the point where I've largely stopped using it at all

wolco 6 years ago

As a developer this can be fixed by using unique field names.

iandanforth 6 years ago

We're Google, we don't have to respect the spec.

tus88 6 years ago

I would love it if someone explained how 'autocomplete=off' can lead to abuse of some kind. It seems to reduce the potential for security leaks.

  • pilif 6 years ago

    It causes spec-compliant password managers to not work.

    Unfortunately, disabling autocomplete for password fields is an often used form of security-theatre

    • techsupporter 6 years ago

      Combine that with sites attempting to block pasting in a "complex, secure" password and I start to see Google's point here, bad as I don't want to. How "auth" is handled, at almost every layer, seems about as badly broken as "security" in the U.S. banking system.

      Fortunately, Firefox gives me dom.event.clipboardevents.enabled so I at least need not worry about my workaround being broken.

    • tmd83 6 years ago

      Here's the tricky thing and I don't have a solution that doesn't get abused. I hate that lots of bank do this but I also have a use case for password autocomplete=off. We operate in an industry where shared computer access is very common and the risk of users saving password in browser is real and too high.

      As I said don't know what the answer is. I definitely want someone using password manager be able to use them. Using a password manager is a conscious choice with setups involved. Browser's default autocomplete is often not. I don't know how to separate these two out.

      • al2o3cr 6 years ago

        You could, I dunno, use the tools specifically provided to disable saving passwords in environments where that's undesirable:

        https://thycotic.com/company/blog/2013/09/09/securing-web-br...

      • epochwolf 6 years ago

        Isn’t it on the people administering those systems to disable autofill on their side?

        • tmd83 6 years ago

          In theory it is. But for most customers (who are small) there's almost no IT department and the average computer literacy is lower than you might think (though improving) so the risk is there. Except for that situation I would happily leave them autofill/save password.

      • pas 6 years ago

        kiosk mode? Firefox has a great extension for this.

    • tus88 6 years ago

      Ok, but how is that abuse? And if autocomplete=off is part of the html standard, how are the password managers spec compliant if they can't deal with it? Are people doing this just to annoy users who prefer password managers?

      • Thorrez 6 years ago

        >Are people doing this just to annoy users who prefer password managers?

        People are doing it because they don't understand password managers, and think blocking them makes people more secure. They believe that if a password is in a manager, that password is less secure than if that password was purely in the user's head.

        • londons_explore 6 years ago

          If a bug in the password manager leaked the password to your bank to a third party, many users wouldn't want to pay for any associated costs/expenses when a bad guy steals their money.

          Yet the bank also doesn't want to take on security audits for code entirely outside their control.

          • Thorrez 6 years ago

            I consider that similar to a bug in the browser or the operating system. Should the bank require that I only use specific browsers or operating systems? In fact any program I install on my computer could have a vulnerability, or be malicious and thus lead to my password being stolen. Should the bank require that I not install any programs except ones they specifically permit?

            The bank should also consider which is more frequent: user account compromises due to weak/reused passwords, or user account compromises due to password manager bugs.

          • pas 6 years ago

            Then banks should recommend a good password manager. It's on them to make their users happy after all.

            One part of that is a proper risk analysis. Password reuse and weak passwords are much bigger risks than a rouge autocompleter.

    • rndgermandude 6 years ago

      Then only ignore autocomplete=off for forms that have password fields.

      Sure, stupid devs can still work around that too, but so can they work around the current ingore-always behavior.

  • flaviu1 6 years ago

    > It seems to reduce the potential for security leaks

    Misguided views like this are exactly how. Turning off autocomplete doesn't improve any sort of security, since the site already needs to trust the browser.

    It serves no purpose other than to frustrate the user, and might even reduce security if it prevents the user from easily making use of a password manager.

    • mike_pol 6 years ago

      Agreed on password fields, however if you have a webapp crm it causes so many problems. And also giving a solution of "hey just put something that we don't understand in the autocomplete so we won't try to autocomplete it" is really not a solution at all.

      Imagine if instead of autocomplete it was something like ignoring font sizes/color because they detected that engagement was low when font size was whatever so they render it differently. A browser should render HTML not make decisions like these

      • millstone 6 years ago

        You just described reader mode!

        • kalleboo 6 years ago

          Reader mode is user-initiated though.

          These developers wouldn't be complaining if the Autofill functionality was activated by a toolbar button rather than automatically.

    • vidarh 6 years ago

      It does sometimes improve security for the user.

      This happens when the auto-complete triggers on things it shouldn't and the user doesn't notice and submits personal details they never wanted to send to the site at all.

      I've had to struggle a lot with working around Google's wrong-headed approach to this because this actually happens to real users. It's downright irresponsible, and I think frankly it's just a question of time before EU data protection watchdogs starts to take notice. All it will take is a sufficiently bad case of unintended disclosure of personal information (e.g. imagine a domestic abuse victim accidentally having their new address auto-completed in just the wrong situation).

      (EDIT: this also easily happens with web apps where someone has to enter details for different users in the same forms multiple times; it get's very easy to end up not noticing Chrome auto-completing details for unrelated users; if that information is later visible to the user, it creates a real risk of leaking personal information)

    • pyrale 6 years ago

      When user experience is bad, the website suffers, not chrome.

      When chrome devs believe it is their role to alter ux, they are backseat driving.

    • throwaway2048 6 years ago

      plenty of stuff (like credit card info for instance) should absolutely never be auto-completed. The browser storing that sorta stuff to disk is stupid and completely avoidable.

      Already caught chrome doing this to my Social Security Number before i disabled the functionality entirely. The idea of Chrome automatically auto filling any form it sees labeled "SSN" on any site dosen't inspire confidence.

      • Thorrez 6 years ago

        > (like credit card info for instance) should absolutely never be auto-completed

        One of LastPass's advertised features is credit card autofill. I assume they advertise it because some users like it.

        https://www.lastpass.com/autofill

      • xmodem 6 years ago

        One CRM webapp I worked on took our frontenders several attempts at different hacks to get Chrome to stop treating the SSN-equiv field as a credit card autofill.

        • DCoder 6 years ago

          What are the odds that those hacks have been broken by Chrome updates since then?

          • xmodem 6 years ago

            Probably pretty high. I'm not on that team anymore, but the end users would have complained if it had happened.

  • avodonosov 6 years ago

    From previous discussions I remember payment and bank forms use autocomplete=off and chrome developers don't like it, they want card numbers to be pre-filled.

  • bonestamp2 6 years ago

    I think some people want to be able to override it because some sites try to block password managers from filling the password field. Since Chrome has a built in password manager, that is likely their motivation to ignore it.

imode 6 years ago

Is "ignoring the specification" an extreme, now?

Are we seriously expected to entertain this mess?

So glad I switched to Firefox all those years ago.

  • dustinmoris 6 years ago

    Google slaves came to downvote you after someone said this on their internal chat lol.

  • vntok 6 years ago

    The spec says SHOULD though, not MUST. Chrome is compliant.

bullmanOP 6 years ago

There was a time when IE was the dominant browser, and happily did whatever they wanted to.

That was arguably better, because at least they acted predictably. Chrome has been continually altering how autocomplete is handled in the last 5 or 6 major releases

  • sebazzz 6 years ago

    The most horrible is that it is almost completely unstylable, last time I checked. If you have floating placeholders it gets fun.

  • IshKebab 6 years ago

    They acted predictably by never updating IE and letting it stagnate. Hard to see how that is better in any meaningful way.

    • pjmlp 6 years ago

      You still had a choice, nowadays being a Web Developer is almost a synonym for Chrome Developer and it was the IE hatting crowd that made it happen.

      • IfOnlyYouKnew 6 years ago

        You must have lived in a different past than me.

        IE was far more dominant, and browsers actually had meaningful differences back then. Porting CSS written for IE to Firefox could easily take 50% of the initial implementation time, if not 100%. Today, it's not completely uncommon to have something developed on Chrome working in Firefox and Safari without any changes.

        And the most significant problem with IE was obviously that it wasn't FOSS, and was only available for Windows. Neither applies to Chrome.

        • pjmlp 6 years ago

          Yeah all those Web sites that are Chrome only must be a product of my imagination.

          It doesn't matter if Chrome is open-source, when it is technically owned by a single corporation.

          • The_rationalist 6 years ago

            Update your beliefs.. Microsoft is now a major contributor to chromium.

            • rndgermandude 6 years ago

              [citation needed]

              They are now a major user of chromium, and may contribute, but they do not have any say in what goes into chromium. That is still controlled by google employees. If said google employees do not like microsoft patches, they will reject the proposed changes, and microsoft can then at best push them into their own fork.

              • The_rationalist 6 years ago

                Google rejecting Microsoft changes has not yet been observed, it could happen.

                Most people think that Google agenda could conflict with Microsoft agendas. I have read a LOT of chromium issues. I can tell you that the higher management at Google does not dictate chromium changes as they are too technical for them. The truth is, except for maybe a few exceptions, chromium evolve through the decisions of engineers that want to create the best possible product. They are not different to Firefox or edge engineers. Thus they should collaborate pretty well and a Google and Microsoft team should not have more "conflicts" than between two Google internal teams. As you said for the exceptions, Microsoft can maintain a fork, it's still order of magnitude more economic and smart than to constantly duplicate work in a redundant browser (firefox)

                You can see a list of their merged pull requests here: https://chromium-review.googlesource.com/q/author:*.microsof...

                BTW I really wonder when Apple will switch back to chromium.

                • rndgermandude 6 years ago

                  >I can tell you that the higher management at Google does not dictate chromium changes as they are too technical for them.

                  Tell that to the webRequest API that ablockers use.

                  >As you said for the exceptions, Microsoft can maintain a fork, it's still order of magnitude more economic and smart than to constantly duplicate work in a redundant browser (firefox)

                  Chrome is the redundant browser. Firefox was here first.

                  • The_rationalist 6 years ago

                    webRequest API Well maybe it's an exception, but they have technical reasons mostly. Webrequest v3 is not stable so wait and see.

                    Chrome is the redundant browser. Firefox was here first. Well Chrome is based on khtml which is not that new but yeah Netscape navigator precede it. Indeed it would have been better if chrome was based on gecko (FF) at the time. But now Firefox can be thought of the redundant browser because of both marketshare and being technically an inferior product on most metrics.

                    If mozilla worked on improving chromium, think of the massive progress it would bring to the World! Website would have no limits on what is possible to create. Everything would be fast, etc.

                    • rndgermandude 6 years ago

                      > webRequest API Well maybe it's an exception, but they have technical reasons mostly. Webrequest v3 is not stable so wait and see.

                      Bullshit. They decided they wanted this to fuck with adblockers, then found some "technical reasons" they could use as talking points, afterwards. Also, the reasons are apparently so "technical" and "necessary" that google said it would not apply the proposed crippling of webRequest to corporate deployments of Chrome. Corporate users apparently do not need privacy or performance. Go figure.

                      "B-but user privacy! Extensions can see request" - This is grand coming from google in the first place. Nonetheless, an easy way to solve this is to have special "webrequest" scripts which can apply rules etc, but cannot communicate out, so cannot exfiltrate data.

                      "B-but performance" - Wasn't a problem so far. If you're really concerned about those 10ms per request an adblocker might add, then either don't run one (and see how your "perf" behaves when all those nice ads load instead), or run one that uses the declarative stuff, which google can still implement additionally.

                      >If mozilla worked on improving chromium, think of the massive progress it would bring to the World! Website would have no limits on what is possible to create. Everything would be fast, etc.

                      By "massive progress" you mean outright monopoly on the internet technology for Google? That's not progress. I'm still mad at MS. Instead of taking google's sabotage (you cannot call it anything else really), they shouldn't just obeyed the new goverloads, but sued the living shit out of google. I bet they now a few good antitrust lawyers.

                    • pjmlp 6 years ago

                      On that scenario we would become Chromium developers, exactly my initial premise.

      • Gibbon1 6 years ago

        I seriously can't wrap my head around why anyone decided it would somehow be 'okay' to use googles web browser. Because unless you are a Pollyanna coolaid drinker you know where that's going to lead us.

      • yoz-y 6 years ago

        Except Chrome is still far below the user-base of IE in its heyday. And the most "valuable" users are all on mobile Safari. So it still makes sense to at least test with that.

        • pjmlp 6 years ago

          Mobile Safari is only relevant on first tier countries.

          Plenty of web sites aren't for international consumption.

        • capableweb 6 years ago

          "the most "valuable" users are all on mobile Safari"

          Not at all, as only 20% of the people using mobile browsers at all, are using Safari.

          • The_rationalist 6 years ago

            To be accurate: Safari has 20% of mobile browser marketshare. And 5% of desktop browser marketshare. So globally they are <20%

          • yoz-y 6 years ago

            Yes but these users account for a very disproportionate amount of spending.

        • avodonosov 6 years ago

          Doesn't matter, chrome started to ignore standards and dictate their understanding.

      • IshKebab 6 years ago

        You didn't have a choice. That was the whole problem!

        • pjmlp 6 years ago

          Well, shortly you won't have a choice anymore.

          And there was a choice, back then alternatives like Opera, did actually ship their own engine.

          • IshKebab 6 years ago

            We're not talking about choice for users. This is about choice for developers.

            • pjmlp 6 years ago

              Likewise I had Netscape, Opera, IE on my development environment.

              • IshKebab 6 years ago

                Are you being deliberately obtuse? Choice of which browsers to develop for. You had to support IE6 back in the day. Now you have to support Chrome. When they do weird shit you can't say "well that browser is broken", you have to work around it.

                Surely most people here are old enough to remember the days of IE6? It wasn't that long ago.

platypii 6 years ago

Thank you chrome, for recognizing that the USER is what matters, not the website developer. Websites started blocking legitimate uses of autocomplete, and that makes the web less secure. As a user I sincerely hope that "autocomplete=off" dies just like the blink tag, as it is user hostile.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection