Remove code that's always #if'd out
$ rg 'if defined\(OS_NACL\)$'
$ rg 'if defined\(OS_FREEBSD\)$'
$ rg 'if defined\(OS_AIX\)$'
$ rg 'if defined\(OS_FUCHSIA\)$'
$ rg 'if defined\(OS_CHROMEOS\)$'
$ rg 'if defined\(OS_ANDROID\)$'
There's more that are in complex #ifs still.
Change-Id: I748e283c7c195493d64b4589303c90b8395a3413
Reviewed-on: https://gn-review.googlesource.com/1601
Commit-Queue: Scott Graham <scottmg@chromium.org>
Reviewed-by: Brett Wilson <brettw@chromium.org>
diff --git a/base/files/file_enumerator_posix.cc b/base/files/file_enumerator_posix.cc
index a0c5d45..a1a93d2 100644
--- a/base/files/file_enumerator_posix.cc
+++ b/base/files/file_enumerator_posix.cc
@@ -111,21 +111,6 @@
directory_entries_.clear();
-#if defined(OS_FUCHSIA)
- // Fuchsia does not support .. on the file system server side, see
- // https://fuchsia.googlesource.com/docs/+/master/dotdot.md and
- // https://crbug.com/735540. However, for UI purposes, having the parent
- // directory show up in directory listings makes sense, so we add it here to
- // match the expectation on other operating systems. In cases where this
- // is useful it should be resolvable locally.
- FileInfo dotdot;
- dotdot.stat_.st_mode = S_IFDIR;
- dotdot.filename_ = FilePath("..");
- if (!ShouldSkip(dotdot.filename_)) {
- directory_entries_.push_back(std::move(dotdot));
- }
-#endif // OS_FUCHSIA
-
current_directory_entry_ = 0;
struct dirent* dent;
while ((dent = readdir(dir))) {
diff --git a/base/files/file_path.cc b/base/files/file_path.cc
index 146796b..969a977 100644
--- a/base/files/file_path.cc
+++ b/base/files/file_path.cc
@@ -1305,10 +1305,4 @@
#endif
}
-#if defined(OS_ANDROID)
-bool FilePath::IsContentUri() const {
- return StartsWith(path_, "content://", base::CompareCase::INSENSITIVE_ASCII);
-}
-#endif
-
} // namespace base
diff --git a/base/files/file_path.h b/base/files/file_path.h
index 340375d..be70317 100644
--- a/base/files/file_path.h
+++ b/base/files/file_path.h
@@ -427,15 +427,6 @@
StringPieceType string2);
#endif
-#if defined(OS_ANDROID)
- // On android, file selection dialog can return a file with content uri
- // scheme(starting with content://). Content uri needs to be opened with
- // ContentResolver to guarantee that the app has appropriate permissions
- // to access it.
- // Returns true if the path is a content uri, or false otherwise.
- bool IsContentUri() const;
-#endif
-
private:
// Remove trailing separators from this object. If the path is absolute, it
// will never be stripped any more than to refer to the absolute root
diff --git a/base/files/file_posix.cc b/base/files/file_posix.cc
index 630f1ff..344621f 100644
--- a/base/files/file_posix.cc
+++ b/base/files/file_posix.cc
@@ -115,14 +115,7 @@
int64_t last_accessed_nsec = stat_info.st_atim.tv_nsec;
time_t creation_time_sec = stat_info.st_ctim.tv_sec;
int64_t creation_time_nsec = stat_info.st_ctim.tv_nsec;
-#elif defined(OS_ANDROID)
- time_t last_modified_sec = stat_info.st_mtime;
- int64_t last_modified_nsec = stat_info.st_mtime_nsec;
- time_t last_accessed_sec = stat_info.st_atime;
- int64_t last_accessed_nsec = stat_info.st_atime_nsec;
- time_t creation_time_sec = stat_info.st_ctime;
- int64_t creation_time_nsec = stat_info.st_ctime_nsec;
-#elif defined(OS_MACOSX) || defined(OS_IOS) || defined(OS_BSD)
+#elif defined(OS_MACOSX)
time_t last_modified_sec = stat_info.st_mtimespec.tv_sec;
int64_t last_modified_nsec = stat_info.st_mtimespec.tv_nsec;
time_t last_accessed_sec = stat_info.st_atimespec.tv_sec;
@@ -130,12 +123,7 @@
time_t creation_time_sec = stat_info.st_ctimespec.tv_sec;
int64_t creation_time_nsec = stat_info.st_ctimespec.tv_nsec;
#else
- time_t last_modified_sec = stat_info.st_mtime;
- int64_t last_modified_nsec = 0;
- time_t last_accessed_sec = stat_info.st_atime;
- int64_t last_accessed_nsec = 0;
- time_t creation_time_sec = stat_info.st_ctime;
- int64_t creation_time_nsec = 0;
+#error
#endif
last_modified =
@@ -176,15 +164,9 @@
int64_t File::Seek(Whence whence, int64_t offset) {
DCHECK(IsValid());
-#if defined(OS_ANDROID)
- static_assert(sizeof(int64_t) == sizeof(off64_t), "off64_t must be 64 bits");
- return lseek64(file_.get(), static_cast<off64_t>(offset),
- static_cast<int>(whence));
-#else
static_assert(sizeof(int64_t) == sizeof(off_t), "off_t must be 64 bits");
return lseek(file_.get(), static_cast<off_t>(offset),
static_cast<int>(whence));
-#endif
}
int File::Read(int64_t offset, char* data, int size) {
@@ -435,10 +417,6 @@
static_assert(O_RDONLY == 0, "O_RDONLY must equal zero");
int mode = S_IRUSR | S_IWUSR;
-#if defined(OS_CHROMEOS)
- mode |= S_IRGRP | S_IROTH;
-#endif
-
int descriptor = HANDLE_EINTR(open(path.value().c_str(), open_flags, mode));
if (flags & FLAG_OPEN_ALWAYS) {
@@ -473,10 +451,7 @@
bool File::Flush() {
DCHECK(IsValid());
-#if defined(OS_NACL)
- NOTIMPLEMENTED(); // NaCl doesn't implement fsync.
- return true;
-#elif defined(OS_LINUX) || defined(OS_ANDROID)
+#if defined(OS_LINUX)
return !HANDLE_EINTR(fdatasync(file_.get()));
#else
return !HANDLE_EINTR(fsync(file_.get()));
diff --git a/base/files/file_util_posix.cc b/base/files/file_util_posix.cc
index 774735c..6fb43bd 100644
--- a/base/files/file_util_posix.cc
+++ b/base/files/file_util_posix.cc
@@ -48,12 +48,6 @@
#include <grp.h>
#endif
-// We need to do this on AIX due to some inconsistencies in how AIX
-// handles XOPEN_SOURCE and ALL_SOURCE.
-#if defined(OS_AIX)
-extern "C" char* mkdtemp(char* path);
-#endif
-
namespace base {
namespace {
@@ -310,8 +304,6 @@
// set of permissions than it does on other POSIX platforms.
#if defined(OS_MACOSX)
int mode = 0600 | (stat_at_use.st_mode & 0177);
-#elif defined(OS_CHROMEOS)
- int mode = 0644;
#else
int mode = 0600;
#endif
@@ -466,11 +458,6 @@
}
bool PathExists(const FilePath& path) {
-#if defined(OS_ANDROID)
- if (path.IsContentUri()) {
- return ContentUriExists(path);
- }
-#endif
return access(path.value().c_str(), F_OK) == 0;
}
@@ -608,10 +595,6 @@
if (home_dir && home_dir[0])
return FilePath(home_dir);
-#if defined(OS_ANDROID)
- DLOG(WARNING) << "OS_ANDROID: Home directory lookup not yet implemented.";
-#endif
-
FilePath rv;
if (GetTempDir(&rv))
return rv;
@@ -746,19 +729,8 @@
bool GetFileInfo(const FilePath& file_path, File::Info* results) {
stat_wrapper_t file_info;
-#if defined(OS_ANDROID)
- if (file_path.IsContentUri()) {
- File file = OpenContentUriForRead(file_path);
- if (!file.IsValid())
- return false;
- return file.GetInfo(results);
- } else {
-#endif // defined(OS_ANDROID)
- if (CallStat(file_path.value().c_str(), &file_info) != 0)
- return false;
-#if defined(OS_ANDROID)
- }
-#endif // defined(OS_ANDROID)
+ if (CallStat(file_path.value().c_str(), &file_info) != 0)
+ return false;
results->FromStat(file_info);
return true;
@@ -941,17 +913,9 @@
#endif // defined(OS_MACOSX) && !defined(OS_IOS)
int GetMaximumPathComponentLength(const FilePath& path) {
-#if defined(OS_FUCHSIA)
- // Return a value we do not expect anyone ever to reach, but which is small
- // enough to guard against e.g. bugs causing multi-megabyte paths.
- return 1024;
-#else
return pathconf(path.value().c_str(), _PC_NAME_MAX);
-#endif
}
-#if !defined(OS_ANDROID)
-// This is implemented in file_util_android.cc for that platform.
bool GetShmemTempDir(bool executable, FilePath* path) {
#if defined(OS_LINUX) || defined(OS_AIX)
bool use_dev_shm = true;
@@ -966,21 +930,12 @@
#endif // defined(OS_LINUX) || defined(OS_AIX)
return GetTempDir(path);
}
-#endif // !defined(OS_ANDROID)
#if !defined(OS_MACOSX)
// Mac has its own implementation, this is for all other Posix systems.
bool CopyFile(const FilePath& from_path, const FilePath& to_path) {
File infile;
-#if defined(OS_ANDROID)
- if (from_path.IsContentUri()) {
- infile = OpenContentUriForRead(from_path);
- } else {
- infile = File(from_path, File::FLAG_OPEN | File::FLAG_READ);
- }
-#else
infile = File(from_path, File::FLAG_OPEN | File::FLAG_READ);
-#endif
if (!infile.IsValid())
return false;
diff --git a/base/linux_util.cc b/base/linux_util.cc
index 5c57d78..f2d29ec 100644
--- a/base/linux_util.cc
+++ b/base/linux_util.cc
@@ -106,19 +106,9 @@
// We use this static string to hold the Linux distro info. If we
// crash, the crash handler code will send this in the crash dump.
-char g_linux_distro[kDistroSize] =
-#if defined(OS_CHROMEOS)
- "CrOS";
-#elif defined(OS_ANDROID)
- "Android";
-#else // if defined(OS_LINUX)
- "Unknown";
-#endif
+char g_linux_distro[kDistroSize] = "Unknown";
std::string GetLinuxDistro() {
-#if defined(OS_CHROMEOS) || defined(OS_ANDROID)
- return g_linux_distro;
-#elif defined(OS_LINUX)
LinuxDistroHelper* distro_state_singleton = LinuxDistroHelper::GetInstance();
LinuxDistroState state = distro_state_singleton->State();
if (STATE_CHECK_FINISHED == state)
@@ -143,10 +133,6 @@
}
distro_state_singleton->CheckFinished();
return g_linux_distro;
-#else
- NOTIMPLEMENTED();
- return "Unknown";
-#endif
}
void SetLinuxDistro(const std::string& distro) {
diff --git a/base/logging.cc b/base/logging.cc
index 83ad556..aacc90c 100644
--- a/base/logging.cc
+++ b/base/logging.cc
@@ -47,21 +47,9 @@
#include <mach-o/dyld.h>
#elif defined(OS_POSIX) || defined(OS_FUCHSIA)
-#if defined(OS_NACL)
-#include <sys/time.h> // timespec doesn't seem to be in <time.h>
-#endif
#include <time.h>
#endif
-#if defined(OS_FUCHSIA)
-#include <zircon/process.h>
-#include <zircon/syscalls.h>
-#endif
-
-#if defined(OS_ANDROID)
-#include <android/log.h>
-#endif
-
#if defined(OS_POSIX) || defined(OS_FUCHSIA)
#include <errno.h>
#include <paths.h>
@@ -150,11 +138,6 @@
int32_t CurrentProcessId() {
#if defined(OS_WIN)
return GetCurrentProcessId();
-#elif defined(OS_FUCHSIA)
- zx_info_handle_basic_t basic = {};
- zx_object_get_info(zx_process_self(), ZX_INFO_HANDLE_BASIC, &basic,
- sizeof(basic), nullptr, nullptr);
- return basic.koid;
#elif defined(OS_POSIX)
return getpid();
#endif
@@ -163,15 +146,8 @@
uint64_t TickCount() {
#if defined(OS_WIN)
return GetTickCount();
-#elif defined(OS_FUCHSIA)
- return zx_clock_get(ZX_CLOCK_MONOTONIC) /
- static_cast<zx_time_t>(base::Time::kNanosecondsPerMicrosecond);
#elif defined(OS_MACOSX)
return mach_absolute_time();
-#elif defined(OS_NACL)
- // NaCl sadly does not have _POSIX_TIMERS enabled in sys/features.h
- // So we have to use clock() for now.
- return clock();
#elif defined(OS_POSIX)
struct timespec ts;
clock_gettime(CLOCK_MONOTONIC, &ts);
@@ -186,9 +162,7 @@
void DeleteFilePath(const PathString& log_name) {
#if defined(OS_WIN)
DeleteFile(log_name.c_str());
-#elif defined(OS_NACL)
- // Do nothing; unlink() isn't supported on NaCl.
-#elif defined(OS_POSIX) || defined(OS_FUCHSIA)
+#elif defined(OS_POSIX)
unlink(log_name.c_str());
#else
#error Unsupported platform
@@ -386,10 +360,6 @@
delete_old(APPEND_TO_OLD_LOG_FILE) {}
bool BaseInitLoggingImpl(const LoggingSettings& settings) {
-#if defined(OS_NACL)
- // Can log only to the system debug log.
- CHECK_EQ(settings.logging_dest & ~LOG_TO_SYSTEM_DEBUG_LOG, 0);
-#endif
g_logging_destination = settings.logging_dest;
// ignore file options unless logging to file is set.
@@ -694,24 +664,6 @@
str_newline.c_str());
#endif // defined(USE_ASL)
}
-#elif defined(OS_ANDROID)
- android_LogPriority priority =
- (severity_ < 0) ? ANDROID_LOG_VERBOSE : ANDROID_LOG_UNKNOWN;
- switch (severity_) {
- case LOG_INFO:
- priority = ANDROID_LOG_INFO;
- break;
- case LOG_WARNING:
- priority = ANDROID_LOG_WARN;
- break;
- case LOG_ERROR:
- priority = ANDROID_LOG_ERROR;
- break;
- case LOG_FATAL:
- priority = ANDROID_LOG_FATAL;
- break;
- }
- __android_log_write(priority, "chromium", str_newline.c_str());
#endif
ignore_result(fwrite(str_newline.data(), str_newline.size(), 1, stderr));
fflush(stderr);
diff --git a/base/process/internal_linux.cc b/base/process/internal_linux.cc
index c551502..69a1a5b 100644
--- a/base/process/internal_linux.cc
+++ b/base/process/internal_linux.cc
@@ -18,11 +18,6 @@
#include "base/strings/string_util.h"
#include "base/time/time.h"
-// Not defined on AIX by default.
-#if defined(OS_AIX)
-#define NAME_MAX 255
-#endif
-
namespace base {
namespace internal {
diff --git a/base/process/kill.h b/base/process/kill.h
index 03c057c..384087c 100644
--- a/base/process/kill.h
+++ b/base/process/kill.h
@@ -51,17 +51,6 @@
TERMINATION_STATUS_PROCESS_WAS_KILLED, // e.g. SIGKILL or task manager kill
TERMINATION_STATUS_PROCESS_CRASHED, // e.g. Segmentation fault
TERMINATION_STATUS_STILL_RUNNING, // child hasn't exited yet
-#if defined(OS_CHROMEOS)
- // Used for the case when oom-killer kills a process on ChromeOS.
- TERMINATION_STATUS_PROCESS_WAS_KILLED_BY_OOM,
-#endif
-#if defined(OS_ANDROID)
- // On Android processes are spawned from the system Zygote and we do not get
- // the termination status. We can't know if the termination was a crash or an
- // oom kill for sure, but we can use status of the strong process bindings as
- // a hint.
- TERMINATION_STATUS_OOM_PROTECTED, // child was protected from oom kill
-#endif
TERMINATION_STATUS_LAUNCH_FAILED, // child process never launched
TERMINATION_STATUS_OOM, // Process died due to oom
TERMINATION_STATUS_MAX_ENUM
diff --git a/base/process/kill_posix.cc b/base/process/kill_posix.cc
index 4027c6f..e6d658c 100644
--- a/base/process/kill_posix.cc
+++ b/base/process/kill_posix.cc
@@ -53,11 +53,6 @@
case SIGSYS:
return TERMINATION_STATUS_PROCESS_CRASHED;
case SIGKILL:
-#if defined(OS_CHROMEOS)
- // On ChromeOS, only way a process gets kill by SIGKILL
- // is by oom-killer.
- return TERMINATION_STATUS_PROCESS_WAS_KILLED_BY_OOM;
-#endif
case SIGINT:
case SIGTERM:
return TERMINATION_STATUS_PROCESS_WAS_KILLED;
diff --git a/base/process/launch.h b/base/process/launch.h
index 0a08750..eb53c0f 100644
--- a/base/process/launch.h
+++ b/base/process/launch.h
@@ -23,12 +23,9 @@
#if defined(OS_WIN)
#include <windows.h>
-#elif defined(OS_FUCHSIA)
-#include <launchpad/launchpad.h>
-#include <zircon/types.h>
#endif
-#if defined(OS_POSIX) || defined(OS_FUCHSIA)
+#if defined(OS_POSIX)
#include "base/posix/file_descriptor_shuffle.h"
#endif
@@ -38,13 +35,6 @@
#if defined(OS_WIN)
typedef std::vector<HANDLE> HandlesToInheritVector;
-#elif defined(OS_FUCHSIA)
-struct HandleToTransfer {
- uint32_t id;
- zx_handle_t handle;
-};
-typedef std::vector<HandleToTransfer> HandlesToTransferVector;
-typedef std::vector<std::pair<int, int>> FileHandleMappingVector;
#elif defined(OS_POSIX)
typedef std::vector<std::pair<int, int>> FileHandleMappingVector;
#endif // defined(OS_WIN)
@@ -52,7 +42,7 @@
// Options for launching a subprocess that are passed to LaunchProcess().
// The default constructor constructs the object with default options.
struct BASE_EXPORT LaunchOptions {
-#if defined(OS_POSIX) || defined(OS_FUCHSIA)
+#if defined(OS_POSIX)
// Delegate to be run in between fork and exec in the subprocess (see
// pre_exec_delegate below)
class BASE_EXPORT PreExecDelegate {
@@ -152,7 +142,7 @@
// If set to true, permission to bring windows to the foreground is passed to
// the launched process if the current process has such permission.
bool grant_foreground_privilege = false;
-#elif defined(OS_POSIX) || defined(OS_FUCHSIA)
+#elif defined(OS_POSIX)
// Set/unset environment variables. These are applied on top of the parent
// process environment. Empty (the default) means to inherit the same
// environment. See AlterEnvironment().
@@ -182,36 +172,6 @@
bool kill_on_parent_death = false;
#endif // defined(OS_LINUX)
-#if defined(OS_FUCHSIA)
- // If valid, launches the application in that job object.
- zx_handle_t job_handle = ZX_HANDLE_INVALID;
-
- // Specifies additional handles to transfer (not duplicate) to the child
- // process. The handles remain valid in this process if launch fails.
- // Each entry is an <id,handle> pair, with an |id| created using the PA_HND()
- // macro. The child retrieves the handle |zx_get_startup_handle(id)|.
- HandlesToTransferVector handles_to_transfer;
-
- // If set, specifies which capabilities should be granted (cloned) to the
- // child process.
- // A zero value indicates that the child process will receive
- // no capabilities.
- // By default the child will inherit the same capabilities, job, and CWD
- // from the parent process.
- uint32_t clone_flags =
- LP_CLONE_FDIO_NAMESPACE | LP_CLONE_DEFAULT_JOB | LP_CLONE_FDIO_STDIO;
-
- // Specifies the namespace paths which are to be cloned in the child process'
- // namespace. If left unset, the child process will be launched with an empty
- // namespace.
- // This flag allows the parent to pass only the bare minimum OS capabilities
- // to the child process, so that the potential attack surface is reduced in
- // case child process is compromised.
- // Cannot be combined with the clone flag LP_CLONE_FDIO_NAMESPACE, which is
- // equivalent to cloning every path.
- std::vector<FilePath> paths_to_map;
-#endif // defined(OS_FUCHSIA)
-
#if defined(OS_POSIX)
// If not empty, launch the specified executable instead of
// cmdline.GetProgram(). This is useful when it is necessary to pass a custom
@@ -236,12 +196,6 @@
// will be the same as its pid.
bool new_process_group = false;
#endif // defined(OS_POSIX)
-
-#if defined(OS_CHROMEOS)
- // If non-negative, the specified file descriptor will be set as the launched
- // process' controlling terminal.
- int ctrl_terminal_fd = -1;
-#endif // defined(OS_CHROMEOS)
};
// Launch a process via the command line |cmdline|.
@@ -282,7 +236,7 @@
BASE_EXPORT Process LaunchElevatedProcess(const CommandLine& cmdline,
const LaunchOptions& options);
-#elif defined(OS_POSIX) || defined(OS_FUCHSIA)
+#elif defined(OS_POSIX)
// A POSIX-specific version of LaunchProcess that takes an argv array
// instead of a CommandLine. Useful for situations where you need to
// control the command line arguments directly, but prefer the
@@ -328,7 +282,7 @@
// instead of a CommandLine object. Useful for situations where you need to
// control the command line arguments directly.
BASE_EXPORT bool GetAppOutput(const StringPiece16& cl, std::string* output);
-#elif defined(OS_POSIX) || defined(OS_FUCHSIA)
+#elif defined(OS_POSIX)
// A POSIX-specific version of GetAppOutput that takes an argv array
// instead of a CommandLine. Useful for situations where you need to
// control the command line arguments directly.
diff --git a/base/process/launch_posix.cc b/base/process/launch_posix.cc
index 454b2cb..2369802 100644
--- a/base/process/launch_posix.cc
+++ b/base/process/launch_posix.cc
@@ -45,15 +45,6 @@
#include <sys/prctl.h>
#endif
-#if defined(OS_CHROMEOS)
-#include <sys/ioctl.h>
-#endif
-
-#if defined(OS_FREEBSD)
-#include <sys/event.h>
-#include <sys/ucontext.h>
-#endif
-
#if defined(OS_MACOSX)
#include <crt_externs.h>
#include <sys/event.h>
@@ -105,15 +96,7 @@
// the previous signal mask.
sigset_t SetSignalMask(const sigset_t& new_sigmask) {
sigset_t old_sigmask;
-#if defined(OS_ANDROID)
- // POSIX says pthread_sigmask() must be used in multi-threaded processes,
- // but Android's pthread_sigmask() was broken until 4.1:
- // https://code.google.com/p/android/issues/detail?id=15337
- // http://stackoverflow.com/questions/13777109/pthread-sigmask-on-android-not-working
- RAW_CHECK(sigprocmask(SIG_SETMASK, &new_sigmask, &old_sigmask) == 0);
-#else
RAW_CHECK(pthread_sigmask(SIG_SETMASK, &new_sigmask, &old_sigmask) == 0);
-#endif
return old_sigmask;
}
@@ -219,14 +202,6 @@
static const char kFDDir[] = "/proc/self/fd";
#elif defined(OS_MACOSX)
static const char kFDDir[] = "/dev/fd";
-#elif defined(OS_SOLARIS)
-static const char kFDDir[] = "/dev/fd";
-#elif defined(OS_FREEBSD)
-static const char kFDDir[] = "/dev/fd";
-#elif defined(OS_OPENBSD)
-static const char kFDDir[] = "/dev/fd";
-#elif defined(OS_ANDROID)
-static const char kFDDir[] = "/proc/self/fd";
#endif
void CloseSuperfluousFds(const base::InjectiveMultimap& saved_mapping) {
@@ -440,20 +415,6 @@
memset(reinterpret_cast<void*>(malloc), 0xff, 8);
#endif // 0
-#if defined(OS_CHROMEOS)
- if (options.ctrl_terminal_fd >= 0) {
- // Set process' controlling terminal.
- if (HANDLE_EINTR(setsid()) != -1) {
- if (HANDLE_EINTR(
- ioctl(options.ctrl_terminal_fd, TIOCSCTTY, nullptr)) == -1) {
- RAW_LOG(WARNING, "ioctl(TIOCSCTTY), ctrl terminal not set");
- }
- } else {
- RAW_LOG(WARNING, "setsid failed, ctrl terminal not set");
- }
- }
-#endif // defined(OS_CHROMEOS)
-
// Cannot use STL iterators here, since debug iterators use locks.
for (size_t i = 0; i < options.fds_to_remap.size(); ++i) {
const FileHandleMappingVector::value_type& value =
diff --git a/base/process/process.h b/base/process/process.h
index 2826be3..2633355 100644
--- a/base/process/process.h
+++ b/base/process/process.h
@@ -15,10 +15,6 @@
#include "base/win/scoped_handle.h"
#endif
-#if defined(OS_FUCHSIA)
-#include "base/fuchsia/scoped_zx_handle.h"
-#endif
-
#if defined(OS_MACOSX)
#include "base/process/port_provider_mac.h"
#endif
@@ -172,37 +168,20 @@
// of this value is OS dependent.
int GetPriority() const;
-#if defined(OS_CHROMEOS)
- // Get the PID in its PID namespace.
- // If the process is not in a PID namespace or /proc/<pid>/status does not
- // report NSpid, kNullProcessId is returned.
- ProcessId GetPidInNamespace() const;
-#endif
-
private:
#if defined(OS_WIN)
win::ScopedHandle process_;
-#elif defined(OS_FUCHSIA)
- ScopedZxHandle process_;
#else
ProcessHandle process_;
#endif
-#if defined(OS_WIN) || defined(OS_FUCHSIA)
+#if defined(OS_WIN)
bool is_current_process_;
#endif
DISALLOW_COPY_AND_ASSIGN(Process);
};
-#if defined(OS_CHROMEOS)
-// Exposed for testing.
-// Given the contents of the /proc/<pid>/cgroup file, determine whether the
-// process is backgrounded or not.
-BASE_EXPORT bool IsProcessBackgroundedCGroup(
- const StringPiece& cgroup_contents);
-#endif // defined(OS_CHROMEOS)
-
} // namespace base
#endif // BASE_PROCESS_PROCESS_H_
diff --git a/base/process/process_handle.h b/base/process/process_handle.h
index bf9a720..8079e56 100644
--- a/base/process/process_handle.h
+++ b/base/process/process_handle.h
@@ -16,10 +16,6 @@
#include "base/win/windows_types.h"
#endif
-#if defined(OS_FUCHSIA)
-#include <zircon/types.h>
-#endif
-
namespace base {
// ProcessHandle is a platform specific type which represents the underlying OS
@@ -31,11 +27,6 @@
typedef HANDLE UserTokenHandle;
const ProcessHandle kNullProcessHandle = NULL;
const ProcessId kNullProcessId = 0;
-#elif defined(OS_FUCHSIA)
-typedef zx_handle_t ProcessHandle;
-typedef zx_koid_t ProcessId;
-const ProcessHandle kNullProcessHandle = ZX_HANDLE_INVALID;
-const ProcessId kNullProcessId = ZX_KOID_INVALID;
#elif defined(OS_POSIX)
// On POSIX, our ProcessHandle will just be the PID.
typedef pid_t ProcessHandle;
@@ -47,7 +38,7 @@
// To print ProcessIds portably use CrPRIdPid (based on PRIuS and friends from
// C99 and format_macros.h) like this:
// base::StringPrintf("PID is %" CrPRIdPid ".\n", pid);
-#if defined(OS_WIN) || defined(OS_FUCHSIA)
+#if defined(OS_WIN)
#define CrPRIdPid "ld"
#else
#define CrPRIdPid "d"
diff --git a/base/process/process_handle_linux.cc b/base/process/process_handle_linux.cc
index f921b42..43e9ce2 100644
--- a/base/process/process_handle_linux.cc
+++ b/base/process/process_handle_linux.cc
@@ -6,20 +6,12 @@
#include "base/files/file_util.h"
#include "base/process/internal_linux.h"
-#if defined(OS_AIX)
-#include "base/process/internal_aix.h"
-#endif
namespace base {
ProcessId GetParentProcessId(ProcessHandle process) {
ProcessId pid =
-#if defined(OS_AIX)
- internalAIX::ReadProcStatsAndGetFieldAsInt64(process,
- internalAIX::VM_PPID);
-#else
internal::ReadProcStatsAndGetFieldAsInt64(process, internal::VM_PPID);
-#endif
// TODO(zijiehe): Returns 0 if |process| does not have a parent process.
if (pid)
return pid;
diff --git a/base/process/process_iterator.cc b/base/process/process_iterator.cc
index bc8c0a8..792237b 100644
--- a/base/process/process_iterator.cc
+++ b/base/process/process_iterator.cc
@@ -39,17 +39,6 @@
const FilePath::StringType& executable_name,
const ProcessFilter* filter) : ProcessIterator(filter),
executable_name_(executable_name) {
-#if defined(OS_ANDROID)
- // On Android, the process name contains only the last 15 characters, which
- // is in file /proc/<pid>/stat, the string between open parenthesis and close
- // parenthesis. Please See ProcessIterator::CheckForNextProcess for details.
- // Now if the length of input process name is greater than 15, only save the
- // last 15 characters.
- if (executable_name_.size() > 15) {
- executable_name_ = FilePath::StringType(executable_name_,
- executable_name_.size() - 15, 15);
- }
-#endif
}
NamedProcessIterator::~NamedProcessIterator() = default;
diff --git a/base/process/process_iterator.h b/base/process/process_iterator.h
index 672d58b..e563567 100644
--- a/base/process/process_iterator.h
+++ b/base/process/process_iterator.h
@@ -24,8 +24,6 @@
#include <tlhelp32.h>
#elif defined(OS_MACOSX) || defined(OS_OPENBSD)
#include <sys/sysctl.h>
-#elif defined(OS_FREEBSD)
-#include <sys/user.h>
#elif defined(OS_POSIX) || defined(OS_FUCHSIA)
#include <dirent.h>
#endif
diff --git a/base/process/process_linux.cc b/base/process/process_linux.cc
index 173daf9..066c647 100644
--- a/base/process/process_linux.cc
+++ b/base/process/process_linux.cc
@@ -15,63 +15,13 @@
#include "base/synchronization/lock.h"
#include "build_config.h"
-// Not defined on AIX by default.
-#if defined(OS_AIX)
-#define RLIMIT_NICE 20
-#endif
-
namespace base {
namespace {
const int kForegroundPriority = 0;
-#if defined(OS_CHROMEOS)
-// We are more aggressive in our lowering of background process priority
-// for chromeos as we have much more control over other processes running
-// on the machine.
-//
-// TODO(davemoore) Refactor this by adding support for higher levels to set
-// the foregrounding / backgrounding process so we don't have to keep
-// chrome / chromeos specific logic here.
-const int kBackgroundPriority = 19;
-const char kControlPath[] = "/sys/fs/cgroup/cpu%s/cgroup.procs";
-const char kForeground[] = "/chrome_renderers/foreground";
-const char kBackground[] = "/chrome_renderers/background";
-const char kProcPath[] = "/proc/%d/cgroup";
-
-struct CGroups {
- // Check for cgroups files. ChromeOS supports these by default. It creates
- // a cgroup mount in /sys/fs/cgroup and then configures two cpu task groups,
- // one contains at most a single foreground renderer and the other contains
- // all background renderers. This allows us to limit the impact of background
- // renderers on foreground ones to a greater level than simple renicing.
- bool enabled;
- base::FilePath foreground_file;
- base::FilePath background_file;
-
- CGroups() {
- foreground_file =
- base::FilePath(base::StringPrintf(kControlPath, kForeground));
- background_file =
- base::FilePath(base::StringPrintf(kControlPath, kBackground));
- base::FileSystemType foreground_type;
- base::FileSystemType background_type;
- enabled =
- base::GetFileSystemType(foreground_file, &foreground_type) &&
- base::GetFileSystemType(background_file, &background_type) &&
- foreground_type == FILE_SYSTEM_CGROUP &&
- background_type == FILE_SYSTEM_CGROUP;
- }
-
- static CGroups& Get() {
- static auto& groups = *new CGroups;
- return groups;
- }
-};
-#else
const int kBackgroundPriority = 5;
-#endif // defined(OS_CHROMEOS)
bool CanReraisePriority() {
// We won't be able to raise the priority if we don't have the right rlimit.
@@ -85,11 +35,6 @@
// static
bool Process::CanBackgroundProcesses() {
-#if defined(OS_CHROMEOS)
- if (CGroups::Get().enabled)
- return true;
-#endif // defined(OS_CHROMEOS)
-
static const bool can_reraise_priority = CanReraisePriority();
return can_reraise_priority;
}
@@ -97,32 +42,12 @@
bool Process::IsProcessBackgrounded() const {
DCHECK(IsValid());
-#if defined(OS_CHROMEOS)
- if (CGroups::Get().enabled) {
- std::string proc;
- if (base::ReadFileToString(
- base::FilePath(StringPrintf(kProcPath, process_)), &proc)) {
- return IsProcessBackgroundedCGroup(proc);
- }
- return false;
- }
-#endif // defined(OS_CHROMEOS)
-
return GetPriority() == kBackgroundPriority;
}
bool Process::SetProcessBackgrounded(bool background) {
DCHECK(IsValid());
-#if defined(OS_CHROMEOS)
- if (CGroups::Get().enabled) {
- std::string pid = IntToString(process_);
- const base::FilePath file = background ? CGroups::Get().background_file
- : CGroups::Get().foreground_file;
- return base::WriteFile(file, pid.c_str(), pid.size()) > 0;
- }
-#endif // defined(OS_CHROMEOS)
-
if (!CanBackgroundProcesses())
return false;
@@ -132,65 +57,4 @@
return result == 0;
}
-#if defined(OS_CHROMEOS)
-bool IsProcessBackgroundedCGroup(const StringPiece& cgroup_contents) {
- // The process can be part of multiple control groups, and for each cgroup
- // hierarchy there's an entry in the file. We look for a control group
- // named "/chrome_renderers/background" to determine if the process is
- // backgrounded. crbug.com/548818.
- std::vector<StringPiece> lines = SplitStringPiece(
- cgroup_contents, "\n", TRIM_WHITESPACE, SPLIT_WANT_NONEMPTY);
- for (const auto& line : lines) {
- std::vector<StringPiece> fields =
- SplitStringPiece(line, ":", TRIM_WHITESPACE, SPLIT_WANT_ALL);
- if (fields.size() != 3U) {
- NOTREACHED();
- continue;
- }
- if (fields[2] == kBackground)
- return true;
- }
-
- return false;
-}
-#endif // defined(OS_CHROMEOS)
-
-#if defined(OS_CHROMEOS)
-// Reads /proc/<pid>/status and returns the PID in its PID namespace.
-// If the process is not in a PID namespace or /proc/<pid>/status does not
-// report NSpid, kNullProcessId is returned.
-ProcessId Process::GetPidInNamespace() const {
- std::string status;
- {
- FilePath status_file =
- FilePath("/proc").Append(IntToString(process_)).Append("status");
- if (!ReadFileToString(status_file, &status)) {
- return kNullProcessId;
- }
- }
-
- StringPairs pairs;
- SplitStringIntoKeyValuePairs(status, ':', '\n', &pairs);
- for (const auto& pair : pairs) {
- const std::string& key = pair.first;
- const std::string& value_str = pair.second;
- if (key == "NSpid") {
- std::vector<StringPiece> split_value_str = SplitStringPiece(
- value_str, "\t", TRIM_WHITESPACE, SPLIT_WANT_NONEMPTY);
- if (split_value_str.size() <= 1) {
- return kNullProcessId;
- }
- int value;
- // The last value in the list is the PID in the namespace.
- if (!StringToInt(split_value_str.back(), &value)) {
- NOTREACHED();
- return kNullProcessId;
- }
- return value;
- }
- }
- return kNullProcessId;
-}
-#endif // defined(OS_CHROMEOS)
-
} // namespace base
diff --git a/base/rand_util_posix.cc b/base/rand_util_posix.cc
index 4dbb35d..13ecaf5 100644
--- a/base/rand_util_posix.cc
+++ b/base/rand_util_posix.cc
@@ -22,17 +22,9 @@
// we can use LazyInstance to handle opening it on the first access.
class URandomFd {
public:
-#if defined(OS_AIX)
- // AIX has no 64-bit support for open falgs such as -
- // O_CLOEXEC, O_NOFOLLOW and O_TTY_INIT
- URandomFd() : fd_(HANDLE_EINTR(open("/dev/urandom", O_RDONLY))) {
- DCHECK_GE(fd_, 0) << "Cannot open /dev/urandom: " << errno;
- }
-#else
URandomFd() : fd_(HANDLE_EINTR(open("/dev/urandom", O_RDONLY | O_CLOEXEC))) {
DCHECK_GE(fd_, 0) << "Cannot open /dev/urandom: " << errno;
}
-#endif
~URandomFd() { close(fd_); }
diff --git a/base/synchronization/condition_variable_posix.cc b/base/synchronization/condition_variable_posix.cc
index 7d6824d..229b529 100644
--- a/base/synchronization/condition_variable_posix.cc
+++ b/base/synchronization/condition_variable_posix.cc
@@ -75,18 +75,10 @@
#else
// The timeout argument to pthread_cond_timedwait is in absolute time.
struct timespec absolute_time;
-#if defined(OS_NACL)
- // See comment in constructor for why this is different in NaCl.
- struct timeval now;
- gettimeofday(&now, NULL);
- absolute_time.tv_sec = now.tv_sec;
- absolute_time.tv_nsec = now.tv_usec * Time::kNanosecondsPerMicrosecond;
-#else
struct timespec now;
clock_gettime(CLOCK_MONOTONIC, &now);
absolute_time.tv_sec = now.tv_sec;
absolute_time.tv_nsec = now.tv_nsec;
-#endif
absolute_time.tv_sec += relative_time.tv_sec;
absolute_time.tv_nsec += relative_time.tv_nsec;
diff --git a/base/threading/platform_thread.h b/base/threading/platform_thread.h
index 7668c1c..c249bc2 100644
--- a/base/threading/platform_thread.h
+++ b/base/threading/platform_thread.h
@@ -18,8 +18,6 @@
#if defined(OS_WIN)
#include "base/win/windows_types.h"
-#elif defined(OS_FUCHSIA)
-#include <zircon/types.h>
#elif defined(OS_MACOSX)
#include <mach/mach_types.h>
#elif defined(OS_POSIX)
@@ -32,8 +30,6 @@
// Used for logging. Always an integer value.
#if defined(OS_WIN)
typedef DWORD PlatformThreadId;
-#elif defined(OS_FUCHSIA)
-typedef zx_handle_t PlatformThreadId;
#elif defined(OS_MACOSX)
typedef mach_port_t PlatformThreadId;
#elif defined(OS_POSIX)
diff --git a/base/threading/platform_thread_posix.cc b/base/threading/platform_thread_posix.cc
index ce47a30..32a052a 100644
--- a/base/threading/platform_thread_posix.cc
+++ b/base/threading/platform_thread_posix.cc
@@ -22,11 +22,7 @@
#include <sys/syscall.h>
#endif
-#if defined(OS_FUCHSIA)
-#include <zircon/process.h>
-#else
#include <sys/resource.h>
-#endif
namespace base {
@@ -114,21 +110,8 @@
return pthread_mach_thread_np(pthread_self());
#elif defined(OS_LINUX)
return syscall(__NR_gettid);
-#elif defined(OS_ANDROID)
- return gettid();
-#elif defined(OS_FUCHSIA)
- return zx_thread_self();
-#elif defined(OS_SOLARIS) || defined(OS_QNX)
- return pthread_self();
-#elif defined(OS_NACL) && defined(__GLIBC__)
- return pthread_self();
-#elif defined(OS_NACL) && !defined(__GLIBC__)
- // Pointers are 32-bits in NaCl.
- return reinterpret_cast<int32_t>(pthread_self());
-#elif defined(OS_POSIX) && defined(OS_AIX)
- return pthread_self();
-#elif defined(OS_POSIX) && !defined(OS_AIX)
- return reinterpret_cast<int64_t>(pthread_self());
+#else
+#error
#endif
}
diff --git a/base/time/time.h b/base/time/time.h
index a760c55..936c746 100644
--- a/base/time/time.h
+++ b/base/time/time.h
@@ -63,21 +63,13 @@
#include "base/numerics/safe_math.h"
#include "build_config.h"
-#if defined(OS_FUCHSIA)
-#include <zircon/types.h>
-#endif
-
#if defined(OS_MACOSX)
#include <CoreFoundation/CoreFoundation.h>
// Avoid Mac system header macro leak.
#undef TYPE_BOOL
#endif
-#if defined(OS_ANDROID)
-#include <jni.h>
-#endif
-
-#if defined(OS_POSIX) || defined(OS_FUCHSIA)
+#if defined(OS_POSIX)
#include <unistd.h>
#include <sys/time.h>
#endif
@@ -473,18 +465,9 @@
#if defined(OS_WIN)
static constexpr int kExplodedMinYear = 1601;
static constexpr int kExplodedMaxYear = 30827;
-#elif defined(OS_IOS)
- static constexpr int kExplodedMinYear = std::numeric_limits<int>::min();
- static constexpr int kExplodedMaxYear = std::numeric_limits<int>::max();
#elif defined(OS_MACOSX)
static constexpr int kExplodedMinYear = 1902;
static constexpr int kExplodedMaxYear = std::numeric_limits<int>::max();
-#elif defined(OS_ANDROID)
- // Though we use 64-bit time APIs on both 32 and 64 bit Android, some OS
- // versions like KitKat (ARM but not x86 emulator) can't handle some early
- // dates (e.g. before 1170). So we set min conservatively here.
- static constexpr int kExplodedMinYear = 1902;
- static constexpr int kExplodedMaxYear = std::numeric_limits<int>::max();
#else
static constexpr int kExplodedMinYear =
(sizeof(time_t) == 4 ? 1902 : std::numeric_limits<int>::min());
@@ -840,12 +823,6 @@
// considered to have an ambiguous ordering.)
static bool IsConsistentAcrossProcesses() WARN_UNUSED_RESULT;
-#if defined(OS_FUCHSIA)
- // Converts between TimeTicks and an ZX_CLOCK_MONOTONIC zx_time_t value.
- static TimeTicks FromZxTime(zx_time_t nanos_since_boot);
- zx_time_t ToZxTime() const;
-#endif
-
#if defined(OS_WIN)
// Translates an absolute QPC timestamp into a TimeTicks value. The returned
// value has the same origin as Now(). Do NOT attempt to use this if
@@ -857,14 +834,6 @@
static TimeTicks FromMachAbsoluteTime(uint64_t mach_absolute_time);
#endif // defined(OS_MACOSX) && !defined(OS_IOS)
-#if defined(OS_ANDROID)
- // Converts to TimeTicks the value obtained from SystemClock.uptimeMillis().
- // Note: this convertion may be non-monotonic in relation to previously
- // obtained TimeTicks::Now() values because of the truncation (to
- // milliseconds) performed by uptimeMillis().
- static TimeTicks FromUptimeMillis(jlong uptime_millis_value);
-#endif
-
// Get an estimate of the TimeTick value at the time of the UnixEpoch. Because
// Time and TimeTicks respond differently to user-set time and NTP
// adjustments, this number is only an estimate. Nevertheless, this can be
diff --git a/base/time/time_exploded_posix.cc b/base/time/time_exploded_posix.cc
index 26eaed9..ae1b4df 100644
--- a/base/time/time_exploded_posix.cc
+++ b/base/time/time_exploded_posix.cc
@@ -34,68 +34,6 @@
// Define a system-specific SysTime that wraps either to a time_t or
// a time64_t depending on the host system, and associated convertion.
// See crbug.com/162007
-#if defined(OS_ANDROID) && !defined(__LP64__)
-typedef time64_t SysTime;
-
-SysTime SysTimeFromTimeStruct(struct tm* timestruct, bool is_local) {
- base::AutoLock locked(*GetSysTimeToTimeStructLock());
- if (is_local)
- return mktime64(timestruct);
- else
- return timegm64(timestruct);
-}
-
-void SysTimeToTimeStruct(SysTime t, struct tm* timestruct, bool is_local) {
- base::AutoLock locked(*GetSysTimeToTimeStructLock());
- if (is_local)
- localtime64_r(&t, timestruct);
- else
- gmtime64_r(&t, timestruct);
-}
-
-#elif defined(OS_AIX)
-
-// The function timegm is not available on AIX.
-time_t aix_timegm(struct tm* tm) {
- time_t ret;
- char* tz;
-
- tz = getenv("TZ");
- if (tz) {
- tz = strdup(tz);
- }
- setenv("TZ", "GMT0", 1);
- tzset();
- ret = mktime(tm);
- if (tz) {
- setenv("TZ", tz, 1);
- free(tz);
- } else {
- unsetenv("TZ");
- }
- tzset();
- return ret;
-}
-
-typedef time_t SysTime;
-
-SysTime SysTimeFromTimeStruct(struct tm* timestruct, bool is_local) {
- base::AutoLock locked(*GetSysTimeToTimeStructLock());
- if (is_local)
- return mktime(timestruct);
- else
- return aix_timegm(timestruct);
-}
-
-void SysTimeToTimeStruct(SysTime t, struct tm* timestruct, bool is_local) {
- base::AutoLock locked(*GetSysTimeToTimeStructLock());
- if (is_local)
- localtime_r(&t, timestruct);
- else
- gmtime_r(&t, timestruct);
-}
-
-#else // OS_ANDROID && !__LP64__
typedef time_t SysTime;
SysTime SysTimeFromTimeStruct(struct tm* timestruct, bool is_local) {
@@ -113,7 +51,6 @@
else
gmtime_r(&t, timestruct);
}
-#endif // OS_ANDROID
} // namespace
diff --git a/src/build_config.h b/src/build_config.h
index 89d0ff7..addd7cf 100644
--- a/src/build_config.h
+++ b/src/build_config.h
@@ -179,8 +179,6 @@
// Type detection for wchar_t.
#if defined(OS_WIN)
#define WCHAR_T_IS_UTF16
-#elif defined(OS_FUCHSIA)
-#define WCHAR_T_IS_UTF32
#elif defined(OS_POSIX) && defined(COMPILER_GCC) && defined(__WCHAR_MAX__) && \
(__WCHAR_MAX__ == 0x7fffffff || __WCHAR_MAX__ == 0xffffffff)
#define WCHAR_T_IS_UTF32
@@ -195,13 +193,4 @@
#error Please add support for your compiler in build_config.h
#endif
-#if defined(OS_ANDROID)
-// The compiler thinks std::string::const_iterator and "const char*" are
-// equivalent types.
-#define STD_STRING_ITERATOR_IS_CHAR_POINTER
-// The compiler thinks base::string16::const_iterator and "char16*" are
-// equivalent types.
-#define BASE_STRING16_ITERATOR_IS_CHAR16_POINTER
-#endif
-
#endif // BUILD_BUILD_CONFIG_H_
diff --git a/tools/gn/args.cc b/tools/gn/args.cc
index c7cd60f..f861dd1 100644
--- a/tools/gn/args.cc
+++ b/tools/gn/args.cc
@@ -302,14 +302,6 @@
os = "mac";
#elif defined(OS_LINUX)
os = "linux";
-#elif defined(OS_ANDROID)
- os = "android";
-#elif defined(OS_NETBSD)
- os = "netbsd";
-#elif defined(OS_AIX)
- os = "aix";
-#elif defined(OS_FUCHSIA)
- os = "fuchsia";
#else
#error Unknown OS type.
#endif