Closed Bug 1155785 Opened 9 years ago Closed 9 years ago

[Windows Management][Browser] Edge gesturing between browser pages will show black box flicker and rendering issues

Categories

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

ARM
Gonk (Firefox OS)
defect
Not set
normal

Tracking

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

VERIFIED FIXED
2.2 S11 (1may)
blocking-b2g 2.2+
Tracking Status
b2g-v2.1 --- unaffected
b2g-v2.2 --- verified
b2g-master --- verified

People

(Reporter: dharris, Assigned: etienne)

References

()

Details

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

Attachments

(4 files)

Attached file Edge gesure Flickering
Description:
If the user transitions between webpages that are open using edge gestures, the browser app will show graphical issues while rendering. This includes flickering, low resolution images, and the appearence of black boxes

Repro Steps:
1) Update a Flame to 20150417010203
2) Open Browser app> navigate to any webpage
3) Open a second browser window
4) Edge gesture between the two pages


Actual:
The webpage will flicker, and black boxes will appear on half of the screen


Expected:
User is able to smoothly transition between browser pages

Environmental Variables:
Device: Flame 3.0 (319mb)(Kitkat)(Full Flash)
Build ID: 20150417010203
Gaia: 3cd0a9facce26c2acc7be3755a17131a6358e33f
Gecko: 51e3cb11a258
Gonk: b83fc73de7b64594cd74b33e498bf08332b5d87b
Version: 40.0a1 (Master)
Firmware Version: v18D-1
User Agent: Mozilla/5.0 (Mobile; rv:40.0) Gecko/40.0 Firefox/40.0

Notes: There seems to be performance issues accross edge gestures in multiple areas, but browser was the only area I was able to get certain graphical issues like black boxes while loading and jittery transitions


Repro frequency: 5/10
See attached: Logcat, Video - https://youtu.be/rM7HXMHdGaA
This issue DOES occur on Flame 2.2

The webpage will flicker, and black boxes will appear on half of the screen

Environmental Variables:
Device: Flame 2.2 (319mb)(Kitkat)(Full Flash)
Build ID: 20150417002504
Gaia: d50b8a3919a7b4d8d289f150d3b9bed704ebafa9
Gecko: 5ebf32030512
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

=========================================================================================

This issue does NOT occur on Flame 2.1

The transition between pages is slow, but the page does not show any graphical flicker issues

Environmental Variables:
Device: Flame 2.1 (319mb)(Kitkat)(Full Flash)
Build ID: 20150415001211
Gaia: bbe983b4e8bebfec26b3726b79568a22d667223c
Gecko: 3e3cbe35bce3
Gonk: ebad7da532429a6f5efadc00bf6ad8a41288a429
Version: 34.0 (2.1)
Firmware Version: v18D-1
User Agent: Mozilla/5.0 (Mobile; rv:34.0) Gecko/34.0 Firefox/34.0
QA Whiteboard: [QAnalyst-Triage?]
Flags: needinfo?(pbylenga)
Visual performance regression of a core feature.

Requesting a window.
blocking-b2g: --- → 2.2?
QA Whiteboard: [QAnalyst-Triage?]
Flags: needinfo?(pbylenga)
QA Contact: jmercado
blocking-b2g: 2.2? → 2.2+
Putting on Milans radar
Flags: needinfo?(milan)
Bug 1111142 may have been the cuase for this issue.  Not sure though.  I cannot narrow this down further as I do not have access to the fx team inbound.

Central Regression Window:

Last Working 
Environmental Variables:
Device: Flame 2.2
BuildID: 20150103032041
Gaia: 698e6e8a098cc060b26cd6f25171633c4c7e739d
Gecko: 48e2bab81030
Gonk: Could not pull gonk.  Did you shallow Flash?
Version: 37.0a1 (2.2) 
Firmware Version: v18D-1
User Agent: Mozilla/5.0 (Mobile; rv:37.0) Gecko/37.0 Firefox/37.0

First Broken 
Environmental Variables:
Device: Flame 2.2
BuildID: 20150103172440
Gaia: 698e6e8a098cc060b26cd6f25171633c4c7e739d
Gecko: b478b0c48bcc
Gonk: Could not pull gonk.  Did you shallow Flash?
Version: 37.0a1 (2.2) 
Firmware Version: v18D-1
User Agent: Mozilla/5.0 (Mobile; rv:37.0) Gecko/37.0 Firefox/37.0

Last Working gaia / First Broken gecko - Issue DOES occur
Gaia: 698e6e8a098cc060b26cd6f25171633c4c7e739d
Gecko: b478b0c48bcc

First Broken gaia / Last Working gecko - Issue does NOT occur
Gaia: 698e6e8a098cc060b26cd6f25171633c4c7e739d
Gecko: 48e2bab81030

Gaia Pushlog: http://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=48e2bab81030&tochange=b478b0c48bcc
QA Whiteboard: [QAnalyst-Triage?]
Flags: needinfo?(ktucker)
Margaret, can you take a look at this please? This could have possibly been caused by the work done for bug 1111142 but we are really not sure.
Blocks: 1111142
QA Whiteboard: [QAnalyst-Triage?] → [QAnalyst-Triage+]
Flags: needinfo?(ktucker) → needinfo?(margaret.leibovic)
Removing needinfo on me, but I'll watch the comments in the bug, and CC-d Kats.
Flags: needinfo?(milan)
It seems unlikely to be bug 1111142 considering the regression window in comment 4 has both the landing and backout of that bug. None of the other changes in the window seem like likely culprits either. The most likely I would say is bug 1115802 but even that is a stretch. Are the STR 100% reliable? I see a 50% repro rate, but when it happens is it unambiguous, or might be it be confused with other similar issues (like black boxes vs just slow perf)?
No longer blocks: 1111142
Flags: needinfo?(margaret.leibovic) → needinfo?(dharris)
This bug seemed to be more of a black boxes bug. There is slow performance across the board for edge gesturing right now, but the black boxes only seem to appear in the browser app.
Flags: needinfo?(dharris)
Whiteboard: [3.0-Daily-Testing] → [3.0-Daily-Testing][systemsfe]
Just by playing with this a little bit and looking at logcat it looks like the window with browser content doesn't OMTA on the edge gesture transition, whereas the window with about:home does get OMTA. So during the edge gesture transition the OMTA'd window moves more smoothly and the content window lags behind, providing the visual effect of black "boxes" (which is really just a wide gap between the two windows).
The above is supported by the following logcat output:

Performance warning: Async animation disabled because frame size (320, 1029) is bigger than the viewport (360, 641) or the visual rectangle (320, 1029) is larger than the max allowable value (17895698) [div with id 'AppWindow_5']

In this case AppWindow_5 is the browser content window I have open. Not sure why the frame size is 1029 pixels tall though.
So it looks like the frame's scr-overflow is 52734 app units tall, which is 1029 CSS pixels. Later on it even grows further to 68320 app units, or around 1139 CSS pixels. This is too large to do OMTA on. I tried poking around in WebIDE to see why the scrollable overflow is so big but I don't know enough about how the scrollable overflow is computed to actually answer that question.

It's probably faster at this point to redo the regression window and hope it points to the culprit. The other alternative is to get somebody from layout to look into this and they're all swamped. Another option is to have gaia folks look at why the appWindow for browser content somehow seems to be different (taller) than non-browser-content appWindows, that might also point to the explanation.

Flagging regressionwindow-wanted to get a new regression window because it definitely doesn't look like anything in the window from comment 4 would have caused this.
Attached file Frame dumps
Also for future reference here are the frame dumps. I modified the perf warning output to include the frame address, so you can find it in the frame trees. The tree at the top of the file is the one that triggers the "performance warning" output, as it's the first frame tree that has frame aa52d198 with a transform set on it, but at that point it's CSS 1014 pixels tall. The second frame tree is taken from later, after stuff has stabilized - in that tree you can see frame aa52d198 has an even larger scr-overflow. (Note that this dump is from a different run than the above comments so the numbers are a bit different, but it illustrates the same thing).
Jet, can someone from layout help out here to fix the root issue?
Etienne, can you try a workaround as suggested in comment 11?
Flags: needinfo?(etienne)
Flags: needinfo?(bugs)
FWIW I believe the root issue is actually in Gaia, not in layout. I just don't understand this particular bit of layout code but I wouldn't assume it's wrong.
(In reply to Kartikaya Gupta (email:kats@mozilla.com) from comment #14)
> FWIW I believe the root issue is actually in Gaia, not in layout. I just
> don't understand this particular bit of layout code but I wouldn't assume
> it's wrong.

Thanks Kats. Assigning to Etienne for debugging then.
Assignee: nobody → etienne
Flags: needinfo?(etienne)
Flags: needinfo?(bugs)
Comment on attachment 8597206 [details] [review]
[gaia] etiennesegonzac:bug-1155785 > mozilla-b2g:master

Kevin, Alive: I just can't remember why the AppWindows weren't already |overflow:hidden|.

Maybe something to do with orientation change support that's not the case anymore? Or from before the app_statusbar?

Anyway, tested orientation, scrollgrab, inline activities, lockscreen and everything looks good.

Please let me know if you remember/see anything that'll break.
Attachment #8597206 - Flags: review?(kgrandon)
Attachment #8597206 - Flags: review?(alive)
Comment on attachment 8597206 [details] [review]
[gaia] etiennesegonzac:bug-1155785 > mozilla-b2g:master

I did a quick check, and it looks like we used to have this, but it was removed here: https://github.com/mozilla-b2g/gaia/commit/bc6eb8d37373d2a877630c3337f10efa398004ed#diff-722a99771d790c2ec314f2033b232fe9L51

It seems that you reviewed it, so I think I'm going to just forward my review to Vivien if that's ok and let you guys figure out what is best :)
Attachment #8597206 - Flags: review?(kgrandon) → review?(21)
Blocks: 1048009
I found this regression window based upon the reporter's video. The large black gap that happens when edge gesturing between windows in browser. 

B2G Inbound - Jellybean

Last Working
Environmental Variables:
Device: Flame 2.1(Shallow Flash)(JB)(319mb)
BuildID: 20140829145759
Gaia: f530a13b8b2e17a9cdd6e44e453122ef44ef77fc
Gecko: 56c602487233
Version: 34.0a1 (2.1)
Firmware Version: v123
User Agent: Mozilla/5.0 (Mobile; rv:34.0) Gecko/34.0 Firefox/34.0

First Broken
Device: Flame 2.1(Shallow Flash)(JB)(319mb)
BuildID: 20140829154813
Gaia: b40c2ce979735faa17adcdd98c6e9b721b8fd948
Gecko: 02eef143aaa9
Version: 34.0a1 (2.1)
Firmware Version: v123
User Agent: Mozilla/5.0 (Mobile; rv:34.0) Gecko/34.0 Firefox/34.0

Last Working Gaia First Broken Gecko: Issue does NOT reproduce
Gaia: f530a13b8b2e17a9cdd6e44e453122ef44ef77fc
Gecko: 02eef143aaa9

First Broken Gaia Last Working Gecko: Issue DOES reproduce
Gaia: b40c2ce979735faa17adcdd98c6e9b721b8fd948
Gecko: 56c602487233

https://github.com/mozilla-b2g/gaia/compare/f530a13b8b2e17a9cdd6e44e453122ef44ef77fc...b40c2ce979735faa17adcdd98c6e9b721b8fd948

This looks to have been caused by Bug 1054466 

------------------------------------------------

Dale, can you take a look at this please? This looks to have been caused by the work done for Bug 1054466.
Blocks: 1054466
Flags: needinfo?(dale)
Summary: [Windows Management][Browser] Edge gesutring between browser pages will show black box flicker and rendering issues → [Windows Management][Browser] Edge gesturing between browser pages will show black box flicker and rendering issues
I would be very surprised if this was caused by https://github.com/mozilla-b2g/gaia/commit/838213d40dcba2e37b9e397c162aa5e44e9e64e7, but will take a look. 

Ettiene do you want me to take this bug or happy with fixing it, looks like there is a patch in so seems everything is ok here?
Flags: needinfo?(dale) → needinfo?(etienne)
(In reply to Dale Harvey (:daleharvey) from comment #20)
> I would be very surprised if this was caused by
> https://github.com/mozilla-b2g/gaia/commit/
> 838213d40dcba2e37b9e397c162aa5e44e9e64e7, but will take a look. 

Not that surprising.
I think the issue is that, after opening the menu, the appWindow frame is too big to be OMTA.
Probably because we're drawing the menu "below" the iframe once it's been dismissed.

> 
> Ettiene do you want me to take this bug or happy with fixing it, looks like
> there is a patch in so seems everything is ok here?

Yes I'll check again with Vivien but my patch sounds safer since it fixes the root issue. If we can't do it that way I'll ni you again to work around in the menu. cheers!
Flags: needinfo?(etienne)
Comment on attachment 8597206 [details] [review]
[gaia] etiennesegonzac:bug-1155785 > mozilla-b2g:master

\O/
Attachment #8597206 - Flags: review?(alive) → review+
(In reply to Etienne Segonzac (:etienne) from comment #17)
> Comment on attachment 8597206 [details] [review]
> [gaia] etiennesegonzac:bug-1155785 > mozilla-b2g:master
> 
> Kevin, Alive: I just can't remember why the AppWindows weren't already
> |overflow:hidden|.

So do I :/ But maybe Vivien knows the magic.
(In reply to Kevin Grandon :kgrandon from comment #18)
> Comment on attachment 8597206 [details] [review]
> [gaia] etiennesegonzac:bug-1155785 > mozilla-b2g:master
> 
> I did a quick check, and it looks like we used to have this, but it was
> removed here:
> https://github.com/mozilla-b2g/gaia/commit/
> bc6eb8d37373d2a877630c3337f10efa398004ed#diff-
> 722a99771d790c2ec314f2033b232fe9L51
> 
> It seems that you reviewed it, so I think I'm going to just forward my
> review to Vivien if that's ok and let you guys figure out what is best :)

Thanks that's really helpful.
Running some tests to make sure we're not regressing on the overpaint front.

(Already checked with Vivien but we couldn't remember either.)
Overpaint is fine but we're hitting bug 1059154 which is failing an integration test. Still pondering what to do.
Comment on attachment 8597206 [details] [review]
[gaia] etiennesegonzac:bug-1155785 > mozilla-b2g:master

Updated the patch, here's my thinking:
* having an overflow:hidden on the appWindows is really important, otherwise we will have issues like this one every time we do polish work and add some transform:translate on any dialog/select/etc.. inside the app element
* the overflow:visible on appWindow was only here to work around a bug where setting a transform will initially cause a reflow, I tried mitigating this issue and updated the test. in real life these reflows will probably get collapsed with the statusbar reflow anyway
* I double-checked the overpaint numbers and we're stable

Since the patch changed a bit I'm flagging Alive for another round of review :)
Attachment #8597206 - Flags: review?(alive)
Attachment #8597206 - Flags: review?(21)
Attachment #8597206 - Flags: review+
Comment on attachment 8597206 [details] [review]
[gaia] etiennesegonzac:bug-1155785 > mozilla-b2g:master

Looks fine
Attachment #8597206 - Flags: review?(alive) → review+
Keywords: checkin-needed
https://github.com/mozilla-b2g/gaia/pull/29711

Autolander could not land the pull request due to not having collaborator rights. This is possibly due to a tree closure. Please check the tree status and request checkin again once the tree is open.
Keywords: checkin-needed
https://github.com/mozilla-b2g/gaia/pull/29711

Autolander could not land the pull request due to not having collaborator rights. This is possibly due to a tree closure. Please check the tree status and request checkin again once the tree is open.
Tree is reopened now. Let's try again.
Keywords: checkin-needed
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Flags: needinfo?(hcheng)
Kevin, could you also uplift to 2.2?
Flags: needinfo?(hcheng)
(In reply to Hermes Cheng[:hermescheng] from comment #32)
> Kevin, could you also uplift to 2.2?

I guess that request was for etienne?
Flags: needinfo?(etienne)
Comment on attachment 8597206 [details] [review]
[gaia] etiennesegonzac:bug-1155785 > mozilla-b2g:master

[Approval Request Comment]
[Bug caused by] (feature/regressing bug #): dialogs with nice transitions
[User impact] if declined: slugish performance
[Testing completed]: edge gestures + browser windows tests
[Risk to taking this patch] (and alternatives if risky): low-ish (we had some uncertainties during the making of this patch but it's tiny and fixes the root cause of the issue)
[String changes made]: none
Flags: needinfo?(etienne)
Attachment #8597206 - Flags: approval-gaia-v2.2?
Attachment #8597206 - Flags: approval-gaia-v2.2? → approval-gaia-v2.2+
Depends on: 1160191
keep unverified until bug 1160191 has been resolved.
Flags: needinfo?(hcheng)
Depends on: 1164153
Flags: needinfo?(hcheng)
Keywords: verifyme
This bug has been verified as pass on latest build of Flame v2.2&3.0 and Nexus 5 v2.2&3.0 by the STR in Comment 0.

Actual results: User smoothly transfers between browser pages after adding a new window.
See attachment: verified_v2.2&3.0.mp4
Reproduce rate: 0/10

-------------------------------------------------------------------------------
Device: Flame v2.2 build(Pass)
Build ID               20150514162500
Gaia Revision          8d478e4df36ace173b3e505b568f1a5077fed7c3
Gaia Date              2015-05-14 17:30:50
Gecko Revision         https://hg.mozilla.org/releases/mozilla-b2g37_v2_2/rev/666b327287d5
Gecko Version          37.0
Device Name            flame
Firmware(Release)      4.4.2
Firmware(Incremental)  eng.cltbld.20150514.201419
Firmware Date          Thu May 14 20:14:30 EDT 2015
Bootloader             L1TC000118D0

Device: Flame v3.0 build(Pass)
Build ID               20150514160201
Gaia Revision          8897e1810aa6426ca483269af76ce2bfd2029d25
Gaia Date              2015-05-14 18:49:06
Gecko Revision         https://hg.mozilla.org/mozilla-central/rev/59b6d856160c
Gecko Version          41.0a1
Device Name            flame
Firmware(Release)      4.4.2
Firmware(Incremental)  eng.cltbld.20150514.192647
Firmware Date          Thu May 14 19:26:58 EDT 2015
Bootloader             L1TC000118D0

Device: Nexus 5 v2.2 build (Pass)
Build ID               20150514162500
Gaia Revision          8d478e4df36ace173b3e505b568f1a5077fed7c3
Gaia Date              2015-05-14 17:30:50
Gecko Revision         https://hg.mozilla.org/releases/mozilla-b2g37_v2_2/rev/666b327287d5
Gecko Version          37.0
Device Name            hammerhead
Firmware(Release)      5.1
Firmware(Incremental)  eng.cltbld.20150514.214406
Firmware Date          Thu May 14 21:44:23 EDT 2015
Bootloader             HHZ12f

Device: Nexus 5 v3.0 build (Pass)
Build ID               20150514010203
Gaia Revision          338f66e6a96491d2f5854b188c6b141ceb690d97
Gaia Date              2015-05-13 14:08:45
Gecko Revision         https://hg.mozilla.org/mozilla-central/rev/1fab94ad196c
Gecko Version          41.0a1
Device Name            hammerhead
Firmware(Release)      5.1
Firmware(Incremental)  eng.cltbld.20150514.044222
Firmware Date          Thu May 14 04:42:38 EDT 2015
Bootloader             HHZ12f
Status: RESOLVED → VERIFIED
Keywords: verifyme
QA Whiteboard: [QAnalyst-Triage+] → [QAnalyst-Triage+][MGSEI-Triage+]
Note:
The depending on bug 1164153 is "New" status and is not fixed now.
Flags: needinfo?(hcheng)
It seems this patch results in bug 1164153. Let's wait for developer.
Flags: needinfo?(hcheng)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: