Closed Bug 1529570 Opened 6 years ago Closed 6 years ago

Regression on blur event in Ext Js 3.x framework only on macOS and Linux

Categories

(Web Compatibility :: Site Reports, defect)

Firefox 65
Desktop
Linux
defect
Not set
normal

Tracking

(firefox-esr60 unaffected, firefox65 wontfix, firefox66 fix-optional, firefox67 affected)

RESOLVED WONTFIX
Tracking Status
firefox-esr60 --- unaffected
firefox65 --- wontfix
firefox66 --- fix-optional
firefox67 --- affected

People

(Reporter: jaragunde, Unassigned)

References

Details

(Keywords: regression)

User Agent: Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:65.0) Gecko/20100101 Firefox/65.0

Steps to reproduce:

  1. Open and run https://fiddle.sencha.com/#view/editor&fiddle/2puu

  2. Focus on the displayed field and type "930"

  3. Press Tab

Actual results:

The field displays "930" as typed.

Expected results:

The field changes its value to "9:30 AM". This is the behavior present in other browsers and Firefox prior to 65.

I can reproduce on Nightly67.0a1 Ubuntu18.04. But not on Windows10.

Status: UNCONFIRMED → NEW
Ever confirmed: true
Keywords: regression
OS: Unspecified → Linux

Setting dom.keyboardevent.keypress.dispatch_non_printable_keys_only_system_group_in_content = false fixes the problem.

Blocks: 1440189

On Windows 10, "blur", "focus", "keydown", "keydown", "keyup" and "keyup" event listeners on the <input> element. However, on Linux and macOS, they are "blur", "focus", "keydown", "keypress", "keyup" and "keyup". So, one "keydown" event listener is replaced with "keypress" event listener. This must be the reason why toggling dom.keyboardevent.keypress.dispatch_non_printable_keys_only_system_group_in_content fixes the bug.

So, this should be bug of the framework. Perhaps, they changed for Firefox 65, but the platform was limited on Windows.

Component: DOM: Events → Desktop
Product: Core → Web Compatibility
Hardware: Unspecified → Desktop
Summary: Regression on blur event in Ext Js framework → Regression on blur event in Ext Js framework only on macOS and Linux
Version: 65 Branch → Firefox 65

Thanks for your replies. I understand this is a bug in the Ext JS framework because it was applying a workaround for Firefox that shouldn't be applied any more, right?

I can patch my copy of the framework, since that version hasn't been maintained for a while.

I can patch my copy of the framework, since that version hasn't been maintained for a while.

Oh, really? Unfortunately, I don't find where is buggy.

I found this code in Ext JS 3.4.1.1:

   // note 1: IE fires ONLY the keydown event on specialkey autorepeat                                            
   // note 2: Safari < 3.1, Gecko (Mac/Linux) & Opera fire only the keypress event on specialkey autorepeat       
   // (research done by @Jan Wolter at http://unixpapa.com/js/key.html)                                           
   useKeydown = Ext.isWebKit ?
               Ext.num(navigator.userAgent.match(/AppleWebKit\/(\d+)/)[1]) >= 525 :
               !((Ext.isGecko && !Ext.isWindows) || Ext.isOpera);

I think this is the part that should be patched.

Yeah, looks like it is what the cause of this bug.

And the "note 2" is really too old behavior (we've already fixed that at Firefox 4.0). So, if this is too old framework, perhaps, we don't need to take care, but if this is still used widely, we might need to add hack for this like bug 1514940.

Hi Masayuki, this is indeed an old version of a framework, and probably not widely used. I think this issue can be closed, and hopefully other people still using Ext 3.x will find it and patch the framework themselves.

I don't need to support old browsers, so it was enough for me to set:

  useKeydown = true;

Thanks for your time and assistance.

No problem, and thank you for your report and investigation of the cause!

Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → WONTFIX
Summary: Regression on blur event in Ext Js framework only on macOS and Linux → Regression on blur event in Ext Js 3.x framework only on macOS and Linux
You need to log in before you can comment on or make changes to this bug.