facebook/react

IE 11 and Edge no longer prompt to remember password on controlled form

lPadier opened this issue · 14 comments

Do you want to request a feature or report a bug?
Bug (regression) IE/Edge

What is the current behavior?
On React > v15.2.0, Edge and IE11 do not prompt the user to save the password for the form

Steps to reproduce
With react 15.1.0:
https://jsfiddle.net/69z2wepo/49876/
With React 15.2.0:
https://jsfiddle.net/69z2wepo/49877/

What is the expected behavior?
The browser prompts the user to save their password for the form

Which versions of React, and which browser / OS are affected by this issue? Did this work in previous versions of React?
React > 15.2.0. It worked in React 15.2.0
IE 11, Edge

This issue is caused by this commit 4338c8d#diff-5a2abece6f8c2495d8242daa40245434L156
which changed:

value: MUST_USE_PROPERTY | HAS_SIDE_EFFECTS,

to

value: 0,

It looks like the key is the HAS_SIDE_EFFECTS bit.
Changing the value, even if it's identical to the existing value, knocks off browser helpers in Edge.

I see that HAS_SIDE_EFFECTS was removed in a later version so that's something to account for.

Related to #6406 \cc @jimfb.

@lPadier I've opened a PR at #8266.

Any progress on this bug? The PR to fix it seems to be hanging around for a while and has not yet been merged.

@aweary @jquense We should get test fixture coverage on this. It would be our first browser specific test case!

is there any workaround for this issue?

For me this bug is still present in 16.2.0.
IE: 11.309.16299.0
EDGE : 41.16299.248.0

I'm still having this issue with both IE and Edge:

Works with 15.1.0: https://codesandbox.io/s/lpvz0zy9wq
Doesn't work with 15.2.0: https://codesandbox.io/s/o9kl2jzo1q
Doesn't work with 15.6.2: https://codesandbox.io/s/38kp95wl96
Doesn't work with 16.3.1: https://codesandbox.io/s/xjpk3wr55p

In order to test this effectively, you have to follow a few steps:

Using Edge, go to Settings >> View Advanced Settings, under Privacy and Services

  • make sure you have Offer to save passwords enabled:
    image

  • make sure you don't have any passwords saved in the codesandbox.io domain:
    image

Steps to reproduce when IT WORKS (15.1.0)

  • go to the 15.1.0 sandbox
  • type a username and a password and hit submit
  • you'll see a confirmation panel about saving passwords:
    image
  • refresh the page
  • type another username and a password and hit submit
  • you'll see another confirmation panel about saving passwords:
    image
  • refresh the page
  • click on the first input
  • you'll see a list of the previously used usernames: image

Steps to reproduce when IT DOESN'T WORK (15.2.0, 15.6.2, 16.3.1)

  • remove previously saved passwords from the codesandbox.io domain:
    image
  • go to any of the non-working sandboxes (15.2.0, 15.6.2, 16.3.1
  • type a username and a password and hit submit
  • there will be no password confirmation panel
  • refresh the page
  • click on the first input
  • there will be no list of previously used usernames

Is there a work around for this issue? I tried updating react to 16.4.1, didnt fix the issue for me

@abbybhat Oh no! Can you send over a reproduction case?

@nhunzaker The reproduction case was already provided by @luisrudge above. I updated it to 16.4.1:

Password prompt in IE 11 showing with 15.2.0:
https://lpvz0zy9wq.codesandbox.io/

Password prompt in IE 11 not showing with 16.4.1:
https://q7knzjrk8q.codesandbox.io/

Seems like this wasn't fixed after all. We need to figure out why we thought this was fixed in #11534.

There might have been a mismatch with the originally referenced issue in #8266, which was focused on the password reveal icon.

I believe this works in Edge, but not IE11. I am still confirming IE11, but I need to step away for a bit. Here is what I found:

I setup a fixture for this, and I'm not having an issue getting the "remember password" flow". I have made a test fixture for this case here:

http://react-password-remember.surge.sh/password-inputs

And the associated diff:
https://github.com/facebook/react/compare/master...nhunzaker:password-remember-test-fixture?expand=1

screen shot 2018-08-29 at 4 32 16 pm

This holds true for master, React 16.4, and React 16.3.

Additionally, I am not having an issue triggering the password flow in @luisrudge's example:
screen shot 2018-08-29 at 4 36 14 pm

And I can also see the passwords saved in the manager:

screen shot 2018-08-29 at 4 39 26 pm

Looks like we already came to this conclusion in #12749. This does not work in IE11, and was being tracked to that issue.