OLD | NEW |
(Empty) | |
| 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. |
| 10 // |
| 11 // Each prototype mentions the registry access requirements: |
| 12 // |
| 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". |
| 23 |
| 24 #ifndef RLZ_WIN_LIB_RLZ_LIB_H_ |
| 25 #define RLZ_WIN_LIB_RLZ_LIB_H_ |
| 26 |
| 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. |
| 30 |
| 31 #include "rlz/lib/rlz_lib.h" |
| 32 |
| 33 #include "base/win/registry.h" |
| 34 |
| 35 namespace rlz_lib { |
| 36 |
| 37 #if defined(OS_WIN) |
| 38 |
| 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. |
| 46 // |
| 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) |
| 53 |
| 54 } // namespace rlz_lib |
| 55 |
| 56 #endif // RLZ_WIN_LIB_RLZ_LIB_H_ |
OLD | NEW |