I think removing this [intentional check](https://searchfox.org/mozilla-central/rev/44d99b6b8d84abed2d20386cc2e62cd90da41cc3/toolkit/components/satchel/FormHistoryChild.jsm#101-104) might not be the right way to deal with this bug. I did a test on both Safari and Chrome, both don't save input to form history when `value == defaultValue`, however, it seems that Chrome does something extra. In my test, if you modify the `defaultValue` on the fly (which is what react is doing now?), after submitting the form, Chrome compares the value with the **initial** `defaultValue`, not the `defaultValue` updated by the script. The behavior make it look like Chrome doesn't compare `value == defaultValue`, but actually it does. I test this example: https://codesandbox.io/embed/material-demo-y5mlt Safari has the same behavior with us. Chrome doesn't have this issue probably because the mentioned trick above. In summary, removing the `value == defaultValue` will make us behave differently with other browsers. In my opinion, it won't be a better design either. If this is something we need to fix, I'd suggest using a workaround to address this special case and not change the general behavior.
Bug 1642570 Comment 10 Edit History
Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.
I think removing this [intentional check](https://searchfox.org/mozilla-central/rev/44d99b6b8d84abed2d20386cc2e62cd90da41cc3/toolkit/components/satchel/FormHistoryChild.jsm#101-104) might not be the right way to deal with this bug. I did a test on both Safari and Chrome, both don't save input to form history when `value == defaultValue`, however, it seems that Chrome does something extra. In my test, if you modify the `defaultValue` on the fly (which is what react is doing now?), after submitting the form, Chrome compares the value with the **initial** `defaultValue`, not the `defaultValue` updated by the script afterwards. The behavior make it look like Chrome doesn't compare `value == defaultValue`, but actually it does. I test this example: https://codesandbox.io/embed/material-demo-y5mlt Safari has the same behavior with us. Chrome doesn't have this issue probably because the trick mentioned above. In summary, removing the `value == defaultValue` will make us behave differently with other browsers. In my opinion, it won't be a better design either. If this is something we need to fix, I'd suggest using a workaround to address this special case and not change the general behavior.