Bug 1629226 Comment 0 Edit History

Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.

Consider:
* each field in its own Shadow Root
* username and password fields together in a shadow root within a <form>
* username and password fields together in a shadow root wrapping a <form>

All features should work for these elements e.g.
* capture
* autocomplete
* context menu

We can switch from `event.target` to `event.composedTarget` for many event listeners to at least get the non-native anonymous content element.

Issues:
*  [`input` event is composed but `change` isn't](https://github.com/whatwg/html/issues/5453)
Consider:
* each field in its own Shadow Root
* username and password fields together in a shadow root within a <form>
* username and password fields together in a shadow root wrapping a <form>

All features should work for these elements e.g.
* capture
* autocomplete
* context menu

* We can switch from `event.target` to `event.composedTarget` for many event listeners to at least get the non-native anonymous content element.
* We can traverse up the tree using `node.getRootNode().host` to find relevant fields.

Issues:
*  [`input` event is composed but `change` isn't](https://github.com/whatwg/html/issues/5453)
Consider:
* each field in its own Shadow Root
* username and password fields together in a shadow root within a <form>
* username and password fields together in a shadow root wrapping a <form>

All features should work for these elements e.g.
* capture
* autocomplete
* context menu

Tactics:
* We can switch from `event.target` to `event.composedTarget` for many event listeners to at least get the non-native anonymous content element.
* We can traverse up the tree using `node.getRootNode().host` to find relevant fields.

Issues:
*  [`input` event is composed but `change` isn't](https://github.com/whatwg/html/issues/5453)
Consider:
* each field in its own Shadow Root e.g. https://www.virustotal.com/gui/sign-in
* username and password fields together in a shadow root a <form> ancestor
* username and password fields together in a <form> within a shadow root e.g. https://bugs.mattn.ca/pwmgr/login_and_change_form.html

All features should work for these elements e.g.
* capture
* autocomplete
* context menu

Tactics:
* We can switch from `event.target` to `event.composedTarget` for many event listeners to at least get the non-native anonymous content element.
* We can traverse up the tree using `node.getRootNode().host` to find relevant fields.

Issues:
*  [`input` event is composed but `change` isn't](https://github.com/whatwg/html/issues/5453)
Consider:
* each field in its own Shadow Root e.g. https://www.virustotal.com/gui/sign-in
* username and password fields together in a shadow root a <form> ancestor
* username and password fields together in a <form> within a shadow root e.g. https://bugs.mattn.ca/pwmgr/login_and_change_form.html

All features should work for these elements e.g.
* capture
* autocomplete from the username field (fills both username and password)
* autocomplete from the password field (only fills a password)
* context menu from the username field (fills both username and password)
* context menu from the password field (only fills a password)

Tactics:
* We can switch from `event.target` to `event.composedTarget` for many event listeners to at least get the non-native anonymous content element.
* We can traverse up the tree using `node.getRootNode().host` to find relevant fields.

Issues:
*  [`input` event is composed but `change` isn't](https://github.com/whatwg/html/issues/5453)
Consider:
1. each field in its own Shadow Root e.g. https://www.virustotal.com/gui/sign-in
2. username and password fields together in a shadow root a <form> ancestor
3. username and password fields together in a <form> within a shadow root e.g. https://bugs.mattn.ca/pwmgr/login_and_change_form.html

All features should work for these elements e.g.
* capture
* autocomplete from the username field (fills both username and password)
* autocomplete from the password field (only fills a password)
* context menu from the username field (fills both username and password)
* context menu from the password field (only fills a password)

Tactics:
* We can switch from `event.target` to `event.composedTarget` for many event listeners to at least get the non-native anonymous content element.
* We can traverse up the tree using `node.getRootNode().host` to find relevant fields.

Issues:
*  [`input` event is composed but `change` isn't](https://github.com/whatwg/html/issues/5453)
Consider:
1. each field in its own Shadow Root e.g. https://www.virustotal.com/gui/sign-in
2. username and password fields together in a shadow root a <form> ancestor
3. username and password fields together in a <form> within a shadow root e.g. https://bugs.mattn.ca/pwmgr/login_and_change_form.html

All features should work for these elements e.g.
* capture
  * on submission
  * dismissed capture on edit
* autocomplete from the username field (fills both username and password)
* autocomplete from the password field (only fills a password)
* context menu from the username field (fills both username and password)
* context menu from the password field (only fills a password)
* `input` and `change` listeners in LoginManagerChild unrelated to capture
  * e.g. clearing the yellow highlight

Tactics:
* We can switch from `event.target` to `event.composedTarget` for many event listeners to at least get the non-native anonymous content element.
* We can traverse up the tree using `node.getRootNode().host` to find relevant fields.

Issues:
*  [`input` event is composed but `change` isn't](https://github.com/whatwg/html/issues/5453)
Consider:
1. each field in its own Shadow Root e.g. https://www.virustotal.com/gui/sign-in
2. username and password fields together in a shadow root a <form> ancestor
3. username and password fields together in a <form> within a shadow root e.g. https://bugs.mattn.ca/pwmgr/login_and_change_form.html

All features should work for these elements e.g.
* capture
  * on submission
  * dismissed capture on edit
  * generated password auto-saving of edits
* autocomplete from the username field (fills both username and password)
* autocomplete from the password field (only fills a password)
* context menu from the username field (fills both username and password)
* context menu from the password field (only fills a password)
* `input` and `change` listeners in LoginManagerChild unrelated to capture
  * e.g. clearing the yellow highlight

Tactics:
* We can switch from `event.target` to `event.composedTarget` for many event listeners to at least get the non-native anonymous content element.
* We can traverse up the tree using `node.getRootNode().host` to find relevant fields.

Issues:
*  [`input` event is composed but `change` isn't](https://github.com/whatwg/html/issues/5453)
Consider:
1. each field in its own Shadow Root e.g. https://www.virustotal.com/gui/sign-in
2. username and password fields together in a shadow root a <form> ancestor https://bugs.mattn.ca/pwmgr/login_and_change_form.html#shadow-inside-form
3. username and password fields together in a <form> within a shadow root e.g. https://bugs.mattn.ca/pwmgr/login_and_change_form.html#shadow

All features should work for these elements e.g.
* capture
  * on submission
  * dismissed capture on edit
  * generated password auto-saving of edits
* autocomplete from the username field (fills both username and password)
* autocomplete from the password field (only fills a password)
* context menu from the username field (fills both username and password)
* context menu from the password field (only fills a password)
* `input` and `change` listeners in LoginManagerChild unrelated to capture
  * e.g. clearing the yellow highlight

Tactics:
* We can switch from `event.target` to `event.composedTarget` for many event listeners to at least get the non-native anonymous content element.
* We can traverse up the tree using `node.getRootNode().host` to find relevant fields.

Issues:
*  [`input` event is composed but `change` isn't](https://github.com/whatwg/html/issues/5453)
Consider:
1. each field in its own Shadow Root e.g. https://www.virustotal.com/gui/sign-in
2. username and password fields together in a shadow root a <form> ancestor https://bugs.mattn.ca/pwmgr/login_and_change_form.html#shadow-inside-form
3. username and password fields together in a <form> within a shadow root e.g. https://bugs.mattn.ca/pwmgr/login_and_change_form.html#shadow

All features should work for these elements e.g.
* capture
  * on submission
  * dismissed capture on edit
  * generated password auto-saving of edits
* autocomplete from the username field (fills both username and password)
* autocomplete from the password field (only fills a password)
  * Audit NewPasswordModel.jsm code to ensure it properly handles Shadow DOM
* context menu from the username field (fills both username and password)
* context menu from the password field (only fills a password)
* `input` and `change` listeners in LoginManagerChild unrelated to capture
  * e.g. clearing the yellow highlight
* Audit rest of LoginManagerChild to ensure it properly handles Shadow DOM

Tactics:
* We can switch from `event.target` to `event.composedTarget` for many event listeners to at least get the non-native anonymous content element.
* We can traverse up the tree using `node.getRootNode().host` to find relevant fields.

Issues:
*  [`input` event is composed but `change` isn't](https://github.com/whatwg/html/issues/5453)
Consider:
1. each field in its own Shadow Root e.g. https://www.virustotal.com/gui/sign-in
2. username and password fields together in a shadow root a <form> ancestor https://bugs.mattn.ca/pwmgr/login_and_change_form.html#shadow-inside-form
3. username and password fields together in a <form> within a shadow root e.g. https://bugs.mattn.ca/pwmgr/login_and_change_form.html#shadow

All features should work for these elements e.g.
* capture
  * on submission
  * dismissed capture on edit
  * generated password auto-saving of edits
* autocomplete from the username field (fills both username and password)
* autocomplete from the password field (only fills a password)
  * Audit NewPasswordModel.jsm code to ensure it properly handles Shadow DOM
* context menu from the username field (fills both username and password)
* context menu from the password field (only fills a password)
* `input`/`change`/`focus`/`blur` listeners in LoginManagerChild unrelated to capture
  * e.g. clearing the yellow highlight
  * mask/unmask generated password fields
* Audit rest of LoginManagerChild to ensure it properly handles Shadow DOM

Tactics:
* We can switch from `event.target` to `event.composedTarget` for many event listeners to at least get the non-native anonymous content element.
* We can traverse up the tree using `node.getRootNode().host` to find relevant fields.

Issues:
*  [`input` event is composed but `change` isn't](https://github.com/whatwg/html/issues/5453)
Consider:
1. each field in its own Shadow Root e.g. https://www.virustotal.com/gui/sign-in
2. username and password fields together in a shadow root with a "form" ancestor https://bugs.mattn.ca/pwmgr/login_and_change_form.html#shadow-inside-form
3. username and password fields together in a "form" within a shadow root e.g. https://bugs.mattn.ca/pwmgr/login_and_change_form.html#shadow

All features should work for these elements e.g.
* capture
  * on submission
  * dismissed capture on edit
  * generated password auto-saving of edits
* autocomplete from the username field (fills both username and password)
* autocomplete from the password field (only fills a password)
  * Audit NewPasswordModel.jsm code to ensure it properly handles Shadow DOM
* context menu from the username field (fills both username and password)
* context menu from the password field (only fills a password)
* `input`/`change`/`focus`/`blur` listeners in LoginManagerChild unrelated to capture
  * e.g. clearing the yellow highlight
  * mask/unmask generated password fields
* Audit rest of LoginManagerChild to ensure it properly handles Shadow DOM

Tactics:
* We can switch from `event.target` to `event.composedTarget` for many event listeners to at least get the non-native anonymous content element.
* We can traverse up the tree using `node.getRootNode().host` to find relevant fields.

Issues:
*  [`input` event is composed but `change` isn't](https://github.com/whatwg/html/issues/5453)

Back to Bug 1629226 Comment 0