mirror of
https://codeberg.org/librewolf/source.git
synced 2024-12-22 05:33:03 -05:00
848b1307ad
This reverts commit 1720a5e79b
.
111 lines
No EOL
3.9 KiB
JavaScript
111 lines
No EOL
3.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";
|
|
|
|
// Services = object with smart getters for common XPCOM services
|
|
var { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
|
|
var { AppConstants } = ChromeUtils.import(
|
|
"resource://gre/modules/AppConstants.jsm"
|
|
);
|
|
|
|
async function init(aEvent) {
|
|
if (aEvent.target != document) {
|
|
return;
|
|
}
|
|
|
|
var distroId = Services.prefs.getCharPref("distribution.id", "");
|
|
if (distroId) {
|
|
var distroAbout = Services.prefs.getStringPref("distribution.about", "");
|
|
// If there is about text, we always show it.
|
|
if (distroAbout) {
|
|
var 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) {
|
|
var distroVersion = Services.prefs.getCharPref(
|
|
"distribution.version",
|
|
""
|
|
);
|
|
if (distroVersion) {
|
|
distroId += " - " + distroVersion;
|
|
}
|
|
|
|
var distroIdField = document.getElementById("distributionId");
|
|
distroIdField.value = distroId;
|
|
distroIdField.style.display = "block";
|
|
}
|
|
}
|
|
|
|
// Display current version number
|
|
let versionField = document.getElementById("versionNumber");
|
|
versionField.innerHTML = AppConstants.MOZ_APP_VERSION_DISPLAY;
|
|
|
|
// If pref "librewolf.aboutMenu.checkVersion" is set to true,
|
|
// check for new version with the link given in "librewolf.aboutMenu.versionCheckGitlabUrl"
|
|
if (Services.prefs.getBoolPref("librewolf.aboutMenu.checkVersion", false)) {
|
|
let versionDiv = document.getElementById("version");
|
|
const loader = document.createElement("div");
|
|
loader.classList.add("loader");
|
|
versionDiv.appendChild(loader);
|
|
|
|
function isNewerVersion(newVersionString, oldVersionString) {
|
|
let [oldVersion, oldRelease] = oldVersionString.replace(/^v/, "").split("-");
|
|
let [newVersion, newRelease] = newVersionString.replace(/^v/, "").split("-");
|
|
console.log(oldVersionString, newVersionString)
|
|
if (oldVersion && newVersion) {
|
|
if (!oldRelease) oldRelease = "0";
|
|
if (!newRelease) newRelease = "0";
|
|
|
|
// Check version
|
|
for (let i = 0; i < newVersion.split(".").length; i++) {
|
|
if (Number(newVersion.split(".")[i]) > Number(oldVersion?.split(".")[i] || "0")) return true;
|
|
}
|
|
|
|
// Check release
|
|
if (Number(newRelease) > Number(oldRelease)) return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
fetch(
|
|
Services.prefs.getStringPref(
|
|
"librewolf.aboutMenu.versionCheckGitlabUrl",
|
|
"https://gitlab.com/api/v4/projects/32320088/releases"
|
|
)
|
|
)
|
|
.then(response => response.json())
|
|
.then(data => {
|
|
if (data.length > 0) {
|
|
const latestVersion = data[0].tag_name;
|
|
if (isNewerVersion(latestVersion, AppConstants.MOZ_APP_VERSION_DISPLAY)) {
|
|
const updateNotice = document.createElement("a");
|
|
updateNotice.classList.add("text-link");
|
|
updateNotice.href = data[0]._links.self;
|
|
updateNotice.onclick = () => window.openWebLinkIn(data[0]._links.self, "tab")
|
|
updateNotice.innerText = "(Update available)";
|
|
versionDiv.appendChild(updateNotice);
|
|
} else {
|
|
const upToDateNotice = document.createElement("div")
|
|
upToDateNotice.innerText = "(Up to date)";
|
|
versionDiv.appendChild(upToDateNotice);
|
|
}
|
|
}
|
|
loader.remove();
|
|
})
|
|
}
|
|
|
|
window.sizeToContent();
|
|
|
|
if (AppConstants.platform == "macosx") {
|
|
window.moveTo(
|
|
screen.availWidth / 2 - window.outerWidth / 2,
|
|
screen.availHeight / 5
|
|
);
|
|
}
|
|
}
|
|
|