Regression on blur event in Ext Js 3.x framework only on macOS and Linux
Categories
(Web Compatibility :: Site Reports, defect)
Tracking
(firefox-esr60 unaffected, firefox65 wontfix, firefox66 fix-optional, firefox67 affected)
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:
-
Open and run https://fiddle.sencha.com/#view/editor&fiddle/2puu
-
Focus on the displayed field and type "930"
-
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.
Comment 1•6 years ago
|
||
I can reproduce on Nightly67.0a1 Ubuntu18.04. But not on Windows10.
Comment 2•6 years ago
|
||
Setting dom.keyboardevent.keypress.dispatch_non_printable_keys_only_system_group_in_content = false fixes the problem.
Comment 3•6 years ago
|
||
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.
Reporter | ||
Comment 4•6 years ago
|
||
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.
Comment 5•6 years ago
|
||
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.
Reporter | ||
Comment 6•6 years ago
|
||
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.
Comment 7•6 years ago
|
||
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.
Reporter | ||
Comment 8•6 years ago
|
||
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.
Comment 9•6 years ago
|
||
No problem, and thank you for your report and investigation of the cause!
Description
•