Duplicated Doubled Text Input with Digit Keyboard
Categories
(GeckoView :: IME, defect, P1)
Tracking
(firefox78 fixed)
Tracking | Status | |
---|---|---|
firefox78 | --- | fixed |
People
(Reporter: ekager, Assigned: m_kato)
Details
(Whiteboard: [geckoview:m78][geckoview:m79])
Attachments
(2 files)
STR:
- Go to https://nidooakland.square.site/s/order
- Add item to cart, go to checkout
- Add fake name info and get to payment section
- Start typing credit card info
Expected:
Single digit entered per tap
Actual:
Digits duplicated - 2 per tap (see video), back spacing removes the extra
Device:
Pixel 3, Android Q
Could reproduce on GV 75 (current Fennec Beta) and on Fenix Nightly
Could not reproduce on Chrome or Fennec Release
Similar to https://bugzilla.mozilla.org/show_bug.cgi?id=1470786 and https://bugzilla.mozilla.org/show_bug.cgi?id=1569007 but can personally only reproduce with digit keyboard.
Some Fenix users are still reporting it for non digit keyboard https://github.com/mozilla-mobile/fenix/issues/4208#issuecomment-626725098
Assignee | ||
Comment 2•5 years ago
|
||
Similar to https://bugzilla.mozilla.org/show_bug.cgi?id=1470786 and https://bugzilla.mozilla.org/show_bug.cgi?id=1569007
This is another issue. But I don't know why this script inserts multiple character. I need investigate why. (I guess that selection change by setSelection may cause unfortunately input?)
nn.prototype.handleNumberInput=function(t,e) {
e.preventDefault();
var n=this.element.selectionStart,
r=this.element.selectionEnd;
if(!(this._state.value&&this._state.value.length>=this.maxLength()&&n===r)){
var i=this._state.formattedValue.slice(0,n)+t+this._state.formattedValue.slice(r);
this.setValue(i);
var s=this.adjustedSelectionStart(n);
this.element.setSelectionRange(s,s)
}
},
Assignee | ||
Comment 3•5 years ago
|
||
Ah, this is GekcoEditable bug. we don't dispatch key press when key down event handler calls preventDefault. Fix is soon.
Assignee | ||
Comment 4•5 years ago
|
||
If key down event handler calls event.preventDefault()
, web browser
shouldn't fire key press event. But GeckoView may fire key press
unfortunately if using software keyboard.
So we don't fire key press event when dispatching eKeyDown
returns
nsEventStatus_eConsumeNoDefault
.
Updated•5 years ago
|
Updated•5 years ago
|
Comment 6•5 years ago
|
||
bugherder |
Comment 7•3 years ago
|
||
Moving some keyboard bugs to the new GeckoView::IME component.
Description
•