Going back from about:home updates the location bar and session history, but doesn't display the content of the page loaded before about:home.
1. Open www.mozilla.org in a new tab.
2. Click the url bar, open about:home.
3. Press the back key.
Expected result: back to www.mozilla.org
Actual result: www.mozilla.org is displayed in the url bar, but about:home in the content.
4. Click the url bar, open bugzilla.mozilla.org.
5. Press the back key.
Result: You're back on www.mozilla.org from step 1.
So after step 3, we were indeed back on www.mozilla.org, as the url bar suggested, and it just didn't display the content of it.
Created attachment 578492 [details] [diff] [review]
The problem here was that hideAboutHome was not being called when going back from about:home to the previous page in the session history.
So I changed the code to use onLocationChange (handleLocationChange) as the place to show and hide the native about:home page. locationChange is always fired, even when loading from session history. So we check to see if we are loading into the active tab and we show if about:home and hide otherwise. Doing the show here also allows us to completely remove the "AboutHome:Show" message and code from aboutHome.xhtml
I tested this patch:
* load about:home, load google.com, load about:home (it showed and hid correctly)
* After loading the above, I went back, back and forward, forward (it showed and hid correctly)
* With an about:home open in a tab, I then added a new tab with google.com (it hid correctly)
* I then switched back to the about:home tab (it showed correctly)
*** Bug 707163 has been marked as a duplicate of this bug. ***
Retested bug with:
Mozilla/5.0 (Android; Linux arm7l; rv:11.0a1) Gecko/20111205 Firefox/11.0a1 Fennec/11.0a1
Device: HTC Desire Z (Android 2.3)
Back from "about:home" is working properly.