// Copyright (c) 2011 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 "chrome/browser/prefs/scoped_user_pref_update.h" #include "base/logging.h" #include "chrome/browser/prefs/pref_notifier.h" #include "chrome/browser/prefs/pref_service.h" namespace subtle { ScopedUserPrefUpdateBase::ScopedUserPrefUpdateBase(PrefService* service, const char* path) : service_(service), path_(path), value_(NULL) {} ScopedUserPrefUpdateBase::~ScopedUserPrefUpdateBase() { Notify(); } Value* ScopedUserPrefUpdateBase::Get(Value::ValueType type) { if (!value_) value_ = service_->GetMutableUserPref(path_.c_str(), type); return value_; } void ScopedUserPrefUpdateBase::Notify() { if (value_) { service_->ReportUserPrefChanged(path_); value_ = NULL; } } } // namespace subtle