Closed Bug 1176926 Opened 9 years ago Closed 9 years ago

[InputMgmt] Tapping between bottom text fields jumps/shifts the screen unnecessarily

Categories

(Firefox OS Graveyard :: Gaia::System::Input Mgmt, defect)

ARM
Gonk (Firefox OS)
defect
Not set
normal

Tracking

(blocking-b2g:2.5+, b2g-v2.2 unaffected, b2g-master verified)

VERIFIED FIXED
FxOS-S2 (10Jul)
blocking-b2g 2.5+
Tracking Status
b2g-v2.2 --- unaffected
b2g-master --- verified

People

(Reporter: onelson, Assigned: timdream)

References

()

Details

(Keywords: regression, Whiteboard: [3.0-Daily-Testing], [Spark])

Attachments

(2 files)

Description:
When the user is toggling between text fields near the bottom of an app, they may observe that the screen has the capacity to 'jump' when transitioning. This may be a result of the size of the screen and the location of these text fields in relation to that. Expected behavior is only the cursor to move if the other UI is visible on screen. However, the UI shifts notably (scan up then down) drawing attention to the jump.
This has been observed in 2 areas at least:
* Manually signing in Email Accounts (Outlook/Hotmail |or| Gmail)
* Creating a new Contact (Additional Comment Fields)

Repro Steps:
1) Update a Aries to 20150622125855
2) Open the Contacts app
3) Create a new contact
4) Scroll to bottom of page
5) Add a new Comment property (tap + sign, should have 2 large text fields)
6) Scroll to bottom
7) Tap lower Comment text field
8) Tap upper Comment text field
9) Repeat 6-8 to observe issue

Actual:
UI frame of view shifts harshlywhen toggling between multiple text fields located on the bottom of a UI screen

Expected:
UI frame of view remains static (to the best of it's ability) when toggling between multiple text fields


Environmental Variables:
------------------------------

Device: Aries 3.0
Build ID: 20150622125855
Gaia: 311c4e59936a407e64509f54fecb440d8a78e3c8
Gecko: cddf3b36b5e2
Gonk: 2916e2368074b5383c80bf5a0fba3fc83ba310bd
Version: 41.0a1 (3.0)
Firmware Version: D5803_23.1.A.1.28_NCB.ftf
User Agent: Mozilla/5.0 (Mobile; rv:41.0) Gecko/41.0 Firefox/41.0

Device: Flame 3.0
BuildID: 20150622160206
Gaia: 311c4e59936a407e64509f54fecb440d8a78e3c8
Gecko: be81b8d6fae9
Gonk: a4f6f31d1fe213ac935ca8ede7d05e47324101a4
Version: 41.0a1 (3.0) 
Firmware Version: v18D-1
User Agent: Mozilla/5.0 (Mobile; rv:41.0) Gecko/41.0 Firefox/41.0
*************************************

Issue DOES NOT REPRODUCE on 2.2 for flame devices
Results: UI frame of view remains static (to the best of it's ability) when toggling between multiple text fields

Device: Flame 2.2
BuildID: 20150623002504
Gaia: 1f8981d7872e3c0053571c26fb3edaf401844d75
Gecko: 9a0d8f7b1200
Gonk: bd9cb3af2a0354577a6903917bc826489050b40d
Version: 37.0 (2.2) 
Firmware Version: v18D-1
User Agent: Mozilla/5.0 (Mobile; rv:37.0) Gecko/37.0 Firefox/37.0
--------------------------------------------------


Repro frequency: 5/5
See attached: 
video- https://youtu.be/6tIW2v4xkT4
logcat
QA Whiteboard: [QAnalyst-Triage?]
Flags: needinfo?(ktucker)
Keywords: regression
[Blocking Requested - why for this release]:

Nominating this 3.0? since this is a regression and will lead to end user frustration.
blocking-b2g: --- → 3.0?
QA Whiteboard: [QAnalyst-Triage?] → [QAnalyst-Triage+]
Flags: needinfo?(ktucker)
QA Contact: ktucker
Mozilla Inbound

Last working
Environmental Variables:
Device: Flame 3.0
Build ID: 20150614213841
Gaia: 1bf2da102560481748ff3f6202fbed5c4daa5832
Gecko: a493653ebbed
Version: 41.0a1 (3.0)
Firmware Version: v18D-1
User Agent: Mozilla/5.0 (Mobile; rv:41.0) Gecko/41.0 Firefox/41.0

First Broken
Environmental Variables:
Device: Flame 3.0
Build ID: 20150615000842
Gaia: 1bf2da102560481748ff3f6202fbed5c4daa5832
Gecko: 85383f7a9d53
Version: 41.0a1 (3.0)
Firmware Version: v18D-1
User Agent: Mozilla/5.0 (Mobile; rv:41.0) Gecko/41.0 Firefox/41.0

Last Working Gaia First Broken Gecko: Issue DOES reproduce
Gaia: 1bf2da102560481748ff3f6202fbed5c4daa5832
Gecko: 85383f7a9d53

First Broken Gaia Last Working Gecko: Issue DOES NOT reproduce
Gaia: 1bf2da102560481748ff3f6202fbed5c4daa5832
Gecko: a493653ebbed

Gecko pushlog:
http://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=a493653ebbed&tochange=85383f7a9d53

This seems to have been caused by the landing bug 1162360.
Tim, here is another issue that could have been caused by the landing for bug 1162360. Should we back out that landing at this point?
Flags: needinfo?(timdream)
(In reply to KTucker [:KTucker] from comment #3)
> Tim, here is another issue that could have been caused by the landing for
> bug 1162360. Should we back out that landing at this point?

You are right. This is more disruptive to the users than I thought. I am going to fix this by introducing a timeout in System Input Mgmt.
Assignee: nobody → timdream
Status: NEW → ASSIGNED
blocking-b2g: 3.0? → 3.0+
Flags: needinfo?(timdream)
Comment on attachment 8627491 [details] [review]
Github: https://github.com/mozilla-b2g/gaia/pull/30745

mnjul, I know you are having fun right now but you are the most qualified person to do the review. This test re-introduces a wait-before-resize so that the viewport of the foreground window will not be resized when the focus moves (and back) in a short timing.

The entirely story is documented in the comment with all the related bug referenced.

As a proof of the patch surpasses bug 1171950 comment 2, the following pull requests proves we can backout bug 1171387 and bug 1174062 and still keep the tests passes.

https://github.com/mozilla-b2g/gaia/pull/30746
https://github.com/mozilla-b2g/gaia/pull/30747

Rudy, not sure if could review this.
Attachment #8627491 - Flags: review?(rlu)
Attachment #8627491 - Flags: review?(l90942025)
Please give me some time, I'd like to double-check into all the referenced bugs :)
Comment on attachment 8627491 [details] [review]
Github: https://github.com/mozilla-b2g/gaia/pull/30745

So it all boils down to the inability to correctly/reliably order blur/focus event sequences sent to gaia when such events happen across inproc/oop apps boundary, which is really a long-standing issue. It scares me that such issue takes so many patches and repercussions felt far and wide --

Anyway, the patch looks good to me, as long as the Promise pattern built at bug 1162383 suits the need. There're currently two patterns mixed together (events / handlers and promise chains) to achieve state machine / lockstepping, at IWM, which might be a bit disturbing.

Other than that, please check my GH comment for the timeout value (which is trivial).
Attachment #8627491 - Flags: review?(l90942025) → review+
master: https://github.com/mozilla-b2g/gaia/commit/5a1f388bd322982c9901e8d24abfc81338841dd2
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → FxOS-S2 (10Jul)
This issue is verified fixed on both Aries and Flame. However, the bug that was duped to this (bug 1176771) is not completely fixed. 1176771 appears to be fixed on Aries but not on Flame. I'll be re-opening that bug and comment with new information.

Device: Flame (KK, full flashed, 319MB)
BuildID: 20150715010202
Gaia: c6ef08964711f461a8e6326eae911789d1ec220c
Gecko: c95ebeebbc5d
Gonk: a4f6f31d1fe213ac935ca8ede7d05e47324101a4
Version: 42.0a1 (2.5) 
Firmware Version: v18D-1
User Agent: Mozilla/5.0 (Mobile; rv:42.0) Gecko/42.0 Firefox/42.0

Device: Aries (RC4 and OTA'ed to dogfood-latest)
BuildID: 20150715180430
Gaia: b9968cdc4a1dee49848fed6159a59c378cea062d
Gecko: 49683d4e9ebd
Gonk: 2916e2368074b5383c80bf5a0fba3fc83ba310bd
Version: 42.0a1 (2.5) 
Firmware Version: D5803_23.1.A.1.28_NCB.ftf
User Agent: Mozilla/5.0 (Mobile; rv:42.0) Gecko/42.0 Firefox/42.0
Status: RESOLVED → VERIFIED
QA Whiteboard: [QAnalyst-Triage+] → [QAnalyst-Triage?]
Flags: needinfo?(ktucker)
QA Whiteboard: [QAnalyst-Triage?] → [QAnalyst-Triage+]
Flags: needinfo?(ktucker)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: