Bug 1315013 - part 1, remove unnecessary double-slash comments that don't add value and look out of place with the spaced-comment eslint rule. r?mossop draft
authorJared Wein <jwein@mozilla.com>
Thu, 03 Nov 2016 14:42:06 -0400
changeset 433460 73e370365a58536a0d7efbc92c659c46302ed415
parent 431996 2c773b97167252cedcba0be0c7af9d4cab192ef5
child 433461 e34d728090dc3559bdac3bc19a6135566263d167
child 433462 ff7e6d00bd5b5cce1a785ad23fe49ff688f3ff29
push id34586
push userbmo:jaws@mozilla.com
push dateThu, 03 Nov 2016 19:00:51 +0000
reviewersmossop
bugs1315013
milestone52.0a1
Bug 1315013 - part 1, remove unnecessary double-slash comments that don't add value and look out of place with the spaced-comment eslint rule. r?mossop MozReview-Commit-ID: HIUTSdkXxbY
browser/base/content/browser-places.js
browser/base/content/browser.js
browser/base/content/test/general/browser_aboutAccounts.js
browser/base/content/test/general/browser_aboutSupport_newtab_security_state.js
browser/base/content/test/general/browser_fxa_oauth.js
browser/base/content/test/general/browser_gZipOfflineChild.js
browser/base/content/test/general/browser_sanitizeDialog.js
browser/base/content/test/general/browser_scope.js
browser/base/content/test/general/browser_tabs_owner.js
browser/base/content/test/social/browser_social_activation.js
browser/components/migration/IEProfileMigrator.js
browser/components/migration/MSMigrationUtils.jsm
browser/components/places/PlacesUIUtils.jsm
browser/components/places/tests/browser/browser_library_search.js
browser/components/places/tests/browser/browser_sort_in_library.js
browser/modules/WindowsJumpLists.jsm
browser/modules/WindowsPreviewPerTab.jsm
browser/tools/mozscreenshots/mozscreenshots/extension/Screenshot.jsm
browser/tools/mozscreenshots/mozscreenshots/extension/TestRunner.jsm
browser/tools/mozscreenshots/mozscreenshots/extension/configurations/Toolbars.jsm
devtools/client/commandline/test/helpers.js
devtools/client/debugger/test/mochitest/browser_dbg_breakpoints-contextmenu.js
devtools/client/framework/test/browser_devtools_api.js
devtools/client/inspector/test/browser_inspector_highlighter-comments.js
devtools/client/projecteditor/test/browser_projecteditor_editing_01.js
devtools/client/projecteditor/test/browser_projecteditor_editors_image.js
devtools/client/projecteditor/test/browser_projecteditor_immediate_destroy.js
devtools/client/projecteditor/test/browser_projecteditor_saveall.js
devtools/client/projecteditor/test/browser_projecteditor_tree_selection_02.js
devtools/client/responsivedesign/test/browser_responsive_cmd.js
devtools/client/shared/test/browser_telemetry_toolboxtabs_shadereditor.js
devtools/client/shared/test/browser_toolbar_tooltip.js
devtools/client/webaudioeditor/test/browser_wa_first-run.js
devtools/client/webaudioeditor/test/browser_wa_reset-01.js
devtools/client/webaudioeditor/test/browser_wa_reset-04.js
devtools/client/webconsole/utils.js
devtools/client/webconsole/webconsole.js
devtools/server/actors/utils/webconsole-utils.js
devtools/server/actors/webconsole.js
devtools/shared/webconsole/network-monitor.js
storage/test/unit/head_storage.js
storage/test/unit/test_js_helpers.js
storage/test/unit/test_locale_collation.js
storage/test/unit/test_sqlite_secure_delete.js
storage/test/unit/test_statement_executeAsync.js
storage/test/unit/test_storage_connection.js
toolkit/components/contentprefs/tests/unit/test_contentPrefs.js
toolkit/components/downloads/nsDownloadManagerUI.js
toolkit/components/downloads/test/unit/tail_download_manager.js
toolkit/components/downloads/test/unit/test_app_rep_maclinux.js
toolkit/components/downloads/test/unit/test_app_rep_windows.js
toolkit/components/jsdownloads/src/DownloadCore.jsm
toolkit/components/jsdownloads/src/DownloadImport.jsm
toolkit/components/jsdownloads/src/DownloadLegacy.js
toolkit/components/jsdownloads/src/DownloadList.jsm
toolkit/components/jsdownloads/src/DownloadStore.jsm
toolkit/components/jsdownloads/src/DownloadUIHelper.jsm
toolkit/components/jsdownloads/src/Downloads.jsm
toolkit/components/jsdownloads/test/browser/head.js
toolkit/components/jsdownloads/test/unit/common_test_Download.js
toolkit/components/jsdownloads/test/unit/head.js
toolkit/components/jsdownloads/test/unit/test_DownloadCore.js
toolkit/components/jsdownloads/test/unit/test_DownloadImport.js
toolkit/components/jsdownloads/test/unit/test_DownloadIntegration.js
toolkit/components/jsdownloads/test/unit/test_DownloadLegacy.js
toolkit/components/jsdownloads/test/unit/test_DownloadList.js
toolkit/components/jsdownloads/test/unit/test_DownloadStore.js
toolkit/components/jsdownloads/test/unit/test_Downloads.js
toolkit/components/microformats/microformat-shiv.js
toolkit/components/passwordmgr/LoginHelper.jsm
toolkit/components/passwordmgr/LoginImport.jsm
toolkit/components/passwordmgr/LoginStore.jsm
toolkit/components/passwordmgr/test/unit/head.js
toolkit/components/passwordmgr/test/unit/test_OSCrypto_win.js
toolkit/components/passwordmgr/test/unit/test_disabled_hosts.js
toolkit/components/passwordmgr/test/unit/test_legacy_empty_formSubmitURL.js
toolkit/components/passwordmgr/test/unit/test_legacy_validation.js
toolkit/components/passwordmgr/test/unit/test_logins_change.js
toolkit/components/passwordmgr/test/unit/test_logins_decrypt_failure.js
toolkit/components/passwordmgr/test/unit/test_logins_metainfo.js
toolkit/components/passwordmgr/test/unit/test_logins_search.js
toolkit/components/passwordmgr/test/unit/test_module_LoginImport.js
toolkit/components/passwordmgr/test/unit/test_module_LoginStore.js
toolkit/components/passwordmgr/test/unit/test_storage.js
toolkit/components/passwordmgr/test/unit/test_telemetry.js
toolkit/components/places/Bookmarks.jsm
toolkit/components/places/PlacesCategoriesStarter.js
toolkit/components/places/PlacesDBUtils.jsm
toolkit/components/places/PlacesUtils.jsm
toolkit/components/places/UnifiedComplete.js
toolkit/components/places/nsLivemarkService.js
toolkit/components/places/nsPlacesExpiration.js
toolkit/components/places/nsTaggingService.js
toolkit/components/places/tests/expiration/test_analyze_runs.js
toolkit/components/places/tests/favicons/test_favicons_conversions.js
toolkit/components/places/tests/favicons/test_getFaviconDataForPage.js
toolkit/components/places/tests/favicons/test_getFaviconURLForPage.js
toolkit/components/places/tests/favicons/test_moz-anno_favicon_mime_type.js
toolkit/components/places/tests/queries/test_containersQueries_sorting.js
toolkit/components/places/tests/queries/test_querySerialization.js
toolkit/components/places/tests/queries/test_sorting.js
toolkit/components/places/tests/queries/test_tags.js
toolkit/components/places/tests/unit/test_405497.js
toolkit/components/places/tests/unit/test_412132.js
toolkit/components/places/tests/unit/test_async_history_api.js
toolkit/components/places/tests/unit/test_autocomplete_stopSearch_no_throw.js
toolkit/components/places/tests/unit/test_bookmarks_restore_notification.js
toolkit/components/places/tests/unit/test_sql_guid_functions.js
toolkit/components/printing/content/printUtils.js
toolkit/components/startup/tests/browser/browser_bug537449.js
toolkit/components/telemetry/TelemetryStorage.jsm
toolkit/components/terminator/nsTerminatorTelemetry.js
toolkit/components/url-classifier/content/moz/observer.js
toolkit/content/customizeToolbar.js
toolkit/forgetaboutsite/test/unit/test_removeDataFromDomain.js
toolkit/modules/DeferredTask.jsm
toolkit/modules/JSONFile.jsm
toolkit/modules/PopupNotifications.jsm
toolkit/modules/Promise-backend.js
toolkit/modules/Task.jsm
toolkit/modules/tests/xpcshell/test_DeferredTask.js
toolkit/modules/tests/xpcshell/test_JSONFile.js
toolkit/modules/tests/xpcshell/test_Promise.js
toolkit/modules/tests/xpcshell/test_PromiseUtils.js
toolkit/modules/tests/xpcshell/test_Services.js
toolkit/mozapps/downloads/DownloadTaskbarProgress.jsm
toolkit/mozapps/downloads/content/DownloadProgressListener.js
toolkit/mozapps/downloads/content/downloads.js
toolkit/mozapps/downloads/content/helperApps.js
toolkit/mozapps/extensions/content/update.js
toolkit/mozapps/extensions/test/xpinstall/browser_auth3.js
toolkit/mozapps/extensions/test/xpinstall/browser_auth4.js
toolkit/mozapps/handling/content/dialog.js
toolkit/mozapps/handling/nsContentDispatchChooser.js
--- a/browser/base/content/browser-places.js
+++ b/browser/base/content/browser-places.js
@@ -1,15 +1,12 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-// //////////////////////////////////////////////////////////////////////////////
-// // StarUI
-
 var StarUI = {
   _itemId: -1,
   uri: null,
   _batching: false,
   _isNewBookmark: false,
   _autoCloseTimer: 0,
 
   _element: function(aID) {
@@ -340,19 +337,16 @@ var StarUI = {
     }
     else {
       PlacesUtils.transactionManager.endBatch(false);
     }
     this._batching = false;
   }
 };
 
-// //////////////////////////////////////////////////////////////////////////////
-// // PlacesCommandHook
-
 var PlacesCommandHook = {
   /**
    * Adds a bookmark to the page loaded in the given browser.
    *
    * @param aBrowser
    *        a <browser> element.
    * @param [optional] aParent
    *        The folder in which to create a new bookmark if the page loaded in
@@ -667,19 +661,16 @@ var PlacesCommandHook = {
     }
     else {
       organizer.PlacesOrganizer.selectLeftPaneContainerByHierarchy(aLeftPaneRoot);
       organizer.focus();
     }
   }
 };
 
-// //////////////////////////////////////////////////////////////////////////////
-// // HistoryMenu
-
 XPCOMUtils.defineLazyModuleGetter(this, "RecentlyClosedTabsAndWindowsMenuUtils",
   "resource:///modules/sessionstore/RecentlyClosedTabsAndWindowsMenuUtils.jsm");
 
 // View for the history menu.
 function HistoryMenu(aPopupShowingEvent) {
   // Workaround for Bug 610187.  The sidebar does not include all the Places
   // views definitions, and we don't need them there.
   // Defining the prototype inheritance in the prototype itself would cause
@@ -806,19 +797,16 @@ HistoryMenu.prototype = {
     if (placesNode) {
       if (!PrivateBrowsingUtils.isWindowPrivate(window))
         PlacesUIUtils.markPageAsTyped(placesNode.uri);
       openUILink(placesNode.uri, aEvent, { ignoreAlt: true });
     }
   }
 };
 
-// //////////////////////////////////////////////////////////////////////////////
-// // BookmarksEventHandler
-
 /**
  * Functions for handling events in the Bookmarks Toolbar and menu.
  */
 var BookmarksEventHandler = {
   /**
    * Handler for click event for an item in the bookmarks toolbar or menu.
    * Menus and submenus from the folder buttons bubble up to this handler.
    * Left-click is handled in the onCommand function.
@@ -935,19 +923,16 @@ var BookmarksEventHandler = {
     if (!tooltipUrl.hidden)
       tooltipUrl.value = url;
 
     // Show tooltip.
     return true;
   }
 };
 
-// //////////////////////////////////////////////////////////////////////////////
-// // PlacesMenuDNDHandler
-
 // Handles special drag and drop functionality for Places menus that are not
 // part of a Places view (e.g. the bookmarks menu in the menubar).
 var PlacesMenuDNDHandler = {
   _springLoadDelayMs: 350,
   _closeDelayMs: 500,
   _loadTimer: null,
   _closeTimer: null,
   _closingTimerNode: null,
@@ -1066,19 +1051,16 @@ var PlacesMenuDNDHandler = {
                                 PlacesUtils.bookmarks.DEFAULT_INDEX,
                                 Components.interfaces.nsITreeView.DROP_ON);
     PlacesControllerDragHelper.onDrop(ip, event.dataTransfer);
     PlacesControllerDragHelper.currentDropTarget = null;
     event.stopPropagation();
   }
 };
 
-// //////////////////////////////////////////////////////////////////////////////
-// // PlacesToolbarHelper
-
 /**
  * This object handles the initialization and uninitialization of the bookmarks
  * toolbar.
  */
 var PlacesToolbarHelper = {
   _place: "place:folder=TOOLBAR",
 
   get _viewElt() {
@@ -1213,19 +1195,16 @@ var PlacesToolbarHelper = {
       if (this._viewElt._placesView) {
         this._viewElt._placesView.uninit();
       }
       this.init(true);
     }
   },
 };
 
-// //////////////////////////////////////////////////////////////////////////////
-// // BookmarkingUI
-
 /**
  * Handles the bookmarks menu-button in the toolbar.
  */
 
 var BookmarkingUI = {
   BOOKMARK_BUTTON_ID: "bookmarks-menu-button",
   BOOKMARK_BUTTON_SHORTCUT: "addBookmarkAsKb",
   get button() {
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
@@ -5852,17 +5852,16 @@ var LanguageDetectionListener = {
     });
   }
 };
 
 
 var BrowserOffline = {
   _inited: false,
 
-  // ///////////////////////////////////////////////////////////////////////////
   // BrowserOffline Public Methods
   init: function ()
   {
     if (!this._uiElement)
       this._uiElement = document.getElementById("workOfflineMenuitemState");
 
     Services.obs.addObserver(this, "network:offline-status-changed", false);
 
@@ -5885,29 +5884,27 @@ var BrowserOffline = {
     if (!ioService.offline && !this._canGoOffline()) {
       this._updateOfflineUI(false);
       return;
     }
 
     ioService.offline = !ioService.offline;
   },
 
-  // ///////////////////////////////////////////////////////////////////////////
   // nsIObserver
   observe: function (aSubject, aTopic, aState)
   {
     if (aTopic != "network:offline-status-changed")
       return;
 
     // This notification is also received because of a loss in connectivity,
     // which we ignore by updating the UI to the current value of io.offline
     this._updateOfflineUI(Services.io.offline);
   },
 
-  // ///////////////////////////////////////////////////////////////////////////
   // BrowserOffline Implementation Methods
   _canGoOffline: function ()
   {
     try {
       var cancelGoOffline = Cc["@mozilla.org/supports-PRBool;1"].createInstance(Ci.nsISupportsPRBool);
       Services.obs.notifyObservers(cancelGoOffline, "offline-requested", null);
 
       // Something aborted the quit process.
--- a/browser/base/content/test/general/browser_aboutAccounts.js
+++ b/browser/base/content/test/general/browser_aboutAccounts.js
@@ -1,13 +1,12 @@
 /* Any copyright is dedicated to the Public Domain.
  * http://creativecommons.org/publicdomain/zero/1.0/
  */
 
-// /////////////////
 //
 // Whitelisting this test.
 // As part of bug 1077403, the leaking uncaught rejection should be fixed.
 //
 thisTestLeaksUncaughtRejectionsAndShouldBeFixed("TypeError: window.location is null");
 
 XPCOMUtils.defineLazyModuleGetter(this, "Promise",
   "resource://gre/modules/Promise.jsm");
--- a/browser/base/content/test/general/browser_aboutSupport_newtab_security_state.js
+++ b/browser/base/content/test/general/browser_aboutSupport_newtab_security_state.js
@@ -1,12 +1,11 @@
 /* Any copyright is dedicated to the Public Domain.
  * http://creativecommons.org/publicdomain/zero/1.0/ */
 
-// /////////////////
 //
 // Whitelisting this test.
 // As part of bug 1077403, the leaking uncaught rejection should be fixed.
 //
 thisTestLeaksUncaughtRejectionsAndShouldBeFixed("TypeError: window.location is null");
 
 
 add_task(function* checkIdentityOfAboutSupport() {
--- a/browser/base/content/test/general/browser_fxa_oauth.js
+++ b/browser/base/content/test/general/browser_fxa_oauth.js
@@ -1,13 +1,12 @@
 /* Any copyright is dedicated to the Public Domain.
  * http://creativecommons.org/publicdomain/zero/1.0/
  */
 
-// /////////////////
 //
 // Whitelisting this test.
 // As part of bug 1077403, the leaking uncaught rejection should be fixed.
 //
 thisTestLeaksUncaughtRejectionsAndShouldBeFixed("TypeError: this.docShell is null");
 
 Cu.import("resource://gre/modules/Promise.jsm");
 Cu.import("resource://gre/modules/Task.jsm");
--- a/browser/base/content/test/general/browser_gZipOfflineChild.js
+++ b/browser/base/content/test/general/browser_gZipOfflineChild.js
@@ -11,17 +11,17 @@ registerCleanupFunction(function() {
   let principal = Services.scriptSecurityManager.createCodebasePrincipal(uri, {});
   Services.perms.removeFromPrincipal(principal, "offline-app");
   Services.prefs.clearUserPref("offline-apps.allow_by_default");
 });
 
 var cacheCount = 0;
 var intervalID = 0;
 
-// //
+//
 // Handle "message" events which are posted from the iframe upon
 // offline cache events.
 //
 function handleMessageEvents(event) {
   cacheCount++;
   switch (cacheCount) {
     case 1:
       // This is the initial caching off offline data.
--- a/browser/base/content/test/general/browser_sanitizeDialog.js
+++ b/browser/base/content/test/general/browser_sanitizeDialog.js
@@ -628,18 +628,16 @@ add_task(function* test_offline_apps_per
   };
   wh.open();
   yield wh.promiseClosed;
 });
 
 var now_mSec = Date.now();
 var now_uSec = now_mSec * 1000;
 
-// /////////////////////////////////////////////////////////////////////////////
-
 /**
  * This wraps the dialog and provides some convenience methods for interacting
  * with it.
  *
  * @param aWin
  *        The dialog's nsIDOMWindow
  */
 function WindowHelper(aWin) {
--- a/browser/base/content/test/general/browser_scope.js
+++ b/browser/base/content/test/general/browser_scope.js
@@ -1,9 +1,8 @@
-// /////////////////
 //
 // Whitelisting this test.
 // As part of bug 1077403, the leaking uncaught rejection should be fixed.
 //
 thisTestLeaksUncaughtRejectionsAndShouldBeFixed("TypeError: this.docShell is null");
 
 function test() {
   ok(!!gBrowser, "gBrowser exists");
--- a/browser/base/content/test/general/browser_tabs_owner.js
+++ b/browser/base/content/test/general/browser_tabs_owner.js
@@ -1,16 +1,14 @@
-// /////////////////
 //
 // Whitelisting this test.
 // As part of bug 1077403, the leaking uncaught rejection should be fixed.
 //
 thisTestLeaksUncaughtRejectionsAndShouldBeFixed("TypeError: gBrowser._finalizeTabSwitch is not a function");
 
-// /////////////////
 //
 // Whitelisting this test.
 // As part of bug 1077403, the leaking uncaught rejection should be fixed.
 //
 thisTestLeaksUncaughtRejectionsAndShouldBeFixed("TypeError: gBrowser._finalizeTabSwitch is not a function");
 
 function test() {
   gBrowser.addTab();
--- a/browser/base/content/test/social/browser_social_activation.js
+++ b/browser/base/content/test/social/browser_social_activation.js
@@ -1,13 +1,12 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-// /////////////////
 //
 // Whitelisting this test.
 // As part of bug 1077403, the leaking uncaught rejection should be fixed.
 //
 thisTestLeaksUncaughtRejectionsAndShouldBeFixed("TypeError: Assert is null");
 
 
 var SocialService = Cu.import("resource:///modules/SocialService.jsm", {}).SocialService;
--- a/browser/components/migration/IEProfileMigrator.js
+++ b/browser/components/migration/IEProfileMigrator.js
@@ -28,20 +28,18 @@ XPCOMUtils.defineLazyModuleGetter(this, 
                                   "resource://gre/modules/PlacesUtils.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "OSCrypto",
                                   "resource://gre/modules/OSCrypto.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "WindowsRegistry",
                                   "resource://gre/modules/WindowsRegistry.jsm");
 
 Cu.importGlobalProperties(["URL"]);
 
-// //////////////////////////////////////////////////////////////////////////////
 // Resources
 
-
 function History() {
 }
 
 History.prototype = {
   type: MigrationUtils.resourceTypes.HISTORY,
 
   get exists() {
     return true;
@@ -461,19 +459,16 @@ Settings.prototype = {
         Services.prefs.setBoolPref(aPref, value);
         break;
       default:
         throw new Error("Unexpected value type: " + (typeof value));
     }
   }
 };
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Migrator
-
 function IEProfileMigrator()
 {
   this.wrappedJSObject = this; // export this to be able to use it in the unittest.
 }
 
 IEProfileMigrator.prototype = Object.create(MigratorPrototype);
 
 IEProfileMigrator.prototype.getResources = function IE_getResources() {
--- a/browser/components/migration/MSMigrationUtils.jsm
+++ b/browser/components/migration/MSMigrationUtils.jsm
@@ -36,19 +36,16 @@ const RESULT_SUCCESS = 0;
 const VAULT_ENUMERATE_ALL_ITEMS = 512;
 const WEB_CREDENTIALS_VAULT_ID = [0x4BF4C442,
                                   0x41A09B8A,
                                   0x4ADD80B3,
                                   0x28DB4D70];
 
 Cu.importGlobalProperties(["File"]);
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Helpers.
-
 const wintypes = {
   BOOL: ctypes.int,
   DWORD: ctypes.uint32_t,
   DWORDLONG: ctypes.uint64_t,
   CHAR: ctypes.char,
   PCHAR: ctypes.char.ptr,
   LPCWSTR: ctypes.char16_t.ptr,
   PDWORD: ctypes.uint32_t.ptr,
--- a/browser/components/places/PlacesUIUtils.jsm
+++ b/browser/components/places/PlacesUIUtils.jsm
@@ -1718,18 +1718,17 @@ XPCOMUtils.defineLazyGetter(PlacesUIUtil
       let annoObj = { name: PlacesUIUtils.DESCRIPTION_ANNO,
                       type: Ci.nsIAnnotationService.TYPE_STRING,
                       flags: 0,
                       value: aDescription,
                       expires: Ci.nsIAnnotationService.EXPIRE_NEVER };
       return new PlacesSetItemAnnotationTransaction(aItemId, annoObj);
     },
 
-    // //////////////////////////////////////////////////////////////////////////
-    // // nsITransactionManager forwarders.
+    // nsITransactionManager forwarders.
 
     beginBatch: () =>
       PlacesUtils.transactionManager.beginBatch(null),
 
     endBatch: () =>
       PlacesUtils.transactionManager.endBatch(false),
 
     doTransaction: (txn) =>
--- a/browser/components/places/tests/browser/browser_library_search.js
+++ b/browser/components/places/tests/browser/browser_library_search.js
@@ -42,18 +42,16 @@ var testCases = [
   },
 
   function downloadsScope() {
     let defScope = getDefaultScope(PlacesUIUtils.leftPaneQueries["Downloads"]);
     search(PlacesUIUtils.leftPaneQueries["Downloads"], "dummy", defScope);
   },
 ];
 
-// /////////////////////////////////////////////////////////////////////////////
-
 /**
  * Returns the default search scope for a given folder.
  *
  * @param  aFolderId
  *         the item ID of a node in the left pane's tree
  * @return the default scope when the folder is newly selected
  */
 function getDefaultScope(aFolderId) {
@@ -155,18 +153,16 @@ function onLibraryAvailable() {
   gLibrary = null;
 
   // Cleanup.
   PlacesUtils.tagging.untagURI(PlacesUtils._uri(TEST_URL), ["dummyTag"]);
   PlacesUtils.bookmarks.removeFolderChildren(PlacesUtils.unfiledBookmarksFolderId);
   PlacesTestUtils.clearHistory().then(finish);
 }
 
-// /////////////////////////////////////////////////////////////////////////////
-
 function test() {
   waitForExplicitFinish();
 
   // Sanity:
   ok(PlacesUtils, "PlacesUtils in context");
 
   // Add visits, a bookmark and a tag.
   PlacesTestUtils.addVisits(
--- a/browser/components/places/tests/browser/browser_sort_in_library.js
+++ b/browser/components/places/tests/browser/browser_sort_in_library.js
@@ -49,18 +49,16 @@ const SORT_LOOKUP_TABLE = {
 // determines this value.
 const DEFAULT_SORT_KEY = "TITLE";
 
 // Part of the test is checking that sorts stick, so each time we sort we need
 // to remember it.
 var prevSortDir = null;
 var prevSortKey = null;
 
-// /////////////////////////////////////////////////////////////////////////////
-
 /**
  * Ensures that the sort of aTree is aSortingMode and aSortingAnno.
  *
  * @param aTree
  *        the tree to check
  * @param aSortingMode
  *        one of the Ci.nsINavHistoryQueryOptions.SORT_BY_* constants
  * @param aSortingAnno
@@ -225,18 +223,16 @@ function testSortByDir(aOrganizerWin, aP
     let key = (aUnsortFirst ? DEFAULT_SORT_KEY : prevSortKey);
     let sortConst = "SORT_BY_" + key + "_" + dir.toUpperCase();
     let expectedSortMode = Ci.nsINavHistoryQueryOptions[sortConst];
     setSort(aOrganizerWin, aPlaceContentTree, aUnsortFirst, false, null, dir);
     checkSort(aPlaceContentTree, expectedSortMode, "");
   });
 }
 
-// /////////////////////////////////////////////////////////////////////////////
-
 function test() {
   waitForExplicitFinish();
 
   openLibrary(function (win) {
         let tree = win.document.getElementById("placeContent");
         isnot(tree, null, "sanity check: placeContent tree should exist");
         // Run the tests.
         testSortByColAndDir(win, tree, true);
--- a/browser/modules/WindowsJumpLists.jsm
+++ b/browser/modules/WindowsJumpLists.jsm
@@ -80,17 +80,16 @@ XPCOMUtils.defineLazyModuleGetter(this, 
 /**
  * Global functions
  */
 
 function _getString(name) {
   return _stringBundle.GetStringFromName(name);
 }
 
-// ///////////////////////////////////////////////////////////////////////////
 // Task list configuration data object.
 
 var tasksCfg = [
   /**
    * Task configuration options: title, description, args, iconIndex, open, close.
    *
    * title       - Task title displayed in the list. (strings in the table are temp fillers.)
    * description - Tooltip description on the list item.
@@ -130,17 +129,16 @@ var tasksCfg = [
     args:             "-private-window",
     iconIndex:        4, // Private browsing mode icon
     open:             true,
     close:            true, // No point, but we don't always update the list on
                             // shutdown. Thus true for consistency.
   },
 ];
 
-// ///////////////////////////////////////////////////////////////////////////
 // Implementation
 
 this.WinTaskbarJumpList =
 {
   _builder: null,
   _tasks: null,
   _shuttingDown: false,
 
--- a/browser/modules/WindowsPreviewPerTab.jsm
+++ b/browser/modules/WindowsPreviewPerTab.jsm
@@ -57,18 +57,17 @@ Cu.import("resource://gre/modules/XPCOMU
 const TOGGLE_PREF_NAME = "browser.taskbar.previews.enable";
 // Pref to determine the magic auto-disable threshold
 const DISABLE_THRESHOLD_PREF_NAME = "browser.taskbar.previews.max";
 // Pref to control the time in seconds that tab contents live in the cache
 const CACHE_EXPIRATION_TIME_PREF_NAME = "browser.taskbar.previews.cachetime";
 
 const WINTASKBAR_CONTRACTID = "@mozilla.org/windows-taskbar;1";
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Various utility properties
+// Various utility properties
 XPCOMUtils.defineLazyServiceGetter(this, "imgTools",
                                    "@mozilla.org/image/tools;1",
                                    "imgITools");
 XPCOMUtils.defineLazyModuleGetter(this, "PageThumbs",
                                   "resource://gre/modules/PageThumbs.jsm");
 
 // nsIURI -> imgIContainer
 function _imageFromURI(uri, privateMode, callback) {
@@ -118,18 +117,17 @@ function snapRectAtScale(r, scale) {
   let height = Math.ceil((r.y + r.height) * scale) - y;
 
   r.x = x / scale;
   r.y = y / scale;
   r.width = width / scale;
   r.height = height / scale;
 }
 
-// //////////////////////////////////////////////////////////////////////////////
-// // PreviewController
+// PreviewController
 
 /*
  * This class manages the behavior of thumbnails and previews. It has the following
  * responsibilities:
  * 1) responding to requests from Windows taskbar for a thumbnail or window
  *    preview.
  * 2) listens for dom events that result in a thumbnail or window preview needing
  *    to be refresh, and communicates this to the taskbar.
@@ -234,18 +232,17 @@ PreviewController.prototype = {
   },
 
   updateTitleAndTooltip: function () {
     let title = this.win.tabbrowser.getWindowTitleForBrowser(this.linkedBrowser);
     this.preview.title = title;
     this.preview.tooltip = title;
   },
 
-  // ////////////////////////////////////////////////////////////////////////////
-  // // nsITaskbarPreviewController
+  // nsITaskbarPreviewController
 
   // window width and height, not browser
   get width() {
     return this.win.width;
   },
 
   // window width and height, not browser
   get height() {
@@ -317,32 +314,31 @@ PreviewController.prototype = {
    */
   requestThumbnail: function (aTaskbarCallback, aRequestedWidth, aRequestedHeight) {
     this.resizeCanvasPreview(aRequestedWidth, aRequestedHeight);
     this.updateCanvasPreview(false, (aThumbnailCanvas) => {
       aTaskbarCallback.done(aThumbnailCanvas, false);
     });
   },
 
-  // ////////////////////////////////////////////////////////////////////////////
-  // // Event handling
+  // Event handling
 
   onClose: function () {
     this.win.tabbrowser.removeTab(this.tab);
   },
 
   onActivate: function () {
     this.win.tabbrowser.selectedTab = this.tab;
 
     // Accept activation - this will restore the browser window
     // if it's minimized
     return true;
   },
 
-  // // nsIDOMEventListener
+  // nsIDOMEventListener
   handleEvent: function (evt) {
     switch (evt.type) {
       case "TabAttrModified":
         this.updateTitleAndTooltip();
         break;
     }
   }
 };
@@ -350,18 +346,17 @@ PreviewController.prototype = {
 XPCOMUtils.defineLazyGetter(PreviewController.prototype, "canvasPreviewFlags",
   function () { let canvasInterface = Ci.nsIDOMCanvasRenderingContext2D;
                 return canvasInterface.DRAWWINDOW_DRAW_VIEW
                      | canvasInterface.DRAWWINDOW_DRAW_CARET
                      | canvasInterface.DRAWWINDOW_ASYNC_DECODE_IMAGES
                      | canvasInterface.DRAWWINDOW_DO_NOT_FLUSH;
 });
 
-// //////////////////////////////////////////////////////////////////////////////
-// // TabWindow
+// TabWindow
 
 /*
  * This class monitors a browser window for changes to its tabs
  *
  * @param win
  *        The nsIDOMWindow browser window
  */
 function TabWindow(win) {
@@ -504,17 +499,17 @@ TabWindow.prototype = {
     // on it the sorting order of our local array.  To do so we must walk
     // the local array backwards, otherwise we would send move requests in the
     // wrong order.  See bug 522610 for details.
     for (let i = inorder.length - 1; i >= 0; i--) {
       inorder[i].move(inorder[i + 1] || null);
     }
   },
 
-  // // nsIDOMEventListener
+  // nsIDOMEventListener
   handleEvent: function (evt) {
     let tab = evt.originalTarget;
     switch (evt.type) {
       case "TabOpen":
         this.newTab(tab);
         this.updateTabOrdering();
         break;
       case "TabClose":
@@ -578,17 +573,17 @@ TabWindow.prototype = {
     for (let [tab, preview] of this.previews) {
       if (aBrowser == tab.linkedBrowser) {
         preview.invalidate();
         break;
       }
     }
   },
 
-  // // Browser progress listener
+  // Browser progress listener
 
   onLocationChange: function (aBrowser) {
     // I'm not sure we need this, onStateChange does a really good job
     // of picking up page changes.
     // this.invalidateTabPreview(aBrowser);
   },
 
   onStateChange: function (aBrowser, aWebProgress, aRequest, aStateFlags, aStatus) {
@@ -632,18 +627,17 @@ TabWindow.prototype = {
             preview.icon = img;
           }
         }
       }
     );
   }
 }
 
-// //////////////////////////////////////////////////////////////////////////////
-// // AeroPeek
+// AeroPeek
 
 /*
  * This object acts as global storage and external interface for this feature.
  * It maintains the values of the prefs.
  */
 this.AeroPeek = {
   available: false,
   // Does the pref say we're enabled?
@@ -796,17 +790,17 @@ this.AeroPeek = {
       this.destroy();
   },
 
   resetCacheTimer: function () {
     this.cacheTimer.cancel();
     this.cacheTimer.init(this, 1000*this.cacheLifespan, Ci.nsITimer.TYPE_ONE_SHOT);
   },
 
-  // // nsIObserver
+  // nsIObserver
   observe: function (aSubject, aTopic, aData) {
     if (aTopic == "nsPref:changed" && aData == TOGGLE_PREF_NAME) {
       this._prefenabled = this.prefs.getBoolPref(TOGGLE_PREF_NAME);
     }
     if (!this._prefenabled) {
       return;
     }
     switch (aTopic) {
--- a/browser/tools/mozscreenshots/mozscreenshots/extension/Screenshot.jsm
+++ b/browser/tools/mozscreenshots/mozscreenshots/extension/Screenshot.jsm
@@ -68,17 +68,17 @@ this.Screenshot = {
   // Capture the whole screen using an external application.
   captureExternal(filename) {
     let imagePath = this._buildImagePath(filename);
     return this._screenshotFunction(imagePath).then(() => {
       log.debug("saved screenshot: " + filename);
     });
   },
 
-  // /// helpers /////
+  // helpers
 
   _screenshotWindows(filename) {
     return new Promise((resolve, reject) => {
       let exe = Services.dirsvc.get("GreBinD", Ci.nsIFile);
       exe.append("screenshot.exe");
       if (!exe.exists()) {
         exe = Services.dirsvc.get("CurWorkD", Ci.nsIFile).parent;
         exe.append("bin");
--- a/browser/tools/mozscreenshots/mozscreenshots/extension/TestRunner.jsm
+++ b/browser/tools/mozscreenshots/mozscreenshots/extension/TestRunner.jsm
@@ -143,17 +143,17 @@ this.TestRunner = {
     while (gBrowser.tabs.length > 1) {
       gBrowser.removeTab(gBrowser.selectedTab, {animate: false});
     }
     gBrowser.unpinTab(gBrowser.selectedTab);
     gBrowser.selectedBrowser.loadURI("data:text/html;charset=utf-8,<h1>Done!");
     browserWindow.restore();
   },
 
-  // /// helpers /////
+  // helpers
 
   _performCombo: function*(combo) {
     let paddedComboIndex = padLeft(this.currentComboIndex + 1, String(this.combos.length).length);
     log.info("Combination " + paddedComboIndex + "/" + this.combos.length + ": " +
              this._comboName(combo).substring(1));
 
     function changeConfig(config) {
       log.debug("calling " + config.name);
--- a/browser/tools/mozscreenshots/mozscreenshots/extension/configurations/Toolbars.jsm
+++ b/browser/tools/mozscreenshots/mozscreenshots/extension/configurations/Toolbars.jsm
@@ -40,17 +40,17 @@ this.Toolbars = {
         return undefined;
       }),
     },
 
   },
 };
 
 
-// /// helpers /////
+// helpers
 
 function toggleMenubarIfNecessary(visible) {
   let browserWindow = Services.wm.getMostRecentWindow("navigator:browser");
   // The menubar is not shown on OS X or while in fullScreen
   if (Services.appinfo.OS != "Darwin" /* && !browserWindow.fullScreen*/) {
     let menubar = browserWindow.document.getElementById("toolbar-menubar");
     browserWindow.setToolbarVisibility(menubar, visible);
   }
--- a/devtools/client/commandline/test/helpers.js
+++ b/devtools/client/commandline/test/helpers.js
@@ -471,18 +471,16 @@ var { helpers, assert } = (function () {
       yield removedDeferred.promise;
 
     // And close everything down
       yield helpers.closeToolbar(options);
       yield helpers.closeTab(options);
     }).then(finish, helpers.handleError);
   };
 
-// /////////////////////////////////////////////////////////////////////////////
-
 /**
  * Ensure that the options object is setup correctly
  * options should contain an automator object that looks like this:
  * {
  *   getInputState: function() { ... },
  *   setCursor: function(cursor) { ... },
  *   getCompleterTemplateData: function() { ... },
  *   focus: function() { ... },
--- a/devtools/client/debugger/test/mochitest/browser_dbg_breakpoints-contextmenu.js
+++ b/devtools/client/debugger/test/mochitest/browser_dbg_breakpoints-contextmenu.js
@@ -176,17 +176,17 @@ function test() {
 
       // Test disabling all breakpoints.
       disableAll();
       yield waitForDispatch(gPanel, gDebugger.constants.REMOVE_BREAKPOINT, 5);
       for (let bp of queries.getBreakpoints(getState())) {
         ok(!!bp.disabled, "All breakpoints should be disabled.");
       }
 
-      // // Test re-enabling all breakpoints.
+      // Test re-enabling all breakpoints.
       enableAll();
       yield waitForDispatch(gPanel, gDebugger.constants.ADD_BREAKPOINT, 5);
       for (let bp of queries.getBreakpoints(getState())) {
         ok(!bp.disabled, "All breakpoints should be enabled.");
       }
     });
 
     const testDeleteAll = Task.async(function* () {
--- a/devtools/client/framework/test/browser_devtools_api.js
+++ b/devtools/client/framework/test/browser_devtools_api.js
@@ -1,14 +1,13 @@
 /* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
 /* vim: set ft=javascript ts=2 et sw=2 tw=80: */
 /* Any copyright is dedicated to the Public Domain.
  * http://creativecommons.org/publicdomain/zero/1.0/ */
 
-// /////////////////
 //
 // Whitelisting this test.
 // As part of bug 1077403, the leaking uncaught rejections should be fixed.
 //
 thisTestLeaksUncaughtRejectionsAndShouldBeFixed("TypeError: this.docShell is null");
 
 // When running in a standalone directory, we get this error
 thisTestLeaksUncaughtRejectionsAndShouldBeFixed("TypeError: this.doc is undefined");
--- a/devtools/client/inspector/test/browser_inspector_highlighter-comments.js
+++ b/devtools/client/inspector/test/browser_inspector_highlighter-comments.js
@@ -1,16 +1,15 @@
 /* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
 /* vim: set ts=2 et sw=2 tw=80: */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 "use strict";
 
-// /////////////////
 //
 // Whitelisting this test.
 // As part of bug 1077403, the leaking uncaught rejection should be fixed.
 //
 thisTestLeaksUncaughtRejectionsAndShouldBeFixed("false");
 
 // Test that hovering over the markup-view's containers doesn't always show the
 // highlighter, depending on the type of node hovered over.
--- a/devtools/client/projecteditor/test/browser_projecteditor_editing_01.js
+++ b/devtools/client/projecteditor/test/browser_projecteditor_editing_01.js
@@ -1,15 +1,14 @@
 /* vim: set ts=2 et sw=2 tw=80: */
 /* Any copyright is dedicated to the Public Domain.
  http://creativecommons.org/publicdomain/zero/1.0/ */
 
 "use strict";
 
-// /////////////////
 //
 // Whitelisting this test.
 // As part of bug 1077403, the leaking uncaught rejection should be fixed.
 //
 thisTestLeaksUncaughtRejectionsAndShouldBeFixed("destroy");
 
 loadHelperScript("helper_edits.js");
 
--- a/devtools/client/projecteditor/test/browser_projecteditor_editors_image.js
+++ b/devtools/client/projecteditor/test/browser_projecteditor_editors_image.js
@@ -1,15 +1,14 @@
 /* vim: set ts=2 et sw=2 tw=80: */
 /* Any copyright is dedicated to the Public Domain.
  http://creativecommons.org/publicdomain/zero/1.0/ */
 
 "use strict";
 
-// /////////////////
 //
 // Whitelisting this test.
 // As part of bug 1077403, the leaking uncaught rejection should be fixed.
 //
 thisTestLeaksUncaughtRejectionsAndShouldBeFixed("destroy");
 
 loadHelperScript("helper_edits.js");
 
--- a/devtools/client/projecteditor/test/browser_projecteditor_immediate_destroy.js
+++ b/devtools/client/projecteditor/test/browser_projecteditor_immediate_destroy.js
@@ -1,15 +1,14 @@
 /* vim: set ts=2 et sw=2 tw=80: */
 /* Any copyright is dedicated to the Public Domain.
  http://creativecommons.org/publicdomain/zero/1.0/ */
 
 "use strict";
 
-// /////////////////
 //
 // Whitelisting this test.
 // As part of bug 1077403, the leaking uncaught rejection should be fixed.
 //
 thisTestLeaksUncaughtRejectionsAndShouldBeFixed("destroy");
 thisTestLeaksUncaughtRejectionsAndShouldBeFixed("TypeError: this.window is null");
 
 // Test that projecteditor can be destroyed in various states of loading
--- a/devtools/client/projecteditor/test/browser_projecteditor_saveall.js
+++ b/devtools/client/projecteditor/test/browser_projecteditor_saveall.js
@@ -1,15 +1,14 @@
 /* vim: set ts=2 et sw=2 tw=80: */
 /* Any copyright is dedicated to the Public Domain.
  http://creativecommons.org/publicdomain/zero/1.0/ */
 
 "use strict";
 
-// /////////////////
 //
 // Whitelisting this test.
 // As part of bug 1077403, the leaking uncaught rejection should be fixed.
 //
 thisTestLeaksUncaughtRejectionsAndShouldBeFixed("destroy");
 
 loadHelperScript("helper_edits.js");
 
--- a/devtools/client/projecteditor/test/browser_projecteditor_tree_selection_02.js
+++ b/devtools/client/projecteditor/test/browser_projecteditor_tree_selection_02.js
@@ -1,15 +1,14 @@
 /* vim: set ts=2 et sw=2 tw=80: */
 /* Any copyright is dedicated to the Public Domain.
  http://creativecommons.org/publicdomain/zero/1.0/ */
 
 "use strict";
 
-// /////////////////
 //
 // Whitelisting this test.
 // As part of bug 1077403, the leaking uncaught rejection should be fixed.
 //
 thisTestLeaksUncaughtRejectionsAndShouldBeFixed("destroy");
 
 // Test that files get reselected in the tree when their editor
 // is focused.  https://bugzilla.mozilla.org/show_bug.cgi?id=1011116.
--- a/devtools/client/responsivedesign/test/browser_responsive_cmd.js
+++ b/devtools/client/responsivedesign/test/browser_responsive_cmd.js
@@ -1,14 +1,13 @@
 /* Any copyright is dedicated to the Public Domain.
  * http://creativecommons.org/publicdomain/zero/1.0/ */
 
 "use strict";
 
-// /////////////////
 //
 // Whitelisting this test.
 // As part of bug 1077403, the leaking uncaught rejection should be fixed.
 //
 thisTestLeaksUncaughtRejectionsAndShouldBeFixed("destroy");
 
 function test() {
   let manager = ResponsiveUIManager;
--- a/devtools/client/shared/test/browser_telemetry_toolboxtabs_shadereditor.js
+++ b/devtools/client/shared/test/browser_telemetry_toolboxtabs_shadereditor.js
@@ -1,12 +1,11 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
-// /////////////////
 //
 // Whitelisting this test.
 // As part of bug 1077403, the leaking uncaught rejection should be fixed.
 //
 thisTestLeaksUncaughtRejectionsAndShouldBeFixed("Error: Shader Editor is still waiting for a WebGL context to be created.");
 
 const TEST_URI = "data:text/html;charset=utf-8,<p>browser_telemetry_toolboxtabs_shadereditor.js</p>";
 
--- a/devtools/client/shared/test/browser_toolbar_tooltip.js
+++ b/devtools/client/shared/test/browser_toolbar_tooltip.js
@@ -1,14 +1,13 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
 // Tests that the developer toolbar works properly
 
-// /////////////////
 //
 // Whitelisting this test.
 // As part of bug 1077403, the leaking uncaught rejection should be fixed.
 //
 thisTestLeaksUncaughtRejectionsAndShouldBeFixed("Protocol error (unknownError): Error: Got an invalid root window in DocumentWalker");
 
 const TEST_URI = "data:text/html;charset=utf-8,<p>Tooltip Tests</p>";
 const PREF_DEVTOOLS_THEME = "devtools.theme";
--- a/devtools/client/webaudioeditor/test/browser_wa_first-run.js
+++ b/devtools/client/webaudioeditor/test/browser_wa_first-run.js
@@ -1,12 +1,11 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
-// /////////////////
 //
 // Whitelisting this test.
 // As part of bug 1077403, the leaking uncaught rejection should be fixed.
 //
 thisTestLeaksUncaughtRejectionsAndShouldBeFixed("Error: Connection closed");
 
 /**
  * Tests that the reloading/onContentLoaded hooks work.
--- a/devtools/client/webaudioeditor/test/browser_wa_reset-01.js
+++ b/devtools/client/webaudioeditor/test/browser_wa_reset-01.js
@@ -1,12 +1,11 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
-// /////////////////
 //
 // Whitelisting this test.
 // As part of bug 1077403, the leaking uncaught rejection should be fixed.
 //
 thisTestLeaksUncaughtRejectionsAndShouldBeFixed("Error: Connection closed");
 
 /**
  * Tests that reloading a tab will properly listen for the `start-context`
--- a/devtools/client/webaudioeditor/test/browser_wa_reset-04.js
+++ b/devtools/client/webaudioeditor/test/browser_wa_reset-04.js
@@ -1,12 +1,11 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
-// /////////////////
 //
 // Whitelisting this test.
 // As part of bug 1077403, the leaking uncaught rejection should be fixed.
 //
 thisTestLeaksUncaughtRejectionsAndShouldBeFixed("Error: Connection closed");
 
 /**
  * Tests that switching to an iframe works fine.
--- a/devtools/client/webconsole/utils.js
+++ b/devtools/client/webconsole/utils.js
@@ -326,19 +326,17 @@ var WebConsoleUtils = {
       return false;
     };
     return handler;
   },
 };
 
 exports.Utils = WebConsoleUtils;
 
-// ////////////////////////////////////////////////////////////////////////
 // Localization
-// ////////////////////////////////////////////////////////////////////////
 
 WebConsoleUtils.L10n = function (bundleURI) {
   this._helper = new LocalizationHelper(bundleURI);
 };
 
 WebConsoleUtils.L10n.prototype = {
   /**
    * Generates a formatted timestamp string for displaying in console messages.
--- a/devtools/client/webconsole/webconsole.js
+++ b/devtools/client/webconsole/webconsole.js
@@ -2963,19 +2963,17 @@ var Utils = {
     } catch (e) {
       // Ignore any exceptions
     }
 
     return logLimit;
   },
 };
 
-// ////////////////////////////////////////////////////////////////////////////
 // CommandController
-// ////////////////////////////////////////////////////////////////////////////
 
 /**
  * A controller (an instance of nsIController) that makes editing actions
  * behave appropriately in the context of the Web Console.
  */
 function CommandController(webConsole) {
   this.owner = webConsole;
 }
@@ -3048,19 +3046,17 @@ CommandController.prototype = {
         break;
       case "cmd_selectAll":
         this.selectAll();
         break;
     }
   }
 };
 
-// ////////////////////////////////////////////////////////////////////////////
 // Web Console connection proxy
-// ////////////////////////////////////////////////////////////////////////////
 
 /**
  * The WebConsoleConnectionProxy handles the connection between the Web Console
  * and the application we connect to through the remote debug protocol.
  *
  * @constructor
  * @param object webConsoleFrame
  *        The WebConsoleFrame object that owns this connection proxy.
@@ -3536,19 +3532,17 @@ WebConsoleConnectionProxy.prototype = {
     this.connected = false;
     this.webConsoleFrame = null;
     this._disconnecter.resolve(null);
 
     return this._disconnecter.promise;
   },
 };
 
-// ////////////////////////////////////////////////////////////////////////////
 // Context Menu
-// ////////////////////////////////////////////////////////////////////////////
 
 /*
  * ConsoleContextMenu this used to handle the visibility of context menu items.
  *
  * @constructor
  * @param object owner
  *        The WebConsoleFrame instance that owns this object.
  */
--- a/devtools/server/actors/utils/webconsole-utils.js
+++ b/devtools/server/actors/utils/webconsole-utils.js
@@ -200,19 +200,17 @@ var WebConsoleUtils = {
                       + ": " + value);
         return null;
     }
   },
 };
 
 exports.Utils = WebConsoleUtils;
 
-// /////////////////////////////////////////////////////////////////////////////
 // The page errors listener
-// /////////////////////////////////////////////////////////////////////////////
 
 /**
  * The nsIConsoleService listener. This is used to send all of the console
  * messages (JavaScript, CSS and more) to the remote Web Console instance.
  *
  * @constructor
  * @param nsIDOMWindow [window]
  *        Optional - the window object for which we are created. This is used
@@ -362,19 +360,17 @@ ConsoleServiceListener.prototype =
    * Remove the nsIConsoleService listener.
    */
   destroy: function () {
     Services.console.unregisterListener(this);
     this.listener = this.window = null;
   },
 };
 
-// /////////////////////////////////////////////////////////////////////////////
 // The window.console API observer
-// /////////////////////////////////////////////////////////////////////////////
 
 /**
  * The window.console API observer. This allows the window.console API messages
  * to be sent to the remote Web Console instance.
  *
  * @constructor
  * @param nsIDOMWindow window
  *        Optional - the window object for which we are created. This is used
--- a/devtools/server/actors/webconsole.js
+++ b/devtools/server/actors/webconsole.js
@@ -546,19 +546,17 @@ WebConsoleActor.prototype =
    *
    * @return object
    */
   getLastConsoleInputEvaluation: function WCU_getLastConsoleInputEvaluation()
   {
     return this._lastConsoleInputEvaluation;
   },
 
-  // ////////////////
   // Request handlers for known packet types.
-  // ////////////////
 
   /**
    * Handler for the "startListeners" request.
    *
    * @param object aRequest
    *        The JSON request object received from the Web Console client.
    * @return object
    *         The response object which holds the startedListeners array.
@@ -1088,19 +1086,17 @@ WebConsoleActor.prototype =
             this.networkMonitorChild.throttleData = this._prefs[key];
           }
         }
       }
     }
     return { updated: Object.keys(aRequest.preferences) };
   },
 
-  // ////////////////
   // End of request handlers.
-  // ////////////////
 
   /**
    * Create an object with the API we expose to the Web Console during
    * JavaScript evaluation.
    * This object inherits properties and methods from the Web Console actor.
    *
    * @private
    * @param object aDebuggerGlobal
@@ -1424,19 +1420,17 @@ WebConsoleActor.prototype =
       result: result,
       helperResult: helperResult,
       dbg: dbg,
       frame: frame,
       window: dbgWindow,
     };
   },
 
-  // ////////////////
   // Event handlers for various listeners.
-  // ////////////////
 
   /**
    * Handler for messages received from the ConsoleServiceListener. This method
    * sends the nsIConsoleMessage to the remote Web Console client.
    *
    * @param nsIConsoleMessage aMessage
    *        The message we need to send to the client.
    */
@@ -1704,19 +1698,17 @@ WebConsoleActor.prototype =
       from: this.actorID,
       type: "serverLogCall",
       message: msg,
     };
 
     this.conn.send(packet);
   },
 
-  // ////////////////
   // End of event handlers for various listeners.
-  // ////////////////
 
   /**
    * Prepare a message from the console API to be sent to the remote Web Console
    * instance.
    *
    * @param object aMessage
    *        The original message received from console-api-log-event.
    * @param boolean aUseObjectGlobal
--- a/devtools/shared/webconsole/network-monitor.js
+++ b/devtools/shared/webconsole/network-monitor.js
@@ -19,19 +19,17 @@ loader.lazyRequireGetter(this, "flags",
 loader.lazyRequireGetter(this, "DebuggerServer",
                          "devtools/server/main", true);
 loader.lazyImporter(this, "NetUtil", "resource://gre/modules/NetUtil.jsm");
 loader.lazyServiceGetter(this, "gActivityDistributor",
                          "@mozilla.org/network/http-activity-distributor;1",
                          "nsIHttpActivityDistributor");
 const {NetworkThrottleManager} = require("devtools/shared/webconsole/throttle");
 
-// /////////////////////////////////////////////////////////////////////////////
 // Network logging
-// /////////////////////////////////////////////////////////////////////////////
 
 // The maximum uint32 value.
 const PR_UINT32_MAX = 4294967295;
 
 // HTTP status codes.
 const HTTP_MOVED_PERMANENTLY = 301;
 const HTTP_FOUND = 302;
 const HTTP_SEE_OTHER = 303;
--- a/storage/test/unit/head_storage.js
+++ b/storage/test/unit/head_storage.js
@@ -262,18 +262,17 @@ function getTableRowCount(aTableName)
     currentRows = countStmt.row.count;
   }
   finally {
     countStmt.finalize();
   }
   return currentRows;
 }
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Promise-Returning Functions
+// Promise-Returning Functions
 
 function asyncClone(db, readOnly) {
   let deferred = Promise.defer();
   db.asyncClone(readOnly, function (status, db2) {
     if (Components.isSuccessCode(status)) {
       deferred.resolve(db2);
     } else {
       deferred.reject(status);
--- a/storage/test/unit/test_js_helpers.js
+++ b/storage/test/unit/test_js_helpers.js
@@ -4,18 +4,17 @@
  * Any copyright is dedicated to the Public Domain.
  * http://creativecommons.org/publicdomain/zero/1.0/
  */
 
 /**
  * This file tests that the JS language helpers in various ways.
  */
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Test Functions
+// Test Functions
 
 function test_params_enumerate()
 {
   let stmt = createStatement(
     "SELECT * FROM test WHERE id IN (:a, :b, :c)"
   );
 
   // Make sure they are right.
@@ -96,18 +95,17 @@ function test_params_gets_async()
   }
 
   // Now make sure we didn't magically get any additional properties.
   let finalCount = Object.getOwnPropertyNames(stmt.params).length;
   do_check_eq(originalCount + expected.length, finalCount);
   */
 }
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Test Runner
+// Test Runner
 
 var tests = [
   test_params_enumerate,
   test_params_prototype,
   test_row_prototype,
   test_params_gets_sync,
   test_params_gets_async,
 ];
--- a/storage/test/unit/test_locale_collation.js
+++ b/storage/test/unit/test_locale_collation.js
@@ -19,18 +19,17 @@ const DATA_BASENAME = "locale_collation.
 var gStrings;
 
 // A collation created from the application's locale.  Used by localeCompare().
 var gLocaleCollation;
 
 // A connection to our in-memory UTF-16-encoded database.
 var gUtf16Conn;
 
-// /////////////////////////////////////////////////////////////////////////////
-// // Helper Functions
+// Helper Functions
 
 /**
  * Since we create a UTF-16 database we have to clean it up, in addition to
  * the normal cleanup of Storage tests.
  */
 function cleanupLocaleTests()
 {
   print("-- Cleaning up test_locale_collation.js suite.");
@@ -246,18 +245,17 @@ function setup()
 
   let localeSvc = Cc["@mozilla.org/intl/nslocaleservice;1"].
                   getService(Ci.nsILocaleService);
   let collFact = Cc["@mozilla.org/intl/collation-factory;1"].
                  createInstance(Ci.nsICollationFactory);
   gLocaleCollation = collFact.CreateCollation(localeSvc.getApplicationLocale());
 }
 
-// /////////////////////////////////////////////////////////////////////////////
-// // Test Runs
+// Test Runs
 
 var gTests = [
   {
     desc: "Case and accent sensitive UTF-8",
     run:   () => runUtf8Test("locale_case_accent_sensitive")
   },
 
   {
--- a/storage/test/unit/test_sqlite_secure_delete.js
+++ b/storage/test/unit/test_sqlite_secure_delete.js
@@ -4,18 +4,17 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /**
  * This file tests to make sure that SQLite was compiled with
  * SQLITE_SECURE_DELETE=1.
  */
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Helper Methods
+// Helper Methods
 
 /**
  * Reads the contents of a file and returns it as a string.
  *
  * @param aFile
  *        The file to return from.
  * @return the contents of the file in the form of a string.
  */
@@ -26,18 +25,17 @@ function getFileContents(aFile)
   fstream.init(aFile, -1, 0, 0);
 
   let bstream = Cc["@mozilla.org/binaryinputstream;1"].
                 createInstance(Ci.nsIBinaryInputStream);
   bstream.setInputStream(fstream);
   return bstream.readBytes(bstream.available());
 }
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Tests
+// Tests
 
 add_test(function test_delete_removes_data() {
   const TEST_STRING = "SomeRandomStringToFind";
 
   let file = getTestDB();
   let db = getService().openDatabase(file);
 
   // Create the table and insert the data.
--- a/storage/test/unit/test_statement_executeAsync.js
+++ b/storage/test/unit/test_statement_executeAsync.js
@@ -869,19 +869,17 @@ function test_multiple_results()
   // Now check that we get back two rows of data from our async query.
   let stmt = makeTestStatement("SELECT * FROM test");
   execAsync(stmt, {}, expectedResults);
 
   stmt.finalize();
   run_next_test();
 }
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Test Runner
-
+// Test Runner
 
 const TEST_PASS_SYNC = 0;
 const TEST_PASS_ASYNC = 1;
 /**
  * We run 2 passes against the test.  One where makeTestStatement generates
  * synchronous (mozIStorageStatement) statements and one where it generates
  * asynchronous (mozIStorageAsyncStatement) statements.
  *
--- a/storage/test/unit/test_storage_connection.js
+++ b/storage/test/unit/test_storage_connection.js
@@ -1,16 +1,15 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 // This file tests the functions of mozIStorageConnection
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Test Functions
+// Test Functions
 
 add_task(function* test_connectionReady_open() {
   // there doesn't seem to be a way for the connection to not be ready (unless
   // we close it with mozIStorageConnection::Close(), but we don't for this).
   // It can only fail if GetPath fails on the database file, or if we run out
   // of memory trying to use an in-memory database
 
   var msc = getOpenedDatabase();
--- a/toolkit/components/contentprefs/tests/unit/test_contentPrefs.js
+++ b/toolkit/components/contentprefs/tests/unit/test_contentPrefs.js
@@ -309,18 +309,18 @@ function run_test() {
   cps.setPref(uri, "test.observer.2", "test value");
   cps.removePref(uri, "test.observer.1");
   cps.removePref(uri, "test.observer.2");
   do_check_eq(specificObserver.numTimesSetCalled, 1);
   do_check_eq(genericObserver.numTimesSetCalled, 2);
   do_check_eq(specificObserver.numTimesRemovedCalled, 1);
   do_check_eq(genericObserver.numTimesRemovedCalled, 2);
 
-  // // Make sure information about private context is properly
-  // // retrieved by the observer.
+  // Make sure information about private context is properly
+  // retrieved by the observer.
   cps.setPref(uri, "test.observer.private", "test value", {usePrivateBrowsing: true});
   cps.setPref(uri, "test.observer.normal", "test value", {usePrivateBrowsing: false});
   cps.removePref(uri, "test.observer.private");
   cps.removePref(uri, "test.observer.normal");
 
   // Make sure we can remove observers and they don't get notified
   // about changes anymore.
   cps.removeObserver("test.observer.1", specificObserver);
--- a/toolkit/components/downloads/nsDownloadManagerUI.js
+++ b/toolkit/components/downloads/nsDownloadManagerUI.js
@@ -1,33 +1,30 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Constants
+// Constants
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cr = Components.results;
 const DOWNLOAD_MANAGER_URL = "chrome://mozapps/content/downloads/downloads.xul";
 const PREF_FLASH_COUNT = "browser.download.manager.flashCount";
 
-// //////////////////////////////////////////////////////////////////////////////
-// // nsDownloadManagerUI class
+// nsDownloadManagerUI class
 
 function nsDownloadManagerUI() {}
 
 nsDownloadManagerUI.prototype = {
   classID: Components.ID("7dfdf0d1-aff6-4a34-bad1-d0fe74601642"),
 
-  // ////////////////////////////////////////////////////////////////////////////
-  // // nsIDownloadManagerUI
+  // nsIDownloadManagerUI
 
   show: function show(aWindowContext, aDownload, aReason, aUsePrivateUI)
   {
     if (!aReason)
       aReason = Ci.nsIDownloadManagerUI.REASON_USER_INTERACTED;
 
     // First we see if it is already visible
     let window = this.recentWindow;
@@ -85,29 +82,26 @@ nsDownloadManagerUI.prototype = {
     try {
       flashCount = prefs.getIntPref(PREF_FLASH_COUNT);
     } catch (e) { }
 
     var win = this.recentWindow.QueryInterface(Ci.nsIDOMChromeWindow);
     win.getAttentionWithCycleCount(flashCount);
   },
 
-  // ////////////////////////////////////////////////////////////////////////////
-  // // nsDownloadManagerUI
+  // nsDownloadManagerUI
 
   get recentWindow() {
     var wm = Cc["@mozilla.org/appshell/window-mediator;1"].
              getService(Ci.nsIWindowMediator);
     return wm.getMostRecentWindow("Download:Manager");
   },
 
-  // ////////////////////////////////////////////////////////////////////////////
-  // // nsISupports
+  // nsISupports
 
   QueryInterface: XPCOMUtils.generateQI([Ci.nsIDownloadManagerUI])
 };
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Module
+// Module
 
 var components = [nsDownloadManagerUI];
 this.NSGetFactory = XPCOMUtils.generateNSGetFactory(components);
 
--- a/toolkit/components/downloads/test/unit/tail_download_manager.js
+++ b/toolkit/components/downloads/test/unit/tail_download_manager.js
@@ -5,18 +5,17 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /**
  * Provides infrastructure for automated download components tests.
  */
 
 "use strict";
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Termination functions common to all tests
+// Termination functions common to all tests
 
 add_task(function* test_common_terminate()
 {
   // Stop the HTTP server.  We must do this inside a task in "tail.js" until the
   // xpcshell testing framework supports asynchronous termination functions.
   let deferred = Promise.defer();
   gHttpServer.stop(deferred.resolve);
   yield deferred.promise;
--- a/toolkit/components/downloads/test/unit/test_app_rep_maclinux.js
+++ b/toolkit/components/downloads/test/unit/test_app_rep_maclinux.js
@@ -3,18 +3,17 @@
 /* Any copyright is dedicated to the Public Domain.
  * http://creativecommons.org/publicdomain/zero/1.0/ */
 
 /**
  * This file tests signature extraction using Windows Authenticode APIs of
  * downloaded files.
  */
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Globals
+// Globals
 
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 
 XPCOMUtils.defineLazyModuleGetter(this, "NetUtil",
                                   "resource://gre/modules/NetUtil.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "Promise",
                                   "resource://gre/modules/Promise.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "Task",
@@ -59,18 +58,17 @@ function registerTableUpdate(aTable, aFi
     do_print("Length of " + aFilename + ": " + contents.length);
     response.setHeader("Content-Type",
                        "application/vnd.google.safebrowsing-update", false);
     response.setStatusLine(request.httpVersion, 200, "OK");
     response.bodyOutputStream.write(contents, contents.length);
   });
 }
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Tests
+// Tests
 
 function run_test()
 {
   run_next_test();
 }
 
 add_task(function test_setup()
 {
--- a/toolkit/components/downloads/test/unit/test_app_rep_windows.js
+++ b/toolkit/components/downloads/test/unit/test_app_rep_windows.js
@@ -3,18 +3,17 @@
 /* Any copyright is dedicated to the Public Domain.
  * http://creativecommons.org/publicdomain/zero/1.0/ */
 
 /**
  * This file tests signature extraction using Windows Authenticode APIs of
  * downloaded files.
  */
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Globals
+// Globals
 
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 
 XPCOMUtils.defineLazyModuleGetter(this, "FileUtils",
                                   "resource://gre/modules/FileUtils.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "NetUtil",
                                   "resource://gre/modules/NetUtil.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "Promise",
@@ -155,18 +154,17 @@ function registerTableUpdate(aTable, aFi
     do_print("Length of " + aFilename + ": " + contents.length);
     response.setHeader("Content-Type",
                        "application/vnd.google.safebrowsing-update", false);
     response.setStatusLine(request.httpVersion, 200, "OK");
     response.bodyOutputStream.write(contents, contents.length);
   });
 }
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Tests
+// Tests
 
 function run_test()
 {
   run_next_test();
 }
 
 add_task(function* test_setup()
 {
--- a/toolkit/components/jsdownloads/src/DownloadCore.jsm
+++ b/toolkit/components/jsdownloads/src/DownloadCore.jsm
@@ -45,18 +45,17 @@ this.EXPORTED_SYMBOLS = [
   "DownloadTarget",
   "DownloadError",
   "DownloadSaver",
   "DownloadCopySaver",
   "DownloadLegacySaver",
   "DownloadPDFSaver",
 ];
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Globals
+// Globals
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cu = Components.utils;
 const Cr = Components.results;
 
 Cu.import("resource://gre/modules/Integration.jsm");
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
@@ -137,18 +136,17 @@ function deserializeUnknownProperties(aO
 
 /**
  * This determines the minimum time interval between updates to the number of
  * bytes transferred, and is a limiting factor to the sequence of readings used
  * in calculating the speed of the download.
  */
 const kProgressUpdateIntervalMs = 400;
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Download
+// Download
 
 /**
  * Represents a single download, with associated state and actions.  This object
  * is transient, though it can be included in a DownloadList so that it can be
  * managed by the user interface and persisted across sessions.
  */
 this.Download = function ()
 {
@@ -1244,18 +1242,17 @@ Download.fromSerializable = function (aS
     property != "source" &&
     property != "target" &&
     property != "error" &&
     property != "saver");
 
   return download;
 };
 
-// //////////////////////////////////////////////////////////////////////////////
-// // DownloadSource
+// DownloadSource
 
 /**
  * Represents the source of a download, for example a document or an URI.
  */
 this.DownloadSource = function () {}
 
 this.DownloadSource.prototype = {
   /**
@@ -1371,18 +1368,17 @@ this.DownloadSource.fromSerializable = f
 
     deserializeUnknownProperties(source, aSerializable, property =>
       property != "url" && property != "isPrivate" && property != "referrer");
   }
 
   return source;
 };
 
-// //////////////////////////////////////////////////////////////////////////////
-// // DownloadTarget
+// DownloadTarget
 
 /**
  * Represents the target of a download, for example a file in the global
  * downloads directory, or a file in the system temporary directory.
  */
 this.DownloadTarget = function () {}
 
 this.DownloadTarget.prototype = {
@@ -1500,18 +1496,17 @@ this.DownloadTarget.fromSerializable = f
     }
 
     deserializeUnknownProperties(target, aSerializable, property =>
       property != "path" && property != "partFilePath");
   }
   return target;
 };
 
-// //////////////////////////////////////////////////////////////////////////////
-// // DownloadError
+// DownloadError
 
 /**
  * Provides detailed information about a download failure.
  *
  * @param aProperties
  *        Object which may contain any of the following properties:
  *          {
  *            result: Result error code, defaulting to Cr.NS_ERROR_FAILURE
@@ -1696,18 +1691,17 @@ this.DownloadError.fromSerializable = fu
     property != "becauseBlockedByParentalControls" &&
     property != "becauseBlockedByReputationCheck" &&
     property != "becauseBlockedByRuntimePermissions" &&
     property != "reputationCheckVerdict");
 
   return e;
 };
 
-// //////////////////////////////////////////////////////////////////////////////
-// // DownloadSaver
+// DownloadSaver
 
 /**
  * Template for an object that actually transfers the data for the download.
  */
 this.DownloadSaver = function () {}
 
 this.DownloadSaver.prototype = {
   /**
@@ -1855,18 +1849,17 @@ this.DownloadSaver.fromSerializable = fu
       saver = DownloadPDFSaver.fromSerializable(serializable);
       break;
     default:
       throw new Error("Unrecoginzed download saver type.");
   }
   return saver;
 };
 
-// //////////////////////////////////////////////////////////////////////////////
-// // DownloadCopySaver
+// DownloadCopySaver
 
 /**
  * Saver object that simply copies the entire source file to the target.
  */
 this.DownloadCopySaver = function () {}
 
 this.DownloadCopySaver.prototype = {
   __proto__: DownloadSaver.prototype,
@@ -2335,18 +2328,17 @@ this.DownloadCopySaver.fromSerializable 
   }
 
   deserializeUnknownProperties(saver, aSerializable, property =>
     property != "entityID" && property != "type");
 
   return saver;
 };
 
-// //////////////////////////////////////////////////////////////////////////////
-// // DownloadLegacySaver
+// DownloadLegacySaver
 
 /**
  * Saver object that integrates with the legacy nsITransfer interface.
  *
  * For more background on the process, see the DownloadLegacyTransfer object.
  */
 this.DownloadLegacySaver = function ()
 {
@@ -2719,18 +2711,17 @@ this.DownloadLegacySaver.prototype = {
  * Returns a new DownloadLegacySaver object.  This saver type has a
  * deserializable form only when creating a new object in memory, because it
  * cannot be serialized to disk.
  */
 this.DownloadLegacySaver.fromSerializable = function () {
   return new DownloadLegacySaver();
 };
 
-// //////////////////////////////////////////////////////////////////////////////
-// // DownloadPDFSaver
+// DownloadPDFSaver
 
 /**
  * This DownloadSaver type creates a PDF file from the current document in a
  * given window, specified using the windowRef property of the DownloadSource
  * object associated with the download.
  *
  * In order to prevent the download from saving a different document than the one
  * originally loaded in the window, any attempt to restart the download will fail.
--- a/toolkit/components/jsdownloads/src/DownloadImport.jsm
+++ b/toolkit/components/jsdownloads/src/DownloadImport.jsm
@@ -5,18 +5,17 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 "use strict";
 
 this.EXPORTED_SYMBOLS = [
   "DownloadImport",
 ];
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Globals
+// Globals
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cu = Components.utils;
 const Cr = Components.results;
 
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 
@@ -37,18 +36,17 @@ XPCOMUtils.defineLazyModuleGetter(this, 
  * These are the only types of download states that
  * we will import.
  */
 const DOWNLOAD_NOTSTARTED = -1;
 const DOWNLOAD_DOWNLOADING = 0;
 const DOWNLOAD_PAUSED = 4;
 const DOWNLOAD_QUEUED = 5;
 
-// //////////////////////////////////////////////////////////////////////////////
-// // DownloadImport
+// DownloadImport
 
 /**
  * Provides an object that has a method to import downloads
  * from the previous SQLite storage format.
  *
  * @param aList   A DownloadList where each successfully
  *                imported download will be added.
  * @param aPath   The path to the database file.
--- a/toolkit/components/jsdownloads/src/DownloadLegacy.js
+++ b/toolkit/components/jsdownloads/src/DownloadLegacy.js
@@ -11,33 +11,31 @@
  * New code is expected to use the "Downloads.jsm" module directly, without
  * going through the interfaces implemented in this XPCOM component.  These
  * interfaces are only maintained for backwards compatibility with components
  * that still work synchronously on the main thread.
  */
 
 "use strict";
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Globals
+// Globals
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cu = Components.utils;
 const Cr = Components.results;
 
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 
 XPCOMUtils.defineLazyModuleGetter(this, "Downloads",
                                   "resource://gre/modules/Downloads.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "Promise",
                                   "resource://gre/modules/Promise.jsm");
 
-// //////////////////////////////////////////////////////////////////////////////
-// // DownloadLegacyTransfer
+// DownloadLegacyTransfer
 
 /**
  * nsITransfer implementation that provides a bridge to a Download object.
  *
  * Legacy downloads work differently than the JavaScript implementation.  In the
  * latter, the caller only provides the properties for the Download object and
  * the entire process is handled by the "start" method.  In the legacy
  * implementation, the caller must create a separate object to execute the
@@ -65,25 +63,23 @@ XPCOMUtils.defineLazyModuleGetter(this, 
 function DownloadLegacyTransfer()
 {
   this._deferDownload = Promise.defer();
 }
 
 DownloadLegacyTransfer.prototype = {
   classID: Components.ID("{1b4c85df-cbdd-4bb6-b04e-613caece083c}"),
 
-  // ////////////////////////////////////////////////////////////////////////////
-  // // nsISupports
+  // nsISupports
 
   QueryInterface: XPCOMUtils.generateQI([Ci.nsIWebProgressListener,
                                          Ci.nsIWebProgressListener2,
                                          Ci.nsITransfer]),
 
-  // ////////////////////////////////////////////////////////////////////////////
-  // // nsIWebProgressListener
+  // nsIWebProgressListener
 
   onStateChange: function DLT_onStateChange(aWebProgress, aRequest, aStateFlags,
                                             aStatus)
   {
     if (!Components.isSuccessCode(aStatus)) {
       this._componentFailed = true;
     }
 
@@ -185,18 +181,17 @@ DownloadLegacyTransfer.prototype = {
       this._deferDownload.promise.then(function DLT_OSC_onDownload(aDownload) {
         aDownload.saver.onTransferFinished(aRequest, aStatus);
       }).then(null, Cu.reportError);
     }
   },
 
   onSecurityChange: function () { },
 
-  // ////////////////////////////////////////////////////////////////////////////
-  // // nsIWebProgressListener2
+  // nsIWebProgressListener2
 
   onProgressChange64: function DLT_onProgressChange64(aWebProgress, aRequest,
                                                       aCurSelfProgress,
                                                       aMaxSelfProgress,
                                                       aCurTotalProgress,
                                                       aMaxTotalProgress)
   {
     // Wait for the associated Download object to be available.
@@ -208,18 +203,17 @@ DownloadLegacyTransfer.prototype = {
   onRefreshAttempted: function DLT_onRefreshAttempted(aWebProgress, aRefreshURI,
                                                       aMillis, aSameURI)
   {
     // Indicate that refreshes and redirects are allowed by default.  However,
     // note that download components don't usually call this method at all.
     return true;
   },
 
-  // ////////////////////////////////////////////////////////////////////////////
-  // // nsITransfer
+  // nsITransfer
 
   init: function DLT_init(aSource, aTarget, aDisplayName, aMIMEInfo, aStartTime,
                           aTempFile, aCancelable, aIsPrivate)
   {
     this._cancelable = aCancelable;
 
     let launchWhenSucceeded = false, contentType = null, launcherPath = null;
 
@@ -273,18 +267,17 @@ DownloadLegacyTransfer.prototype = {
     this._signatureInfo = signatureInfo;
   },
 
   setRedirects: function (redirects)
   {
     this._redirects = redirects;
   },
 
-  // ////////////////////////////////////////////////////////////////////////////
-  // // Private methods and properties
+  // Private methods and properties
 
   /**
    * This deferred object contains a promise that is resolved with the Download
    * object associated with this nsITransfer instance, when it is available.
    */
   _deferDownload: null,
 
   /**
@@ -306,12 +299,11 @@ DownloadLegacyTransfer.prototype = {
   _sha256Hash: null,
 
   /**
    * Save the signature info in a serialized protobuf of the downloaded file.
    */
   _signatureInfo: null,
 };
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Module
+// Module
 
 this.NSGetFactory = XPCOMUtils.generateNSGetFactory([DownloadLegacyTransfer]);
--- a/toolkit/components/jsdownloads/src/DownloadList.jsm
+++ b/toolkit/components/jsdownloads/src/DownloadList.jsm
@@ -21,33 +21,31 @@
 "use strict";
 
 this.EXPORTED_SYMBOLS = [
   "DownloadList",
   "DownloadCombinedList",
   "DownloadSummary",
 ];
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Globals
+// Globals
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cu = Components.utils;
 const Cr = Components.results;
 
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 
 XPCOMUtils.defineLazyModuleGetter(this, "Promise",
                                   "resource://gre/modules/Promise.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "Task",
                                   "resource://gre/modules/Task.jsm");
 
-// //////////////////////////////////////////////////////////////////////////////
-// // DownloadList
+// DownloadList
 
 /**
  * Represents a collection of Download objects that can be viewed and managed by
  * the user interface, and persisted across sessions.
  */
 this.DownloadList = function ()
 {
   this._downloads = [];
@@ -250,18 +248,17 @@ this.DownloadList.prototype = {
           // processing the other downloads in the list.
           download.finalize(true).then(null, Cu.reportError);
         }
       }
     }.bind(this)).then(null, Cu.reportError);
   },
 };
 
-// //////////////////////////////////////////////////////////////////////////////
-// // DownloadCombinedList
+// DownloadCombinedList
 
 /**
  * Provides a unified, unordered list combining public and private downloads.
  *
  * Download objects added to this list are also added to one of the two
  * underlying lists, based on their "source.isPrivate" property.  Views on this
  * list will receive notifications for both public and private downloads.
  *
@@ -335,18 +332,17 @@ this.DownloadCombinedList.prototype = {
   remove: function (aDownload)
   {
     if (aDownload.source.isPrivate) {
       return this._privateList.remove(aDownload);
     }
     return this._publicList.remove(aDownload);
   },
 
-  // ////////////////////////////////////////////////////////////////////////////
-  // // DownloadList view
+  // DownloadList view
 
   onDownloadAdded: function (aDownload)
   {
     this._downloads.push(aDownload);
     this._notifyAllViews("onDownloadAdded", aDownload);
   },
 
   onDownloadChanged: function (aDownload)
@@ -359,18 +355,17 @@ this.DownloadCombinedList.prototype = {
     let index = this._downloads.indexOf(aDownload);
     if (index != -1) {
       this._downloads.splice(index, 1);
     }
     this._notifyAllViews("onDownloadRemoved", aDownload);
   },
 };
 
-// //////////////////////////////////////////////////////////////////////////////
-// // DownloadSummary
+// DownloadSummary
 
 /**
  * Provides an aggregated view on the contents of a DownloadList.
  */
 this.DownloadSummary = function ()
 {
   this._downloads = [];
   this._views = new Set();
@@ -533,18 +528,17 @@ this.DownloadSummary.prototype = {
           view.onSummaryChanged();
         }
       } catch (ex) {
         Cu.reportError(ex);
       }
     }
   },
 
-  // ////////////////////////////////////////////////////////////////////////////
-  // // DownloadList view
+  // DownloadList view
 
   onDownloadAdded: function (aDownload)
   {
     this._downloads.push(aDownload);
     if (this._list) {
       this._onListChanged();
     }
   },
--- a/toolkit/components/jsdownloads/src/DownloadStore.jsm
+++ b/toolkit/components/jsdownloads/src/DownloadStore.jsm
@@ -29,18 +29,17 @@
  */
 
 "use strict";
 
 this.EXPORTED_SYMBOLS = [
   "DownloadStore",
 ];
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Globals
+// Globals
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cu = Components.utils;
 const Cr = Components.results;
 
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 
@@ -54,18 +53,17 @@ XPCOMUtils.defineLazyModuleGetter(this, 
 XPCOMUtils.defineLazyGetter(this, "gTextDecoder", function () {
   return new TextDecoder();
 });
 
 XPCOMUtils.defineLazyGetter(this, "gTextEncoder", function () {
   return new TextEncoder();
 });
 
-// //////////////////////////////////////////////////////////////////////////////
-// // DownloadStore
+// DownloadStore
 
 /**
  * Handles serialization of Download objects and persistence into a file, so
  * that the state of downloads can be restored across sessions.
  *
  * @param aList
  *        DownloadList object to be populated or serialized.
  * @param aPath
--- a/toolkit/components/jsdownloads/src/DownloadUIHelper.jsm
+++ b/toolkit/components/jsdownloads/src/DownloadUIHelper.jsm
@@ -9,18 +9,17 @@
  */
 
 "use strict";
 
 this.EXPORTED_SYMBOLS = [
   "DownloadUIHelper",
 ];
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Globals
+// Globals
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cu = Components.utils;
 const Cr = Components.results;
 
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 Cu.import("resource://gre/modules/AppConstants.jsm");
@@ -39,18 +38,17 @@ const kStringsRequiringFormatting = {
   fileExecutableSecurityWarning: true,
   cancelDownloadsOKTextMultiple: true,
   quitCancelDownloadsAlertMsgMultiple: true,
   quitCancelDownloadsAlertMsgMacMultiple: true,
   offlineCancelDownloadsAlertMsgMultiple: true,
   leavePrivateBrowsingWindowsCancelDownloadsAlertMsgMultiple2: true
 };
 
-// //////////////////////////////////////////////////////////////////////////////
-// // DownloadUIHelper
+// DownloadUIHelper
 
 /**
  * Provides functions to handle status and messages in the user interface.
  */
 this.DownloadUIHelper = {
   /**
    * Returns an object that can be used to display prompts related to downloads.
    *
@@ -92,18 +90,17 @@ XPCOMUtils.defineLazyGetter(DownloadUIHe
       };
     } else {
       strings[stringName] = string.value;
     }
   }
   return strings;
 });
 
-// //////////////////////////////////////////////////////////////////////////////
-// // DownloadPrompter
+// DownloadPrompter
 
 /**
  * Allows displaying prompts related to downloads.
  *
  * @param aParent
  *        The nsIDOMWindow to which prompts should be attached, or null to
  *        attach prompts to the most recently active window.
  */
--- a/toolkit/components/jsdownloads/src/Downloads.jsm
+++ b/toolkit/components/jsdownloads/src/Downloads.jsm
@@ -9,18 +9,17 @@
  */
 
 "use strict";
 
 this.EXPORTED_SYMBOLS = [
   "Downloads",
 ];
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Globals
+// Globals
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cu = Components.utils;
 const Cr = Components.results;
 
 Cu.import("resource://gre/modules/Integration.jsm");
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
@@ -37,18 +36,17 @@ XPCOMUtils.defineLazyModuleGetter(this, 
 XPCOMUtils.defineLazyModuleGetter(this, "Promise",
                                   "resource://gre/modules/Promise.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "Task",
                                   "resource://gre/modules/Task.jsm");
 
 Integration.downloads.defineModuleGetter(this, "DownloadIntegration",
             "resource://gre/modules/DownloadIntegration.jsm");
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Downloads
+// Downloads
 
 /**
  * This object is exposed directly to the consumers of this JavaScript module,
  * and provides the only entry point to get references to back-end objects.
  */
 this.Downloads = {
   /**
    * Work on downloads that were not started from a private browsing window.
--- a/toolkit/components/jsdownloads/test/browser/head.js
+++ b/toolkit/components/jsdownloads/test/browser/head.js
@@ -4,18 +4,17 @@
  * http://creativecommons.org/publicdomain/zero/1.0/ */
 
 /**
  * Provides infrastructure for automated download components tests.
  */
 
 "use strict";
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Globals
+// Globals
 
 var Cc = Components.classes;
 var Ci = Components.interfaces;
 var Cu = Components.utils;
 var Cr = Components.results;
 
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 
@@ -29,18 +28,17 @@ XPCOMUtils.defineLazyModuleGetter(this, 
                                   "resource://gre/modules/Services.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "HttpServer",
                                   "resource://testing-common/httpd.js");
 XPCOMUtils.defineLazyModuleGetter(this, "OS",
                                   "resource://gre/modules/osfile.jsm");
 
 const TEST_TARGET_FILE_NAME_PDF = "test-download.pdf";
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Support functions
+// Support functions
 
 // While the previous test file should have deleted all the temporary files it
 // used, on Windows these might still be pending deletion on the physical file
 // system.  Thus, start from a new base number every time, to make a collision
 // with a file that is still pending deletion highly unlikely.
 var gFileCounter = Math.floor(Math.random() * 1000000);
 
 /**
--- a/toolkit/components/jsdownloads/test/unit/common_test_Download.js
+++ b/toolkit/components/jsdownloads/test/unit/common_test_Download.js
@@ -6,18 +6,17 @@
 /**
  * This script is loaded by "test_DownloadCore.js" and "test_DownloadLegacy.js"
  * with different values of the gUseLegacySaver variable, to apply tests to both
  * the "copy" and "legacy" saver implementations.
  */
 
 "use strict";
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Globals
+// Globals
 
 const kDeleteTempFileOnExit = "browser.helperApps.deleteTempFileOnExit";
 
 /**
  * Creates and starts a new download, using either DownloadCopySaver or
  * DownloadLegacySaver based on the current test run.
  *
  * @return {Promise}
@@ -164,18 +163,17 @@ function waitForDirectoryShown() {
         resolve(path);
         return Promise.resolve();
       },
     });
     Integration.downloads.register(waitFn);
   });
 }
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Tests
+// Tests
 
 /**
  * Executes a download and checks its basic properties after construction.
  * The download is started by constructing the simplest Download object with
  * the "copy" saver, or using the legacy nsITransfer interface.
  */
 add_task(function* test_basic()
 {
--- a/toolkit/components/jsdownloads/test/unit/head.js
+++ b/toolkit/components/jsdownloads/test/unit/head.js
@@ -4,18 +4,17 @@
  * http://creativecommons.org/publicdomain/zero/1.0/ */
 
 /**
  * Provides infrastructure for automated download components tests.
  */
 
 "use strict";
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Globals
+// Globals
 
 var Cc = Components.classes;
 var Ci = Components.interfaces;
 var Cu = Components.utils;
 var Cr = Components.results;
 
 Cu.import("resource://gre/modules/Integration.jsm");
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
@@ -85,18 +84,17 @@ const TEST_DATA_SHORT_GZIP_ENCODED =
  * All the tests are implemented with add_task, this starts them automatically.
  */
 function run_test()
 {
   do_get_profile();
   run_next_test();
 }
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Support functions
+// Support functions
 
 /**
  * HttpServer object initialized before tests start.
  */
 var gHttpServer;
 
 /**
  * Given a file name, returns a string containing an URI that points to the file
@@ -671,18 +669,17 @@ function isValidDate(aDate) {
 }
 
 /**
  * Position of the first byte served by the "interruptible_resumable.txt"
  * handler during the most recent response.
  */
 var gMostRecentFirstBytePos;
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Initialization functions common to all tests
+// Initialization functions common to all tests
 
 add_task(function test_common_initialize()
 {
   // Start the HTTP server.
   gHttpServer = new HttpServer();
   gHttpServer.registerDirectory("/", do_get_file("../data"));
   gHttpServer.start(-1);
   do_register_cleanup(() => {
--- a/toolkit/components/jsdownloads/test/unit/test_DownloadCore.js
+++ b/toolkit/components/jsdownloads/test/unit/test_DownloadCore.js
@@ -7,26 +7,24 @@
  * Tests the main download interfaces using DownloadCopySaver.
  */
 
 "use strict";
 
 XPCOMUtils.defineLazyModuleGetter(this, "DownloadError",
                                   "resource://gre/modules/DownloadCore.jsm");
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Execution of common tests
+// Execution of common tests
 
 var gUseLegacySaver = false;
 
 var scriptFile = do_get_file("common_test_Download.js");
 Services.scriptloader.loadSubScript(NetUtil.newURI(scriptFile).spec);
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Tests
+// Tests
 
 /**
  * Tests the DownloadError object.
  */
 add_task(function test_DownloadError()
 {
   let error = new DownloadError({ result: Cr.NS_ERROR_NOT_RESUMABLE,
                                   message: "Not resumable."});
--- a/toolkit/components/jsdownloads/test/unit/test_DownloadImport.js
+++ b/toolkit/components/jsdownloads/test/unit/test_DownloadImport.js
@@ -2,18 +2,17 @@
  * http://creativecommons.org/publicdomain/zero/1.0/ */
 
 /**
  * Tests the DownloadImport object.
  */
 
 "use strict";
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Globals
+// Globals
 
 XPCOMUtils.defineLazyModuleGetter(this, "Sqlite",
                                   "resource://gre/modules/Sqlite.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "DownloadImport",
                                   "resource://gre/modules/DownloadImport.jsm");
 
 // Importable states
 const DOWNLOAD_NOTSTARTED = -1;
@@ -317,18 +316,17 @@ function checkDownload(aDownload, aDownl
     do_check_eq(aDownload.contentType, aDownloadRow.expectedContentType);
     do_check_eq(aDownload.launcherPath, aDownloadRow.preferredApplication);
 
     do_check_eq(aDownload.launchWhenSucceeded,
                 aDownloadRow.preferredAction != Ci.nsIMIMEInfo.saveToDisk);
   });
 }
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Preparation tasks
+// Preparation tasks
 
 /**
  * Prepares the list of downloads to be added to the database that should
  * be imported by the import procedure.
  */
 add_task(function* prepareDownloadsToImport() {
 
   let sourceUrl = httpUrl("source.txt");
@@ -647,18 +645,17 @@ add_task(function* prepareNonImportableD
       mimeType: "mimeType7",
       preferredAction: Ci.nsIMIMEInfo.saveToDisk,
       preferredApplication: "prerredApplication7",
       autoResume: 1
     },
   ];
 });
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Test
+// Test
 
 /**
  * Creates a temporary Sqlite database with download data and perform an
  * import of that data to the new Downloads API to verify that the import
  * worked correctly.
  */
 add_task(function* test_downloadImport()
 {
--- a/toolkit/components/jsdownloads/test/unit/test_DownloadIntegration.js
+++ b/toolkit/components/jsdownloads/test/unit/test_DownloadIntegration.js
@@ -2,18 +2,17 @@
  * http://creativecommons.org/publicdomain/zero/1.0/ */
 
 /**
  * Tests the DownloadIntegration object.
  */
 
 "use strict";
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Globals
+// Globals
 
 /**
  * Notifies the prompt observers and verify the expected downloads count.
  *
  * @param aIsPrivate
  *        Flag to know is test private observers.
  * @param aExpectedCount
  *        the expected downloads count for quit and offline observers.
@@ -39,18 +38,17 @@ function notifyPromptObservers(aIsPrivat
     DownloadIntegration._testPromptDownloads = -1;
     Services.obs.notifyObservers(cancelQuit, "last-pb-context-exiting", null);
     do_check_eq(DownloadIntegration._testPromptDownloads, aExpectedPBCount);
   }
 
   delete DownloadIntegration._testPromptDownloads;
 }
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Tests
+// Tests
 
 /**
  * Allows re-enabling the real download directory logic during one test.
  */
 function allowDirectoriesInTest() {
   DownloadIntegration.allowDirectories = true;
   function cleanup() {
     DownloadIntegration.allowDirectories = false;
@@ -201,18 +199,17 @@ add_task(function* test_getTemporaryDown
   } else {
     let tempDir = Services.dirsvc.get("TmpD", Ci.nsIFile);
     do_check_eq(downloadDir, tempDir.path);
   }
 
   cleanup();
 });
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Tests DownloadObserver
+// Tests DownloadObserver
 
 /**
  * Re-enables the default observers for the following tests.
  *
  * This takes effect the first time a DownloadList object is created, and lasts
  * until this test file has completed.
  */
 add_task(function* test_observers_setup()
--- a/toolkit/components/jsdownloads/test/unit/test_DownloadLegacy.js
+++ b/toolkit/components/jsdownloads/test/unit/test_DownloadLegacy.js
@@ -4,15 +4,14 @@
  * http://creativecommons.org/publicdomain/zero/1.0/ */
 
 /**
  * Tests the integration with legacy interfaces for downloads.
  */
 
 "use strict";
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Execution of common tests
+// Execution of common tests
 
 var gUseLegacySaver = true;
 
 var scriptFile = do_get_file("common_test_Download.js");
 Services.scriptloader.loadSubScript(NetUtil.newURI(scriptFile).spec);
--- a/toolkit/components/jsdownloads/test/unit/test_DownloadList.js
+++ b/toolkit/components/jsdownloads/test/unit/test_DownloadList.js
@@ -4,18 +4,17 @@
  * http://creativecommons.org/publicdomain/zero/1.0/ */
 
 /**
  * Tests the DownloadList object.
  */
 
 "use strict";
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Globals
+// Globals
 
 /**
  * Returns a PRTime in the past usable to add expirable visits.
  *
  * @note Expiration ignores any visit added in the last 7 days, but it's
  *       better be safe against DST issues, by going back one day more.
  */
 function getExpirablePRTime()
@@ -60,18 +59,17 @@ function promiseExpirableDownloadVisit(a
       handleResult: function () {},
       handleCompletion: function handleCompletion() {
         deferred.resolve();
       }
     });
   return deferred.promise;
 }
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Tests
+// Tests
 
 /**
  * Checks the testing mechanism used to build different download lists.
  */
 add_task(function* test_construction()
 {
   let downloadListOne = yield promiseNewList();
   let downloadListTwo = yield promiseNewList();
--- a/toolkit/components/jsdownloads/test/unit/test_DownloadStore.js
+++ b/toolkit/components/jsdownloads/test/unit/test_DownloadStore.js
@@ -4,18 +4,17 @@
  * http://creativecommons.org/publicdomain/zero/1.0/ */
 
 /**
  * Tests the DownloadStore object.
  */
 
 "use strict";
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Globals
+// Globals
 
 XPCOMUtils.defineLazyModuleGetter(this, "DownloadStore",
                                   "resource://gre/modules/DownloadStore.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "OS",
                                   "resource://gre/modules/osfile.jsm")
 
 /**
  * Returns a new DownloadList object with an associated DownloadStore.
@@ -33,18 +32,17 @@ function promiseNewListAndStore(aStorePa
 {
   return promiseNewList().then(function (aList) {
     let path = aStorePath || getTempFile(TEST_STORE_FILE_NAME).path;
     let store = new DownloadStore(aList, path);
     return [aList, store];
   });
 }
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Tests
+// Tests
 
 /**
  * Saves downloads to a file, then reloads them.
  */
 add_task(function* test_save_reload()
 {
   let [listForSave, storeForSave] = yield promiseNewListAndStore();
   let [listForLoad, storeForLoad] = yield promiseNewListAndStore(
--- a/toolkit/components/jsdownloads/test/unit/test_Downloads.js
+++ b/toolkit/components/jsdownloads/test/unit/test_Downloads.js
@@ -4,18 +4,17 @@
  * http://creativecommons.org/publicdomain/zero/1.0/ */
 
 /**
  * Tests the functions located directly in the "Downloads" object.
  */
 
 "use strict";
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Tests
+// Tests
 
 /**
  * Tests that the createDownload function exists and can be called.  More
  * detailed tests are implemented separately for the DownloadCore module.
  */
 add_task(function* test_createDownload()
 {
   // Creates a simple Download object without starting the download.
--- a/toolkit/components/microformats/microformat-shiv.js
+++ b/toolkit/components/microformats/microformat-shiv.js
@@ -2082,17 +2082,17 @@ var Microformats; // jshint ignore:line
                             url = modules.url.resolve(url, this.options.baseUrl );
                         }
                     }
 
 
                     // add to rel-urls
                     var relUrl = this.getRelProperties(arr[x]);
                     relUrl.rels = items;
-                    // // do not add duplicate rel-urls - based on resolved URLs
+                    // do not add duplicate rel-urls - based on resolved URLs
                     if (url && out['rel-urls'][url] === undefined) {
                         out['rel-urls'][url] = relUrl;
                     }
 
 
                 }
                 x++;
             }
--- a/toolkit/components/passwordmgr/LoginHelper.jsm
+++ b/toolkit/components/passwordmgr/LoginHelper.jsm
@@ -11,26 +11,24 @@
  */
 
 "use strict";
 
 this.EXPORTED_SYMBOLS = [
   "LoginHelper",
 ];
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Globals
+// Globals
 
 const { classes: Cc, interfaces: Ci, utils: Cu, results: Cr } = Components;
 
 Cu.import("resource://gre/modules/Services.jsm");
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 
-// //////////////////////////////////////////////////////////////////////////////
-// // LoginHelper
+// LoginHelper
 
 /**
  * Contains functions shared by different Login Manager components.
  */
 this.LoginHelper = {
   /**
    * Warning: these only update if a logger was created.
    */
--- a/toolkit/components/passwordmgr/LoginImport.jsm
+++ b/toolkit/components/passwordmgr/LoginImport.jsm
@@ -10,36 +10,34 @@
  */
 
 "use strict";
 
 this.EXPORTED_SYMBOLS = [
   "LoginImport",
 ];
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Globals
+// Globals
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cu = Components.utils;
 const Cr = Components.results;
 
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 Cu.import("resource://gre/modules/Task.jsm");
 
 XPCOMUtils.defineLazyModuleGetter(this, "OS",
                                   "resource://gre/modules/osfile.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "Sqlite",
                                   "resource://gre/modules/Sqlite.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "NetUtil",
                                   "resource://gre/modules/NetUtil.jsm");
 
-// //////////////////////////////////////////////////////////////////////////////
-// // LoginImport
+// LoginImport
 
 /**
  * Provides an object that has a method to import login-related data from the
  * previous SQLite storage format.
  *
  * @param aStore
  *        LoginStore object where imported data will be added.
  * @param aPath
--- a/toolkit/components/passwordmgr/LoginStore.jsm
+++ b/toolkit/components/passwordmgr/LoginStore.jsm
@@ -41,18 +41,17 @@
  */
 
 "use strict";
 
 this.EXPORTED_SYMBOLS = [
   "LoginStore",
 ];
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Globals
+// Globals
 
 const { classes: Cc, interfaces: Ci, utils: Cu, results: Cr } = Components;
 
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 Cu.import("resource://gre/modules/Services.jsm");
 
 XPCOMUtils.defineLazyModuleGetter(this, "JSONFile",
                                   "resource://gre/modules/JSONFile.jsm");
@@ -68,18 +67,17 @@ XPCOMUtils.defineLazyModuleGetter(this, 
  * For example, this number should NOT be changed when a new optional field is
  * added to a login entry.
  */
 const kDataVersion = 2;
 
 // The permission type we store in the permission manager.
 const PERMISSION_SAVE_LOGINS = "login-saving";
 
-// //////////////////////////////////////////////////////////////////////////////
-// // LoginStore
+// LoginStore
 
 /**
  * Inherits from JSONFile and handles serialization of login-related data and
  * persistence into a file.
  *
  * @param aPath
  *        String containing the file path where data should be saved.
  */
--- a/toolkit/components/passwordmgr/test/unit/head.js
+++ b/toolkit/components/passwordmgr/test/unit/head.js
@@ -1,16 +1,15 @@
 /**
  * Provides infrastructure for automated login components tests.
  */
 
 "use strict";
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Globals
+// Globals
 
 let { classes: Cc, interfaces: Ci, utils: Cu, results: Cr } = Components;
 
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 Cu.import("resource://gre/modules/Services.jsm");
 Cu.import("resource://gre/modules/LoginRecipes.jsm");
 Cu.import("resource://gre/modules/LoginHelper.jsm");
 Cu.import("resource://testing-common/MockDocument.jsm");
@@ -39,18 +38,17 @@ const newPropertyBag = LoginHelper.newPr
  * All the tests are implemented with add_task, this starts them automatically.
  */
 function run_test()
 {
   do_get_profile();
   run_next_test();
 }
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Global helpers
+// Global helpers
 
 // Some of these functions are already implemented in other parts of the source
 // tree, see bug 946708 about sharing more code.
 
 // While the previous test file should have deleted all the temporary files it
 // used, on Windows these might still be pending deletion on the physical file
 // system.  Thus, start from a new base number every time, to make a collision
 // with a file that is still pending deletion highly unlikely.
@@ -85,25 +83,23 @@ function getTempFile(aLeafName)
     if (file.exists()) {
       file.remove(false);
     }
   });
 
   return file;
 }
 
-// //////////////////////////////////////////////////////////////////////////////
-
 const RecipeHelpers = {
   initNewParent() {
     return (new LoginRecipesParent({ defaults: null })).initializationPromise;
   },
 };
 
-// // Initialization functions common to all tests
+// Initialization functions common to all tests
 
 add_task(function* test_common_initialize()
 {
   // Before initializing the service for the first time, we should copy the key
   // file required to decrypt the logins contained in the SQLite databases used
   // by migration tests.  This file is not required for the other tests.
   yield OS.File.copy(do_get_file("data/key3.db").path,
                      OS.Path.join(OS.Constants.Path.profileDir, "key3.db"));
--- a/toolkit/components/passwordmgr/test/unit/test_OSCrypto_win.js
+++ b/toolkit/components/passwordmgr/test/unit/test_OSCrypto_win.js
@@ -1,24 +1,22 @@
 /**
  * Tests the OSCrypto object.
  */
 
 "use strict";
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Globals
+// Globals
 
 XPCOMUtils.defineLazyModuleGetter(this,  "OSCrypto",
                                   "resource://gre/modules/OSCrypto.jsm");
 
 var crypto = new OSCrypto();
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Tests
+// Tests
 
 add_task(function test_getIELoginHash()
 {
   do_check_eq(crypto.getIELoginHash("https://bugzilla.mozilla.org/page.cgi"),
                                     "4A66FE96607885790F8E67B56EEE52AB539BAFB47D");
 
   do_check_eq(crypto.getIELoginHash("https://github.com/login"),
                                     "0112F7DCE67B8579EA01367678AA44AB9868B5A143");
--- a/toolkit/components/passwordmgr/test/unit/test_disabled_hosts.js
+++ b/toolkit/components/passwordmgr/test/unit/test_disabled_hosts.js
@@ -4,18 +4,17 @@
  * http://creativecommons.org/publicdomain/zero/1.0/ */
 
 /**
  * Tests getLoginSavingEnabled, setLoginSavingEnabled, and getAllDisabledHosts.
  */
 
 "use strict";
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Tests
+// Tests
 
 /**
  * Tests setLoginSavingEnabled and getAllDisabledHosts.
  */
 add_task(function test_setLoginSavingEnabled_getAllDisabledHosts()
 {
   // Add some disabled hosts, and verify that different schemes for the same
   // domain are considered different hosts.
--- a/toolkit/components/passwordmgr/test/unit/test_legacy_empty_formSubmitURL.js
+++ b/toolkit/components/passwordmgr/test/unit/test_legacy_empty_formSubmitURL.js
@@ -32,18 +32,17 @@
  *
  * The only way to have such condition is to be using logins that were initially
  * saved by a very old version of the browser, or because of data manually added
  * by an extension in an old version.
  */
 
 "use strict";
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Tests
+// Tests
 
 /**
  * Adds a login with an empty formSubmitURL, then it verifies that no other
  * form logins can be added for the same host.
  */
 add_task(function test_addLogin_wildcard()
 {
   let loginInfo = TestData.formLogin({ hostname: "http://any.example.com",
--- a/toolkit/components/passwordmgr/test/unit/test_legacy_validation.js
+++ b/toolkit/components/passwordmgr/test/unit/test_legacy_validation.js
@@ -8,18 +8,17 @@
  *
  * These rules exist because of limitations of the "signons.txt" storage file,
  * that is not used anymore.  They are still enforced by the Login Manager
  * service, despite these values can now be safely stored in the back-end.
  */
 
 "use strict";
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Tests
+// Tests
 
 /**
  * Tests legacy validation with addLogin.
  */
 add_task(function test_addLogin_invalid_characters_legacy()
 {
   // Test newlines and carriage returns in properties that contain URLs.
   for (let testValue of ["http://newline\n.example.com",
--- a/toolkit/components/passwordmgr/test/unit/test_logins_change.js
+++ b/toolkit/components/passwordmgr/test/unit/test_logins_change.js
@@ -4,18 +4,17 @@
  * http://creativecommons.org/publicdomain/zero/1.0/ */
 
 /**
  * Tests methods that add, remove, and modify logins.
  */
 
 "use strict";
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Globals
+// Globals
 
 /**
  * Verifies that the specified login is considered invalid by addLogin and by
  * modifyLogin with both nsILoginInfo and nsIPropertyBag arguments.
  *
  * This test requires that the login store is empty.
  *
  * @param aLoginInfo
@@ -70,18 +69,17 @@ function checkLoginInvalid(aLoginInfo, a
 function compareAttributes(objectA, objectB, attributes) {
   // If it's the same object, we want to return false.
   if (objectA == objectB) {
     return false;
   }
   return attributes.every(attr => objectA[attr] == objectB[attr]);
 }
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Tests
+// Tests
 
 /**
  * Tests that adding logins to the database works.
  */
 add_task(function test_addLogin_removeLogin()
 {
   // Each login from the test data should be valid and added to the list.
   for (let loginInfo of TestData.loginList()) {
--- a/toolkit/components/passwordmgr/test/unit/test_logins_decrypt_failure.js
+++ b/toolkit/components/passwordmgr/test/unit/test_logins_decrypt_failure.js
@@ -4,33 +4,31 @@
  * http://creativecommons.org/publicdomain/zero/1.0/ */
 
 /**
  * Tests the case where there are logins that cannot be decrypted.
  */
 
 "use strict";
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Globals
+// Globals
 
 /**
  * Resets the token used to decrypt logins.  This is equivalent to resetting the
  * master password when it is not known.
  */
 function resetMasterPassword()
 {
   let token = Cc["@mozilla.org/security/pk11tokendb;1"]
                 .getService(Ci.nsIPK11TokenDB).getInternalKeyToken();
   token.reset();
   token.changePassword("", "");
 }
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Tests
+// Tests
 
 /**
  * Resets the master password after some logins were added to the database.
  */
 add_task(function test_logins_decrypt_failure()
 {
   let logins = TestData.loginList();
   for (let loginInfo of logins) {
--- a/toolkit/components/passwordmgr/test/unit/test_logins_metainfo.js
+++ b/toolkit/components/passwordmgr/test/unit/test_logins_metainfo.js
@@ -5,18 +5,17 @@
 
 /**
  * Tests the handling of nsILoginMetaInfo by methods that add, remove, modify,
  * and find logins.
  */
 
 "use strict";
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Globals
+// Globals
 
 XPCOMUtils.defineLazyServiceGetter(this, "gUUIDGenerator",
                                    "@mozilla.org/uuid-generator;1",
                                    "nsIUUIDGenerator");
 
 var gLooksLikeUUIDRegex = /^\{\w{8}-\w{4}-\w{4}-\w{4}-\w{12}\}$/;
 
 /**
@@ -60,18 +59,17 @@ var gLoginInfo3;
 /**
  * nsILoginInfo instances reloaded with all the nsILoginMetaInfo properties.
  * These are often used to provide the reference values to test against.
  */
 var gLoginMetaInfo1;
 var gLoginMetaInfo2;
 var gLoginMetaInfo3;
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Tests
+// Tests
 
 /**
  * Prepare the test objects that will be used by the following tests.
  */
 add_task(function test_initialize()
 {
   // Use a reference time from ten minutes ago to initialize one instance of
   // nsILoginMetaInfo, to test that reference times are updated when needed.
--- a/toolkit/components/passwordmgr/test/unit/test_logins_search.js
+++ b/toolkit/components/passwordmgr/test/unit/test_logins_search.js
@@ -3,18 +3,17 @@
  * searchLogins, and countLogins).
  *
  * The getAllLogins method is not tested explicitly here, because it is used by
  * all tests to verify additions, removals and modifications to the login store.
  */
 
 "use strict";
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Globals
+// Globals
 
 /**
  * Returns a list of new nsILoginInfo objects that are a subset of the test
  * data, built to match the specified query.
  *
  * @param aQuery
  *        Each property and value of this object restricts the search to those
  *        entries from the test data that match the property exactly.
@@ -87,18 +86,17 @@ function checkAllSearches(aQuery, aExpec
   // Test countLogins.
   let count = Services.logins.countLogins(hostname, formSubmitURL, httpRealm);
   do_check_eq(count, expectedLogins.length);
 
   // Test searchLogins.
   checkSearchLogins(aQuery, aExpectedCount);
 }
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Tests
+// Tests
 
 /**
  * Prepare data for the following tests.
  */
 add_task(function test_initialize()
 {
   for (let login of TestData.loginList()) {
     Services.logins.addLogin(login);
--- a/toolkit/components/passwordmgr/test/unit/test_module_LoginImport.js
+++ b/toolkit/components/passwordmgr/test/unit/test_module_LoginImport.js
@@ -4,18 +4,17 @@
  * http://creativecommons.org/publicdomain/zero/1.0/ */
 
 /**
  * Tests the LoginImport object.
  */
 
 "use strict";
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Globals
+// Globals
 
 Cu.import("resource://gre/modules/Task.jsm");
 
 XPCOMUtils.defineLazyModuleGetter(this, "LoginHelper",
                                   "resource://gre/modules/LoginHelper.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "LoginImport",
                                   "resource://gre/modules/LoginImport.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "LoginStore",
@@ -102,18 +101,17 @@ function promiseInsertLoginInfo(aConnect
  * Inserts a new disabled host entry in the database.
  */
 function promiseInsertDisabledHost(aConnection, aHostname)
 {
   return aConnection.execute("INSERT INTO moz_disabledHosts (hostname) " +
                              "VALUES (?)", [aHostname]);
 }
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Tests
+// Tests
 
 /**
  * Imports login data from a SQLite file constructed using the test data.
  */
 add_task(function* test_import()
 {
   let store = new LoginStore(getTempFile("test-import.json").path);
   let loginsSqlite = getTempFile("test-logins.sqlite").path;
--- a/toolkit/components/passwordmgr/test/unit/test_module_LoginStore.js
+++ b/toolkit/components/passwordmgr/test/unit/test_module_LoginStore.js
@@ -4,26 +4,24 @@
  * http://creativecommons.org/publicdomain/zero/1.0/ */
 
 /**
  * Tests the LoginStore object.
  */
 
 "use strict";
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Globals
+// Globals
 
 XPCOMUtils.defineLazyModuleGetter(this, "LoginStore",
                                   "resource://gre/modules/LoginStore.jsm");
 
 const TEST_STORE_FILE_NAME = "test-logins.json";
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Tests
+// Tests
 
 /**
  * Saves login data to a file, then reloads it.
  */
 add_task(function* test_save_reload()
 {
   let storeForSave = new LoginStore(getTempFile(TEST_STORE_FILE_NAME).path);
 
--- a/toolkit/components/passwordmgr/test/unit/test_storage.js
+++ b/toolkit/components/passwordmgr/test/unit/test_storage.js
@@ -6,28 +6,26 @@
 /**
  * Tests that the default nsILoginManagerStorage module attached to the Login
  * Manager service is able to save and reload nsILoginInfo properties correctly,
  * even when they include special characters.
  */
 
 "use strict";
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Globals
+// Globals
 
 function* reloadAndCheckLoginsGen(aExpectedLogins)
 {
   yield LoginTestUtils.reloadData();
   LoginTestUtils.checkLogins(aExpectedLogins);
   LoginTestUtils.clearData();
 }
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Tests
+// Tests
 
 /**
  * Tests addLogin with valid non-ASCII characters.
  */
 add_task(function* test_storage_addLogin_nonascii()
 {
   let hostname = "http://" + String.fromCharCode(355) + ".example.com";
 
--- a/toolkit/components/passwordmgr/test/unit/test_telemetry.js
+++ b/toolkit/components/passwordmgr/test/unit/test_telemetry.js
@@ -4,18 +4,17 @@
  * http://creativecommons.org/publicdomain/zero/1.0/ */
 
 /**
  * Tests the statistics and other counters reported through telemetry.
  */
 
 "use strict";
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Globals
+// Globals
 
 const MS_PER_DAY = 24 * 60 * 60 * 1000;
 
 // To prevent intermittent failures when the test is executed at a time that is
 // very close to a day boundary, we make it deterministic by using a static
 // reference date for all the time-based statistics.
 const gReferenceTimeMs = new Date("2000-01-01T00:00:00").getTime();
 
@@ -97,18 +96,17 @@ function testHistogram(histogramId, expe
   }
 
   // These are stringified to visualize the differences between the values.
   do_print("Testing histogram: " + histogramId);
   do_check_eq(JSON.stringify(actualNonZeroRanges),
               JSON.stringify(expectedNonZeroRanges));
 }
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Tests
+// Tests
 
 /**
  * Enable local telemetry recording for the duration of the tests, and prepare
  * the test data that will be used by the following tests.
  */
 add_task(function test_initialize() {
   let oldCanRecord = Services.telemetry.canRecordExtended;
   Services.telemetry.canRecordExtended = true;
--- a/toolkit/components/places/Bookmarks.jsm
+++ b/toolkit/components/places/Bookmarks.jsm
@@ -773,17 +773,16 @@ var Bookmarks = Object.freeze({
     return Task.spawn(function* () {
       let results = yield queryBookmarks(query);
 
       return results;
     });
   },
 });
 
-// //////////////////////////////////////////////////////////////////////////////
 // Globals.
 
 /**
  * Sends a bookmarks notification through the given observers.
  *
  * @param observers
  *        array of nsINavBookmarkObserver objects.
  * @param notification
@@ -794,17 +793,16 @@ var Bookmarks = Object.freeze({
 function notify(observers, notification, args) {
   for (let observer of observers) {
     try {
       observer[notification](...args);
     } catch (ex) {}
   }
 }
 
-// //////////////////////////////////////////////////////////////////////////////
 // Update implementation.
 
 function updateBookmark(info, item, newParent) {
   return PlacesUtils.withConnectionWrapper("Bookmarks.jsm: updateBookmark",
     Task.async(function*(db) {
 
     let tuples = new Map();
     if (info.hasOwnProperty("lastModified"))
@@ -879,17 +877,16 @@ function updateBookmark(info, item, newP
     // Don't return an empty title to the caller.
     if (updatedItem.hasOwnProperty("title") && updatedItem.title === null)
       delete updatedItem.title;
 
     return updatedItem;
   }));
 }
 
-// //////////////////////////////////////////////////////////////////////////////
 // Insert implementation.
 
 function insertBookmark(item, parent) {
   return PlacesUtils.withConnectionWrapper("Bookmarks.jsm: insertBookmark",
     Task.async(function*(db) {
 
     // If a guid was not provided, generate one, so we won't need to fetch the
     // bookmark just after having created it.
@@ -934,17 +931,16 @@ function insertBookmark(item, parent) {
     // Don't return an empty title to the caller.
     if (item.hasOwnProperty("title") && item.title === null)
       delete item.title;
 
     return item;
   }));
 }
 
-// //////////////////////////////////////////////////////////////////////////////
 // Query implementation.
 
 function queryBookmarks(info) {
   let queryParams = {tags_folder: PlacesUtils.tagsFolderId};
   // we're searching for bookmarks, so exclude tags
   let queryString = "WHERE p.parent <> :tags_folder";
 
   if (info.title) {
@@ -984,17 +980,16 @@ function queryBookmarks(info) {
        ${queryString}
       `, queryParams);
 
     return rowsToItemsArray(rows);
   }));
 }
 
 
-// //////////////////////////////////////////////////////////////////////////////
 // Fetch implementation.
 
 function fetchBookmark(info) {
   return PlacesUtils.withConnectionWrapper("Bookmarks.jsm: fetchBookmark",
     Task.async(function*(db) {
 
     let rows = yield db.executeCached(
       `SELECT b.guid, IFNULL(p.guid, "") AS parentGuid, b.position AS 'index',
@@ -1096,17 +1091,16 @@ function fetchBookmarksByParent(info) {
        WHERE p.guid = :parentGuid
        ORDER BY b.position ASC
       `, { parentGuid: info.parentGuid });
 
     return rowsToItemsArray(rows);
   }));
 }
 
-// //////////////////////////////////////////////////////////////////////////////
 // Remove implementation.
 
 function removeBookmark(item, options) {
   return PlacesUtils.withConnectionWrapper("Bookmarks.jsm: removeBookmark",
     Task.async(function*(db) {
 
     let isUntagging = item._grandParentId == PlacesUtils.tagsFolderId;
 
@@ -1145,17 +1139,16 @@ function removeBookmark(item, options) {
       // ...though we don't wait for the calculation.
       updateFrecency(db, [item.url]).then(null, Cu.reportError);
     }
 
     return item;
   }));
 }
 
-// //////////////////////////////////////////////////////////////////////////////
 // Reorder implementation.
 
 function reorderChildren(parent, orderedChildrenGuids) {
   return PlacesUtils.withConnectionWrapper("Bookmarks.jsm: updateBookmark",
     db => db.executeTransaction(function* () {
       // Select all of the direct children for the given parent.
       let children = yield fetchBookmarksByParent({ parentGuid: parent.guid });
       if (!children.length)
@@ -1231,17 +1224,16 @@ function reorderChildren(parent, ordered
 
       yield db.executeCached(`DROP TRIGGER moz_bookmarks_reorder_trigger`);
 
       return children;
     }.bind(this))
   );
 }
 
-// //////////////////////////////////////////////////////////////////////////////
 // Helpers.
 
 /**
  * Merges objects into a new object, included non-enumerable properties.
  *
  * @param sources
  *        source objects to merge.
  * @return a new object including all properties from the source objects.
--- a/toolkit/components/places/PlacesCategoriesStarter.js
+++ b/toolkit/components/places/PlacesCategoriesStarter.js
@@ -1,29 +1,27 @@
 /* -*- indent-tabs-mode: nil; js-indent-level: 2 -*-
  * vim: sw=2 ts=2 sts=2 expandtab
  * This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Constants
+// Constants
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cu = Components.utils;
 
 // Fired by TelemetryController when async telemetry data should be collected.
 const TOPIC_GATHER_TELEMETRY = "gather-telemetry";
 
 // Seconds between maintenance runs.
 const MAINTENANCE_INTERVAL_SECONDS = 7 * 86400;
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Imports
+// Imports
 
 Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
 Components.utils.import("resource://gre/modules/Services.jsm");
 Components.utils.import("resource://gre/modules/PlacesUtils.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "PlacesDBUtils",
                                   "resource://gre/modules/PlacesDBUtils.jsm");
 
 /**
@@ -53,18 +51,17 @@ function PlacesCategoriesStarter()
   };
 
   [ "onItemAdded", "onItemRemoved", "onItemChanged", "onBeginUpdateBatch",
     "onEndUpdateBatch", "onItemVisited", "onItemMoved"
   ].forEach(aMethod => this[aMethod] = notify);
 }
 
 PlacesCategoriesStarter.prototype = {
-  // ////////////////////////////////////////////////////////////////////////////
-  // // nsIObserver
+  // nsIObserver
 
   observe: function PCS_observe(aSubject, aTopic, aData)
   {
     switch (aTopic) {
       case PlacesUtils.TOPIC_SHUTDOWN:
         Services.obs.removeObserver(this, PlacesUtils.TOPIC_SHUTDOWN);
         Services.obs.removeObserver(this, TOPIC_GATHER_TELEMETRY);
         let globalObj =
@@ -90,26 +87,24 @@ PlacesCategoriesStarter.prototype = {
           PlacesDBUtils.maintenanceOnIdle();
         }
         break;
       default:
         throw new Error("Trying to handle an unknown category.");
     }
   },
 
-  // ////////////////////////////////////////////////////////////////////////////
-  // // nsISupports
+  // nsISupports
 
   classID: Components.ID("803938d5-e26d-4453-bf46-ad4b26e41114"),
 
   _xpcom_factory: XPCOMUtils.generateSingletonFactory(PlacesCategoriesStarter),
 
   QueryInterface: XPCOMUtils.generateQI([
     Ci.nsIObserver
   , Ci.nsINavBookmarkObserver
   ])
 };
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Module Registration
+// Module Registration
 
 var components = [PlacesCategoriesStarter];
 this.NSGetFactory = XPCOMUtils.generateNSGetFactory(components);
--- a/toolkit/components/places/PlacesDBUtils.jsm
+++ b/toolkit/components/places/PlacesDBUtils.jsm
@@ -10,32 +10,29 @@ const Cr = Components.results;
 const Cu = Components.utils;
 
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 Cu.import("resource://gre/modules/Services.jsm");
 Cu.import("resource://gre/modules/PlacesUtils.jsm");
 
 this.EXPORTED_SYMBOLS = [ "PlacesDBUtils" ];
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Constants
+// Constants
 
 const FINISHED_MAINTENANCE_TOPIC = "places-maintenance-finished";
 
 const BYTES_PER_MEBIBYTE = 1048576;
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Smart getters
+// Smart getters
 
 XPCOMUtils.defineLazyGetter(this, "DBConn", function() {
   return PlacesUtils.history.QueryInterface(Ci.nsPIPlacesDatabase).DBConnection;
 });
 
-// //////////////////////////////////////////////////////////////////////////////
-// // PlacesDBUtils
+// PlacesDBUtils
 
 this.PlacesDBUtils = {
   /**
    * Executes a list of maintenance tasks.
    * Once finished it will pass a array log to the callback attached to tasks.
    * FINISHED_MAINTENANCE_TOPIC is notified through observer service on finish.
    *
    * @param aTasks
--- a/toolkit/components/places/PlacesUtils.jsm
+++ b/toolkit/components/places/PlacesUtils.jsm
@@ -576,18 +576,17 @@ this.PlacesUtils = {
   {
     // If this is the first registered function, add the shutdown observer.
     if (this._shutdownFunctions.length == 0) {
       Services.obs.addObserver(this, this.TOPIC_SHUTDOWN, false);
     }
     this._shutdownFunctions.push(aFunc);
   },
 
-  // ////////////////////////////////////////////////////////////////////////////
-  // // nsIObserver
+  // nsIObserver
   observe: function PU_observe(aSubject, aTopic, aData)
   {
     switch (aTopic) {
       case this.TOPIC_SHUTDOWN:
         Services.obs.removeObserver(this, this.TOPIC_SHUTDOWN);
         while (this._shutdownFunctions.length > 0) {
           this._shutdownFunctions.shift().apply(this);
         }
@@ -610,18 +609,17 @@ this.PlacesUtils = {
         break;
     }
   },
 
   onPageAnnotationSet: function() {},
   onPageAnnotationRemoved: function() {},
 
 
-  // ////////////////////////////////////////////////////////////////////////////
-  // // nsITransactionListener
+  // nsITransactionListener
 
   didDo: function PU_didDo(aManager, aTransaction, aDoResult)
   {
     updateCommandsOnActiveWindow();
   },
 
   didUndo: function PU_didUndo(aManager, aTransaction, aUndoResult)
   {
@@ -2551,18 +2549,17 @@ var GuidHelper = {
       PlacesUtils.bookmarks.addObserver(this.observer, false);
       PlacesUtils.registerShutdownFunction(() => {
         PlacesUtils.bookmarks.removeObserver(this.observer);
       });
     }
   }
 };
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Transactions handlers.
+// Transactions handlers.
 
 /**
  * Updates commands in the undo group of the active window commands.
  * Inactive windows commands will be updated on focus.
  */
 function updateCommandsOnActiveWindow()
 {
   let win = Services.focus.activeWindow;
--- a/toolkit/components/places/UnifiedComplete.js
+++ b/toolkit/components/places/UnifiedComplete.js
@@ -1,18 +1,17 @@
 /* -*- indent-tabs-mode: nil; js-indent-level: 2 -*-
  * vim: sw=2 ts=2 sts=2 expandtab
  * This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 "use strict";
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Constants
+// Constants
 
 const { classes: Cc, interfaces: Ci, results: Cr, utils: Cu } = Components;
 
 // Match type constants.
 // These indicate what type of search function we should be using.
 const MATCH_ANYWHERE = Ci.mozIPlacesAutoComplete.MATCH_ANYWHERE;
 const MATCH_BOUNDARY_ANYWHERE = Ci.mozIPlacesAutoComplete.MATCH_BOUNDARY_ANYWHERE;
 const MATCH_BOUNDARY = Ci.mozIPlacesAutoComplete.MATCH_BOUNDARY;
@@ -241,18 +240,17 @@ const SQL_URL_QUERY = urlQuery();
 
 const SQL_TYPED_URL_QUERY = urlQuery("AND h.typed = 1");
 
 // TODO (bug 1045924): use foreign_count once available.
 const SQL_BOOKMARKED_URL_QUERY = urlQuery("AND bookmarked");
 
 const SQL_BOOKMARKED_TYPED_URL_QUERY = urlQuery("AND bookmarked AND h.typed = 1");
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Getters
+// Getters
 
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 Cu.import("resource://gre/modules/Services.jsm");
 
 XPCOMUtils.defineLazyModuleGetter(this, "PlacesUtils",
                                   "resource://gre/modules/PlacesUtils.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "TelemetryStopwatch",
                                   "resource://gre/modules/TelemetryStopwatch.jsm");
@@ -501,18 +499,17 @@ XPCOMUtils.defineLazyGetter(this, "Prefs
 
   loadPrefs();
   prefs.observe("", store);
   Services.prefs.addObserver("keyword.enabled", store, true);
 
   return Object.seal(store);
 });
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Helper functions
+// Helper functions
 
 /**
  * Used to unescape encoded URI strings and drop information that we do not
  * care about.
  *
  * @param spec
  *        The text to unescape and modify.
  * @return the modified spec.
@@ -621,18 +618,16 @@ function makeKeyForURL(actionUrl) {
  */
 function looksLikeUrl(str, ignoreAlphanumericHosts = false) {
   // Single word not including special chars.
   return !REGEXP_SPACES.test(str) &&
          (["/", "@", ":", "["].some(c => str.includes(c)) ||
           (ignoreAlphanumericHosts ? /(.*\..*){3,}/.test(str) : str.includes(".")));
 }
 
-// //////////////////////////////////////////////////////////////////////////////
-
 /**
  * Manages a single instance of an autocomplete search.
  *
  * The first three parameters all originate from the similarly named parameters
  * of nsIAutoCompleteSearch.startSearch().
  *
  * @param searchString
  *        The search string.
@@ -1837,31 +1832,29 @@ Search.prototype = {
     if (searchOngoing) {
       resultCode += "_ONGOING";
     }
     result.setSearchResult(Ci.nsIAutoCompleteResult[resultCode]);
     this._listener.onSearchResult(this._autocompleteSearch, result);
   },
 }
 
-// //////////////////////////////////////////////////////////////////////////////
-// // UnifiedComplete class
-// // component @mozilla.org/autocomplete/search;1?name=unifiedcomplete
+// UnifiedComplete class
+// component @mozilla.org/autocomplete/search;1?name=unifiedcomplete
 
 function UnifiedComplete() {
   // Make sure the preferences are initialized as soon as possible.
   // If the value of browser.urlbar.autocomplete.enabled is set to false,
   // then all the other suggest preferences for history, bookmarks and
   // open pages should be set to false.
   Prefs;
 }
 
 UnifiedComplete.prototype = {
-  // ////////////////////////////////////////////////////////////////////////////
-  // // Database handling
+  // Database handling
 
   /**
    * Promise resolved when the database initialization has completed, or null
    * if it has never been requested.
    */
   _promiseDatabase: null,
 
   /**
@@ -1901,29 +1894,27 @@ UnifiedComplete.prototype = {
 
         return conn;
       }.bind(this)).then(null, ex => { dump("Couldn't get database handle: " + ex + "\n");
                                        Cu.reportError(ex); });
     }
     return this._promiseDatabase;
   },
 
-  // ////////////////////////////////////////////////////////////////////////////
-  // // mozIPlacesAutoComplete
+  // mozIPlacesAutoComplete
 
   registerOpenPage: function PAC_registerOpenPage(uri) {
     SwitchToTabStorage.add(uri);
   },
 
   unregisterOpenPage: function PAC_unregisterOpenPage(uri) {
     SwitchToTabStorage.delete(uri);
   },
 
-  // ////////////////////////////////////////////////////////////////////////////
-  // // nsIAutoCompleteSearch
+  // nsIAutoCompleteSearch
 
   startSearch: function (searchString, searchParam, previousResult, listener) {
     // Stop the search in case the controller has not taken care of it.
     if (this._currentSearch) {
       this.stopSearch();
     }
 
     // Note: We don't use previousResult to make sure ordering of results are
@@ -1995,38 +1986,35 @@ UnifiedComplete.prototype = {
     // If onSearchComplete immediately starts a new search it will set a new
     // _currentSearch, and on return the execution will continue here, after
     // notifyResults.
     // Thus, ensure that notifyResults is the last call in this method,
     // otherwise you might be touching the wrong search.
     search.notifyResults(false);
   },
 
-  // ////////////////////////////////////////////////////////////////////////////
-  // // nsIAutoCompleteSimpleResultListener
+  // nsIAutoCompleteSimpleResultListener
 
   onValueRemoved: function (result, spec, removeFromDB) {
     if (removeFromDB) {
       PlacesUtils.history.removePage(NetUtil.newURI(spec));
     }
   },
 
-  // ////////////////////////////////////////////////////////////////////////////
-  // // nsIAutoCompleteSearchDescriptor
+  // nsIAutoCompleteSearchDescriptor
 
   get searchType() {
     return Ci.nsIAutoCompleteSearchDescriptor.SEARCH_TYPE_IMMEDIATE;
   },
 
   get clearingAutoFillSearchesAgain() {
     return true;
   },
 
-  // ////////////////////////////////////////////////////////////////////////////
-  // // nsISupports
+  // nsISupports
 
   classID: Components.ID("f964a319-397a-4d21-8be6-5cdd1ee3e3ae"),
 
   _xpcom_factory: XPCOMUtils.generateSingletonFactory(UnifiedComplete),
 
   QueryInterface: XPCOMUtils.generateQI([
     Ci.nsIAutoCompleteSearch,
     Ci.nsIAutoCompleteSimpleResultListener,
--- a/toolkit/components/places/nsLivemarkService.js
+++ b/toolkit/components/places/nsLivemarkService.js
@@ -1,16 +1,15 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
  * You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 const { classes: Cc, interfaces: Ci, results: Cr, utils: Cu } = Components;
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Modules and services.
+// Modules and services.
 
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 Cu.import("resource://gre/modules/Services.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "PlacesUtils",
                                   "resource://gre/modules/PlacesUtils.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "NetUtil",
                                   "resource://gre/modules/NetUtil.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "Task",
@@ -19,28 +18,26 @@ XPCOMUtils.defineLazyModuleGetter(this, 
                                   "resource://gre/modules/Deprecated.jsm");
 
 XPCOMUtils.defineLazyGetter(this, "asyncHistory", function () {
   // Lazily add an history observer when it's actually needed.
   PlacesUtils.history.addObserver(PlacesUtils.livemarks, true);
   return PlacesUtils.asyncHistory;
 });
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Constants
+// Constants
 
 // Delay between reloads of consecute livemarks.
 const RELOAD_DELAY_MS = 500;
 // Expire livemarks after this time.
 const EXPIRE_TIME_MS = 3600000; // 1 hour.
 // Expire livemarks after this time on error.
 const ONERROR_EXPIRE_TIME_MS = 300000; // 5 minutes.
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Livemarks cache.
+// Livemarks cache.
 
 XPCOMUtils.defineLazyGetter(this, "CACHE_SQL", () => {
   function getAnnoSQLFragment(aAnnoParam) {
     return `SELECT a.content
             FROM moz_items_annos a
             JOIN moz_anno_attributes n ON n.id = a.anno_attribute_id
             WHERE a.item_id = b.id
               AND n.name = ${aAnnoParam}`;
@@ -103,18 +100,17 @@ function toPRTime(date) {
  * @param time
  *        microseconds from the epoch.
  * @return a Date object or undefined if time was not defined.
  */
 function toDate(time) {
   return time ? new Date(parseInt(time / 1000)) : undefined;
 }
 
-// //////////////////////////////////////////////////////////////////////////////
-// // LivemarkService
+// LivemarkService
 
 function LivemarkService() {
   // Cleanup on shutdown.
   Services.obs.addObserver(this, PlacesUtils.TOPIC_SHUTDOWN, true);
 
   // Observe bookmarks but don't init the service just for that.
   PlacesUtils.addLazyBookmarkObserver(this, true);
 }
@@ -144,18 +140,17 @@ LivemarkService.prototype = {
           return;
         }
       }
       // All livemarks have been reloaded.
       this._reloading = false;
     }, RELOAD_DELAY_MS, Ci.nsITimer.TYPE_ONE_SHOT);
   },
 
-  // ////////////////////////////////////////////////////////////////////////////
-  // // nsIObserver
+  // nsIObserver
 
   observe(aSubject, aTopic, aData) {
     if (aTopic == PlacesUtils.TOPIC_SHUTDOWN) {
       if (this._reloadTimer) {
         this._reloading = false;
         this._reloadTimer.cancel();
         delete this._reloadTimer;
       }
@@ -164,18 +159,17 @@ LivemarkService.prototype = {
       this._promiseLivemarksMap().then(livemarksMap => {
         for (let livemark of livemarksMap.values()) {
           livemark.terminate();
         }
       });
     }
   },
 
-  // ////////////////////////////////////////////////////////////////////////////
-  // // mozIAsyncLivemarks
+  // mozIAsyncLivemarks
 
   addLivemark(aLivemarkInfo) {
     if (!aLivemarkInfo) {
       throw new Components.Exception("Invalid arguments", Cr.NS_ERROR_INVALID_ARG);
     }
     let hasParentId = "parentId" in aLivemarkInfo;
     let hasParentGuid = "parentGuid" in aLivemarkInfo;
     let hasIndex = "index" in aLivemarkInfo;
@@ -307,18 +301,17 @@ LivemarkService.prototype = {
       let livemarksMap = yield this._promiseLivemarksMap();
       if (!livemarksMap.has(aLivemarkInfo.guid))
         throw new Components.Exception("Invalid livemark", Cr.NS_ERROR_INVALID_ARG);
 
       return livemarksMap.get(aLivemarkInfo.guid);
     }.bind(this));
   },
 
-  // ////////////////////////////////////////////////////////////////////////////
-  // // nsINavBookmarkObserver
+  // nsINavBookmarkObserver
 
   onBeginUpdateBatch() {},
   onEndUpdateBatch() {},
   onItemVisited() {},
   onItemAdded() {},
 
   onItemChanged(id, property, isAnno, value, lastModified, itemType, parentId,
                 guid, parentGuid) {
@@ -359,18 +352,17 @@ LivemarkService.prototype = {
       if (livemarksMap.has(guid)) {
         let livemark = livemarksMap.get(guid);
         livemark.terminate();
         livemarksMap.delete(guid);
       }
     });
   },
 
-  // ////////////////////////////////////////////////////////////////////////////
-  // // nsINavHistoryObserver
+  // nsINavHistoryObserver
 
   onPageChanged() {},
   onTitleChanged() {},
   onDeleteVisits() {},
 
   onClearHistory() {
     this._promiseLivemarksMap().then(livemarksMap => {
       for (let livemark of livemarksMap.values()) {
@@ -390,34 +382,32 @@ LivemarkService.prototype = {
   onVisit(aURI) {
     this._promiseLivemarksMap().then(livemarksMap => {
       for (let livemark of livemarksMap.values()) {
         livemark.updateURIVisitedStatus(aURI, true);
       }
     });
   },
 
-  // ////////////////////////////////////////////////////////////////////////////
-  // // nsISupports
+  // nsISupports
 
   classID: Components.ID("{dca61eb5-c7cd-4df1-b0fb-d0722baba251}"),
 
   _xpcom_factory: XPCOMUtils.generateSingletonFactory(LivemarkService),
 
   QueryInterface: XPCOMUtils.generateQI([
     Ci.mozIAsyncLivemarks
   , Ci.nsINavBookmarkObserver
   , Ci.nsINavHistoryObserver
   , Ci.nsIObserver
   , Ci.nsISupportsWeakReference
   ])
 };
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Livemark
+// Livemark
 
 /**
  * Object used internally to represent a livemark.
  *
  * @param aLivemarkInfo
  *        Object containing information on the livemark.  If the livemark is
  *        not included in the object, a new livemark will be created.
  *
@@ -720,18 +710,17 @@ Livemark.prototype = {
     }
   },
 
   QueryInterface: XPCOMUtils.generateQI([
     Ci.mozILivemark
   ])
 }
 
-// //////////////////////////////////////////////////////////////////////////////
-// // LivemarkLoadListener
+// LivemarkLoadListener
 
 /**
  * Object used internally to handle loading a livemark's contents.
  *
  * @param aLivemark
  *        The Livemark that is loading.
  */
 function LivemarkLoadListener(aLivemark) {
--- a/toolkit/components/places/nsPlacesExpiration.js
+++ b/toolkit/components/places/nsPlacesExpiration.js
@@ -26,18 +26,17 @@ const Cu = Components.utils;
 
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 Cu.import("resource://gre/modules/Services.jsm");
 Cu.import("resource://gre/modules/Task.jsm");
 
 XPCOMUtils.defineLazyModuleGetter(this, "PlacesUtils",
   "resource://gre/modules/PlacesUtils.jsm");
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Constants
+// Constants
 
 // Last expiration step should run before the final sync.
 const TOPIC_SHUTDOWN = "places-will-close-connection";
 const TOPIC_PREF_CHANGED = "nsPref:changed";
 const TOPIC_DEBUG_START_EXPIRATION = "places-debug-start-expiration";
 const TOPIC_EXPIRATION_FINISHED = "places-expiration-finished";
 const TOPIC_IDLE_BEGIN = "idle";
 const TOPIC_IDLE_END = "active";
@@ -448,23 +447,21 @@ const EXPIRATION_QUERIES = {
 function notify(observers, notification, args = []) {
   for (let observer of observers) {
     try {
       observer[notification](...args);
     } catch (ex) {}
   }
 }
 
-// //////////////////////////////////////////////////////////////////////////////
-// // nsPlacesExpiration definition
+// nsPlacesExpiration definition
 
 function nsPlacesExpiration()
 {
-  // ////////////////////////////////////////////////////////////////////////////
-  // // Smart Getters
+  // Smart Getters
 
   XPCOMUtils.defineLazyGetter(this, "_db", function () {
     let db = Cc["@mozilla.org/browser/nav-history-service;1"].
              getService(Ci.nsPIPlacesDatabase).
              DBConnection;
 
     // Create the temporary notifications table.
     let stmt = db.createAsyncStatement(
@@ -503,18 +500,17 @@ function nsPlacesExpiration()
   // Register topic observers.
   Services.obs.addObserver(this, TOPIC_SHUTDOWN, true);
   Services.obs.addObserver(this, TOPIC_DEBUG_START_EXPIRATION, true);
   Services.obs.addObserver(this, TOPIC_IDLE_DAILY, true);
 }
 
 nsPlacesExpiration.prototype = {
 
-  // ////////////////////////////////////////////////////////////////////////////
-  // // nsIObserver
+  // nsIObserver
 
   observe: function PEX_observe(aSubject, aTopic, aData)
   {
     if (this._shuttingDown) {
       return;
     }
 
     if (aTopic == TOPIC_SHUTDOWN) {
@@ -588,18 +584,17 @@ nsPlacesExpiration.prototype = {
     else if (aTopic == TOPIC_IDLE_DAILY) {
       this._expireWithActionAndLimit(ACTION.IDLE_DAILY, LIMIT.LARGE);
     }
     else if (aTopic == TOPIC_TESTING_MODE) {
       this._testingMode = true;
     }
   },
 
-  // ////////////////////////////////////////////////////////////////////////////
-  // // nsINavHistoryObserver
+  // nsINavHistoryObserver
 
   _inBatchMode: false,
   onBeginUpdateBatch: function PEX_onBeginUpdateBatch()
   {
     this._inBatchMode = true;
 
     // We do not want to expire while we are doing batch work.
     if (this._timer) {
@@ -626,18 +621,17 @@ nsPlacesExpiration.prototype = {
   },
 
   onVisit: function() {},
   onTitleChanged: function() {},
   onDeleteURI: function() {},
   onPageChanged: function() {},
   onDeleteVisits: function() {},
 
-  // ////////////////////////////////////////////////////////////////////////////
-  // // nsITimerCallback
+  // nsITimerCallback
 
   notify: function PEX_timerCallback()
   {
     // Check if we are over history capacity, if so visits must be expired.
     this._getPagesStats((function onPagesCount(aPagesCount, aStatsCount) {
       let overLimitPages = aPagesCount - this._urisLimit;
       this._overLimit = overLimitPages > 0;
 
@@ -651,18 +645,17 @@ nsPlacesExpiration.prototype = {
       // Adapt expiration aggressivity to the number of pages over the limit.
       let limit = overLimitPages > OVERLIMIT_PAGES_THRESHOLD ? LIMIT.LARGE
                                                              : LIMIT.SMALL;
 
       this._expireWithActionAndLimit(action, limit);
     }).bind(this));
   },
 
-  // ////////////////////////////////////////////////////////////////////////////
-  // // mozIStorageStatementCallback
+  // mozIStorageStatementCallback
 
   handleResult: function PEX_handleResult(aResultSet)
   {
     // We don't want to notify after shutdown.
     if (this._shuttingDown)
       return;
 
     let row;
@@ -763,18 +756,17 @@ nsPlacesExpiration.prototype = {
         delete this._expectedResultsCount;
       }
 
       // Dispatch a notification that expiration has finished.
       Services.obs.notifyObservers(null, TOPIC_EXPIRATION_FINISHED, null);
     }
   },
 
-  // ////////////////////////////////////////////////////////////////////////////
-  // // nsPlacesExpiration
+  // nsPlacesExpiration
 
   _urisLimit: PREF_MAX_URIS_NOTSET,
   _interval: PREF_INTERVAL_SECONDS_NOTSET,
   _shuttingDown: false,
 
   _status: STATUS.UNKNOWN,
   set status(aNewStatus) {
     if (aNewStatus != this._status) {
@@ -1087,29 +1079,27 @@ nsPlacesExpiration.prototype = {
                            Ci.nsITimer.TYPE_REPEATING_SLACK);
     if (this._testingMode) {
       Services.obs.notifyObservers(null, TOPIC_TEST_INTERVAL_CHANGED,
                                    interval);
     }
     return this._timer = timer;
   },
 
-  // ////////////////////////////////////////////////////////////////////////////
-  // // nsISupports
+  // nsISupports
 
   classID: Components.ID("705a423f-2f69-42f3-b9fe-1517e0dee56f"),
 
   _xpcom_factory: XPCOMUtils.generateSingletonFactory(nsPlacesExpiration),
 
   QueryInterface: XPCOMUtils.generateQI([
     Ci.nsIObserver
   , Ci.nsINavHistoryObserver
   , Ci.nsITimerCallback
   , Ci.mozIStorageStatementCallback
   , Ci.nsISupportsWeakReference
   ])
 };
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Module Registration
+// Module Registration
 
 var components = [nsPlacesExpiration];
 this.NSGetFactory = XPCOMUtils.generateNSGetFactory(components);
--- a/toolkit/components/places/nsTaggingService.js
+++ b/toolkit/components/places/nsTaggingService.js
@@ -457,18 +457,17 @@ TaggingService.prototype = {
         PlacesUtils.tagsFolderId != aNewParent)
       delete this._tagFolders[aItemId];
   },
 
   onItemVisited: function () {},
   onBeginUpdateBatch: function () {},
   onEndUpdateBatch: function () {},
 
-  // ////////////////////////////////////////////////////////////////////////////
-  // // nsISupports
+  // nsISupports
 
   classID: Components.ID("{bbc23860-2553-479d-8b78-94d9038334f7}"),
 
   _xpcom_factory: XPCOMUtils.generateSingletonFactory(TaggingService),
 
   QueryInterface: XPCOMUtils.generateQI([
     Ci.nsITaggingService
   , Ci.nsINavBookmarkObserver
@@ -690,18 +689,17 @@ TagAutoCompleteSearch.prototype = {
 
   /**
    * Stop an asynchronous search that is in progress
    */
   stopSearch: function PTACS_stopSearch() {
     this._stopped = true;
   },
 
-  // ////////////////////////////////////////////////////////////////////////////
-  // // nsISupports
+  // nsISupports
 
   classID: Components.ID("{1dcc23b0-d4cb-11dc-9ad6-479d56d89593}"),
 
   _xpcom_factory: XPCOMUtils.generateSingletonFactory(TagAutoCompleteSearch),
 
   QueryInterface: XPCOMUtils.generateQI([
     Ci.nsIAutoCompleteSearch
   ])
--- a/toolkit/components/places/tests/expiration/test_analyze_runs.js
+++ b/toolkit/components/places/tests/expiration/test_analyze_runs.js
@@ -1,18 +1,16 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Constants
+// Constants
 
 const TOPIC_AUTOCOMPLETE_FEEDBACK_INCOMING = "autocomplete-will-enter-text";
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Helpers
+// Helpers
 
 /**
  * Ensures that we have no data in the tables created by ANALYZE.
  */
 function clearAnalyzeData() {
   let db = DBConn();
   if (!db.tableExists("sqlite_stat1")) {
     return;
@@ -42,18 +40,17 @@ function do_check_analyze_ran(aTableName
       do_check_false(stmt.executeStep());
     }
   }
   finally {
     stmt.finalize();
   }
 }
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Tests
+// Tests
 
 function run_test() {
   run_next_test();
 }
 
 add_task(function* init_tests() {
   const TEST_URI = NetUtil.newURI("http://mozilla.org/");
   const TEST_TITLE = "This is a test";
--- a/toolkit/components/places/tests/favicons/test_favicons_conversions.js
+++ b/toolkit/components/places/tests/favicons/test_favicons_conversions.js
@@ -1,17 +1,16 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
 /**
  * This file tests the image conversions done by the favicon service.
  */
 
-// //////////////////////////////////////////////////////////////////////////////
-// / Globals
+// Globals
 
 // The pixel values we get on Windows are sometimes +/- 1 value compared to
 // other platforms, so we need to skip some image content tests.
 var isWindows = ("@mozilla.org/windows-registry-key;1" in Cc);
 
 /**
  * Checks the conversion of the given test image file.
  *
@@ -55,18 +54,17 @@ function checkFaviconDataConversion(aFil
             do_check_eq(aMimeType, "image/png");
           }
 
           aCallback();
         }, Services.scriptSecurityManager.getSystemPrincipal());
     });
 }
 
-// //////////////////////////////////////////////////////////////////////////////
-// / Tests
+// Tests
 
 function run_test() {
   run_next_test();
 }
 
 add_test(function test_storing_a_normal_16x16_icon() {
   // 16x16 png, 286 bytes.
   // optimized: no
--- a/toolkit/components/places/tests/favicons/test_getFaviconDataForPage.js
+++ b/toolkit/components/places/tests/favicons/test_getFaviconDataForPage.js
@@ -1,24 +1,22 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
 /**
  * This file tests getFaviconDataForPage.
  */
 
-// //////////////////////////////////////////////////////////////////////////////
-// / Globals
+// Globals
 
 const FAVICON_URI = NetUtil.newURI(do_get_file("favicon-normal32.png"));
 const FAVICON_DATA = readFileData(do_get_file("favicon-normal32.png"));
 const FAVICON_MIMETYPE = "image/png";
 
-// //////////////////////////////////////////////////////////////////////////////
-// / Tests
+// Tests
 
 function run_test()
 {
   // Check that the favicon loaded correctly before starting the actual tests.
   do_check_eq(FAVICON_DATA.length, 344);
   run_next_test();
 }
 
--- a/toolkit/components/places/tests/favicons/test_getFaviconURLForPage.js
+++ b/toolkit/components/places/tests/favicons/test_getFaviconURLForPage.js
@@ -1,17 +1,16 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
 /**
  * This file tests getFaviconURLForPage.
  */
 
-// //////////////////////////////////////////////////////////////////////////////
-// / Tests
+// Tests
 
 function run_test()
 {
   run_next_test();
 }
 
 add_test(function test_normal()
 {
--- a/toolkit/components/places/tests/favicons/test_moz-anno_favicon_mime_type.js
+++ b/toolkit/components/places/tests/favicons/test_moz-anno_favicon_mime_type.js
@@ -4,25 +4,23 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /**
  * This test ensures that the mime type is set for moz-anno channels of favicons
  * properly.  Added with work in bug 481227.
  */
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Constants
+// Constants
 Cu.import("resource://gre/modules/NetUtil.jsm");
 
 const testFaviconData = "data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%10%00%00%00%10%08%06%00%00%00%1F%F3%FFa%00%00%00%04gAMA%00%00%AF%C87%05%8A%E9%00%00%00%19tEXtSoftware%00Adobe%20ImageReadyq%C9e%3C%00%00%01%D6IDATx%DAb%FC%FF%FF%3F%03%25%00%20%80%98%909%EF%DF%BFg%EF%EC%EC%FC%AD%AC%AC%FC%DF%95%91%F1%BF%89%89%C9%7F%20%FF%D7%EA%D5%AB%B7%DF%BBwO%16%9B%01%00%01%C4%00r%01%08%9F9s%C6%CD%D8%D8%F8%BF%0B%03%C3%FF3%40%BC%0A%88%EF%02q%1A%10%BB%40%F1%AAU%ABv%C1%D4%C30%40%00%81%89%993g%3E%06%1A%F6%3F%14%AA%11D%97%03%F1%7Fc%08%0D%E2%2B))%FD%17%04%89%A1%19%00%10%40%0C%D00%F8%0F3%00%C8%F8%BF%1B%E4%0Ac%88a%E5%60%17%19%FF%0F%0D%0D%05%1B%02v%D9%DD%BB%0A0%03%00%02%08%AC%B9%A3%A3%E3%17%03%D4v%90%01%EF%18%106%C3%0Cz%07%C5%BB%A1%DE%82y%07%20%80%A0%A6%08B%FCn%0C1%60%26%D4%20d%C3VA%C3%06%26%BE%0A%EA-%80%00%82%B9%E0%F7L4%0D%EF%90%F8%C6%60%2F%0A%82%BD%01%13%07%0700%D0%01%02%88%11%E4%02P%B41%DC%BB%C7%D0%014%0D%E8l%06W%20%06%BA%88%A1%1C%1AS%15%40%7C%16%CA6.%2Fgx%BFg%0F%83%CB%D9%B3%0C%7B%80%7C%80%00%02%BB%00%E8%9F%ED%20%1B%3A%A0%A6%9F%81%DA%DC%01%C5%B0%80%ED%80%FA%BF%BC%BC%FC%3F%83%12%90%9D%96%F6%1F%20%80%18%DE%BD%7B%C7%0E%8E%05AD%20%FEGr%A6%A0%A0%E0%7F%25P%80%02%9D%0F%D28%13%18%23%C6%C0%B0%02E%3D%C8%F5%00%01%04%8F%05P%A8%BA%40my%87%E4%12c%A8%8D%20%8B%D0%D3%00%08%03%04%10%9C%01R%E4%82d%3B%C8%A0%99%C6%90%90%C6%A5%19%84%01%02%08%9E%17%80%C9x%F7%7B%A0%DBVC%F9%A0%C0%5C%7D%16%2C%CE%00%F4%C6O%5C%99%09%20%800L%04y%A5%03%1A%95%A0%80%05%05%14.%DBA%18%20%80%18)%CD%CE%00%01%06%00%0C'%94%C7%C0k%C9%2C%00%00%00%00IEND%AEB%60%82";
 const moz_anno_favicon_prefix = "moz-anno:favicon:";
 
-// //////////////////////////////////////////////////////////////////////////////
-// // streamListener
+// streamListener
 
 function streamListener(aExpectedContentType)
 {
   this._expectedContentType = aExpectedContentType;
 }
 streamListener.prototype =
 {
   onStartRequest: function(aRequest, aContext)
@@ -43,18 +41,17 @@ streamListener.prototype =
     do_test_finished();
   },
   onDataAvailable: function(aRequest, aContext, aInputStream, aOffset, aCount)
   {
     aRequest.cancel(Cr.NS_ERROR_ABORT);
   }
 };
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Test Runner
+// Test Runner
 
 function run_test()
 {
   let fs = Cc["@mozilla.org/browser/favicon-service;1"].
            getService(Ci.nsIFaviconService);
   let ios = Cc["@mozilla.org/network/io-service;1"].
             getService(Ci.nsIIOService);
 
--- a/toolkit/components/places/tests/queries/test_containersQueries_sorting.js
+++ b/toolkit/components/places/tests/queries/test_containersQueries_sorting.js
@@ -7,18 +7,17 @@
 /**
  * Testing behavior of bug 473157
  * "Want to sort history in container view without sorting the containers"
  * and regression bug 488783
  * Tags list no longer sorted (alphabetized).
  * This test is for global testing sorting containers queries.
  */
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Globals and Constants
+// Globals and Constants
 
 var hs = Cc["@mozilla.org/browser/nav-history-service;1"].
          getService(Ci.nsINavHistoryService);
 var bh = hs.QueryInterface(Ci.nsIBrowserHistory);
 var tagging = Cc["@mozilla.org/browser/tagging-service;1"].
               getService(Ci.nsITaggingService);
 
 var resultTypes = [
@@ -49,18 +48,17 @@ var pages = [
 ];
 
 var tags = [
   "mozilla",
   "Development",
   "test",
 ];
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Test Runner
+// Test Runner
 
 /**
  * Enumerates all the sequences of the cartesian product of the arrays contained
  * in aSequences.  Examples:
  *
  *   cartProd([[1, 2, 3], ["a", "b"]], callback);
  *   // callback is called 3 * 2 = 6 times with the following arrays:
  *   // [1, "a"], [1, "b"], [2, "a"], [2, "b"], [3, "a"], [3, "b"]
@@ -376,18 +374,17 @@ function check_children_sorting(aRootNod
   for (let i = 0; i < sortedResults.length; i++) {
     if (sortedResults[i].title != results[i].title)
       print(i + " index wrong, expected " + sortedResults[i].title +
             " found " + results[i].title);
     do_check_eq(sortedResults[i].title, results[i].title);
   }
 }
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Main
+// Main
 
 function run_test()
 {
   run_next_test();
 }
 
 add_task(function* test_containersQueries_sorting()
 {
--- a/toolkit/components/places/tests/queries/test_querySerialization.js
+++ b/toolkit/components/places/tests/queries/test_querySerialization.js
@@ -453,18 +453,16 @@ const queryOptionSwitches = [
       },
       function (aQuery, aQueryOptions) {
         aQueryOptions.queryType = aQueryOptions.QUERY_TYPE_UNIFIED;
       }
     ]
   },
 ];
 
-// /////////////////////////////////////////////////////////////////////////////
-
 /**
  * Enumerates all the sequences of the cartesian product of the arrays contained
  * in aSequences.  Examples:
  *
  *   cartProd([[1, 2, 3], ["a", "b"]], callback);
  *   // callback is called 3 * 2 = 6 times with the following arrays:
  *   // [1, "a"], [1, "b"], [2, "a"], [2, "b"], [3, "a"], [3, "b"]
  *
@@ -789,14 +787,12 @@ function serializeDeserialize(aQueryArr,
  *         another nsINavHistoryQuery or nsINavHistoryQueryOptions object
  * @return true if this switch is the same in both aObj1 and aObj2
  */
 function simplePropertyMatches(aObj1, aObj2)
 {
   return aObj1[this.property] === aObj2[this.property];
 }
 
-// /////////////////////////////////////////////////////////////////////////////
-
 function run_test()
 {
   runQuerySequences(CHOOSE_HOW_MANY_SWITCHES_LO, CHOOSE_HOW_MANY_SWITCHES_HI);
 }
--- a/toolkit/components/places/tests/queries/test_sorting.js
+++ b/toolkit/components/places/tests/queries/test_sorting.js
@@ -1,18 +1,16 @@
 /* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
 /* vim:set ts=2 sw=2 sts=2 et: */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 var tests = [];
 
-// //////////////////////////////////////////////////////////////////////////////
-
 tests.push({
   _sortingMode: Ci.nsINavHistoryQueryOptions.SORT_BY_NONE,
 
   *setup() {
     do_print("Sorting test 1: SORT BY NONE");
 
     this._unsortedData = [
       { isBookmark: true,
@@ -64,18 +62,16 @@ tests.push({
     root.containerOpen = false;
   },
 
   check_reverse: function() {
     // no reverse sorting for SORT BY NONE
   }
 });
 
-// //////////////////////////////////////////////////////////////////////////////
-
 tests.push({
   _sortingMode: Ci.nsINavHistoryQueryOptions.SORT_BY_TITLE_ASCENDING,
 
   *setup() {
     do_print("Sorting test 2: SORT BY TITLE");
 
     this._unsortedData = [
       { isBookmark: true,
@@ -139,18 +135,16 @@ tests.push({
 
   check_reverse: function() {
     this._sortingMode = Ci.nsINavHistoryQueryOptions.SORT_BY_TITLE_DESCENDING;
     this._sortedData.reverse();
     this.check();
   }
 });
 
-// //////////////////////////////////////////////////////////////////////////////
-
 tests.push({
   _sortingMode: Ci.nsINavHistoryQueryOptions.SORT_BY_DATE_ASCENDING,
 
   *setup() {
     do_print("Sorting test 3: SORT BY DATE");
 
     var timeInMicroseconds = Date.now() * 1000;
     this._unsortedData = [
@@ -239,18 +233,16 @@ tests.push({
 
   check_reverse: function() {
     this._sortingMode = Ci.nsINavHistoryQueryOptions.SORT_BY_DATE_DESCENDING;
     this._sortedData.reverse();
     this.check();
   }
 });
 
-// //////////////////////////////////////////////////////////////////////////////
-
 tests.push({
   _sortingMode: Ci.nsINavHistoryQueryOptions.SORT_BY_URI_ASCENDING,
 
   *setup() {
     do_print("Sorting test 4: SORT BY URI");
 
     var timeInMicroseconds = Date.now() * 1000;
     this._unsortedData = [
@@ -345,18 +337,16 @@ tests.push({
 
   check_reverse: function() {
     this._sortingMode = Ci.nsINavHistoryQueryOptions.SORT_BY_URI_DESCENDING;
     this._sortedData.reverse();
     this.check();
   }
 });
 
-// //////////////////////////////////////////////////////////////////////////////
-
 tests.push({
   _sortingMode: Ci.nsINavHistoryQueryOptions.SORT_BY_VISITCOUNT_ASCENDING,
 
   *setup() {
     do_print("Sorting test 5: SORT BY VISITCOUNT");
 
     var timeInMicroseconds = Date.now() * 1000;
     this._unsortedData = [
@@ -446,18 +436,16 @@ tests.push({
 
   check_reverse: function() {
     this._sortingMode = Ci.nsINavHistoryQueryOptions.SORT_BY_VISITCOUNT_DESCENDING;
     this._sortedData.reverse();
     this.check();
   }
 });
 
-// //////////////////////////////////////////////////////////////////////////////
-
 tests.push({
   _sortingMode: Ci.nsINavHistoryQueryOptions.SORT_BY_KEYWORD_ASCENDING,
 
   *setup() {
     do_print("Sorting test 6: SORT BY KEYWORD");
 
     this._unsortedData = [
       { isBookmark: true,
@@ -545,18 +533,16 @@ tests.push({
 
   check_reverse: function() {
     this._sortingMode = Ci.nsINavHistoryQueryOptions.SORT_BY_KEYWORD_DESCENDING;
     this._sortedData.reverse();
     this.check();
   }
 });
 
-// //////////////////////////////////////////////////////////////////////////////
-
 tests.push({
   _sortingMode: Ci.nsINavHistoryQueryOptions.SORT_BY_DATEADDED_ASCENDING,
 
   *setup() {
     do_print("Sorting test 7: SORT BY DATEADDED");
 
     var timeInMicroseconds = Date.now() * 1000;
     this._unsortedData = [
@@ -635,18 +621,16 @@ tests.push({
 
   check_reverse: function() {
     this._sortingMode = Ci.nsINavHistoryQueryOptions.SORT_BY_DATEADDED_DESCENDING;
     this._sortedData.reverse();
     this.check();
   }
 });
 
-// //////////////////////////////////////////////////////////////////////////////
-
 tests.push({
   _sortingMode: Ci.nsINavHistoryQueryOptions.SORT_BY_LASTMODIFIED_ASCENDING,
 
   *setup() {
     do_print("Sorting test 8: SORT BY LASTMODIFIED");
 
     var timeInMicroseconds = Date.now() * 1000;
     var timeAddedInMicroseconds = timeInMicroseconds - 10000;
@@ -733,18 +717,16 @@ tests.push({
 
   check_reverse: function() {
     this._sortingMode = Ci.nsINavHistoryQueryOptions.SORT_BY_LASTMODIFIED_DESCENDING;
     this._sortedData.reverse();
     this.check();
   }
 });
 
-// //////////////////////////////////////////////////////////////////////////////
-
 tests.push({
   _sortingMode: Ci.nsINavHistoryQueryOptions.SORT_BY_TAGS_ASCENDING,
 
   *setup() {
     do_print("Sorting test 9: SORT BY TAGS");
 
     this._unsortedData = [
       { isBookmark: true,
@@ -833,17 +815,16 @@ tests.push({
 
   check_reverse: function() {
     this._sortingMode = Ci.nsINavHistoryQueryOptions.SORT_BY_TAGS_DESCENDING;
     this._sortedData.reverse();
     this.check();
   }
 });
 
-// //////////////////////////////////////////////////////////////////////////////
 // SORT_BY_ANNOTATION_* (int32)
 
 tests.push({
   _sortingMode: Ci.nsINavHistoryQueryOptions.SORT_BY_ANNOTATION_ASCENDING,
 
   *setup() {
     do_print("Sorting test 10: SORT BY ANNOTATION (int32)");
 
@@ -929,17 +910,16 @@ tests.push({
 
   check_reverse: function() {
     this._sortingMode = Ci.nsINavHistoryQueryOptions.SORT_BY_ANNOTATION_DESCENDING;
     this._sortedData.reverse();
     this.check();
   }
 });
 
-// //////////////////////////////////////////////////////////////////////////////
 // SORT_BY_ANNOTATION_* (int64)
 
 tests.push({
   _sortingMode: Ci.nsINavHistoryQueryOptions.SORT_BY_ANNOTATION_ASCENDING,
 
   *setup() {
     do_print("Sorting test 11: SORT BY ANNOTATION (int64)");
 
@@ -1011,17 +991,16 @@ tests.push({
 
   check_reverse: function() {
     this._sortingMode = Ci.nsINavHistoryQueryOptions.SORT_BY_ANNOTATION_DESCENDING;
     this._sortedData.reverse();
     this.check();
   }
 });
 
-// //////////////////////////////////////////////////////////////////////////////
 // SORT_BY_ANNOTATION_* (string)
 
 tests.push({
   _sortingMode: Ci.nsINavHistoryQueryOptions.SORT_BY_ANNOTATION_ASCENDING,
 
   *setup() {
     do_print("Sorting test 12: SORT BY ANNOTATION (string)");
 
@@ -1093,17 +1072,16 @@ tests.push({
 
   check_reverse: function() {
     this._sortingMode = Ci.nsINavHistoryQueryOptions.SORT_BY_ANNOTATION_DESCENDING;
     this._sortedData.reverse();
     this.check();
   }
 });
 
-// //////////////////////////////////////////////////////////////////////////////
 // SORT_BY_ANNOTATION_* (double)
 
 tests.push({
   _sortingMode: Ci.nsINavHistoryQueryOptions.SORT_BY_ANNOTATION_ASCENDING,
 
   *setup() {
     do_print("Sorting test 13: SORT BY ANNOTATION (double)");
 
@@ -1175,17 +1153,16 @@ tests.push({
 
   check_reverse: function() {
     this._sortingMode = Ci.nsINavHistoryQueryOptions.SORT_BY_ANNOTATION_DESCENDING;
     this._sortedData.reverse();
     this.check();
   }
 });
 
-// //////////////////////////////////////////////////////////////////////////////
 // SORT_BY_FRECENCY_*
 
 tests.push({
   _sortingMode: Ci.nsINavHistoryQueryOptions.SORT_BY_FRECENCY_ASCENDING,
 
   *setup() {
     do_print("Sorting test 13: SORT BY FRECENCY ");
 
@@ -1263,18 +1240,16 @@ tests.push({
 
   check_reverse: function() {
     this._sortingMode = Ci.nsINavHistoryQueryOptions.SORT_BY_FRECENCY_DESCENDING;
     this._sortedData.reverse();
     this.check();
   }
 });
 
-// //////////////////////////////////////////////////////////////////////////////
-
 function run_test()
 {
   run_next_test();
 }
 
 add_task(function* test_sorting()
 {
   for (let test of tests) {
--- a/toolkit/components/places/tests/queries/test_tags.js
+++ b/toolkit/components/places/tests/queries/test_tags.js
@@ -529,18 +529,16 @@ add_task(function* ORed_queries() {
 
 // The tag keys in query URIs, i.e., "place:tag=foo&!tags=1"
 //                                          ---     -----
 const QUERY_KEY_TAG      = "tag";
 const QUERY_KEY_NOT_TAGS = "!tags";
 
 const TEST_URI = uri("http://example.com/");
 
-// /////////////////////////////////////////////////////////////////////////////
-
 /**
  * Adds a bookmark.
  *
  * @param aURI
  *        URI of the page (an nsIURI)
  */
 function addBookmark(aURI) {
   return PlacesUtils.bookmarks.insert({
@@ -735,13 +733,11 @@ function setsAreEqual(aArr1, aArr2, aIsO
     }
   }
   else {
     aArr1.forEach(u => do_check_true(aArr2.indexOf(u) >= 0));
     aArr2.forEach(u => do_check_true(aArr1.indexOf(u) >= 0));
   }
 }
 
-// /////////////////////////////////////////////////////////////////////////////
-
 function run_test() {
   run_next_test();
 }
--- a/toolkit/components/places/tests/unit/test_405497.js
+++ b/toolkit/components/places/tests/unit/test_405497.js
@@ -20,35 +20,33 @@ var bs = Cc["@mozilla.org/browser/nav-bo
  *        runInBatchMode the second time.
  */
 function callback(aService)
 {
   this.callCount = 0;
   this.service = aService;
 }
 callback.prototype = {
-  // ////////////////////////////////////////////////////////////////////////////
-  // // nsINavHistoryBatchCallback
+  // nsINavHistoryBatchCallback
 
   runBatched: function(aUserData)
   {
     this.callCount++;
 
     if (this.callCount == 1) {
       // We want to call run in batched once more.
       this.service.runInBatchMode(this, null);
       return;
     }
 
     do_check_eq(this.callCount, 2);
     do_test_finished();
   },
 
-  // ////////////////////////////////////////////////////////////////////////////
-  // // nsISupports
+  // nsISupports
 
   QueryInterface: XPCOMUtils.generateQI([Ci.nsINavHistoryBatchCallback])
 };
 
 function run_test() {
   // checking the history service
   do_test_pending();
   hs.runInBatchMode(new callback(hs), null);
--- a/toolkit/components/places/tests/unit/test_412132.js
+++ b/toolkit/components/places/tests/unit/test_412132.js
@@ -125,14 +125,12 @@ add_task(function* changeuri_nonexistent
                                                 "bookmark title");
   PlacesUtils.bookmarks.removeItem(id);
   tryChange(id);
 
   yield PlacesUtils.bookmarks.eraseEverything();
   yield PlacesTestUtils.clearHistory();
 });
 
-// /////////////////////////////////////////////////////////////////////////////
-
 function run_test()
 {
   run_next_test();
 }
--- a/toolkit/components/places/tests/unit/test_async_history_api.js
+++ b/toolkit/components/places/tests/unit/test_async_history_api.js
@@ -1,21 +1,19 @@
 /**
  * This file tests the async history API exposed by mozIAsyncHistory.
  */
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Globals
+// Globals
 
 const TEST_DOMAIN = "http://mozilla.org/";
 const URI_VISIT_SAVED = "uri-visit-saved";
 const RECENT_EVENT_THRESHOLD = 15 * 60 * 1000000;
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Helpers
+// Helpers
 /**
  * Object that represents a mozIVisitInfo object.
  *
  * @param [optional] aTransitionType
  *        The transition type of the visit.  Defaults to TRANSITION_LINK if not
  *        provided.
  * @param [optional] aVisitTime
  *        The time of the visit.  Defaults to now if not provided.
@@ -131,18 +129,17 @@ function do_check_title_for_uri(aURI,
      WHERE url_hash = hash(:url) AND url = :url`
   );
   stmt.params.url = aURI.spec;
   do_check_true(stmt.executeStep(), stack);
   do_check_eq(stmt.row.title, aTitle, stack);
   stmt.finalize();
 }
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Test Functions
+// Test Functions
 
 add_task(function* test_interface_exists() {
   let history = Cc["@mozilla.org/browser/history;1"].getService(Ci.nsISupports);
   do_check_true(history instanceof Ci.mozIAsyncHistory);
 });
 
 add_task(function* test_invalid_uri_throws() {
   // First, test passing in nothing.
--- a/toolkit/components/places/tests/unit/test_autocomplete_stopSearch_no_throw.js
+++ b/toolkit/components/places/tests/unit/test_autocomplete_stopSearch_no_throw.js
@@ -4,39 +4,36 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /**
  * Added with bug 508102 to make sure that calling stopSearch on our
  * AutoComplete implementation does not throw.
  */
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Globals and Constants
+// Globals and Constants
 
 var hs = Cc["@mozilla.org/browser/nav-history-service;1"].
           getService(Ci.nsINavHistoryService);
 var ac = Cc["@mozilla.org/autocomplete/search;1?name=unifiedcomplete"].
          getService(Ci.nsIAutoCompleteSearch);
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Test Functions
+// Test Functions
 
 function test_stopSearch()
 {
   try {
     ac.stopSearch();
   }
   catch (e) {
     do_throw("we should not have caught anything!");
   }
 }
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Test Runner
+// Test Runner
 
 var tests = [
   test_stopSearch,
 ];
 function run_test()
 {
   tests.forEach(test => test());
 }
--- a/toolkit/components/places/tests/unit/test_bookmarks_restore_notification.js
+++ b/toolkit/components/places/tests/unit/test_bookmarks_restore_notification.js
@@ -23,18 +23,16 @@ const NSIOBSERVER_DATA_HTML_INIT = "html
 var uris = [
   "http://example.com/1",
   "http://example.com/2",
   "http://example.com/3",
   "http://example.com/4",
   "http://example.com/5",
 ];
 
-// /////////////////////////////////////////////////////////////////////////////
-
 /**
  * Adds some bookmarks for the URIs in |uris|.
  */
 function* addBookmarks() {
   for (let url of uris) {
     yield PlacesUtils.bookmarks.insert({
       url: url, parentGuid: PlacesUtils.bookmarks.menuGuid
     })
@@ -133,17 +131,16 @@ function* teardown(file, begin, success,
   try {
     yield OS.File.remove(file, {ignoreAbsent: true});
   } catch (e) {}
 
   // clean up bookmarks
   yield PlacesUtils.bookmarks.eraseEverything();
 }
 
-// /////////////////////////////////////////////////////////////////////////////
 add_task(function* test_json_restore_normal() {
   // data: the data passed to nsIObserver.observe() corresponding to the test
   // folderId: for HTML restore into a folder, the folder ID to restore into;
   //           otherwise, set it to null
   let expectedData = {
     data:       NSIOBSERVER_DATA_JSON,
     folderId:   null
   }
--- a/toolkit/components/places/tests/unit/test_sql_guid_functions.js
+++ b/toolkit/components/places/tests/unit/test_sql_guid_functions.js
@@ -14,18 +14,17 @@
  */
 function check_invariants(aGuid)
 {
   do_print("Checking guid '" + aGuid + "'");
 
   do_check_valid_places_guid(aGuid);
 }
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Test Functions
+// Test Functions
 
 function test_guid_invariants()
 {
   const kExpectedChars = 64;
   const kAllowedChars =
     "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_"
   do_check_eq(kAllowedChars.length, kExpectedChars);
   const kGuidLength = 12;
@@ -89,18 +88,17 @@ function test_guid_on_background()
       do_check_eq(aReason, Ci.mozIStorageStatementCallback.REASON_FINISHED);
       do_check_true(checked);
       run_next_test();
     }
   });
   stmt.finalize();
 }
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Test Runner
+// Test Runner
 
 [
   test_guid_invariants,
   test_guid_on_background,
 ].forEach(add_test);
 
 function run_test()
 {
--- a/toolkit/components/printing/content/printUtils.js
+++ b/toolkit/components/printing/content/printUtils.js
@@ -295,19 +295,17 @@ var PrintUtils = {
 
     return this._listener.getPrintPreviewBrowser().docShell.printPreview;
   },
 
   get inPrintPreview() {
     return document.getElementById("print-preview-toolbar") != null;
   },
 
-  // //////////////////////////////////////////////////
-  // "private" methods and members. Don't use them. //
-  // /////////////////////////////////////////////////
+  // "private" methods and members. Don't use them.
 
   _listener: null,
   _closeHandlerPP: null,
   _webProgressPP: null,
   _sourceBrowser: null,
   _originalTitle: "",
   _originalURL: "",
   _shouldSimplify: false,
--- a/toolkit/components/startup/tests/browser/browser_bug537449.js
+++ b/toolkit/components/startup/tests/browser/browser_bug537449.js
@@ -1,15 +1,14 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 "use strict";
 
-// /////////////////
 //
 // Whitelisting this test.
 // As part of bug 1077403, the leaking uncaught rejection should be fixed.
 //
 thisTestLeaksUncaughtRejectionsAndShouldBeFixed("TypeError: this.docShell is null");
 
 SpecialPowers.pushPrefEnv({"set": [["dom.require_user_interaction_for_beforeunload", false]]});
 
--- a/toolkit/components/telemetry/TelemetryStorage.jsm
+++ b/toolkit/components/telemetry/TelemetryStorage.jsm
@@ -1778,17 +1778,17 @@ var TelemetryStorageImpl = {
 
     for (let f of FILES_TO_REMOVE) {
       yield OS.File.remove(f, {ignoreAbsent: true})
                    .catch(e => this._log.error("removeFHRDatabase - failed to remove " + f, e));
     }
   }),
 };
 
-// /// Utility functions
+// Utility functions
 
 function pingFilePath(ping) {
   // Support legacy ping formats, who don't have an "id" field, but a "slug" field.
   let pingIdentifier = (ping.slug) ? ping.slug : ping.id;
   return OS.Path.join(TelemetryStorage.pingDirectoryPath, pingIdentifier);
 }
 
 function getPingDirectory() {
--- a/toolkit/components/terminator/nsTerminatorTelemetry.js
+++ b/toolkit/components/terminator/nsTerminatorTelemetry.js
@@ -38,23 +38,21 @@ var HISTOGRAMS = {
   "xpcom-will-shutdown": "SHUTDOWN_PHASE_DURATION_TICKS_XPCOM_WILL_SHUTDOWN",
 };
 
 nsTerminatorTelemetry.prototype = {
   classID: Components.ID("{3f78ada1-cba2-442a-82dd-d5fb300ddea7}"),
 
   _xpcom_factory: XPCOMUtils.generateSingletonFactory(nsTerminatorTelemetry),
 
-  // ////////////////////////////////////////////////////////////////////////////
-  // // nsISupports
+  // nsISupports
 
   QueryInterface: XPCOMUtils.generateQI([Ci.nsIObserver]),
 
-  // ////////////////////////////////////////////////////////////////////////////
-  // // nsIObserver
+  // nsIObserver
 
   observe: function DS_observe(aSubject, aTopic, aData)
   {
     Task.spawn(function*() {
       //
       // This data is hardly critical, reading it can wait for a few seconds.
       //
       yield new Promise(resolve => setTimeout(resolve, 3000));
@@ -97,12 +95,11 @@ nsTerminatorTelemetry.prototype = {
       // Inform observers that we are done.
       Services.obs.notifyObservers(null,
         "shutdown-terminator-telemetry-updated",
         "");
     });
   },
 };
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Module
+// Module
 
 this.NSGetFactory = XPCOMUtils.generateNSGetFactory([nsTerminatorTelemetry]);
--- a/toolkit/components/url-classifier/content/moz/observer.js
+++ b/toolkit/components/url-classifier/content/moz/observer.js
@@ -1,22 +1,22 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 
 // A couple of classes to simplify creating observers. 
 //
-// // Example1:
+// Example1:
 //
 // function doSomething() { ... }
 // var observer = new G_ObserverWrapper(topic, doSomething);
 // someObj.addObserver(topic, observer);
 //
-// // Example2: 
+// Example2: 
 //
 // function doSomething() { ... }
 // new G_ObserverServiceObserver("profile-after-change", 
 //                               doSomething,
 //                               true /* run only once */);
 
 
 /**
--- a/toolkit/content/customizeToolbar.js
+++ b/toolkit/content/customizeToolbar.js
@@ -613,18 +613,17 @@ function isToolbarItem(aElt)
 {
   return aElt.localName == "toolbarbutton" ||
          aElt.localName == "toolbaritem" ||
          aElt.localName == "toolbarseparator" ||
          aElt.localName == "toolbarspring" ||
          aElt.localName == "toolbarspacer";
 }
 
-// /////////////////////////////////////////////////////////////////////////
-// // Drag and Drop observers
+// Drag and Drop observers
 
 function onToolbarDragExit(aEvent)
 {
   if (isUnwantedDragEvent(aEvent)) {
     return;
   }
 
   if (gCurrentDragOverItem)
--- a/toolkit/forgetaboutsite/test/unit/test_removeDataFromDomain.js
+++ b/toolkit/forgetaboutsite/test/unit/test_removeDataFromDomain.js
@@ -4,18 +4,17 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /**
  * Test added with bug 460086 to test the behavior of the new API that was added
  * to remove all traces of visiting a site.
  */
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Globals
+// Globals
 
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 Cu.import("resource://gre/modules/Services.jsm");
 Cu.import("resource://gre/modules/PlacesUtils.jsm");
 Cu.import("resource://gre/modules/ForgetAboutSite.jsm");
 
 XPCOMUtils.defineLazyModuleGetter(this, "Promise",
                                   "resource://gre/modules/Promise.jsm");
@@ -31,18 +30,17 @@ const LOGIN_PASSWORD = "password";
 const LOGIN_USERNAME_FIELD = "username_field";
 const LOGIN_PASSWORD_FIELD = "password_field";
 
 const PERMISSION_TYPE = "test-perm";
 const PERMISSION_VALUE = Ci.nsIPermissionManager.ALLOW_ACTION;
 
 const PREFERENCE_NAME = "test-pref";
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Utility Functions
+// Utility Functions
 
 /**
  * Creates an nsIURI object for the given string representation of a URI.
  *
  * @param aURIString
  *        The spec of the URI to create.
  * @returns an nsIURI representing aURIString.
  */
@@ -245,18 +243,17 @@ function preference_exists(aURI)
   let exists = false;
   cp.getByDomainAndName(aURI.spec, PREFERENCE_NAME, null, {
     handleResult: () => exists = true,
     handleCompletion: () => deferred.resolve(exists)
   });
   return deferred.promise;
 }
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Test Functions
+// Test Functions
 
 // History
 function* test_history_cleared_with_direct_match()
 {
   const TEST_URI = uri("http://mozilla.org/foo");
   do_check_false(yield promiseIsURIVisited(TEST_URI));
   yield PlacesTestUtils.addVisits(TEST_URI);
   do_check_true(yield promiseIsURIVisited(TEST_URI));
--- a/toolkit/modules/DeferredTask.jsm
+++ b/toolkit/modules/DeferredTask.jsm
@@ -77,33 +77,31 @@ this.EXPORTED_SYMBOLS = [
  * that any write that is currently in progress terminates, so that the file is
  * not in use anymore:
  *
  *   saveDeferredTask.disarm();
  *   saveDeferredTask.finalize().then(() => OS.File.remove(...))
  *                              .then(null, Components.utils.reportError);
  */
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Globals
+// Globals
 
 const { classes: Cc, interfaces: Ci, utils: Cu, results: Cr } = Components;
 
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 
 XPCOMUtils.defineLazyModuleGetter(this, "Promise",
                                   "resource://gre/modules/Promise.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "Task",
                                   "resource://gre/modules/Task.jsm");
 
 const Timer = Components.Constructor("@mozilla.org/timer;1", "nsITimer",
                                      "initWithCallback");
 
-// //////////////////////////////////////////////////////////////////////////////
-// // DeferredTask
+// DeferredTask
 
 /**
  * Sets up a task whose execution can be triggered after a delay.
  *
  * @param aTaskFn
  *        Function or generator function to execute.  This argument is passed to
  *        the "Task.spawn" method every time the task should be executed.  This
  *        task is never re-entered while running.
--- a/toolkit/modules/JSONFile.jsm
+++ b/toolkit/modules/JSONFile.jsm
@@ -27,18 +27,17 @@
  */
 
 "use strict";
 
 this.EXPORTED_SYMBOLS = [
   "JSONFile",
 ];
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Globals
+// Globals
 
 const { classes: Cc, interfaces: Ci, utils: Cu, results: Cr } = Components;
 
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 Cu.import("resource://gre/modules/Task.jsm");
 Cu.import("resource://gre/modules/Services.jsm");
 
 XPCOMUtils.defineLazyModuleGetter(this, "AsyncShutdown",
@@ -62,18 +61,17 @@ const FileInputStream =
       Components.Constructor("@mozilla.org/network/file-input-stream;1",
                              "nsIFileInputStream", "init");
 
 /**
  * Delay between a change to the data and the related save operation.
  */
 const kSaveDelayMs = 1500;
 
-// //////////////////////////////////////////////////////////////////////////////
-// // JSONFile
+// JSONFile
 
 /**
  * Handles serialization of the data and persistence into a file.
  *
  * @param config An object containing following members:
  *        - path: String containing the file path where data should be saved.
  *        - dataPostProcessor: Function triggered when data is just loaded. The
  *                             data object will be passed as the first argument
--- a/toolkit/modules/PopupNotifications.jsm
+++ b/toolkit/modules/PopupNotifications.jsm
@@ -540,19 +540,17 @@ PopupNotifications.prototype = {
         break;
       case "click":
       case "keypress":
         this._onIconBoxCommand(aEvent);
         break;
     }
   },
 
-// //////////////////////////////////////////////////////////////////////////////
 // Utility methods
-// //////////////////////////////////////////////////////////////////////////////
 
   _ignoreDismissal: null,
   _currentAnchorElement: null,
 
   /**
    * Gets notifications for the currently selected browser.
    */
   get _currentNotifications() {
--- a/toolkit/modules/Promise-backend.js
+++ b/toolkit/modules/Promise-backend.js
@@ -14,18 +14,17 @@
  *
  * In the general case, this script should be used by importing Promise.jsm:
  *
  * Components.utils.import("resource://gre/modules/Promise.jsm");
  *
  * More documentation can be found in the Promise.jsm module.
  */
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Globals
+// Globals
 
 // Obtain an instance of Cu. How this instance is obtained depends on how this
 // file is loaded.
 //
 // This file can be loaded in three different ways:
 // 1. As a CommonJS module, by Loader.jsm, on the main thread.
 // 2. As a CommonJS module, by worker-loader.js, on a worker thread.
 // 3. As a subscript, by Promise.jsm, on the main thread.
@@ -72,17 +71,17 @@ const STATUS_REJECTED = 2;
 // properties are inaccessible by other code, but provide enough protection to
 // avoid using them by mistake.
 const salt = Math.floor(Math.random() * 100);
 const N_INTERNALS = "{private:internals:" + salt + "}";
 
 // We use DOM Promise for scheduling the walker loop.
 const DOMPromise = Cu ? Promise : null;
 
-// ///// Warn-upon-finalization mechanism
+// Warn-upon-finalization mechanism
 //
 // One of the difficult problems with promises is locating uncaught
 // rejections. We adopt the following strategy: if a promise is rejected
 // at the time of its garbage-collection *and* if the promise is at the
 // end of a promise chain (i.e. |thatPromise.then| has never been
 // called), then we print a warning.
 //
 //  let deferred = Promise.defer();
@@ -315,24 +314,23 @@ PendingErrors.addObserver(function(detai
              /* lineNumber*/ details.lineNumber || 0,
              /* columnNumber*/ 0,
              /* flags*/ Ci.nsIScriptError.errorFlag,
              /* category*/ "chrome javascript");
   Services.console.logMessage(error);
 });
 
 
-// /////// Additional warnings for developers
+// Additional warnings for developers
 //
 // The following error types are considered programmer errors, which should be
 // reported (possibly redundantly) so as to let programmers fix their code.
 const ERRORS_TO_REPORT = ["EvalError", "RangeError", "ReferenceError", "TypeError"];
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Promise
+// Promise
 
 /**
  * The Promise constructor. Creates a new promise given an executor callback.
  * The executor callback is called with the resolve and reject handlers.
  *
  * @param aExecutor
  *        The callback that will be called with resolve and reject.
  */
@@ -656,18 +654,17 @@ Object.freeze(Promise.Debugging);
 Object.freeze(Promise);
 
 // If module is defined, this file is loaded as a CommonJS module. Make sure
 // Promise is exported in that case.
 if (this.module) {
   module.exports = Promise;
 }
 
-// //////////////////////////////////////////////////////////////////////////////
-// // PromiseWalker
+// PromiseWalker
 
 /**
  * This singleton object invokes the handlers registered on resolved and
  * rejected promises, ensuring that processing is not recursive and is done in
  * the same order as registration occurred on each promise.
  *
  * There is no guarantee on the order of execution of handlers registered on
  * different promises.
@@ -816,18 +813,17 @@ this.PromiseWalker = {
       this.handlers.shift().process();
     }
   },
 };
 
 // Bind the function to the singleton once.
 PromiseWalker.walkerLoop = PromiseWalker.walkerLoop.bind(PromiseWalker);
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Deferred
+// Deferred
 
 /**
  * Returned by "Promise.defer" to provide a new promise along with methods to
  * change its state.
  */
 function Deferred()
 {
   this.promise = new Promise((aResolve, aReject) => {
@@ -878,18 +874,17 @@ Deferred.prototype = {
    * @note The aReason argument should not generally be a promise.  In fact,
    *       using a rejected promise for the value of aReason would make the
    *       rejection reason equal to the rejected promise itself, not to the
    *       rejection reason of the rejected promise.
    */
   reject: null,
 };
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Handler
+// Handler
 
 /**
  * Handler registered on a promise by the "then" function.
  */
 function Handler(aThisPromise, aOnResolve, aOnReject)
 {
   this.thisPromise = aThisPromise;
   this.onResolve = aOnResolve;
--- a/toolkit/modules/Task.jsm
+++ b/toolkit/modules/Task.jsm
@@ -78,18 +78,17 @@ this.EXPORTED_SYMBOLS = [
  * - The "Task.spawn" function also accepts a primitive value, or a function
  *   returning a primitive value, and treats the value as the result of the
  *   task.  This makes it possible to call an externally provided function and
  *   spawn a task from it, regardless of whether it is an asynchronous generator
  *   or a synchronous function.  This comes in handy when iterating over
  *   function lists where some items have been converted to tasks and some not.
  */
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Globals
+// Globals
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cu = Components.utils;
 const Cr = Components.results;
 
 // For now, we're worried about add-ons using Tasks with CPOWs, so we'll
 // permit them in this scope, but this support will go away soon.
@@ -132,18 +131,17 @@ function* linesOf(string) {
  * @param aValue
  *        The value to identify.
  * @return A boolean indicating whether the value is a generator.
  */
 function isGenerator(aValue) {
   return Object.prototype.toString.call(aValue) == "[object Generator]";
 }
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Task
+// Task
 
 /**
  * This object provides the public module functions.
  */
 this.Task = {
   /**
    * Creates and starts a new task.
    *
@@ -258,18 +256,17 @@ function createAsyncFunction(aTask) {
     return Promise.resolve(result);
   };
 
   asyncFunction.isAsyncFunction = true;
 
   return asyncFunction;
 }
 
-// //////////////////////////////////////////////////////////////////////////////
-// // TaskImpl
+// TaskImpl
 
 /**
  * Executes the specified iterator as a task, and gives access to the promise
  * that is fulfilled when the task terminates.
  */
 function TaskImpl(iterator) {
   if (gMaintainStack) {
     this._stack = (new Error()).stack;
--- a/toolkit/modules/tests/xpcshell/test_DeferredTask.js
+++ b/toolkit/modules/tests/xpcshell/test_DeferredTask.js
@@ -1,17 +1,16 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
 /**
  * This file tests the DeferredTask.jsm module.
  */
 
-// //////////////////////////////////////////////////////////////////////////////
-// / Globals
+// Globals
 
 var { classes: Cc, interfaces: Ci, utils: Cu, results: Cr } = Components;
 
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 
 XPCOMUtils.defineLazyModuleGetter(this, "DeferredTask",
                                   "resource://gre/modules/DeferredTask.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "Promise",
@@ -35,18 +34,17 @@ function promiseTimeout(aTimeoutMs)
   return deferred.promise;
 }
 
 function run_test()
 {
   run_next_test();
 }
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Tests
+// Tests
 
 /**
  * Creates a simple DeferredTask and executes it once.
  */
 add_test(function test_arm_simple()
 {
   new DeferredTask(run_next_test, 10).arm();
 });
--- a/toolkit/modules/tests/xpcshell/test_JSONFile.js
+++ b/toolkit/modules/tests/xpcshell/test_JSONFile.js
@@ -1,16 +1,15 @@
 /**
  * Tests the JSONFile object.
  */
 
 "use strict";
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Globals
+// Globals
 
 const { classes: Cc, interfaces: Ci, utils: Cu, results: Cr } = Components;
 
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 
 XPCOMUtils.defineLazyModuleGetter(this, "DownloadPaths",
                                   "resource://gre/modules/DownloadPaths.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "FileUtils",
@@ -62,18 +61,17 @@ const TEST_DATA = {
   number: 123,
   string: "test",
   object: {
     prop1: 1,
     prop2: 2,
   },
 };
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Tests
+// Tests
 
 add_task(function* test_save_reload()
 {
   let storeForSave = new JSONFile({
     path: getTempFile(TEST_STORE_FILE_NAME).path,
   });
 
   yield storeForSave.load();
--- a/toolkit/modules/tests/xpcshell/test_Promise.js
+++ b/toolkit/modules/tests/xpcshell/test_Promise.js
@@ -5,18 +5,17 @@
 Components.utils.import("resource://gre/modules/Promise.jsm");
 Components.utils.import("resource://gre/modules/Services.jsm");
 Components.utils.import("resource://gre/modules/Task.jsm");
 Components.utils.import("resource://testing-common/PromiseTestUtils.jsm");
 
 // Prevent test failures due to the unhandled rejections in this test file.
 PromiseTestUtils.disableUncaughtRejectionObserverForSelfTest();
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Test runner
+// Test runner
 
 var run_promise_tests = function run_promise_tests(tests, cb) {
   let loop = function loop(index) {
     if (index >= tests.length) {
       if (cb) {
         cb.call();
       }
       return;
@@ -74,18 +73,17 @@ var make_promise_test = function(test) {
     } catch (x) {
       // The test failed because of an error outside of a promise
       do_throw("Error in body of test " + test.name + ": " + x + " at " + x.stack);
       return Promise.reject();
     }
   };
 };
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Tests
+// Tests
 
 var tests = [];
 
 // Utility function to observe an failures in a promise
 // This function is useful if the promise itself is
 // not returned.
 var observe_failures = function observe_failures(promise) {
   promise.catch(function onReject(reason) {
--- a/toolkit/modules/tests/xpcshell/test_PromiseUtils.js
+++ b/toolkit/modules/tests/xpcshell/test_PromiseUtils.js
@@ -7,19 +7,17 @@ Components.utils.import("resource://gre/
 Components.utils.import("resource://gre/modules/Timer.jsm");
 Components.utils.import("resource://testing-common/PromiseTestUtils.jsm");
 
 // Tests for PromiseUtils.jsm
 function run_test() {
   run_next_test();
 }
 
-// /////////////////////////////////////////////////////////////////////////////////////
 // Tests for PromiseUtils.defer()
-// /////////////////////////////////////////////////////////////////////////////////////
 
 /* Tests for checking the resolve method of the Deferred object
  * returned by PromiseUtils.defer() */
 add_task(function* test_resolve_string() {
   let def = PromiseUtils.defer();
   let expected = "The promise is resolved " + Math.random();
   def.resolve(expected);
   let result = yield def.promise;
--- a/toolkit/modules/tests/xpcshell/test_Services.js
+++ b/toolkit/modules/tests/xpcshell/test_Services.js
@@ -1,34 +1,32 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
 /**
  * This file tests the Services.jsm module.
  */
 
-// //////////////////////////////////////////////////////////////////////////////
-// / Globals
+// Globals
 
 var Cc = Components.classes;
 var Ci = Components.interfaces;
 var Cu = Components.utils;
 var Cr = Components.results;
 
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 Cu.import("resource://gre/modules/Services.jsm");
 
 function checkService(service, interface) {
   do_print("Checking that Services." + service + " is an " + interface);
   do_check_true(service in Services);
   do_check_true(Services[service] instanceof interface);
 }
 
-// //////////////////////////////////////////////////////////////////////////////
-// / Tests
+// Tests
 
 function run_test()
 {
   do_get_profile();
 
   checkService("appShell", Ci.nsIAppShellService);
   checkService("appinfo", Ci.nsIXULRuntime);
   checkService("blocklist", Ci.nsIBlocklistService);
--- a/toolkit/mozapps/downloads/DownloadTaskbarProgress.jsm
+++ b/toolkit/mozapps/downloads/DownloadTaskbarProgress.jsm
@@ -3,34 +3,32 @@
  * This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 this.EXPORTED_SYMBOLS = [
   "DownloadTaskbarProgress",
 ];
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Constants
+// Constants
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cu = Components.utils;
 const Cr = Components.results;
 
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 Cu.import("resource://gre/modules/AppConstants.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "Services",
                                   "resource://gre/modules/Services.jsm");
 
 const kTaskbarIDWin = "@mozilla.org/windows-taskbar;1";
 const kTaskbarIDMac = "@mozilla.org/widget/macdocksupport;1";
 
-// //////////////////////////////////////////////////////////////////////////////
-// // DownloadTaskbarProgress Object
+// DownloadTaskbarProgress Object
 
 this.DownloadTaskbarProgress =
 {
   init: function DTP_init()
   {
     if (DownloadTaskbarProgressUpdater) {
       DownloadTaskbarProgressUpdater._init();
     }
@@ -89,18 +87,17 @@ this.DownloadTaskbarProgress =
     if (!DownloadTaskbarProgressUpdater) {
       return null;
     }
     return DownloadTaskbarProgressUpdater._taskbarState;
   },
 
 };
 
-// //////////////////////////////////////////////////////////////////////////////
-// // DownloadTaskbarProgressUpdater Object
+// DownloadTaskbarProgressUpdater Object
 
 var DownloadTaskbarProgressUpdater =
 {
   // / Whether the taskbar is initialized.
   _initialized: false,
 
   // / Reference to the taskbar.
   _taskbar: null,
@@ -365,18 +362,17 @@ var DownloadTaskbarProgressUpdater =
       }
 
       // We aren't ever going to reach this point while the download manager is
       // open, so it's safe to assume false for the second operand
       this._setActiveWindow(newActiveWindow, false);
     }
   },
 
-  // ////////////////////////////////////////////////////////////////////////////
-  // // nsIDownloadProgressListener
+  // nsIDownloadProgressListener
 
   /**
    * Update status if a download's progress has changed.
    */
   onProgressChange: function DTPU_onProgressChange()
   {
     this._updateStatus();
     this._updateTaskbar();
--- a/toolkit/mozapps/downloads/content/DownloadProgressListener.js
+++ b/toolkit/mozapps/downloads/content/DownloadProgressListener.js
@@ -9,23 +9,21 @@
  * in the Download Manager UI such as displaying amount transferred, transfer
  * rate, and time left for each download.
  *
  * This class implements the nsIDownloadProgressListener interface.
  */
 function DownloadProgressListener() {}
 
 DownloadProgressListener.prototype = {
-  // ////////////////////////////////////////////////////////////////////////////
-  // // nsISupports
+  // nsISupports
 
   QueryInterface: XPCOMUtils.generateQI([Ci.nsIDownloadProgressListener]),
 
-  // ////////////////////////////////////////////////////////////////////////////
-  // // nsIDownloadProgressListener
+  // nsIDownloadProgressListener
 
   onDownloadStateChange: function dlPL_onDownloadStateChange(aState, aDownload)
   {
     // Update window title in-case we don't get all progress notifications
     onUpdateProgress();
 
     let dl;
     let state = aDownload.state;
--- a/toolkit/mozapps/downloads/content/downloads.js
+++ b/toolkit/mozapps/downloads/content/downloads.js
@@ -1,16 +1,15 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 "use strict";
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Globals
+// Globals
 
 const PREF_BDM_CLOSEWHENDONE = "browser.download.manager.closeWhenDone";
 const PREF_BDM_ALERTONEXEOPEN = "browser.download.manager.alertOnEXEOpen";
 const PREF_BDM_SCANWHENDONE = "browser.download.manager.scanWhenDone";
 
 const nsLocalFile = Components.Constructor("@mozilla.org/file/local;1",
                                            "nsILocalFile", "initWithPath");
 
@@ -80,18 +79,17 @@ var gStr = {
   downloadsTitlePercent: "downloadsTitlePercent",
   fileExecutableSecurityWarningTitle: "fileExecutableSecurityWarningTitle",
   fileExecutableSecurityWarningDontAsk: "fileExecutableSecurityWarningDontAsk"
 };
 
 // The statement to query for downloads that are active or match the search
 var gStmt = null;
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Start/Stop Observers
+// Start/Stop Observers
 
 function downloadCompleted(aDownload)
 {
   // The download is changing state, so update the clear list button
   updateClearListButton();
 
   // Wrap this in try...catch since this can be called while shutting down...
   // it doesn't really matter if it fails then since well.. we're shutting down
@@ -168,18 +166,17 @@ function autoRemoveAndClose(aDownload)
 
 // This function can be overwritten by extensions that wish to place the
 // Download Window in another part of the UI.
 function gCloseDownloadManager()
 {
   window.close();
 }
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Download Event Handlers
+// Download Event Handlers
 
 function cancelDownload(aDownload)
 {
   gDownloadManager.cancelDownload(aDownload.getAttribute("dlid"));
 
   // XXXben -
   // If we got here because we resumed the download, we weren't using a temp file
   // because we used saveURL instead. (this is because the proper download mechanism
@@ -399,18 +396,17 @@ function onUpdateProgress()
     title = PluralForm.get(numActiveDownloads, title);
     title = replaceInsert(title, 1, numActiveDownloads);
     title = replaceInsert(title, 2, mean);
 
     document.title = title;
   }
 }
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Startup, Shutdown
+// Startup, Shutdown
 
 function Startup()
 {
   gDownloadsView = document.getElementById("downloadView");
   gSearchBox = document.getElementById("searchbox");
 
   // convert strings to those in the string bundle
   let sb = document.getElementById("downloadStrings");
@@ -490,18 +486,17 @@ var gDownloadObserver = {
             gDownloadManager.activeDownloadCount == 0) {
           setTimeout(gCloseDownloadManager, 0);
         }
         break;
     }
   }
 };
 
-// //////////////////////////////////////////////////////////////////////////////
-// // View Context Menus
+// View Context Menus
 
 var gContextMenus = [
   // DOWNLOAD_DOWNLOADING
   [
     "menuitem_pause"
     , "menuitem_cancel"
     , "menuseparator"
     , "menuitem_show"
@@ -631,18 +626,17 @@ function buildContextMenu(aEvent)
       popup.appendChild(menuitem);
     }
 
     return true;
   }
 
   return false;
 }
-// //////////////////////////////////////////////////////////////////////////////
-// // Drag and Drop
+// Drag and Drop
 var gDownloadDNDObserver =
 {
   onDragStart: function (aEvent)
   {
     if (!gDownloadsView.selectedItem)
       return;
     var dl = gDownloadsView.selectedItem;
     var f = getLocalFileFromNativePathOrUrl(dl.getAttribute("file"));
@@ -707,18 +701,17 @@ function pasteHandler() {
       return;
 
     let uri = Services.io.newURI(url, null, null);
 
     saveURL(uri.spec, name || uri.spec, null, true, true, null, document);
   } catch (ex) {}
 }
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Command Updating and Command Handlers
+// Command Updating and Command Handlers
 
 var gDownloadViewController = {
   isCommandEnabled: function(aCommand, aItem)
   {
     let dl = aItem;
     let download = null; // used for getting an nsIDownload object
 
     switch (aCommand) {
@@ -854,18 +847,17 @@ function openExternal(aFile)
 
   var protocolSvc = Cc["@mozilla.org/uriloader/external-protocol-service;1"].
                     getService(Ci.nsIExternalProtocolService);
   protocolSvc.loadUrl(uri);
 
   return;
 }
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Utility Functions
+// Utility Functions
 
 /**
  * Create a download richlistitem with the provided attributes. Some attributes
  * are *required* while optional ones will only be set on the item if provided.
  *
  * @param aAttrs
  *        An object that must have the following properties: dlid, file,
  *        target, uri, state, progress, startTime, endTime, currBytes,
--- a/toolkit/mozapps/downloads/content/helperApps.js
+++ b/toolkit/mozapps/downloads/content/helperApps.js
@@ -15,17 +15,16 @@ const CLASS_PROTOCOLINFO    = "scheme";
 // namespace prefix
 const NC_NS                 = "http://home.netscape.com/NC-rdf#";
 
 // type list properties
 
 const NC_MIME_TYPES         = NC_NS + "MIME-types";
 const NC_PROTOCOL_SCHEMES   = NC_NS + "Protocol-Schemes";
 
-// /////////////////////////////////////////////////////////////////////////////
 // MIME Types DataSource Wrapper
 
 function NC_URI(aProperty)
 {
   return "http://home.netscape.com/NC-rdf#" + aProperty;
 }
 
 function MIME_URI(aType)
--- a/toolkit/mozapps/extensions/content/update.js
+++ b/toolkit/mozapps/extensions/content/update.js
@@ -101,17 +101,16 @@ var gUpdateWizard = {
                              aNextButton, aNextButtonIsDisabled,
                              aCancelButton, aCancelButtonIsDisabled)
   {
     this._setUpButton("back", aBackButton, aBackButtonIsDisabled);
     this._setUpButton("next", aNextButton, aNextButtonIsDisabled);
     this._setUpButton("cancel", aCancelButton, aCancelButtonIsDisabled);
   },
 
-  // ///////////////////////////////////////////////////////////////////////////
   // Update Errors
   errorItems: [],
 
   checkForErrors: function(aElementIDToShow)
   {
     if (this.errorItems.length > 0)
       document.getElementById(aElementIDToShow).hidden = false;
   },
@@ -273,17 +272,16 @@ var gVersionInfoPage = {
       // VersionInfo compatibility updates resolved all compatibility problems,
       // close this window and continue starting the application...
       // XXX Bug 314754 - We need to use setTimeout to close the window due to
       // the EM using xmlHttpRequest when checking for updates.
       setTimeout(close, 0);
     }
   },
 
-  // ///////////////////////////////////////////////////////////////////////////
   // UpdateListener
   onUpdateFinished: function(aAddon, status) {
     ++this._completeCount;
 
     if (status != AddonManager.UPDATE_STATUS_NO_ERROR) {
       logger.debug("VersionInfo update " + this._completeCount + " of " + this._totalCount +
            " failed for " + aAddon.id + ": " + status);
       gUpdateWizard.errorItems.push(aAddon);
@@ -372,17 +370,16 @@ var gUpdatePage = {
       return;
 
     var nextPage = document.getElementById("noupdates");
     if (gUpdateWizard.addonsToUpdate.length > 0)
       nextPage = document.getElementById("found");
     document.documentElement.currentPage = nextPage;
   },
 
-  // ///////////////////////////////////////////////////////////////////////////
   // UpdateListener
   onUpdateAvailable: function(aAddon, aInstall) {
     logger.debug("UpdatePage got an update for " + aAddon.id + ": " + aAddon.version);
     gUpdateWizard.addonsToUpdate.push(aInstall);
   },
 
   onUpdateFinished: function(aAddon, status) {
     if (status != AddonManager.UPDATE_STATUS_NO_ERROR)
@@ -546,17 +543,16 @@ var gInstallingPage = {
       install.cancel();
       this.startNextInstall();
       return;
     }
     install.addListener(this);
     install.install();
   },
 
-  // ///////////////////////////////////////////////////////////////////////////
   // InstallListener
   onDownloadStarted: function(aInstall) {
     if (gUpdateWizard.shuttingDown) {
       return;
     }
     var strings = document.getElementById("updateStrings");
     var label = strings.getFormattedString("downloadingPrefix", [aInstall.name]);
     var actionItem = document.getElementById("actionItem");
--- a/toolkit/mozapps/extensions/test/xpinstall/browser_auth3.js
+++ b/toolkit/mozapps/extensions/test/xpinstall/browser_auth3.js
@@ -1,14 +1,13 @@
 // ----------------------------------------------------------------------------
 // Test whether an install fails when authentication is required and it is
 // canceled
 // This verifies bug 312473
 
-// /////////////////
 //
 // Whitelisting this test.
 // As part of bug 1077403, the leaking uncaught rejection should be fixed.
 //
 thisTestLeaksUncaughtRejectionsAndShouldBeFixed("TypeError: this.docShell is null");
 
 
 function test() {
--- a/toolkit/mozapps/extensions/test/xpinstall/browser_auth4.js
+++ b/toolkit/mozapps/extensions/test/xpinstall/browser_auth4.js
@@ -1,9 +1,8 @@
-// /////////////////
 //
 // Whitelisting this test.
 // As part of bug 1077403, the leaking uncaught rejection should be fixed.
 //
 thisTestLeaksUncaughtRejectionsAndShouldBeFixed("TypeError: this.docShell is null");
 
 
 // ----------------------------------------------------------------------------
--- a/toolkit/mozapps/handling/content/dialog.js
+++ b/toolkit/mozapps/handling/content/dialog.js
@@ -32,28 +32,26 @@ var Cc = Components.classes;
 var Ci = Components.interfaces;
 var Cr = Components.results;
 var Cu = Components.utils;
 
 Cu.import("resource://gre/modules/SharedPromptUtils.jsm");
 
 
 var dialog = {
-  // ////////////////////////////////////////////////////////////////////////////
-  // // Member Variables
+  // Member Variables
 
   _handlerInfo: null,
   _URI: null,
   _itemChoose: null,
   _okButton: null,
   _windowCtxt: null,
   _buttonDisabled: true,
 
-  // ////////////////////////////////////////////////////////////////////////////
-  // // Methods
+  // Methods
 
  /**
   * This function initializes the content of the dialog.
   */
   initialize: function initialize()
   {
     this._handlerInfo = window.arguments[7].QueryInterface(Ci.nsIHandlerInfo);
     this._URI         = window.arguments[8].QueryInterface(Ci.nsIURI);
@@ -258,18 +256,17 @@ var dialog = {
   onDblClick: function onDblClick()
   {
     if (this.selectedItem == this._itemChoose)
       this.chooseApplication();
     else
       document.documentElement.acceptDialog();
   },
 
-  // ///////////////////////////////////////////////////////////////////////////
-  // // Getters / Setters
+  // Getters / Setters
 
  /**
   * Returns/sets the selected element in the richlistbox
   */
   get selectedItem()
   {
     return document.getElementById("items").selectedItem;
   },
--- a/toolkit/mozapps/handling/nsContentDispatchChooser.js
+++ b/toolkit/mozapps/handling/nsContentDispatchChooser.js
@@ -1,37 +1,34 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Constants
+// Constants
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cr = Components.results;
 
 const CONTENT_HANDLING_URL = "chrome://mozapps/content/handling/dialog.xul";
 const STRINGBUNDLE_URL = "chrome://mozapps/locale/handling/handling.properties";
 
-// //////////////////////////////////////////////////////////////////////////////
-// // nsContentDispatchChooser class
+// nsContentDispatchChooser class
 
 function nsContentDispatchChooser()
 {
 }
 
 nsContentDispatchChooser.prototype =
 {
   classID: Components.ID("e35d5067-95bc-4029-8432-e8f1e431148d"),
 
-  // ////////////////////////////////////////////////////////////////////////////
-  // // nsIContentDispatchChooser
+  // nsIContentDispatchChooser
 
   ask: function ask(aHandler, aWindowContext, aURI, aReason)
   {
     var window = null;
     try {
       if (aWindowContext)
         window = aWindowContext.getInterface(Ci.nsIDOMWindow);
     } catch (e) { /* it's OK to not have a window */ }
@@ -71,20 +68,18 @@ nsContentDispatchChooser.prototype =
              getService(Ci.nsIWindowWatcher);
     ww.openWindow(window,
                   CONTENT_HANDLING_URL,
                   null,
                   "chrome,dialog=yes,resizable,centerscreen",
                   params);
   },
 
-  // ////////////////////////////////////////////////////////////////////////////
-  // // nsISupports
+  // nsISupports
 
   QueryInterface: XPCOMUtils.generateQI([Ci.nsIContentDispatchChooser])
 };
 
-// //////////////////////////////////////////////////////////////////////////////
-// // Module
+// Module
 
 var components = [nsContentDispatchChooser];
 
 this.NSGetFactory = XPCOMUtils.generateNSGetFactory(components);