Page MenuHomePhabricator

Opening many pages in succession breaks rendering
Closed, ResolvedPublic

Description

If I keep following links in pages, and go about 5 or 6 pages deep, the WebView stops rendering the page properly (random blank rectangles, or a completely blank page).

If I go "back" in the stack of pages, they start rendering properly again.


Version: Android (alpha)
Severity: major

Details

Reference
bz64762

Event Timeline

bzimport raised the priority of this task from to Needs Triage.Nov 22 2014, 3:08 AM
bzimport set Reference to bz64762.
bzimport added a subscriber: Unknown Object (MLST).

So the problem is that we don't kill PageViewFragments when they aren't shown on screen - we add fragments than replace them. The reason being that I'm unclear about the lifecycle of fragments when they are in the activity's backstack but not visible. Also problematic is maintaining scroll position in the backstack.

This ends up creating a lot of webviews! Terrible for our memory footprint and yes, this problem would happen. We need to figure out the lifecycle for those and handle 'back' properly.

I can't replicate this on my Nexus 7. I've clicked on about 30 links and everything's still working.

(In reply to Dan Garry from comment #2)

I can't replicate this on my Nexus 7. I've clicked on about 30 links and
everything's still working.

Er, I may have to take that back. Just as I submitted this comment, I clicked on another link and the screen went totally black.

I have the following devices, all of which exhibit this behavior after 6 pages:

Samsung Galaxy Note 2
Galaxy S3
Galaxy S4
Moto Droid

On my Nexus 7 it took around 35 pages for this to happen.

Change 131130 had a related patch set uploaded by Dbrant:
Hiding page fragment when obscured by a new page.

https://gerrit.wikimedia.org/r/131130

Change 131130 merged by jenkins-bot:
Hiding page fragment when obscured by a new page.

https://gerrit.wikimedia.org/r/131130