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 #include "chrome/browser/prefs/pref_model_associator.h" | 5 #include "chrome/browser/prefs/pref_model_associator.h" |
6 | 6 |
7 #include "base/auto_reset.h" | 7 #include "base/auto_reset.h" |
8 #include "base/json/json_reader.h" | 8 #include "base/json/json_reader.h" |
9 #include "base/json/json_string_value_serializer.h" | 9 #include "base/json/json_string_value_serializer.h" |
10 #include "base/location.h" | 10 #include "base/location.h" |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
42 VLOG(1) << "Associating preference " << pref_name; | 42 VLOG(1) << "Associating preference " << pref_name; |
43 | 43 |
44 base::JSONReader reader; | 44 base::JSONReader reader; |
45 if (sync_pref.IsValid()) { | 45 if (sync_pref.IsValid()) { |
46 // The server has a value for the preference, we have to reconcile it with | 46 // The server has a value for the preference, we have to reconcile it with |
47 // ours. | 47 // ours. |
48 const sync_pb::PreferenceSpecifics& preference = | 48 const sync_pb::PreferenceSpecifics& preference = |
49 sync_pref.GetSpecifics().preference(); | 49 sync_pref.GetSpecifics().preference(); |
50 DCHECK_EQ(pref->name(), preference.name()); | 50 DCHECK_EQ(pref->name(), preference.name()); |
51 | 51 |
52 scoped_ptr<Value> value( | 52 scoped_ptr<Value> value(reader.ReadToValue(preference.value())); |
53 reader.JsonToValue(preference.value(), false, false)); | |
54 if (!value.get()) { | 53 if (!value.get()) { |
55 LOG(ERROR) << "Failed to deserialize preference value: " | 54 LOG(ERROR) << "Failed to deserialize preference value: " |
56 << reader.GetErrorMessage(); | 55 << reader.GetErrorMessage(); |
57 return; | 56 return; |
58 } | 57 } |
59 | 58 |
60 // Merge the server value of this preference with the local value. | 59 // Merge the server value of this preference with the local value. |
61 scoped_ptr<Value> new_value(MergePreference(*pref, *value)); | 60 scoped_ptr<Value> new_value(MergePreference(*pref, *value)); |
62 | 61 |
63 // Update the local preference based on what we got from the | 62 // Update the local preference based on what we got from the |
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
348 synced_preferences_.insert(name); | 347 synced_preferences_.insert(name); |
349 } | 348 } |
350 } | 349 } |
351 return SyncError(); | 350 return SyncError(); |
352 } | 351 } |
353 | 352 |
354 Value* PrefModelAssociator::ReadPreferenceSpecifics( | 353 Value* PrefModelAssociator::ReadPreferenceSpecifics( |
355 const sync_pb::PreferenceSpecifics& preference, | 354 const sync_pb::PreferenceSpecifics& preference, |
356 std::string* name) { | 355 std::string* name) { |
357 base::JSONReader reader; | 356 base::JSONReader reader; |
358 scoped_ptr<Value> value(reader.JsonToValue(preference.value(), false, false)); | 357 scoped_ptr<Value> value(reader.ReadToValue(preference.value())); |
359 if (!value.get()) { | 358 if (!value.get()) { |
360 std::string err = "Failed to deserialize preference value: " + | 359 std::string err = "Failed to deserialize preference value: " + |
361 reader.GetErrorMessage(); | 360 reader.GetErrorMessage(); |
362 LOG(ERROR) << err; | 361 LOG(ERROR) << err; |
363 return NULL; | 362 return NULL; |
364 } | 363 } |
365 *name = preference.name(); | 364 *name = preference.name(); |
366 return value.release(); | 365 return value.release(); |
367 } | 366 } |
368 | 367 |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
428 } | 427 } |
429 | 428 |
430 SyncError error = | 429 SyncError error = |
431 sync_processor_->ProcessSyncChanges(FROM_HERE, changes); | 430 sync_processor_->ProcessSyncChanges(FROM_HERE, changes); |
432 } | 431 } |
433 | 432 |
434 void PrefModelAssociator::SetPrefService(PrefService* pref_service) { | 433 void PrefModelAssociator::SetPrefService(PrefService* pref_service) { |
435 DCHECK(pref_service_ == NULL); | 434 DCHECK(pref_service_ == NULL); |
436 pref_service_ = pref_service; | 435 pref_service_ = pref_service; |
437 } | 436 } |
OLD | NEW |