| // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "chrome/browser/mac/master_prefs.h" |
| |
| #include "base/file_util.h" |
| #include "base/mac/foundation_util.h" |
| #include "chrome/common/chrome_paths_internal.h" |
| #include "chrome/common/chrome_version_info.h" |
| |
| #if defined(GOOGLE_CHROME_BUILD) |
| |
| namespace { |
| |
| const char kGoogleDirectory[] = "Google"; |
| const char kMasterPreferencesFileName[] = "Google Chrome Master Preferences"; |
| |
| } // namespace |
| |
| #endif // GOOGLE_CHROME_BUILD |
| |
| namespace master_prefs { |
| |
| FilePath MasterPrefsPath() { |
| #if defined(GOOGLE_CHROME_BUILD) |
| // There is only a master preferences file for the official build, and not |
| // for the canary. |
| chrome::VersionInfo::Channel channel = chrome::VersionInfo::GetChannel(); |
| |
| if (channel == chrome::VersionInfo::CHANNEL_CANARY) |
| return FilePath(); |
| |
| // Try |
| //~/Library/Application Support/Google/Chrome/Google Chrome Master Preferences |
| // This intentionally doesn't use eventual --user-data-dir overrides. |
| FilePath user_application_support_path; |
| if (chrome::GetDefaultUserDataDirectory(&user_application_support_path)) { |
| user_application_support_path = |
| user_application_support_path.Append(kMasterPreferencesFileName); |
| if (file_util::PathExists(user_application_support_path)) |
| return user_application_support_path; |
| } |
| |
| // Try /Library/Google/Google Chrome Master Preferences |
| FilePath library_path; |
| if (!base::mac::GetLocalDirectory(NSLibraryDirectory, &library_path)) |
| return FilePath(); |
| |
| return library_path.Append(kGoogleDirectory) |
| .Append(kMasterPreferencesFileName); |
| #else |
| return FilePath(); |
| #endif // GOOGLE_CHROME_BUILD |
| } |
| |
| } // namespace master_prefs |