supervised_user_shared_settings_update.cc revision f8ee788a64d60abd8f2d742a5fdedde054ecd910
1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "chrome/browser/supervised_user/supervised_user_shared_settings_update.h" 6 7#include "base/bind.h" 8#include "base/values.h" 9#include "chrome/browser/supervised_user/supervised_user_shared_settings_service.h" 10 11SupervisedUserSharedSettingsUpdate::SupervisedUserSharedSettingsUpdate( 12 SupervisedUserSharedSettingsService* service, 13 const std::string& su_id, 14 const std::string& key, 15 scoped_ptr<base::Value> value, 16 const base::Callback<void(bool)>& success_callback) 17 : service_(service), 18 su_id_(su_id), 19 key_(key), 20 value_(value.Pass()), 21 callback_(success_callback) { 22 service->SetValueInternal(su_id, key, *value_, false); 23 subscription_ = service->Subscribe( 24 base::Bind(&SupervisedUserSharedSettingsUpdate::OnSettingChanged, 25 base::Unretained(this))); 26} 27 28SupervisedUserSharedSettingsUpdate::~SupervisedUserSharedSettingsUpdate() {} 29 30void SupervisedUserSharedSettingsUpdate::OnSettingChanged( 31 const std::string& su_id, const std::string& key) { 32 if (su_id != su_id_) 33 return; 34 35 if (key != key_) 36 return; 37 38 const base::Value* value = service_->GetValue(su_id, key); 39 callback_.Run(value->Equals(value_.get())); 40} 41