Fix build break
[chromium-blink-merge.git] / rlz / win / lib / rlz_lib.h
blob3adbf97b433aca687cc6d7673f0c427d5d0fefdf
1 // Copyright (c) 2012 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 // A library to manage RLZ information for access-points shared
6 // across different client applications.
7 //
8 // All functions return true on success and false on error.
9 // This implemenation is thread safe.
11 // Each prototype mentions the registry access requirements:
13 // HKLM read: Will work from any process and at any privilege level on Vista.
14 // HKCU read: Calls made from the SYSTEM account must pass the current user's
15 // SID as the optional 'sid' param. Can be called from low integrity
16 // process on Vista.
17 // HKCU write: Calls made from the SYSTEM account must pass the current user's
18 // SID as the optional 'sid' param. Calls require at least medium
19 // integrity on Vista (e.g. Toolbar will need to use their broker)
20 // HKLM write: Calls must be made from an account with admin rights. No SID
21 // need be passed when running as SYSTEM.
22 // Functions which do not access registry will be marked with "no restrictions".
24 #ifndef RLZ_WIN_LIB_RLZ_LIB_H_
25 #define RLZ_WIN_LIB_RLZ_LIB_H_
27 // Clients can get away by just including rlz/lib/rlz_lib.h. This file only
28 // contains function definitions for files used by tests. It's mostly kept
29 // around for backwards-compatibility.
31 #include "rlz/lib/rlz_lib.h"
33 #include "base/win/registry.h"
35 namespace rlz_lib {
37 #if defined(OS_WIN)
39 // Initialize temporary HKLM/HKCU registry hives used for testing.
40 // Testing RLZ requires reading and writing to the Windows registry. To keep
41 // the tests isolated from the machine's state, as well as to prevent the tests
42 // from causing side effects in the registry, HKCU and HKLM are overridden for
43 // the duration of the tests. RLZ tests don't expect the HKCU and KHLM hives to
44 // be empty though, and this function initializes the minimum value needed so
45 // that the test will run successfully.
47 // The two arguments to this function should be the keys that will represent
48 // the HKLM and HKCU registry hives during the tests. This function should be
49 // called *before* the hives are overridden.
50 void InitializeTempHivesForTesting(const base::win::RegKey& temp_hklm_key,
51 const base::win::RegKey& temp_hkcu_key);
52 #endif // defined(OS_WIN)
54 } // namespace rlz_lib
56 #endif // RLZ_WIN_LIB_RLZ_LIB_H_