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

Side by Side Diff: base/prefs/overlay_user_pref_store_unittest.cc

Issue 1141793003: Update from https://crrev.com/329939 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 7 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
« no previous file with comments | « base/prefs/overlay_user_pref_store.cc ('k') | base/prefs/pref_registry.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 #include "base/prefs/overlay_user_pref_store.h" 5 #include "base/prefs/overlay_user_pref_store.h"
6 6
7 #include "base/prefs/pref_store_observer_mock.h" 7 #include "base/prefs/pref_store_observer_mock.h"
8 #include "base/prefs/testing_pref_store.h" 8 #include "base/prefs/testing_pref_store.h"
9 #include "base/values.h" 9 #include "base/values.h"
10 #include "testing/gmock/include/gmock/gmock.h" 10 #include "testing/gmock/include/gmock/gmock.h"
(...skipping 30 matching lines...) Expand all
41 41
42 scoped_refptr<TestingPrefStore> underlay_; 42 scoped_refptr<TestingPrefStore> underlay_;
43 scoped_refptr<OverlayUserPrefStore> overlay_; 43 scoped_refptr<OverlayUserPrefStore> overlay_;
44 }; 44 };
45 45
46 TEST_F(OverlayUserPrefStoreTest, Observer) { 46 TEST_F(OverlayUserPrefStoreTest, Observer) {
47 PrefStoreObserverMock obs; 47 PrefStoreObserverMock obs;
48 overlay_->AddObserver(&obs); 48 overlay_->AddObserver(&obs);
49 49
50 // Check that underlay first value is reported. 50 // Check that underlay first value is reported.
51 underlay_->SetValue(overlay_key, new FundamentalValue(42)); 51 underlay_->SetValue(overlay_key, new FundamentalValue(42),
52 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
52 obs.VerifyAndResetChangedKey(overlay_key); 53 obs.VerifyAndResetChangedKey(overlay_key);
53 54
54 // Check that underlay overwriting is reported. 55 // Check that underlay overwriting is reported.
55 underlay_->SetValue(overlay_key, new FundamentalValue(43)); 56 underlay_->SetValue(overlay_key, new FundamentalValue(43),
57 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
56 obs.VerifyAndResetChangedKey(overlay_key); 58 obs.VerifyAndResetChangedKey(overlay_key);
57 59
58 // Check that overwriting change in overlay is reported. 60 // Check that overwriting change in overlay is reported.
59 overlay_->SetValue(overlay_key, new FundamentalValue(44)); 61 overlay_->SetValue(overlay_key, new FundamentalValue(44),
62 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
60 obs.VerifyAndResetChangedKey(overlay_key); 63 obs.VerifyAndResetChangedKey(overlay_key);
61 64
62 // Check that hidden underlay change is not reported. 65 // Check that hidden underlay change is not reported.
63 underlay_->SetValue(overlay_key, new FundamentalValue(45)); 66 underlay_->SetValue(overlay_key, new FundamentalValue(45),
67 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
64 EXPECT_TRUE(obs.changed_keys.empty()); 68 EXPECT_TRUE(obs.changed_keys.empty());
65 69
66 // Check that overlay remove is reported. 70 // Check that overlay remove is reported.
67 overlay_->RemoveValue(overlay_key); 71 overlay_->RemoveValue(overlay_key,
72 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
68 obs.VerifyAndResetChangedKey(overlay_key); 73 obs.VerifyAndResetChangedKey(overlay_key);
69 74
70 // Check that underlay remove is reported. 75 // Check that underlay remove is reported.
71 underlay_->RemoveValue(overlay_key); 76 underlay_->RemoveValue(overlay_key,
77 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
72 obs.VerifyAndResetChangedKey(overlay_key); 78 obs.VerifyAndResetChangedKey(overlay_key);
73 79
74 // Check respecting of silence. 80 // Check respecting of silence.
75 overlay_->SetValueSilently(overlay_key, new FundamentalValue(46)); 81 overlay_->SetValueSilently(overlay_key, new FundamentalValue(46),
82 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
76 EXPECT_TRUE(obs.changed_keys.empty()); 83 EXPECT_TRUE(obs.changed_keys.empty());
77 84
78 overlay_->RemoveObserver(&obs); 85 overlay_->RemoveObserver(&obs);
79 86
80 // Check successful unsubscription. 87 // Check successful unsubscription.
81 underlay_->SetValue(overlay_key, new FundamentalValue(47)); 88 underlay_->SetValue(overlay_key, new FundamentalValue(47),
82 overlay_->SetValue(overlay_key, new FundamentalValue(48)); 89 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
90 overlay_->SetValue(overlay_key, new FundamentalValue(48),
91 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
83 EXPECT_TRUE(obs.changed_keys.empty()); 92 EXPECT_TRUE(obs.changed_keys.empty());
84 } 93 }
85 94
86 TEST_F(OverlayUserPrefStoreTest, GetAndSet) { 95 TEST_F(OverlayUserPrefStoreTest, GetAndSet) {
87 const Value* value = NULL; 96 const Value* value = NULL;
88 EXPECT_FALSE(overlay_->GetValue(overlay_key, &value)); 97 EXPECT_FALSE(overlay_->GetValue(overlay_key, &value));
89 EXPECT_FALSE(underlay_->GetValue(overlay_key, &value)); 98 EXPECT_FALSE(underlay_->GetValue(overlay_key, &value));
90 99
91 underlay_->SetValue(overlay_key, new FundamentalValue(42)); 100 underlay_->SetValue(overlay_key, new FundamentalValue(42),
101 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
92 102
93 // Value shines through: 103 // Value shines through:
94 EXPECT_TRUE(overlay_->GetValue(overlay_key, &value)); 104 EXPECT_TRUE(overlay_->GetValue(overlay_key, &value));
95 EXPECT_TRUE(base::FundamentalValue(42).Equals(value)); 105 EXPECT_TRUE(base::FundamentalValue(42).Equals(value));
96 106
97 EXPECT_TRUE(underlay_->GetValue(overlay_key, &value)); 107 EXPECT_TRUE(underlay_->GetValue(overlay_key, &value));
98 EXPECT_TRUE(base::FundamentalValue(42).Equals(value)); 108 EXPECT_TRUE(base::FundamentalValue(42).Equals(value));
99 109
100 overlay_->SetValue(overlay_key, new FundamentalValue(43)); 110 overlay_->SetValue(overlay_key, new FundamentalValue(43),
111 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
101 112
102 EXPECT_TRUE(overlay_->GetValue(overlay_key, &value)); 113 EXPECT_TRUE(overlay_->GetValue(overlay_key, &value));
103 EXPECT_TRUE(base::FundamentalValue(43).Equals(value)); 114 EXPECT_TRUE(base::FundamentalValue(43).Equals(value));
104 115
105 EXPECT_TRUE(underlay_->GetValue(overlay_key, &value)); 116 EXPECT_TRUE(underlay_->GetValue(overlay_key, &value));
106 EXPECT_TRUE(base::FundamentalValue(42).Equals(value)); 117 EXPECT_TRUE(base::FundamentalValue(42).Equals(value));
107 118
108 overlay_->RemoveValue(overlay_key); 119 overlay_->RemoveValue(overlay_key,
120 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
109 121
110 // Value shines through: 122 // Value shines through:
111 EXPECT_TRUE(overlay_->GetValue(overlay_key, &value)); 123 EXPECT_TRUE(overlay_->GetValue(overlay_key, &value));
112 EXPECT_TRUE(base::FundamentalValue(42).Equals(value)); 124 EXPECT_TRUE(base::FundamentalValue(42).Equals(value));
113 125
114 EXPECT_TRUE(underlay_->GetValue(overlay_key, &value)); 126 EXPECT_TRUE(underlay_->GetValue(overlay_key, &value));
115 EXPECT_TRUE(base::FundamentalValue(42).Equals(value)); 127 EXPECT_TRUE(base::FundamentalValue(42).Equals(value));
116 } 128 }
117 129
118 // Check that GetMutableValue does not return the dictionary of the underlay. 130 // Check that GetMutableValue does not return the dictionary of the underlay.
119 TEST_F(OverlayUserPrefStoreTest, ModifyDictionaries) { 131 TEST_F(OverlayUserPrefStoreTest, ModifyDictionaries) {
120 underlay_->SetValue(overlay_key, new DictionaryValue); 132 underlay_->SetValue(overlay_key, new DictionaryValue,
133 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
121 134
122 Value* modify = NULL; 135 Value* modify = NULL;
123 EXPECT_TRUE(overlay_->GetMutableValue(overlay_key, &modify)); 136 EXPECT_TRUE(overlay_->GetMutableValue(overlay_key, &modify));
124 ASSERT_TRUE(modify); 137 ASSERT_TRUE(modify);
125 ASSERT_TRUE(modify->IsType(Value::TYPE_DICTIONARY)); 138 ASSERT_TRUE(modify->IsType(Value::TYPE_DICTIONARY));
126 static_cast<DictionaryValue*>(modify)->SetInteger(overlay_key, 42); 139 static_cast<DictionaryValue*>(modify)->SetInteger(overlay_key, 42);
127 140
128 Value* original_in_underlay = NULL; 141 Value* original_in_underlay = NULL;
129 EXPECT_TRUE(underlay_->GetMutableValue(overlay_key, &original_in_underlay)); 142 EXPECT_TRUE(underlay_->GetMutableValue(overlay_key, &original_in_underlay));
130 ASSERT_TRUE(original_in_underlay); 143 ASSERT_TRUE(original_in_underlay);
131 ASSERT_TRUE(original_in_underlay->IsType(Value::TYPE_DICTIONARY)); 144 ASSERT_TRUE(original_in_underlay->IsType(Value::TYPE_DICTIONARY));
132 EXPECT_TRUE(static_cast<DictionaryValue*>(original_in_underlay)->empty()); 145 EXPECT_TRUE(static_cast<DictionaryValue*>(original_in_underlay)->empty());
133 146
134 Value* modified = NULL; 147 Value* modified = NULL;
135 EXPECT_TRUE(overlay_->GetMutableValue(overlay_key, &modified)); 148 EXPECT_TRUE(overlay_->GetMutableValue(overlay_key, &modified));
136 ASSERT_TRUE(modified); 149 ASSERT_TRUE(modified);
137 ASSERT_TRUE(modified->IsType(Value::TYPE_DICTIONARY)); 150 ASSERT_TRUE(modified->IsType(Value::TYPE_DICTIONARY));
138 EXPECT_TRUE(Value::Equals(modify, static_cast<DictionaryValue*>(modified))); 151 EXPECT_TRUE(Value::Equals(modify, static_cast<DictionaryValue*>(modified)));
139 } 152 }
140 153
141 // Here we consider a global preference that is not overlayed. 154 // Here we consider a global preference that is not overlayed.
142 TEST_F(OverlayUserPrefStoreTest, GlobalPref) { 155 TEST_F(OverlayUserPrefStoreTest, GlobalPref) {
143 PrefStoreObserverMock obs; 156 PrefStoreObserverMock obs;
144 overlay_->AddObserver(&obs); 157 overlay_->AddObserver(&obs);
145 158
146 const Value* value = NULL; 159 const Value* value = NULL;
147 160
148 // Check that underlay first value is reported. 161 // Check that underlay first value is reported.
149 underlay_->SetValue(regular_key, new FundamentalValue(42)); 162 underlay_->SetValue(regular_key, new FundamentalValue(42),
163 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
150 obs.VerifyAndResetChangedKey(regular_key); 164 obs.VerifyAndResetChangedKey(regular_key);
151 165
152 // Check that underlay overwriting is reported. 166 // Check that underlay overwriting is reported.
153 underlay_->SetValue(regular_key, new FundamentalValue(43)); 167 underlay_->SetValue(regular_key, new FundamentalValue(43),
168 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
154 obs.VerifyAndResetChangedKey(regular_key); 169 obs.VerifyAndResetChangedKey(regular_key);
155 170
156 // Check that we get this value from the overlay 171 // Check that we get this value from the overlay
157 EXPECT_TRUE(overlay_->GetValue(regular_key, &value)); 172 EXPECT_TRUE(overlay_->GetValue(regular_key, &value));
158 EXPECT_TRUE(base::FundamentalValue(43).Equals(value)); 173 EXPECT_TRUE(base::FundamentalValue(43).Equals(value));
159 174
160 // Check that overwriting change in overlay is reported. 175 // Check that overwriting change in overlay is reported.
161 overlay_->SetValue(regular_key, new FundamentalValue(44)); 176 overlay_->SetValue(regular_key, new FundamentalValue(44),
177 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
162 obs.VerifyAndResetChangedKey(regular_key); 178 obs.VerifyAndResetChangedKey(regular_key);
163 179
164 // Check that we get this value from the overlay and the underlay. 180 // Check that we get this value from the overlay and the underlay.
165 EXPECT_TRUE(overlay_->GetValue(regular_key, &value)); 181 EXPECT_TRUE(overlay_->GetValue(regular_key, &value));
166 EXPECT_TRUE(base::FundamentalValue(44).Equals(value)); 182 EXPECT_TRUE(base::FundamentalValue(44).Equals(value));
167 EXPECT_TRUE(underlay_->GetValue(regular_key, &value)); 183 EXPECT_TRUE(underlay_->GetValue(regular_key, &value));
168 EXPECT_TRUE(base::FundamentalValue(44).Equals(value)); 184 EXPECT_TRUE(base::FundamentalValue(44).Equals(value));
169 185
170 // Check that overlay remove is reported. 186 // Check that overlay remove is reported.
171 overlay_->RemoveValue(regular_key); 187 overlay_->RemoveValue(regular_key,
188 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
172 obs.VerifyAndResetChangedKey(regular_key); 189 obs.VerifyAndResetChangedKey(regular_key);
173 190
174 // Check that value was removed from overlay and underlay 191 // Check that value was removed from overlay and underlay
175 EXPECT_FALSE(overlay_->GetValue(regular_key, &value)); 192 EXPECT_FALSE(overlay_->GetValue(regular_key, &value));
176 EXPECT_FALSE(underlay_->GetValue(regular_key, &value)); 193 EXPECT_FALSE(underlay_->GetValue(regular_key, &value));
177 194
178 // Check respecting of silence. 195 // Check respecting of silence.
179 overlay_->SetValueSilently(regular_key, new FundamentalValue(46)); 196 overlay_->SetValueSilently(regular_key, new FundamentalValue(46),
197 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
180 EXPECT_TRUE(obs.changed_keys.empty()); 198 EXPECT_TRUE(obs.changed_keys.empty());
181 199
182 overlay_->RemoveObserver(&obs); 200 overlay_->RemoveObserver(&obs);
183 201
184 // Check successful unsubscription. 202 // Check successful unsubscription.
185 underlay_->SetValue(regular_key, new FundamentalValue(47)); 203 underlay_->SetValue(regular_key, new FundamentalValue(47),
186 overlay_->SetValue(regular_key, new FundamentalValue(48)); 204 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
205 overlay_->SetValue(regular_key, new FundamentalValue(48),
206 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
187 EXPECT_TRUE(obs.changed_keys.empty()); 207 EXPECT_TRUE(obs.changed_keys.empty());
188 } 208 }
189 209
190 // Check that names mapping works correctly. 210 // Check that names mapping works correctly.
191 TEST_F(OverlayUserPrefStoreTest, NamesMapping) { 211 TEST_F(OverlayUserPrefStoreTest, NamesMapping) {
192 PrefStoreObserverMock obs; 212 PrefStoreObserverMock obs;
193 overlay_->AddObserver(&obs); 213 overlay_->AddObserver(&obs);
194 214
195 const Value* value = NULL; 215 const Value* value = NULL;
196 216
197 // Check that if there is no override in the overlay, changing underlay value 217 // Check that if there is no override in the overlay, changing underlay value
198 // is reported as changing an overlay value. 218 // is reported as changing an overlay value.
199 underlay_->SetValue(mapped_underlay_key, new FundamentalValue(42)); 219 underlay_->SetValue(mapped_underlay_key, new FundamentalValue(42),
220 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
200 obs.VerifyAndResetChangedKey(mapped_overlay_key); 221 obs.VerifyAndResetChangedKey(mapped_overlay_key);
201 222
202 // Check that underlay overwriting is reported. 223 // Check that underlay overwriting is reported.
203 underlay_->SetValue(mapped_underlay_key, new FundamentalValue(43)); 224 underlay_->SetValue(mapped_underlay_key, new FundamentalValue(43),
225 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
204 obs.VerifyAndResetChangedKey(mapped_overlay_key); 226 obs.VerifyAndResetChangedKey(mapped_overlay_key);
205 227
206 // Check that we get this value from the overlay with both keys 228 // Check that we get this value from the overlay with both keys
207 EXPECT_TRUE(overlay_->GetValue(mapped_overlay_key, &value)); 229 EXPECT_TRUE(overlay_->GetValue(mapped_overlay_key, &value));
208 EXPECT_TRUE(base::FundamentalValue(43).Equals(value)); 230 EXPECT_TRUE(base::FundamentalValue(43).Equals(value));
209 // In this case, overlay reads directly from the underlay. 231 // In this case, overlay reads directly from the underlay.
210 EXPECT_TRUE(overlay_->GetValue(mapped_underlay_key, &value)); 232 EXPECT_TRUE(overlay_->GetValue(mapped_underlay_key, &value));
211 EXPECT_TRUE(base::FundamentalValue(43).Equals(value)); 233 EXPECT_TRUE(base::FundamentalValue(43).Equals(value));
212 234
213 // Check that overwriting change in overlay is reported. 235 // Check that overwriting change in overlay is reported.
214 overlay_->SetValue(mapped_overlay_key, new FundamentalValue(44)); 236 overlay_->SetValue(mapped_overlay_key, new FundamentalValue(44),
237 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
215 obs.VerifyAndResetChangedKey(mapped_overlay_key); 238 obs.VerifyAndResetChangedKey(mapped_overlay_key);
216 239
217 // Check that we get an overriden value from overlay, while reading the 240 // Check that we get an overriden value from overlay, while reading the
218 // value from underlay still holds an old value. 241 // value from underlay still holds an old value.
219 EXPECT_TRUE(overlay_->GetValue(mapped_overlay_key, &value)); 242 EXPECT_TRUE(overlay_->GetValue(mapped_overlay_key, &value));
220 EXPECT_TRUE(base::FundamentalValue(44).Equals(value)); 243 EXPECT_TRUE(base::FundamentalValue(44).Equals(value));
221 EXPECT_TRUE(overlay_->GetValue(mapped_underlay_key, &value)); 244 EXPECT_TRUE(overlay_->GetValue(mapped_underlay_key, &value));
222 EXPECT_TRUE(base::FundamentalValue(43).Equals(value)); 245 EXPECT_TRUE(base::FundamentalValue(43).Equals(value));
223 EXPECT_TRUE(underlay_->GetValue(mapped_underlay_key, &value)); 246 EXPECT_TRUE(underlay_->GetValue(mapped_underlay_key, &value));
224 EXPECT_TRUE(base::FundamentalValue(43).Equals(value)); 247 EXPECT_TRUE(base::FundamentalValue(43).Equals(value));
225 248
226 // Check that hidden underlay change is not reported. 249 // Check that hidden underlay change is not reported.
227 underlay_->SetValue(mapped_underlay_key, new FundamentalValue(45)); 250 underlay_->SetValue(mapped_underlay_key, new FundamentalValue(45),
251 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
228 EXPECT_TRUE(obs.changed_keys.empty()); 252 EXPECT_TRUE(obs.changed_keys.empty());
229 253
230 // Check that overlay remove is reported. 254 // Check that overlay remove is reported.
231 overlay_->RemoveValue(mapped_overlay_key); 255 overlay_->RemoveValue(mapped_overlay_key,
256 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
232 obs.VerifyAndResetChangedKey(mapped_overlay_key); 257 obs.VerifyAndResetChangedKey(mapped_overlay_key);
233 258
234 // Check that underlay remove is reported. 259 // Check that underlay remove is reported.
235 underlay_->RemoveValue(mapped_underlay_key); 260 underlay_->RemoveValue(mapped_underlay_key,
261 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
236 obs.VerifyAndResetChangedKey(mapped_overlay_key); 262 obs.VerifyAndResetChangedKey(mapped_overlay_key);
237 263
238 // Check that value was removed. 264 // Check that value was removed.
239 EXPECT_FALSE(overlay_->GetValue(mapped_overlay_key, &value)); 265 EXPECT_FALSE(overlay_->GetValue(mapped_overlay_key, &value));
240 EXPECT_FALSE(overlay_->GetValue(mapped_underlay_key, &value)); 266 EXPECT_FALSE(overlay_->GetValue(mapped_underlay_key, &value));
241 267
242 // Check respecting of silence. 268 // Check respecting of silence.
243 overlay_->SetValueSilently(mapped_overlay_key, new FundamentalValue(46)); 269 overlay_->SetValueSilently(mapped_overlay_key, new FundamentalValue(46),
270 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
244 EXPECT_TRUE(obs.changed_keys.empty()); 271 EXPECT_TRUE(obs.changed_keys.empty());
245 272
246 overlay_->RemoveObserver(&obs); 273 overlay_->RemoveObserver(&obs);
247 274
248 // Check successful unsubscription. 275 // Check successful unsubscription.
249 underlay_->SetValue(mapped_underlay_key, new FundamentalValue(47)); 276 underlay_->SetValue(mapped_underlay_key, new FundamentalValue(47),
250 overlay_->SetValue(mapped_overlay_key, new FundamentalValue(48)); 277 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
278 overlay_->SetValue(mapped_overlay_key, new FundamentalValue(48),
279 WriteablePrefStore::DEFAULT_PREF_WRITE_FLAGS);
251 EXPECT_TRUE(obs.changed_keys.empty()); 280 EXPECT_TRUE(obs.changed_keys.empty());
252 } 281 }
253 282
254 } // namespace base 283 } // namespace base
OLDNEW
« no previous file with comments | « base/prefs/overlay_user_pref_store.cc ('k') | base/prefs/pref_registry.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698