Closed Bug 931918 Opened 12 years ago Closed 12 years ago

Don't write to the favicon DB on startup

Categories

(Firefox for Android Graveyard :: General, defect)

27 Branch
All
Android
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED DUPLICATE of bug 926430

People

(Reporter: rnewman, Assigned: rnewman)

References

Details

Working on Bug 926430, I found that we write to BrowserProvider, even for a clean profile. Every time we launch. Update: content://org.mozilla.fennec_rnewman.db.browser/favicons?profile=default&show_deleted=1&insert_if_needed=true
Here's the stack: org.mozilla.gecko.db.BrowserProvider.update(BrowserProvider.java:2407) android.content.ContentProvider$Transport.update(ContentProvider.java:228) android.content.ContentResolver.update(ContentResolver.java:728) org.mozilla.gecko.db.LocalBrowserDB.updateFaviconForUrl(LocalBrowserDB.java:778) org.mozilla.gecko.db.BrowserDB.updateFaviconForUrl(BrowserDB.java:250) org.mozilla.gecko.favicons.LoadFaviconTask.saveFaviconToDb(LoadFaviconTask.java:103) org.mozilla.gecko.favicons.LoadFaviconTask.doInBackground(LoadFaviconTask.java:305) org.mozilla.gecko.favicons.LoadFaviconTask.doInBackground(LoadFaviconTask.java:43) org.mozilla.gecko.util.UiAsyncTask$BackgroundTaskRunnable.run(UiAsyncTask.java:48)
Assignee: nobody → rnewman
Status: NEW → ASSIGNED
Notably, chaining is apparently not working correctly; see dupe fetches with different Bitmaps: I/GeckoXXX( 8685): Fetch page : http://support.mozilla.org/en-US/products/mobile , null I/GeckoXXX( 8685): Loading http://support.mozilla.org/favicon.ico I/GeckoXXX( 8685): Fetching favicon for URL http://support.mozilla.org/favicon.ico I/GeckoXXX( 8685): getFaviconForUrl(http://support.mozilla.org/favicon.ico) succeeded. Decoding. I/GeckoXXX( 8685): loadFaviconFromDb returned android.graphics.Bitmap@4068d518 for http://support.mozilla.org/favicon.ico I/GeckoXXX( 8685): Fetch page : https://addons.mozilla.org/en-US/android/ , null D/FaviconCache( 8685): Favicon cache fullness: 9216/524288 I/GeckoTopSitesPage( 8685): XXX Favicon loaded for View org.mozilla.gecko.home.TopSitesGridItemView@4063cb68 I/GeckoXXX( 8685): Loading https://addons.mozilla.org/favicon.ico I/GeckoXXX( 8685): Fetching favicon for URL https://addons.mozilla.org/favicon.ico I/GeckoXXX( 8685): getFaviconForUrl(https://addons.mozilla.org/favicon.ico) succeeded. Decoding. I/GeckoXXX( 8685): loadFaviconFromDb returned android.graphics.Bitmap@4059e5a8 for https://addons.mozilla.org/favicon.ico I/GeckoXXX( 8685): Fetch page : http://support.mozilla.org/en-US/products/mobile , null I/GeckoXXX( 8685): Loading http://support.mozilla.org/favicon.ico I/GeckoXXX( 8685): Fetching favicon for URL http://support.mozilla.org/favicon.ico I/Gecko:MemoryInfoDumper( 8685): Fifo watcher disabled via pref. I/GeckoTopSitesPage( 8685): XXX newView(0) I/GeckoTopSitesPage( 8685): XXX bindView(org.mozilla.gecko.home.TopSitesGridItemView@405a0638, after last = false, 0) I/GeckoTopSitesPage( 8685): XXX View org.mozilla.gecko.home.TopSitesGridItemView@405a0638 showing for (0) URL http://support.mozilla.org/en-US/products/mobile I/GeckoXXX( 8685): getFaviconForUrl(http://support.mozilla.org/favicon.ico) succeeded. Decoding. I/GeckoXXX( 8685): loadFaviconFromDb returned android.graphics.Bitmap@405a4680 for http://support.mozilla.org/favicon.ico I/GeckoXXX( 8685): Fetch page : http://support.mozilla.org/en-US/products/mobile , null I/GeckoXXX( 8685): Fetch page : https://addons.mozilla.org/en-US/android/ , null
Blocks: 932015
What's happening here is that we're loading the Fennec branded favicon from the jar, and stuffing it into the DB. Filed Bug 932015 to not do that. Apparently we are also *failing* to load it from the DB, because I see the DB write on every launch! I plan to use this bug to: * Don't attempt to write JAR-sourced icons into the DB. * Log these fetches more usefully. This is particularly troublesome because we can't print that path directly! (The log line simply never appears.) * Clean up some observed oddities in the code. * If I can, address the duplicate loading that we're seeing. * Ensure that we're chaining correctly -- the duplicate loading should be returning the same Bitmap instance.
Eliminating the favicon write eliminates the second page refresh \o/
And the repeat-icon problem is due to view recycling; the favicon callback is called when the view has already been assigned to something else. Now to figure out a tidier way to implement affinity...
Component: Data Providers → General
Duping this forward to the thumbnail bug, 'cos I used a part number sequence for all the work together.
Status: ASSIGNED → RESOLVED
Closed: 12 years ago
Resolution: --- → DUPLICATE
Product: Firefox for Android → Firefox for Android Graveyard
You need to log in before you can comment on or make changes to this bug.