155 lines
4.9 KiB
JavaScript
155 lines
4.9 KiB
JavaScript
/* 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";
|
|
|
|
/* import-globals-from aboutDialog-appUpdater.js */
|
|
/* import-globals-from utilityOverlay.js */
|
|
|
|
// Services = object with smart getters for common XPCOM services
|
|
var { AppConstants } = ChromeUtils.importESModule(
|
|
"resource://gre/modules/AppConstants.sys.mjs"
|
|
);
|
|
if (AppConstants.MOZ_UPDATER) {
|
|
Services.scriptloader.loadSubScript(
|
|
"chrome://browser/content/aboutDialog-appUpdater.js",
|
|
this
|
|
);
|
|
}
|
|
|
|
function init() {
|
|
let defaults = Services.prefs.getDefaultBranch(null);
|
|
let distroId = defaults.getCharPref("distribution.id", "");
|
|
if (distroId) {
|
|
let distroAbout = defaults.getStringPref("distribution.about", "");
|
|
// If there is about text, we always show it.
|
|
if (distroAbout) {
|
|
let distroField = document.getElementById("distribution");
|
|
distroField.value = distroAbout;
|
|
distroField.style.display = "block";
|
|
}
|
|
// If it's not a mozilla distribution, show the rest,
|
|
// unless about text exists, then we always show.
|
|
if (!distroId.startsWith("mozilla-") || distroAbout) {
|
|
let distroVersion = defaults.getCharPref("distribution.version", "");
|
|
if (distroVersion) {
|
|
distroId += " - " + distroVersion;
|
|
}
|
|
|
|
let distroIdField = document.getElementById("distributionId");
|
|
distroIdField.value = distroId;
|
|
distroIdField.style.display = "block";
|
|
}
|
|
}
|
|
|
|
// Include the build ID and display warning if this is an "a#" (nightly or aurora) build
|
|
let versionIdMap = new Map([
|
|
["base", "aboutDialog-version"],
|
|
["base-nightly", "aboutDialog-version-nightly"],
|
|
["base-arch", "aboutdialog-version-arch"],
|
|
["base-arch-nightly", "aboutdialog-version-arch-nightly"],
|
|
]);
|
|
let versionIdKey = "base";
|
|
let versionAttributes = {
|
|
version: AppConstants.MOZ_APP_VERSION_DISPLAY,
|
|
};
|
|
|
|
let arch = Services.sysinfo.get("arch");
|
|
if (["x86", "x86-64"].includes(arch)) {
|
|
versionAttributes.bits = Services.appinfo.is64Bit ? 64 : 32;
|
|
} else {
|
|
versionIdKey += "-arch";
|
|
versionAttributes.arch = arch;
|
|
}
|
|
|
|
let version = Services.appinfo.version;
|
|
if (/a\d+$/.test(version)) {
|
|
versionIdKey += "-nightly";
|
|
let buildID = Services.appinfo.appBuildID;
|
|
let year = buildID.slice(0, 4);
|
|
let month = buildID.slice(4, 6);
|
|
let day = buildID.slice(6, 8);
|
|
versionAttributes.isodate = `${year}-${month}-${day}`;
|
|
|
|
document.getElementById("experimental").hidden = false;
|
|
document.getElementById("communityDesc").hidden = true;
|
|
}
|
|
|
|
// Use Fluent arguments for append version and the architecture of the build
|
|
let versionField = document.getElementById("version");
|
|
|
|
document.l10n.setAttributes(
|
|
versionField,
|
|
versionIdMap.get(versionIdKey),
|
|
versionAttributes
|
|
);
|
|
|
|
// Show a release notes link if we have a URL.
|
|
let relNotesLink = document.getElementById("releasenotes");
|
|
let relNotesPrefType = Services.prefs.getPrefType(
|
|
"app.releaseNotesURL.aboutDialog"
|
|
);
|
|
if (relNotesPrefType != Services.prefs.PREF_INVALID) {
|
|
let relNotesURL = Services.urlFormatter.formatURLPref(
|
|
"app.releaseNotesURL.aboutDialog"
|
|
);
|
|
if (relNotesURL != "about:blank") {
|
|
relNotesLink.href = relNotesURL;
|
|
relNotesLink.hidden = false;
|
|
}
|
|
}
|
|
|
|
if (AppConstants.MOZ_UPDATER) {
|
|
gAppUpdater = new appUpdater({ buttonAutoFocus: true });
|
|
|
|
let channelLabel = document.getElementById("currentChannelText");
|
|
let channelAttrs = document.l10n.getAttributes(channelLabel);
|
|
let channel = UpdateUtils.UpdateChannel;
|
|
document.l10n.setAttributes(channelLabel, channelAttrs.id, { channel });
|
|
if (
|
|
/^release($|\-)/.test(channel) ||
|
|
Services.sysinfo.getProperty("isPackagedApp")
|
|
) {
|
|
channelLabel.hidden = true;
|
|
}
|
|
}
|
|
|
|
if (AppConstants.IS_ESR) {
|
|
document.getElementById("release").hidden = false;
|
|
}
|
|
|
|
document
|
|
.getElementById("aboutDialogEscapeKey")
|
|
.addEventListener("command", () => {
|
|
window.close();
|
|
});
|
|
if (AppConstants.MOZ_UPDATER) {
|
|
document
|
|
.getElementById("aboutDialogHelpLink")
|
|
.addEventListener("click", () => {
|
|
openHelpLink("firefox-help");
|
|
});
|
|
document
|
|
.getElementById("submit-feedback")
|
|
.addEventListener("click", openFeedbackPage);
|
|
document
|
|
.getElementById("checkForUpdatesButton")
|
|
.addEventListener("command", () => {
|
|
gAppUpdater.checkForUpdates();
|
|
});
|
|
document
|
|
.getElementById("downloadAndInstallButton")
|
|
.addEventListener("command", () => {
|
|
gAppUpdater.startDownload();
|
|
});
|
|
document.getElementById("updateButton").addEventListener("command", () => {
|
|
gAppUpdater.buttonRestartAfterDownload();
|
|
});
|
|
window.addEventListener("unload", e => {
|
|
onUnload(e);
|
|
});
|
|
}
|
|
}
|
|
|
|
init();
|