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.
5 #include "chrome/browser/profiles/chrome_version_service.h"
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/pref_registry/pref_registry_syncable.h"
14 void ChromeVersionService::RegisterProfilePrefs(
15 user_prefs::PrefRegistrySyncable
* registry
) {
16 registry
->RegisterStringPref(prefs::kProfileCreatedByVersion
, "1.0.0.0");
20 void ChromeVersionService::SetVersion(PrefService
* prefs
,
21 const std::string
& version
) {
22 prefs
->SetString(prefs::kProfileCreatedByVersion
, version
);
26 std::string
ChromeVersionService::GetVersion(PrefService
* prefs
) {
27 return prefs
->GetString(prefs::kProfileCreatedByVersion
);
31 void ChromeVersionService::OnProfileLoaded(PrefService
* prefs
,
32 bool is_new_profile
) {
33 // Obtain the Chrome version info.
34 chrome::VersionInfo version_info
;
36 // If this is a new profile set version to current version, otherwise
37 // (pre-existing profile), leave pref at default value (1.0.0.0) to
38 // avoid any first-run behavior.
39 std::string version
= version_info
.Version();
40 if (prefs
->FindPreference(prefs::kProfileCreatedByVersion
)->
41 IsDefaultValue() && is_new_profile
) {
42 SetVersion(prefs
, version
);