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

Side by Side Diff: components/policy/core/common/policy_loader_win.cc

Issue 2733283002: Require explicit selection of traits for LazyInstance (Closed)
Patch Set: Created 3 years, 9 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
OLDNEW
1 // Copyright (c) 2014 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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 "components/policy/core/common/policy_loader_win.h" 5 #include "components/policy/core/common/policy_loader_win.h"
6 6
7 #include <windows.h> 7 #include <windows.h>
8 #include <ntdsapi.h> // For Ds[Un]Bind 8 #include <ntdsapi.h> // For Ds[Un]Bind
9 #include <rpc.h> // For struct GUID 9 #include <rpc.h> // For struct GUID
10 #include <shlwapi.h> // For PathIsUNC() 10 #include <shlwapi.h> // For PathIsUNC()
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 base::ScopedNativeLibrary kernel32_lib_; 206 base::ScopedNativeLibrary kernel32_lib_;
207 207
208 IsWow64Process is_wow_64_process_; 208 IsWow64Process is_wow_64_process_;
209 Wow64DisableWow64FSRedirection wow_64_disable_wow_64_fs_redirection_; 209 Wow64DisableWow64FSRedirection wow_64_disable_wow_64_fs_redirection_;
210 Wow64RevertWow64FSRedirection wow_64_revert_wow_64_fs_redirection_; 210 Wow64RevertWow64FSRedirection wow_64_revert_wow_64_fs_redirection_;
211 211
212 DISALLOW_COPY_AND_ASSIGN(Wow64Functions); 212 DISALLOW_COPY_AND_ASSIGN(Wow64Functions);
213 }; 213 };
214 214
215 // Global Wow64Function instance used by ScopedDisableWow64Redirection below. 215 // Global Wow64Function instance used by ScopedDisableWow64Redirection below.
216 static base::LazyInstance<Wow64Functions> g_wow_64_functions = 216 static base::LazyInstance<Wow64Functions>::DestructorAtExit g_wow_64_functions =
217 LAZY_INSTANCE_INITIALIZER; 217 LAZY_INSTANCE_INITIALIZER;
218 218
219 // Scoper that switches off Wow64 File System Redirection during its lifetime. 219 // Scoper that switches off Wow64 File System Redirection during its lifetime.
220 class ScopedDisableWow64Redirection { 220 class ScopedDisableWow64Redirection {
221 public: 221 public:
222 ScopedDisableWow64Redirection() 222 ScopedDisableWow64Redirection()
223 : active_(false), 223 : active_(false),
224 previous_state_(NULL) { 224 previous_state_(NULL) {
225 Wow64Functions* wow64 = g_wow_64_functions.Pointer(); 225 Wow64Functions* wow64 = g_wow_64_functions.Pointer();
226 if (wow64->is_valid() && wow64->IsWow64()) { 226 if (wow64->is_valid() && wow64->IsWow64()) {
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
259 return ::GetAppliedGPOList(flags, machine_name, sid_user, extension_guid, 259 return ::GetAppliedGPOList(flags, machine_name, sid_user, extension_guid,
260 gpo_list); 260 gpo_list);
261 } 261 }
262 262
263 BOOL FreeGPOList(PGROUP_POLICY_OBJECT gpo_list) override { 263 BOOL FreeGPOList(PGROUP_POLICY_OBJECT gpo_list) override {
264 return ::FreeGPOList(gpo_list); 264 return ::FreeGPOList(gpo_list);
265 } 265 }
266 }; 266 };
267 267
268 // The default windows GPO list provider used for PolicyLoaderWin. 268 // The default windows GPO list provider used for PolicyLoaderWin.
269 static base::LazyInstance<WinGPOListProvider> g_win_gpo_list_provider = 269 static base::LazyInstance<WinGPOListProvider>::DestructorAtExit
270 LAZY_INSTANCE_INITIALIZER; 270 g_win_gpo_list_provider = LAZY_INSTANCE_INITIALIZER;
271 271
272 // Parses |gpo_dict| according to |schema| and writes the resulting policy 272 // Parses |gpo_dict| according to |schema| and writes the resulting policy
273 // settings to |policy| for the given |scope| and |level|. 273 // settings to |policy| for the given |scope| and |level|.
274 void ParsePolicy(const RegistryDict* gpo_dict, 274 void ParsePolicy(const RegistryDict* gpo_dict,
275 PolicyLevel level, 275 PolicyLevel level,
276 PolicyScope scope, 276 PolicyScope scope,
277 const Schema& schema, 277 const Schema& schema,
278 PolicyMap* policy) { 278 PolicyMap* policy) {
279 if (!gpo_dict) 279 if (!gpo_dict)
280 return; 280 return;
(...skipping 339 matching lines...) Expand 10 before | Expand all | Expand 10 after
620 620
621 void PolicyLoaderWin::OnObjectSignaled(HANDLE object) { 621 void PolicyLoaderWin::OnObjectSignaled(HANDLE object) {
622 DCHECK(object == user_policy_changed_event_.handle() || 622 DCHECK(object == user_policy_changed_event_.handle() ||
623 object == machine_policy_changed_event_.handle()) 623 object == machine_policy_changed_event_.handle())
624 << "unexpected object signaled policy reload, obj = " 624 << "unexpected object signaled policy reload, obj = "
625 << std::showbase << std::hex << object; 625 << std::showbase << std::hex << object;
626 Reload(false); 626 Reload(false);
627 } 627 }
628 628
629 } // namespace policy 629 } // namespace policy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698