Closed
Bug 1067720
Opened 10 years ago
Closed 9 years ago
[verticalhome] Power off at language selection in FTU for the 1st time may result in incorrect homescreen icon display
Categories
(Firefox OS Graveyard :: Gaia::Homescreen, defect)
Tracking
(Not tracked)
RESOLVED
WONTFIX
People
(Reporter: yifan, Unassigned)
References
Details
Attachments
(1 file)
The root cause is in apps/verticalhome/js/stores/item.js . This actually has nothing to do with FTU. The bug happens when the 1st time homescreen is initilaizing IndexedDB. There is a flag 'emptyDB' which is used for checking if the IndexedDB of name 'homescreen' exists. The steps for the first time homescreen is launching are as follows: 1. open IndexedDB (emptyDB is false) 2. onupgradeneeded event (if event.oldversion is 0, set emptyDB to true and create an objectStore named 'grid') 3. onsuccess event (if emptyDB is true, loadInitialState) If power is off between step 2 and 3, when power is on the next time 'loadInitialState' might not be running since in the onupgradeneeded event the event.oldversion > 0 and the emptyDB flag will never be true.
Reporter | ||
Comment 1•10 years ago
|
||
The flag in verticalhome is 'isEmpty'.
Reporter | ||
Comment 2•10 years ago
|
||
Added a homescreen IndexedDB check flag using asyncStorage to prevent grid initialization failure due to unexpected power off.
Attachment #8490563 -
Flags: review?(crdlc)
Comment 3•10 years ago
|
||
Comment on attachment 8490563 [details] [review] pull request Yi-Fan, After analyzing the code we could have a race condition if the configuration-ready event is received while we are getting the flag from indexedDB. Be careful with the configuration because once this was loaded the first time, it won't be loaded anymore. See: https://github.com/begeeben/gaia/blob/1067720_power_off_at_lanaguage/apps/verticalhome/js/stores/item.js#L196 https://github.com/mozilla-b2g/gaia/blob/master/apps/verticalhome/js/app.js#L75 Kevin, I would like you take a look at this patch too. Thanks
Attachment #8490563 -
Flags: review?(crdlc) → review?(kgrandon)
Reporter | ||
Comment 4•10 years ago
|
||
Thank you Cristian for the check! Updated the fix.
Comment 5•10 years ago
|
||
Comment on attachment 8490563 [details] [review] pull request Adding another async storage key is not really ideal here. Yi-fan - instead do you think it would be an option to check on the currently stored data instead? Maybe either checking the count of IDB records, or the verticalPreferences storage?
Attachment #8490563 -
Flags: review?(kgrandon)
Flags: needinfo?(yliao)
Reporter | ||
Comment 6•10 years ago
|
||
Feel the same for the asyncStorage work around. I am not sure how to check the IDB records after a user alters his homescreen icons, the records could be either incremented or decreased, right? I think creating object stores and saving configuration data in a single IDB transaction might be the proper way, the object stores won't be created if interrupted by power failures. Then we only need to check if the object stores are missing on verticalhome started, probably don't need a flag for it at all.
Flags: needinfo?(yliao)
Comment 7•9 years ago
|
||
Mass update: Resolve wontfix all issues with legacy homescreens. As of 2.6 we have a new homescreen and having these issues open is confusing. All issues will block bug 1231115 so we can use that to re-visit any of these if needed.
You need to log in
before you can comment on or make changes to this bug.
Description
•