Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
chore: cherry-pick daad98ce from chromium (#26430)
Fixes #26419 The "IsOS/IsAtLeastOS/IsAtMostOS" functions are driven from the Darwin version number, which is always accurate. Adjust the SysInfo::OperatingSystemVersionNumbers() function to return accurate version numbers (or the best we can deduce) so that all version numbers returned by helper functions are accurate and consistent. Bug: 1101439 Bug: 1108832 Change-Id: I2ca92478d76bf572cc55875cba443f4978482d10 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2315490 Reviewed-by: Mark Mentovai <mark@chromium.org> Commit-Queue: Avi Drissman <avi@chromium.org> Cr-Commit-Position: refs/heads/master@{#791491}
- Loading branch information
Showing
3 changed files
with
47 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
43 changes: 43 additions & 0 deletions
43
patches/chromium/make_macos_os_version_numbers_consistent.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 | ||
From: Avi Drissman <avi@chromium.org> | ||
Date: Sat, 25 Jul 2020 17:38:19 +0000 | ||
Subject: Make macOS OS version numbers consistent | ||
|
||
The "IsOS/IsAtLeastOS/IsAtMostOS" functions are driven from the Darwin | ||
version number, which is always accurate. Adjust the | ||
SysInfo::OperatingSystemVersionNumbers() function to return accurate | ||
version numbers (or the best we can deduce) so that all version | ||
numbers returned by helper functions are accurate and consistent. | ||
|
||
Bug: 1101439 | ||
Bug: 1108832 | ||
Change-Id: I2ca92478d76bf572cc55875cba443f4978482d10 | ||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2315490 | ||
Reviewed-by: Mark Mentovai <mark@chromium.org> | ||
Commit-Queue: Avi Drissman <avi@chromium.org> | ||
Cr-Commit-Position: refs/heads/master@{#791491} | ||
|
||
diff --git a/base/system/sys_info_mac.mm b/base/system/sys_info_mac.mm | ||
index 265d7678060fd003b4f28b2b50f8a80be5253c88..3becbd628e19084de6fd87de4adcdec2c5af67b4 100644 | ||
--- a/base/system/sys_info_mac.mm | ||
+++ b/base/system/sys_info_mac.mm | ||
@@ -62,6 +62,19 @@ void SysInfo::OperatingSystemVersionNumbers(int32_t* major_version, | ||
*major_version = version.majorVersion; | ||
*minor_version = version.minorVersion; | ||
*bugfix_version = version.patchVersion; | ||
+ | ||
+ // TODO(https://crbug.com/1108832): If an app is built against a pre-macOS | ||
+ // 11.0 SDK, macOS will lie as to what version it is, saying that it is macOS | ||
+ // "10.16" rather than "11.0". The problem is that the "IsOS/IsAtLeastOS/ | ||
+ // IsAtMostOS" functions are driven from the Darwin version number, which | ||
+ // isn't lied about, and therefore the values returned by this function and | ||
+ // those functions are inconsistent. Therefore, unlie about these values. | ||
+ | ||
+ if (*major_version == 10 && *minor_version >= 16) { | ||
+ *major_version = *minor_version - 5; | ||
+ *minor_version = *bugfix_version; | ||
+ *bugfix_version = 0; | ||
+ } | ||
} | ||
|
||
// static |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters