зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1350064 - test that updated system add-ons are reset on app update r=aswan
MozReview-Commit-ID: BbUtIMfCDXZ --HG-- extra : rebase_source : f8204c72b482f50d93c0f3e8878cc4fe83ec29a6
This commit is contained in:
Родитель
d140502cb4
Коммит
f7d614dd1b
|
@ -8660,8 +8660,6 @@ Object.assign(SystemAddonInstallLocation.prototype, {
|
||||||
* Resets the add-on set so on the next startup the default set will be used.
|
* Resets the add-on set so on the next startup the default set will be used.
|
||||||
*/
|
*/
|
||||||
resetAddonSet() {
|
resetAddonSet() {
|
||||||
|
|
||||||
if (this._addonSet) {
|
|
||||||
logger.info("Removing all system add-on upgrades.");
|
logger.info("Removing all system add-on upgrades.");
|
||||||
|
|
||||||
// remove everything from the pref first, if uninstall
|
// remove everything from the pref first, if uninstall
|
||||||
|
@ -8669,6 +8667,14 @@ Object.assign(SystemAddonInstallLocation.prototype, {
|
||||||
// next restart.
|
// next restart.
|
||||||
this._saveAddonSet({ schema: 1, addons: {} });
|
this._saveAddonSet({ schema: 1, addons: {} });
|
||||||
|
|
||||||
|
// If this is running at app startup, the pref being cleared
|
||||||
|
// will cause later stages of startup to notice that the
|
||||||
|
// old updates are now gone.
|
||||||
|
//
|
||||||
|
// Updates will only be explicitly uninstalled if they are
|
||||||
|
// removed restartlessly, for instance if they are no longer
|
||||||
|
// part of the latest update set.
|
||||||
|
if (this._addonSet) {
|
||||||
for (let id of Object.keys(this._addonSet.addons)) {
|
for (let id of Object.keys(this._addonSet.addons)) {
|
||||||
AddonManager.getAddonByID(id, addon => {
|
AddonManager.getAddonByID(id, addon => {
|
||||||
if (addon) {
|
if (addon) {
|
||||||
|
|
|
@ -359,6 +359,10 @@ add_task(function* test_bad_app_cert() {
|
||||||
distroDir.leafName = "app3";
|
distroDir.leafName = "app3";
|
||||||
startupManager();
|
startupManager();
|
||||||
|
|
||||||
|
// Since we updated the app version, the system addon set should be reset as well.
|
||||||
|
let addonSet = Services.prefs.getCharPref(PREF_SYSTEM_ADDON_SET);
|
||||||
|
do_check_eq(addonSet, `{"schema":1,"addons":{}}`);
|
||||||
|
|
||||||
// Add-on will still be present
|
// Add-on will still be present
|
||||||
let addon = yield promiseAddonByID("system1@tests.mozilla.org");
|
let addon = yield promiseAddonByID("system1@tests.mozilla.org");
|
||||||
do_check_neq(addon, null);
|
do_check_neq(addon, null);
|
||||||
|
@ -413,3 +417,4 @@ add_task(function* test_updated() {
|
||||||
|
|
||||||
yield promiseShutdownManager();
|
yield promiseShutdownManager();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче