diff options
Diffstat (limited to 'base')
| -rw-r--r-- | base/file_util.h | 1 | ||||
| -rw-r--r-- | base/file_util_posix.cc | 8 | ||||
| -rw-r--r-- | base/nix/xdg_util.cc | 13 |
3 files changed, 16 insertions, 6 deletions
diff --git a/base/file_util.h b/base/file_util.h index ca7bf626..9c9072f 100644 --- a/base/file_util.h +++ b/base/file_util.h @@ -218,6 +218,7 @@ BASE_EXPORT bool GetTempDir(FilePath* path); // // You should not generally call this directly. Instead use DIR_HOME with the // path service which will use this function but cache the value. +// Path service may also override DIR_HOME. BASE_EXPORT FilePath GetHomeDir(); // Creates a temporary file. The full path is placed in |path|, and the diff --git a/base/file_util_posix.cc b/base/file_util_posix.cc index 9270e8a..e8dec94 100644 --- a/base/file_util_posix.cc +++ b/base/file_util_posix.cc @@ -458,8 +458,12 @@ bool GetTempDir(FilePath* path) { #if !defined(OS_MACOSX) // Mac implementation is in file_util_mac.mm. FilePath GetHomeDir() { #if defined(OS_CHROMEOS) - if (SysInfo::IsRunningOnChromeOS()) - return FilePath("/home/chronos/user"); + if (SysInfo::IsRunningOnChromeOS()) { + // On Chrome OS chrome::DIR_USER_DATA is overriden with a primary user + // homedir once it becomes available. + NOTREACHED() << "Called GetHomeDir() without base::DIR_HOME override"; + return FilePath("/"); + } #endif const char* home_dir = getenv("HOME"); diff --git a/base/nix/xdg_util.cc b/base/nix/xdg_util.cc index 4c1510f..4086a3d 100644 --- a/base/nix/xdg_util.cc +++ b/base/nix/xdg_util.cc @@ -6,9 +6,11 @@ #include <string> +#include "base/base_paths.h" #include "base/environment.h" #include "base/file_util.h" #include "base/files/file_path.h" +#include "base/path_service.h" #include "base/third_party/xdg_user_dirs/xdg_user_dir_lookup.h" namespace { @@ -28,10 +30,12 @@ FilePath GetXDGDirectory(Environment* env, const char* env_name, const char* fallback_dir) { FilePath path; std::string env_value; - if (env->GetVar(env_name, &env_value) && !env_value.empty()) + if (env->GetVar(env_name, &env_value) && !env_value.empty()) { path = FilePath(env_value); - else - path = GetHomeDir().Append(fallback_dir); + } else { + PathService::Get(base::DIR_HOME, &path); + path = path.Append(fallback_dir); + } return path.StripTrailingSeparators(); } @@ -42,7 +46,8 @@ FilePath GetXDGUserDirectory(const char* dir_name, const char* fallback_dir) { path = FilePath(xdg_dir); free(xdg_dir); } else { - path = GetHomeDir().Append(fallback_dir); + PathService::Get(base::DIR_HOME, &path); + path = path.Append(fallback_dir); } return path.StripTrailingSeparators(); } |
