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

Side by Side Diff: base/file_util_posix.cc

Issue 159833003: Add support for GetHomeDir for Mac and Windows. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: review comments Created 6 years, 10 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « base/file_util_mac.mm ('k') | base/file_util_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/file_util.h" 5 #include "base/file_util.h"
6 6
7 #include <dirent.h> 7 #include <dirent.h>
8 #include <errno.h> 8 #include <errno.h>
9 #include <fcntl.h> 9 #include <fcntl.h>
10 #include <libgen.h> 10 #include <libgen.h>
(...skipping 463 matching lines...) Expand 10 before | Expand all | Expand 10 after
474 } 474 }
475 if (use_dev_shm) { 475 if (use_dev_shm) {
476 *path = FilePath("/dev/shm"); 476 *path = FilePath("/dev/shm");
477 return true; 477 return true;
478 } 478 }
479 #endif 479 #endif
480 return GetTempDir(path); 480 return GetTempDir(path);
481 } 481 }
482 #endif // !defined(OS_MACOSX) && !defined(OS_ANDROID) 482 #endif // !defined(OS_MACOSX) && !defined(OS_ANDROID)
483 483
484 #if !defined(OS_MACOSX) 484 #if !defined(OS_MACOSX) // Mac implementation is in file_util_mac.mm.
485 FilePath GetHomeDir() { 485 FilePath GetHomeDir() {
486 #if defined(OS_CHROMEOS) 486 #if defined(OS_CHROMEOS)
487 if (SysInfo::IsRunningOnChromeOS()) 487 if (SysInfo::IsRunningOnChromeOS())
488 return FilePath("/home/chronos/user"); 488 return FilePath("/home/chronos/user");
489 #endif 489 #endif
490 490
491 const char* home_dir = getenv("HOME"); 491 const char* home_dir = getenv("HOME");
492 if (home_dir && home_dir[0]) 492 if (home_dir && home_dir[0])
493 return FilePath(home_dir); 493 return FilePath(home_dir);
494 494
495 #if defined(OS_ANDROID) 495 #if defined(OS_ANDROID)
496 DLOG(WARNING) << "OS_ANDROID: Home directory lookup not yet implemented."; 496 DLOG(WARNING) << "OS_ANDROID: Home directory lookup not yet implemented.";
497 #elif defined(USE_GLIB) && !defined(OS_CHROMEOS) 497 #elif defined(USE_GLIB) && !defined(OS_CHROMEOS)
498 // g_get_home_dir calls getpwent, which can fall through to LDAP calls. 498 // g_get_home_dir calls getpwent, which can fall through to LDAP calls so
499 ThreadRestrictions::AssertIOAllowed(); 499 // this may do I/O. However, it should be rare that $HOME is not defined and
500 500 // this is typically called from the path service which has no threading
501 // restrictions. The path service will cache the result which limits the
502 // badness of blocking on I/O. As a result, we don't have a thread
503 // restriction here.
501 home_dir = g_get_home_dir(); 504 home_dir = g_get_home_dir();
502 if (home_dir && home_dir[0]) 505 if (home_dir && home_dir[0])
503 return FilePath(home_dir); 506 return FilePath(home_dir);
504 #endif 507 #endif
505 508
506 FilePath rv; 509 FilePath rv;
507 if (GetTempDir(&rv)) 510 if (GetTempDir(&rv))
508 return rv; 511 return rv;
509 512
510 // Last resort. 513 // Last resort.
(...skipping 446 matching lines...) Expand 10 before | Expand all | Expand 10 after
957 result = false; 960 result = false;
958 if (IGNORE_EINTR(close(outfile)) < 0) 961 if (IGNORE_EINTR(close(outfile)) < 0)
959 result = false; 962 result = false;
960 963
961 return result; 964 return result;
962 } 965 }
963 #endif // !defined(OS_MACOSX) 966 #endif // !defined(OS_MACOSX)
964 967
965 } // namespace internal 968 } // namespace internal
966 } // namespace base 969 } // namespace base
OLDNEW
« no previous file with comments | « base/file_util_mac.mm ('k') | base/file_util_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698