Closed Bug 1353799 Opened 7 years ago Closed 7 years ago

Cursor displayed at wrong position after entering space

Categories

(Firefox for Android Graveyard :: Keyboards and IME, defect)

All
Android
defect
Not set
normal

Tracking

(fennec54+, firefox-esr52 unaffected, firefox53 unaffected, firefox54+ verified, firefox55 verified)

VERIFIED FIXED
Firefox 55
Tracking Status
fennec 54+ ---
firefox-esr52 --- unaffected
firefox53 --- unaffected
firefox54 + verified
firefox55 --- verified

People

(Reporter: jchen, Assigned: jchen)

References

Details

(Keywords: regression)

Attachments

(5 files, 1 obsolete file)

STR:
1. Using Gboard, enter a long word in a text field.
2. Place the cursor in the middle of the word.
3. Press space.

The cursor is displayed at the end of the new, second word, but if you enter a letter, the cursor jumps back to the correct position at the beginning of the second word. I suspect this is a regression from bug 1137567.
tracking-fennec: --- → ?
tracking-fennec: ? → 54+
Use a flag parameter instead of individual boolean parameters to make
it more convenient to add more options.
Attachment #8862088 - Flags: review?(esawin)
Update the composition when setting/removing spans, so that we update
the selection/cursor during a composition. However, we must limit any
updating to the current composition only (as indicated by the
keep-current-composition flag), because the Facebook comment box behaves
incorrectly if we repeatedly start and end new compositions.
Attachment #8862089 - Flags: review?(esawin)
* Include the type of the editor (input, textarea, contentEditable,
  designMode) in BasicInputConnectionTest, so we can work around the
  differences in behavior among the different editor types.

* Add timestamps to key events, because lack of timestamps was
  triggering a crash when running testInputConnection.
Attachment #8862090 - Flags: review?(esawin)
Add two tests to testInputConnection that record the sequence of
composition events during editing, and check that the sequence is what
we expected.

The first test makes sure that we reuse the current composition on the
Gecko side when setting composing text; otherwise the Facebook comment
box behaves incorrectly.

The second test makes sure that we can move the cursor inside the
current composition, to fix this particular bug.
Attachment #8862091 - Flags: review?(esawin)
Attachment #8862088 - Flags: review?(esawin) → review+
Attachment #8862089 - Flags: review?(esawin) → review+
Attachment #8862090 - Flags: review?(esawin) → review+
Attachment #8862091 - Flags: review?(esawin) → review+
Depends on: 1360388
Pushed by nchen@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/f21f31eafc6d
1. Make icMaybeSendComposition accept a flag parameter; r=esawin
https://hg.mozilla.org/integration/mozilla-inbound/rev/904e65ad1fb8
2. Update current composition when setting/removing spans; r=esawin
https://hg.mozilla.org/integration/mozilla-inbound/rev/29de8f4097d3
3. Add types and timestamps in testInputConnection; r=esawin
https://hg.mozilla.org/integration/mozilla-inbound/rev/94046d0bb7e3
4. Add composition event tests to testInputConnection; r=esawin
Please request Beta approval on this when you feel it's ready for uplift.
Flags: needinfo?(nchen)
Keywords: regression
Attached patch Patch for Beta (obsolete) — Splinter Review
Approval Request Comment
[Feature/Bug causing the regression]: bug 1307816
[User impact if declined]: Possible incorrect cursor placement when entering text (but only visually incorrect; functionality should be correct)
[Is this code covered by automated tests?]: Yes
[Has the fix been verified in Nightly?]: Yes
[Needs manual test from QE? If yes, steps to reproduce]: No
[List of other uplifts needed for the feature/fix]: No
[Is the change risky?]: Somewhat
[Why is the change risky/not risky?]: Change is covered by new testcases, but the change involves some new code that makes it somewhat risky.
[String changes made/needed]: None
Flags: needinfo?(nchen)
Attachment #8863033 - Flags: review+
Attachment #8863033 - Flags: approval-mozilla-beta?
Blocks: 1307816
No longer blocks: 1137567
Track 54+ as regression.
Hi Mihai,
Can you help verify if this issue was fixed as expected on a latest Nightly build? Thanks!
Flags: qe-verify+
Flags: needinfo?(mihai.ninu)
Hi,

Verifying as fixed on the latest Nightly build (55.0a1 - 2017-05-08)

This issue was tested using the latest version of Gboard on a Samsung Galaxy S6 EDGE (Android 6.0), a Nexus 6P (Android 7.1.1) and a Samsung Galaxy Tab Active (Android 5.1.1)
Flags: needinfo?(mihai.ninu)
Comment on attachment 8863033 [details] [diff] [review]
Patch for Beta

Fix a regression and was verified. Beta54+. Should be in 54 beta 7.
Attachment #8863033 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
had to back this out for failures like https://treeherder.mozilla.org/logviewer.html#?job_id=97899570&repo=mozilla-beta
Flags: needinfo?(nchen)
Flags: needinfo?(nchen)
There's something weird going on with the selectionchange listeners, so I just removed them for this new Beta patch. The tests still test against this bug even without those listeners.
Attachment #8863033 - Attachment is obsolete: true
Flags: needinfo?(cbook)
Attachment #8867017 - Flags: review+
Flags: needinfo?(cbook)
Verified as fixed, following the described STR, on Beta 54.0b8. 
Devices:
-Huawei Honor 5X (Android 5.1.1)
-HTC 10 (Android 6.0.1)
Status: RESOLVED → VERIFIED
Based on comment 17 I will remove qe-verify flag.
Flags: qe-verify+
Product: Firefox for Android → Firefox for Android Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: