--- a/accessible/tests/mochitest/pivot.js
+++ b/accessible/tests/mochitest/pivot.js
@@ -195,17 +195,17 @@ function setVCRangeInvoker(aDocAcc, aTex
* @param aIdOrNameOrAcc [in] id, accessible or accessible name to expect
* virtual cursor to land on after performing move method.
* false if no move is expected.
* @param aIsFromUserInput [in] set user input flag when invoking method, and
* expect it in the event.
*/
function setVCPosInvoker(aDocAcc, aPivotMoveMethod, aRule, aIdOrNameOrAcc,
aIsFromUserInput) {
- var expectMove = (aIdOrNameOrAcc != false);
+ var expectMove = (!!aIdOrNameOrAcc);
this.invoke = function virtualCursorChangedInvoker_invoke() {
VCChangedChecker.
storePreviousPosAndOffset(aDocAcc.virtualCursor);
if (aPivotMoveMethod && aRule) {
var moved = false;
switch (aPivotMoveMethod) {
case "moveFirst":
case "moveLast":
@@ -255,17 +255,17 @@ function setVCPosInvoker(aDocAcc, aPivot
* @param aIdOrNameOrAcc [in] id, accessible or accessible name to expect
* virtual cursor to land on after performing move method.
* false if no move is expected.
* @param aIsFromUserInput [in] set user input flag when invoking method, and
* expect it in the event.
*/
function setVCTextInvoker(aDocAcc, aPivotMoveMethod, aBoundary, aTextOffsets,
aIdOrNameOrAcc, aIsFromUserInput) {
- var expectMove = (aIdOrNameOrAcc != false);
+ var expectMove = (!!aIdOrNameOrAcc);
this.invoke = function virtualCursorChangedInvoker_invoke() {
VCChangedChecker.storePreviousPosAndOffset(aDocAcc.virtualCursor);
SimpleTest.info(aDocAcc.virtualCursor.position);
var moved = aDocAcc.virtualCursor[aPivotMoveMethod](aBoundary,
aIsFromUserInput === undefined);
SimpleTest.is(!!moved, !!expectMove,
"moved pivot by text with " + aPivotMoveMethod +
" to " + aIdOrNameOrAcc);
@@ -301,17 +301,17 @@ function setVCTextInvoker(aDocAcc, aPivo
* point.
* @param aRule [in] traversal rule object
* @param aIdOrNameOrAcc [in] id, accessible or accessible name to expect
* virtual cursor to land on after performing move method.
* false if no move is expected.
*/
function moveVCCoordInvoker(aDocAcc, aX, aY, aIgnoreNoMatch,
aRule, aIdOrNameOrAcc) {
- var expectMove = (aIdOrNameOrAcc != false);
+ var expectMove = (!!aIdOrNameOrAcc);
this.invoke = function virtualCursorChangedInvoker_invoke() {
VCChangedChecker.
storePreviousPosAndOffset(aDocAcc.virtualCursor);
var moved = aDocAcc.virtualCursor.moveToPoint(aRule, aX, aY,
aIgnoreNoMatch);
SimpleTest.ok((expectMove && moved) || (!expectMove && !moved),
"moved pivot");
};
--- a/accessible/tests/mochitest/table.js
+++ b/accessible/tests/mochitest/table.js
@@ -371,17 +371,17 @@ function testTableSelection(aIdentifier,
// Columns selection tests.
var selCols = [];
// isColumnSelected test
for (let colIdx = 0; colIdx < colsCount; colIdx++) {
var isColSelected = true;
for (let rowIdx = 0; rowIdx < rowCount; rowIdx++) {
- if (aCellsArray[rowIdx][colIdx] == false ||
+ if (!aCellsArray[rowIdx][colIdx] ||
aCellsArray[rowIdx][colIdx] == undefined) {
isColSelected = false;
break;
}
}
is(acc.isColumnSelected(colIdx), isColSelected,
msg + "Wrong selection state of " + colIdx + " column for " +
@@ -411,17 +411,17 @@ function testTableSelection(aIdentifier,
// Rows selection tests.
var selRows = [];
// isRowSelected test
for (let rowIdx = 0; rowIdx < rowCount; rowIdx++) {
var isRowSelected = true;
for (let colIdx = 0; colIdx < colsCount; colIdx++) {
- if (aCellsArray[rowIdx][colIdx] == false ||
+ if (!aCellsArray[rowIdx][colIdx] ||
aCellsArray[rowIdx][colIdx] == undefined) {
isRowSelected = false;
break;
}
}
is(acc.isRowSelected(rowIdx), isRowSelected,
msg + "Wrong selection state of " + rowIdx + " row for " +
@@ -453,17 +453,17 @@ function testTableSelection(aIdentifier,
var selCells = [];
// isCellSelected test
for (let rowIdx = 0; rowIdx < rowCount; rowIdx++) {
for (let colIdx = 0; colIdx < colsCount; colIdx++) {
if (aCellsArray[rowIdx][colIdx] & kSpanned)
continue;
- var isSelected = aCellsArray[rowIdx][colIdx] == true;
+ var isSelected = !!aCellsArray[rowIdx][colIdx];
is(acc.isCellSelected(rowIdx, colIdx), isSelected,
msg + "Wrong selection state of cell at " + rowIdx + " row and " +
colIdx + " column for " + prettyName(aIdentifier));
if (aCellsArray[rowIdx][colIdx])
selCells.push(acc.getCellIndexAt(rowIdx, colIdx));
}
}
@@ -510,17 +510,17 @@ function testTableSelection(aIdentifier,
for (let colIdx = 0; colIdx < colsCount; colIdx++) {
if (aCellsArray[rowIdx][colIdx] & kSpanned)
continue;
var cell = acc.getCellAt(rowIdx, colIdx);
var isSel = aCellsArray[rowIdx][colIdx];
if (isSel == undefined)
testStates(cell, 0, 0, STATE_SELECTABLE | STATE_SELECTED);
- else if (isSel == true)
+ else if (isSel)
testStates(cell, STATE_SELECTED);
else
testStates(cell, STATE_SELECTABLE, 0, STATE_SELECTED);
}
}
}
/**
--- a/browser/base/content/blockedSite.xhtml
+++ b/browser/base/content/blockedSite.xhtml
@@ -75,17 +75,17 @@
return document.location.hostname;
} catch (e) {
return getURL();
}
}
function onClickSeeDetails() {
let details = document.getElementById("errorDescriptionContainer");
- if (details.hidden == true) {
+ if (details.hidden) {
details.removeAttribute("hidden");
} else {
details.setAttribute("hidden", "true");
}
}
function initPage() {
var error = "";
--- a/browser/base/content/test/permissions/browser_temporary_permissions_navigation.js
+++ b/browser/base/content/test/permissions/browser_temporary_permissions_navigation.js
@@ -20,17 +20,17 @@ add_task(async function testTempPermissi
scope: SitePermissions.SCOPE_TEMPORARY,
});
// Reload through the page (should not remove the temp permission).
await ContentTask.spawn(browser, {}, () => content.document.location.reload());
await reloaded;
await BrowserTestUtils.waitForCondition(() => {
- return reloadButton.disabled == false;
+ return !reloadButton.disabled;
});
Assert.deepEqual(SitePermissions.get(uri, id, browser), {
state: SitePermissions.BLOCK,
scope: SitePermissions.SCOPE_TEMPORARY,
});
reloaded = BrowserTestUtils.browserLoaded(browser, false, uri.spec);
--- a/browser/base/content/test/plugins/browser_CTP_overlay_styles.js
+++ b/browser/base/content/test/plugins/browser_CTP_overlay_styles.js
@@ -75,17 +75,17 @@ add_task(async function() {
for (let testcaseId of Object.keys(testcases)) {
let plugin = doc.querySelector(`#${testcaseId} > object`);
let overlay = doc.getAnonymousElementByAttribute(plugin, "anonid", "main");
Assert.ok(overlay, `overlay exists in ${testcaseId}`);
let expectations = testcases[testcaseId];
- Assert.ok(overlay.classList.contains("visible") == true,
+ Assert.ok(!!overlay.classList.contains("visible"),
`The expected visibility is correct in ${testcaseId}`);
Assert.ok(overlay.getAttribute("sizing") == expectations.sizing,
`The expected sizing is correct in ${testcaseId}`);
Assert.ok(overlay.getAttribute("notext") == expectations.notext,
`The expected notext is correct in ${testcaseId}`);
}
--- a/browser/components/enterprisepolicies/Policies.jsm
+++ b/browser/components/enterprisepolicies/Policies.jsm
@@ -26,75 +26,75 @@ XPCOMUtils.defineLazyGetter(this, "log",
});
});
this.EXPORTED_SYMBOLS = ["Policies"];
this.Policies = {
"block_about_config": {
onBeforeUIStartup(manager, param) {
- if (param == true) {
+ if (param) {
manager.disallowFeature("about:config", true);
}
}
},
"DisableAppUpdate": {
onBeforeAddons(manager, param) {
if (param == true) {
manager.disallowFeature("appUpdate");
}
}
},
"display_menu_bar": {
onBeforeUIStartup(manager, param) {
- if (param == true) {
+ if (param) {
// This policy is meant to change the default behavior, not to force it.
// If this policy was alreay applied and the user chose to re-hide the
// menu bar, do not show it again.
if (!Services.prefs.getBoolPref(PREF_MENU_ALREADY_DISPLAYED, false)) {
log.debug("Showing the menu bar");
gXulStore.setValue(BROWSER_DOCUMENT_URL, "toolbar-menubar", "autohide", "false");
Services.prefs.setBoolPref(PREF_MENU_ALREADY_DISPLAYED, true);
} else {
log.debug("Not showing the menu bar because it has already been shown.");
}
}
}
},
"display_bookmarks_toolbar": {
onBeforeUIStartup(manager, param) {
- if (param == true) {
+ if (param) {
// This policy is meant to change the default behavior, not to force it.
// If this policy was alreay applied and the user chose to re-hide the
// bookmarks toolbar, do not show it again.
if (!Services.prefs.getBoolPref(PREF_BOOKMARKS_ALREADY_DISPLAYED, false)) {
log.debug("Showing the bookmarks toolbar");
gXulStore.setValue(BROWSER_DOCUMENT_URL, "PersonalToolbar", "collapsed", "false");
Services.prefs.setBoolPref(PREF_BOOKMARKS_ALREADY_DISPLAYED, true);
} else {
log.debug("Not showing the bookmarks toolbar because it has already been shown.");
}
}
}
},
"block_set_desktop_background": {
onBeforeUIStartup(manager, param) {
- if (param == true) {
+ if (param) {
manager.disallowFeature("setDesktopBackground", true);
}
}
},
"DisableFirefoxScreenshots": {
onBeforeAddons(manager, param) {
- if (param == true) {
+ if (param) {
setAndLockPref("extensions.screenshots.disabled", true);
}
}
},
"DisableFirefoxStudies": {
onBeforeAddons(manager, param) {
if (param == true) {
--- a/browser/components/places/content/controller.js
+++ b/browser/components/places/content/controller.js
@@ -309,17 +309,17 @@ PlacesController.prototype = {
return true;
},
/**
* Determines whether or not nodes can be inserted relative to the selection.
*/
_canInsert: function PC__canInsert(isPaste) {
var ip = this._view.insertionPoint;
- return ip != null && (isPaste || ip.isTag != true);
+ return ip != null && (isPaste || !ip.isTag);
},
/**
* Looks at the data on the clipboard to see if it is paste-able.
* Paste-able data is:
* - in a format that the view can receive
* @return true if: - clipboard data is of a TYPE_X_MOZ_PLACE_* flavor,
* - clipboard data is of type TEXT_UNICODE and
--- a/browser/components/preferences/in-content/main.js
+++ b/browser/components/preferences/in-content/main.js
@@ -930,17 +930,17 @@ var gMainPane = {
/**
* Utility function to enable/disable the button specified by aButtonID based
* on the value of the Boolean preference specified by aPreferenceID.
*/
updateButtons(aButtonID, aPreferenceID) {
var button = document.getElementById(aButtonID);
var preference = Preferences.get(aPreferenceID);
- button.disabled = preference.value != true;
+ button.disabled = !preference.value;
return undefined;
},
/**
* Hide/show the "Show my windows and tabs from last time" option based
* on the value of the browser.privatebrowsing.autostart pref.
*/
updateBrowserStartupLastSession() {
@@ -3381,17 +3381,17 @@ FeedHandlerInfo.prototype = {
}
},
get alwaysAskBeforeHandling() {
return Preferences.get(this._prefSelectedAction).value == "ask";
},
set alwaysAskBeforeHandling(aNewValue) {
- if (aNewValue == true)
+ if (aNewValue)
Preferences.get(this._prefSelectedAction).value = "ask";
else
Preferences.get(this._prefSelectedAction).value = "reader";
},
// Whether or not we are currently storing the action selected by the user.
// We use this to suppress notification-triggered updates to the list when
// we make changes that may spawn such updates, specifically when we change
--- a/browser/components/preferences/in-content/privacy.js
+++ b/browser/components/preferences/in-content/privacy.js
@@ -1081,17 +1081,17 @@ var gPrivacyPane = {
/**
* Utility function to enable/disable the button specified by aButtonID based
* on the value of the Boolean preference specified by aPreferenceID.
*/
updateButtons(aButtonID, aPreferenceID) {
var button = document.getElementById(aButtonID);
var preference = Preferences.get(aPreferenceID);
- button.disabled = preference.value != true;
+ button.disabled = !preference.value;
return undefined;
},
// BEGIN UI CODE
/*
* Preferences:
*
--- a/browser/components/tests/browser/browser_bug538331.js
+++ b/browser/components/tests/browser/browser_bug538331.js
@@ -246,17 +246,17 @@ function testDefaultArgs() {
if (testCase.noPostUpdatePref == undefined) {
Services.prefs.setBoolPref(PREF_POSTUPDATE, true);
}
let defaultArgs = Cc["@mozilla.org/browser/clh;1"].
getService(Ci.nsIBrowserHandler).defaultArgs;
is(defaultArgs, overrideArgs, "correct value returned by defaultArgs");
- if (testCase.noMstoneChange === undefined || testCase.noMstoneChange != true) {
+ if (testCase.noMstoneChange === undefined || !testCase.noMstoneChange) {
let newMstone = Services.prefs.getCharPref(PREF_MSTONE);
is(originalMstone, newMstone, "preference " + PREF_MSTONE +
" should have been updated");
}
if (Services.prefs.prefHasUserValue(PREF_POSTUPDATE)) {
Services.prefs.clearUserPref(PREF_POSTUPDATE);
}
--- a/browser/components/uitour/UITour.jsm
+++ b/browser/components/uitour/UITour.jsm
@@ -150,17 +150,17 @@ this.UITour = {
["home", {query: "#home-button"}],
["library", {query: "#appMenu-library-button"}],
["pocket", {
allowAdd: true,
query: (aDocument) => {
// The pocket's urlbar page action button is pre-defined in the DOM.
// It would be hidden if toggled off from the urlbar.
let node = aDocument.getElementById("pocket-button-box");
- if (node && node.hidden == false) {
+ if (node && !node.hidden) {
return node;
}
return aDocument.getElementById("pageAction-panel-pocket");
},
}],
["privateWindow", {query: "#appMenu-private-window-button"}],
["quit", {query: "#appMenu-quit-button"}],
["readerMode-urlBar", {query: "#reader-mode-button"}],
@@ -216,17 +216,17 @@ this.UITour = {
["pageActionButton", {
query: "#pageActionButton"
}],
["pageAction-bookmark", {
query: (aDocument) => {
// The bookmark's urlbar page action button is pre-defined in the DOM.
// It would be hidden if toggled off from the urlbar.
let node = aDocument.getElementById("star-button-box");
- if (node && node.hidden == false) {
+ if (node && !node.hidden) {
return node;
}
return aDocument.getElementById("pageAction-panel-bookmark");
},
}],
["pageAction-copyURL", {
query: (aDocument) => {
return aDocument.getElementById("pageAction-urlbar-copyURL") ||
--- a/browser/modules/WindowsJumpLists.jsm
+++ b/browser/modules/WindowsJumpLists.jsm
@@ -515,17 +515,17 @@ this.WinTaskbarJumpList =
// Add idle observer on the first notification so it doesn't hit startup.
this._updateIdleObserver();
Services.tm.idleDispatchToMainThread(() => { this.update(); });
},
observe: function WTBJL_observe(aSubject, aTopic, aData) {
switch (aTopic) {
case "nsPref:changed":
- if (this._enabled == true && !_prefs.getBoolPref(PREF_TASKBAR_ENABLED))
+ if (!!this._enabled && !_prefs.getBoolPref(PREF_TASKBAR_ENABLED))
this._deleteActiveJumpList();
this._refreshPrefs();
this._updateTimer();
this._updateIdleObserver();
Services.tm.idleDispatchToMainThread(() => { this.update(); });
break;
case "profile-before-change":
--- a/chrome/test/unit/test_data_protocol_registration.js
+++ b/chrome/test/unit/test_data_protocol_registration.js
@@ -89,14 +89,14 @@ function run_test() {
}
// Unregister our factories so we do not leak
for (let i = 0; i < factories.length; i++) {
let factory = factories[i];
let ind = old_factories_inds[i];
registrar.unregisterFactory(factory.CID, factory);
- if (ind == true) {
+ if (ind) {
let old_factory = old_factories[i];
registrar.registerFactory(old_factory.CID, factory.scheme, factory.contractID, old_factory.factory);
}
}
}
--- a/devtools/client/inspector/test/browser_inspector_menu-06-other.js
+++ b/devtools/client/inspector/test/browser_inspector_menu-06-other.js
@@ -78,17 +78,17 @@ add_task(function* () {
let { walker } = inspector;
let divBefore = yield walker.querySelector(walker.rootNode, "#nestedHiddenElement");
let { nodes } = yield walker.children(divBefore);
yield selectNode(nodes[0], inspector, "test-highlight");
let allMenuItems = openContextMenuAndGetAllItems(inspector);
let deleteNode = allMenuItems.find(item => item.id === "node-menu-delete");
ok(deleteNode, "the popup menu has a delete menu item");
- ok(deleteNode.disabled == false, "the delete menu item is not disabled");
+ ok(!deleteNode.disabled, "the delete menu item is not disabled");
let updated = inspector.once("inspector-updated");
info("Triggering 'Delete Node' and waiting for inspector to update");
deleteNode.click();
yield updated;
let divAfter = yield walker.querySelector(walker.rootNode, "#nestedHiddenElement");
let nodesAfter = (yield walker.children(divAfter)).nodes;
--- a/devtools/client/sourceeditor/autocomplete.js
+++ b/devtools/client/sourceeditor/autocomplete.js
@@ -134,17 +134,17 @@ function initializeAutoCompletion(ctx, o
position: "bottom",
theme: "auto",
autoSelect: true,
onClick: insertSelectedPopupItem
});
let cycle = reverse => {
if (popup && popup.isOpen) {
- cycleSuggestions(ed, reverse == true);
+ cycleSuggestions(ed, !!reverse);
return null;
}
return CodeMirror.Pass;
};
let keyMap = {
"Tab": cycle,
--- a/devtools/server/tests/browser/browser_webextension_inspected_window.js
+++ b/devtools/server/tests/browser/browser_webextension_inspected_window.js
@@ -40,17 +40,17 @@ function* teardown({client}) {
yield client.close();
DebuggerServer.destroy();
gBrowser.removeCurrentTab();
}
function waitForNextTabNavigated(client) {
return new Promise(resolve => {
client.addListener("tabNavigated", function tabNavigatedListener(evt, pkt) {
- if (pkt.state == "stop" && pkt.isFrameSwitching == false) {
+ if (pkt.state == "stop" && !pkt.isFrameSwitching) {
client.removeListener("tabNavigated", tabNavigatedListener);
resolve();
}
});
});
}
function consoleEvalJS(consoleClient, jsCode) {
--- a/dom/indexedDB/test/unit/test_add_put.js
+++ b/dom/indexedDB/test/unit/test_add_put.js
@@ -15,17 +15,17 @@ function* testSteps()
let event = yield undefined;
let db = event.target.result;
for (let autoincrement of [true, false]) {
for (let keypath of [false, true, "missing", "invalid"]) {
for (let method of ["put", "add"]) {
for (let explicit of [true, false, undefined, "invalid"]) {
for (let existing of [true, false]) {
- let speccedNoKey = (keypath == false || keypath == "missing") &&
+ let speccedNoKey = (!keypath || keypath == "missing") &&
!explicit;
// We can't do 'existing' checks if we use autogenerated key
if (speccedNoKey && autoincrement && existing) {
continue;
}
// Create store
--- a/services/sync/tps/extensions/tps/resource/modules/bookmarks.jsm
+++ b/services/sync/tps/extensions/tps/resource/modules/bookmarks.jsm
@@ -450,23 +450,23 @@ Bookmark.prototype = {
*
* @param loadInSidebar if true, the loadInSidebar property will be set,
* if false, it will be cleared, and any other value will result
* in no change
* @return nothing
*/
async SetLoadInSidebar(loadInSidebar) {
let itemId = await PlacesUtils.promiseItemId(this.props.guid);
- if (loadInSidebar == true)
+ if (loadInSidebar)
PlacesUtils.annotations.setItemAnnotation(itemId,
"bookmarkProperties/loadInSidebar",
true,
0,
PlacesUtils.annotations.EXPIRE_NEVER);
- else if (loadInSidebar == false)
+ else if (!loadInSidebar)
PlacesUtils.annotations.removeItemAnnotation(itemId,
"bookmarkProperties/loadInSidebar");
},
/**
* SetUri
*
* Updates this bookmark's URI.
--- a/toolkit/components/contentprefs/tests/mochitest/test_remoteContentPrefs.html
+++ b/toolkit/components/contentprefs/tests/mochitest/test_remoteContentPrefs.html
@@ -44,17 +44,17 @@
}
Tester.prototype.is =
function(a, b, note) {
this.mm.sendAsyncMessage("testRemoteContentPrefs:ok", { test: [a === b, note + " (" + a + ", " + b + ")"] });
};
Tester.prototype.ok =
function(b, note) {
- this.mm.sendAsyncMessage("testRemoteContentPrefs:ok", { test: [b != false, note] });
+ this.mm.sendAsyncMessage("testRemoteContentPrefs:ok", { test: [!!b, note] });
};
Tester.prototype.info =
function(note) {
this.mm.sendAsyncMessage("testRemoteContentPrefs:info", { note });
};
var cps = Cc["@mozilla.org/content-pref/service;1"]
.getService(Ci.nsIContentPrefService2);
--- a/toolkit/components/telemetry/TelemetrySession.jsm
+++ b/toolkit/components/telemetry/TelemetrySession.jsm
@@ -953,17 +953,17 @@ var Impl = {
let scalarsSnapshot = keyed ?
Telemetry.snapshotKeyedScalars(this.getDatasetType(), clearSubsession) :
Telemetry.snapshotScalars(this.getDatasetType(), clearSubsession);
// Don't return the test scalars.
let ret = {};
for (let processName in scalarsSnapshot) {
for (let name in scalarsSnapshot[processName]) {
- if (name.startsWith("telemetry.test") && this._testing == false) {
+ if (name.startsWith("telemetry.test") && !this._testing) {
continue;
}
// Finally arrange the data in the returned object.
if (!(processName in ret)) {
ret[processName] = {};
}
ret[processName][name] = scalarsSnapshot[processName][name];
}
--- a/toolkit/mozapps/extensions/AddonManager.jsm
+++ b/toolkit/mozapps/extensions/AddonManager.jsm
@@ -1926,18 +1926,18 @@ var AddonManagerInternal = {
},
onInstallEnded() {
install.removeListener(listener);
// If installing a theme that is disabled and can be enabled
// then enable it
if (install.addon.type == "theme" &&
- install.addon.userDisabled == true &&
- install.addon.appDisabled == false) {
+ !!install.addon.userDisabled &&
+ !install.addon.appDisabled) {
install.addon.userDisabled = false;
}
let needsRestart = (install.addon.pendingOperations != AddonManager.PENDING_NONE);
if (WEBEXT_PERMISSION_PROMPTS && !needsRestart) {
let subject = {wrappedJSObject: {target: browser, addon: install.addon}};
Services.obs.notifyObservers(subject, "webextension-install-notify");
--- a/toolkit/mozapps/extensions/internal/XPIProvider.jsm
+++ b/toolkit/mozapps/extensions/internal/XPIProvider.jsm
@@ -3867,17 +3867,17 @@ this.XPIProvider = {
if (!theme.visible)
return;
let isChangedAddon = (theme.id == aId);
if (isWebExtension(theme.type)) {
if (!isChangedAddon)
this.updateAddonDisabledState(theme, true, undefined, aPendingRestart);
} else if (isChangedAddon) {
newSkin = theme.internalName;
- } else if (theme.userDisabled == false && !theme.pendingUninstall) {
+ } else if (!theme.userDisabled && !theme.pendingUninstall) {
previousTheme = theme;
}
}
if (aPendingRestart) {
Services.prefs.setBoolPref(PREF_SKIN_SWITCHPENDING, true);
Services.prefs.setCharPref(PREF_SKIN_TO_SELECT, newSkin);
} else if (newSkin == this.currentSkin) {