Bug 684121 - Don't access Services.appinfo at import time r?rnewman draft
authorLeni Kadali <lenikmutungi@gmail.com>
Sun, 13 Aug 2017 05:08:48 +0300
changeset 645648 230ce9f98e5c6f992f35025b2e28c8e3f9f03e1f
parent 614808 dcfb58fcb6dd8f6474eed6520ba6272dedded393
child 725952 4e1976f8c61c8bb57437469d035ce638050d448d
push id73812
push userbmo:lenikmutungi@gmail.com
push dateSun, 13 Aug 2017 19:05:05 +0000
reviewersrnewman
bugs684121
milestone56.0a1
Bug 684121 - Don't access Services.appinfo at import time r?rnewman As stated by Philipp, the prefs engine (PREFS_GUID) accesses Services.appinfo at import time. Changed code to use a lazy getter on the global object instead. changed services/sync/modules/engines/prefs.js MozReview-Commit-ID: 1MAGKM9r1OM
services/sync/modules/engines/prefs.js
--- a/services/sync/modules/engines/prefs.js
+++ b/services/sync/modules/engines/prefs.js
@@ -17,17 +17,18 @@ Cu.import("resource://services-sync/engi
 Cu.import("resource://services-sync/record.js");
 Cu.import("resource://services-sync/util.js");
 Cu.import("resource://services-sync/constants.js");
 Cu.import("resource://services-common/utils.js");
 
 XPCOMUtils.defineLazyModuleGetter(this, "LightweightThemeManager",
                           "resource://gre/modules/LightweightThemeManager.jsm");
 
-const PREFS_GUID = CommonUtils.encodeBase64URL(Services.appinfo.ID);
+XPCOMUtils.defineLazyGetter(this, "PREFS_GUID",
+                            () => CommonUtils.encodeBase64URL(Services.appinfo.ID));
 
 this.PrefRec = function PrefRec(collection, id) {
   CryptoWrapper.call(this, collection, id);
 }
 PrefRec.prototype = {
   __proto__: CryptoWrapper.prototype,
   _logName: "Sync.Record.Pref",
 };