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

Side by Side Diff: chrome/installer/util/scoped_token_privilege.h

Issue 2925383002: Move ScopedTokenPrivilege to chrome/installer/util (Closed)
Patch Set: Created 3 years, 6 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
(Empty)
1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef CHROME_INSTALLER_UTIL_SCOPED_TOKEN_PRIVILEGE_H_
6 #define CHROME_INSTALLER_UTIL_SCOPED_TOKEN_PRIVILEGE_H_
7
8 #include <windows.h>
9
10 #include "base/macros.h"
11 #include "base/win/scoped_handle.h"
12
13 // This class is available for Windows only and will enable the privilege
grt (UTC plus 2) 2017/06/09 08:35:28 nit: put this in the "installer" namespace as it w
alito 2017/06/09 17:20:50 Done.
14 // defined by |privilege_name| on the current process' token. The privilege will
15 // be disabled upon the ScopedTokenPrivilege's destruction (unless it was
16 // already enabled when the ScopedTokenPrivilege object was constructed).
17 // Some privileges might require admin rights to be enabled (check is_enabled()
18 // to know whether |privilege_name| was successfully enabled).
19 class ScopedTokenPrivilege {
20 public:
21 explicit ScopedTokenPrivilege(const wchar_t* privilege_name);
22 ~ScopedTokenPrivilege();
23
24 // Always returns true unless the privilege could not be enabled.
25 bool is_enabled() const { return is_enabled_; }
26
27 private:
28 // Always true unless the privilege could not be enabled.
29 bool is_enabled_;
30
31 // A scoped handle to the current process' token. This will be closed
32 // preemptively should enabling the privilege fail in the constructor.
33 base::win::ScopedHandle token_;
34
35 // The previous state of the privilege this object is responsible for. As set
36 // by AdjustTokenPrivileges() upon construction.
37 TOKEN_PRIVILEGES previous_privileges_;
38
39 DISALLOW_IMPLICIT_CONSTRUCTORS(ScopedTokenPrivilege);
40 };
41
42 #endif // CHROME_INSTALLER_UTIL_SCOPED_TOKEN_PRIVILEGE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698