diff options
author | evan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-23 22:39:30 +0000 |
---|---|---|
committer | evan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-23 22:39:30 +0000 |
commit | d8a80d6e6d787b0f924e54993fd3bb700ea220fb (patch) | |
tree | 73cd31322e244b11fca6e3ffebf76c5eae054ae5 /base | |
parent | bbee17e594c08a4baf9379cdb22b4961a113434f (diff) | |
download | chromium_src-d8a80d6e6d787b0f924e54993fd3bb700ea220fb.zip chromium_src-d8a80d6e6d787b0f924e54993fd3bb700ea220fb.tar.gz chromium_src-d8a80d6e6d787b0f924e54993fd3bb700ea220fb.tar.bz2 |
Revert "chrome_paths: refactor and sanitize cache directory handling"
This reverts commit r67160, test failures.
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67171 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base')
-rw-r--r-- | base/base_paths.h | 9 | ||||
-rw-r--r-- | base/base_paths_linux.cc | 2 | ||||
-rw-r--r-- | base/base_paths_mac.mm | 2 | ||||
-rw-r--r-- | base/path_service.cc | 8 | ||||
-rw-r--r-- | base/path_service.h | 5 | ||||
-rw-r--r-- | base/path_service_unittest.cc | 6 |
6 files changed, 25 insertions, 7 deletions
diff --git a/base/base_paths.h b/base/base_paths.h index 72cff15..0f9be04 100644 --- a/base/base_paths.h +++ b/base/base_paths.h @@ -33,11 +33,10 @@ enum { // for tests that need to locate various resources. It // should not be used outside of test code. #if defined(OS_POSIX) - DIR_CACHE, // Directory where to put cache data. Note this is - // *not* where the browser cache lives, but the - // browser cache can be a subdirectory. - // This is $XDG_CACHE_HOME on Linux and - // ~/Library/Caches on Mac. + DIR_USER_CACHE, // Directory where user cache data resides. The Chromium + // browser cache can be a subdirectory of DIR_USER_CACHE. + // This is $XDG_CACHE_HOME on Linux and ~/Library/Caches + // on Mac. #endif PATH_END diff --git a/base/base_paths_linux.cc b/base/base_paths_linux.cc index 701b983..6d837f2 100644 --- a/base/base_paths_linux.cc +++ b/base/base_paths_linux.cc @@ -105,7 +105,7 @@ bool PathProviderPosix(int key, FilePath* result) { << "Try running from your chromium/src directory."; return false; } - case base::DIR_CACHE: + case base::DIR_USER_CACHE: scoped_ptr<base::Environment> env(base::Environment::Create()); FilePath cache_dir(base::nix::GetXDGDirectory(env.get(), "XDG_CACHE_HOME", ".cache")); diff --git a/base/base_paths_mac.mm b/base/base_paths_mac.mm index 97413ba..b9225d8 100644 --- a/base/base_paths_mac.mm +++ b/base/base_paths_mac.mm @@ -47,7 +47,7 @@ bool PathProviderMac(int key, FilePath* result) { case base::FILE_MODULE: { return GetNSExecutablePath(result); } - case base::DIR_CACHE: + case base::DIR_USER_CACHE: return mac_util::GetUserDirectory(NSCachesDirectory, result); case base::DIR_APP_DATA: return mac_util::GetUserDirectory(NSApplicationSupportDirectory, result); diff --git a/base/path_service.cc b/base/path_service.cc index 8660c42..9eed56d 100644 --- a/base/path_service.cc +++ b/base/path_service.cc @@ -215,6 +215,14 @@ bool PathService::Get(int key, std::wstring* result) { } #endif +// TODO(evan): remove me -- see comments in header. +bool PathService::IsOverridden(int key) { + PathData* path_data = GetPathData(); + DCHECK(path_data); + AutoLock scoped_lock(path_data->lock); + return path_data->overrides.find(key) != path_data->overrides.end(); +} + bool PathService::Override(int key, const FilePath& path) { PathData* path_data = GetPathData(); DCHECK(path_data); diff --git a/base/path_service.h b/base/path_service.h index 4d99cdc..6873e1f 100644 --- a/base/path_service.h +++ b/base/path_service.h @@ -45,6 +45,11 @@ class PathService { // over the lifetime of the app, so this method should be used with caution. static bool Override(int key, const FilePath& path); + // Return whether a path was overridden. + // TODO(evan): temporarily restoring this to quick-fix a regression. + // Remove me again once it's fixed properly. + static bool IsOverridden(int key); + // To extend the set of supported keys, you can register a path provider, // which is just a function mirroring PathService::Get. The ProviderFunc // returns false if it cannot provide a non-empty path for the given key. diff --git a/base/path_service_unittest.cc b/base/path_service_unittest.cc index 4c41aed..c65f7a5 100644 --- a/base/path_service_unittest.cc +++ b/base/path_service_unittest.cc @@ -21,6 +21,12 @@ namespace { bool ReturnsValidPath(int dir_type) { FilePath path; bool result = PathService::Get(dir_type, &path); +#if defined(OS_POSIX) + // If chromium has never been started on this account, the cache path will not + // exist. + if (dir_type == base::DIR_USER_CACHE) + return result && !path.value().empty(); +#endif return result && !path.value().empty() && file_util::PathExists(path); } |