Index: chrome/browser/first_run/first_run.cc |
diff --git a/chrome/browser/first_run/first_run.cc b/chrome/browser/first_run/first_run.cc |
index 51dd75645ea1c44e8f5889e29b635c7a417ae90a..c1fa5fb49225043070e42bf94bee13f641fa7b68 100644 |
--- a/chrome/browser/first_run/first_run.cc |
+++ b/chrome/browser/first_run/first_run.cc |
@@ -99,13 +99,11 @@ int FirstRun::ImportNow(Profile* profile, const CommandLine& cmdline) { |
bool FirstRun::ProcessMasterPreferences(const FilePath& user_data_dir, |
MasterPrefs* out_prefs) { |
DCHECK(!user_data_dir.empty()); |
- |
Mattias Nissler (ping if slow)
2011/07/18 15:02:30
Please don't remove white space before comments.
|
// The standard location of the master prefs is next to the chrome binary. |
FilePath master_prefs; |
if (!PathService::Get(base::DIR_EXE, &master_prefs)) |
return true; |
master_prefs = master_prefs.AppendASCII(installer::kDefaultMasterPrefs); |
- |
installer::MasterPreferences prefs(master_prefs); |
if (!prefs.read_from_file()) |
return true; |
@@ -495,9 +493,7 @@ void FirstRun::AutoImport( |
// when a CopyData message comes in; this causes the message to be silently |
// discarded, which is the correct behavior during the import process. |
process_singleton->Lock(NULL); |
- |
Mattias Nissler (ping if slow)
2011/07/18 15:02:30
why did you remove this?
|
PlatformSetup(); |
- |
Mattias Nissler (ping if slow)
2011/07/18 15:02:30
and this?
|
FilePath local_state_path; |
PathService::Get(chrome::FILE_LOCAL_STATE, &local_state_path); |
bool local_state_file_exists = file_util::PathExists(local_state_path); |
@@ -550,6 +546,53 @@ void FirstRun::AutoImport( |
if (import_items & importer::FAVORITES) |
items = items | importer::FAVORITES; |
Mattias Nissler (ping if slow)
2011/07/18 15:02:30
Only one blank line before comments.
|
+ |
+ // Write import preferences to user profile if they are not user controlled |
+ // in order to get the combination of master_preferences and policy, then |
+ // read preferences back out to adjust the items to be imported to reflect |
+ // policy |
Mattias Nissler (ping if slow)
2011/07/18 15:02:30
Missing period.
Mattias Nissler (ping if slow)
2011/07/18 15:02:30
This also means that the default selection in the
simo
2011/07/19 12:24:47
It does select all the checkboxes if the correspon
Mattias Nissler (ping if slow)
2011/07/20 09:28:31
Yes, but what happens if no policy is present? Won
|
+ PrefService* user_prefs = profile->GetPrefs(); |
+ |
+ if (user_prefs->FindPreference(prefs::kImportBookmarks)->IsManaged()) { |
+ user_prefs->SetBoolean(prefs::kImportBookmarks, |
+ (items & importer::FAVORITES) != 0); |
+ |
+ if (user_prefs->GetBoolean(prefs::kImportBookmarks)) |
+ items = items | importer::FAVORITES; |
+ else |
+ items = items & (~importer::FAVORITES); |
+ } |
+ |
+ if (user_prefs->FindPreference(prefs::kImportHistory)->IsManaged()) { |
+ user_prefs->SetBoolean(prefs::kImportHistory, |
+ (items & importer::HISTORY) != 0); |
+ |
+ if (user_prefs->GetBoolean(prefs::kImportHistory)) |
+ items = items | importer::HISTORY; |
+ else |
+ items = items & (~importer::HISTORY); |
+ } |
+ |
+ if (user_prefs->FindPreference(prefs::kImportHomepage)->IsManaged()) { |
+ user_prefs->SetBoolean(prefs::kImportHomepage, |
+ (items & importer::HOME_PAGE) != 0); |
+ |
+ if (user_prefs->GetBoolean(prefs::kImportHomepage)) |
+ items = items | importer::HOME_PAGE; |
+ else |
+ items = items & (~importer::HOME_PAGE); |
+ } |
+ |
+ if (user_prefs->FindPreference(prefs::kImportSearchEngine)->IsManaged()) { |
+ user_prefs->SetBoolean(prefs::kImportSearchEngine, |
+ (items & importer::SEARCH_ENGINES) != 0); |
+ |
+ if (user_prefs->GetBoolean(prefs::kImportSearchEngine)) |
+ items = items | importer::SEARCH_ENGINES; |
+ else |
+ items = items & (~importer::SEARCH_ENGINES); |
+ } |
+ |
ImportSettings(profile, importer_host, importer_list, items); |
} |