Merge remote-tracking branch 'origin/tracking' into custom

This commit is contained in:
roytam1 2025-08-14 08:55:16 +08:00
commit ae1f9364cd
38 changed files with 85 additions and 1993 deletions

View file

@ -83,82 +83,6 @@ IsWindowsBuildOrLater(uint32_t aBuild)
return false;
}
inline bool
IsWindows10BuildOrLater(uint32_t aBuild)
{
static uint32_t minBuild = 0;
static uint32_t maxBuild = UINT32_MAX;
if (minBuild >= aBuild) {
return true;
}
if (aBuild >= maxBuild) {
return false;
}
OSVERSIONINFOEX info;
ZeroMemory(&info, sizeof(OSVERSIONINFOEX));
info.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
info.dwMajorVersion = 10;
info.dwBuildNumber = aBuild;
DWORDLONG conditionMask = 0;
VER_SET_CONDITION(conditionMask, VER_MAJORVERSION, VER_GREATER_EQUAL);
VER_SET_CONDITION(conditionMask, VER_MINORVERSION, VER_GREATER_EQUAL);
VER_SET_CONDITION(conditionMask, VER_BUILDNUMBER, VER_GREATER_EQUAL);
VER_SET_CONDITION(conditionMask, VER_SERVICEPACKMAJOR, VER_GREATER_EQUAL);
VER_SET_CONDITION(conditionMask, VER_SERVICEPACKMINOR, VER_GREATER_EQUAL);
if (VerifyVersionInfo(&info, VER_MAJORVERSION | VER_MINORVERSION |
VER_BUILDNUMBER | VER_SERVICEPACKMAJOR |
VER_SERVICEPACKMINOR, conditionMask)) {
minBuild = aBuild;
return true;
}
maxBuild = aBuild;
return false;
}
#if 0//defined(_M_X64) || defined(_M_AMD64)
// We support only Win7 or later on Win64.
MOZ_ALWAYS_INLINE bool
IsXPSP3OrLater()
{
return true;
}
MOZ_ALWAYS_INLINE bool
IsWin2003OrLater()
{
return true;
}
MOZ_ALWAYS_INLINE bool
IsWin2003SP2OrLater()
{
return true;
}
MOZ_ALWAYS_INLINE bool
IsVistaOrLater()
{
return true;
}
MOZ_ALWAYS_INLINE bool
IsVistaSP1OrLater()
{
return true;
}
MOZ_ALWAYS_INLINE bool
IsWin7OrLater()
{
return true;
}
#else
MOZ_ALWAYS_INLINE bool
IsXPSP3OrLater()
{
@ -194,7 +118,6 @@ IsWin7OrLater()
{
return IsWindowsVersionOrLater(0x06010000ul);
}
#endif
MOZ_ALWAYS_INLINE bool
IsWin7SP1OrLater()
@ -220,10 +143,40 @@ IsWin10OrLater()
return IsWindowsVersionOrLater(0x0a000000ul);
}
enum class WinBuild : uint32_t {
Win10RTM = 10240,
Win10v1511 = 10586,
Win10v1607 = 14393,
Win10v1703 = 15063,
Win10v1709 = 16299,
Win10v1803 = 17134,
Win10v1809 = 17763,
Win10v1903 = 18362,
Win10v19H2 = 18363,
Win10v20H1 = 19041,
Win10v20H2 = 19042,
Win10v21H1 = 19043,
Win10v21H2 = 19044,
Win10v22H2 = 19045,
Win11RTM = 22000,
Win11v22H2 = 22621,
Win11v23H2 = 22631,
Win11v24H2 = 26100,
Win11v25H2 = 26200
};
// Check for at least named build aBuild taken from WinBuild enum above.
inline bool
IsWindows10BuildOrLater(WinBuild aBuild) {
uint32_t build = static_cast<uint32_t>(aBuild);
return IsWin10OrLater() && IsWindowsBuildOrLater(build);
}
// Windows 11 RTM
MOZ_ALWAYS_INLINE bool
IsWin10CreatorsUpdateOrLater()
IsWin11OrLater()
{
return IsWindows10BuildOrLater(15063);
return IsWindows10BuildOrLater(WinBuild::Win11RTM);
}
MOZ_ALWAYS_INLINE bool