Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: cherry-pick daad98ce from chromium #26430

Merged
merged 1 commit into from Nov 11, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 1 addition & 0 deletions patches/chromium/.patches
Expand Up @@ -150,3 +150,4 @@ cherry-pick-88f263f401b4.patch
cherry-pick-229fdaf8fc05.patch
cherry-pick-1ed869ad4bb3.patch
crashpad-initialize-logging.patch
make_macos_os_version_numbers_consistent.patch
43 changes: 43 additions & 0 deletions patches/chromium/make_macos_os_version_numbers_consistent.patch
@@ -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
3 changes: 3 additions & 0 deletions spec/api-process-spec.js
Expand Up @@ -70,6 +70,9 @@ describe('process module', () => {
describe('process.getSystemVersion()', () => {
it('returns a string', () => {
expect(process.getSystemVersion()).to.be.a('string');
if (process.platform === 'darwin') {
expect(process.getSystemVersion()).to.not.equal('10.16'); // #26419
}
});
});

Expand Down