Closed Bug 869413 Opened 7 years ago Closed 7 years ago

About:home flickers in and out when loading a new page

Categories

(Firefox for Android :: General, defect)

x86
macOS
defect
Not set
normal

Tracking

()

VERIFIED FIXED
Firefox 24
Tracking Status
firefox21 --- unaffected
firefox22 --- verified
firefox23 --- verified
firefox24 --- verified

People

(Reporter: ibarlow, Assigned: bnicholson)

References

Details

Attachments

(1 file)

In the last week or so on Nightly, I've noticed that if I go to a new page from about:home, the page will go blank when it starts loading, but then flicker back and forth between the blank page and about:home until the new page is finally loaded. It's pretty funky looking.
I just tried reproducing this by tapping on a top site, and by loading a URL from the awesomescreen, and I didn't see this happen in either case. Does this happen all the time for you, or are there more detailed STR?
Brian, any clue?
Flags: needinfo?(bnicholson)
Hm. Now I can reproduce it if I come in by clicking a link in another app, after the browser has been left unused for a while. Maybe it has something to do with us being killed in the background?
I saw this happen last night, but my phone rebooted itself (sigh, Android) when I tried to get a log. I believe it happened when I clicked a link from Twitter, also when the app was killed in the background.

(As an aside, I also saw bug 868692 at the same time, it seems like this restore logic could use some love.)
When the BACKGROUND flag was added in bug 844816, it changed the selected argument to be "!background" instead of "!delayLoad" (http://hg.mozilla.org/mozilla-central/file/1d7c615b4b62/mobile/android/base/Tabs.java#l640). This means that any code that calls Tabs#loadUrl() without the BACKGROUND flag will become selected, even if the DELAY_LOAD flag is given. Since all session restore tabs are restored using DELAY_LOAD but not BACKGROUND, all tabs are selected at startup as they're being restored, which is pretty terrible.

We could change the session restore code to use both DELAY_LOAD and BACKGROUND flags, or we could change DELAY_LOAD to always imply BACKGROUND even if it's not given as a flag. I chose the latter because I don't think it makes sense to ever have a DELAY_LOAD tab be a selected one.
Assignee: nobody → bnicholson
Status: NEW → ASSIGNED
Attachment #748320 - Flags: review?(mark.finkle)
Flags: needinfo?(bnicholson)
Blocks: 844816
Duplicate of this bug: 868692
Comment on attachment 748320 [details] [diff] [review]
Put all delayLoad tabs in the background

Makes sense
Attachment #748320 - Flags: review?(mark.finkle) → review+
Comment on attachment 748320 [details] [diff] [review]
Put all delayLoad tabs in the background

[Approval Request Comment]
Bug caused by (feature/regressing bug #): bug 844816
User impact if declined: broken session restore behavior
Testing completed (on m-c, etc.): locally
Risk to taking this patch (and alternatives if risky): very low
String or IDL/UUID changes made by this patch: none
Attachment #748320 - Flags: approval-mozilla-beta?
Attachment #748320 - Flags: approval-mozilla-aurora?
https://hg.mozilla.org/mozilla-central/rev/9b1c7a77c6c3
Status: ASSIGNED → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 24
Attachment #748320 - Flags: approval-mozilla-beta?
Attachment #748320 - Flags: approval-mozilla-beta+
Attachment #748320 - Flags: approval-mozilla-aurora?
Attachment #748320 - Flags: approval-mozilla-aurora+
Verified fixed on:
Build: Firefox for Android 24.0a1 (2013-05-23)/Firefox for Android 22.0b2(2013-05-22)/Firefox for Android 23.0a2(2013-05-24)
Device: Samsung Galaxy Tab
OS: Android 4.0.4
You need to log in before you can comment on or make changes to this bug.