Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(731)

Unified Diff: base/file_util_posix.cc

Issue 200473002: Move all callers of GetHomeDir() to PathService::Get(base::DIR_HOME). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: cleanup Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: base/file_util_posix.cc
diff --git a/base/file_util_posix.cc b/base/file_util_posix.cc
index 7e7dc052300fde54dc71f36681d783dc14776b17..7797a4124f8037d677911b5ce6af766c1945897b 100644
--- a/base/file_util_posix.cc
+++ b/base/file_util_posix.cc
@@ -31,6 +31,7 @@
#include <fstream>
#include "base/basictypes.h"
+#include "base/command_line.h"
#include "base/files/file_enumerator.h"
#include "base/files/file_path.h"
#include "base/logging.h"
@@ -191,6 +192,20 @@ bool DetermineDevShmExecutable() {
}
#endif // defined(OS_LINUX)
+#if defined(OS_CHROMEOS)
+// On Chrome OS Indicates that a user has logged in and that
+// GetHomeDir() calls are now valid.
+static bool is_user_logged_in = false;
+
+// Primary logged in user id hash which is used on ChromeOS to identify
+// that user home dir.
+static std::string primary_user_id_hash;
+
+bool IsUserLoggedIn() {
+ return is_user_logged_in;
+}
+#endif
+
} // namespace
FilePath MakeAbsoluteFilePath(const FilePath& input) {
@@ -484,8 +499,14 @@ bool GetShmemTempDir(bool executable, 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()) {
+ if (IsUserLoggedIn()) {
+ return FilePath("/home/chronos/u-" + primary_user_id_hash);
+ } else {
+ NOTREACHED() << "Called GetHomeDir() when not logged in.";
+ return FilePath("/home/chronos/user");
+ }
+ }
#endif
const char* home_dir = getenv("HOME");
@@ -515,6 +536,16 @@ FilePath GetHomeDir() {
}
#endif // !defined(OS_MACOSX)
+#if defined(OS_CHROMEOS)
+void SetUserLoggedIn(bool logged_in) {
+ is_user_logged_in = logged_in;
+}
+
+void SetPrimaryUserIdHash(std::string user_id_hash) {
+ primary_user_id_hash = user_id_hash;
+}
+#endif
+
bool CreateTemporaryFile(FilePath* path) {
ThreadRestrictions::AssertIOAllowed(); // For call to close().
FilePath directory;

Powered by Google App Engine
This is Rietveld 408576698