diff --git a/ipc/chromium/Makefile.in b/ipc/chromium/Makefile.in index 7cf4ae129d5a..fa5ee27db4ab 100644 --- a/ipc/chromium/Makefile.in +++ b/ipc/chromium/Makefile.in @@ -215,7 +215,6 @@ ifdef OS_LINUX # { CPPSRCS += \ atomicops_internals_x86_gcc.cc \ base_paths_linux.cc \ - file_util_linux.cc \ file_version_info_linux.cc \ idle_timer_none.cc \ process_util_linux.cc \ diff --git a/ipc/chromium/src/base/file_util_linux.cc b/ipc/chromium/src/base/file_util_linux.cc deleted file mode 100644 index 171e44f8ed10..000000000000 --- a/ipc/chromium/src/base/file_util_linux.cc +++ /dev/null @@ -1,85 +0,0 @@ -// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "base/file_util.h" - -#include -#if defined(ANDROID) || defined(OS_POSIX) -#include -#endif - -#include -#include - -#include "base/eintr_wrapper.h" -#include "base/file_path.h" -#include "base/string_util.h" - -namespace file_util { - -bool GetTempDir(FilePath* path) { - const char* tmp = getenv("TMPDIR"); - if (tmp) - *path = FilePath(tmp); - else - *path = FilePath("/tmp"); - return true; -} - -bool GetShmemTempDir(FilePath* path) { -#ifdef ANDROID - return GetTempDir(path); -#else - *path = FilePath("/dev/shm"); - return true; -#endif -} - -bool CopyFile(const FilePath& from_path, const FilePath& to_path) { - int infile = open(from_path.value().c_str(), O_RDONLY); - if (infile < 0) - return false; - - int outfile = creat(to_path.value().c_str(), 0666); - if (outfile < 0) { - close(infile); - return false; - } - - const size_t kBufferSize = 32768; - std::vector buffer(kBufferSize); - bool result = true; - - while (result) { - ssize_t bytes_read = HANDLE_EINTR(read(infile, &buffer[0], buffer.size())); - if (bytes_read < 0) { - result = false; - break; - } - if (bytes_read == 0) - break; - // Allow for partial writes - ssize_t bytes_written_per_read = 0; - do { - ssize_t bytes_written_partial = HANDLE_EINTR(write( - outfile, - &buffer[bytes_written_per_read], - bytes_read - bytes_written_per_read)); - if (bytes_written_partial < 0) { - result = false; - break; - } - bytes_written_per_read += bytes_written_partial; - } while (bytes_written_per_read < bytes_read); - } - - if (HANDLE_EINTR(close(infile)) < 0) - result = false; - if (HANDLE_EINTR(close(outfile)) < 0) - result = false; - - return result; -} - -} // namespace file_util diff --git a/ipc/chromium/src/base/file_util_posix.cc b/ipc/chromium/src/base/file_util_posix.cc index e2423979b6d5..f3f34900252f 100644 --- a/ipc/chromium/src/base/file_util_posix.cc +++ b/ipc/chromium/src/base/file_util_posix.cc @@ -22,6 +22,8 @@ #include #include +#include +#include #include "base/basictypes.h" #include "base/eintr_wrapper.h" @@ -519,6 +521,72 @@ bool SetCurrentDirectory(const FilePath& path) { return !ret; } +#if !defined(OS_MACOSX) +bool GetTempDir(FilePath* path) { + const char* tmp = getenv("TMPDIR"); + if (tmp) + *path = FilePath(tmp); + else + *path = FilePath("/tmp"); + return true; +} + +bool GetShmemTempDir(FilePath* path) { +#if defined(OS_LINUX) && !defined(ANDROID) + *path = FilePath("/dev/shm"); + return true; +#else + return GetTempDir(path); +#endif +} + +bool CopyFile(const FilePath& from_path, const FilePath& to_path) { + int infile = open(from_path.value().c_str(), O_RDONLY); + if (infile < 0) + return false; + + int outfile = creat(to_path.value().c_str(), 0666); + if (outfile < 0) { + close(infile); + return false; + } + + const size_t kBufferSize = 32768; + std::vector buffer(kBufferSize); + bool result = true; + + while (result) { + ssize_t bytes_read = HANDLE_EINTR(read(infile, &buffer[0], buffer.size())); + if (bytes_read < 0) { + result = false; + break; + } + if (bytes_read == 0) + break; + // Allow for partial writes + ssize_t bytes_written_per_read = 0; + do { + ssize_t bytes_written_partial = HANDLE_EINTR(write( + outfile, + &buffer[bytes_written_per_read], + bytes_read - bytes_written_per_read)); + if (bytes_written_partial < 0) { + result = false; + break; + } + bytes_written_per_read += bytes_written_partial; + } while (bytes_written_per_read < bytes_read); + } + + if (HANDLE_EINTR(close(infile)) < 0) + result = false; + if (HANDLE_EINTR(close(outfile)) < 0) + result = false; + + return result; +} +#endif // !defined(OS_MACOSX) + /////////////////////////////////////////////// // FileEnumerator