Closed Bug 987771 Opened 12 years ago Closed 12 years ago

[B2G] Taking the phone in and out of standby with the keyboard up will hide messages

Categories

(Core :: Panning and Zooming, defect)

ARM
Gonk (Firefox OS)
defect
Not set
normal

Tracking

()

RESOLVED FIXED
1.4 S5 (11apr)
blocking-b2g 1.3+
Tracking Status
b2g-v1.3 --- fixed
b2g-v1.3T --- verified
b2g-v1.4 --- unaffected
b2g-v2.0 --- unaffected

People

(Reporter: julienw, Assigned: kats)

References

()

Details

(Keywords: regression, verifyme)

Attachments

(4 files)

+++ This bug was initially created as a clone of Bug #980041 +++ Description: The messages in the Message app will be cut off after unlocking the phone. Repro Steps: 1) Updated Peak 1.3 to images-peak-v1.3-2014-03-25.Gecko-72f48b2.Gaia-b789780.zip 2) Select the Message app. 3) Select a message thread with multiple messages. 4) Tap the text field to open up the keyboard. 5) Press the power button to put the phone to sleep. 6) Press the power button again and unlock the phone. Actual: Some of the messages in the app are cut off and cannot be seen. Expected: No messages are cut off. Environmental Variables: Device: Peak 1.3 Geeksphone BuildID: 20140325 Gaia: b789780 Gecko: 72f48b2 Version: 28 Notes: The Gaia and Gecko hashes are the Git hashes. Repro frequency: 100% With a build from after the fix from bug 980041 (Gecko f677c14), I also got Bug 968960 a lot (didn't reproduce on the new build yet, as it's more intermittent). QAWanted: can you try on Buri 1.3? Requesting 1.3? already so that this bug is acted on earlier, even if it's not confirmed on Buri yet.
This issue does reproduce on the 03/24/14 1.3 build on a Buri. Device: Buri v1.3 MOZ RIL BuildID: 20140324004001 Gaia: f7742fb4929cc57c9f72955ce5cebb8279745ac0 Gecko: e42b778a010f Version: 28.0 Firmware Version: V1.2-device.cfg
Keywords: qawanted
QA Contact: mvaughan
blocking-b2g: 1.3? → 1.3+
QAwanted to get a video showing this on 1.3. Also I would like to know if this is reproducible on 1.4 or master.
Keywords: qawanted
No longer depends on: 963278
Attached video Video of issue on 1.3
(In reply to Kartikaya Gupta (email:kats@mozilla.com) from comment #2) > QAwanted to get a video showing this on 1.3. Also I would like to know if > this is reproducible on 1.4 or master. Attached is the requested video for 1.3 (sorry about the quality, but it should be okay). On 1.4 and master (using the Buri), the issue occurs for less than a second and then fixes itself.
Keywords: qawanted
Wasn't clear - is this a regression from bug 980041 or some things haven't been backported by that bug?
I think the symptoms have multiple causes. I was never able to reproduce bug 980041 myself [1], I was only able to reproduce bug 973980 and so that's what I fixed. It's possible there's some other issues causing the same symptoms on 1.3. Personally I'd like to close this bug as WFM and wontfix it for 1.3. [1] https://bugzilla.mozilla.org/show_bug.cgi?id=980041#c24
(In reply to Kartikaya Gupta (email:kats@mozilla.com) from comment #6) > I think the symptoms have multiple causes. I was never able to reproduce bug > 980041 myself [1], I was only able to reproduce bug 973980 and so that's > what I fixed. It's possible there's some other issues causing the same > symptoms on 1.3. > > Personally I'd like to close this bug as WFM and wontfix it for 1.3. > > [1] https://bugzilla.mozilla.org/show_bug.cgi?id=980041#c24 That's not happening. TCL is blocking on this right now because they can reproduce this. QA can reproduce this as well, I'm not sure why you can't reproduce this. You need to figure out why can't reproduce right now, cause no one has had a problem right now reproducing this.
(In reply to Milan Sreckovic [:milan] from comment #5) > Wasn't clear - is this a regression from bug 980041 or some things haven't > been backported by that bug? The window for this bug is here - https://bugzilla.mozilla.org/show_bug.cgi?id=980041#c18. To my understanding, the patch in bug 980041 never actually fixed the problem in the bug.
(In reply to Jason Smith [:jsmith] from comment #7) > (In reply to Kartikaya Gupta (email:kats@mozilla.com) from comment #6) > > I think the symptoms have multiple causes. I was never able to reproduce bug > > 980041 myself [1], I was only able to reproduce bug 973980 and so that's > > what I fixed. It's possible there's some other issues causing the same > > symptoms on 1.3. > > > > Personally I'd like to close this bug as WFM and wontfix it for 1.3. > > > > [1] https://bugzilla.mozilla.org/show_bug.cgi?id=980041#c24 > > That's not happening. TCL is blocking on this right now because they can > reproduce this. QA can reproduce this as well, I'm not sure why you can't > reproduce this. You need to figure out why can't reproduce right now, cause > no one has had a problem right now reproducing this. One idea to try here is to see if you can reproduce with a pvtbuild, rather than a local build. There have been cases where certain graphics bugs have only reproduced with a pvtbuild and not a local build.
Kats, Milan, if this is any useful, I can reproduce this very easily and every time on a 1.3 build from geeksphone. If necessary I can show this to Nical tomorrow, who is in the same office. During 1 week I used this phone only, and during that 1 week, I got this a lot, and I also got Bug 968960 a lot. Here are my personal feelings: * this bug makes the phone look broken, but is not _that_ bad. I mean that it's quite easy to recover from it. * Bug 968960 is a lot more awkward, and it's not obvious how to recover. However, we don't have clear STR for Bug 968960, whereas this bug is 100% reproducible for me. My hope is that the fix for this bug will also fix Bug 968960. Hope this helps.
Perfect, thanks. I think we have to assume that the problem you're seeing on Keon is the same bug as what's seen on Buri, so having a higher percentage of reproduction would help.
I tried reproducing this on the 2014-03-28-00-40-02 Hamachi 1.3 pvtbuild with a medium reference workload. I used a bunch of the different SMS threads but still was unable to reproduce.
(In reply to Kartikaya Gupta (email:kats@mozilla.com) from comment #12) > I tried reproducing this on the 2014-03-28-00-40-02 Hamachi 1.3 pvtbuild > with a medium reference workload. I used a bunch of the different SMS > threads but still was unable to reproduce. No-Jun - Can you try to reproduce this? If you can reproduce this, then can you show this to Botond directly, since I think he's in the same office as you?
Flags: needinfo?(npark)
Note that Botond is PTO today and will be at a work week next week so he won't be back in the office until the week after.
(In reply to Kartikaya Gupta (email:kats@mozilla.com) from comment #14) > Note that Botond is PTO today and will be at a work week next week so he > won't be back in the office until the week after. Well I guess that idea failed. I'll go talk to Milan about this to see what ideas he has.
Flags: needinfo?(npark)
So I have Julien's phone with me and here are some observations about the bug: Once the bug reproduces, Layer borders show that the layer containing the messages stops where the keyboard used to be, so the content that is cut off isn't there because the layer doesn't extend far enough. If I go back to the home screen with the home button and get back to the sms app, paint flashing seems to indicate that the content is repainted, even in the area that is cut off, but the layer is still smaller than it should be. If I go to the sms list page by pressing the top left back button, and go to another discussion, the layer containing the messages will also be cut vertically at the same place, even if it has a different width. As long as I don't scroll in a discussion the layers containing the messages will be cut, even if things get repainted. I don't know if it is the presence of the keyboard on to of the app or the app being resized that influences how we shape our layers, but it is still affecting the layerization (of the layer containing the messages specifically), after the keyboard disappears. I am hesitant to upload videos illustrating this because it's in the middle of Julien's personal conversations... Anyway I think we can rule out compositor-side bugs. I think this is happening in layout in the app's process.
(In reply to Nicolas Silva [:nical] from comment #16) > Anyway I think we can rule out compositor-side bugs. I think this is > happening in layout in the app's process. Do you mean a bug in the layout code, or a bug in the app in that it's not dealing with the resize properly? We should able to confirm the latter by using the App Manager and checking the size of the appropriate container elements to see if they are correct.
We detect the resize event, and we set the height of the container using inline styles (for various reasons) (see [1]). We checked with the app manager that it behaves like this accordingly, both using style.height and .offsetHeight properties ("document.getElementById('messages-container')" finds you the correct element). We have a different value when the keyboard is here and when it's hidden. We have the same value with the keyboard hidden when the bug happens and when it doesn't. [1] https://github.com/mozilla-b2g/gaia/blob/v1.3/apps/sms/js/thread_ui.js#L1005
So if the app is resizing things correctly, but the visible region of the layer is wrong in the compositor (that is what is painted as the layer border [1]), then yeah, the problem would be in layout somewhere. [1] http://mxr.mozilla.org/mozilla-central/source/gfx/layers/Compositor.cpp?rev=b2fc3f9509b0#87
Component: Panning and Zooming → Layout
Milan - Can you get someone assigned to fix this?
Flags: needinfo?(milan)
Hey kats, can you suggest an owner for this bug?
Flags: needinfo?(bugmail.mozilla)
Since you can reproduce it most easily, would you be willing to enabling various bits of logging and send it to me? You'd have to build gecko locally with some changes.
Flags: needinfo?(bugmail.mozilla)
Yes of course, just tell me what and how to enable and I'll gladly do it.
Attached patch Logging patchSplinter Review
Here's a patch which enables some APZ and layers logging. Please run with this and grab |adb logcat -v time| while reproducing the problem. If the log is really big it would also be good to indicate roughly where in the log (maybe using the timestamp) the problem occurred. Alternatively just stop logging right after it happens and I can look at the end of the log. Thanks!
Flags: needinfo?(felash)
Attached file apzc.log
Here is the log, I expunged it from wpa_supplicant lines. Around 11:32:35 I pressed the "power" button to put the phone on sleep I think 11:32:39.179 is where I pressed it back to ake up the phone Then (probably 11:32:44.609 ?) I scrolled up/down which made the invisible area to finally show up. Here is the output of b2g-ps so that you have the pids: APPLICATION USER PID PPID VSIZE RSS WCHAN PC NAME b2g root 126 1 216476 74708 ffffffff 400be580 S /system/b2g/b2g (Nuwa) root 335 126 52268 19336 ffffffff 400cf580 S /system/b2g/plugin-container Usage app_355 355 335 64316 24408 ffffffff 400cf580 S /system/b2g/plugin-container Homescreen app_387 387 335 67752 28284 ffffffff 400cf580 S /system/b2g/plugin-container Messages app_435 435 335 95804 40932 ffffffff 400cf580 S /system/b2g/plugin-container (Preallocated a root 482 335 60452 19736 ffffffff 400cf580 S /system/b2g/plugin-container
Flags: needinfo?(felash)
Flags: needinfo?(bugmail.mozilla)
Also remember it's on a 1.3 Gecko (I resolved the easy conflicts and applied your patch on my 1.3 tree).
Assignee: nobody → bugmail.mozilla
Flags: needinfo?(milan)
Thanks! Based on the log I was able to create a test page that reproduces the problem. I will see if I can put together a low-risk fix.
Flags: needinfo?(bugmail.mozilla)
Component: Layout → Panning and Zooming
So on 1.3 and 1.4 both the APZC instance is destroyed when going to the lockscreen and a new one is created when coming back. The difference is that on 1.3 when we come back the first NLU call already has the updated composition bounds and viewport, and so we never take the codepath that sets needsContentRepaint to true. On 1.4 when we come back the NLU still has the old composition bounds and viewport. These get updated in another call to NLU and therefore exercise the needsContentRepaint=true codepath. The new repaint sends a new displayport which is correct and so prevents the bug from happening. The easy fix is to just stick in a needsContentRepaint=true in the isDefault path for NLU. However I'll have to do some code archaeology first because I'm pretty sure that used to be there and it was taken out for some reason.
Yeah it was taken out in bug 916379. I'll see if I can come up with a reasonable fix that doesn't regress that one.
This seems to work for me on my test page. Julien, can you check if it fixes the problem for you?
Attachment #8402904 - Flags: feedback?(felash)
I needed to clone gecko on this new computer first, and it was very slow; hence the delay. But I'll get you a feedback before the end of the day.
Vance Does TCL care about this bug?
Flags: needinfo?(vchen)
Comment on attachment 8402904 [details] [diff] [review] Possible fix for 1.3 I see the same behavior than on master now :) Good work !! That said I don't completely understand why there is a delay to repaint (shouldn't we try to keep the already painted surface so that it's easily repainted?), but I guess this is for another bug, because this delay is on master too.
Attachment #8402904 - Flags: feedback?(felash) → feedback+
Waiting for needinfo in comment 32 before requesting review here, because if TCL doesn't care about this bug for 1.3 then it's WFM and review time will be wasted.
About the STR in comment 0, you need a thread that has enough messages to scroll. Kats, it would be nice if you could share your simpler testcase, so that we can see if the issue reproduces on other devices. I reproduce on the Peak for sure, but I think we'll need to know if this reproduce on any shipped device to keep the 1.3+ flag.
(In reply to Julien Wajsberg [:julienw] from comment #35) > About the STR in comment 0, you need a thread that has enough messages to > scroll. > > Kats, it would be nice if you could share your simpler testcase, so that we > can see if the issue reproduces on other devices. I reproduce on the Peak > for sure, but I think we'll need to know if this reproduce on any shipped > device to keep the 1.3+ flag. Roland already indicated on the other bug that this reproduces on a Buri device.
(In reply to Julien Wajsberg [:julienw] from comment #35) > Kats, it would be nice if you could share your simpler testcase, so that we > can see if the issue reproduces on other devices. I added the test case to the bug URL in comment 27. There's a 10-second timeout hardcoded in the test, so you have to make sure you scroll the subframe to bottom and lock the screen before the 10-second timeout expires.
Comment on attachment 8402904 [details] [diff] [review] Possible fix for 1.3 Review of attachment 8402904 [details] [diff] [review]: ----------------------------------------------------------------- Right, I forgot about Roland's comment in the other bug. Hopefully this patch fixes what he was seeing as well. r? to botond - note that this patch is for 1.3 only. This issue doesn't occur in 1.4+ (one possible reason is the layer margins change) so I don't think this patch needs to land there yet. It's possible we'll need it on 1.4+ in the future but until we run into a use case that requires it I'd rather not.
Attachment #8402904 - Flags: review?(botond)
Attachment #8402904 - Flags: review?(botond) → review+
Comment on attachment 8402904 [details] [diff] [review] Possible fix for 1.3 NOTE: This flag is now for security issues only. Please see https://wiki.mozilla.org/Release_Management/B2G_Landing to better understand the B2G approval process and landings. [Approval Request Comment] Bug caused by (feature/regressing bug #): APZC User impact if declined: in some cases when a scrollable container is resized while not visible it will end up not painting properly until the user triggers a repaint by touching it Testing completed: locally, julien tested it as well. will need wider testing once it's in a 1.3 build Risk to taking this patch (and alternatives if risky): fairly low risk. since this affects 1.3 only i made the patch very specific so that the new codepath only triggers in specific circumstances. String or UUID changes made by this patch: none
Attachment #8402904 - Flags: approval-mozilla-b2g28?
Comment on attachment 8402904 [details] [diff] [review] Possible fix for 1.3 Approving and flagging it for verification for QA help here.
Attachment #8402904 - Flags: approval-mozilla-b2g28? → approval-mozilla-b2g28+
Keywords: verifyme
Keywords: checkin-needed
Whiteboard: [land on b2g-28 only]
Status: NEW → RESOLVED
Closed: 12 years ago
Keywords: checkin-needed
Resolution: --- → FIXED
Whiteboard: [land on b2g-28 only]
Target Milestone: --- → 1.4 S5 (11apr)
Verified fixed v1.3T. I am unable to reproduce this issue on the latest v1.3T Tarako build: v1.3T Environmental Variables: Device: Tarako v1.3T MOZ RIL BuildID: 20140530014002 Gaia: e68858693b71d917c9c5ee7e215f7ceea04635f7 Gecko: 1945abae19ff Version: 28.1 Firmware Version: SP6821a-Gonk-4.0-5-12 - 1) Leaving verifyme, v1.3 branch still needs to be verified.
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: