feat: enable updater

(cherry picked from commit 406d531a4ccdb61786ad2aa013c9f98ada2ed02c)
This commit is contained in:
Alex Kontos
2025-08-21 10:07:33 +01:00
parent e7824895ad
commit 6ab05a96be
5 changed files with 31 additions and 4 deletions

View File

@@ -52,5 +52,5 @@ ServerURL=@MOZ_CRASHREPORTER_URL@/submit?id=@MOZ_APP_ID@&version=@MOZ_APP_VERSIO
#if MOZ_UPDATER #if MOZ_UPDATER
[AppUpdate] [AppUpdate]
URL=https://@MOZ_APPUPDATE_HOST@/update/6/%PRODUCT%/%VERSION%/%BUILD_ID%/%BUILD_TARGET%/%LOCALE%/%CHANNEL%/%OS_VERSION%/%SYSTEM_CAPABILITIES%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%/update.xml URL=https://@MOZ_APPUPDATE_HOST@/update/%PRODUCT%/%DISPLAY_VERSION%/%OS%_%ARCH%/%CHANNEL%/%OS_VERSION%/%SYSTEM_CAPABILITIES%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%/update.xml
#endif #endif

View File

@@ -89,7 +89,7 @@ if CONFIG["MOZ_APP_BASENAME"]:
if CONFIG[var]: if CONFIG[var]:
appini_defines[var] = True appini_defines[var] = True
appini_defines["MOZ_APPUPDATE_HOST"] = "aus5.mozilla.org" appini_defines["MOZ_APPUPDATE_HOST"] = "aus.waterfox.net"
if CONFIG["MOZ_APPUPDATE_HOST"]: if CONFIG["MOZ_APPUPDATE_HOST"]:
appini_defines["MOZ_APPUPDATE_HOST"] = CONFIG["MOZ_APPUPDATE_HOST"] appini_defines["MOZ_APPUPDATE_HOST"] = CONFIG["MOZ_APPUPDATE_HOST"]

View File

@@ -114,12 +114,16 @@ nsURLFormatterService.prototype = {
XPCOMABI() { XPCOMABI() {
return this.ABI; return this.ABI;
}, },
ARCH() {
return UpdateUtils.ABI.substring(0, UpdateUtils.ABI.indexOf("-"));
},
BUILD_TARGET() { BUILD_TARGET() {
return Services.appinfo.OS + "_" + this.ABI; return Services.appinfo.OS + "_" + this.ABI;
}, },
OS_VERSION() { OS_VERSION() {
return this.OSVersion; return this.OSVersion;
}, },
DISPLAY_VERSION: () => AppConstants.MOZ_APP_VERSION_DISPLAY,
CHANNEL: () => lazy.UpdateUtils.UpdateChannel, CHANNEL: () => lazy.UpdateUtils.UpdateChannel,
MOZILLA_API_KEY: () => AppConstants.MOZ_MOZILLA_API_KEY, MOZILLA_API_KEY: () => AppConstants.MOZ_MOZILLA_API_KEY,
GOOGLE_LOCATION_SERVICE_API_KEY: () => GOOGLE_LOCATION_SERVICE_API_KEY: () =>

View File

@@ -77,6 +77,9 @@ export var UpdateUtils = {
return url.replace(/%(\w+)%/g, (match, name) => { return url.replace(/%(\w+)%/g, (match, name) => {
let replacement = match; let replacement = match;
switch (name) { switch (name) {
case "ARCH":
replacement = UpdateUtils.ABI.substring(0, UpdateUtils.ABI.indexOf("-"));
break;
case "PRODUCT": case "PRODUCT":
replacement = Services.appinfo.name; replacement = Services.appinfo.name;
break; break;
@@ -89,6 +92,9 @@ export var UpdateUtils = {
case "BUILD_TARGET": case "BUILD_TARGET":
replacement = Services.appinfo.OS + "_" + this.ABI; replacement = Services.appinfo.OS + "_" + this.ABI;
break; break;
case "OS":
replacement = Services.appinfo.OS;
break;
case "OS_VERSION": case "OS_VERSION":
replacement = this.OSVersion; replacement = this.OSVersion;
break; break;
@@ -110,6 +116,9 @@ export var UpdateUtils = {
case "DISTRIBUTION_VERSION": case "DISTRIBUTION_VERSION":
replacement = getDistributionPrefValue(PREF_APP_DISTRIBUTION_VERSION); replacement = getDistributionPrefValue(PREF_APP_DISTRIBUTION_VERSION);
break; break;
case "DISPLAY_VERSION":
replacement = AppConstants.MOZ_APP_VERSION_DISPLAY;
break;
} }
return encodeURIComponent(replacement); return encodeURIComponent(replacement);
}); });
@@ -960,6 +969,8 @@ function getMemoryMB() {
*/ */
ChromeUtils.defineLazyGetter(lazy, "gInstructionSet", function aus_gIS() { ChromeUtils.defineLazyGetter(lazy, "gInstructionSet", function aus_gIS() {
const CPU_EXTENSIONS = [ const CPU_EXTENSIONS = [
"hasAVX2",
"hasAVX",
"hasSSE4_2", "hasSSE4_2",
"hasSSE4_1", "hasSSE4_1",
"hasSSE4A", "hasSSE4A",

View File

@@ -98,6 +98,7 @@ const PREF_APP_UPDATE_SERVICE_MAXERRORS = "app.update.service.maxErrors";
const PREF_APP_UPDATE_SOCKET_MAXERRORS = "app.update.socket.maxErrors"; const PREF_APP_UPDATE_SOCKET_MAXERRORS = "app.update.socket.maxErrors";
const PREF_APP_UPDATE_SOCKET_RETRYTIMEOUT = "app.update.socket.retryTimeout"; const PREF_APP_UPDATE_SOCKET_RETRYTIMEOUT = "app.update.socket.retryTimeout";
const PREF_APP_UPDATE_STAGING_ENABLED = "app.update.staging.enabled"; const PREF_APP_UPDATE_STAGING_ENABLED = "app.update.staging.enabled";
const PREF_APP_UPDATE_URL_OVERRIDE = "app.update.url.override";
const PREF_APP_UPDATE_URL_DETAILS = "app.update.url.details"; const PREF_APP_UPDATE_URL_DETAILS = "app.update.url.details";
const PREF_NETWORK_PROXY_TYPE = "network.proxy.type"; const PREF_NETWORK_PROXY_TYPE = "network.proxy.type";
@@ -1137,7 +1138,7 @@ function isServiceInstalled() {
); );
wrk.open( wrk.open(
wrk.ROOT_KEY_LOCAL_MACHINE, wrk.ROOT_KEY_LOCAL_MACHINE,
"Software\\Waterfox\\MaintenanceService", "Software\\BrowserWorks\\MaintenanceService",
wrk.ACCESS_READ | wrk.WOW64_64 wrk.ACCESS_READ | wrk.WOW64_64
); );
installed = wrk.readIntValue("Installed"); installed = wrk.readIntValue("Installed");
@@ -5304,8 +5305,19 @@ export class CheckerService {
throw Components.Exception("", Cr.NS_ERROR_INVALID_ARG); throw Components.Exception("", Cr.NS_ERROR_INVALID_ARG);
} }
let url = Services.appinfo.updateURL; let url;
let updatePin; let updatePin;
if (
Services.prefs
.getDefaultBranch(null)
.getCharPref(PREF_APP_UPDATE_URL_OVERRIDE, "")
) {
url = Services.prefs
.getDefaultBranch(null)
.getCharPref(PREF_APP_UPDATE_URL_OVERRIDE, "");
} else {
url = Services.appinfo.updateURL;
}
if (Services.policies) { if (Services.policies) {
let policies = Services.policies.getActivePolicies(); let policies = Services.policies.getActivePolicies();