Closed Bug 791987 Opened 12 years ago Closed 5 years ago

Don't rely on extensions.ini to rebuild database

Categories

(Toolkit :: Add-ons Manager, defect)

defect
Not set
normal

Tracking

()

RESOLVED WONTFIX

People

(Reporter: Unfocused, Unassigned)

References

Details

Currently when we need to rebuild the database (due to corruption), we look at extensions.ini to find what extensions had been enabled. However, there are two cases when extensions.ini won't exist:
* There were no enabled extensions
* When its detected that the app has changed (such as directly after an app update)

The first possibility is mostly fine by itself, but the second possibility is awkward. Bug 297312 made it so extensions.ini is deleted when the app changes, and I think the reasoning there still holds. We could change the way nsAppRunner.cpp signals that to the Add-ons Manager (eg, via a pref), but the reasoning for bug 297312 was that we can't rely on the file locations for app-shipped extensions - therefore we'd be missing part of the data we want.

Instead, I want to look into using a pref, like we do for bootstrapped extensions: extensions.enabledAddons

While we're at it, the value of that pref could be changed to JSON. The current format of ID:VERSION,ID:VERSION,... is because that's what the crash reporter/telemetry wants. May as well make it something more reliable to parse (JSON), and convert as needed for crash reporter/telemetry.

As an added bonus, this would remove some IO on startup, for our worst-case-scenario.
Depends on: 793143
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.