Index: chrome/common/chrome_paths_mac.mm |
diff --git a/chrome/common/chrome_paths_mac.mm b/chrome/common/chrome_paths_mac.mm |
index b87b39788ecd09ae100c4a9eef4fedc03dfdf6bb..57ed3bdb9e97f1eb0b748fcfa17d521ac42ad195 100644 |
--- a/chrome/common/chrome_paths_mac.mm |
+++ b/chrome/common/chrome_paths_mac.mm |
@@ -48,6 +48,28 @@ bool GetUserDocumentsDirectory(FilePath* result) { |
return mac_util::GetUserDirectory(NSDocumentDirectory, result); |
} |
+void GetUserCacheDirectory(const FilePath& profile_dir, FilePath* result) { |
+ // If the profile directory is under ~/Library/Application Support, |
+ // use a suitable cache directory under ~/Library/Caches. For |
+ // example, a profile directory of ~/Library/Application |
+ // Support/Google/Chrome/MyProfileName would use the cache directory |
+ // ~/Library/Caches/Google/Chrome/MyProfileName. |
+ |
+ // Default value in cases where any of the following fails. |
+ *result = profile_dir; |
+ |
+ FilePath app_data_dir; |
+ if (!PathService::Get(base::DIR_APP_DATA, &app_data_dir)) |
+ return; |
+ FilePath cache_dir; |
+ if (!PathService::Get(base::DIR_CACHE, &cache_dir)) |
+ return; |
+ if (!app_data_dir.AppendRelativePath(profile_dir, &cache_dir)) |
+ return; |
+ |
+ *result = cache_dir; |
+} |
+ |
bool GetUserDownloadsDirectory(FilePath* result) { |
return mac_util::GetUserDirectory(NSDownloadsDirectory, result); |
} |