Bug 1356507 - Workaround defineLazyServiceGetter() as described in bug 1361929, r=mikedeboer draft
authorTimothy Guan-tin Chien <timdream@gmail.com>
Thu, 04 May 2017 11:33:16 +0800
changeset 572392 047055e72891bc82963838b2684534004cb8bc65
parent 571853 1c85d3ac5956fbe6c95de7ff60bca4d468b02539
child 627008 cd1a236ae90eab060b558db0e6795ca3d3275b52
push id57058
push userbmo:timdream@gmail.com
push dateThu, 04 May 2017 03:35:32 +0000
reviewersmikedeboer
bugs1356507, 1361929
milestone55.0a1
Bug 1356507 - Workaround defineLazyServiceGetter() as described in bug 1361929, r=mikedeboer MozReview-Commit-ID: Ixwr8RNwJzJ
browser/components/preferences/in-content/tests/browser_advanced_update.js
--- a/browser/components/preferences/in-content/tests/browser_advanced_update.js
+++ b/browser/components/preferences/in-content/tests/browser_advanced_update.js
@@ -105,24 +105,29 @@ add_task(function*() {
   ok(!enableSearchUpdate.checked, "Ensure search updates are disabled");
   Services.prefs.setBoolPref("browser.search.update", true);
   ok(enableSearchUpdate.checked, "Ensure search updates are enabled");
 
   gBrowser.removeCurrentTab();
 });
 
 add_task(function*() {
-  mockUpdateManager.register();
-
   yield openPreferencesViaOpenPreferencesAPI("advanced", { leaveOpen: true });
   let doc = gBrowser.selectedBrowser.contentDocument;
 
   let showBtn = doc.getElementById("showUpdateHistory");
   let dialogOverlay = doc.getElementById("dialogOverlay");
 
+  // XXX: For unknown reasons, this mock cannot be loaded by
+  // XPCOMUtils.defineLazyServiceGetter() called in aboutDialog-appUpdater.js.
+  // It is registered here so that we could assert update history subdialog
+  // without stopping the preferences advanced pane from loading.
+  // See bug 1361929.
+  mockUpdateManager.register();
+
   // Test the dialog window opens
   is(dialogOverlay.style.visibility, "", "The dialog should be invisible");
   showBtn.doCommand();
   yield promiseLoadSubDialog("chrome://mozapps/content/update/history.xul");
   is(dialogOverlay.style.visibility, "visible", "The dialog should be visible");
 
   let dialogFrame = doc.getElementById("dialogFrame");
   let frameDoc = dialogFrame.contentDocument;