Closed Bug 827130 Opened 13 years ago Closed 13 years ago

Feels like can't pan page if gesture starts as blocked overscroll

Categories

(Firefox OS Graveyard :: Gaia::Homescreen, defect)

ARM
Gonk (Firefox OS)
defect
Not set
normal

Tracking

(blocking-b2g:tef+, blocking-basecamp:-, b2g18+ fixed, b2g18-v1.0.0 wontfix, b2g18-v1.0.1 fixed)

VERIFIED FIXED
blocking-b2g tef+
blocking-basecamp -
Tracking Status
b2g18 + fixed
b2g18-v1.0.0 --- wontfix
b2g18-v1.0.1 --- fixed

People

(Reporter: cjones, Assigned: crdlc)

References

Details

(Whiteboard: UX-P?)

Attachments

(1 file, 1 obsolete file)

STR (1) Pan to rightmost homescreen page (2) Start quick pan gesture left (which won't move the current page because we go into overscroll) (3) Switch finger direction and pan right In step (3), it feels like the current page should start moving left, but instead nothing happens. This is frustrating. (Finger has to move past where the pan gesture started originally.) bb? -> radar
Assignee: nobody → jones.chris.g
blocking-basecamp: ? → -
tracking-b2g18: --- → +
I know the problem, taking a look because it is very ugly in my honest opinion
Assignee: jones.chris.g → crdlc
Status: NEW → ASSIGNED
Hi all, I have a solution [1] but sometimes the previous page is not re-painted when we change the display value from 'none' to 'block'. Any suggestion from Chris or Vivien? Thanks a lot [1] https://github.com/crdlc/gaia/commit/f1b81ba2c722678f60c7e7ccadb733594245374b
Flags: needinfo?(21)
For example, if we change the backgroundColor of the previous page it is always re-painted
Except forcing a repaint manually I'm not sure what else to do :/
Flags: needinfo?(21)
By means of getBoundingClientRect() sometimes doesn't work but for example i checked changing the background property and it works fine
Hi, see comment 2: it seems like we're not flushing properly when changing to block display. Any suggestions on how to debug?
Yes, please take a look to this branch: https://github.com/crdlc/gaia/tree/bug-827130-v2 or to this commit: https://github.com/crdlc/gaia/commit/72b95811e3fb976397216e7ae98fe958a1e45359 STR: * Both use cases in the last page always: 1) Swipe from left to right and it works fine, perfectly, the previous page is always painted. 2) Swipe from right to left and immediately left to right and sometimes the page is not painted. Works better if the gesture is slow but when the gesture is fast is more reproducible the bad behavior. Thanks
I would have thought it unlikely we would have a bug related to flushing/invalidation that's not already reported on Web sites. Is it possible we're just starving the homescreen's process so it's late in reflowing/painting the previously hidden page?
what is your opinion?
Flags: needinfo?(21)
Current state (sometimes doesn't paint): http://www.youtube.com/watch?v=59YhQONzkKw Adding .apps > div { background: yellow } (works) http://www.youtube.com/watch?v=b4LqygtbGHo Any clue? As I said, I am not sure if this behavior is due to gecko or not, but could be, same code with or without background different behaviors
Chris, did you see these videos? thanks for your help!
Flags: needinfo?(21) → needinfo?(jones.chris.g)
Are you 100% for sure the homescreen is updating the visibility correctly?
Flags: needinfo?(jones.chris.g)
Vivien implemented it and I was reviewing with new logs and I am sure that we change the display property correctly. Here [1] we change the display prop for the current and previous pages. Although I am going to take a loog again. Thanks [1] https://github.com/mozilla-b2g/gaia/blob/master/apps/homescreen/js/grid.js#L76
I tested again and the logs say to me that we are setting the correct values for display prop
Do you know if this reproduces on a B2G desktop build?
I have tested on B2G desktop build but here it works fine. The previous page is always painted. Thanks a lot
I'm not sure what the right way to proceed is. We could dump display lists for the homescreen process but it would be hard to match those up with the frames with the missing content. But I can't think of anything else. How easy is it to set MOZ_DUMP_PAINT_LIST=1 on the device?
is MOZ_DUMP_PAINT_LIST=1 for me? thanks
any update here?
I'll try to take a look at this.
Assignee: crdlc → tnikkel
The patch to implement this bug is [1]. When do you say: 'I'll try to take a look at this', What do you mean? on gecko? Thanks a lot Timothy! [1] https://github.com/crdlc/gaia/commit/72b95811e3fb976397216e7ae98fe958a1e45359
The file seems to have changed a fair bit since then. Is there an updated diff?
Nevermind, I got it applied.
If you want I can rebase my branch, do you want? thanks
I've got it now, thanks.
Bug 842218 seems like the symptom described here. It would be very interesting to know why the change here exacerbates the problem.
Depends on: 842218
Attached file Patch v1 (obsolete) —
Attachment #716451 - Flags: review?(21)
This new style [1] does that all pages are always re-painted in panning [1] https://github.com/mozilla-b2g/gaia/pull/8230/files#L1R16
Attachment #716451 - Flags: review?(21)
This patch [1] solves this bug but we need to wait for landing this bug 842218 where the re-painting issue will be fixed. Thanks [1] https://github.com/crdlc/gaia/commit/897d55b0d65a46736ff4348e1403dcd3914d3ffb
Attachment #716451 - Attachment is obsolete: true
Assignee: tnikkel → crdlc
Attached file Patch v1
Attachment #717898 - Flags: review?(21)
Status: ASSIGNED → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
Comment on attachment 717898 [details] Patch v1 NOTE: 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 #): User impact if declined: bad user experience when users try to go to previous page from last or go to next one from the first (evme) Testing completed: yes Risk to taking this patch (and alternatives if risky): close to null String or UUID changes made by this patch:
Attachment #717898 - Flags: approval-gaia-v1?
Attachment #717898 - Flags: approval-gaia-v1? → approval-gaia-v1+
Commit c62a8f8 does not apply to v1-train. This means that there are merge conflicts which need to be resolved. If there are dependencies that are not approved for branch landing, or have yet to land on master, please let me know If a manual merge is required, a good place to start might be: cd gaia git checkout v1-train git cherry-pick -x <function determine_cherry_pick_master_number at 0x103a115f0> c62a8f8 <RESOLVE MERGE CONFLICTS>
Requesting uplift to v1.0.1. This is one of the patches in the MWC build so plenty of eyes on it.
blocking-b2g: --- → tef?
blocking-b2g: tef? → tef+
Unfortunately, this has merge conflicts on v1.0.1 that I'm not 100% sure how to resolve. cd gaia git checkout v1.0.1 git cherry-pick -x 8848a0c8c1e19ac3cb414d9745b5f751886a433d would be a good starting point to merging this.
It depends on bug 842218, so if it isn't on v1.0.1, to uplift this one doesn't make sense
(In reply to John Ford [:jhford] from comment #37) > Unfortunately, this has merge conflicts on v1.0.1 that I'm not 100% sure how > to resolve. > > cd gaia > git checkout v1.0.1 > git cherry-pick -x 8848a0c8c1e19ac3cb414d9745b5f751886a433d > > would be a good starting point to merging this. I see bug 842218 is nominated as tef?, and as Cristian says it is a dependency, It should be tef+ in order this bug to be merged in v1.0.1
Flags: in-moztrap-
Verified Fixed on Unagi: Unagi Build ID: 20130322070203 Kernel Date: Dec 5 Gecko: http://hg.mozilla.org/releases/mozilla-b2g18_v1_0_1/rev/4931ec89ebbe Gaia: 85fd164691bb852f1cfaf82405df4380629ced6e
Status: RESOLVED → VERIFIED
bug 842218 is landed in v1.0.1 so it seems we could land this now in v1.0.1 too? Thanks!
Flags: needinfo?(crdlc)
Yes, it could be land in v1.0.1 although there will be conflicts, one month and a half ago it was implemented :)
Flags: needinfo?(crdlc)
Cristian, can you please try to do so?
Flags: needinfo?(crdlc)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: