chrome_version_service.cc revision 7dbb3d5cf0c15f500944d211057644d6a2f37371
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 3// found in the LICENSE file. 4 5#include "chrome/browser/profiles/chrome_version_service.h" 6 7#include "base/prefs/pref_service.h" 8#include "base/version.h" 9#include "chrome/common/chrome_version_info.h" 10#include "chrome/common/pref_names.h" 11#include "components/user_prefs/pref_registry_syncable.h" 12 13// static 14void ChromeVersionService::RegisterProfilePrefs( 15 user_prefs::PrefRegistrySyncable* registry) { 16 registry->RegisterStringPref( 17 prefs::kProfileCreatedByVersion, 18 "1.0.0.0", 19 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 20} 21 22// static 23void ChromeVersionService::SetVersion(PrefService* prefs, 24 const std::string& version) { 25 prefs->SetString(prefs::kProfileCreatedByVersion, version); 26} 27 28// static 29std::string ChromeVersionService::GetVersion(PrefService* prefs) { 30 return prefs->GetString(prefs::kProfileCreatedByVersion); 31} 32 33// static 34void ChromeVersionService::OnProfileLoaded(PrefService* prefs, 35 bool is_new_profile) { 36 // Obtain the Chrome version info. 37 chrome::VersionInfo version_info; 38 39 // If this is a new profile set version to current version, otherwise 40 // (pre-existing profile), leave pref at default value (1.0.0.0) to 41 // avoid any first-run behavior. 42 std::string version = version_info.Version(); 43 if (prefs->FindPreference(prefs::kProfileCreatedByVersion)-> 44 IsDefaultValue() && is_new_profile) { 45 SetVersion(prefs, version); 46 } 47} 48