This patch disables the update service as if it were disabled by policy whenever a package identify is present. User interfaces are treated as if the updater had not been included in the build, because that prevents any of our usual update UI from being shown, and in particular ensures that we do not generate messages about an administrator handling updates, as would normally happen when disabling updates via policy. The telemetry environment's update.enabled flag is deliberately left alone in this patch, because the mere fact of using an app package does not really say anything about whether the user intends to allow automatic updating or not. Depends on D114427 Differential Revision: https://phabricator.services.mozilla.com/D114886
124 lines
4.0 KiB
JavaScript
124 lines
4.0 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 */
|
|
|
|
// 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"
|
|
);
|
|
if (AppConstants.MOZ_UPDATER) {
|
|
Services.scriptloader.loadSubScript(
|
|
"chrome://browser/content/aboutDialog-appUpdater.js",
|
|
this
|
|
);
|
|
}
|
|
|
|
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";
|
|
}
|
|
}
|
|
|
|
// Include the build ID and display warning if this is an "a#" (nightly or aurora) build
|
|
let versionId = "aboutDialog-version";
|
|
let versionAttributes = {
|
|
version: AppConstants.MOZ_APP_VERSION_DISPLAY,
|
|
bits: Services.appinfo.is64Bit ? 64 : 32,
|
|
};
|
|
|
|
let version = Services.appinfo.version;
|
|
if (/a\d+$/.test(version)) {
|
|
versionId = "aboutDialog-version-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, versionId, versionAttributes);
|
|
|
|
await document.l10n.translateElements([versionField]);
|
|
|
|
// 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("currentChannel");
|
|
let currentChannelText = document.getElementById("currentChannelText");
|
|
channelLabel.value = UpdateUtils.UpdateChannel;
|
|
let hasWinPackageId = false;
|
|
try {
|
|
hasWinPackageId = Services.sysinfo.getProperty("hasWinPackageId");
|
|
} catch (_ex) {
|
|
// The hasWinPackageId property doesn't exist; assume it should be false.
|
|
}
|
|
if (/^release($|\-)/.test(channelLabel.value) || hasWinPackageId) {
|
|
currentChannelText.hidden = true;
|
|
}
|
|
}
|
|
|
|
if (AppConstants.MOZ_APP_VERSION_DISPLAY.endsWith("esr")) {
|
|
document.getElementById("release").hidden = false;
|
|
}
|
|
|
|
window.sizeToContent();
|
|
|
|
if (AppConstants.platform == "macosx") {
|
|
window.moveTo(
|
|
screen.availWidth / 2 - window.outerWidth / 2,
|
|
screen.availHeight / 5
|
|
);
|
|
}
|
|
}
|