Closed
Bug 1240202
Opened 9 years ago
Closed 9 years ago
After restarting a phone stretch Homescreen then swipe to the bottom it will not return to the initial state
Categories
(Core :: Panning and Zooming, defect)
Tracking
()
RESOLVED
FIXED
mozilla46
People
(Reporter: MaxIvanov, Assigned: botond)
References
()
Details
(Whiteboard: [2.6-Daily-Testing][Spark])
Attachments
(5 files)
5.73 MB,
text/plain
|
Details | |
MozReview Request: Bug 1240202 - Rename APZOverscrollHandoffTester to APZScrollHandoffTester. r=kats
58 bytes,
text/x-review-board-request
|
kats
:
review+
|
Details |
58 bytes,
text/x-review-board-request
|
kats
:
review+
|
Details |
58 bytes,
text/x-review-board-request
|
kats
:
review+
|
Details |
58 bytes,
text/x-review-board-request
|
kats
:
review+
|
Details |
Description:
After reaching the Homescreen for the first time since the phone has been flashed or restarted stretch Homescreen and swipe to the bottom it will stuck and not return to the initial state
Repro Steps:
1) Update a Aries to 20160115125237
2) Restart you phone
3) Scroll Homescreen to the right and make swipe to the bottom
4) Observe Homescreen state
Actual:
Homescreen will stuck and not returning to the initial state
Expected:
We expect that Homescreen should returns to initial state
Environmental Variables:
Device: Aries 2.6
Build ID: 20160115125237
Gaia: 44cc5dfeda9251188c6547f2d5903ee980a5361e
Gecko: 02398f2be72b9bbf5ee79348b73ef122c915aae0
Gonk: a19052e4389c3ae2d8fc3e7a74a475401baacc56
Version: 46.0a1 (2.6)
Firmware Version: D5803_23.1.A.1.28_NCB.ftf
User Agent: Mozilla/5.0 (Mobile; rv:46.0) Gecko/46.0 Firefox/46.0
Repro frequency: 100%,)
See attached: (video clip)
https://youtu.be/J5kM-sD5_ZM
Reporter | ||
Comment 1•9 years ago
|
||
This does occur on Flame 2.6
Homescreen will stuck and not returns to the initial state
Device: Flame 2.6
Build ID: 20160115055328
Gaia: 44cc5dfeda9251188c6547f2d5903ee980a5361e
Gecko: 02398f2be72b9bbf5ee79348b73ef122c915aae0
Gonk: 205ac4204bbbb2098a8046444acba551ba5dc75a
Version: 46.0a1 (2.6)
Firmware Version: v18D
User Agent: Mozilla/5.0 (Mobile; rv:46.0) Gecko/46.0 Firefox/46.0
QA Whiteboard: [QAnalyst-Triage?]
status-b2g-master:
--- → affected
Flags: needinfo?(ktucker)
OS: Unspecified → Gonk (Firefox OS)
Hardware: Unspecified → ARM
See Also: → 1231228
Whiteboard: [2.6-Daily-Testing][Spark]
Assignee | ||
Comment 2•9 years ago
|
||
I tried to reproduce this, but wasn't able to.
Are you running with the lock screen enabled or disabled, in case it matters?
Flags: needinfo?(mivanov)
Reporter | ||
Comment 3•9 years ago
|
||
Doesn't matter, it happens in either way. Please notice that happens only when you get the Homescreen for the first time after restarting your phone.
Flags: needinfo?(mivanov)
Assignee | ||
Comment 4•9 years ago
|
||
(In reply to Max Ivanov[:MaxIvanov] from comment #3)
> Please notice that happens only
> when you get the Homescreen for the first time after restarting your phone.
Yup, I realize that. I've restarted several times but unfortunately wasn't able to get a repro.
Reporter | ||
Comment 5•9 years ago
|
||
Just reproduced three times in a row on both Aries and Flame.
https://youtu.be/DYXvz7Ae220
Assignee | ||
Comment 6•9 years ago
|
||
I'm not doubting you :) There must be some difference between our setups that we're not realizing is significant.
Anyways, perhaps I can figure out the problem without reproducing it myself by looking at some relevant logging. Could I get you to do the following:
1) In the Settings app, under "Developer", check "Dump Layers Tree"
2) Restart the phone
3) Reproduce the problem
4) Upload the entire output of "adb logcat" from the run of the
phone that reproduced the problem
Thanks!
Flags: needinfo?(mivanov)
Reporter | ||
Comment 7•9 years ago
|
||
Flags: needinfo?(mivanov)
Updated•9 years ago
|
QA Whiteboard: [QAnalyst-Triage?] → [QAnalyst-Triage-]
Flags: needinfo?(ktucker) → needinfo?(mivanov)
Reporter | ||
Comment 8•9 years ago
|
||
This issue also happens on Aries 2.5 and Flame 2.5
Homescreen will stuck and not returns to the initial state
Device: Aries 2.5
Build ID: 20160119122116
Gaia: 184523b202608f24e01cda720370de3ee7c5b8c3
Gecko: ea1b75e4b851d242182ef0c8a1ade5eb38b2c00f
Gonk: a19052e4389c3ae2d8fc3e7a74a475401baacc56
Version: 44.0 (2.5)
Firmware Version: D5803_23.1.A.1.28_NCB.ftf
User Agent: Mozilla/5.0 (Mobile; rv:44.0) Gecko/44.0 Firefox/44.0
Device: Flame 2.5
Build ID: 20160119121056
Gaia: 184523b202608f24e01cda720370de3ee7c5b8c3
Gecko: ea1b75e4b851d242182ef0c8a1ade5eb38b2c00f
Gonk: 205ac4204bbbb2098a8046444acba551ba5dc75a
Version: 44.0 (2.5)
Firmware Version: v18D
User Agent: Mozilla/5.0 (Mobile; rv:44.0) Gecko/44.0 Firefox/44.0
Flags: needinfo?(mivanov)
Assignee | ||
Comment 9•9 years ago
|
||
(In reply to Max Ivanov[:MaxIvanov] from comment #7)
> Created attachment 8709461 [details]
> logs.txt
Thanks for the logs!
I had a look at them, and while they didn't provide any direct indication of what's going wrong, they confirmed that the overscrolled APZC is an ancestor of the event-target APZC. I then reviewed previous stuck-in-overscroll bugs and inspected the relevant parts of the code with an eye for how we might get stuck in such a setup, and I found two scenarios where we can still get stuck. Neither of them match the STR shown in the video exactly, but it's possible that fixing these scenarios fixes that as well:
Both scenarios involve:
- a finger going down
- panning into overscroll
- the finger being lifted so as to start an overscroll animation
- the finger going back down to interrupt the overscroll animation
and enter the TOUCHING state while still overscroll
- importantly, the finger NOT moving enough to progress to the
panning state
Starting from this common initial setup, the scenarios are:
1) The finger is lifted again while we're still in the TOUCHING state.
In this case, AsyncPanZoomController::OnTouchEnd() calls
SnapBackIfOverscrolled(), but if the overscrolled APZC is an
ancestor of the event-target APZC, that will not be snapped back.
The solution, naturally, is to call
OverscrollHandoffChain::SnapBackOverscrolledApzc instead.
2) A second finger goes down while we're still in the TOUCHING state.
In this case, the "are we panned into overscroll" check in
APZCTreeManager::ProcessTouchInput() fails (by design), the
event-target APZC changes to the common-ancestor APZC of the
targets of the two fingers, and we enter the PINCHING state in the
new target APZC.
In this case, we rely on InputQueue::UpdateActiveApzc() calling
AsyncPanZoomController::ResetTouchInputState() to clear the
overscroll, but again this does not clear the overscroll on an
ancestor APZC.
I'm going to fix these scenarios, first because they're bugs in their own right, and second in the hope that they fix the original STR in this bug.
Assignee: nobody → botond
Assignee | ||
Comment 10•9 years ago
|
||
Review commit: https://reviewboard.mozilla.org/r/31695/diff/#index_header
See other reviews: https://reviewboard.mozilla.org/r/31695/
Attachment #8710223 -
Flags: review?(bugmail.mozilla)
Assignee | ||
Comment 11•9 years ago
|
||
Review commit: https://reviewboard.mozilla.org/r/31697/diff/#index_header
See other reviews: https://reviewboard.mozilla.org/r/31697/
Attachment #8710224 -
Flags: review?(bugmail.mozilla)
Assignee | ||
Comment 12•9 years ago
|
||
Review commit: https://reviewboard.mozilla.org/r/31699/diff/#index_header
See other reviews: https://reviewboard.mozilla.org/r/31699/
Attachment #8710225 -
Flags: review?(bugmail.mozilla)
Assignee | ||
Comment 13•9 years ago
|
||
Review commit: https://reviewboard.mozilla.org/r/31701/diff/#index_header
See other reviews: https://reviewboard.mozilla.org/r/31701/
Attachment #8710226 -
Flags: review?(bugmail.mozilla)
Assignee | ||
Comment 14•9 years ago
|
||
The first patch renames APZCOverscrollHandoffTester to APZCScrollHandoffTester, to clarify that it's used for testing various scroll handoff scenarios, not just scenarios involving overscroll ("overscroll handoff" was a term we used for "scroll handoff" before "overscrolling" was a thing).
The second patch is a minor refactoring to gtest code that I've been meaning to do for a while.
The third and fourth patches contain a fix and a test for the first and second scenarios described in comment 9, respectively.
Assignee | ||
Comment 15•9 years ago
|
||
Comment 16•9 years ago
|
||
Comment on attachment 8710223 [details]
MozReview Request: Bug 1240202 - Rename APZOverscrollHandoffTester to APZScrollHandoffTester. r=kats
https://reviewboard.mozilla.org/r/31695/#review28493
Attachment #8710223 -
Flags: review?(bugmail.mozilla) → review+
Comment 17•9 years ago
|
||
Comment on attachment 8710224 [details]
MozReview Request: Bug 1240202 - Change input event generation utilities used by APZ gtests to take points instead of loose coordinates. r=kats
https://reviewboard.mozilla.org/r/31697/#review28497
Nice, thanks!
Attachment #8710224 -
Flags: review?(bugmail.mozilla) → review+
Comment 18•9 years ago
|
||
Comment on attachment 8710225 [details]
MozReview Request: Bug 1240202 - Avoid getting stuck in overscroll when the screen is tapped during an overscroll animation. r=kats
https://reviewboard.mozilla.org/r/31699/#review28499
Attachment #8710225 -
Flags: review?(bugmail.mozilla) → review+
Comment 19•9 years ago
|
||
Comment on attachment 8710226 [details]
MozReview Request: Bug 1240202 - Avoid getting stuck in overscroll when a second finger goes down while overscrolled and in the TOUCHING state. r=kats
https://reviewboard.mozilla.org/r/31701/#review28503
::: gfx/layers/apz/test/gtest/TestScrollHandoff.cpp:333
(Diff revision 1)
> + // will not ingore the second finger, instead entering the
s/ingore/ignore/
::: gfx/layers/apz/test/gtest/TestScrollHandoff.cpp:338
(Diff revision 1)
> + secondFingerDown.mTouches.AppendElement(SingleTouchData(1, ScreenIntPoint(10, 90), ScreenSize(0, 0), 0, 0));
For input consistency make the first touch be at (10,90) and the second touch at (10,80). Otherwise it will look like the first finger moved from (10,90) to (10,80) while the second finger was added at (10,90).
Attachment #8710226 -
Flags: review?(bugmail.mozilla) → review+
Assignee | ||
Comment 21•9 years ago
|
||
(In reply to Botond Ballo [:botond] from comment #15)
> https://treeherder.mozilla.org/#/jobs?repo=try&revision=f77f3a05ee43
I accidentally pushed this to Try while having unrelated patches (like the patch for bug 1231538) applied as well, which are likely what's causing the various test failures.
Trying again with just this patch, including addressing review comments:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=b1be37e74603
Assignee | ||
Comment 22•9 years ago
|
||
(In reply to Botond Ballo [:botond] from comment #21)
> Trying again with just this patch, including addressing review comments:
>
> https://treeherder.mozilla.org/#/jobs?repo=try&revision=b1be37e74603
Looking much better. Landing.
Comment 23•9 years ago
|
||
Comment 24•9 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/e0bc32b37860
https://hg.mozilla.org/mozilla-central/rev/28db0fc71ad1
https://hg.mozilla.org/mozilla-central/rev/984d3e2dc813
https://hg.mozilla.org/mozilla-central/rev/e1ed78869df7
Status: NEW → RESOLVED
Closed: 9 years ago
status-firefox46:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla46
You need to log in
before you can comment on or make changes to this bug.
Description
•