Home | History | Annotate | Download | only in profiles
      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
     14 void 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
     23 void ChromeVersionService::SetVersion(PrefService* prefs,
     24                                       const std::string& version) {
     25   prefs->SetString(prefs::kProfileCreatedByVersion, version);
     26 }
     27 
     28 // static
     29 std::string ChromeVersionService::GetVersion(PrefService* prefs) {
     30   return prefs->GetString(prefs::kProfileCreatedByVersion);
     31 }
     32 
     33 // static
     34 void 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