gecko-dev/toolkit/xre/ModuleVersionInfo_windows.h

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

72 lines
2.0 KiB
C
Raw Normal View History

/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* 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 https://mozilla.org/MPL/2.0/. */
Backed out 8 changesets (bug 1542830) for causing Nightly bustages. a=backout Backed out changeset 6fcb417f7ff4 (bug 1542830) Backed out changeset 1aa253e6604a (bug 1542830) Backed out changeset 73ec288886cd (bug 1542830) Backed out changeset 84b903e60dc9 (bug 1542830) Backed out changeset 8e2da9ff5f5a (bug 1542830) Backed out changeset c4e547a6a039 (bug 1542830) Backed out changeset 919f1af7c135 (bug 1542830) Backed out changeset da7e775c4051 (bug 1542830) --HG-- rename : browser/app/winlauncher/freestanding/DllBlocklist.cpp => browser/app/winlauncher/DllBlocklistWin.cpp rename : browser/app/winlauncher/freestanding/DllBlocklist.h => browser/app/winlauncher/DllBlocklistWin.h rename : mozglue/dllservices/Authenticode.cpp => mozglue/build/Authenticode.cpp rename : mozglue/dllservices/Authenticode.h => mozglue/build/Authenticode.h rename : mozglue/misc/WinUtils.h => mozglue/build/MozglueUtils.h rename : mozglue/dllservices/WindowsDllBlocklist.cpp => mozglue/build/WindowsDllBlocklist.cpp rename : mozglue/dllservices/WindowsDllBlocklist.h => mozglue/build/WindowsDllBlocklist.h rename : mozglue/dllservices/WindowsDllBlocklistCommon.h => mozglue/build/WindowsDllBlocklistCommon.h rename : mozglue/dllservices/WindowsDllBlocklistDefs.in => mozglue/build/WindowsDllBlocklistDefs.in rename : mozglue/dllservices/WindowsDllServices.h => mozglue/build/WindowsDllServices.h rename : mozglue/dllservices/gen_dll_blocklist_defs.py => mozglue/build/gen_dll_blocklist_defs.py rename : toolkit/components/telemetry/docs/data/third-party-modules-ping.rst => toolkit/components/telemetry/docs/data/untrusted-modules-ping.rst rename : toolkit/components/telemetry/tests/unit/test_ThirdPartyModulesPing.js => toolkit/components/telemetry/tests/unit/test_UntrustedModulesPing.js rename : toolkit/xre/UntrustedModulesProcessor.cpp => toolkit/xre/ModuleEvaluator_windows.cpp rename : toolkit/xre/UntrustedModulesProcessor.h => toolkit/xre/ModuleEvaluator_windows.h rename : toolkit/xre/ModuleVersionInfo.cpp => toolkit/xre/ModuleVersionInfo_windows.cpp rename : toolkit/xre/ModuleVersionInfo.h => toolkit/xre/ModuleVersionInfo_windows.h
2019-09-21 21:01:01 +00:00
#ifndef mozilla_ModuleVersionInfo_windows_h
#define mozilla_ModuleVersionInfo_windows_h
#include <windows.h>
#include "nsString.h"
namespace mozilla {
// Obtains basic version info from a module image's version info resource.
class ModuleVersionInfo {
public:
// We favor English(US) for these fields, otherwise we take the first
// translation provided in the version resource.
nsString mCompanyName;
nsString mProductName;
nsString mLegalCopyright;
nsString mFileDescription;
// Represents an A.B.C.D style version number, internally stored as a uint64_t
class VersionNumber {
uint64_t mVersion64 = 0;
public:
VersionNumber() = default;
VersionNumber(DWORD aMostSig, DWORD aLeastSig)
: mVersion64((uint64_t)aMostSig << 32 | aLeastSig) {}
uint16_t A() const {
return (uint16_t)((mVersion64 & 0xffff000000000000) >> 48);
}
uint16_t B() const {
return (uint16_t)((mVersion64 & 0x0000ffff00000000) >> 32);
}
uint16_t C() const {
return (uint16_t)((mVersion64 & 0x00000000ffff0000) >> 16);
}
uint16_t D() const { return (uint16_t)(mVersion64 & 0x000000000000ffff); }
uint64_t Version64() const { return mVersion64; }
bool operator==(const VersionNumber& aOther) const {
return mVersion64 == aOther.mVersion64;
}
nsCString ToString() const {
nsCString ret;
ret.AppendPrintf("%d.%d.%d.%d", (int)A(), (int)B(), (int)C(), (int)D());
return ret;
}
};
VersionNumber mFileVersion;
VersionNumber mProductVersion;
// Returns false if it has no version resource or has no fixed version info.
bool GetFromImage(const nsAString& aPath);
};
} // namespace mozilla
Backed out 8 changesets (bug 1542830) for causing Nightly bustages. a=backout Backed out changeset 6fcb417f7ff4 (bug 1542830) Backed out changeset 1aa253e6604a (bug 1542830) Backed out changeset 73ec288886cd (bug 1542830) Backed out changeset 84b903e60dc9 (bug 1542830) Backed out changeset 8e2da9ff5f5a (bug 1542830) Backed out changeset c4e547a6a039 (bug 1542830) Backed out changeset 919f1af7c135 (bug 1542830) Backed out changeset da7e775c4051 (bug 1542830) --HG-- rename : browser/app/winlauncher/freestanding/DllBlocklist.cpp => browser/app/winlauncher/DllBlocklistWin.cpp rename : browser/app/winlauncher/freestanding/DllBlocklist.h => browser/app/winlauncher/DllBlocklistWin.h rename : mozglue/dllservices/Authenticode.cpp => mozglue/build/Authenticode.cpp rename : mozglue/dllservices/Authenticode.h => mozglue/build/Authenticode.h rename : mozglue/misc/WinUtils.h => mozglue/build/MozglueUtils.h rename : mozglue/dllservices/WindowsDllBlocklist.cpp => mozglue/build/WindowsDllBlocklist.cpp rename : mozglue/dllservices/WindowsDllBlocklist.h => mozglue/build/WindowsDllBlocklist.h rename : mozglue/dllservices/WindowsDllBlocklistCommon.h => mozglue/build/WindowsDllBlocklistCommon.h rename : mozglue/dllservices/WindowsDllBlocklistDefs.in => mozglue/build/WindowsDllBlocklistDefs.in rename : mozglue/dllservices/WindowsDllServices.h => mozglue/build/WindowsDllServices.h rename : mozglue/dllservices/gen_dll_blocklist_defs.py => mozglue/build/gen_dll_blocklist_defs.py rename : toolkit/components/telemetry/docs/data/third-party-modules-ping.rst => toolkit/components/telemetry/docs/data/untrusted-modules-ping.rst rename : toolkit/components/telemetry/tests/unit/test_ThirdPartyModulesPing.js => toolkit/components/telemetry/tests/unit/test_UntrustedModulesPing.js rename : toolkit/xre/UntrustedModulesProcessor.cpp => toolkit/xre/ModuleEvaluator_windows.cpp rename : toolkit/xre/UntrustedModulesProcessor.h => toolkit/xre/ModuleEvaluator_windows.h rename : toolkit/xre/ModuleVersionInfo.cpp => toolkit/xre/ModuleVersionInfo_windows.cpp rename : toolkit/xre/ModuleVersionInfo.h => toolkit/xre/ModuleVersionInfo_windows.h
2019-09-21 21:01:01 +00:00
#endif // mozilla_ModuleVersionInfo_windows_h