Closed Bug 983202 Opened 10 years ago Closed 10 years ago

Scrolling on CNN ceases to work, content does not repaint; URL bar scrolls off-screen

Categories

(Firefox for Android Graveyard :: General, defect)

ARM
Android
defect
Not set
major

Tracking

(fennec30+)

VERIFIED FIXED
Firefox 30
Tracking Status
fennec 30+ ---

People

(Reporter: cos_flaviu, Assigned: cwiiis)

References

Details

(Keywords: regression, reproducible)

Attachments

(1 file)

Environment: 
Device: Google Nexus 10 (Android 4.4.2);
Build: Nightly 30.0a1 (2014-03-13);

Steps to reproduce:
1. Load Firefox with a clean profile;
2. Go to cnn.com;
3. Wait until the page is loaded and scroll the page up and down. 

Expected result:
The page successfully scrolls up and down.

Actual result:
The page hangs and only the url bar scrolls up and down.

Notes:
Please check the video: https://www.youtube.com/watch?v=3vzK5LQdSns
I see this too on my Galaxy SIV Nightly (03/13). This is a major regression that needs a window.
Severity: normal → major
tracking-fennec: --- → ?
Summary: Cnn.com hangs after is loaded → Scrolling on CNN seizes to work, content stuck while URL scrolls off-screen
First round m-c

Last good revision: a62bde1d6efe (2014-02-13)
First bad revision: d275eebfae04 (2014-02-14)

Pushlog:

https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=a62bde1d6efe&tochange=d275eebfae04
Summary: Scrolling on CNN seizes to work, content stuck while URL scrolls off-screen → Scrolling on CNN ceases to work, content stuck while URL scrolls off-screen
Cwiiis, sounds like could be related to bug 982651
Assignee: nobody → chrislord.net
tracking-fennec: ? → 30+
Last good revision: 5d4ffa16f845
First bad revision: 2812fd3a3213
Pushlog:
https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=5d4ffa16f845&tochange=2812fd3a3213

bschouten@mozilla.com
Tue Feb 11 20:54:22 2014 +0000	2812fd3a3213	Bas Schouten — Bug 805406: Never draw directly to a window with Direct2D. r=jrmuizel

Beats me how Android is affected by that? Bas?
Blocks: 805406
Flags: needinfo?(bas)
Summary: Scrolling on CNN ceases to work, content stuck while URL scrolls off-screen → Scrolling on CNN ceases to work, content does not repaint; URL bar scrolls off-screen
(In reply to Aaron Train [:aaronmt] from comment #4)
> bschouten@mozilla.com
> Tue Feb 11 20:54:22 2014 +0000	2812fd3a3213	Bas Schouten — Bug 805406: Never
> draw directly to a window with Direct2D. r=jrmuizel
> 
> Beats me how Android is affected by that? Bas?

That code isn't even compiled on android. Can you double check your regression window?
Sorry was a mistake, in a new range I have

Last good revision: 8c7d4dddd104
First bad revision: 9ce7c3a70c13
Pushlog:
https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=8c7d4dddd104&tochange=9ce7c3a70c13

mwoodrow@mozilla.com
Tue Feb 11 04:58:44 2014 +0000	9ce7c3a70c13	Matt Woodrow — Bug 966679 - Follow-up to fix bustage on gcc 4.4, split Compose() into separate functions. CLOSED TREE
No longer blocks: 805406
Flags: needinfo?(bas)
n?mattwoodrow, going on comment #6.
Flags: needinfo?(matt.woodrow)
I am double checking the above too.
That part is a fairly trivial rename to avoid a compiler error on b2g. I'd be surprised if it caused a regression :)
Flags: needinfo?(matt.woodrow)
Issue above was in attempting to reproduce before entire page-load which was throwing me off from 'good' and 'bad' builds.

https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=74cbeb541d03&tochange=a523d5b55989

Will need bi-sect, Kevin or better yet, Graphics team take a look?
None of the changes in that range touch any of the files in gfx/
Even the pref changes look benign. There's nothing in that range that I think would cause this problem.
I'm with kats, none of those changes look like they have any relevance to something like this... I guess a profile would tell us what's going on, the compositor must be getting stuck if the url bar can still scroll but the page can't.

I can't promise I'll get the time to look at this by the end of tomorrow, but I'll try. If anyone has spare cycles, feel free to investigate.
Noticed that a mere device rotation will aleve the symptoms when one is in this state on CNN
We've been profiling, and there seems to be some weirdness with event/transaction handling when progressive rendering is enabled. Still looking into it. Explains somewhat why a rotation alleviates it though.
I also noticed that this happens when one attempts to scroll when the top 'Get CNN on Android' related banner appears but is not fully loaded. At least for me. If I wait until *everything* is done loading, everything appears to work fine.
Screen-record from my Nexus 5, today's Nightly build https://www.youtube.com/watch?v=t6z6jEI5JY8
Trying the range from comment 10, I found that even the earliest cset still reproduces the bug. I tried again using TBPL builds, and here's the range I came up with: https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=8bb30e0e4ddd&tochange=edd724161ab4
Looks like Aaron was only one changeset off back in comment 6. After a manual bisection, I can confirm that this was due to bug 966679.

The offending changeset: https://hg.mozilla.org/mozilla-central/rev/8c7d4dddd104
Blocks: 966679
Flags: needinfo?(matt.woodrow)
(In reply to Chris Lord [:cwiiis] from comment #16)
> We've been profiling, and there seems to be some weirdness with
> event/transaction handling when progressive rendering is enabled. Still
> looking into it. Explains somewhat why a rotation alleviates it though.

Can you keep looking at this Chris?

The changeset doesn't sound like it should cause any issues, we're just marking a layer as mutated on the client side. I can't see how that could possibly affect APZC, unless it's somehow tripping over an existing bug.
Flags: needinfo?(matt.woodrow) → needinfo?(chrislord.net)
(In reply to Matt Woodrow (:mattwoodrow) from comment #21)
> (In reply to Chris Lord [:cwiiis] from comment #16)
> > We've been profiling, and there seems to be some weirdness with
> > event/transaction handling when progressive rendering is enabled. Still
> > looking into it. Explains somewhat why a rotation alleviates it though.
> 
> Can you keep looking at this Chris?
> 
> The changeset doesn't sound like it should cause any issues, we're just
> marking a layer as mutated on the client side. I can't see how that could
> possibly affect APZC, unless it's somehow tripping over an existing bug.

I can confirm that rolling back all the patches in bug 966679 does fix this, and looking at them together, it does appear like they could affect repeated transactions. Seeing as you probably have a lot on your plate, I'll look at this, but it's worth noting that a backout does fix this.

Next I'll see if the identified hunk does indeed fix it alone, and why.
Flags: needinfo?(chrislord.net)
This fixes the issue for me, and I think this is why: The excess calls to Mutated were flooding IPC, especially when there are complex regions involved (which there always are with progressive updates) and the compositor was getting held up dealing with them (this is supported somewhat by the profiles we took and gdb).

I think this highlights a possible issue here though that progressive updates makes layer transactions quite a bit more expensive. But that's another issue for another day...
Attachment #8392097 - Flags: review?(matt.woodrow)
Attachment #8392097 - Flags: review?(matt.woodrow) → review+
Status: NEW → ASSIGNED
https://hg.mozilla.org/mozilla-central/rev/46c389bf27d9
Status: ASSIGNED → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 30
Status: RESOLVED → VERIFIED
Product: Firefox for Android → Firefox for Android Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: