// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "components/pref_registry/pref_registry_syncable.h" #include "base/files/file_path.h" #include "base/strings/string_number_conversions.h" #include "base/values.h" #include "components/prefs/default_pref_store.h" namespace user_prefs { PrefRegistrySyncable::PrefRegistrySyncable() { } PrefRegistrySyncable::~PrefRegistrySyncable() { } void PrefRegistrySyncable::SetSyncableRegistrationCallback( const SyncableRegistrationCallback& cb) { callback_ = cb; } void PrefRegistrySyncable::OnPrefRegistered(const std::string& path, base::Value* default_value, uint32_t flags) { // Tests that |flags| does not contain both SYNCABLE_PREF and // SYNCABLE_PRIORITY_PREF flags at the same time. DCHECK(!(flags & PrefRegistrySyncable::SYNCABLE_PREF) || !(flags & PrefRegistrySyncable::SYNCABLE_PRIORITY_PREF)); if (flags & PrefRegistrySyncable::SYNCABLE_PREF || flags & PrefRegistrySyncable::SYNCABLE_PRIORITY_PREF) { if (!callback_.is_null()) callback_.Run(path, flags); } } scoped_refptr PrefRegistrySyncable::ForkForIncognito() { // TODO(joi): We can directly reuse the same PrefRegistry once // PrefService no longer registers for callbacks on registration and // unregistration. scoped_refptr registry(new PrefRegistrySyncable()); registry->defaults_ = defaults_; return registry; } } // namespace user_prefs