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
authorJared Wein <jwein@mozilla.com>
Thu, 03 Nov 2016 14:42:06 -0400
changeset 320837 57200c02575fb38a1f410eb1d23d241a83db0f34
parent 320836 4b30232f430a14d43420fbeff8eeb076f353ed34
child 320838 1b91c5c012f8c86165422836b2980a50525ab11a
push id33877
push userjwein@mozilla.com
push dateThu, 03 Nov 2016 23:38:39 +0000
treeherderautoland@1b91c5c012f8 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmossop
bugs1315013
milestone52.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
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
@@ -803,19 +794,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.
@@ -932,19 +920,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,
@@ -1063,19 +1048,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() {
@@ -1210,19 +1192,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
@@ -5839,17 +5839,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);
 
@@ -5872,29 +5871,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
@@ -627,18 +627,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
@@ -27,20 +27,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;
@@ -460,19 +458,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
@@ -35,19 +35,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
@@ -774,17 +774,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
@@ -795,17 +794,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"))
@@ -880,17 +878,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.
@@ -935,17 +932,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) {
@@ -985,17 +981,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',
@@ -1097,17 +1092,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;
 
@@ -1146,17 +1140,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)
@@ -1232,17 +1225,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;
@@ -309,18 +303,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) {
@@ -361,18 +354,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()) {
@@ -392,34 +384,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.
  *
@@ -725,18 +715,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);