* Fix some widely-reported crashes: [0,1] - settings page now displays - GMail works * Mark BROKEN on FreeBSD 8 [2] PR: 200601 [0] PR: 200646 [2] Submitted by: protocelt <protoceltt@gmail.com> [0] Submitted by: truckman [2] Obtained from: https://github.com/gliaskos/freebsd-chromium [1] (pull requests 17-20) MFH: 2015Q2 Security: http://vuxml.freebsd.org/freebsd/d46ed7b8-1912-11e5-9fdf-00262d5ed8ee.html
39 lines
1.1 KiB
C++
39 lines
1.1 KiB
C++
--- base/process/process_info_linux.cc.orig 2015-06-20 15:12:38
|
|
+++ base/process/process_info_linux.cc
|
|
@@ -10,10 +10,28 @@
|
|
#include "base/process/process_handle.h"
|
|
#include "base/time/time.h"
|
|
|
|
+#if defined(__FreeBSD__) || defined(__DragonFly__)
|
|
+#include <sys/types.h>
|
|
+#include <sys/sysctl.h>
|
|
+#include <sys/user.h>
|
|
+#endif
|
|
+
|
|
namespace base {
|
|
|
|
//static
|
|
const Time CurrentProcessInfo::CreationTime() {
|
|
+#if defined(__FreeBSD__) || defined(__DragonFly__)
|
|
+ int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid() };
|
|
+ struct kinfo_proc proc;
|
|
+ size_t len = sizeof(struct kinfo_proc);
|
|
+ if (sysctl(mib, arraysize(mib), &proc, &len, NULL, 0) < 0)
|
|
+ return Time();
|
|
+#if defined(__DragonFly__)
|
|
+ return Time::FromTimeVal(proc.kp_start);
|
|
+#else
|
|
+ return Time::FromTimeVal(proc.ki_start);
|
|
+#endif
|
|
+#else
|
|
ProcessHandle pid = GetCurrentProcessHandle();
|
|
int64 start_ticks =
|
|
internal::ReadProcStatsAndGetFieldAsInt64(pid, internal::VM_STARTTIME);
|
|
@@ -22,6 +40,7 @@
|
|
Time boot_time = internal::GetBootTime();
|
|
DCHECK(!boot_time.is_null());
|
|
return Time(boot_time + start_offset);
|
|
+#endif
|
|
}
|
|
|
|
} // namespace base
|