OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 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 #ifndef CHROME_BROWSER_PREFS_COMMAND_LINE_PREF_STORE_H_ | 5 #ifndef CHROME_BROWSER_PREFS_COMMAND_LINE_PREF_STORE_H_ |
6 #define CHROME_BROWSER_PREFS_COMMAND_LINE_PREF_STORE_H_ | 6 #define CHROME_BROWSER_PREFS_COMMAND_LINE_PREF_STORE_H_ |
7 #pragma once | 7 #pragma once |
8 | 8 |
9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
11 #include "base/memory/scoped_ptr.h" | 11 #include "base/memory/scoped_ptr.h" |
12 #include "base/values.h" | 12 #include "base/values.h" |
13 #include "chrome/browser/prefs/value_map_pref_store.h" | 13 #include "chrome/browser/prefs/value_map_pref_store.h" |
14 | 14 |
15 // This PrefStore keeps track of preferences set by command-line switches, | 15 // This PrefStore keeps track of preferences set by command-line switches, |
16 // such as proxy settings. | 16 // such as proxy settings. |
17 class CommandLinePrefStore : public ValueMapPrefStore { | 17 class CommandLinePrefStore : public ValueMapPrefStore { |
18 public: | 18 public: |
19 explicit CommandLinePrefStore(const CommandLine* command_line); | 19 explicit CommandLinePrefStore(const CommandLine* command_line); |
| 20 |
| 21 protected: |
20 virtual ~CommandLinePrefStore(); | 22 virtual ~CommandLinePrefStore(); |
21 | 23 |
22 protected: | |
23 // Logs a message and returns false if the proxy switches are | 24 // Logs a message and returns false if the proxy switches are |
24 // self-contradictory. Protected so it can be used in unit testing. | 25 // self-contradictory. Protected so it can be used in unit testing. |
25 bool ValidateProxySwitches(); | 26 bool ValidateProxySwitches(); |
26 | 27 |
27 private: | 28 private: |
| 29 friend class TestCommandLinePrefStore; |
| 30 |
28 struct StringSwitchToPreferenceMapEntry { | 31 struct StringSwitchToPreferenceMapEntry { |
29 const char* switch_name; | 32 const char* switch_name; |
30 const char* preference_path; | 33 const char* preference_path; |
31 }; | 34 }; |
32 | 35 |
33 struct IntegerSwitchToPreferenceMapEntry { | 36 struct IntegerSwitchToPreferenceMapEntry { |
34 const char* switch_name; | 37 const char* switch_name; |
35 const char* preference_path; | 38 const char* preference_path; |
36 }; | 39 }; |
37 | 40 |
(...skipping 23 matching lines...) Expand all Loading... |
61 | 64 |
62 // Mappings of command line switches to prefs. | 65 // Mappings of command line switches to prefs. |
63 static const BooleanSwitchToPreferenceMapEntry boolean_switch_map_[]; | 66 static const BooleanSwitchToPreferenceMapEntry boolean_switch_map_[]; |
64 static const StringSwitchToPreferenceMapEntry string_switch_map_[]; | 67 static const StringSwitchToPreferenceMapEntry string_switch_map_[]; |
65 static const IntegerSwitchToPreferenceMapEntry integer_switch_map_[]; | 68 static const IntegerSwitchToPreferenceMapEntry integer_switch_map_[]; |
66 | 69 |
67 DISALLOW_COPY_AND_ASSIGN(CommandLinePrefStore); | 70 DISALLOW_COPY_AND_ASSIGN(CommandLinePrefStore); |
68 }; | 71 }; |
69 | 72 |
70 #endif // CHROME_BROWSER_PREFS_COMMAND_LINE_PREF_STORE_H_ | 73 #endif // CHROME_BROWSER_PREFS_COMMAND_LINE_PREF_STORE_H_ |
OLD | NEW |