webcomponents/shadydom

Firefox 61: focusin and focusout events have "composed" incorrectly set to false

web-padawan opened this issue · 3 comments

Description

The focusin and focusout events in Firefox 61 have the composed property incorrectly set to false and this is marked as "wontfix" until 63 release in October.

See https://bugzilla.mozilla.org/show_bug.cgi?id=1472887

So, the check for native getter in patch-events.js should be tweaked here:

this.__composed = composedGetter(this);

Live Demo

http://jsbin.com/qomodut/1/edit?html,console,output

Steps to Reproduce

  1. Create input element
  2. Add focusout or focusin event listener
  3. Check the event.composed flag in the listener
  4. Append input to the page
  5. Focus then blur in Firefox 61

Expected Results

composed flag should be patched and set to true, as it works natively in Chrome and Safari.

Actual Results

composed flag is not patched and set to false.

Browsers Affected

  • Chrome
  • Firefox 61
  • Edge
  • Safari 9
  • Safari 8
  • IE 11

Versions

  • shadydom: v1.1.3

Update: first introduced in 1.1.0 due to the fix landed in 813d16b

@azakus @TimvdLippe friendly ping as this affects us in a lot of places, and we had to add some workarounds here and there.

I could submit a PR, but wondering about the tests, since some of those are disabled for Firefox.
Suggest you to try window manager in Travis as we do for vaadin-grid: vaadin/vaadin-grid@ccc613c

Also, in the grid tests we use focus monkey patching implemented according to the spec, you can see it here: https://github.com/vaadin/vaadin-grid/blob/1058636df772231cc6f47c364b43a3d51f8a97bf/test/keyboard-navigation.html#L89

For now, to get tests passed with it we still had to pin webcomponentsjs to 1.2.0 for grid though.

Feel free to open a PR. It is very unfortunate we have to support interim versions of an evergreen browser, so lets make this workaround as easily removable as possible. If you can enable these tests as well, that would be great!