summaryrefslogtreecommitdiffstats
path: root/base
diff options
context:
space:
mode:
authorevan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-23 22:39:30 +0000
committerevan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-23 22:39:30 +0000
commitd8a80d6e6d787b0f924e54993fd3bb700ea220fb (patch)
tree73cd31322e244b11fca6e3ffebf76c5eae054ae5 /base
parentbbee17e594c08a4baf9379cdb22b4961a113434f (diff)
downloadchromium_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.h9
-rw-r--r--base/base_paths_linux.cc2
-rw-r--r--base/base_paths_mac.mm2
-rw-r--r--base/path_service.cc8
-rw-r--r--base/path_service.h5
-rw-r--r--base/path_service_unittest.cc6
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);
}