[Keyboard] When using edge gesture while a keyboard is shown, black appears in place of keyboard space and app freezes

VERIFIED FIXED

Status

Firefox OS
Gaia::System::Window Mgmt
VERIFIED FIXED
3 years ago
3 years ago

People

(Reporter: SalvadorR, Assigned: gduan)

Tracking

({regression})

unspecified
ARM
Gonk (Firefox OS)
regression
Dependency tree / graph

Firefox Tracking Flags

(blocking-b2g:2.2+, b2g-v2.0 unaffected, b2g-v2.1 unaffected, b2g-v2.2 verified, b2g-master verified)

Details

(Whiteboard: [2.2-exploratory-1], URL)

Attachments

(2 attachments)

(Reporter)

Description

3 years ago
Created attachment 8530999 [details]
logcat_20141201_1520.txt

Description:
When user brings up a keyboard on any app and then uses edge gesture, a black 
   
Repro Steps:
1) Update a Flame device to BuildID: 20141201040205
2) Open any text edit app and bring up the keybaord
3) With the keyboard up, use edge gesture to switch to another app
4) Observe black area
5) Swipe back to previous app
6) Observe lock
  
Actual:
Black space appears and app locks up
  
Expected: 
App switch occurs smoothly
  
Environmental Variables:
Device: Flame 2.2 Master (319mb) KK Full Flash
BuildID: 20141201040205
Gaia: 39214fb22c203e8849aaa1c27b773eeb73212921
Gecko: 08be3008650f
Gonk: 48835395daa6a49b281db62c50805bd6ca24077e
Version: 37.0a1 (2.2 Master)
Firmware: V188-1
User Agent: Mozilla/5.0 (Mobile; rv:37.0) Gecko/37.0 Firefox/37.0
  
Repro frequency: 4/5
See attached: Logcat, Video
http://youtu.be/cGtt-vjVpvs
Flags: needinfo?(dharris)
(Reporter)

Comment 1

3 years ago
This issue also occurs on Flame 2.0 and 2.1

Results: App does not lock up and black space does not appear

Flame 2.0

Device: Flame 2.0 (319mb)(Kitkat Base)(Full Flash)
Build ID: 20141126000203
Gaia: f9d6e3d83c3922e9399a6c27f5ce4cdd27bdfd05
Gecko: 45112935086f
Gonk: 48835395daa6a49b281db62c50805bd6ca24077e
Version: 32.0 (2.0)
Firmware Version: v188-1
User Agent: Mozilla/5.0 (Mobile; rv:32.0) Gecko/32.0 Firefox/32.0

Flame 2.1 

Device: Flame 2.1 (319mb)(Kitkat Base)(Full Flash)
BuildID: 20141201001201
Gaia: ccb49abe412c978a4045f0c75abff534372716c4
Gecko: 18fb67530b22
Gonk: 48835395daa6a49b281db62c50805bd6ca24077e
Version: 34.0 (2.1)
Firmware: V188-1
User Agent: Mozilla/5.0 (Mobile; rv:34.0) Gecko/34.0 Firefox/34.0
QA Whiteboard: [QAnalyst-Triage?]
[Blocking Requested - why for this release]:

Nominating this to block 2.2. The keyboard will appear black and become unusable until the user backs out of the app, or completes an edge gesture to another app. Also this is a regression.
blocking-b2g: --- → 2.2?
QA Whiteboard: [QAnalyst-Triage?]
Flags: needinfo?(dharris)
Keywords: regressionwindow-wanted
The key to repro is to quickly swipe back to Messages app before the icon that represents the other app on center of screen disappears (like in the video at around 6 seconds, the email app icon was still on the screen when swiping back to Messages). It's more like a timing issue and if done correctly the repro rate is 100%.

Getting a window now.
QA Contact: pcheng
This window is for black area occurs when edge gesturing with keyboard extended.

b2g-inbound regression window:

Last Working Environmental Variables:
Device: Flame
BuildID: 20141117223226
Gaia: 55fd35fa85a419770764aa48335536f95d3cb833
Gecko: 7ff49b4840e7
Version: 36.0a1 (2.2 Master)
Firmware: V188-1
User Agent: Mozilla/5.0 (Mobile; rv:36.0) Gecko/36.0 Firefox/36.0

First Broken Environmental Variables:
Device: Flame
BuildID: 20141118001426
Gaia: eed8e507e708a197f139fa5fc5d31fa894a52344
Gecko: adff0e83b260
Version: 36.0a1 (2.2 Master)
Firmware: V188-1
User Agent: Mozilla/5.0 (Mobile; rv:36.0) Gecko/36.0 Firefox/36.0

First Broken Gaia & Last Working Gecko - issue DOES repro
Gaia: eed8e507e708a197f139fa5fc5d31fa894a52344
Gecko: 7ff49b4840e7

First Broken Gecko & Last Working Gaia - issue does NOT repro
Gaia: 55fd35fa85a419770764aa48335536f95d3cb833
Gecko: adff0e83b260

Gaia pushlog:
https://github.com/mozilla-b2g/gaia/compare/55fd35fa85a419770764aa48335536f95d3cb833...eed8e507e708a197f139fa5fc5d31fa894a52344

Caused by Bug 1100195.
QA Whiteboard: [QAnalyst-Triage?]
Flags: needinfo?(jmitchell)
Keywords: regressionwindow-wanted
Caused by Bug 1100195 - can you take a look George?
Blocks: 1100195
QA Whiteboard: [QAnalyst-Triage?] → [QAnalyst-Triage+]
Flags: needinfo?(jmitchell) → needinfo?(gduan)
QA Contact: pcheng
Assignee: nobody → gduan
Flags: needinfo?(gduan)
Created attachment 8535431 [details] [review]
PR to master

Hi Alive,
could you review this patch?
I think the reason is, when user put finger on the edge-gesture bar, touchmove of edge_swipe_detector would be triggered and also call SheetsTransition.begin(), then className 'inside-edges' would be added into currentApp, that cause app.isTransition to be true and block the resize function. So, I think I should check inside-edges class in app_window_manager itself for bug 1100195.
Attachment #8535431 - Flags: review?(alive)
Duplicate of this bug: 1109825
Comment on attachment 8535431 [details] [review]
PR to master

Please implement another check method instead of touching element outside the module. Thanks
Attachment #8535431 - Flags: review?(alive)
Duplicate of this bug: 1108852
Comment on attachment 8535431 [details] [review]
PR to master

Hi Alive,
I think we can check SheetsTransition.transitioning before shrinking-start is sent. Could you review it again? Thanks.
Attachment #8535431 - Flags: review?(alive)
Comment on attachment 8535431 [details] [review]
PR to master

See github if my did not make my requirement clear in previous review. Sorry.
Attachment #8535431 - Flags: review?(alive)
Comment on attachment 8535431 [details] [review]
PR to master

Hi Alive,
thanks for advice, could you check my patch again? Thanks.
Attachment #8535431 - Flags: review?(alive)
Component: Gaia::Keyboard → Gaia::System::Window Mgmt
Comment on attachment 8535431 [details] [review]
PR to master

thanks!
Attachment #8535431 - Flags: review?(alive) → review+
Thanks, Alive,
master: https://github.com/mozilla-b2g/gaia/commit/242a922bd17e718418c9cef602eac16eb614548b
Status: NEW → RESOLVED
Last Resolved: 3 years ago
Resolution: --- → FIXED
This issue still reproduces on Flame 2.2.

Result: The black area remains when switching between apps quickly through edge gesture with the keyboard open.

Device: Flame 2.2 Master (319mb)(Kitkat Base)(Full Flash)
BuildID: 20141218040201
Gaia: 58734e8a48157f99d5b733412b600c2e04c954fe
Gecko: 5c7a6294b82a
Gonk: e5c6b275d77ca95fb0f2051c3d2242e6e0d0e442
Version: 37.0a1 (2.2 Master)
Firmware: V188-1
User Agent: Mozilla/5.0 (Mobile; rv:37.0) Gecko/37.0 Firefox/37.0
QA Whiteboard: [QAnalyst-Triage+] → [QAnalyst-Triage?][failed-verification]
Flags: needinfo?(ktucker)
QA Whiteboard: [QAnalyst-Triage?][failed-verification] → [QAnalyst-Triage-][failed-verification]
Flags: needinfo?(ktucker)
Thanks for your verification.

My commit should be able to prevent possible regression of bug 1100195 in all cases except NFC.
I try to reset to latest gaia and revert two of my commits(this one and bug 1100195) and comment 15 is still there, so I think it's probably another regression. I'll take a look of it.
I think bug 1112574 will try to fix it.
+ for fixed regressions. Adding dependency per comment 17.
blocking-b2g: 2.2? → 2.2+
status-b2g-v2.2: affected → fixed
Depends on: 1112574
This issue no longer reproduces on Flame Master and 2.2. Keyboard collapses properly, and no graphic issue is found during edge gesture.

Environmental Variables:
Device: Flame 3.0 (KK, 319mb, full flash)
Build ID: 20150421010201
Gaia: a8e4f95dce9db727dda5d408b038f97fb4296557
Gecko: 7b823253d9f2
Gonk: b83fc73de7b64594cd74b33e498bf08332b5d87b
Version: 40.0a1 (3.0)
Firmware Version: v18D-1
User Agent: Mozilla/5.0 (Mobile; rv:40.0) Gecko/40.0 Firefox/40.0

Environmental Variables:
Device: Flame 2.2 (KK, 319mb, full flash)
Build ID: 20150421002501
Gaia: 828dd03a0e3b140d74b2e49355197df4d91d9227
Gecko: 36f72a3efb9b
Gonk: ebad7da532429a6f5efadc00bf6ad8a41288a429
Version: 37.0 (2.2)
Firmware Version: v18D-1
User Agent: Mozilla/5.0 (Mobile; rv:37.0) Gecko/37.0 Firefox/37.0
Status: RESOLVED → VERIFIED
QA Whiteboard: [QAnalyst-Triage-][failed-verification] → [QAnalyst-Triage?]
status-b2g-v2.2: fixed → verified
status-b2g-master: --- → verified
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.