Update to 17.0.963.46

Obtained from:	Chromium Chruetertee development repository
Security:	http://www.vuxml.org/freebsd/fe1976c2-5317-11e1-9e99-00262d5ed8ee.html
This commit is contained in:
Rene Ladan 2012-02-09 12:53:00 +00:00
parent b6bea61efb
commit a71930e2d9
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=290785
56 changed files with 401 additions and 1510 deletions

View file

@ -7,7 +7,7 @@
PORTNAME= chromium
DISTVERSIONPREFIX= courgette-redacted-
DISTVERSION= 16.0.912.77
DISTVERSION= 17.0.963.46
CATEGORIES= www
MASTER_SITES= http://download.goodking.org/downloads/ \
ftp://rene-ladan.nl/pub/distfiles/ \
@ -37,7 +37,6 @@ LIB_DEPENDS= execinfo.1:${PORTSDIR}/devel/libexecinfo \
gnome-keyring.0:${PORTSDIR}/security/libgnome-keyring \
cups.2:${PORTSDIR}/print/cups-client \
event-1.4:${PORTSDIR}/devel/libevent \
vpx:${PORTSDIR}/multimedia/libvpx \
tcmalloc.2:${PORTSDIR}/devel/google-perftools
RUN_DEPENDS= ${LOCALBASE}/lib/alsa-lib/libasound_module_pcm_oss.so:${PORTSDIR}/audio/alsa-plugins \
@ -61,7 +60,6 @@ ALL_TARGET= chrome
# See build/common.gypi for all the available variables.
GYP_DEFINES+= use_cups=1 \
use_system_vpx=1 \
use_system_yasm=1 \
use_system_libxml=1 \
use_system_ffmpeg=0 \
@ -181,17 +179,10 @@ post-patch:
${WRKSRC}/third_party/WebKit/Source/WebCore/css/makeprop.pl \
${WRKSRC}/third_party/WebKit/Source/WebCore/css/makevalues.pl \
${WRKSRC}/third_party/WebKit/Source/WebCore/make-hash-tools.pl
# http://code.google.com/p/chromium/issues/detail?id=96629
@${REINPLACE_CMD} -e "s|'type': 'settings',|'type': 'none',|" \
${WRKSRC}/third_party/icu/icu.gyp \
${WRKSRC}/third_party/flac/flac.gyp \
${WRKSRC}/third_party/speex/speex.gyp \
${WRKSRC}/third_party/sqlite/sqlite.gyp \
${WRKSRC}/third_party/harfbuzz/harfbuzz.gyp \
${WRKSRC}/third_party/libevent/libevent.gyp \
${WRKSRC}/third_party/libjpeg_turbo/libjpeg.gyp \
${WRKSRC}/tools/gyp/test/settings/settings.gyp \
${WRKSRC}/v8/tools/gyp/v8.gyp
pre-configure:
@${CP} -R ${WRKSRC}/third_party/libvpx/source/config/linux \
${WRKSRC}/third_party/libvpx/source/config/freebsd
do-configure:
cd ${WRKSRC} && \

View file

@ -1,2 +1,2 @@
SHA256 (chromium-courgette-redacted-16.0.912.77.tar.xz) = e3775c055d4a7b073a893f1cc3c53989566b126284055f143c8a110291111e03
SIZE (chromium-courgette-redacted-16.0.912.77.tar.xz) = 122857800
SHA256 (chromium-courgette-redacted-17.0.963.46.tar.xz) = d938578436866131bccad1378e7e475f40be50391c4f304d756c5686e784ba10
SIZE (chromium-courgette-redacted-17.0.963.46.tar.xz) = 134085652

View file

@ -1,60 +0,0 @@
--- base/base.gypi.orig 2011-11-10 16:01:46.000000000 +0200
+++ base/base.gypi 2011-11-28 21:48:00.000000000 +0200
@@ -115,6 +115,7 @@
'files/file_path_watcher_mac.cc',
'files/file_path_watcher_stub.cc',
'files/file_path_watcher_win.cc',
+ 'files/file_path_watcher_freebsd.cc',
'float_util.h',
'format_macros.h',
'global_descriptors_posix.cc',
@@ -216,6 +217,7 @@
'process_posix.cc',
'process_util.cc',
'process_util.h',
+ 'process_util_freebsd.cc',
'process_util_linux.cc',
'process_util_mac.mm',
'process_util_openbsd.cc',
@@ -425,7 +427,7 @@
'sources!' : [ 'message_pump_gtk.cc', ],
'sources/' : [ [ 'include', 'message_pump_x.cc', ] ],
}],
- [ 'OS != "linux"', {
+ [ 'OS != "linux" and OS != "freebsd"', {
'sources!': [
# Not automatically excluded by the *linux.cc rules.
'linux_util.cc',
@@ -498,6 +500,18 @@
'files/file_path_watcher_stub.cc',
],
}],
+ [ 'OS == "freebsd" and os_ver >= 801000', {
+ 'sources!': [
+ 'files/file_path_watcher_stub.cc',
+ 'files/file_path_watcher_linux.cc',
+ ],
+ }],
+ [ 'OS == "freebsd" and os_ver < 801000', {
+ 'sources!': [
+ 'files/file_path_watcher_linux.cc',
+ 'files/file_path_watcher_freebsd.cc',
+ ],
+ }],
[ 'OS == "openbsd"', {
'sources/': [
['include', '^base_paths_linux\\.cc$'],
@@ -600,6 +614,13 @@
],
}],
[ 'OS == "freebsd" or OS == "openbsd"', {
+ # XXX rene: maybe this chunk should go one day
+ 'sources!': [
+ 'file_util_linux.cc',
+ 'process_linux.cc',
+ 'process_util_linux.cc',
+ 'files/file_path_watcher_linux.cc',
+ ],
'include_dirs': [
'/usr/local/include',
],

View file

@ -1,45 +0,0 @@
--- base/debug/debugger_posix.cc.orig 2011-07-28 11:01:28.000000000 +0300
+++ base/debug/debugger_posix.cc 2011-08-28 20:25:41.000000000 +0300
@@ -13,6 +13,7 @@
#include <sys/param.h>
#include <sys/stat.h>
#include <sys/types.h>
+#include <sys/user.h>
#include <unistd.h>
#include <string>
@@ -57,7 +58,7 @@
return false;
}
-#if defined(OS_MACOSX)
+#if defined(OS_MACOSX) || defined(OS_FREEBSD)
// Based on Apple's recommended method as described in
// http://developer.apple.com/qa/qa2004/qa1361.html
@@ -95,7 +96,11 @@
// This process is being debugged if the P_TRACED flag is set.
is_set = true;
+#if defined(OS_FREEBSD)
+ being_debugged = (info.ki_flag & P_TRACED) != 0;
+#else
being_debugged = (info.kp_proc.p_flag & P_TRACED) != 0;
+#endif
return being_debugged;
}
@@ -145,12 +150,11 @@
#else
bool BeingDebugged() {
- // TODO(benl): can we determine this under FreeBSD?
NOTIMPLEMENTED();
return false;
}
-#endif // defined(OS_FREEBSD)
+#endif
// We want to break into the debugger in Debug mode, and cause a crash dump in
// Release mode. Breakpad behaves as follows:

View file

@ -1,14 +0,0 @@
--- ./base/file_util_posix.cc.orig 2010-12-16 02:11:49.000000000 +0100
+++ ./base/file_util_posix.cc 2010-12-20 20:15:07.000000000 +0100
@@ -815,7 +815,11 @@
}
bool GetShmemTempDir(FilePath* path) {
+#if defined(OS_LINUX)
*path = FilePath("/dev/shm");
+#else
+ *path = FilePath("/tmp");
+#endif
return true;
}

View file

@ -1,476 +0,0 @@
--- /dev/null 2011-10-09 00:44:00.000000000 +0300
+++ base/files/file_path_watcher_freebsd.cc 2011-10-09 00:49:08.473941731 +0300
@@ -0,0 +1,473 @@
+// Copyright (c) 2011 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/files/file_path_watcher.h"
+
+#include <fcntl.h>
+#include <sys/event.h>
+#include <sys/param.h>
+
+#include <vector>
+
+#include "base/file_util.h"
+#include "base/message_loop.h"
+#include "base/message_loop_proxy.h"
+#include "base/stringprintf.h"
+
+namespace base {
+namespace files {
+
+namespace {
+
+class FilePathWatcherImpl : public FilePathWatcher::PlatformDelegate,
+ public MessageLoopForIO::Watcher,
+ public MessageLoop::DestructionObserver {
+ public:
+ FilePathWatcherImpl() : kqueue_(-1) {}
+ virtual ~FilePathWatcherImpl() {}
+
+ // MessageLoopForIO::Watcher overrides.
+ virtual void OnFileCanReadWithoutBlocking(int fd) OVERRIDE;
+ virtual void OnFileCanWriteWithoutBlocking(int fd) OVERRIDE;
+
+ // MessageLoop::DestructionObserver overrides.
+ virtual void WillDestroyCurrentMessageLoop() OVERRIDE;
+
+ // FilePathWatcher::PlatformDelegate overrides.
+ virtual bool Watch(const FilePath& path,
+ FilePathWatcher::Delegate* delegate) OVERRIDE;
+ virtual void Cancel() OVERRIDE;
+
+ private:
+ class EventData {
+ public:
+ EventData(const FilePath& path, const FilePath::StringType& subdir)
+ : path_(path), subdir_(subdir) { }
+ FilePath path_; // Full path to this item.
+ FilePath::StringType subdir_; // Path to any sub item.
+ };
+ typedef std::vector<struct kevent> EventVector;
+
+ // Can only be called on |io_message_loop_|'s thread.
+ virtual void CancelOnMessageLoopThread() OVERRIDE;
+
+ // Returns true if the kevent values are error free.
+ bool AreKeventValuesValid(struct kevent* kevents, int count);
+
+ // Respond to a change of attributes of the path component represented by
+ // |event|. Sets |target_file_affected| to true if |target_| is affected.
+ // Sets |update_watches| to true if |events_| need to be updated.
+ void HandleAttributesChange(const EventVector::iterator& event,
+ bool* target_file_affected,
+ bool* update_watches);
+
+ // Respond to a move of deletion of the path component represented by
+ // |event|. Sets |target_file_affected| to true if |target_| is affected.
+ // Sets |update_watches| to true if |events_| need to be updated.
+ void HandleDeleteOrMoveChange(const EventVector::iterator& event,
+ bool* target_file_affected,
+ bool* update_watches);
+
+ // Respond to a creation of an item in the path component represented by
+ // |event|. Sets |target_file_affected| to true if |target_| is affected.
+ // Sets |update_watches| to true if |events_| need to be updated.
+ void HandleCreateItemChange(const EventVector::iterator& event,
+ bool* target_file_affected,
+ bool* update_watches);
+
+ // Update |events_| with the current status of the system.
+ // Sets |target_file_affected| to true if |target_| is affected.
+ // Returns false if an error occurs.
+ bool UpdateWatches(bool* target_file_affected);
+
+ // Fills |events| with one kevent per component in |path|.
+ // Returns the number of valid events created where a valid event is
+ // defined as one that has a ident (file descriptor) field != -1.
+ static int EventsForPath(FilePath path, EventVector *events);
+
+ // Release a kevent generated by EventsForPath.
+ static void ReleaseEvent(struct kevent& event);
+
+ // Returns a file descriptor that will not block the system from deleting
+ // the file it references.
+ static int FileDescriptorForPath(const FilePath& path);
+
+ // Closes |*fd| and sets |*fd| to -1.
+ static void CloseFileDescriptor(int* fd);
+
+ // Returns true if kevent has open file descriptor.
+ static bool IsKeventFileDescriptorOpen(const struct kevent& event) {
+ return event.ident != static_cast<uintptr_t>(-1);
+ }
+
+ static EventData* EventDataForKevent(const struct kevent& event) {
+ return reinterpret_cast<EventData*>(event.udata);
+ }
+
+ EventVector events_;
+ scoped_refptr<base::MessageLoopProxy> io_message_loop_;
+ MessageLoopForIO::FileDescriptorWatcher kqueue_watcher_;
+ scoped_refptr<FilePathWatcher::Delegate> delegate_;
+ FilePath target_;
+ int kqueue_;
+
+ DISALLOW_COPY_AND_ASSIGN(FilePathWatcherImpl);
+};
+
+void FilePathWatcherImpl::ReleaseEvent(struct kevent& event) {
+ CloseFileDescriptor(reinterpret_cast<int*>(&event.ident));
+ EventData* entry = EventDataForKevent(event);
+ delete entry;
+ event.udata = NULL;
+}
+
+int FilePathWatcherImpl::EventsForPath(FilePath path, EventVector* events) {
+ DCHECK(MessageLoopForIO::current());
+ // Make sure that we are working with a clean slate.
+ DCHECK(events->empty());
+
+ std::vector<FilePath::StringType> components;
+ path.GetComponents(&components);
+
+ if (components.size() < 1) {
+ return -1;
+ }
+
+ int last_existing_entry = 0;
+ FilePath built_path;
+ bool path_still_exists = true;
+ for(std::vector<FilePath::StringType>::iterator i = components.begin();
+ i != components.end(); ++i) {
+ if (i == components.begin()) {
+ built_path = FilePath(*i);
+ } else {
+ built_path = built_path.Append(*i);
+ }
+ int fd = -1;
+ if (path_still_exists) {
+ fd = FileDescriptorForPath(built_path);
+ if (fd == -1) {
+ path_still_exists = false;
+ } else {
+ ++last_existing_entry;
+ }
+ }
+ FilePath::StringType subdir = (i != (components.end() - 1)) ? *(i + 1) : "";
+ EventData* data = new EventData(built_path, subdir);
+ struct kevent event;
+ EV_SET(&event, fd, EVFILT_VNODE, (EV_ADD | EV_CLEAR | EV_RECEIPT),
+ (NOTE_DELETE | NOTE_WRITE | NOTE_ATTRIB |
+ NOTE_RENAME | NOTE_REVOKE | NOTE_EXTEND), 0, data);
+ events->push_back(event);
+ }
+ return last_existing_entry;
+}
+
+int FilePathWatcherImpl::FileDescriptorForPath(const FilePath& path) {
+ return HANDLE_EINTR(open(path.value().c_str(), O_RDONLY));
+}
+
+void FilePathWatcherImpl::CloseFileDescriptor(int *fd) {
+ if (*fd == -1) {
+ return;
+ }
+
+ if (HANDLE_EINTR(close(*fd)) != 0) {
+ PLOG(ERROR) << "close";
+ }
+ *fd = -1;
+}
+
+bool FilePathWatcherImpl::AreKeventValuesValid(struct kevent* kevents,
+ int count) {
+ if (count < 0) {
+ PLOG(ERROR) << "kevent";
+ return false;
+ }
+ bool valid = true;
+ for (int i = 0; i < count; ++i) {
+ if (kevents[i].flags & EV_ERROR && kevents[i].data) {
+ // Find the kevent in |events_| that matches the kevent with the error.
+ EventVector::iterator event = events_.begin();
+ for (; event != events_.end(); ++event) {
+ if (event->ident == kevents[i].ident) {
+ break;
+ }
+ }
+ std::string path_name;
+ if (event != events_.end()) {
+ EventData* event_data = EventDataForKevent(*event);
+ if (event_data != NULL) {
+ path_name = event_data->path_.value();
+ }
+ }
+ if (path_name.empty()) {
+ path_name = base::StringPrintf(
+ "fd %d", *reinterpret_cast<int*>(&kevents[i].ident));
+ }
+ LOG(ERROR) << "Error: " << kevents[i].data << " for " << path_name;
+ valid = false;
+ }
+ }
+ return valid;
+}
+
+void FilePathWatcherImpl::HandleAttributesChange(
+ const EventVector::iterator& event,
+ bool* target_file_affected,
+ bool* update_watches) {
+ EventVector::iterator next_event = event + 1;
+ EventData* next_event_data = EventDataForKevent(*next_event);
+ // Check to see if the next item in path is still accessible.
+ int have_access = FileDescriptorForPath(next_event_data->path_);
+ if (have_access == -1) {
+ *target_file_affected = true;
+ *update_watches = true;
+ EventVector::iterator local_event(event);
+ for (; local_event != events_.end(); ++local_event) {
+ // Close all nodes from the event down. This has the side effect of
+ // potentially rendering other events in |updates| invalid.
+ // There is no need to remove the events from |kqueue_| because this
+ // happens as a side effect of closing the file descriptor.
+ CloseFileDescriptor(reinterpret_cast<int*>(&local_event->ident));
+ }
+ } else {
+ CloseFileDescriptor(&have_access);
+ }
+}
+
+void FilePathWatcherImpl::HandleDeleteOrMoveChange(
+ const EventVector::iterator& event,
+ bool* target_file_affected,
+ bool* update_watches) {
+ *target_file_affected = true;
+ *update_watches = true;
+ EventVector::iterator local_event(event);
+ for (; local_event != events_.end(); ++local_event) {
+ // Close all nodes from the event down. This has the side effect of
+ // potentially rendering other events in |updates| invalid.
+ // There is no need to remove the events from |kqueue_| because this
+ // happens as a side effect of closing the file descriptor.
+ CloseFileDescriptor(reinterpret_cast<int*>(&local_event->ident));
+ }
+}
+
+void FilePathWatcherImpl::HandleCreateItemChange(
+ const EventVector::iterator& event,
+ bool* target_file_affected,
+ bool* update_watches) {
+ // Get the next item in the path.
+ EventVector::iterator next_event = event + 1;
+ EventData* next_event_data = EventDataForKevent(*next_event);
+
+ // Check to see if it already has a valid file descriptor.
+ if (!IsKeventFileDescriptorOpen(*next_event)) {
+ // If not, attempt to open a file descriptor for it.
+ next_event->ident = FileDescriptorForPath(next_event_data->path_);
+ if (IsKeventFileDescriptorOpen(*next_event)) {
+ *update_watches = true;
+ if (next_event_data->subdir_.empty()) {
+ *target_file_affected = true;
+ }
+ }
+ }
+}
+
+bool FilePathWatcherImpl::UpdateWatches(bool* target_file_affected) {
+ // Iterate over events adding kevents for items that exist to the kqueue.
+ // Then check to see if new components in the path have been created.
+ // Repeat until no new components in the path are detected.
+ // This is to get around races in directory creation in a watched path.
+ bool update_watches = true;
+ while (update_watches) {
+ size_t valid;
+ for (valid = 0; valid < events_.size(); ++valid) {
+ if (!IsKeventFileDescriptorOpen(events_[valid])) {
+ break;
+ }
+ }
+ if (valid == 0) {
+ // The root of the file path is inaccessible?
+ return false;
+ }
+
+ EventVector updates(valid);
+ int count = HANDLE_EINTR(kevent(kqueue_, &events_[0], valid, &updates[0],
+ valid, NULL));
+ if (!AreKeventValuesValid(&updates[0], count)) {
+ return false;
+ }
+ update_watches = false;
+ for (; valid < events_.size(); ++valid) {
+ EventData* event_data = EventDataForKevent(events_[valid]);
+ events_[valid].ident = FileDescriptorForPath(event_data->path_);
+ if (IsKeventFileDescriptorOpen(events_[valid])) {
+ update_watches = true;
+ if (event_data->subdir_.empty()) {
+ *target_file_affected = true;
+ }
+ } else {
+ break;
+ }
+ }
+ }
+ return true;
+}
+
+void FilePathWatcherImpl::OnFileCanReadWithoutBlocking(int fd) {
+ DCHECK(MessageLoopForIO::current());
+ CHECK_EQ(fd, kqueue_);
+ CHECK(events_.size());
+
+ // Request the file system update notifications that have occurred and return
+ // them in |updates|. |count| will contain the number of updates that have
+ // occurred.
+ EventVector updates(events_.size());
+ struct timespec timeout = {0, 0};
+ int count = HANDLE_EINTR(kevent(kqueue_, NULL, 0, &updates[0], updates.size(),
+ &timeout));
+
+ // Error values are stored within updates, so check to make sure that no
+ // errors occurred.
+ if (!AreKeventValuesValid(&updates[0], count)) {
+ delegate_->OnFilePathError(target_);
+ Cancel();
+ return;
+ }
+
+ bool update_watches = false;
+ bool send_notification = false;
+
+ // Iterate through each of the updates and react to them.
+ for (int i = 0; i < count; ++i) {
+ // Find our kevent record that matches the update notification.
+ EventVector::iterator event = events_.begin();
+ for (; event != events_.end(); ++event) {
+ if (!IsKeventFileDescriptorOpen(*event) ||
+ event->ident == updates[i].ident) {
+ break;
+ }
+ }
+ if (!IsKeventFileDescriptorOpen(*event) || event == events_.end()) {
+ // The event may no longer exist in |events_| because another event
+ // modified |events_| in such a way to make it invalid. For example if
+ // the path is /foo/bar/bam and foo is deleted, NOTE_DELETE events for
+ // foo, bar and bam will be sent. If foo is processed first, then
+ // the file descriptors for bar and bam will already be closed and set
+ // to -1 before they get a chance to be processed.
+ continue;
+ }
+
+ EventData* event_data = EventDataForKevent(*event);
+
+ // If the subdir is empty, this is the last item on the path and is the
+ // target file.
+ bool target_file_affected = event_data->subdir_.empty();
+ if ((updates[i].fflags & NOTE_ATTRIB) && !target_file_affected) {
+ HandleAttributesChange(event, &target_file_affected, &update_watches);
+ }
+ if (updates[i].fflags & (NOTE_DELETE | NOTE_REVOKE | NOTE_RENAME)) {
+ HandleDeleteOrMoveChange(event, &target_file_affected, &update_watches);
+ }
+ if ((updates[i].fflags & NOTE_WRITE) && !target_file_affected) {
+ HandleCreateItemChange(event, &target_file_affected, &update_watches);
+ }
+ send_notification |= target_file_affected;
+ }
+
+ if (update_watches) {
+ if (!UpdateWatches(&send_notification)) {
+ delegate_->OnFilePathError(target_);
+ Cancel();
+ }
+ }
+
+ if (send_notification) {
+ delegate_->OnFilePathChanged(target_);
+ }
+}
+
+void FilePathWatcherImpl::OnFileCanWriteWithoutBlocking(int fd) {
+ NOTREACHED();
+}
+
+void FilePathWatcherImpl::WillDestroyCurrentMessageLoop() {
+ CancelOnMessageLoopThread();
+}
+
+bool FilePathWatcherImpl::Watch(const FilePath& path,
+ FilePathWatcher::Delegate* delegate) {
+ DCHECK(MessageLoopForIO::current());
+ DCHECK(target_.value().empty()); // Can only watch one path.
+ DCHECK(delegate);
+ DCHECK_EQ(kqueue_, -1);
+
+ delegate_ = delegate;
+ target_ = path;
+
+ MessageLoop::current()->AddDestructionObserver(this);
+ io_message_loop_ = base::MessageLoopProxy::current();
+
+ kqueue_ = kqueue();
+ if (kqueue_ == -1) {
+ PLOG(ERROR) << "kqueue";
+ return false;
+ }
+
+ int last_entry = EventsForPath(target_, &events_);
+ CHECK_NE(last_entry, 0);
+
+ EventVector responses(last_entry);
+
+ int count = HANDLE_EINTR(kevent(kqueue_, &events_[0], last_entry,
+ &responses[0], last_entry, NULL));
+ if (!AreKeventValuesValid(&responses[0], count)) {
+ // Calling Cancel() here to close any file descriptors that were opened.
+ // This would happen in the destructor anyways, but FilePathWatchers tend to
+ // be long lived, and if an error has occurred, there is no reason to waste
+ // the file descriptors.
+ Cancel();
+ return false;
+ }
+
+ return MessageLoopForIO::current()->WatchFileDescriptor(
+ kqueue_, true, MessageLoopForIO::WATCH_READ, &kqueue_watcher_, this);
+}
+
+void FilePathWatcherImpl::Cancel() {
+ base::MessageLoopProxy* proxy = io_message_loop_.get();
+ if (!proxy) {
+ set_cancelled();
+ return;
+ }
+ if (!proxy->BelongsToCurrentThread()) {
+ proxy->PostTask(FROM_HERE,
+ NewRunnableMethod(this, &FilePathWatcherImpl::Cancel));
+ return;
+ }
+ CancelOnMessageLoopThread();
+}
+
+void FilePathWatcherImpl::CancelOnMessageLoopThread() {
+ DCHECK(MessageLoopForIO::current());
+ if (!is_cancelled()) {
+ set_cancelled();
+ kqueue_watcher_.StopWatchingFileDescriptor();
+ CloseFileDescriptor(&kqueue_);
+ std::for_each(events_.begin(), events_.end(), ReleaseEvent);
+ events_.clear();
+ io_message_loop_ = NULL;
+ MessageLoop::current()->RemoveDestructionObserver(this);
+ delegate_ = NULL;
+ }
+}
+
+} // namespace
+
+FilePathWatcher::FilePathWatcher() {
+ impl_ = new FilePathWatcherImpl();
+}
+
+} // namespace files
+} // namespace base

View file

@ -1,37 +0,0 @@
--- base/process_util.h.orig 2011-11-01 10:42:54.000000000 +0200
+++ base/process_util.h 2011-11-21 23:05:53.000000000 +0200
@@ -14,14 +14,14 @@
#if defined(OS_WIN)
#include <windows.h>
#include <tlhelp32.h>
-#elif defined(OS_MACOSX) || defined(OS_OPENBSD)
+#elif defined(OS_MACOSX) || defined(OS_OPENBSD) || defined(OS_FREEBSD)
// kinfo_proc is defined in <sys/sysctl.h>, but this forward declaration
// is sufficient for the vector<kinfo_proc> below.
struct kinfo_proc;
// malloc_zone_t is defined in <malloc/malloc.h>, but this forward declaration
// is sufficient for GetPurgeableZone() below.
typedef struct _malloc_zone_t malloc_zone_t;
-#if !defined(OS_OPENBSD)
+#if !defined(OS_OPENBSD) && !defined(OS_FREEBSD)
#include <mach/mach.h>
#endif
#elif defined(OS_POSIX)
@@ -166,7 +166,7 @@
// Win XP SP1 as well.
BASE_EXPORT ProcessId GetProcId(ProcessHandle process);
-#if defined(OS_LINUX) || defined(OS_ANDROID)
+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FREEBSD)
// Returns the path to the executable of the given process.
BASE_EXPORT FilePath GetProcessExecutablePath(ProcessHandle process);
@@ -528,7 +528,7 @@
#if defined(OS_WIN)
HANDLE snapshot_;
bool started_iteration_;
-#elif defined(OS_MACOSX) || defined(OS_OPENBSD)
+#elif defined(OS_MACOSX) || defined(OS_OPENBSD) || defined(OS_FREEBSD)
std::vector<kinfo_proc> kinfo_procs_;
size_t index_of_kinfo_proc_;
#elif defined(OS_POSIX)

View file

@ -1,326 +0,0 @@
--- base/process_util_freebsd.cc.orig 2011-10-08 23:30:09.938179749 +0300
+++ base/process_util_freebsd.cc 2011-10-09 14:30:52.108006527 +0300
@@ -0,0 +1,323 @@
+// Copyright (c) 2009 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/process_util.h"
+
+#include <ctype.h>
+#include <dirent.h>
+#include <dlfcn.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+#include <sys/sysctl.h>
+#include <sys/user.h>
+#include <time.h>
+#include <unistd.h>
+
+#include "base/file_util.h"
+#include "base/logging.h"
+#include "base/string_number_conversions.h"
+#include "base/string_split.h"
+#include "base/string_tokenizer.h"
+#include "base/string_util.h"
+#include "base/sys_info.h"
+//#include "base/thread_restrictions.h"
+
+namespace base {
+
+ProcessId GetParentProcessId(ProcessHandle process) {
+ struct kinfo_proc info;
+ int mib[4];
+ size_t info_size = sizeof(info);
+
+ mib[0] = CTL_KERN;
+ mib[1] = KERN_PROC;
+ mib[2] = KERN_PROC_PID;
+ mib[3] = process;
+
+ if (sysctl(mib, 4, &info, &info_size, NULL, 0) < 0)
+ return -1;
+
+ return info.ki_ppid;
+}
+
+FilePath GetProcessExecutablePath(ProcessHandle process) {
+ char pathname[PATH_MAX];
+ int mib[4];
+ size_t len;
+
+ mib[0] = CTL_KERN;
+ mib[1] = KERN_PROC;
+ mib[2] = KERN_PROC_PATHNAME;
+ mib[3] = process;
+
+ len = sizeof(pathname);
+
+ if (sysctl(mib, 4, pathname, &len, NULL, 0) < 0 || len == 0)
+ return FilePath();
+
+ return FilePath(std::string(pathname));
+}
+
+ProcessIterator::ProcessIterator(const ProcessFilter* filter)
+ : index_of_kinfo_proc_(),
+ filter_(filter) {
+
+ int mib[4];
+
+ mib[0] = CTL_KERN;
+ mib[1] = KERN_PROC;
+ mib[2] = KERN_PROC_UID;
+ mib[3] = getuid();
+
+ bool done = false;
+ int try_num = 1;
+ const int max_tries = 10;
+
+ do {
+ size_t len = 0;
+ if (sysctl(mib, 4, NULL, &len, NULL, 0) <0 ){
+ LOG(ERROR) << "failed to get the size needed for the process list";
+ kinfo_procs_.resize(0);
+ done = true;
+ } else {
+ size_t num_of_kinfo_proc = len / sizeof(struct kinfo_proc);
+ // Leave some spare room for process table growth (more could show up
+ // between when we check and now)
+ num_of_kinfo_proc += 16;
+ kinfo_procs_.resize(num_of_kinfo_proc);
+ len = num_of_kinfo_proc * sizeof(struct kinfo_proc);
+ if (sysctl(mib, 4, &kinfo_procs_[0], &len, NULL, 0) <0) {
+ // If we get a mem error, it just means we need a bigger buffer, so
+ // loop around again. Anything else is a real error and give up.
+ if (errno != ENOMEM) {
+ LOG(ERROR) << "failed to get the process list";
+ kinfo_procs_.resize(0);
+ done = true;
+ }
+ } else {
+ // Got the list, just make sure we're sized exactly right
+ size_t num_of_kinfo_proc = len / sizeof(struct kinfo_proc);
+ kinfo_procs_.resize(num_of_kinfo_proc);
+ done = true;
+ }
+ }
+ } while (!done && (try_num++ < max_tries));
+
+ if (!done) {
+ LOG(ERROR) << "failed to collect the process list in a few tries";
+ kinfo_procs_.resize(0);
+ }
+}
+
+ProcessIterator::~ProcessIterator() {
+}
+
+bool ProcessIterator::CheckForNextProcess() {
+ std::string data;
+
+ for (; index_of_kinfo_proc_ < kinfo_procs_.size(); ++ index_of_kinfo_proc_) {
+ int mib[3];
+ size_t len;
+ struct kinfo_proc kinfo = kinfo_procs_[index_of_kinfo_proc_];
+
+ if ((kinfo.ki_pid > 0) && (kinfo.ki_stat == SZOMB))
+ continue;
+
+ mib[0] = CTL_KERN;
+ mib[1] = KERN_PROC_ARGS;
+ mib[2] = kinfo.ki_pid;
+
+ len = 0;
+ if (sysctl(mib, 3, NULL, &len, NULL, 0) < 0) {
+ LOG(ERROR) << "failed to figure out the buffer size for a command line";
+ continue;
+ }
+
+ data.resize(len);
+
+ if (sysctl(mib, 3, &data[0], &len, NULL, 0) < 0) {
+ LOG(ERROR) << "failed to fetch a commandline";
+ continue;
+ }
+
+ std::string delimiters;
+ delimiters.push_back('\0');
+ Tokenize(data, delimiters, &entry_.cmd_line_args_);
+
+ size_t exec_name_end = data.find('\0');
+ if (exec_name_end == std::string::npos) {
+ LOG(ERROR) << "command line data didn't match expected format";
+ continue;
+ }
+
+ entry_.pid_ = kinfo.ki_pid;
+ entry_.ppid_ = kinfo.ki_ppid;
+ entry_.gid_ = kinfo.ki_pgid;
+
+ size_t last_slash = data.rfind('/', exec_name_end);
+ if (last_slash == std::string::npos)
+ entry_.exe_file_.assign(data, 0, exec_name_end);
+ else
+ entry_.exe_file_.assign(data, last_slash + 1,
+ exec_name_end - last_slash - 1);
+
+ // Start w/ the next entry next time through
+ ++index_of_kinfo_proc_;
+
+ return true;
+ }
+ return false;
+}
+
+bool NamedProcessIterator::IncludeEntry() {
+ if(executable_name_ != entry().exe_file())
+ return false;
+
+ return ProcessIterator::IncludeEntry();
+}
+
+
+ProcessMetrics::ProcessMetrics(ProcessHandle process)
+ : process_(process),
+ last_time_(0),
+ last_system_time_(0),
+ last_cpu_(0) {
+ processor_count_ = base::SysInfo::NumberOfProcessors();
+}
+
+// static
+ProcessMetrics* ProcessMetrics::CreateProcessMetrics(ProcessHandle process) {
+ return new ProcessMetrics(process);
+}
+
+size_t ProcessMetrics::GetPagefileUsage() const {
+ struct kinfo_proc info;
+ int mib[4];
+ size_t info_size = sizeof(info);
+
+ mib[0] = CTL_KERN;
+ mib[1] = KERN_PROC;
+ mib[2] = KERN_PROC_PID;
+ mib[3] = process_;
+
+ if (sysctl(mib, 4, &info, &info_size, NULL, 0) < 0)
+ return 0;
+
+ return info.ki_size;
+}
+
+size_t ProcessMetrics::GetPeakPagefileUsage() const {
+ return 0;
+}
+
+size_t ProcessMetrics::GetWorkingSetSize() const {
+ struct kinfo_proc info;
+ int mib[4];
+ size_t info_size = sizeof(info);
+
+ mib[0] = CTL_KERN;
+ mib[1] = KERN_PROC;
+ mib[2] = KERN_PROC_PID;
+ mib[3] = process_;
+
+ if (sysctl(mib, 4, &info, &info_size, NULL, 0) < 0)
+ return 0;
+
+ return info.ki_rssize * getpagesize();
+}
+
+size_t ProcessMetrics::GetPeakWorkingSetSize() const {
+ return 0;
+}
+
+bool ProcessMetrics::GetMemoryBytes(size_t* private_bytes,
+ size_t* shared_bytes) {
+ WorkingSetKBytes ws_usage;
+ if (!GetWorkingSetKBytes(&ws_usage))
+ return false;
+
+ if (private_bytes)
+ *private_bytes = ws_usage.priv << 10;
+
+ if (shared_bytes)
+ *shared_bytes = ws_usage.shared * 1024;
+
+ return true;
+}
+
+bool ProcessMetrics::GetWorkingSetKBytes(WorkingSetKBytes* ws_usage) const {
+// TODO(bapt) be sure we can't be precise
+ size_t priv = GetWorkingSetSize();
+ if (!priv)
+ return false;
+ ws_usage->priv = priv / 1024;
+ ws_usage->shareable = 0;
+ ws_usage->shared = 0;
+
+ return true;
+}
+
+bool ProcessMetrics::GetIOCounters(IoCounters* io_counters) const {
+ return false;
+}
+
+double ProcessMetrics::GetCPUUsage() {
+ struct kinfo_proc info;
+ int mib[4];
+ size_t info_size = sizeof(info);
+
+ struct timeval now;
+ int retval = gettimeofday(&now, NULL);
+ if (retval)
+ return 0;
+
+ mib[0] = CTL_KERN;
+ mib[1] = KERN_PROC;
+ mib[2] = KERN_PROC_PID;
+ mib[3] = process_;
+
+ if (sysctl(mib, 4, &info, &info_size, NULL, 0) < 0)
+ return 0;
+
+ return (info.ki_pctcpu / FSCALE) * 100.0;
+}
+
+size_t GetSystemCommitCharge() {
+ int mib[2], pagesize;
+ unsigned long mem_total, mem_free, mem_inactive;
+ size_t len = sizeof(mem_total);
+
+ if (sysctl(mib, 2, &mem_total, &len, NULL, 0) < 0)
+ return 0;
+
+ len = sizeof(mem_free);
+ if (sysctlbyname("vm.stats.vm.v_free_count", &mem_free, &len, NULL, 0) < 0)
+ return 0;
+
+ len = sizeof(mem_inactive);
+ if (sysctlbyname("vm.stats.vm.v_inactive_count", &mem_inactive, &len, NULL, 0) < 0)
+ return 0;
+
+ pagesize = getpagesize();
+
+ return mem_total - (mem_free*pagesize) - (mem_inactive*pagesize);
+}
+
+void EnableTerminationOnOutOfMemory() {
+ DLOG(WARNING) << "Not feasible.";
+}
+
+void EnableTerminationOnHeapCorruption() {
+ // Nothing to do.
+}
+
+bool AdjustOOMScore(ProcessId process, int score) {
+ NOTIMPLEMENTED();
+ return false;
+}
+
+} // namespace base

View file

@ -1,31 +1,17 @@
--- base/process_util_posix.cc.orig 2011-09-12 11:35:34.000000000 +0300
+++ base/process_util_posix.cc 2011-09-15 02:07:17.000000000 +0300
@@ -33,6 +33,11 @@
#include "base/threading/thread_restrictions.h"
#include "base/time.h"
+#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>
@@ -767,8 +772,8 @@
--- base/process_util_posix.cc.orig 2012-01-29 14:28:45.000000000 +0200
+++ base/process_util_posix.cc 2012-01-29 14:29:58.000000000 +0200
@@ -886,7 +886,7 @@
return false;
}
-#if defined(OS_MACOSX)
-// Using kqueue on Mac so that we can wait on non-child processes.
+#if defined(OS_MACOSX) || defined(OS_FREEBSD)
+// Using kqueue on BSD so that we can wait on non-child processes.
// Using kqueue on Mac so that we can wait on non-child processes.
// We can't use kqueues on child processes because we need to reap
// our own children using wait.
static bool WaitForSingleNonChildProcess(ProcessHandle handle,
@@ -826,19 +831,19 @@
}
}
@@ -976,19 +976,19 @@
return true;
}
-#endif // OS_MACOSX
+#endif // OS_MACOSX || OS_FREEBSD
@ -35,9 +21,8 @@
ProcessHandle our_pid = Process::Current().handle();
if (parent_pid != our_pid) {
-#if defined(OS_MACOSX)
- // On Mac we can wait on non child processes.
+#if defined(OS_MACOSX) || defined(OS_FREEBSD)
+ // On BSD we can wait on non child processes.
// On Mac we can wait on non child processes.
return WaitForSingleNonChildProcess(handle, wait_milliseconds);
#else
// Currently on Linux we can't handle non child processes.
@ -45,5 +30,5 @@
-#endif // OS_MACOSX
+#endif // OS_MACOSX || OS_FREEBSD
}
bool waitpid_success;
int status;

View file

@ -1,17 +1,18 @@
--- build/common.gypi.orig 2011-11-10 16:01:45.000000000 +0200
+++ build/common.gypi 2011-12-01 00:10:48.000000000 +0200
@@ -403,6 +403,10 @@
--- build/common.gypi.orig 2012-01-25 10:01:56.000000000 +0200
+++ build/common.gypi 2012-01-29 21:49:50.000000000 +0200
@@ -406,6 +406,11 @@
# able to turn it off for remote debugging on Chromium OS
'linux_disable_pie%': 0,
+ 'os_ver%': 0,
+ 'prefix_dir%': '/usr',
+ 'use_system_tcmalloc%': 0,
+ 'use_system_libjpeg%': 0,
+
# The release channel that this build targets. This is used to restrict
# channel-specific build options, like which installer packages to create.
# The default is 'all', which does no channel-specific filtering.
@@ -615,7 +619,7 @@
@@ -632,7 +637,7 @@
# This is used to tweak build flags for gcc 4.4.
'gcc_version%': '<!(python <(DEPTH)/build/compiler_version.py)',
# Figure out the python architecture to decide if we build pyauto.
@ -20,16 +21,7 @@
'conditions': [
['branding=="Chrome"', {
'linux_breakpad%': 1,
@@ -1242,7 +1246,7 @@
['exclude', '(^|/)(wayland)_[^/]*\\.(h|cc)$'],
],
}],
- ['OS!="linux"', {
+ ['OS!="linux" and OS!="freebsd"', {
'sources/': [
['exclude', '_linux(_unittest)?\\.(h|cc)$'],
['exclude', '(^|/)linux/'],
@@ -1911,6 +1915,22 @@
@@ -1973,6 +1978,22 @@
'ldflags': [
'-Wl,--no-keep-memory',
],

View file

@ -1,11 +1,11 @@
--- chrome/browser/about_flags.cc.orig 2011-03-20 22:02:04.388735857 +0200
+++ chrome/browser/about_flags.cc 2011-03-20 22:02:04.492737343 +0200
@@ -503,7 +503,7 @@
--- chrome/browser/about_flags.cc.orig 2012-01-18 11:12:44.000000000 +0200
+++ chrome/browser/about_flags.cc 2012-01-29 14:51:40.000000000 +0200
@@ -674,7 +674,7 @@
return kOsWin;
#elif defined(OS_CHROMEOS) // Needs to be before the OS_LINUX check.
return kOsCrOS;
-#elif defined(OS_LINUX)
+#elif defined(OS_LINUX) || defined(OS_FREEBSD)
-#elif defined(OS_LINUX) || defined(OS_OPENBSD)
+#elif defined(OS_LINUX) || defined(OS_BSD)
return kOsLinux;
#else
#error Unknown platform

View file

@ -1,47 +1,11 @@
--- chrome/browser/browser_about_handler.cc.orig 2011-11-01 10:43:20.000000000 +0200
+++ chrome/browser/browser_about_handler.cc 2011-11-19 19:05:28.000000000 +0200
@@ -79,7 +79,7 @@
#include "chrome/browser/chromeos/version_loader.h"
#include "chrome/browser/oom_priority_manager.h"
#include "content/browser/zygote_host_linux.h"
-#elif defined(OS_LINUX)
+#elif defined(OS_LINUX) || defined(OS_FREEBSD)
#include "content/browser/zygote_host_linux.h"
#endif
@@ -152,7 +152,7 @@
--- chrome/browser/browser_about_handler.cc.orig 2012-01-18 11:12:44.000000000 +0200
+++ chrome/browser/browser_about_handler.cc 2012-01-29 15:07:44.000000000 +0200
@@ -63,7 +63,7 @@
#if defined(OS_WIN)
chrome::kChromeUIConflictsHost,
#endif
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
-#if defined(OS_LINUX) || defined(OS_OPENBSD)
+#if defined(OS_LINUX) || defined(OS_BSD)
chrome::kChromeUILinuxProxyConfigHost,
chrome::kChromeUISandboxHost,
#endif
@@ -190,7 +190,7 @@
#if defined(USE_TCMALLOC)
chrome::kChromeUITCMallocHost,
#endif
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
chrome::kChromeUILinuxProxyConfigHost,
chrome::kChromeUISandboxHost,
#endif
@@ -1062,7 +1062,7 @@
return data;
}
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
std::string AboutLinuxProxyConfig() {
std::string data;
AppendHeader(&data, 0,
@@ -1447,7 +1447,7 @@
return;
} else if (host == chrome::kChromeUIHistogramsHost) {
response = AboutHistograms(path);
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
} else if (host == chrome::kChromeUILinuxProxyConfigHost) {
response = AboutLinuxProxyConfig();
#endif

View file

@ -1,78 +1,29 @@
--- chrome/browser/chrome_content_browser_client.cc.orig 2011-11-01 10:43:20.000000000 +0200
+++ chrome/browser/chrome_content_browser_client.cc 2011-11-19 19:22:29.000000000 +0200
@@ -81,18 +81,18 @@
#include "chrome/browser/chrome_browser_main_win.h"
#elif defined(OS_MACOSX)
--- chrome/browser/chrome_content_browser_client.cc.orig 2012-01-18 11:12:43.000000000 +0200
+++ chrome/browser/chrome_content_browser_client.cc 2012-01-29 15:16:06.000000000 +0200
@@ -87,7 +87,7 @@
#include "chrome/browser/chrome_browser_main_mac.h"
-#elif defined(OS_LINUX)
+#elif defined(OS_LINUX) || defined(OS_FREEBSD)
#include "chrome/browser/chrome_browser_main_gtk.h"
#elif defined(OS_CHROMEOS)
#include "chrome/browser/chromeos/chrome_browser_main_chromeos.h"
-#elif defined(OS_LINUX) || defined(OS_OPENBSD)
+#elif defined(OS_LINUX) || defined(OS_BSD)
#include "chrome/browser/chrome_browser_main_linux.h"
#elif defined(OS_POSIX)
#include "chrome/browser/chrome_browser_main_posix.h"
@@ -105,7 +105,7 @@
#include "chrome/browser/chrome_browser_main_extra_parts_aura.h"
#endif
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
-#if defined(OS_LINUX) || defined(OS_OPENBSD)
+#if defined(OS_LINUX) || defined(OS_BSD)
#include "base/linux_util.h"
#include "chrome/browser/crash_handler_host_linux.h"
#endif
#if defined(TOOLKIT_VIEWS)
#include "chrome/browser/ui/views/tab_contents/tab_contents_view_views.h"
-#elif defined(OS_LINUX)
+#elif defined(OS_LINUX) || defined(OS_FREEBSD)
#include "chrome/browser/tab_contents/tab_contents_view_gtk.h"
#elif defined(OS_MACOSX)
#include "chrome/browser/tab_contents/tab_contents_view_mac.h"
@@ -108,7 +108,7 @@
#elif defined(OS_WIN)
#include "chrome/browser/renderer_host/render_widget_host_view_views.h"
#include "content/browser/renderer_host/render_widget_host_view_win.h"
-#elif defined(OS_LINUX)
+#elif defined(OS_LINUX) || defined(OS_FREEBSD)
#include "content/browser/renderer_host/render_widget_host_view_gtk.h"
#elif defined(OS_MACOSX)
#include "content/browser/renderer_host/render_widget_host_view_mac.h"
@@ -195,7 +195,7 @@
return new ChromeBrowserMainPartsWin(parameters);
#elif defined(OS_MACOSX)
return new ChromeBrowserMainPartsMac(parameters);
-#elif defined(OS_LINUX)
+#elif defined(OS_LINUX) || defined(OS_FREEBSD)
return new ChromeBrowserMainPartsGtk(parameters);
#else
return NULL;
@@ -210,7 +210,7 @@
if (views::Widget::IsPureViews())
return new RenderWidgetHostViewViews(widget);
return new RenderWidgetHostViewWin(widget);
-#elif defined(OS_LINUX)
+#elif defined(OS_LINUX) || defined(OS_FREEBSD)
return new RenderWidgetHostViewGtk(widget);
#elif defined(OS_MACOSX)
return render_widget_host_view_mac::CreateRenderWidgetHostView(widget);
@@ -223,7 +223,7 @@
TabContents* tab_contents) {
#if defined(TOOLKIT_VIEWS)
return new TabContentsViewViews(tab_contents);
-#elif defined(OS_LINUX)
+#elif defined(OS_LINUX) || defined(OS_FREEBSD)
return new TabContentsViewGtk(tab_contents);
#elif defined(OS_MACOSX)
return tab_contents_view_mac::CreateTabContentsView(tab_contents);
@@ -911,7 +911,7 @@
return download_util::GetDefaultDownloadDirectory();
}
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
int ChromeContentBrowserClient::GetCrashSignalFD(
const CommandLine& command_line) {
if (command_line.HasSwitch(switches::kExtensionProcess)) {
@@ -937,7 +937,7 @@
return -1;
}
-#endif // defined(OS_LINUX)
+#endif // defined(OS_LINUX) || defined(OS_FREEBSD)
#if defined(OS_WIN)
const wchar_t* ChromeContentBrowserClient::GetResourceDllName() {
@@ -264,7 +264,7 @@
main_parts = new ChromeBrowserMainPartsMac(parameters);
#elif defined(OS_CHROMEOS)
main_parts = new ChromeBrowserMainPartsChromeos(parameters);
-#elif defined(OS_LINUX) || defined(OS_OPENBSD)
+#elif defined(OS_LINUX) || defined(OS_BSD)
main_parts = new ChromeBrowserMainPartsLinux(parameters);
#elif defined(OS_POSIX)
main_parts = new ChromeBrowserMainPartsPosix(parameters);

View file

@ -0,0 +1,11 @@
--- chrome/browser/extensions/process_map.cc.orig 2012-01-31 21:06:11.000000000 +0200
+++ chrome/browser/extensions/process_map.cc 2012-01-31 21:06:50.000000000 +0200
@@ -11,7 +11,7 @@
Item() {
}
- explicit Item(const ProcessMap::Item& other)
+ Item(const ProcessMap::Item& other)
: extension_id(other.extension_id),
process_id(other.process_id),
site_instance_id(other.site_instance_id) {

View file

@ -1,11 +1,11 @@
--- ./chrome/browser/net/connection_tester.cc.orig 2010-12-16 02:11:55.000000000 +0100
+++ ./chrome/browser/net/connection_tester.cc 2010-12-20 20:15:08.000000000 +0100
@@ -179,7 +179,7 @@
--- chrome/browser/net/connection_tester.cc.orig 2012-01-18 11:12:39.000000000 +0200
+++ chrome/browser/net/connection_tester.cc 2012-01-29 15:24:02.000000000 +0200
@@ -212,7 +212,7 @@
// Otherwise returns a network error code.
int CreateSystemProxyConfigService(
scoped_ptr<net::ProxyConfigService>* config_service) {
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(FREEBSD)
-#if defined(OS_LINUX) || defined(OS_OPENBSD)
+#if defined(OS_LINUX) || defined(OS_BSD)
// TODO(eroman): This is not supported on Linux yet, because of how
// construction needs ot happen on the UI thread.
return net::ERR_NOT_IMPLEMENTED;

View file

@ -1,11 +1,41 @@
--- chrome/browser/process_singleton.h.orig 2011-03-20 22:02:04.272739829 +0200
+++ chrome/browser/process_singleton.h 2011-03-20 22:02:04.444737667 +0200
--- chrome/browser/process_singleton.h.orig 2012-01-18 11:12:43.000000000 +0200
+++ chrome/browser/process_singleton.h 2012-01-29 15:27:59.000000000 +0200
@@ -22,9 +22,9 @@
#include "base/file_path.h"
#endif // defined(OS_POSIX)
-#if defined(OS_LINUX) || defined(OS_OPENBSD)
+#if defined(OS_LINUX) || defined(OS_BSD)
#include "base/scoped_temp_dir.h"
-#endif // defined(OS_LINUX) || defined(OS_OPENBSD)
+#endif // defined(OS_LINUX) || defined(OS_BSD)
class CommandLine;
class FilePath;
@@ -67,7 +67,7 @@
// instance.
NotifyResult NotifyOtherProcessOrCreate();
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
-#if defined(OS_LINUX) || defined(OS_OPENBSD)
+#if defined(OS_LINUX) || defined(OS_BSD)
// Exposed for testing. We use a timeout on Linux, and in tests we want
// this timeout to be short.
NotifyResult NotifyOtherProcessWithTimeout(const CommandLine& command_line,
@@ -76,7 +76,7 @@
NotifyResult NotifyOtherProcessWithTimeoutOrCreate(
const CommandLine& command_line,
int timeout_seconds);
-#endif // defined(OS_LINUX) || defined(OS_OPENBSD)
+#endif // defined(OS_LINUX) || defined(OS_BSD)
#if defined(OS_WIN) && !defined(USE_AURA)
// Used in specific cases to let us know that there is an existing instance
@@ -151,7 +151,7 @@
HWND remote_window_; // The HWND_MESSAGE of another browser.
HWND window_; // The HWND_MESSAGE window.
bool is_virtualized_; // Stuck inside Microsoft Softricity VM environment.
-#elif defined(OS_LINUX) || defined(OS_OPENBSD)
+#elif defined(OS_LINUX) || defined(OS_BSD)
// Path in file system to the socket.
FilePath socket_path_;

View file

@ -0,0 +1,38 @@
--- chrome/browser/ui/webui/about_ui.cc.orig 2012-02-01 20:07:00.000000000 +0200
+++ chrome/browser/ui/webui/about_ui.cc 2012-02-01 20:07:54.000000000 +0200
@@ -81,7 +81,7 @@
#include "chrome/browser/chromeos/version_loader.h"
#include "chrome/browser/oom_priority_manager.h"
#include "content/browser/zygote_host_linux.h"
-#elif defined(OS_LINUX) || defined(OS_OPENBSD)
+#elif defined(OS_LINUX) || defined(OS_BSD)
#include "content/browser/zygote_host_linux.h"
#endif
@@ -920,7 +920,7 @@
return data;
}
-#if defined(OS_LINUX) || defined(OS_OPENBSD)
+#if defined(OS_LINUX) || defined(OS_BSD)
std::string AboutLinuxProxyConfig() {
std::string data;
AppendHeader(&data, 0,
@@ -1306,7 +1306,7 @@
return;
} else if (host == chrome::kChromeUIHistogramsHost) {
response = AboutHistograms(path);
-#if defined(OS_LINUX) || defined(OS_OPENBSD)
+#if defined(OS_LINUX) || defined(OS_BSD)
} else if (host == chrome::kChromeUILinuxProxyConfigHost) {
response = AboutLinuxProxyConfig();
#endif
@@ -1322,7 +1322,7 @@
response = ResourceBundle::GetSharedInstance().GetRawDataResource(
IDR_OS_CREDITS_HTML).as_string();
#endif
-#if defined(OS_LINUX) || defined(OS_OPENBSD)
+#if defined(OS_LINUX) || defined(OS_BSD)
} else if (host == chrome::kChromeUISandboxHost) {
response = AboutSandbox();
#endif

View file

@ -1,11 +1,11 @@
--- chrome/common/child_process_logging.h.orig 2011-11-22 01:03:45.000000000 +0200
+++ chrome/common/child_process_logging.h 2011-11-22 01:03:57.000000000 +0200
@@ -30,7 +30,7 @@
--- chrome/common/child_process_logging.h.orig 2012-01-18 11:13:17.000000000 +0200
+++ chrome/common/child_process_logging.h 2012-01-29 15:30:03.000000000 +0200
@@ -33,7 +33,7 @@
namespace child_process_logging {
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
-#if defined(OS_LINUX) || defined(OS_OPENBSD)
+#if defined(OS_LINUX) || defined(OS_BSD)
// These are declared here so the crash reporter can access them directly in
// compromised context without going through the standard library.
extern char g_active_url[];

View file

@ -1,11 +0,0 @@
--- chrome/common/multi_process_lock.h.orig 2011-03-20 22:02:04.375736719 +0200
+++ chrome/common/multi_process_lock.h 2011-03-20 22:02:04.485737571 +0200
@@ -18,7 +18,7 @@
// The length of a multi-process lock name is limited on Linux, so
// it is limited it on all platforms for consistency. This length does
// not include a terminator.
- static const size_t MULTI_PROCESS_LOCK_NAME_MAX_LEN = 106;
+ static const size_t MULTI_PROCESS_LOCK_NAME_MAX_LEN = 102;
// Factory method for creating a multi-process lock.
// |name| is the name of the lock. The name has special meaning on Windows

View file

@ -1,11 +1,11 @@
--- chrome/common/url_constants.cc.orig 2011-09-10 15:16:44.000000000 +0300
+++ chrome/common/url_constants.cc 2011-09-10 15:17:50.000000000 +0300
@@ -158,7 +158,7 @@
--- chrome/common/url_constants.cc.orig 2012-01-18 11:13:17.000000000 +0200
+++ chrome/common/url_constants.cc 2012-01-29 15:33:57.000000000 +0200
@@ -186,7 +186,7 @@
const char kChromeUIScreenshotPath[] = "screenshots";
const char kChromeUIThemePath[] = "theme";
const char kChromeUIThumbnailPath[] = "thumb";
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
-#if defined(OS_LINUX) || defined(OS_OPENBSD)
+#if defined(OS_LINUX) || defined(OS_BSD)
const char kChromeUILinuxProxyConfigHost[] = "linux-proxy-config";
const char kChromeUISandboxHost[] = "sandbox";
#endif

View file

@ -1,11 +1,11 @@
--- chrome/common/url_constants.h.orig 2011-09-10 15:16:51.000000000 +0300
+++ chrome/common/url_constants.h 2011-09-10 15:17:26.000000000 +0300
@@ -156,7 +156,7 @@
--- chrome/common/url_constants.h.orig 2012-01-18 11:13:17.000000000 +0200
+++ chrome/common/url_constants.h 2012-01-29 15:35:17.000000000 +0200
@@ -178,7 +178,7 @@
extern const char kChromeUIScreenshotPath[];
extern const char kChromeUIThemePath[];
extern const char kChromeUIThumbnailPath[];
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
-#if defined(OS_LINUX) || defined(OS_OPENBSD)
+#if defined(OS_LINUX) || defined(OS_BSD)
extern const char kChromeUILinuxProxyConfigHost[];
extern const char kChromeUISandboxHost[];
#endif

View file

@ -1,22 +0,0 @@
--- chrome/nacl.gypi.orig 2011-11-01 10:43:23.000000000 +0200
+++ chrome/nacl.gypi 2011-11-19 19:26:48.000000000 +0200
@@ -102,8 +102,8 @@
],
},
],
- }],
- ['OS!="win" and target_arch=="ia32"', {
+ }], # Disable nacl on freebsd for now.
+ ['OS!="win" and OS!="freebsd" and target_arch=="ia32"', {
# Linux-x86-32 and OSX need only the x86-32 IRT.
'actions': [
{
@@ -119,7 +119,7 @@
},
],
}],
- ['OS!="win" and target_arch=="x64"', {
+ ['OS!="win" and OS!="freebsd" and target_arch=="x64"', {
# Linux-x86-64 needs only the x86-64 IRT.
'actions': [
{

View file

@ -0,0 +1,29 @@
--- chrome/renderer/chrome_ppb_pdf_impl.cc.orig 2012-02-01 21:17:28.000000000 +0200
+++ chrome/renderer/chrome_ppb_pdf_impl.cc 2012-02-01 21:18:02.000000000 +0200
@@ -43,7 +43,7 @@
namespace chrome {
-#if defined(OS_LINUX) || defined(OS_OPENBSD)
+#if defined(OS_LINUX) || defined(OS_BSD)
class PrivateFontFile : public ppapi::Resource {
public:
PrivateFontFile(PP_Instance instance, int fd) : Resource(instance), fd_(fd) {
@@ -187,7 +187,7 @@
PP_Instance instance_id,
const PP_FontDescription_Dev* description,
PP_PrivateFontCharset charset) {
-#if defined(OS_LINUX) || defined(OS_OPENBSD)
+#if defined(OS_LINUX) || defined(OS_BSD)
// Validate the instance before using it below.
if (!HostGlobals::Get()->GetInstance(instance_id))
return 0;
@@ -219,7 +219,7 @@
uint32_t table,
void* output,
uint32_t* output_length) {
-#if defined(OS_LINUX) || defined(OS_OPENBSD)
+#if defined(OS_LINUX) || defined(OS_BSD)
ppapi::Resource* resource =
PpapiGlobals::Get()->GetResourceTracker()->GetResource(font_file);
if (!resource)

View file

@ -0,0 +1,11 @@
--- content/app/content_main.cc.orig 2012-02-01 21:47:17.000000000 +0200
+++ content/app/content_main.cc 2012-02-01 21:47:28.000000000 +0200
@@ -316,7 +316,7 @@
base::GlobalDescriptors* g_fds = base::GlobalDescriptors::GetInstance();
g_fds->Set(kPrimaryIPCChannel,
kPrimaryIPCChannel + base::GlobalDescriptors::kBaseDescriptor);
-#if defined(OS_LINUX) || defined(OS_OPENBSD)
+#if defined(OS_LINUX) || defined(OS_BSD)
g_fds->Set(kCrashDumpSignal,
kCrashDumpSignal + base::GlobalDescriptors::kBaseDescriptor);
#endif

View file

@ -1,29 +0,0 @@
--- content/browser/browser_main.cc.orig 2011-11-30 22:55:59.687176328 +0200
+++ content/browser/browser_main.cc 2011-11-30 22:56:18.705178000 +0200
@@ -39,7 +39,7 @@
#include "ui/base/l10n/l10n_util_win.h"
#endif
-#if defined(OS_LINUX)
+#if defined(TOOLKIT_USES_GTK)
#include <glib-object.h>
#endif
@@ -109,7 +109,7 @@
}
#endif
-#if defined(OS_LINUX)
+#if defined(TOOLKIT_USES_GTK)
static void GLibLogHandler(const gchar* log_domain,
GLogLevelFlags log_level,
const gchar* message,
@@ -288,7 +288,7 @@
// of intersecting ifdefs we have. To keep it easy to follow, there
// are no #else branches on any #ifs.
-#if defined(OS_LINUX)
+#if defined(TOOLKIT_USES_GTK)
// We want to call g_thread_init(), but in some codepaths (tests) it
// is possible it has already been called. In older versions of
// GTK, it is an error to call g_thread_init twice; unfortunately,

View file

@ -0,0 +1,29 @@
--- content/browser/browser_main_loop.cc.orig 2012-01-30 22:18:23.000000000 +0200
+++ content/browser/browser_main_loop.cc 2012-01-30 22:19:06.000000000 +0200
@@ -39,7 +39,7 @@
#include "net/base/winsock_init.h"
#endif
-#if defined(OS_LINUX) || defined(OS_OPENBSD)
+#if defined(OS_LINUX) || defined(OS_BSD)
#include <glib-object.h>
#endif
@@ -89,7 +89,7 @@
}
#endif
-#if defined(OS_LINUX) || defined(OS_OPENBSD)
+#if defined(OS_LINUX) || defined(OS_BSD)
static void GLibLogHandler(const gchar* log_domain,
GLogLevelFlags log_level,
const gchar* message,
@@ -518,7 +518,7 @@
// are no #else branches on any #ifs.
// TODO(stevenjb): Move platform specific code into platform specific Parts
// (Need to add InitializeToolkit stage to BrowserParts).
-#if defined(OS_LINUX) || defined(OS_OPENBSD)
+#if defined(OS_LINUX) || defined(OS_BSD)
// Glib type system initialization. Needed at least for gconf,
// used in net/proxy/proxy_config_service_linux.cc. Most likely
// this is superfluous as gtk_init() ought to do this. It's

View file

@ -0,0 +1,11 @@
--- content/browser/gpu/gpu_blacklist.cc.orig 2012-02-01 21:23:10.000000000 +0200
+++ content/browser/gpu/gpu_blacklist.cc 2012-02-01 21:23:18.000000000 +0200
@@ -817,7 +817,7 @@
return kOsChromeOS;
#elif defined(OS_WIN)
return kOsWin;
-#elif defined(OS_LINUX) || defined(OS_OPENBSD)
+#elif defined(OS_LINUX) || defined(OS_BSD)
return kOsLinux;
#elif defined(OS_MACOSX)
return kOsMacosx;

View file

@ -0,0 +1,11 @@
--- content/browser/gpu/gpu_blacklist_unittest.cc.orig 2012-02-01 21:51:33.000000000 +0200
+++ content/browser/gpu/gpu_blacklist_unittest.cc 2012-02-01 21:52:45.000000000 +0200
@@ -191,7 +191,7 @@
EXPECT_EQ(flags.flags(),
static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl));
#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || \
- defined(OS_OPENBSD)
+ defined(OS_BSD)
// Blacklist entries will be filtered to the current OS only upon loading.
EXPECT_TRUE(
blacklist.LoadGpuBlacklist(vendor_json, GpuBlacklist::kCurrentOsOnly));

View file

@ -1,11 +0,0 @@
--- content/browser/renderer_host/browser_render_process_host.cc.orig 2011-03-20 22:02:04.283738713 +0200
+++ content/browser/renderer_host/browser_render_process_host.cc 2011-03-20 22:02:04.448747953 +0200
@@ -886,7 +886,7 @@
HANDLE section = app::win::GetSectionFromProcess(
dib_id.handle, GetHandle(), false /* read write */);
return TransportDIB::Map(section);
-#elif defined(OS_MACOSX)
+#elif defined(OS_MACOSX) || defined(OS_FREEBSD)
// On OSX, the browser allocates all DIBs and keeps a file descriptor around
// for each.
return widget_helper_->MapTransportDIB(dib_id);

View file

@ -0,0 +1,11 @@
--- content/browser/renderer_host/render_process_host_impl.cc.orig 2012-01-29 16:19:50.000000000 +0200
+++ content/browser/renderer_host/render_process_host_impl.cc 2012-01-29 16:20:14.000000000 +0200
@@ -806,7 +806,7 @@
STANDARD_RIGHTS_REQUIRED | FILE_MAP_READ | FILE_MAP_WRITE,
FALSE, 0);
return TransportDIB::Map(section);
-#elif defined(OS_MACOSX)
+#elif defined(OS_MACOSX) || defined(OS_FREEBSD)
// On OSX, the browser allocates all DIBs and keeps a file descriptor around
// for each.
return widget_helper_->MapTransportDIB(dib_id);

View file

@ -1,11 +1,11 @@
--- content/browser/tab_contents/tab_contents.cc.orig 2011-06-24 11:30:32.000000000 +0300
+++ content/browser/tab_contents/tab_contents.cc 2011-06-26 21:18:24.774780173 +0300
@@ -1822,7 +1822,7 @@
if (!render_view_host->CreateRenderView(string16()))
--- content/browser/tab_contents/tab_contents.cc.orig 2012-01-18 11:11:38.000000000 +0200
+++ content/browser/tab_contents/tab_contents.cc 2012-01-29 16:23:41.000000000 +0200
@@ -2021,7 +2021,7 @@
if (!render_view_host->CreateRenderView(string16(), max_page_id))
return false;
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
-#if defined(OS_LINUX) || defined(OS_OPENBSD)
+#if defined(OS_LINUX) || defined(OS_BSD)
// Force a ViewMsg_Resize to be sent, needed to make plugins show up on
// linux. See crbug.com/83941.
if (RenderWidgetHost* render_widget_host = rwh_view->GetRenderWidgetHost())
if (rwh_view) {

View file

@ -1,18 +1,20 @@
--- content/browser/zygote_host_linux.cc.orig 2011-10-07 11:31:44.000000000 +0300
+++ content/browser/zygote_host_linux.cc 2011-10-08 22:10:14.930730097 +0300
@@ -271,6 +271,7 @@
--- content/browser/zygote_host_linux.cc.orig 2012-01-18 11:11:40.000000000 +0200
+++ content/browser/zygote_host_linux.cc 2012-01-29 16:31:59.000000000 +0200
@@ -305,7 +305,7 @@
return base::kNullProcessHandle;
}
+#if !defined(OS_FREEBSD)
-#if !defined(OS_OPENBSD)
+#if !defined(OS_BSD)
// This is just a starting score for a renderer or extension (the
// only types of processes that will be started this way). It will
// get adjusted as time goes on. (This is the same value as
@@ -278,6 +279,7 @@
// that's not something we can include here.)
const int kLowestRendererOomScore = 300;
AdjustRendererOOMScore(pid, kLowestRendererOomScore);
+#endif
@@ -318,7 +318,7 @@
return pid;
}
-#if !defined(OS_OPENBSD)
+#if !defined(OS_BSD)
void ZygoteHost::AdjustRendererOOMScore(base::ProcessHandle pid, int score) {
// 1) You can't change the oom_score_adj of a non-dumpable process
// (EPERM) unless you're root. Because of this, we can't set the

View file

@ -1,11 +0,0 @@
--- content/common/gpu/gpu_command_buffer_stub.cc.orig 2011-11-30 21:36:25.000000000 +0200
+++ content/common/gpu/gpu_command_buffer_stub.cc 2011-11-30 21:36:49.000000000 +0200
@@ -193,7 +193,7 @@
renderer_id_,
route_id_,
handle_);
-#elif defined(OS_WIN) || defined(OS_LINUX)
+#elif defined(OS_WIN) || defined(OS_LINUX) || defined(OS_FREEBSD)
surface_ = gfx::GLSurface::CreateViewGLSurface(software_, handle_);
#endif
} else {

View file

@ -1,12 +1,11 @@
--- content/common/seccomp_sandbox.h.orig 2011-10-10 20:30:54.487723398 +0000
+++ content/common/seccomp_sandbox.h 2011-10-10 20:31:27.083734776 +0000
@@ -18,7 +18,8 @@
#include "content/common/content_switches.h"
--- content/common/seccomp_sandbox.h.orig 2012-01-18 11:11:41.000000000 +0200
+++ content/common/seccomp_sandbox.h 2012-01-29 17:00:42.000000000 +0200
@@ -19,7 +19,7 @@
#if defined(ARCH_CPU_X86_FAMILY) && !defined(CHROMIUM_SELINUX) && \
- !defined(__clang__) && !defined(OS_CHROMEOS) && !defined(TOOLKIT_VIEWS)
+ !defined(__clang__) && !defined(OS_CHROMEOS) && !defined(TOOLKIT_VIEWS) && \
+ !defined(OS_FREEBSD)
!defined(__clang__) && !defined(OS_CHROMEOS) && !defined(TOOLKIT_VIEWS) && \
- !defined(OS_OPENBSD)
+ !defined(OS_BSD)
#define SECCOMP_SANDBOX
#include "seccompsandbox/sandbox.h"
#endif

View file

@ -1,5 +1,5 @@
--- content/common/common_param_traits.h.orig 2011-06-06 00:08:49.215163238 +0300
+++ content/common/common_param_traits.h 2011-06-06 00:09:04.929165157 +0300
--- content/public/common/common_param_traits.h.orig 2011-06-06 00:08:49.215163238 +0300
+++ content/public/common/common_param_traits.h 2011-06-06 00:09:04.929165157 +0300
@@ -187,7 +187,7 @@
};
#endif

View file

@ -1,15 +1,15 @@
--- content/renderer/render_process_impl.cc.orig 2010-12-16 02:11:59.000000000 +0100
+++ content/renderer/render_process_impl.cc 2010-12-20 20:15:08.000000000 +0100
@@ -243,7 +243,7 @@
#if defined(OS_WIN) || defined(OS_LINUX)
--- content/renderer/render_process_impl.cc.orig 2012-01-18 11:11:41.000000000 +0200
+++ content/renderer/render_process_impl.cc 2012-01-29 17:05:58.000000000 +0200
@@ -105,7 +105,7 @@
#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_OPENBSD)
// Windows and Linux create transport DIBs inside the renderer
return TransportDIB::Create(size, transport_dib_next_sequence_number_++);
-#elif defined(OS_MACOSX) // defined(OS_WIN) || defined(OS_LINUX)
+#elif defined(OS_MACOSX) || defined(OS_FREEBSD) // defined(OS_WIN) || defined(OS_LINUX)
-#elif defined(OS_MACOSX)
+#elif defined(OS_MACOSX) || defined(OS_FREEBSD)
// Mac creates transport DIBs in the browser, so we need to do a sync IPC to
// get one. The TransportDIB is cached in the browser.
TransportDIB::Handle handle;
@@ -260,7 +260,7 @@
@@ -122,7 +122,7 @@
if (!dib)
return;
@ -18,12 +18,12 @@
// On Mac we need to tell the browser that it can drop a reference to the
// shared memory.
IPC::Message* msg = new ViewHostMsg_FreeTransportDIB(dib->id());
@@ -278,7 +278,7 @@
@@ -140,7 +140,7 @@
int width = rect.width();
int height = rect.height();
const size_t stride = skia::PlatformCanvas::StrideForWidth(rect.width());
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
-#if defined(OS_LINUX) || defined(OS_OPENBSD)
+#if defined(OS_LINUX) || defined(OS_BSD)
const size_t max_size = base::SysInfo::MaxSharedMemorySize();
#else
const size_t max_size = 0;

View file

@ -1,14 +1,14 @@
--- crypto/encryptor.cc.orig 2011-09-09 01:49:35.000000000 +0300
+++ crypto/encryptor.cc 2011-09-09 01:56:01.000000000 +0300
@@ -18,6 +18,11 @@
#define bswap_16(x) OSSwapInt16(x)
#define bswap_32(x) OSSwapInt32(x)
#define bswap_64(x) OSSwapInt64(x)
--- crypto/encryptor.cc.orig 2012-01-18 11:11:42.000000000 +0200
+++ crypto/encryptor.cc 2012-01-29 17:11:33.000000000 +0200
@@ -13,6 +13,11 @@
#define bswap_16(x) _byteswap_ushort(x)
#define bswap_32(x) _byteswap_ulong(x)
#define bswap_64(x) _byteswap_uint64(x)
+#elif defined(OS_FREEBSD)
+#include <sys/endian.h>
+#define bswap_16(x) bswap16(x)
+#define bswap_32(x) bswap32(x)
+#define bswap_64(x) bswap64(x)
#else
#include <byteswap.h>
#endif
#elif defined(OS_MACOSX)
#include <libkern/OSByteOrder.h>
#define bswap_16(x) OSSwapInt16(x)

View file

@ -1,10 +0,0 @@
--- gpu/gpu.gyp.orig 2011-09-14 00:37:31.000000000 +0300
+++ gpu/gpu.gyp 2011-09-14 00:36:48.000000000 +0300
@@ -328,6 +328,7 @@
],
'include_dirs': [
'..',
+ '<(prefix_dir)/include',
],
'sources': [
'command_buffer/common/gl_mock.h',

View file

@ -1,11 +1,11 @@
--- ipc/ipc_channel_posix.cc.orig 2011-06-06 00:13:54.367162724 +0300
+++ ipc/ipc_channel_posix.cc 2011-06-06 00:14:09.016163924 +0300
@@ -927,7 +927,7 @@
--- ipc/ipc_channel_posix.cc.orig 2012-01-18 11:12:21.000000000 +0200
+++ ipc/ipc_channel_posix.cc 2012-01-29 17:17:10.000000000 +0200
@@ -948,7 +948,7 @@
bool Channel::ChannelImpl::GetClientEuid(uid_t* client_euid) const {
DCHECK(HasAcceptedConnection());
-#if defined(OS_MACOSX)
+#if defined(OS_MACOSX) || defined(OS_FREEBSD)
-#if defined(OS_MACOSX) || defined(OS_OPENBSD)
+#if defined(OS_MACOSX) || defined(OS_BSD)
uid_t peer_euid;
gid_t peer_gid;
if (getpeereid(pipe_, &peer_euid, &peer_gid) != 0) {

View file

@ -0,0 +1,11 @@
--- media/audio/pulse/pulse_output.cc.orig 2012-02-05 15:13:12.000000000 +0200
+++ media/audio/pulse/pulse_output.cc 2012-02-05 15:13:41.000000000 +0200
@@ -8,7 +8,7 @@
#include "base/message_loop.h"
#include "media/audio/audio_parameters.h"
#include "media/audio/audio_util.h"
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
#include "media/audio/linux/audio_manager_linux.h"
#elif defined(OS_OPENBSD)
#include "media/audio/openbsd/audio_manager_openbsd.h"

View file

@ -0,0 +1,11 @@
--- media/audio/pulse/pulse_output.h.orig 2012-02-05 15:04:15.000000000 +0200
+++ media/audio/pulse/pulse_output.h 2012-02-05 15:11:25.000000000 +0200
@@ -31,7 +31,7 @@
class SeekableBuffer;
}
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
class AudioManagerLinux;
typedef AudioManagerLinux AudioManagerPulse;
#elif defined(OS_OPENBSD)

View file

@ -1,24 +1,6 @@
--- media/media.gyp.orig 2011-11-01 10:42:28.000000000 +0200
+++ media/media.gyp 2011-11-22 00:34:45.000000000 +0200
@@ -293,7 +293,7 @@
],
},
'conditions': [
- ['OS=="linux"', {
+ ['OS=="linux" or OS=="freebsd"', {
'conditions': [
['use_pulseaudio == 1', {
'link_settings': {
@@ -479,7 +479,7 @@
],
},
}],
- [ 'OS=="linux"', {
+ [ 'OS=="linux" or OS=="freebsd"', {
'variables': {
'conditions': [
[ 'target_arch=="ia32"', {
@@ -765,7 +765,7 @@
--- media/media.gyp.orig 2012-01-18 11:11:21.000000000 +0200
+++ media/media.gyp 2012-01-29 19:28:14.000000000 +0200
@@ -804,7 +804,7 @@
},
],
}],

View file

@ -1,24 +0,0 @@
--- net/base/dnsrr_resolver.cc.orig 2011-01-19 12:11:29.000000000 +0100
+++ net/base/dnsrr_resolver.cc 2011-01-21 20:49:12.000000000 +0100
@@ -4,10 +4,6 @@
#include "net/base/dnsrr_resolver.h"
-#if defined(OS_POSIX)
-#include <resolv.h>
-#endif
-
#if defined(OS_WIN)
#include <windns.h>
#endif
@@ -23,6 +19,10 @@
#include "net/base/dns_reload_timer.h"
#include "net/base/dns_util.h"
#include "net/base/net_errors.h"
+#if defined(OS_POSIX)
+#include <netinet/in.h>
+#include <resolv.h>
+#endif
// Life of a query:
//

View file

@ -1,14 +0,0 @@
--- net/dns/dns_config_service_posix.h.orig 2011-10-09 01:34:20.846923374 +0300
+++ net/dns/dns_config_service_posix.h 2011-10-09 01:35:52.752414016 +0300
@@ -6,6 +6,11 @@
#define NET_DNS_DNS_CONFIG_SERVICE_POSIX_H_
#pragma once
+#include "build/build_config.h"
+
+#if defined(OS_FREEBSD)
+#include <netinet/in.h>
+#endif
#include <resolv.h>
#include "base/compiler_specific.h"

View file

@ -1,22 +1,11 @@
--- net/net.gyp.orig 2011-06-24 11:30:36.000000000 +0300
+++ net/net.gyp 2011-06-28 20:55:27.155810165 +0300
@@ -149,8 +149,8 @@
'base/network_change_notifier_linux.h',
'base/network_change_notifier_mac.cc',
'base/network_change_notifier_mac.h',
- 'base/network_change_notifier_netlink_linux.cc',
- 'base/network_change_notifier_netlink_linux.h',
+ #'base/network_change_notifier_netlink_linux.cc',
+ #'base/network_change_notifier_netlink_linux.h',
'base/network_change_notifier_win.cc',
'base/network_change_notifier_win.h',
'base/network_config_watcher_mac.cc',
@@ -731,7 +731,7 @@
'../build/linux/system.gyp:gconf',
'../build/linux/system.gyp:gdk',
'../build/linux/system.gyp:gio',
- '../build/linux/system.gyp:libresolv',
+ #'../build/linux/system.gyp:libresolv',
],
'conditions': [
['use_openssl==1', {
--- net/net.gyp.orig 2012-01-30 23:30:30.000000000 +0200
+++ net/net.gyp 2012-01-30 23:30:57.000000000 +0200
@@ -853,7 +853,7 @@
'sources!': [
'base/network_change_notifier_linux.cc',
'base/network_change_notifier_netlink_linux.cc',
- 'proxy/proxy_config_service_linux.cc',
+# 'proxy/proxy_config_service_linux.cc',
],
},{
'dependencies': [

View file

@ -1,11 +1,11 @@
--- skia/ext/vector_platform_device_skia.cc.orig 2011-11-01 10:42:37.000000000 +0200
+++ skia/ext/vector_platform_device_skia.cc 2011-11-21 22:28:09.000000000 +0200
--- skia/ext/vector_platform_device_skia.cc.orig 2012-01-18 11:11:53.000000000 +0200
+++ skia/ext/vector_platform_device_skia.cc 2012-01-29 19:42:26.000000000 +0200
@@ -88,7 +88,7 @@
SkASSERT(false);
return NULL;
}
-#elif defined(OS_LINUX) || defined(OS_ANDROID)
+#elif defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FREEBSD)
-#elif defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_OPENBSD)
+#elif defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
void VectorPlatformDeviceSkia::DrawToNativeContext(
PlatformSurface surface, int x, int y, const PlatformRect* src_rect) {
// Should never be called on Linux.

View file

@ -1,11 +1,11 @@
--- skia/ext/vector_platform_device_skia.h.orig 2011-11-01 10:42:37.000000000 +0200
+++ skia/ext/vector_platform_device_skia.h 2011-11-21 22:29:46.000000000 +0200
@@ -40,7 +40,7 @@
virtual void DrawToNativeContext(CGContext* context, int x, int y,
const CGRect* src_rect);
virtual CGContextRef GetBitmapContext();
-#elif defined(OS_LINUX) || defined(OS_ANDROID)
+#elif defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FREEBSD)
virtual void DrawToNativeContext(PlatformSurface surface, int x, int y,
const PlatformRect* src_rect);
#endif
--- skia/ext/vector_platform_device_skia.h.orig 2012-01-18 11:11:53.000000000 +0200
+++ skia/ext/vector_platform_device_skia.h 2012-01-29 19:44:49.000000000 +0200
@@ -43,7 +43,7 @@
int y,
const CGRect* src_rect) OVERRIDE;
virtual CGContextRef GetBitmapContext() OVERRIDE;
-#elif defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_OPENBSD)
+#elif defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
virtual void DrawToNativeContext(PlatformSurface surface,
int x,
int y,

View file

@ -1,11 +0,0 @@
--- ./third_party/iccjpeg/iccjpeg.h.orig 2010-12-16 02:11:35.000000000 +0100
+++ ./third_party/iccjpeg/iccjpeg.h 2010-12-20 20:15:08.000000000 +0100
@@ -17,7 +17,7 @@
*/
#include <stdio.h> /* needed to define "FILE", "NULL" */
-#include "jpeglib.h"
+#include "../libjpeg/jpeglib.h"
/*

View file

@ -1,12 +1,11 @@
--- third_party/leveldatabase/env_chromium.cc.orig 2011-10-09 00:31:40.173746519 +0300
+++ third_party/leveldatabase/env_chromium.cc 2011-10-09 00:33:07.446263098 +0300
@@ -30,7 +30,8 @@
#include "base/win/win_util.h"
#endif
-#if defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_ANDROID)
+#if defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_ANDROID) \
+ || defined(OS_FREEBSD)
// The following are glibc-specific
--- third_party/leveldatabase/env_chromium.cc.orig 2012-01-18 11:12:19.000000000 +0200
+++ third_party/leveldatabase/env_chromium.cc 2012-01-29 19:48:55.000000000 +0200
@@ -33,7 +33,7 @@
namespace {
#if defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_ANDROID) || \
- defined(OS_OPENBSD)
+ defined(OS_BSD)
// The following are glibc-specific
size_t fread_unlocked(void *ptr, size_t size, size_t n, FILE *file) {

View file

@ -0,0 +1,12 @@
--- third_party/libjingle/source/talk/base/ipaddress.h.orig 2012-01-30 22:44:57.000000000 +0200
+++ third_party/libjingle/source/talk/base/ipaddress.h 2012-01-30 22:47:28.000000000 +0200
@@ -33,6 +33,9 @@
#include <arpa/inet.h>
#include <netdb.h>
#endif
+#ifdef BSD
+#include <sys/socket.h>
+#endif
#ifdef WIN32
#include <winsock2.h>
#include <ws2tcpip.h>

View file

@ -1,15 +1,6 @@
--- third_party/libvpx/libvpx.gyp.orig 2011-10-09 00:08:25.368469771 +0300
+++ third_party/libvpx/libvpx.gyp 2011-10-10 21:41:31.622025374 +0300
@@ -77,7 +77,7 @@
'source/libvpx/vpx_scale/generic/yv12extend.c',
],
'conditions': [
- ['OS=="mac" or OS=="linux"', {
+ ['OS=="mac" or OS=="linux" or OS=="freebsd"', {
'asm_obj_extension': 'o',
}],
['OS=="win"', {
@@ -86,7 +86,7 @@
--- third_party/libvpx/libvpx.gyp.orig 2012-01-29 21:54:54.000000000 +0200
+++ third_party/libvpx/libvpx.gyp 2012-01-29 21:55:14.000000000 +0200
@@ -13,7 +13,7 @@
],
},
'conditions': [
@ -18,33 +9,3 @@
'targets': [
{
# This libvpx target contains both encoder and decoder.
@@ -98,7 +98,7 @@
'<(SHARED_INTERMEDIATE_DIR)/third_party/libvpx',
'yasm_path': '<(PRODUCT_DIR)/yasm',
'conditions': [
- [ 'OS=="linux" and target_arch=="ia32"', {
+ [ '(OS=="linux" or OS=="freebsd") and target_arch=="ia32"', {
'yasm_flags': [
'-felf32',
'-m', 'x86',
@@ -106,7 +106,7 @@
'-I', 'source/libvpx',
],
}],
- [ 'OS=="linux" and target_arch=="x64"', {
+ [ '(OS=="linux" or OS=="freebsd") and target_arch=="x64"', {
'yasm_flags': [
'-felf64',
'-m', 'amd64',
@@ -482,6 +482,11 @@
'libvpx_path': 'lib/linux/arm',
},
}],
+ ['OS=="freebsd"', {
+ 'variables': {
+ 'libvpx_path': '/usr/local/lib',
+ },
+ }],
['OS=="win"', {
'variables': {
'libvpx_path': 'lib/win/ia32',

View file

@ -1,11 +0,0 @@
--- third_party/openssl/openssl.gyp.orig 2011-11-21 22:53:37.000000000 +0200
+++ third_party/openssl/openssl.gyp 2011-11-21 22:54:53.000000000 +0200
@@ -576,7 +576,7 @@
'openssl/engines/e_ubsec.c',
],
'conditions': [
- ['OS=="linux"', {
+ ['OS=="linux" or OS=="freebsd"', {
'defines': [
# ENGINESDIR must be defined if OPENSSLDIR is.
'ENGINESDIR="/dev/null"',

View file

@ -1,11 +0,0 @@
--- third_party/skia/include/core/SkPreConfig.h.orig 2011-11-01 10:43:44.000000000 +0200
+++ third_party/skia/include/core/SkPreConfig.h 2011-11-21 22:31:26.000000000 +0200
@@ -30,7 +30,7 @@
#define SK_BUILD_FOR_WIN32
#elif defined(__SYMBIAN32__)
#define SK_BUILD_FOR_WIN32
- #elif defined(linux) || defined(__OpenBSD_)
+ #elif defined(linux) || defined(__OpenBSD_) || defined(__FreeBSD__)
#define SK_BUILD_FOR_UNIX
#elif TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR
#define SK_BUILD_FOR_IOS

View file

@ -1,18 +0,0 @@
--- third_party/yasm/yasm_compile.gypi.orig 2011-11-22 00:07:26.000000000 +0200
+++ third_party/yasm/yasm_compile.gypi 2011-11-22 00:08:10.000000000 +0200
@@ -36,13 +36,13 @@
}],
# Define yasm_flags that pass into YASM.
- [ 'OS=="linux" and target_arch=="ia32"', {
+ [ '(OS=="linux" or OS=="freebsd") and target_arch=="ia32"', {
'yasm_flags': [
'-felf32',
'-m', 'x86',
],
}],
- [ 'OS=="linux" and target_arch=="x64"', {
+ [ '(OS=="linux" or OS=="freebsd") and target_arch=="x64"', {
'yasm_flags': [
'-DPIC',
'-felf64',

View file

@ -1,11 +0,0 @@
--- tools/gyp/pylib/gyp/__init__.py.orig 2011-09-30 10:20:48.000000000 +0200
+++ tools/gyp/pylib/gyp/__init__.py 2011-10-06 00:20:12.000000000 +0200
@@ -332,6 +332,8 @@
'cygwin': 'msvs',
'freebsd7': 'make',
'freebsd8': 'make',
+ 'freebsd9': 'make',
+ 'freebsd10': 'make',
'linux2': 'make',
'linux3': 'make',
'openbsd4': 'make',

View file

@ -210,6 +210,19 @@ bin/chrome
%%DATADIR%%/resources/inspector/Images/warningOrangeDot.png
%%DATADIR%%/resources/inspector/Images/warningsErrors.png
%%DATADIR%%/resources/inspector/ScriptFormatterWorker.js
%%DATADIR%%/resources/inspector/resourcesPanel.css
%%DATADIR%%/resources/inspector/heapProfiler.css
%%DATADIR%%/resources/inspector/elementsPanel.css
%%DATADIR%%/resources/inspector/textPrompt.css
%%DATADIR%%/resources/inspector/splitView.css
%%DATADIR%%/resources/inspector/resourceView.css
%%DATADIR%%/resources/inspector/panelEnablerView.css
%%DATADIR%%/resources/inspector/networkPanel.css
%%DATADIR%%/resources/inspector/textViewer.css
%%DATADIR%%/resources/inspector/profilesPanel.css
%%DATADIR%%/resources/inspector/auditsPanel.css
%%DATADIR%%/resources/inspector/timelinePanel.css
%%DATADIR%%/resources/inspector/scriptsPanel.css
%%DATADIR%%/resources/inspector/dataGrid.css
%%DATADIR%%/resources/inspector/inspectorCommon.css
%%DATADIR%%/resources/inspector/networkLogView.css