Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(681)

Side by Side Diff: chrome_elf/thunk_getter.cc

Issue 891813003: Add support for correct Windows 10 version enumeration. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: better comments Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chrome/test/mini_installer/variable_expander.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <stdint.h> 5 #include <stdint.h>
6 #include <windows.h> 6 #include <windows.h>
7 7
8 #include "base/basictypes.h" 8 #include "base/basictypes.h"
9 #include "sandbox/win/src/interception_internal.h" 9 #include "sandbox/win/src/interception_internal.h"
10 #include "sandbox/win/src/internal_types.h" 10 #include "sandbox/win/src/internal_types.h"
11 #include "sandbox/win/src/sandbox_utils.h" 11 #include "sandbox/win/src/sandbox_utils.h"
12 #include "sandbox/win/src/service_resolver.h" 12 #include "sandbox/win/src/service_resolver.h"
13 13
14 namespace { 14 namespace {
15 enum Version { 15 enum Version {
16 VERSION_PRE_XP_SP2 = 0, // Not supported. 16 VERSION_PRE_XP_SP2 = 0, // Not supported.
17 VERSION_XP_SP2, 17 VERSION_XP_SP2,
18 VERSION_SERVER_2003, // Also includes XP Pro x64 and Server 2003 R2. 18 VERSION_SERVER_2003, // Also includes XP Pro x64 and Server 2003 R2.
19 VERSION_VISTA, // Also includes Windows Server 2008. 19 VERSION_VISTA, // Also includes Windows Server 2008.
20 VERSION_WIN7, // Also includes Windows Server 2008 R2. 20 VERSION_WIN7, // Also includes Windows Server 2008 R2.
21 VERSION_WIN8, // Also includes Windows Server 2012. 21 VERSION_WIN8, // Also includes Windows Server 2012.
22 VERSION_WIN8_1, 22 VERSION_WIN8_1,
23 VERSION_WIN10,
23 VERSION_WIN_LAST, // Indicates error condition. 24 VERSION_WIN_LAST, // Indicates error condition.
24 }; 25 };
25 26
26 // Whether a process is running under WOW64 (the wrapper that allows 32-bit 27 // Whether a process is running under WOW64 (the wrapper that allows 32-bit
27 // processes to run on 64-bit versions of Windows). This will return 28 // processes to run on 64-bit versions of Windows). This will return
28 // WOW64_DISABLED for both "32-bit Chrome on 32-bit Windows" and "64-bit 29 // WOW64_DISABLED for both "32-bit Chrome on 32-bit Windows" and "64-bit
29 // Chrome on 64-bit Windows". WOW64_UNKNOWN means "an error occurred", e.g. 30 // Chrome on 64-bit Windows". WOW64_UNKNOWN means "an error occurred", e.g.
30 // the process does not have sufficient access rights to determine this. 31 // the process does not have sufficient access rights to determine this.
31 enum WOW64Status { WOW64_DISABLED, WOW64_ENABLED, WOW64_UNKNOWN, }; 32 enum WOW64Status { WOW64_DISABLED, WOW64_ENABLED, WOW64_UNKNOWN, };
32 33
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 version_ = VERSION_WIN7; 79 version_ = VERSION_WIN7;
79 break; 80 break;
80 case 2: 81 case 2:
81 // Treat Windows Server 2012 the same as Windows 8. 82 // Treat Windows Server 2012 the same as Windows 8.
82 version_ = VERSION_WIN8; 83 version_ = VERSION_WIN8;
83 break; 84 break;
84 default: 85 default:
85 version_ = VERSION_WIN8_1; 86 version_ = VERSION_WIN8_1;
86 break; 87 break;
87 } 88 }
89 } else if (version_number_.major == 10) {
90 version_ = VERSION_WIN10;
88 } else if (version_number_.major > 6) { 91 } else if (version_number_.major > 6) {
89 version_ = VERSION_WIN_LAST; 92 version_ = VERSION_WIN_LAST;
90 } else { 93 } else {
91 version_ = VERSION_PRE_XP_SP2; 94 version_ = VERSION_PRE_XP_SP2;
92 } 95 }
93 96
94 service_pack_.major = version_info.wServicePackMajor; 97 service_pack_.major = version_info.wServicePackMajor;
95 service_pack_.minor = version_info.wServicePackMinor; 98 service_pack_.minor = version_info.wServicePackMinor;
96 } 99 }
97 100
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 thunk = new sandbox::Wow64ResolverThunk(current_process, relaxed); 136 thunk = new sandbox::Wow64ResolverThunk(current_process, relaxed);
134 } else if (os_info.version() >= VERSION_WIN8) { 137 } else if (os_info.version() >= VERSION_WIN8) {
135 thunk = new sandbox::Win8ResolverThunk(current_process, relaxed); 138 thunk = new sandbox::Win8ResolverThunk(current_process, relaxed);
136 } else { 139 } else {
137 thunk = new sandbox::ServiceResolverThunk(current_process, relaxed); 140 thunk = new sandbox::ServiceResolverThunk(current_process, relaxed);
138 } 141 }
139 #endif 142 #endif
140 143
141 return thunk; 144 return thunk;
142 } 145 }
OLDNEW
« no previous file with comments | « chrome/test/mini_installer/variable_expander.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698