Hotels.com location selection requires two taps in Focus+GV, but only one in Focus+WebView
Categories
(GeckoView :: General, defect, P3)
Tracking
(Webcompat Priority:P3, geckoview64 wontfix, geckoview65 wontfix, firefox64 wontfix, firefox65 wontfix)
Webcompat Priority | P3 |
People
(Reporter: cpeterson, Assigned: m_kato)
References
Details
(Keywords: inputmethod, Whiteboard: [geckoview:2023?])
Attachments
(1 obsolete file)
STR: 1. open hotels.com 2. click on the location field (before the date picker) 3. try to select a location from the drop down list ACTUAL RESULT: In Focus+GV, you have to tap twice to complete the selection. EXPECTED RESULT: In Focus+WebView, you only have to tap once to complete the selection. Vesta filed a Focus issue: https://github.com/mozilla-mobile/focus-android/issues/3984 Bug 1511154 describes a problem where the same Hotels.com page's date picker closes before the user can pick a date. I wonder if the web page has some JS that messes with the input focus?
Reporter | ||
Updated•6 years ago
|
Updated•6 years ago
|
Reporter | ||
Updated•6 years ago
|
Reporter | ||
Comment 1•6 years ago
|
||
P2 for Fenix.
Assignee | ||
Comment 2•6 years ago
|
||
First tap is that compositing string is committed. If there is no composing string, it can select location. This seems to IME/keyboard issue.
Assignee | ||
Comment 3•6 years ago
|
||
This occurs on Firefox Desktop, too. But Chrome Desktop can select location even if there is IME composition.
step
- Focus location, then input とうきょう (It keeps composition)
- Click location from list box
Gecko's result
composition is committed, but location isn't selected
Blink/Edge/WebKit's result
composition is committed, then location is selected
Assignee | ||
Updated•6 years ago
|
Comment 4•6 years ago
|
||
We dispatch click
event even when there is composition.
https://jsfiddle.net/d_toybox/ouk8neb6/
Perhaps, hotels.com listens to different event(s), or they send different script to Blink/Gecko.
Assignee | ||
Comment 5•6 years ago
|
||
(In reply to Masayuki Nakano [:masayuki] (JST, +0900) from comment #4)
We dispatch
click
event even when there is composition.
https://jsfiddle.net/d_toybox/ouk8neb6/Perhaps, hotels.com listens to different event(s), or they send different script to Blink/Gecko.
click event isn't posted to <div class="widget-autosuggest ...">
on hotels.com. WidgetMouseEvent.mClickCount
seems to be 0, but I don't know why this count is 0.
Assignee | ||
Comment 6•6 years ago
|
||
Input event handler of <input>
seems to re-construct html into suggested location list. When clicking this list, Gecko commits string, then input event is fired. Then, I guess that ESM looks for target, but target may be destroyed, so click event isn't fired since mClickCount is 0 and mClickTarget is null.
But at least, as long as I test on Edge and Chrome, input event isn't fired at this situation, so I guess that this occurs on Gecko....
Assignee | ||
Comment 7•6 years ago
|
||
Problem is that hotels.com updates suggestion list panel of location by input
event.
When location's text box has composing string and user clicks suggestion panel,
click event isn't fired in this panel. So location isn't selected. Click event
will be fired when target is valid, but target is gone because this panel is
reconstructed by input event.
Blink, WebKit and Edge don't fire input event during force committing by blur
although composition end is fired. But Gecko fires input event unfortunately,
so this occurs on Gecko only.
For compatibility, we shouldn't fire input event at this situation.
Also, although Gecko commits compositon when clicking current focus element,
input event will be fired on this situation. But WebKit and Blink don't.
So we should change to other browser's behaviour. When using contentedtiable,
there is no way to detect in EditorEventListner whether current mouse down is
with blur.
Assignee | ||
Comment 8•6 years ago
|
||
(I am waiting for test result)
Comment 9•6 years ago
|
||
Anne I'm wondering what our best way forward is regarding comment 7. I imagine this pattern comes up a lot: we either follow chromium for web compat reasons (quicker) or we follow the spec and wait for a spec or chromium change (slower?). Thoughts?
Comment 10•6 years ago
|
||
I would expect Masayuki to be able to give a more informed answer here. It basically depends. Often the pragmatic route of changing Firefox and the standard is the way to go, except for when our approach is substantially better and we can weather the compatibility issues.
Per https://github.com/w3c/uievents/issues/202 we might actually be the ones breaking the standard here though?
Comment 11•6 years ago
|
||
I don't think that we should change our behavior nor standards because input
event (and preceding beforeinput
event) is not fired only when IME composition is committed forcibly (i.e., not committed by user via keyboard). So, there are some issues if standards will be changed:
beforeinput
needs to be always paired with "input" event.beforeinput
event in this case should be cancelable to make web apps can filter inserted string from IME. I.e., we'd steal the chance from web apps only when composition is committed without keyboard.- I don't think that it's not reasonable declaration, for example, "
beforeinput
event andinput
event are fired when immediately before and after the DOM is modified except text is inserted from IME and it's not caused by keyboard input"...
Anyway, I'll file a bug to Chromium project and I'll contact somebody who works on UI Events.
Updated•6 years ago
|
Reporter | ||
Updated•5 years ago
|
Comment 13•3 years ago
|
||
It may be better to fix Chromium's bug by us. Then, web apps need to align for the standard behavior.
Assignee | ||
Updated•3 years ago
|
Assignee | ||
Comment 14•3 years ago
|
||
So I recommend that this is P3 instead of P2 due to web standard issue.
Reporter | ||
Updated•2 years ago
|
Reporter | ||
Comment 15•2 years ago
|
||
Makoto says this issue is spec side. No action until https://github.com/w3c/uievents/issues/202 (Event order between "compositionend" and "input") is resolved.
Comment 16•2 years ago
|
||
It seems that the Hotels.com issue has already been fixed by their side.
Comment 17•2 years ago
|
||
Even though the original hotels.com bug is fixed, setting webcompat-priority: ?
to get it on the radar since some of the linked bugs also seem to involve site breakage.
Comment 18•2 years ago
|
||
No known site breakage at this point, setting webcompat P3 for now.
Updated•2 years ago
|
Reporter | ||
Updated•2 years ago
|
Comment 19•13 days ago
|
||
Makoto-san, I think that we can close this bug due to it's not reproducible anymore and we can discard the patch at least until UI Events changes the definition. I still think that our behavior is correct and the input
event may be required by web apps in theory because the committing composition may not be intended by the web apps.
Assignee | ||
Comment 20•11 days ago
|
||
Yep, we can close this and we cannot reproduce this.
Updated•11 days ago
|
Description
•