Closed Bug 1051592 Opened 10 years ago Closed 10 years ago

Long pages have missing tiles and generally messed-up rendering

Categories

(Firefox for Android Graveyard :: Toolbar, defect)

34 Branch
Other
Android
defect
Not set
normal

Tracking

(fennec34+)

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

People

(Reporter: kats, Assigned: mattwoodrow)

References

Details

(Keywords: regression, reproducible)

Attachments

(4 files)

Attached image View at top of page
On a nexus 4 running today's nightly, load https://bugzilla.mozilla.org/show_bug.cgi?id=708765. Tiles are missing st the top of the page. If you scroll down to the bottom there are more tiles missing. Zooming in and out at this point makes the rendering even more screwy. See attached screenshots.

This doesn't seem to happen on Aurora so it's probably a recent regression.
tracking-fennec: --- → ?
I don't see this at all on my Nexus 5 with today (08/10)'s Nightly.
Inbound bisection range:

https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=326c91338df0&tochange=06b540d3667a

Let me know if you want me to do local builds to bisect further and/or have patches you want me to try.
Blocks: 1042423
Flags: needinfo?(matt.woodrow)
Unfortunately I can't reproduce this on my android device (galaxy s2).

It could be something to do with pixman's 16bit integers, and scrolling beyond that range, we've had similar bugs to that before.

If you could narrow it down to an individual changeset then I can try figure out what changed.
Flags: needinfo?(matt.woodrow)
(In reply to Matt Woodrow (:mattwoodrow) from comment #5)
> If you could narrow it down to an individual changeset then I can try figure
> out what changed.

The bug doesn't manifest with part 3, but at part 4 it starts happening. It really looks like tiles are just getting misplaced somehow. I suppose it might be related to pixman's 16bit integers but I'm not sure how the two would be connected.

(In reply to Aaron Train [:aaronmt] from comment #2)
> I don't see this at all on my Nexus 5 with today (08/10)'s Nightly.

One thing I noticed while bisecting on inbound is that this didn't happen on the new default bugzilla skin ("Mozilla") but it did happen on the Dusk skin that I'm using. i.e. I had to log in to bugzilla for my skin to be applied and the bug to manifest. Perhaps with the default skin the page is shorter and it doesn't run into this problem.
(In reply to Kartikaya Gupta (email:kats@mozilla.com) from comment #6)
> (In reply to Matt Woodrow (:mattwoodrow) from comment #5)
> > If you could narrow it down to an individual changeset then I can try figure
> > out what changed.
> 
> The bug doesn't manifest with part 3, but at part 4 it starts happening. It
> really looks like tiles are just getting misplaced somehow. I suppose it
> might be related to pixman's 16bit integers but I'm not sure how the two
> would be connected.
> 
> (In reply to Aaron Train [:aaronmt] from comment #2)
> > I don't see this at all on my Nexus 5 with today (08/10)'s Nightly.
> 
> One thing I noticed while bisecting on inbound is that this didn't happen on
> the new default bugzilla skin ("Mozilla") but it did happen on the Dusk skin
> that I'm using. i.e. I had to log in to bugzilla for my skin to be applied
> and the bug to manifest. Perhaps with the default skin the page is shorter
> and it doesn't run into this problem.

Aha. Thanks. I see this now on my GSGS5 (Nightly 08/11).
Keywords: reproducible
Cool, reproduces for me too now.
Android debug builds are not a pleasant experience.

This is a repeat of bug 1034593.

Cairo allocates a temporary mask surface internally when doing rounded rect clipping (which your theme uses).

My patch changed the clipping slightly and cairo ended up trying to allocate a surface the size of the entire document. This fails, and cairo goes into error state preventing anything else from happening during that update. The end result is we don't actually update tiles when this happens, so we end up with blank or stale content displayed (possibly from an unrelated spot due to tile recycling).

Nical, is there any reason why DrawTargetCairo can't just clip itself during the constructor? That avoids an invasive cairo change, but also stops us from being bitten by this again.
Assignee: nobody → matt.woodrow
Flags: needinfo?(nical.bugzilla)
Attachment #8471356 - Flags: review?(jmuizelaar)
Attachment #8471356 - Flags: review?(jmuizelaar) → review+
tracking-fennec: ? → 34+
https://hg.mozilla.org/mozilla-central/rev/c031275796fc
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 34
(In reply to Matt Woodrow (:mattwoodrow) from comment #9)
> Nical, is there any reason why DrawTargetCairo can't just clip itself during
> the constructor? That avoids an invasive cairo change, but also stops us
> from being bitten by this again.

Late answer, sorry. Yeah sounds good (and already landed anyway :) ).
Flags: needinfo?(nical.bugzilla)
\o/
Status: RESOLVED → VERIFIED
Oh! I just ran into this issue on another page in the latest Aurora build. See attached screenshot. It also occurs in current release Fennec, but not the latest nightly which includes this fix. I'm not sure if it was this fix that fixed it but that seems the most likely explanation. Given that, should this fix be uplifted? The page on which i saw it was https://github.com/git/git?files=1
Flags: needinfo?(matt.woodrow)
I'm not entirely sure. The symptoms look the same, which suggests some sort of cairo error.

My patch would at least log the cairo error to logcat, and fix it if it happens to be the same one.
Flags: needinfo?(matt.woodrow)
I did a try build [1] with the patch from this bug on aurora and it did fix the problem. I think we should uplift this patch at least to aurora if not beta.

Kevin, not sure why you flagged regressionwindow-wanted here but it may not be necessary.

[1] https://tbpl.mozilla.org/?tree=Try&rev=b55f08b56738
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: