Update to 13.0.782.107

- default H.264 codecs to on [1]
- drop ibus dependency, no longer needed [1]

Submitted by:	George Liaskos (patch updates, [1])
Obtained from:	Chromium development repository
Security:	http://www.vuxml.org/freebsd/6887828f-0229-11e0-b84d-00262d5ed8ee.html
This commit is contained in:
Rene Ladan 2011-08-02 21:12:37 +00:00
parent f760c11728
commit aae7b01c27
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=278830
100 changed files with 960 additions and 2122 deletions

View file

@ -7,7 +7,7 @@
PORTNAME= chromium
DISTVERSIONPREFIX= courgette-redacted-
DISTVERSION= 12.0.742.124
DISTVERSION= 13.0.782.107
CATEGORIES= www
MASTER_SITES= http://download.goodking.org/downloads/ \
ftp://rene-ladan.nl/pub/distfiles/ \
@ -23,6 +23,7 @@ BUILD_DEPENDS= ${LOCALBASE}/bin/flex:${PORTSDIR}/textproc/flex \
${LOCALBASE}/bin/gperf:${PORTSDIR}/devel/gperf \
bash:${PORTSDIR}/shells/bash \
yasm:${PORTSDIR}/devel/yasm \
v4l_compat>=1.0.20110603:${PORTSDIR}/multimedia/v4l_compat \
nss>=3.12:${PORTSDIR}/security/nss
# minimal version of nss, LIB_DEPENDS does not enforce this
@ -34,7 +35,6 @@ LIB_DEPENDS= execinfo.1:${PORTSDIR}/devel/libexecinfo \
freetype.9:${PORTSDIR}/print/freetype2 \
nss3.1:${PORTSDIR}/security/nss \
gnome-keyring.0:${PORTSDIR}/security/libgnome-keyring \
ibus.2:${PORTSDIR}/textproc/ibus \
cups.2:${PORTSDIR}/print/cups-client
RUN_DEPENDS= ${LOCALBASE}/lib/alsa-lib/libasound_module_pcm_oss.so:${PORTSDIR}/audio/alsa-plugins \
@ -57,7 +57,6 @@ DESKTOP_ENTRIES="Chromium" "${COMMENT}" "${DATADIR}/product_logo_48.png" \
ALL_TARGET= chrome
#user tunables showing defaults, some won't compile if changed
#GYP_DEFINES+= target_arch=ia32 #or x64, should be detected automatically
#GYP_DEFINES+= use_system_bzip2=1
#GYP_DEFINES+= use_system_libevent=0
#GYP_DEFINES+= use_system_libjpeg=1
@ -68,8 +67,12 @@ GYP_DEFINES+= use_system_ffmpeg=0
GYP_DEFINES+= use_system_yasm=1
#GYP_DEFINES+= use_system_zlib=1
GYP_DEFINES+= python_ver=${PYTHON_VER}
GYP_DEFINES+= disable_nacl=1
GYP_DEFINES+= linux_use_heapchecker=1
GYP_DEFINES+= linux_link_gsettings=1
GYP_DEFINES+= linux_link_gnome_keyring=1
OPTIONS= CODECS "Compile and enable patented codecs like H.264" off \
OPTIONS= CODECS "Compile and enable patented codecs like H.264" on \
GCONF "Use GConf2 for preferences" on \
VPX "Use system libvpx for VP8 codec" on

View file

@ -1,2 +1,2 @@
SHA256 (chromium-courgette-redacted-12.0.742.124.tar.xz) = 7ac6edc3bc4072e32105a10d5c0a4e83d1321d68088b246e53fb2b403cd5e002
SIZE (chromium-courgette-redacted-12.0.742.124.tar.xz) = 120422220
SHA256 (chromium-courgette-redacted-13.0.782.107.tar.xz) = 09bea92a6fec2325d6bb28a55c1f225b79ceacb7ec119d3f1af57f6421c52f2a
SIZE (chromium-courgette-redacted-13.0.782.107.tar.xz) = 123793692

View file

@ -1,14 +1,5 @@
--- app/app_base.gypi.orig 2011-05-06 12:02:51.000000000 +0300
+++ app/app_base.gypi 2011-06-05 20:27:30.437162962 +0300
@@ -268,7 +268,7 @@
['exclude', '^win/*'],
],
}],
- ['OS=="linux"', {
+ ['OS=="linux" or OS=="freebsd" or OS=="openbsd"', {
'sources!': [
'../ui/base/keycodes/keyboard_code_conversion_mac.mm',
'../ui/base/keycodes/keyboard_code_conversion_mac.h',
@@ -281,7 +281,6 @@
'link_settings': {
'libraries': [

View file

@ -1,6 +1,14 @@
--- base/base.gypi.orig 2011-05-06 12:03:16.000000000 +0300
+++ base/base.gypi 2011-06-05 19:27:52.717164750 +0300
@@ -190,6 +190,7 @@
--- base/base.gypi.orig 2011-06-28 22:44:26.635806924 +0300
+++ base/base.gypi 2011-06-28 23:21:49.321810313 +0300
@@ -94,6 +94,7 @@
'files/file_path_watcher_linux.cc',
'files/file_path_watcher_mac.cc',
'files/file_path_watcher_win.cc',
+ 'files/file_path_watcher_freebsd.cc',
'fix_wp64.h',
'float_util.h',
'global_descriptors_posix.cc',
@@ -189,6 +190,7 @@
'process_posix.cc',
'process_util.cc',
'process_util.h',
@ -8,7 +16,7 @@
'process_util_linux.cc',
'process_util_mac.mm',
'process_util_posix.cc',
@@ -363,11 +364,9 @@
@@ -371,11 +373,9 @@
'message_pump_glib_x.cc',
],
}],
@ -21,20 +29,16 @@
'linux_util.cc',
],
},
@@ -408,10 +407,10 @@
@@ -413,7 +413,7 @@
'string16.cc',
],
},],
['OS=="freebsd" or OS=="openbsd"', {
- ['os_posix==1 and OS!="linux" and OS!="mac"', {
+ ['os_posix==1 and OS!="linux" and OS!="mac" and OS!="freebsd"', {
'sources!': [
- 'base/files/file_path_watcher_linux.cc',
+ 'files/file_path_watcher_linux.cc',
'files/file_path_watcher_linux.cc',
],
'sources': [
- 'base/files/file_path_watcher_stub.cc',
+ 'files/file_path_watcher_stub.cc',
],
}],
],
@@ -481,6 +480,12 @@
@@ -491,6 +491,13 @@
],
}],
[ 'OS == "freebsd" or OS == "openbsd"', {
@ -43,6 +47,7 @@
+ 'file_util_linux.cc',
+ 'process_linux.cc',
+ 'process_util_linux.cc',
+ 'files/file_path_watcher_linux.cc',
+ ],
'link_settings': {
'libraries': [

View file

@ -0,0 +1,476 @@
--- /dev/null 2011-06-28 22:00:00.000000000 +0300
+++ base/files/file_path_watcher_freebsd.cc 2011-06-28 22:03:34.898806831 +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::CreateForCurrentThread();
+
+ 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,5 +1,5 @@
--- base/process_util.h.orig 2011-04-15 11:01:37.000000000 +0300
+++ base/process_util.h 2011-04-15 21:36:54.331640613 +0300
--- base/process_util.h.orig 2011-06-24 11:30:52.000000000 +0300
+++ base/process_util.h 2011-06-26 16:55:34.997784494 +0300
@@ -28,6 +28,10 @@
#include <sys/types.h>
#endif
@ -11,18 +11,18 @@
#include <list>
#include <string>
#include <utility>
@@ -161,7 +165,7 @@
@@ -163,7 +167,7 @@
// Win XP SP1 as well.
ProcessId GetProcId(ProcessHandle process);
BASE_API ProcessId GetProcId(ProcessHandle process);
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
// Returns the path to the executable of the given process.
FilePath GetProcessExecutablePath(ProcessHandle process);
BASE_API FilePath GetProcessExecutablePath(ProcessHandle process);
@@ -170,13 +174,14 @@
@@ -172,13 +176,14 @@
// Exposed for testing.
int ParseProcStatCPU(const std::string& input);
BASE_API int ParseProcStatCPU(const std::string& input);
+#elif defined(OS_LINUX)
static const char kAdjustOOMScoreSwitch[] = "--adjust-oom-score";
@ -30,13 +30,13 @@
// This adjusts /proc/process/oom_adj so the Linux OOM killer will prefer
// certain process types over others. The range for the adjustment is
// [-17,15], with [0,15] being user accessible.
bool AdjustOOMScore(ProcessId process, int score);
BASE_API bool AdjustOOMScore(ProcessId process, int score);
-#endif
+#endif /* defined(OS_LINUX) || defined(OS_FREEBSD) */
+#endif /* defined(OS_LINUX) || defined(OS_FREEBSD) */
#if defined(OS_POSIX)
// Returns the ID for the parent of the given process.
@@ -439,7 +444,7 @@
@@ -447,7 +452,7 @@
#if defined(OS_WIN)
HANDLE snapshot_;
bool started_iteration_;

View file

@ -1,71 +1,15 @@
--- build/common.gypi.orig 2011-05-06 12:03:15.000000000 +0300
+++ build/common.gypi 2011-06-05 22:52:31.690163552 +0300
@@ -95,7 +95,7 @@
'file_manager_extension%': 0,
# Python version.
- 'python_ver%': '2.5',
+ 'python_ver%': '2.6',
# Set ARM-v7 compilation flags
'armv7%': 0,
@@ -256,7 +256,7 @@
# Whether proprietary audio/video codecs are assumed to be included with
# this build (only meaningful if branding!=Chrome).
- 'proprietary_codecs%': 0,
+ 'proprietary_codecs%': 1,
# TODO(bradnelson): eliminate this when possible.
# To allow local gyp files to prevent release.vsprops from being included.
@@ -321,8 +321,8 @@
# Disable TCMalloc's debugallocation.
'linux_use_debugallocation%': 0,
- # Disable TCMalloc's heapchecker.
- 'linux_use_heapchecker%': 0,
+ # Enable TCMalloc's heapchecker.
+ 'linux_use_heapchecker%': 1,
# Disable shadow stack keeping used by heapcheck to unwind the stacks
# better.
@@ -337,7 +337,7 @@
# Used to disable Native Client at compile time, for platforms where it
# isn't supported
- 'disable_nacl%': 0,
+ 'disable_nacl%': 1,
# Set Thumb compilation flags.
'arm_thumb%': 0,
@@ -368,7 +368,7 @@
# Set to 1 to compile with the built in pdf viewer.
'internal_pdf%': 0,
- # This allows to use libcros from the current system, ie. /usr/lib/
+ # This allows to use libcros from the current system, ie. /usr/local/lib/
# The cros_api will be pulled in as a static library, and all headers
# from the system include dirs.
'system_libcros%': 0,
@@ -405,7 +405,7 @@
--- build/common.gypi.orig 2011-06-26 17:27:43.439782011 +0300
+++ build/common.gypi 2011-06-26 17:27:57.372781037 +0300
@@ -445,7 +445,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.
- 'python_arch%': '<!(<(DEPTH)/build/linux/python_arch.sh <(sysroot)/usr/lib/libpython<(python_ver).so.1.0)',
+ 'python_arch%': '<!(<(DEPTH)/build/linux/python_arch.sh <(sysroot)/usr/local/lib/libpython<(python_ver).so.1)',
+ 'python_arch%': '<!(<(DEPTH)/build/linux/python_arch.sh <(sysroot)/usr/local/lib/libpython<(python_ver).so.1.0)',
'conditions': [
['branding=="Chrome"', {
'linux_breakpad%': 1,
@@ -478,7 +478,7 @@
],
}],
- ['OS=="mac" or (OS=="linux" and chromeos==0 and target_arch!="arm")', {
+ ['OS=="mac" or OS=="freebsd" or (OS=="linux" and chromeos==0 and target_arch!="arm")', {
'use_cups%': 1,
}, {
'use_cups%': 0,
@@ -779,7 +779,7 @@
@@ -850,7 +850,7 @@
['exclude', '(^|/)(gtk|x11)_[^/]*\\.(h|cc)$'],
],
}],

View file

@ -1,11 +1,11 @@
--- ./build/features_override.gypi.orig 2010-12-16 02:11:47.000000000 +0100
+++ ./build/features_override.gypi 2010-12-20 20:15:08.000000000 +0100
@@ -70,7 +70,7 @@
'enable_svg%': '<(enable_svg)',
'enable_touch_events%': '<(enable_touch_events)',
'conditions': [
- ['(OS=="win" or OS=="linux" or OS=="mac") and use_accelerated_compositing==1', {
+ ['(OS=="win" or OS=="linux" or OS=="mac" or OS=="freebsd") and use_accelerated_compositing==1', {
--- build/features_override.gypi.orig 2011-06-24 11:30:52.000000000 +0300
+++ build/features_override.gypi 2011-06-26 17:35:55.815781753 +0300
@@ -110,7 +110,7 @@
# TODO(crogers): For the moment Windows is only enabled for
# Google-branded build, since the FFmpeg DLLs need to be re-built
# for chromium.
- ['OS=="mac" or OS=="linux" or (OS=="win" and branding=="Chrome")', {
+ ['OS=="mac" or OS=="linux" or OS=="freebsd" or (OS=="win" and branding=="Chrome")', {
'feature_defines': [
'WTF_USE_ACCELERATED_COMPOSITING=1',
'ENABLE_3D_RENDERING=1',
'ENABLE_WEB_AUDIO=1',
],

View file

@ -1,14 +1,6 @@
--- chrome/app/chrome_exe_main_gtk.cc.orig 2011-05-06 12:03:31.000000000 +0300
+++ chrome/app/chrome_exe_main_gtk.cc 2011-06-03 23:30:58.238403064 +0300
@@ -18,14 +18,16 @@
extern "C" {
int ChromeMain(int argc, const char** argv);
-#if defined(OS_LINUX) && defined(USE_TCMALLOC)
+#if (defined(OS_LINUX) || defined(OS_FREEBSD)) && defined(USE_TCMALLOC)
int tc_set_new_mode(int mode);
#endif
}
--- chrome/app/chrome_exe_main_gtk.cc.orig 2011-06-24 11:31:08.000000000 +0300
+++ chrome/app/chrome_exe_main_gtk.cc 2011-06-26 17:42:52.610782235 +0300
@@ -25,7 +25,9 @@
int main(int argc, const char** argv) {
base::EnableTerminationOnHeapCorruption();
@ -18,12 +10,3 @@
// NOTE(willchan): One might ask why this call is done here rather than in
// process_util_linux.cc with the definition of
@@ -33,7 +35,7 @@
// dependency on TCMalloc. Really, we ought to have our allocator shim code
// implement this EnableTerminationOnOutOfMemory() function. Whateverz. This
// works for now.
-#if defined(OS_LINUX) && defined(USE_TCMALLOC)
+#if (defined(OS_LINUX) || defined(OS_FREEBSD)) && defined(USE_TCMALLOC)
// For tcmalloc, we need to tell it to behave like new.
tc_set_new_mode(1);
#endif

View file

@ -1,38 +0,0 @@
--- chrome/app/generated_resources.grd.orig 2011-05-06 12:03:31.000000000 +0300
+++ chrome/app/generated_resources.grd 2011-06-05 19:45:04.234163139 +0300
@@ -1000,7 +1000,7 @@
Preferences...
</message>
</if>
- <if expr="os == 'linux2'">
+ <if expr="os == 'linux2' or os.find('bsd') != -1">
<message name="IDS_PREFERENCES" desc="The text label of the Preferences menu item.">
Preferences
</message>
@@ -7124,7 +7124,7 @@
</message>
</if>
- <if expr="os == 'darwin' or (os =='linux2' and not pp_ifdef('chromeos'))">
+ <if expr="os == 'darwin' or os.find('bsd') != -1 or (os =='linux2' and not pp_ifdef('chromeos'))">
<message name="IDS_AUTOFILL_OPTIONS_TITLE" desc="The title of the Autofill dialog.">
Autofill Preferences
</message>
@@ -9416,7 +9416,7 @@
</if> <!-- os == 'darwin' -->
<!-- Linux Global Menubar Menus -->
- <if expr="os == 'linux2'">
+ <if expr="os == 'linux2' or os.find('bsd') != -1">
<!-- Unity and some other GNOME configurations now have a permanent,
Mac-like menu bar that lives outside the window at the top of the
screen. The following strings should be in Linux style, not Mac
@@ -12115,7 +12115,7 @@
Import bookmarks now...
</message>
- <if expr="os == 'linux2' or os == 'openbsd4' or os=='freebsd6'">
+ <if expr="os == 'linux2' or os.find('bsd') != -1">
<!-- Linux proxy configuration fallback help -->
<message name="IDS_ABOUT_LINUX_PROXY_CONFIG_TITLE" desc="Title of HTML page shown on systems where system proxy configuration is unsupported.">
Proxy Configuration Help

View file

@ -1,22 +0,0 @@
--- chrome/browser/browser_main_posix.cc.orig 2011-05-06 12:03:38.000000000 +0300
+++ chrome/browser/browser_main_posix.cc 2011-06-03 23:58:29.518404852 +0300
@@ -20,7 +20,7 @@
#include "chrome/common/chrome_switches.h"
#include "content/browser/browser_thread.h"
-#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
+#if (defined(OS_LINUX) || defined(OS_FREEBSD)) && !defined(OS_CHROMEOS)
#include "chrome/browser/printing/print_dialog_gtk.h"
#endif
@@ -230,8 +230,8 @@
}
}
-#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
+#if (defined(OS_LINUX) || defined(OS_FREEBSD)) && !defined(OS_CHROMEOS)
printing::PrintingContextCairo::SetCreatePrintDialogFunction(
&PrintDialogGtk::CreatePrintDialog);
-#endif // defined(OS_LINUX) && !defined(OS_CHROMEOS)
+#endif // (defined(OS_LINUX) || defined(OS_FREEBSD)) && !defined(OS_CHROMEOS)
}

View file

@ -0,0 +1,20 @@
--- chrome/browser/chrome_content_browser_client.cc.orig 2011-06-29 20:38:10.627569565 +0300
+++ chrome/browser/chrome_content_browser_client.cc 2011-06-29 20:38:47.261569975 +0300
@@ -48,7 +48,7 @@
#include "net/base/cookie_monster.h"
#include "net/base/cookie_options.h"
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
#include "base/linux_util.h"
#include "chrome/browser/crash_handler_host_linux.h"
#endif
@@ -323,7 +323,7 @@
#endif
}
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
int ChromeContentBrowserClient::GetCrashSignalFD(
const std::string& process_type) {
if (process_type == switches::kRendererProcess)

View file

@ -1,29 +0,0 @@
--- chrome/browser/memory_details.cc.orig 2011-04-15 11:01:47.000000000 +0300
+++ chrome/browser/memory_details.cc 2011-04-15 22:31:00.350640234 +0300
@@ -25,7 +25,7 @@
#include "grit/generated_resources.h"
#include "ui/base/l10n/l10n_util.h"
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
#include "content/browser/zygote_host_linux.h"
#include "content/browser/renderer_host/render_sandbox_host_linux.h"
#endif
@@ -109,7 +109,7 @@
void MemoryDetails::CollectChildInfoOnUIThread() {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
const pid_t zygote_pid = ZygoteHost::GetInstance()->pid();
const pid_t sandbox_helper_pid = RenderSandboxHostLinux::GetInstance()->pid();
#endif
@@ -236,7 +236,7 @@
}
}
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
if (process.pid == zygote_pid) {
process.type = ChildProcessInfo::ZYGOTE_PROCESS;
} else if (process.pid == sandbox_helper_pid) {

View file

@ -1,11 +0,0 @@
--- ./chrome/browser/memory_purger.cc.orig 2010-12-16 02:11:58.000000000 +0100
+++ ./chrome/browser/memory_purger.cc 2010-12-20 20:15:08.000000000 +0100
@@ -135,7 +135,7 @@
// * Purge AppCache memory. Not yet implemented sufficiently.
// * Browser-side DatabaseTracker. Not implemented sufficiently.
-#if (defined(OS_WIN) || defined(OS_LINUX)) && defined(USE_TCMALLOC)
+#if (defined(OS_WIN) || defined(OS_LINUX) || defined(OS_FREEBSD)) && defined(USE_TCMALLOC)
// Tell tcmalloc to release any free pages it's still holding.
//
// TODO(pkasting): A lot of the above calls kick off actions on other threads.

View file

@ -1,11 +0,0 @@
--- ./chrome/browser/notifications/balloon_collection_impl.h.orig 2010-12-16 02:11:58.000000000 +0100
+++ ./chrome/browser/notifications/balloon_collection_impl.h 2010-12-20 20:15:08.000000000 +0100
@@ -56,7 +56,7 @@
virtual void WillProcessMessage(const MSG& event) {}
virtual void DidProcessMessage(const MSG& event);
#endif
-#if defined(OS_LINUX)
+#if defined(TOOLKIT_USES_GTK)
virtual void WillProcessEvent(GdkEvent* event) {}
virtual void DidProcessEvent(GdkEvent* event);
#endif

View file

@ -1,19 +0,0 @@
--- ./chrome/browser/shell_integration_unittest.cc.orig 2010-12-16 02:11:58.000000000 +0100
+++ ./chrome/browser/shell_integration_unittest.cc 2010-12-20 20:15:08.000000000 +0100
@@ -21,13 +21,13 @@
#if defined(OS_WIN)
#include "chrome/installer/util/browser_distribution.h"
-#elif defined(OS_LINUX)
+#elif defined(OS_LINUX) || defined(OS_FREEBSD)
#include "base/environment.h"
-#endif // defined(OS_LINUX)
+#endif // defined(OS_LINUX) || defined(OS_FREEBSD)
#define FPL FILE_PATH_LITERAL
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
namespace {
// Provides mock environment variables values based on a stored map.

View file

@ -1,11 +0,0 @@
--- ./chrome/browser/task_manager/task_manager_resource_providers.cc.orig 2010-12-16 02:11:54.000000000 +0100
+++ ./chrome/browser/task_manager/task_manager_resource_providers.cc 2010-12-20 20:15:08.000000000 +0100
@@ -1198,7 +1198,7 @@
default_icon_ = IconUtil::CreateSkBitmapFromHICON(icon, icon_size);
}
}
-#elif defined(OS_LINUX)
+#elif defined(OS_LINUX) || defined(OS_FREEBSD)
if (!default_icon_) {
ResourceBundle& rb = ResourceBundle::GetSharedInstance();
default_icon_ = rb.GetBitmapNamed(IDR_PRODUCT_LOGO_16);

View file

@ -1,47 +0,0 @@
--- ./chrome/browser/ui/browser.cc.orig 2010-12-16 02:11:56.000000000 +0100
+++ ./chrome/browser/ui/browser.cc 2010-12-20 20:15:08.000000000 +0100
@@ -271,7 +271,7 @@
BrowserList::RemoveBrowser(this);
-#if defined(OS_WIN) || defined(OS_LINUX)
+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_FREEBSD)
if (!BrowserList::HasBrowserWithProfile(profile_)) {
// We're the last browser window with this profile. We need to nuke the
// TabRestoreService, which will start the shutdown of the
@@ -799,7 +799,7 @@
// On Mac or ChromeOS, we don't want to suffix the page title with
// the application name.
return title;
-#elif defined(OS_WIN) || defined(OS_LINUX)
+#elif defined(OS_WIN) || defined(OS_LINUX) || defined(OS_FREEBSD)
int string_id = IDS_BROWSER_WINDOW_TITLE_FORMAT;
// Don't append the app name to window titles on app frames and app popups
if (type_ & TYPE_APP)
@@ -1445,7 +1445,7 @@
window_->SetFullscreen(!window_->IsFullscreen());
// On Linux, setting fullscreen mode is an async call to the X server, which
// may or may not support fullscreen mode.
-#if !defined(OS_LINUX)
+#if !defined(OS_LINUX) && !defined(OS_FREEBSD)
UpdateCommandsForFullscreenMode(window_->IsFullscreen());
#endif
}
@@ -1700,7 +1700,7 @@
void Browser::OpenCreateShortcutsDialog() {
UserMetrics::RecordAction(UserMetricsAction("CreateShortcut"), profile_);
-#if defined(OS_WIN) || defined(OS_LINUX)
+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_FREEBSD)
TabContentsWrapper* current_tab = GetSelectedTabContentsWrapper();
DCHECK(current_tab &&
web_app::IsValidUrl(current_tab->tab_contents()->GetURL())) <<
@@ -2500,7 +2500,7 @@
}
void Browser::CloseFrameAfterDragSession() {
-#if defined(OS_WIN) || defined(OS_LINUX)
+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_FREEBSD)
// This is scheduled to run after we return to the message loop because
// otherwise the frame will think the drag session is still active and ignore
// the request.

View file

@ -1,20 +0,0 @@
--- ./chrome/browser/ui/toolbar/wrench_menu_model.cc.orig 2010-12-16 02:11:56.000000000 +0100
+++ ./chrome/browser/ui/toolbar/wrench_menu_model.cc 2010-12-20 20:15:08.000000000 +0100
@@ -391,7 +391,7 @@
IDS_NEW_INCOGNITO_WINDOW);
AddSeparator();
-#if defined(OS_MACOSX) || (defined(OS_LINUX) && !defined(TOOLKIT_VIEWS))
+#if defined(OS_POSIX) && !defined(TOOLKIT_VIEWS)
// WARNING: Mac does not use the ButtonMenuItemModel, but instead defines the
// layout for this menu item in Toolbar.xib. It does, however, use the
// command_id value from AddButtonItem() to identify this special item.
@@ -406,7 +406,7 @@
#endif
AddSeparator();
-#if defined(OS_MACOSX) || (defined(OS_LINUX) && !defined(TOOLKIT_VIEWS))
+#if defined(OS_POSIX) && !defined(TOOLKIT_VIEWS)
// WARNING: See above comment.
zoom_menu_item_model_.reset(
new menus::ButtonMenuItemModel(IDS_ZOOM_MENU, this));

View file

@ -1,11 +0,0 @@
--- ./chrome/browser/ui/views/create_application_shortcut_view.cc.orig 2010-12-16 02:11:56.000000000 +0100
+++ ./chrome/browser/ui/views/create_application_shortcut_view.cc 2010-12-20 20:15:08.000000000 +0100
@@ -260,7 +260,7 @@
l10n_util::GetString(IDS_PIN_TO_TASKBAR_CHKBOX) :
l10n_util::GetString(IDS_CREATE_SHORTCUTS_QUICK_LAUNCH_BAR_CHKBOX),
profile_->GetPrefs()->GetBoolean(prefs::kWebAppCreateInQuickLaunchBar));
-#elif defined(OS_LINUX)
+#elif defined(OS_LINUX) || defined(OS_FREEBSD)
menu_check_box_ = AddCheckbox(
l10n_util::GetString(IDS_CREATE_SHORTCUTS_MENU_CHKBOX),
profile_->GetPrefs()->GetBoolean(prefs::kWebAppCreateInAppsMenu));

View file

@ -1,20 +0,0 @@
--- chrome/browser/ui/views/download/download_item_view.cc.orig 2011-04-15 11:01:46.000000000 +0300
+++ chrome/browser/ui/views/download/download_item_view.cc 2011-04-15 22:56:06.858645022 +0300
@@ -261,7 +261,7 @@
// Extract the file extension (if any).
FilePath filename(download->target_name());
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
string16 extension = WideToUTF16(base::SysNativeMBToWide(
filename.Extension()));
#else
@@ -271,7 +271,7 @@
// Remove leading '.'
if (extension.length() > 0)
extension = extension.substr(1);
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
string16 rootname = WideToUTF16(base::SysNativeMBToWide(
filename.RemoveExtension().value()));
#else

View file

@ -1,20 +0,0 @@
--- chrome/browser/ui/views/dropdown_bar_host.cc.orig 2011-01-26 10:30:51.000000000 +0100
+++ chrome/browser/ui/views/dropdown_bar_host.cc 2011-01-30 14:07:11.000000000 +0100
@@ -19,7 +19,7 @@
#if defined(OS_WIN)
#include "base/win/scoped_gdi_object.h"
-#elif defined(OS_LINUX)
+#elif defined(TOOLKIT_GTK)
#include "ui/base/gtk/scoped_handle_gtk.h"
#endif
@@ -27,7 +27,7 @@
#if defined(OS_WIN)
typedef base::win::ScopedRegion ScopedPlatformRegion;
-#elif defined(OS_LINUX)
+#elif defined(OS_LINUX) || defined(OS_FREEBSD)
typedef ui::ScopedRegion ScopedPlatformRegion;
#endif

View file

@ -1,11 +0,0 @@
--- chrome/browser/ui/views/extensions/extension_popup.cc.orig 2011-05-06 12:03:37.000000000 +0300
+++ chrome/browser/ui/views/extensions/extension_popup.cc 2011-06-04 00:14:39.536404067 +0300
@@ -23,7 +23,7 @@
#include "views/widget/root_view.h"
#include "views/window/window.h"
-#if defined(OS_LINUX)
+#if defined(TOOLKIT_GTK)
#include "views/widget/widget_gtk.h"
#endif

View file

@ -1,11 +0,0 @@
--- ./chrome/browser/ui/views/extensions/extension_view.cc.orig 2010-12-16 02:11:56.000000000 +0100
+++ ./chrome/browser/ui/views/extensions/extension_view.cc 2010-12-20 20:15:08.000000000 +0100
@@ -14,7 +14,7 @@
#include "chrome/browser/renderer_host/render_widget_host_view_win.h"
#elif defined(TOUCH_UI)
#include "chrome/browser/renderer_host/render_widget_host_view_views.h"
-#elif defined(OS_LINUX)
+#elif defined(OS_LINUX) || defined(OS_FREEBSD)
#include "chrome/browser/renderer_host/render_widget_host_view_gtk.h"
#endif

View file

@ -1,11 +0,0 @@
--- ./chrome/browser/ui/views/frame/app_panel_browser_frame_view.cc.orig 2010-12-16 02:11:56.000000000 +0100
+++ ./chrome/browser/ui/views/frame/app_panel_browser_frame_view.cc 2010-12-20 20:15:08.000000000 +0100
@@ -21,7 +21,7 @@
#include "views/window/window.h"
#include "views/window/window_resources.h"
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
#include "views/window/hit_test.h"
#endif

View file

@ -1,56 +0,0 @@
--- chrome/browser/ui/views/frame/browser_view.cc.orig 2011-05-06 12:03:37.000000000 +0300
+++ chrome/browser/ui/views/frame/browser_view.cc 2011-06-04 00:29:37.489403401 +0300
@@ -4,7 +4,7 @@
#include "chrome/browser/ui/views/frame/browser_view.h"
-#if defined(OS_LINUX)
+#if defined(TOOLKIT_GTK)
#include <gtk/gtk.h>
#endif
@@ -97,7 +97,7 @@
#include "ui/base/message_box_win.h"
#include "ui/base/view_prop.h"
#include "views/window/window_win.h"
-#elif defined(OS_LINUX)
+#elif defined(TOOLKIT_GTK)
#include "chrome/browser/ui/views/accelerator_table_gtk.h"
#include "views/window/hit_test.h"
#include "views/window/window_gtk.h"
@@ -1079,7 +1079,7 @@
views::FocusManager* focus_manager = GetFocusManager();
DCHECK(focus_manager);
-#if defined(OS_LINUX) && !defined(TOUCH_UI)
+#if (defined(OS_LINUX) || defined(OS_FREEBSD)) && !defined(TOUCH_UI)
// Views and WebKit use different tables for GdkEventKey -> views::KeyEvent
// conversion. We need to use View's conversion table here to keep consistent
// behavior with views::FocusManager::OnKeyEvent() method.
@@ -1126,7 +1126,7 @@
return false;
// Executing the command may cause |this| object to be destroyed.
-#if defined(OS_LINUX) && !defined(TOUCH_UI)
+#if (defined(OS_LINUX) || defined(OS_FREEBSD)) && !defined(TOUCH_UI)
if (browser_->IsReservedCommandOrKey(id, event) &&
!event.match_edit_command) {
#else
@@ -1143,7 +1143,7 @@
}
void BrowserView::HandleKeyboardEvent(const NativeWebKeyboardEvent& event) {
-#if defined(OS_LINUX) && !defined(TOUCH_UI)
+#if (defined(OS_LINUX) || defined(OS_FREEBSD)) && !defined(TOUCH_UI)
views::Window* window = GetWidget()->GetWindow();
if (window && event.os_event && !event.skip_in_browser) {
views::KeyEvent views_event(reinterpret_cast<GdkEvent*>(event.os_event));
@@ -2135,7 +2135,7 @@
#endif // No need to invoke SetFullscreen for linux as this code is executed
// once we're already fullscreen on linux.
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
// Updating of commands for fullscreen mode is called from SetFullScreen on
// Wndows (see just above), but for ChromeOS, this method (ProcessFullScreen)
// is called after full screen has happened successfully (via GTK's

View file

@ -1,11 +0,0 @@
--- ./chrome/browser/ui/views/frame/browser_view_layout.cc.orig 2010-12-16 02:11:56.000000000 +0100
+++ ./chrome/browser/ui/views/frame/browser_view_layout.cc 2010-12-20 20:15:08.000000000 +0100
@@ -19,7 +19,7 @@
#include "gfx/scrollbar_size.h"
#include "views/window/window.h"
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
#include "views/window/hit_test.h"
#endif

View file

@ -1,11 +0,0 @@
--- ./chrome/browser/ui/views/frame/opaque_browser_frame_view.cc.orig 2010-12-16 02:11:56.000000000 +0100
+++ ./chrome/browser/ui/views/frame/opaque_browser_frame_view.cc 2010-12-20 20:15:08.000000000 +0100
@@ -28,7 +28,7 @@
#include "views/window/window_resources.h"
#include "views/window/window_shape.h"
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
#include "views/window/hit_test.h"
#endif

View file

@ -1,11 +0,0 @@
--- chrome/browser/ui/views/fullscreen_exit_bubble.cc.orig 2011-05-06 12:03:37.000000000 +0300
+++ chrome/browser/ui/views/fullscreen_exit_bubble.cc 2011-06-04 00:31:52.427403621 +0300
@@ -19,7 +19,7 @@
#if defined(OS_WIN)
#include "ui/base/l10n/l10n_util_win.h"
#include "views/widget/widget_win.h"
-#elif defined(OS_LINUX)
+#elif defined(TOOLKIT_GTK)
#include "views/widget/widget_gtk.h"
#endif

View file

@ -1,11 +0,0 @@
--- chrome/browser/ui/views/fullscreen_exit_bubble.h.orig 2011-05-06 12:03:37.000000000 +0300
+++ chrome/browser/ui/views/fullscreen_exit_bubble.h 2011-06-04 00:35:54.816403061 +0300
@@ -16,7 +16,7 @@
class SlideAnimation;
}
-#if defined(OS_LINUX)
+#if defined(TOOLKIT_GTK)
namespace views {
class WidgetGtk;
}

View file

@ -1,11 +0,0 @@
--- ./chrome/browser/ui/views/location_bar/location_bar_view.cc.orig 2010-12-16 02:11:56.000000000 +0100
+++ ./chrome/browser/ui/views/location_bar/location_bar_view.cc 2010-12-20 20:15:08.000000000 +0100
@@ -4,7 +4,7 @@
#include "chrome/browser/views/location_bar/location_bar_view.h"
-#if defined(OS_LINUX)
+#if defined(TOOLKIT_USES_GTK)
#include <gtk/gtk.h>
#endif

View file

@ -1,11 +0,0 @@
--- ./chrome/browser/ui/views/notifications/balloon_view.cc.orig 2010-12-16 02:11:56.000000000 +0100
+++ ./chrome/browser/ui/views/notifications/balloon_view.cc 2010-12-20 20:15:08.000000000 +0100
@@ -39,7 +39,7 @@
#if defined(OS_WIN)
#include "views/widget/widget_win.h"
#endif
-#if defined(OS_LINUX)
+#if defined(TOOLKIT_GTK)
#include "views/widget/widget_gtk.h"
#endif

View file

@ -1,29 +0,0 @@
--- ./chrome/browser/ui/views/notifications/balloon_view_host.cc.orig 2010-12-16 02:11:56.000000000 +0100
+++ ./chrome/browser/ui/views/notifications/balloon_view_host.cc 2010-12-20 20:15:08.000000000 +0100
@@ -10,7 +10,7 @@
#if defined(OS_WIN)
#include "chrome/browser/renderer_host/render_widget_host_view_win.h"
#endif
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
#if defined(TOUCH_UI)
#include "chrome/browser/renderer_host/render_widget_host_view_views.h"
#else
@@ -21,7 +21,7 @@
#if defined(OS_WIN)
#include "views/widget/widget_win.h"
#endif
-#if defined(OS_LINUX)
+#if defined(TOOLKIT_GTK)
#include "views/widget/widget_gtk.h"
#endif
@@ -74,7 +74,7 @@
HWND hwnd = view_win->Create(parent_native_view_);
view_win->ShowWindow(SW_SHOW);
native_host_->Attach(hwnd);
-#elif defined(OS_LINUX)
+#elif defined(OS_LINUX) || defined(OS_FREEBSD)
#if defined(TOUCH_UI)
RenderWidgetHostViewViews* view_views =
static_cast<RenderWidgetHostViewViews*>(render_widget_host_view_);

View file

@ -1,11 +0,0 @@
--- ./chrome/browser/ui/views/tabs/dragged_tab_view.cc.orig 2010-12-16 02:11:56.000000000 +0100
+++ ./chrome/browser/ui/views/tabs/dragged_tab_view.cc 2010-12-20 20:15:08.000000000 +0100
@@ -11,7 +11,7 @@
#if defined(OS_WIN)
#include "views/widget/widget_win.h"
-#elif defined(OS_LINUX)
+#elif defined(TOOLKIT_GTK)
#include "views/widget/widget_gtk.h"
#endif

View file

@ -1,11 +0,0 @@
--- ./chrome/browser/ui/views/tabs/tab_strip.cc.orig 2010-12-16 02:11:56.000000000 +0100
+++ ./chrome/browser/ui/views/tabs/tab_strip.cc 2010-12-20 20:15:08.000000000 +0100
@@ -30,7 +30,7 @@
#if defined(OS_WIN)
#include "app/win_util.h"
#include "views/widget/widget_win.h"
-#elif defined(OS_LINUX)
+#elif defined(TOOLKIT_GTK)
#include "views/widget/widget_gtk.h"
#endif

View file

@ -1,11 +0,0 @@
--- ./chrome/browser/ui/views/tabs/tab_strip.h.orig 2010-12-16 02:11:56.000000000 +0100
+++ ./chrome/browser/ui/views/tabs/tab_strip.h 2010-12-20 20:15:08.000000000 +0100
@@ -19,7 +19,7 @@
namespace views {
class ImageView;
-#if defined(OS_LINUX)
+#if defined(TOOLKIT_GTK)
class WidgetGtk;
#elif defined(OS_WIN)
class WidgetWin;

View file

@ -1,23 +0,0 @@
--- ./chrome/browser/web_applications/web_app.cc.orig 2010-12-16 02:11:54.000000000 +0100
+++ ./chrome/browser/web_applications/web_app.cc 2010-12-20 20:15:08.000000000 +0100
@@ -34,9 +34,9 @@
#include "chrome/common/url_constants.h"
#include "chrome/common/web_apps.h"
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
#include "base/environment.h"
-#endif // defined(OS_LINUX)
+#endif // defined(OS_LINUX) || defined(OS_FREEBSD)
#if defined(OS_WIN)
#include "base/win_util.h"
@@ -261,7 +261,7 @@
bool CreateShortcutTask::CreateShortcut() {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
scoped_ptr<base::Environment> env(base::Environment::Create());
std::string shortcut_template;

View file

@ -1,31 +0,0 @@
--- chrome/chrome.gyp.orig 2011-05-06 12:03:42.000000000 +0300
+++ chrome/chrome.gyp 2011-06-04 00:41:46.403404482 +0300
@@ -72,6 +72,10 @@
}],
],
},],
+ ['OS=="freebsd" or OS=="openbsd"', {
+ 'platform_locale_settings_grd':
+ 'app/resources/locale_settings_linux.grd',
+ },],
['OS=="mac"', {
'tweak_info_plist_path': 'tools/build/mac/tweak_info_plist',
'nacl_defines': [
@@ -419,7 +423,7 @@
'..',
],
'conditions': [
- ['OS=="linux"', {
+ ['OS=="linux" or OS=="freebsd"', {
'dependencies': [
'../build/linux/system.gyp:gtk',
],
@@ -769,7 +773,7 @@
'service/cloud_print/print_system_win.cc',
],
}],
- ['OS=="linux"', {
+ ['OS=="linux" or OS=="freebsd"', {
'dependencies': [
'../build/linux/system.gyp:gtk',
],

View file

@ -1,15 +1,6 @@
--- chrome/chrome_browser.gypi.orig 2011-04-16 11:02:00.000000000 +0300
+++ chrome/chrome_browser.gypi 2011-04-21 21:49:54.625558694 +0300
@@ -3455,7 +3455,7 @@
['exclude', '^browser/views/tab_contents/tab_contents_view_gtk.h'],
],
}],
- ['OS=="linux"', {
+ ['OS=="linux" or OS=="freebsd"', {
'dependencies': [
'../build/linux/system.gyp:dbus-glib',
'../build/linux/system.gyp:gconf',
@@ -3465,12 +3465,6 @@
--- chrome/chrome_browser.gypi.orig 2011-06-24 11:31:19.000000000 +0300
+++ chrome/chrome_browser.gypi 2011-06-26 20:14:19.677781532 +0300
@@ -3679,12 +3679,6 @@
'../build/linux/system.gyp:x11',
'../third_party/undoview/undoview.gyp:undoview',
],
@ -22,21 +13,3 @@
'sources!': [
'browser/ui/views/extensions/extension_view.cc',
'browser/ui/views/extensions/extension_view.h',
@@ -4118,7 +4112,7 @@
],
}],
# GTK build only
- ['OS=="linux" and toolkit_views==0', {
+ ['(OS=="linux" or OS=="freebsd") and toolkit_views==0', {
'sources/': [
['include', '^browser/printing/print_dialog_gtk.cc'],
['include', '^browser/printing/print_dialog_gtk.h'],
@@ -4196,7 +4190,7 @@
},
],
}],
- ['OS=="linux" and gcc_version==45', {
+ ['(OS=="linux" or OS=="freebsd") and gcc_version==45', {
# Avoid gcc 4.5 miscompilation of template_url.cc
# as per http://crbug.com/41887
'cflags': [

View file

@ -1,17 +0,0 @@
--- ./chrome/chrome_renderer.gypi.orig 2010-12-16 02:12:13.000000000 +0100
+++ ./chrome/chrome_renderer.gypi 2010-12-20 20:15:08.000000000 +0100
@@ -285,6 +285,14 @@
}],
# BSD-specific rules.
['OS=="openbsd" or OS=="freebsd"', {
+ 'conditions': [
+ [ 'linux_use_tcmalloc==1', {
+ 'dependencies': [
+ '../base/allocator/allocator.gyp:allocator',
+ ],
+ },
+ ],
+ ],
'dependencies': [
'../build/linux/system.gyp:gtk',
],

View file

@ -1,60 +1,7 @@
--- chrome/chrome_tests.gypi.orig 2011-05-06 12:03:42.000000000 +0300
+++ chrome/chrome_tests.gypi 2011-06-04 00:50:16.731405108 +0300
@@ -191,7 +191,7 @@
'../content/common/notification_observer_mock.h',
],
'conditions': [
- ['OS=="linux"', {
+ ['OS=="linux" or OS=="freebsd"', {
'dependencies': [
'../build/linux/system.gyp:gtk',
'../build/linux/system.gyp:nss',
@@ -245,7 +245,7 @@
'chrome.gyp:crash_service', # run time dependency
],
}],
- ['OS=="linux"', {
+ ['OS=="linux" or OS=="freebsd"', {
'dependencies': [
'../build/linux/system.gyp:gtk',
],
@@ -330,7 +330,7 @@
'test/unit/run_all_unittests.cc',
],
'conditions': [
- ['OS=="linux"', {
+ ['OS=="linux" or OS=="freebsd"', {
'dependencies': [
# Needed for the following #include chain:
# test/unit/run_all_unittests.cc
@@ -376,7 +376,7 @@
},
},
},],
- ['OS=="linux"', {
+ ['OS=="linux" or OS=="freebsd"', {
'dependencies': [
'../tools/xdisplaycheck/xdisplaycheck.gyp:xdisplaycheck',
],
@@ -449,14 +449,14 @@
'test/unit/chrome_test_suite.h',
],
'conditions': [
- ['OS=="linux"', {
+ ['OS=="linux" or OS=="freebsd"', {
'dependencies': [
'../build/linux/system.gyp:gtk',
'../build/linux/system.gyp:nss',
'../tools/xdisplaycheck/xdisplaycheck.gyp:xdisplaycheck',
],
}],
- ['OS=="linux" and toolkit_views==0', {
+ ['(OS=="linux" or OS=="freebsd") and toolkit_views==0', {
'sources!': [
# TODO(port)
'browser/ui/views/bookmarks/bookmark_bar_view_test.cc',
@@ -657,12 +657,12 @@
'../webkit/webkit.gyp:copy_npapi_test_plugin',
--- chrome/chrome_tests.gypi.orig 2011-06-24 11:31:19.000000000 +0300
+++ chrome/chrome_tests.gypi 2011-06-26 20:25:42.958784006 +0300
@@ -2963,7 +2963,7 @@
'../third_party/WebKit/Source/WebCore/WebCore.gyp/WebCore.gyp:webcore',
],
}],
- ['OS=="linux"', {
@ -62,130 +9,7 @@
'dependencies': [
'../build/linux/system.gyp:gtk',
'../tools/xdisplaycheck/xdisplaycheck.gyp:xdisplaycheck',
],
- }, { # else: OS != "linux"
+ }, { # else: OS != "linux" and OS != "freebsd"
'sources!': [
'browser/process_singleton_linux_uitest.cc',
],
@@ -837,7 +837,7 @@
'test/webdriver/commands/webelement_commands.cc',
],
'conditions': [
- ['OS=="linux"', {
+ ['OS=="linux" or OS=="freebsd"', {
'dependencies': [
'../build/linux/system.gyp:gtk',
'../tools/xdisplaycheck/xdisplaycheck.gyp:xdisplaycheck',
@@ -1946,7 +1946,7 @@
['exclude', '^browser/ui/webui/chromeos/login'],
],
}],
- ['OS=="linux"', {
+ ['OS=="linux" or OS=="freebsd"', {
'conditions': [
['gcc_version==44', {
# Avoid gcc 4.4 strict aliasing issues in stl_tree.h when
@@ -1983,7 +1983,7 @@
'sources!': [
'browser/printing/print_job_unittest.cc',
],
- }, { # else: OS != "linux"
+ }, { # else: OS != "linux" and OS != "freebsd"
'sources!': [
'browser/ui/gtk/tabs/tab_renderer_gtk_unittest.cc',
'browser/renderer_host/gtk_key_bindings_handler_unittest.cc',
@@ -2481,7 +2481,7 @@
'../content/browser/child_process_security_policy_browsertest.cc',
],
}],
- ['OS=="linux"', {
+ ['OS=="linux" or OS=="freebsd"', {
'dependencies': [
'../build/linux/system.gyp:gtk',
'../build/linux/system.gyp:nss',
@@ -2650,7 +2650,7 @@
},
},
},],
- ['OS=="linux"', {
+ ['OS=="linux" or OS=="freebsd"', {
'dependencies': [
'../build/linux/system.gyp:gtk',
'../tools/xdisplaycheck/xdisplaycheck.gyp:xdisplaycheck',
@@ -2751,7 +2751,7 @@
},
},
},],
- ['OS=="linux"', {
+ ['OS=="linux" or OS=="freebsd"', {
'dependencies': [
'../build/linux/system.gyp:gtk',
],
@@ -2788,7 +2788,7 @@
},
},
},],
- ['OS=="linux"', {
+ ['OS=="linux" or OS=="freebsd"', {
'dependencies': [
'../build/linux/system.gyp:gtk',
'../tools/xdisplaycheck/xdisplaycheck.gyp:xdisplaycheck',
@@ -2825,7 +2825,7 @@
'test/tab_switching/tab_switching_test.cc',
],
'conditions': [
- ['OS=="linux"', {
+ ['OS=="linux" or OS=="freebsd"', {
'dependencies': [
'../build/linux/system.gyp:gtk',
'../tools/xdisplaycheck/xdisplaycheck.gyp:xdisplaycheck',
@@ -2859,7 +2859,7 @@
'test/memory_test/memory_test.cc',
],
'conditions': [
- ['OS=="linux"', {
+ ['OS=="linux" or OS=="freebsd"', {
'dependencies': [
'../build/linux/system.gyp:gtk',
'../tools/xdisplaycheck/xdisplaycheck.gyp:xdisplaycheck',
@@ -3025,7 +3025,7 @@
'browser/sync/util/data_encryption_unittest.cc',
],
}],
- ['OS=="linux"', {
+ ['OS=="linux" or OS=="freebsd"', {
'dependencies': [
'../build/linux/system.gyp:gtk',
'../build/linux/system.gyp:nss',
@@ -3139,7 +3139,7 @@
'test/data/resource.rc',
],
'conditions': [
- ['OS=="linux"', {
+ ['OS=="linux" or OS=="freebsd"', {
'dependencies': [
'../build/linux/system.gyp:gtk',
'../build/linux/system.gyp:nss',
@@ -3285,7 +3285,7 @@
# See comments about "xcode_settings" elsewhere in this file.
'xcode_settings': {'OTHER_LDFLAGS': ['-Wl,-ObjC']},
}],
- ['OS=="linux"', {
+ ['OS=="linux" or OS=="freebsd"', {
'dependencies': [
'../build/linux/system.gyp:gtk',
'../build/linux/system.gyp:nss',
@@ -3399,7 +3399,7 @@
'test/perf/url_parse_perftest.cc',
],
'conditions': [
- ['OS=="linux"', {
+ ['OS=="linux" or OS=="freebsd"', {
'dependencies': [
'../build/linux/system.gyp:gtk',
'../tools/xdisplaycheck/xdisplaycheck.gyp:xdisplaycheck',
@@ -3780,7 +3780,7 @@
@@ -3964,7 +3964,7 @@
'../courgette/courgette.gyp:courgette_unittests',
'browser_tests',
]}],

View file

@ -1,11 +0,0 @@
--- ./chrome/common/chrome_paths.cc.orig 2010-12-16 02:12:13.000000000 +0100
+++ ./chrome/common/chrome_paths.cc 2010-12-20 20:15:08.000000000 +0100
@@ -164,7 +164,7 @@
cur = cur.Append(FILE_PATH_LITERAL("inspector"));
break;
case chrome::DIR_APP_DICTIONARIES:
-#if defined(OS_LINUX) || defined(OS_MACOSX)
+#if defined(OS_POSIX)
// We can't write into the EXE dir on Linux, so keep dictionaries
// alongside the safe browsing database in the user data dir.
// And we don't want to write into the bundle on the Mac, so push

View file

@ -1,11 +0,0 @@
--- ./chrome/common/chrome_switches.cc.orig 2010-12-16 02:12:13.000000000 +0100
+++ ./chrome/common/chrome_switches.cc 2010-12-20 20:15:08.000000000 +0100
@@ -1273,7 +1273,7 @@
const char kEnableAdvancedFileSystem[] = "enable-advanced-fs";
#endif
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
// Specify the amount the trackpad should scroll by.
const char kScrollPixels[] = "scroll-pixels";
#endif

View file

@ -1,11 +0,0 @@
--- ./chrome/common/chrome_switches.h.orig 2010-12-16 02:12:13.000000000 +0100
+++ ./chrome/common/chrome_switches.h 2010-12-20 20:15:08.000000000 +0100
@@ -361,7 +361,7 @@
extern const char kEnableAdvancedFileSystem[];
#endif
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
extern const char kScrollPixels[];
#endif

View file

@ -1,28 +0,0 @@
--- chrome/common/service_process_util_posix.h.orig 2011-04-21 20:57:02.534558581 +0300
+++ chrome/common/service_process_util_posix.h 2011-04-21 20:57:16.326558123 +0300
@@ -14,10 +14,10 @@
#include "base/message_pump_libevent.h"
#include "base/scoped_ptr.h"
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
#include "chrome/common/multi_process_lock.h"
MultiProcessLock* TakeServiceRunningLock(bool waiting);
-#endif // OS_LINUX
+#endif // OS_LINUX || OS_FREEBSD
#if defined(OS_MACOSX)
#include "base/mac/scoped_cftyperef.h"
@@ -65,10 +65,10 @@
FilePathWatcher executable_watcher_;
ServiceProcessState* state_;
#endif // OS_MACOSX
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
scoped_ptr<MultiProcessLock> initializing_lock_;
scoped_ptr<MultiProcessLock> running_lock_;
-#endif // OS_LINUX
+#endif // OS_LINUX || OS_FREEBSD
scoped_ptr<ServiceProcessShutdownMonitor> shut_down_monitor_;
base::MessagePumpLibevent::FileDescriptorWatcher watcher_;
int sockets_[2];

View file

@ -1,11 +0,0 @@
--- ./chrome/default_plugin/default_plugin.gyp.orig 2010-12-16 02:12:13.000000000 +0100
+++ ./chrome/default_plugin/default_plugin.gyp 2010-12-20 20:15:08.000000000 +0100
@@ -53,7 +53,7 @@
'plugin_install_job_monitor.h',
],
}],
- ['OS=="linux"', {
+ ['OS=="linux" or OS=="freebsd"', {
'dependencies': [
'<(DEPTH)/build/linux/system.gyp:gtk',
],

View file

@ -1,14 +0,0 @@
--- ./content/browser/browser_child_process_host.cc.orig 2010-12-16 02:11:58.000000000 +0100
+++ ./content/browser/browser_child_process_host.cc 2010-12-20 20:15:08.000000000 +0100
@@ -27,9 +27,9 @@
#include "chrome/common/result_codes.h"
#include "chrome/installer/util/google_update_settings.h"
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
#include "base/linux_util.h"
-#endif // OS_LINUX
+#endif // OS_LINUX || OS_FREEBSD
namespace {

View file

@ -1,123 +0,0 @@
--- content/browser/child_process_launcher.cc.orig 2011-05-06 12:02:54.000000000 +0300
+++ content/browser/child_process_launcher.cc 2011-06-04 15:13:25.939378747 +0300
@@ -20,7 +20,7 @@
#if defined(OS_WIN)
#include "base/file_path.h"
#include "chrome/common/sandbox_policy.h"
-#elif defined(OS_LINUX)
+#elif defined(OS_LINUX) || defined(OS_FREEBSD)
#include "base/memory/singleton.h"
#include "chrome/browser/crash_handler_host_linux.h"
#include "content/browser/zygote_host_linux.h"
@@ -45,7 +45,7 @@
: client_(NULL),
client_thread_id_(BrowserThread::UI),
starting_(true)
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
, zygote_(false)
#endif
{
@@ -110,7 +110,7 @@
handle = sandbox::StartProcessWithAccess(cmd_line, exposed_dir);
#elif defined(OS_POSIX)
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
// On Linux, we need to add some extra file descriptors for crash handling.
std::string process_type =
cmd_line->GetSwitchValueASCII(switches::kProcessType);
@@ -151,7 +151,7 @@
ipcfd,
kPrimaryIPCChannel + base::GlobalDescriptors::kBaseDescriptor));
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
if (crash_signal_fd >= 0) {
fds_to_map.push_back(std::make_pair(
crash_signal_fd,
@@ -164,7 +164,7 @@
sandbox_fd,
kSandboxIPCChannel + base::GlobalDescriptors::kBaseDescriptor));
}
-#endif // defined(OS_LINUX)
+#endif // defined(OS_LINUX) || defined(OS_FREEBSD)
bool launched = false;
#if defined(OS_MACOSX)
@@ -200,20 +200,20 @@
NewRunnableMethod(
this,
&ChildProcessLauncher::Context::Notify,
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
use_zygote,
#endif
handle));
}
void Notify(
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
bool zygote,
#endif
base::ProcessHandle handle) {
starting_ = false;
process_.set_handle(handle);
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
zygote_ = zygote;
#endif
if (client_) {
@@ -233,7 +233,7 @@
BrowserThread::PROCESS_LAUNCHER, FROM_HERE,
NewRunnableFunction(
&ChildProcessLauncher::Context::TerminateInternal,
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
zygote_,
#endif
process_.handle()));
@@ -246,7 +246,7 @@
}
static void TerminateInternal(
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
bool zygote,
#endif
base::ProcessHandle handle) {
@@ -256,13 +256,13 @@
process.Terminate(ResultCodes::NORMAL_EXIT);
// On POSIX, we must additionally reap the child.
#if defined(OS_POSIX)
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
if (zygote) {
// If the renderer was created via a zygote, we have to proxy the reaping
// through the zygote process.
ZygoteHost::GetInstance()->EnsureProcessTerminated(handle);
} else
-#endif // OS_LINUX
+#endif // OS_LINUX || OS_FREEBSD
{
ProcessWatcher::EnsureProcessTerminated(handle);
}
@@ -275,7 +275,7 @@
base::Process process_;
bool starting_;
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
bool zygote_;
#endif
};
@@ -321,7 +321,7 @@
int* exit_code) {
base::TerminationStatus status;
base::ProcessHandle handle = context_->process_.handle();
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
if (context_->zygote_) {
status = ZygoteHost::GetInstance()->GetTerminationStatus(handle, exit_code);
} else

View file

@ -1,16 +1,16 @@
--- content/browser/renderer_host/render_message_filter.cc.orig 2011-05-06 12:02:54.000000000 +0300
+++ content/browser/renderer_host/render_message_filter.cc 2011-06-04 15:22:29.321379253 +0300
@@ -365,7 +365,7 @@
--- content/browser/renderer_host/render_message_filter.cc.orig 2011-06-24 11:30:32.000000000 +0300
+++ content/browser/renderer_host/render_message_filter.cc 2011-06-26 20:58:31.256783053 +0300
@@ -360,7 +360,7 @@
OnCheckNotificationPermission)
IPC_MESSAGE_HANDLER(ViewHostMsg_AllocateSharedMemoryBuffer,
OnAllocateSharedMemoryBuffer)
IPC_MESSAGE_HANDLER(ViewHostMsg_DidZoomURL, OnDidZoomURL)
-#if defined(OS_MACOSX)
+#if defined(OS_MACOSX) || defined(OS_FREEBSD)
IPC_MESSAGE_HANDLER(ViewHostMsg_AllocTransportDIB, OnAllocTransportDIB)
IPC_MESSAGE_HANDLER(ViewHostMsg_FreeTransportDIB, OnFreeTransportDIB)
#endif
@@ -740,7 +740,7 @@
context_getter->GetURLRequestContext());
@@ -647,7 +647,7 @@
return context_getter->GetURLRequestContext();
}
-#if defined(OS_MACOSX)

View file

@ -1,24 +0,0 @@
--- content/browser/renderer_host/render_sandbox_host_linux.cc.orig 2011-04-16 11:01:10.000000000 +0300
+++ content/browser/renderer_host/render_sandbox_host_linux.cc 2011-04-27 00:17:53.236984447 +0300
@@ -13,6 +13,9 @@
#include <sys/socket.h>
#include <sys/poll.h>
#include <time.h>
+#if defined(OS_FREEBSD)
+#include <sys/param.h>
+#endif
#include <vector>
@@ -665,7 +668,11 @@
// inherit some sockets. With PF_UNIX+SOCK_DGRAM, it can call sendmsg to send
// a datagram to any (abstract) socket on the same system. With
// SOCK_SEQPACKET, this is prevented.
+#if defined(OS_FREEBSD) && (__FreeBSD_version < 900030)
+ CHECK(socketpair(AF_UNIX, SOCK_DGRAM, 0, fds) == 0);
+#else
CHECK(socketpair(AF_UNIX, SOCK_SEQPACKET, 0, fds) == 0);
+#endif
renderer_socket_ = fds[0];
const int browser_socket = fds[1];

View file

@ -1,11 +0,0 @@
--- content/browser/renderer_host/render_widget_host_unittest.cc.orig 2010-12-16 02:11:57.000000000 +0100
+++ content/browser/renderer_host/render_widget_host_unittest.cc 2010-12-20 20:15:08.000000000 +0100
@@ -407,7 +407,7 @@
// Tests setting custom background
TEST_F(RenderWidgetHostTest, Background) {
-#if defined(OS_WIN) || defined(OS_LINUX)
+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_FREEBSD)
scoped_ptr<RenderWidgetHostView> view(
RenderWidgetHostView::CreateViewForWidget(host_.get()));
host_->set_view(view.get());

View file

@ -1,20 +1,11 @@
--- content/browser/tab_contents/tab_contents.cc.orig 2010-12-16 02:11:56.000000000 +0100
+++ content/browser/tab_contents/tab_contents.cc 2010-12-20 20:15:08.000000000 +0100
@@ -407,7 +407,7 @@
NotificationService::AllSources());
registrar_.Add(this, NotificationType::RENDER_WIDGET_HOST_DESTROYED,
NotificationService::AllSources());
-#if defined(OS_LINUX)
+#if defined(TOOLKIT_GTK)
registrar_.Add(this, NotificationType::BROWSER_THEME_CHANGED,
NotificationService::AllSources());
#endif
@@ -3181,7 +3181,7 @@
break;
}
--- 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()))
return false;
-#if defined(OS_LINUX)
+#if defined(TOOLKIT_GTK)
case NotificationType::BROWSER_THEME_CHANGED: {
renderer_preferences_util::UpdateFromSystemSettings(
&renderer_preferences_, profile());
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
// 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())

View file

@ -1,16 +1,6 @@
--- content/browser/zygote_host_linux.cc.orig 2011-04-16 11:01:10.000000000 +0300
+++ content/browser/zygote_host_linux.cc 2011-04-27 00:55:54.430982567 +0300
@@ -8,6 +8,9 @@
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
+#if defined(OS_FREEBSD)
+#include <sys/param.h>
+#endif
#include "base/command_line.h"
#include "base/eintr_wrapper.h"
@@ -61,8 +64,16 @@
--- content/browser/zygote_host_linux.cc.orig 2011-06-24 11:30:33.000000000 +0300
+++ content/browser/zygote_host_linux.cc 2011-06-26 21:23:29.109780851 +0300
@@ -61,8 +61,16 @@
}
ZygoteHost::~ZygoteHost() {
@ -28,19 +18,7 @@
}
// static
@@ -81,7 +92,11 @@
cmd_line.AppendSwitchASCII(switches::kProcessType, switches::kZygoteProcess);
int fds[2];
+#if defined(OS_FREEBSD) && (__FreeBSD_version < 900030)
+ CHECK(socketpair(AF_UNIX, SOCK_DGRAM, 0, fds) == 0);
+#else
CHECK(socketpair(PF_UNIX, SOCK_SEQPACKET, 0, fds) == 0);
+#endif
base::file_handle_mapping_vector fds_to_map;
fds_to_map.push_back(std::make_pair(fds[1], 3));
@@ -149,6 +164,7 @@
@@ -160,6 +168,7 @@
// We need to look for it.
// But first, wait for the zygote to tell us it's running.
// The sending code is in chrome/browser/zygote_main_linux.cc.
@ -48,7 +26,7 @@
std::vector<int> fds_vec;
const int kExpectedLength = sizeof(kZygoteMagic);
char buf[kExpectedLength];
@@ -179,6 +195,7 @@
@@ -190,6 +199,7 @@
// Reap the sandbox.
ProcessWatcher::EnsureProcessGetsReaped(process);
}
@ -56,7 +34,7 @@
} else {
// Not using the SUID sandbox.
pid_ = process;
@@ -245,9 +262,11 @@
@@ -256,9 +266,11 @@
if (pid <= 0)
return base::kNullProcessHandle;
}
@ -69,7 +47,7 @@
return pid;
}
@@ -285,6 +304,7 @@
@@ -296,6 +308,7 @@
selinux_valid = true;
}
@ -77,7 +55,7 @@
if (using_suid_sandbox_ && !selinux) {
base::ProcessHandle sandbox_helper_process;
std::vector<std::string> adj_oom_score_cmdline;
@@ -302,6 +322,7 @@
@@ -313,6 +326,7 @@
if (!base::AdjustOOMScore(pid, score))
PLOG(ERROR) << "Failed to adjust OOM score of renderer with pid " << pid;
}

View file

@ -1,26 +1,7 @@
--- content/browser/zygote_main_linux.cc.orig 2011-04-15 11:01:10.000000000 +0300
+++ content/browser/zygote_main_linux.cc 2011-04-16 21:45:54.101069128 +0300
@@ -2,12 +2,18 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include "build/build_config.h"
+
#include <dlfcn.h>
#include <fcntl.h>
#include <pthread.h>
+#if defined(OS_FREEBSD)
+#include <signal.h>
+#else
#include <sys/epoll.h>
#include <sys/prctl.h>
#include <sys/signal.h>
+#endif
#include <sys/socket.h>
#include <sys/stat.h>
#include <sys/types.h>
@@ -51,7 +57,7 @@
#include "unicode/timezone.h"
--- content/browser/zygote_main_linux.cc.orig 2011-06-24 11:30:33.000000000 +0300
+++ content/browser/zygote_main_linux.cc 2011-06-26 21:25:52.734780676 +0300
@@ -58,7 +58,7 @@
#endif
#if defined(ARCH_CPU_X86_FAMILY) && !defined(CHROMIUM_SELINUX) && \
- !defined(__clang__)
@ -28,7 +9,7 @@
// The seccomp sandbox is enabled on all ia32 and x86-64 processor as long as
// we aren't using SELinux or clang.
#define SECCOMP_SANDBOX
@@ -174,6 +180,11 @@
@@ -181,6 +181,11 @@
case ZygoteHost::kCmdGetSandboxStatus:
HandleGetSandboxStatus(fd, pickle, iter);
return false;
@ -40,7 +21,7 @@
default:
NOTREACHED();
break;
@@ -648,7 +659,7 @@
@@ -667,7 +672,7 @@
SkiaFontConfigSetImplementation(
new FontConfigIPC(kMagicSandboxIPCDescriptor));
@ -49,7 +30,7 @@
// Previously, we required that the binary be non-readable. This causes the
// kernel to mark the process as non-dumpable at startup. The thinking was
// that, although we were putting the renderers into a PID namespace (with
@@ -674,6 +685,7 @@
@@ -693,6 +698,7 @@
return false;
}
}

View file

@ -1,19 +0,0 @@
--- content/common/gpu/x_util.h.orig 2010-12-16 02:11:58.000000000 +0100
+++ content/common/gpu/x_util.h 2010-12-20 20:15:08.000000000 +0100
@@ -12,7 +12,7 @@
#include "build/build_config.h"
#include "chrome/gpu/gpu_config.h"
-#if defined(OS_LINUX)
+#if defined(USE_X11)
// Forward declares ------------------------------------------------------------
//
@@ -42,6 +42,6 @@
void operator()(void* x) const;
};
-#endif // OS_LINUX
+#endif // USE_X11
#endif // CHROME_GPU_X_UTIL_H_

View file

@ -1,20 +0,0 @@
--- content/common/gpu_messages.h.orig 2011-05-06 12:02:55.000000000 +0300
+++ content/common/gpu_messages.h 2011-06-04 01:15:56.427405297 +0300
@@ -161,7 +161,7 @@
// information.
IPC_MESSAGE_CONTROL0(GpuMsg_CollectGraphicsInfo)
-#if defined(OS_LINUX) && !defined(TOUCH_UI) || defined(OS_WIN)
+#if (defined(OS_LINUX) || defined(OS_FREEBSD)) && !defined(TOUCH_UI) || defined(OS_WIN)
// Tells the GPU process that the browser process has finished resizing the
// view.
IPC_MESSAGE_CONTROL2(GpuMsg_ResizeViewACK,
@@ -250,7 +250,7 @@
// Response from GPU to a GpuMsg_Synchronize message.
IPC_MESSAGE_CONTROL0(GpuHostMsg_SynchronizeReply)
-#if defined(OS_LINUX) && !defined(TOUCH_UI) || defined(OS_WIN)
+#if (defined(OS_LINUX) || defined(OS_FREEBSD)) && !defined(TOUCH_UI) || defined(OS_WIN)
// Resize the window that is being drawn into. It's important that this
// resize be synchronized with the swapping of the front and back buffers.
IPC_MESSAGE_CONTROL4(GpuHostMsg_ResizeView,

View file

@ -1,11 +0,0 @@
--- content/common/native_web_keyboard_event.h.orig 2011-03-20 22:02:04.188736136 +0200
+++ content/common/native_web_keyboard_event.h 2011-03-20 22:02:04.394737178 +0200
@@ -60,7 +60,7 @@
// Currently, it's only used by Linux and Mac ports.
bool skip_in_browser;
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
// True if the key event matches an edit command. In order to ensure the edit
// command always work in web page, the browser should not pre-handle this key
// event as a reserved accelerator. See http://crbug.com/54573

View file

@ -1,15 +1,6 @@
--- content/content_browser.gypi.orig 2011-04-22 01:35:50.895187096 +0300
+++ content/content_browser.gypi 2011-04-22 01:43:35.628663558 +0300
@@ -324,7 +324,7 @@
['OS=="win"', {
'msvs_guid': '639DB58D-32C2-435A-A711-65A12F62E442',
}],
- ['OS=="linux"', {
+ ['OS=="linux" or OS=="freebsd"', {
'dependencies': [
'../build/linux/system.gyp:dbus-glib',
# For FcLangSetAdd call in render_sandbox_host_linux.cc
@@ -346,6 +346,14 @@
--- content/content_browser.gypi.orig 2011-06-24 11:30:33.000000000 +0300
+++ content/content_browser.gypi 2011-06-26 21:57:25.042787140 +0300
@@ -393,6 +393,14 @@
['exclude', '^browser/geolocation/wifi_data_provider_linux.h'],
]
}],

View file

@ -1,20 +0,0 @@
--- content/plugin/plugin_thread.cc.orig 2010-12-16 02:11:58.000000000 +0100
+++ content/plugin/plugin_thread.cc 2010-12-20 20:15:08.000000000 +0100
@@ -6,7 +6,7 @@
#include "build/build_config.h"
-#if defined(USE_X11)
+#if defined(TOOLKIT_USES_GTK)
#include <gtk/gtk.h>
#elif defined(OS_MACOSX)
#include <CoreFoundation/CoreFoundation.h>
@@ -57,7 +57,7 @@
switches::kPluginPath);
lazy_tls.Pointer()->Set(this);
-#if defined(OS_LINUX)
+#if defined(TOOLKIT_GTK)
{
// XEmbed plugins assume they are hosted in a Gtk application, so we need
// to initialize Gtk in the plugin process.

View file

@ -1,11 +0,0 @@
--- content/renderer/render_thread.cc.orig 2011-05-06 12:02:55.000000000 +0300
+++ content/renderer/render_thread.cc 2011-06-04 15:55:04.481380035 +0300
@@ -607,7 +607,7 @@
}
void RenderThread::IdleHandler() {
-#if (defined(OS_WIN) || defined(OS_LINUX)) && defined(USE_TCMALLOC)
+#if !defined(OS_MACOSX) && defined(USE_TCMALLOC)
MallocExtension::instance()->ReleaseFreeMemory();
#endif

View file

@ -1,11 +0,0 @@
--- content/renderer/render_view.h.orig 2010-12-16 02:11:59.000000000 +0100
+++ content/renderer/render_view.h 2010-12-20 20:15:08.000000000 +0100
@@ -1114,7 +1114,7 @@
// periodic timer so we don't send too many messages.
void SyncNavigationState();
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
void UpdateFontRenderingFromRendererPrefs();
#else
void UpdateFontRenderingFromRendererPrefs() {}

View file

@ -1,15 +1,15 @@
--- content/renderer/renderer_glue.cc.orig 2011-05-06 12:02:55.000000000 +0300
+++ content/renderer/renderer_glue.cc 2011-06-04 16:01:20.943412500 +0300
--- content/renderer/renderer_glue.cc.orig 2011-06-24 11:30:33.000000000 +0300
+++ content/renderer/renderer_glue.cc 2011-06-26 22:17:27.417781169 +0300
@@ -34,7 +34,7 @@
#include "webkit/glue/webkit_glue.h"
#include "webkit/glue/websocketstreamhandle_bridge.h"
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
#include "content/renderer/renderer_sandbox_support_linux.h"
#include "content/common/child_process_sandbox_support_linux.h"
#endif
@@ -259,7 +259,7 @@
@@ -255,7 +255,7 @@
RenderThread::current()->EnableSpdy(enable);
}
@ -17,4 +17,4 @@
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
int MatchFontWithFallback(const std::string& face, bool bold,
bool italic, int charset) {
return renderer_sandbox_support::MatchFontWithFallback(
return child_process_sandbox_support::MatchFontWithFallback(

View file

@ -1,20 +0,0 @@
--- content/renderer/renderer_main.cc.orig 2011-03-20 22:02:04.303357408 +0200
+++ content/renderer/renderer_main.cc 2011-03-20 22:02:04.457737643 +0200
@@ -272,7 +272,7 @@
PepperPluginRegistry::GetInstance();
{
-#if !defined(OS_LINUX)
+#if !defined(OS_LINUX) && !defined(OS_FREEBSD)
// TODO(markus): Check if it is OK to unconditionally move this
// instruction down.
RenderProcessImpl render_process;
@@ -284,7 +284,7 @@
} else {
LOG(ERROR) << "Running without renderer sandbox";
}
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
RenderProcessImpl render_process;
render_process.set_main_thread(new RenderThread());
#endif

View file

@ -1,29 +0,0 @@
--- content/renderer/renderer_webkitclient_impl.cc.orig 2011-03-20 22:02:04.310852495 +0200
+++ content/renderer/renderer_webkitclient_impl.cc 2011-03-20 22:02:04.460737466 +0200
@@ -55,7 +55,7 @@
#include "third_party/WebKit/Source/WebKit/chromium/public/mac/WebSandboxSupport.h"
#endif
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
#include <string>
#include <map>
@@ -113,7 +113,7 @@
virtual bool ensureFontLoaded(HFONT);
#elif defined(OS_MACOSX)
virtual bool loadFont(NSFont* srcFont, ATSFontContainerRef* out);
-#elif defined(OS_LINUX)
+#elif defined(OS_LINUX) || defined(OS_FREEBSD)
virtual WebKit::WebString getFontFamilyForCharacters(
const WebKit::WebUChar* characters, size_t numCharacters);
virtual void getRenderStyleForStrike(
@@ -419,7 +419,7 @@
return RenderThread::current()->Send(new ViewHostMsg_PreCacheFont(logfont));
}
-#elif defined(OS_LINUX)
+#elif defined(OS_LINUX) || defined(OS_FREEBSD)
WebString RendererWebKitClientImpl::SandboxSupport::getFontFamilyForCharacters(
const WebKit::WebUChar* characters, size_t num_characters) {

View file

@ -1,13 +0,0 @@
--- content/worker/worker_uitest.cc.orig 2011-01-11 10:01:47.000000000 +0100
+++ content/worker/worker_uitest.cc 2011-01-15 22:46:56.000000000 +0100
@@ -85,8 +85,8 @@
// The 1 is for the browser process.
int number_of_processes = 1 + workers +
(ProxyLauncher::in_process_renderer() ? 0 : tabs);
-#if defined(OS_LINUX)
- // On Linux, we also have a zygote process and a sandbox host process.
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ // On Linux and FreeBSD, we also have a zygote process and a sandbox host process.
number_of_processes += 2;
#endif

View file

@ -1,6 +1,6 @@
--- ./gpu/demos/demos.gyp.orig 2010-12-16 02:11:23.000000000 +0100
+++ ./gpu/demos/demos.gyp 2010-12-20 20:15:08.000000000 +0100
@@ -11,7 +11,7 @@
--- gpu/demos/demos.gyp.orig 2011-06-24 11:30:31.000000000 +0300
+++ gpu/demos/demos.gyp 2011-06-26 22:43:26.842781274 +0300
@@ -14,7 +14,7 @@
# also be compiled with -fPIC flag. Setting GYP_DEFINES="linux_fpic=1"
# compiles everything with -fPIC. Disable pepper demos on linux/x64
# unless linux_fpic is 1.
@ -9,16 +9,7 @@
'enable_pepper_demos%': 0,
}, {
'enable_pepper_demos%': 1,
@@ -53,7 +53,7 @@
'framework/window.h',
],
'conditions': [
- ['OS=="linux"', {
+ ['OS=="linux" or OS=="freebsd"', {
'dependencies': ['../../build/linux/system.gyp:gtk'],
}],
],
@@ -172,7 +172,7 @@
@@ -107,7 +107,7 @@
],
},
'conditions': [

View file

@ -1,11 +0,0 @@
--- ./gpu/gpu.gyp.orig 2010-12-16 02:11:23.000000000 +0100
+++ ./gpu/gpu.gyp 2010-12-20 20:15:08.000000000 +0100
@@ -180,7 +180,7 @@
'command_buffer/service/texture_manager.cc',
],
'conditions': [
- ['OS == "linux"', {
+ ['OS == "linux" or OS=="freebsd"', {
'dependencies': [
'../build/linux/system.gyp:gtk',
],

View file

@ -1,11 +0,0 @@
--- ./ipc/ipc.gyp.orig 2010-12-16 02:11:49.000000000 +0100
+++ ./ipc/ipc.gyp 2010-12-20 20:15:08.000000000 +0100
@@ -62,7 +62,7 @@
'../build/linux/system.gyp:gtk',
],
}],
- ['OS=="linux"', {
+ ['OS=="linux" or OS=="freebsd"', {
'conditions': [
['linux_use_tcmalloc==1', {
'dependencies': [

View file

@ -1,18 +0,0 @@
--- media/media.gyp.orig 2011-04-21 21:52:13.846559129 +0300
+++ media/media.gyp 2011-04-21 21:52:29.930558911 +0300
@@ -612,7 +612,6 @@
],
'libraries': [
'-lGL',
- '-ldl',
],
'sources': [
'tools/tile_render_bench/tile_render_bench.cc',
@@ -692,7 +691,6 @@
],
'link_settings': {
'libraries': [
- '-ldl',
'-lX11',
'-lXrender',
'-lXext',

View file

@ -1,6 +1,6 @@
--- net/net.gyp.orig 2011-04-26 11:01:16.000000000 +0300
+++ net/net.gyp 2011-05-03 21:16:49.479149025 +0300
@@ -138,8 +138,8 @@
--- 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',
@ -11,30 +11,12 @@
'base/network_change_notifier_win.cc',
'base/network_change_notifier_win.h',
'base/network_config_watcher_mac.cc',
@@ -245,7 +245,7 @@
'dependencies': [
@@ -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', {
@@ -1023,7 +1023,7 @@
],
}
],
- [ 'OS == "linux"', {
+ [ 'OS == "linux" or OS=="freebsd"', {
'conditions': [
['linux_use_tcmalloc==1', {
'dependencies': [
@@ -1196,7 +1196,7 @@
}],
],
}],
- ['OS == "linux"', {
+ ['OS == "linux" or OS=="freebsd"', {
'conditions': [
['linux_use_tcmalloc==1', {
'dependencies': [

View file

@ -1,6 +1,6 @@
--- net/proxy/proxy_config_service_linux.cc.orig 2011-04-26 11:01:15.000000000 +0300
+++ net/proxy/proxy_config_service_linux.cc 2011-05-04 23:52:01.546273478 +0300
@@ -12,7 +12,13 @@
--- net/proxy/proxy_config_service_linux.cc.orig 2011-07-01 00:30:51.106692749 +0300
+++ net/proxy/proxy_config_service_linux.cc 2011-07-01 01:15:28.391693775 +0300
@@ -18,7 +18,13 @@
#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
@ -14,189 +14,142 @@
#include <unistd.h>
#include <map>
@@ -433,7 +439,7 @@
public base::MessagePumpLibevent::Watcher {
@@ -861,9 +867,10 @@
public base::MessagePumpLibevent::Watcher {
public:
explicit GConfSettingGetterImplKDE(base::Environment* env_var_getter)
explicit SettingGetterImplKDE(base::Environment* env_var_getter)
- : inotify_fd_(-1), notify_delegate_(NULL), indirect_manual_(false),
+ : notify_fd_(-1), notify_delegate_(NULL), indirect_manual_(false),
auto_no_pac_(false), reversed_bypass_list_(false),
env_var_getter_(env_var_getter), file_loop_(NULL) {
- auto_no_pac_(false), reversed_bypass_list_(false),
- env_var_getter_(env_var_getter), file_loop_(NULL) {
+ : config_fd_(-1), inotify_fd_(-1), notify_delegate_(NULL),
+ indirect_manual_(false), auto_no_pac_(false),
+ reversed_bypass_list_(false), env_var_getter_(env_var_getter),
+ file_loop_(NULL) {
// This has to be called on the UI thread (http://crbug.com/69057).
@@ -492,35 +498,43 @@
}
base::ThreadRestrictions::ScopedAllowIO allow_io;
virtual ~GConfSettingGetterImplKDE() {
- // inotify_fd_ should have been closed before now, from
+ // notify_fd_ should have been closed before now, from
// Delegate::OnDestroy(), while running on the file thread. However
// on exiting the process, it may happen that Delegate::OnDestroy()
@@ -926,9 +933,14 @@
// task is left pending on the file loop after the loop was quit,
// and pending tasks may then be deleted without being run.
// Here in the KDE version, we can safely close the file descriptor
// anyway. (Not that it really matters; the process is exiting.)
- if (inotify_fd_ >= 0)
+ if (notify_fd_ >= 0)
Shutdown();
- DCHECK(inotify_fd_ < 0);
+ DCHECK(notify_fd_ < 0);
- // anyway. (Not that it really matters; the process is exiting.)
+ // anyway. (Not that it really matters; the process is exiting.)
+ if(config_fd_ >= 0) {
+ close(config_fd_);
+ config_fd_ = -1;
+ }
if (inotify_fd_ >= 0)
ShutDown();
+ DCHECK(config_fd_ < 0);
DCHECK(inotify_fd_ < 0);
}
virtual bool Init(MessageLoop* glib_default_loop,
MessageLoopForIO* file_loop) {
@@ -937,18 +949,25 @@
// This has to be called on the UI thread (http://crbug.com/69057).
base::ThreadRestrictions::ScopedAllowIO allow_io;
- DCHECK(inotify_fd_ < 0);
- inotify_fd_ = inotify_init();
- if (inotify_fd_ < 0) {
+ DCHECK(notify_fd_ < 0);
DCHECK(inotify_fd_ < 0);
+#if defined(OS_FREEBSD)
+ notify_fd_ = kqueue();
+ inotify_fd_ = kqueue();
+#else
+ notify_fd_ = inotify_init();
inotify_fd_ = inotify_init();
+#endif
+ if (notify_fd_ < 0) {
if (inotify_fd_ < 0) {
PLOG(ERROR) << "inotify_init failed";
return false;
}
- int flags = fcntl(inotify_fd_, F_GETFL);
- if (fcntl(inotify_fd_, F_SETFL, flags | O_NONBLOCK) < 0) {
+#if !defined(OS_FREEBSD)
+ int flags = fcntl(notify_fd_, F_GETFL);
+
+ // This call to fcntl returns ENOTTY on FreeBSD.
+ if (fcntl(notify_fd_, F_SETFL, flags | O_NONBLOCK) < 0) {
int flags = fcntl(inotify_fd_, F_GETFL);
+ // This call returns ENOTTY on FreeBSD.
if (fcntl(inotify_fd_, F_SETFL, flags | O_NONBLOCK) < 0) {
PLOG(ERROR) << "fcntl failed";
- close(inotify_fd_);
- inotify_fd_ = -1;
+ close(notify_fd_);
+ notify_fd_ = -1;
close(inotify_fd_);
inotify_fd_ = -1;
return false;
}
+#endif
file_loop_ = file_loop;
// The initial read is done on the current thread, not |file_loop_|,
// since we will need to have it for SetupAndFetchInitialConfig().
@@ -529,28 +543,42 @@
}
void Shutdown() {
- if (inotify_fd_ >= 0) {
+ if (notify_fd_ >= 0) {
ResetCachedSettings();
- inotify_watcher_.StopWatchingFileDescriptor();
- close(inotify_fd_);
- inotify_fd_ = -1;
+ notify_watcher_.StopWatchingFileDescriptor();
+ close(notify_fd_);
+ notify_fd_ = -1;
}
}
bool SetupNotification(ProxyConfigServiceLinux::Delegate* delegate) {
- DCHECK(inotify_fd_ >= 0);
+ DCHECK(notify_fd_ >= 0);
DCHECK(file_loop_);
// since we will need to have it for SetUpAndFetchInitialConfig().
@@ -968,6 +987,18 @@
bool SetUpNotifications(ProxyConfigServiceLinux::Delegate* delegate) {
DCHECK(inotify_fd_ >= 0);
DCHECK(MessageLoop::current() == file_loop_);
+#if defined(OS_FREEBSD)
+ // Catch the deletion event of kioslaverc.
+ int fd = open(kde_config_dir_.Append("kioslaverc").value().c_str(),
+ O_RDONLY);
+ if (fd == -1)
+ config_fd_ = open(kde_config_dir_.value().c_str(), O_RDONLY);
+
+ if (config_fd_ == -1)
+ return false;
+
+ struct kevent ke;
+ EV_SET(&ke, fd, EVFILT_VNODE, (EV_ADD | EV_CLEAR),
+ (NOTE_DELETE | NOTE_RENAME), 0, NULL);
+ if (kevent(notify_fd_, &ke, 1, NULL, 0, NULL) == -1)
+ struct kevent ev;
+ EV_SET(&ev, config_fd_, EVFILT_VNODE,
+ (EV_ADD | EV_CLEAR), NOTE_WRITE, 0, NULL);
+ if (kevent(inotify_fd_, &ev, 1, NULL, 0, NULL) == -1)
+ return false;
+#else
// We can't just watch the kioslaverc file directly, since KDE will write
// a new copy of it and then rename it whenever settings are changed and
// inotify watches inodes (so we'll be watching the old deleted file after
// the first change, and it will never change again). So, we watch the
// directory instead. We then act only on changes to the kioslaverc entry.
- if (inotify_add_watch(inotify_fd_, kde_config_dir_.value().c_str(),
+ if (inotify_add_watch(notify_fd_, kde_config_dir_.value().c_str(),
@@ -976,6 +1007,7 @@
if (inotify_add_watch(inotify_fd_, kde_config_dir_.value().c_str(),
IN_MODIFY | IN_MOVED_TO) < 0)
return false;
+#endif
notify_delegate_ = delegate;
- return file_loop_->WatchFileDescriptor(inotify_fd_, true,
- MessageLoopForIO::WATCH_READ, &inotify_watcher_, this);
+ return file_loop_->WatchFileDescriptor(notify_fd_, true,
+ MessageLoopForIO::WATCH_READ, &notify_watcher_, this);
}
virtual MessageLoop* GetNotificationLoop() {
@@ -559,7 +587,7 @@
// Implement base::MessagePumpLibevent::Delegate.
if (!file_loop_->WatchFileDescriptor(inotify_fd_, true,
MessageLoopForIO::WATCH_READ, &inotify_watcher_, this))
@@ -993,7 +1025,23 @@
void OnFileCanReadWithoutBlocking(int fd) {
- DCHECK(fd == inotify_fd_);
+ DCHECK(fd == notify_fd_);
DCHECK(fd == inotify_fd_);
DCHECK(MessageLoop::current() == file_loop_);
+#if defined(OS_FREEBSD)
+ struct kevent ev;
+ int rv = kevent(inotify_fd_, NULL, 0, &ev, 1, NULL);
+
+ if (rv != -1 && (ev.flags & EV_ERROR) == 0) {
+ OnChangeNotification();
+ } else {
+ LOG(ERROR) << "kevent() failure; no longer watching kioslaverc!";
+ inotify_watcher_.StopWatchingFileDescriptor();
+ close(config_fd_);
+ config_fd_ = -1;
+ close(inotify_fd_);
+ inotify_fd_ = -1;
+ }
+#else
OnChangeNotification();
+#endif
}
@@ -830,12 +858,28 @@
void OnFileCanWriteWithoutBlocking(int fd) {
NOTREACHED();
@@ -1262,10 +1310,14 @@
// from the inotify file descriptor and starts up a debounce timer if
// an event for kioslaverc is seen.
void OnChangeNotification() {
- DCHECK(inotify_fd_ >= 0);
+ DCHECK(notify_fd_ >= 0);
+ DCHECK(config_fd_ >= 0);
DCHECK(inotify_fd_ >= 0);
DCHECK(MessageLoop::current() == file_loop_);
- char event_buf[(sizeof(inotify_event) + NAME_MAX + 1) * 4];
bool kioslaverc_touched = false;
+#if defined(OS_FREEBSD)
+ // TODO(gliaskos): We never get here so we don't get events when the
+ // KDE proxy settings change. Find out why :/
+ struct kevent ke;
+ int rv = kevent(notify_fd_, NULL, 0, &ke, 1, NULL);
+
+ if (rv != -1) {
+ kioslaverc_touched = true;
+ } else {
+ LOG(ERROR) << "kevent() failure; no longer watching kioslaverc!";
+ notify_watcher_.StopWatchingFileDescriptor();
+ close(notify_fd_);
+ notify_fd_ = -1;
+ }
+ close(ke.ident);
+ kioslaverc_touched = true;
+#else
+ char event_buf[(sizeof(inotify_event) + NAME_MAX + 1) * 4];
ssize_t r;
- while ((r = read(inotify_fd_, event_buf, sizeof(event_buf))) > 0) {
+ while ((r = read(notify_fd_, event_buf, sizeof(event_buf))) > 0) {
while ((r = read(inotify_fd_, event_buf, sizeof(event_buf))) > 0) {
// inotify returns variable-length structures, which is why we have
// this strange-looking loop instead of iterating through an array.
char* event_ptr = event_buf;
@@ -862,14 +906,15 @@
if (errno == EINVAL) {
// Our buffer is not large enough to read the next event. This should
// not happen (because its size is calculated to always be sufficiently
- // large), but if it does we'd warn continuously since |inotify_fd_|
+ // large), but if it does we'd warn continuously since |notify_fd_|
// would be forever ready to read. Close it and stop watching instead.
LOG(ERROR) << "inotify failure; no longer watching kioslaverc!";
- inotify_watcher_.StopWatchingFileDescriptor();
- close(inotify_fd_);
- inotify_fd_ = -1;
+ notify_watcher_.StopWatchingFileDescriptor();
+ close(notify_fd_);
+ notify_fd_ = -1;
@@ -1302,6 +1354,7 @@
inotify_fd_ = -1;
}
}
+#endif
if (kioslaverc_touched) {
// We don't use Reset() because the timer may not yet be running.
// (In that case Stop() is a no-op.)
@@ -883,8 +928,8 @@
typedef std::map<std::string, std::string> string_map_type;
typedef std::map<std::string, std::vector<std::string> > strings_map_type;
@@ -1316,6 +1369,7 @@
typedef std::map<StringListSetting,
std::vector<std::string> > strings_map_type;
- int inotify_fd_;
- base::MessagePumpLibevent::FileDescriptorWatcher inotify_watcher_;
+ int notify_fd_;
+ base::MessagePumpLibevent::FileDescriptorWatcher notify_watcher_;
+ int config_fd_;
int inotify_fd_;
base::MessagePumpLibevent::FileDescriptorWatcher inotify_watcher_;
ProxyConfigServiceLinux::Delegate* notify_delegate_;
base::OneShotTimer<GConfSettingGetterImplKDE> debounce_timer_;
FilePath kde_config_dir_;

View file

@ -1,11 +1,20 @@
--- ppapi/proxy/ppb_image_data_proxy.cc.orig 2011-04-19 21:36:29.491038804 +0300
+++ ppapi/proxy/ppb_image_data_proxy.cc 2011-04-19 21:37:11.973039170 +0300
@@ -21,7 +21,7 @@
#include "ppapi/proxy/ppapi_messages.h"
#include "ppapi/shared_impl/image_data_impl.h"
--- ppapi/proxy/ppb_image_data_proxy.cc.orig 2011-06-28 23:59:12.540806582 +0300
+++ ppapi/proxy/ppb_image_data_proxy.cc 2011-06-28 23:59:15.075806980 +0300
@@ -111,7 +111,7 @@
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined (OS_FREEBSD)
#include <sys/shm.h>
#elif defined(OS_MACOSX)
#include <sys/stat.h>
#if defined(OS_WIN)
const ImageHandle ImageData::NullHandle = NULL;
-#elif defined(OS_MACOSX)
+#elif defined(OS_MACOSX) || defined(OS_FREEBSD)
const ImageHandle ImageData::NullHandle = ImageHandle();
#else
const ImageHandle ImageData::NullHandle = 0;
@@ -120,7 +120,7 @@
ImageHandle ImageData::HandleFromInt(int32_t i) {
#if defined(OS_WIN)
return reinterpret_cast<ImageHandle>(i);
-#elif defined(OS_MACOSX)
+#elif defined(OS_MACOSX) || defined(OS_FREEBSD)
return ImageHandle(i, false);
#else
return static_cast<ImageHandle>(i);

View file

@ -0,0 +1,11 @@
--- ppapi/proxy/serialized_structs.h.orig 2011-06-27 23:46:48.860441060 +0300
+++ ppapi/proxy/serialized_structs.h 2011-06-27 23:46:52.210441968 +0300
@@ -115,7 +115,7 @@
#if defined(OS_WIN)
typedef HANDLE ImageHandle;
-#elif defined(OS_MACOSX)
+#elif defined(OS_MACOSX) || defined(OS_FREEBSD)
typedef base::SharedMemoryHandle ImageHandle;
#else
// On X Windows this is a SysV shared memory key.

View file

@ -1,30 +0,0 @@
--- ./printing/printing.gyp.orig 2010-12-16 02:11:23.000000000 +0100
+++ ./printing/printing.gyp 2010-12-20 20:15:08.000000000 +0100
@@ -165,7 +165,7 @@
'units_unittest.cc',
],
'conditions': [
- ['OS!="linux"', {'sources/': [['exclude', '_cairo_unittest\\.cc$']]}],
+ ['OS!="linux" and OS!="freebsd"', {'sources/': [['exclude', '_cairo_unittest\\.cc$']]}],
['OS!="mac"', {'sources/': [['exclude', '_mac_unittest\\.(cc|mm?)$']]}],
['OS!="win"', {'sources/': [['exclude', '_win_unittest\\.cc$']]
}, { # else: OS=="win"
@@ -176,14 +176,12 @@
'dependencies': [
'../build/linux/system.gyp:gtk',
],
- }],
- ['OS=="linux"', {
- 'conditions': [
- ['linux_use_tcmalloc==1', {
+ 'conditions': [
+ ['linux_use_tcmalloc==1', {
'dependencies': [
'../base/allocator/allocator.gyp:allocator',
- ],
- }],
+ ],
+ }],
],
}],
],

View file

@ -1,38 +0,0 @@
--- remoting/remoting.gyp.orig 2011-05-06 12:02:51.000000000 +0300
+++ remoting/remoting.gyp 2011-06-05 16:03:32.069163399 +0300
@@ -16,7 +16,7 @@
},
'conditions': [
- ['OS=="linux" or OS=="mac"', {
+ ['OS=="linux" or OS=="freebsd" or OS=="mac"', {
'targets': [
# Simple webserver for testing chromoting client plugin.
{
@@ -40,6 +40,8 @@
'chromoting_base',
'chromoting_client',
'chromoting_jingle_glue',
+ '../build/linux/system.gyp:x11',
+ '../build/linux/system.gyp:xext',
],
'link_settings': {
'libraries': [
@@ -238,7 +240,7 @@
'host/user_authenticator_win.cc',
],
'conditions': [
- ['OS=="linux"', {
+ ['OS=="linux" or OS=="freebsd" or OS=="openbsd"', {
'dependencies': [
'../build/linux/system.gyp:gtk',
],
@@ -555,7 +557,7 @@
'run_all_unittests.cc',
],
'conditions': [
- ['OS=="linux"', {
+ ['OS=="linux" or OS=="freebsd" or OS=="openbsd"', {
'dependencies': [
'../app/app.gyp:app_base',
# Needed for the following #include chain:

View file

@ -0,0 +1,38 @@
--- third_party/WebKit/Source/WebCore/WebCore.gyp/WebCore.gyp.orig 2011-07-19 20:25:57.839631432 +0300
+++ third_party/WebKit/Source/WebCore/WebCore.gyp/WebCore.gyp 2011-07-19 20:26:53.497910347 +0300
@@ -986,7 +986,7 @@
'include_dirs+++': ['../dom'],
},
}],
- ['(OS=="linux" or OS=="win") and "WTF_USE_WEBAUDIO_FFTW=1" in feature_defines', {
+ ['(OS=="linux" or OS=="freebsd" or OS=="win") and "WTF_USE_WEBAUDIO_FFTW=1" in feature_defines', {
'include_dirs': [
'<(chromium_src_dir)/third_party/fftw/api',
],
@@ -1194,7 +1194,7 @@
'include_dirs++': ['../dom'],
},
}],
- ['(OS=="linux" or OS=="win") and "WTF_USE_WEBAUDIO_FFTW=1" in feature_defines', {
+ ['(OS=="linux" or OS=="freebsd" or OS=="win") and "WTF_USE_WEBAUDIO_FFTW=1" in feature_defines', {
# This directory needs to be on the include path for multiple sub-targets of webcore.
'direct_dependent_settings': {
'include_dirs': [
@@ -1202,7 +1202,7 @@
],
},
}],
- ['(OS=="mac" or OS=="linux" or OS=="win") and "WTF_USE_WEBAUDIO_FFMPEG=1" in feature_defines', {
+ ['(OS=="mac" or OS=="linux" or OS=="freebsd" or OS=="win") and "WTF_USE_WEBAUDIO_FFMPEG=1" in feature_defines', {
# This directory needs to be on the include path for multiple sub-targets of webcore.
'direct_dependent_settings': {
'include_dirs': [
@@ -1708,7 +1708,7 @@
'include_dirs+++': ['../dom'],
},
}],
- ['OS=="linux" and "WTF_USE_WEBAUDIO_FFTW=1" in feature_defines', {
+ ['OS=="linux" or OS=="freebsd" and "WTF_USE_WEBAUDIO_FFTW=1" in feature_defines', {
# FIXME: (kbr) figure out how to make these dependencies
# work in a cross-platform way. Attempts to use
# "link_settings" and "libraries" in conjunction with the

View file

@ -0,0 +1,16 @@
--- third_party/WebKit/Source/WebCore/config.h.orig 2011-07-19 20:24:21.258582723 +0300
+++ third_party/WebKit/Source/WebCore/config.h 2011-07-19 20:25:31.840201896 +0300
@@ -199,6 +199,13 @@
#define USE_SYSTEM_MALLOC 1
#endif
+#if OS(FREEBSD)
+#include <sys/param.h>
+#if __FreeBSD_version < 802502
+#define log2(x) (log(x) / M_LN2)
+#endif
+#endif
+
#if OS(UNIX) || OS(WINDOWS)
#define WTF_USE_OS_RANDOMNESS 1
#endif

View file

@ -1,11 +0,0 @@
--- third_party/WebKit/Source/WebCore/platform/chromium/PlatformBridge.h.orig 2011-03-20 22:02:04.218736318 +0200
+++ third_party/WebKit/Source/WebCore/platform/chromium/PlatformBridge.h 2011-03-20 22:02:04.401737230 +0200
@@ -264,7 +264,7 @@
GraphicsContext*, int part, int state, int classicState, const IntRect&);
static void paintProgressBar(
GraphicsContext*, const IntRect& barRect, const IntRect& valueRect, bool determinate, double animatedSeconds);
-#elif OS(LINUX)
+#elif OS(LINUX) || OS(FREEBSD)
// The UI part which is being accessed.
enum ThemePart {
// ScrollbarTheme parts

View file

@ -1,11 +0,0 @@
--- third_party/WebKit/Source/WebKit/chromium/src/PlatformBridge.cpp.orig 2011-03-20 22:02:04.338736765 +0200
+++ third_party/WebKit/Source/WebKit/chromium/src/PlatformBridge.cpp 2011-03-20 22:02:04.469737772 +0200
@@ -778,7 +778,7 @@
gc->platformContext()->canvas(), barRect, valueRect, determinate, animatedSeconds);
}
-#elif OS(LINUX)
+#elif OS(LINUX) || OS(FREEBSD)
static WebThemeEngine::Part WebThemePart(PlatformBridge::ThemePart part)
{

View file

@ -1,29 +0,0 @@
--- third_party/icu/icu.gyp.orig 2011-04-15 11:18:40.000000000 +0300
+++ third_party/icu/icu.gyp 2011-04-19 22:22:13.540040004 +0300
@@ -54,7 +54,7 @@
}, { # else: OS != "win"
'sources!': ['windows/icudt46.dll'],
}],
- [ 'OS != "linux" or chromeos == 1', {
+ [ '(OS != "linux" and OS != "freebsd") or chromeos == 1', {
'sources!': ['linux/icudt46l_dat.S'],
}],
[ 'OS != "mac"', {
@@ -264,7 +264,7 @@
],
},
'conditions': [
- [ 'OS=="linux"', {
+ [ 'OS=="linux" or OS=="freebsd"', {
# Since ICU wants to internally use its own deprecated APIs, don't
# complain about it.
'cflags': [
@@ -479,7 +479,7 @@
'source/stubdata/stubdata.c',
],
}],
- [ 'OS == "linux"', {
+ [ 'OS == "linux" or OS == "freebsd"', {
'cflags': [
# Since ICU wants to internally use its own deprecated APIs,
# don't complain about it.

View file

@ -1,11 +0,0 @@
--- third_party/icu/public/common/unicode/ptypes.h.orig 2011-04-19 21:44:48.515037943 +0300
+++ third_party/icu/public/common/unicode/ptypes.h 2011-04-19 21:44:58.365038712 +0300
@@ -26,6 +26,8 @@
# include "unicode/pmac.h"
#elif defined(__linux__)
# include "unicode/plinux.h"
+#elif defined(__FreeBSD__)
+# include "unicode/pfreebsd.h"
#else
# include "unicode/platform.h"
#endif

View file

@ -0,0 +1,20 @@
--- third_party/leveldb/util/env_chromium.cc.orig 2011-06-27 01:35:45.210558183 +0300
+++ third_party/leveldb/util/env_chromium.cc 2011-06-27 01:44:12.434784726 +0300
@@ -29,7 +29,7 @@
#include "base/win/win_util.h"
#endif
-#if defined(OS_MACOSX) || defined(OS_WIN)
+#if !defined(OS_LINUX)
// The following are glibc-specific
namespace {
@@ -420,7 +420,7 @@
#elif defined(OS_FREEBSD) || defined(OS_NACL)
// TODO(BSD): find a better thread ID
pthread_t tid = pthread_self();
- memcpy(&thread_id, &tid, min(sizeof(r), sizeof(tid)));
+ memcpy(&thread_id, &tid, std::min(sizeof(thread_id), sizeof(tid)));
#endif
// We try twice: the first time with a fixed-size stack allocated buffer,

View file

@ -1,23 +0,0 @@
--- ./third_party/libevent/libevent.gyp.orig 2010-12-16 02:11:36.000000000 +0100
+++ ./third_party/libevent/libevent.gyp 2010-12-20 20:15:08.000000000 +0100
@@ -45,15 +45,18 @@
'link_settings': {
'libraries': [
# We need rt for clock_gettime().
- # TODO(port) Maybe on FreeBSD as well?
'-lrt',
],
},
}],
- [ 'OS == "mac" or OS == "freebsd" or OS == "openbsd" or OS == "solaris"', {
+ [ 'OS == "mac" or OS == "openbsd" or OS == "solaris"', {
'sources': [ 'kqueue.c' ],
'include_dirs': [ 'mac' ]
}],
+ [ 'OS == "freebsd"', {
+ 'sources': [ 'kqueue.c' ],
+ 'include_dirs': [ 'freebsd' ]
+ }],
],
},
],

View file

@ -1,11 +0,0 @@
--- ./third_party/mesa/mesa.gyp.orig 2010-12-16 02:11:42.000000000 +0100
+++ ./third_party/mesa/mesa.gyp 2010-12-20 20:15:08.000000000 +0100
@@ -19,7 +19,7 @@
'HAVE_STRNLEN',
],
}],
- ['OS=="linux"', {
+ ['OS=="linux" or OS=="freebsd"', {
'cflags': [
'-fPIC',
],

View file

@ -1,11 +0,0 @@
--- ui/base/resource/resource_bundle.cc.orig 2011-04-15 11:02:03.000000000 +0300
+++ ui/base/resource/resource_bundle.cc 2011-04-16 23:02:04.027069500 +0300
@@ -129,7 +129,7 @@
return *GetEmptyImage();
}
-#if !defined(OS_MACOSX) && !defined(OS_LINUX)
+#if !defined(OS_MACOSX) && !defined(OS_LINUX) && !defined(OS_FREEBSD)
// Only Mac and Linux have non-Skia native image types. All other platforms use
// Skia natively, so just use GetImageNamed().
gfx::Image& ResourceBundle::GetNativeImageNamed(int resource_id) {

View file

@ -1,38 +0,0 @@
--- ui/gfx/gl/gl_bindings.h.orig 2010-12-16 02:11:22.000000000 +0100
+++ ui/gfx/gl/gl_bindings.h 2010-12-20 20:15:07.000000000 +0100
@@ -22,7 +22,7 @@
// The standard OpenGL native extension headers are also included.
#if defined(OS_WIN)
#include <GL/wglext.h>
-#elif defined(OS_LINUX)
+#elif defined(OS_LINUX) || defined(OS_FREEBSD)
#include <GL/glx.h>
#include <GL/glxext.h>
@@ -52,7 +52,7 @@
typedef struct osmesa_context *OSMesaContext;
typedef void (*OSMESAproc)();
-#if defined(OS_WIN) || defined(OS_LINUX)
+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_FREEBSD)
// Forward declare EGL types.
typedef unsigned int EGLBoolean;
@@ -75,7 +75,7 @@
typedef Window EGLNativeWindowType;
#endif
-#endif // OS_WIN || OS_LINUX
+#endif // OS_WIN || OS_LINUX || OS_FREEBSD
#include "gl_bindings_autogen_gl.h"
#include "gl_bindings_autogen_osmesa.h"
@@ -83,7 +83,7 @@
#if defined(OS_WIN)
#include "gl_bindings_autogen_egl.h"
#include "gl_bindings_autogen_wgl.h"
-#elif defined(OS_LINUX)
+#elif defined(OS_LINUX) || defined(OS_FREEBSD)
#include "gl_bindings_autogen_egl.h"
#include "gl_bindings_autogen_glx.h"
#endif

View file

@ -1,11 +0,0 @@
--- ui/gfx/gl/gl_context_egl.cc.orig 2011-05-06 12:03:42.000000000 +0300
+++ ui/gfx/gl/gl_context_egl.cc 2011-06-05 16:26:28.775163463 +0300
@@ -15,7 +15,7 @@
// it brings in #defines that cause conflicts.
#include "ui/gfx/gl/gl_bindings.h"
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
extern "C" {
#include <X11/Xlib.h>
}

View file

@ -1,74 +0,0 @@
--- ui/gfx/image.cc.orig 2011-04-21 23:28:33.509559314 +0300
+++ ui/gfx/image.cc 2011-04-21 23:28:36.737559521 +0300
@@ -9,7 +9,7 @@
#include "base/logging.h"
#include "third_party/skia/include/core/SkBitmap.h"
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <glib-object.h>
#include "ui/gfx/canvas_skia.h"
@@ -29,7 +29,7 @@
const SkBitmap* NSImageToSkBitmap(NSImage* image);
#endif
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
const SkBitmap* GdkPixbufToSkBitmap(GdkPixbuf* pixbuf) {
gfx::CanvasSkia canvas(gdk_pixbuf_get_width(pixbuf),
gdk_pixbuf_get_height(pixbuf),
@@ -61,7 +61,7 @@
return reinterpret_cast<SkBitmapRep*>(this);
}
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
GdkPixbufRep* AsGdkPixbufRep() {
CHECK_EQ(type_, Image::kGdkPixbufRep);
return reinterpret_cast<GdkPixbufRep*>(this);
@@ -102,7 +102,7 @@
DISALLOW_COPY_AND_ASSIGN(SkBitmapRep);
};
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
class GdkPixbufRep : public ImageRep {
public:
explicit GdkPixbufRep(GdkPixbuf* pixbuf)
@@ -158,7 +158,7 @@
AddRepresentation(rep);
}
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
Image::Image(GdkPixbuf* pixbuf)
: default_representation_(Image::kGdkPixbufRep) {
internal::GdkPixbufRep* rep = new internal::GdkPixbufRep(pixbuf);
@@ -190,7 +190,7 @@
return *(this->operator const SkBitmap*());
}
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
Image::operator GdkPixbuf*() {
internal::ImageRep* rep = GetRepresentation(Image::kGdkPixbufRep);
return rep->AsGdkPixbufRep()->pixbuf();
@@ -237,7 +237,7 @@
// Handle native-to-Skia conversion.
if (rep_type == Image::kSkBitmapRep) {
internal::SkBitmapRep* rep = NULL;
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
if (default_representation_ == Image::kGdkPixbufRep) {
internal::GdkPixbufRep* pixbuf_rep = default_rep->AsGdkPixbufRep();
rep = new internal::SkBitmapRep(
@@ -261,7 +261,7 @@
if (default_rep->type() == Image::kSkBitmapRep) {
internal::SkBitmapRep* skia_rep = default_rep->AsSkBitmapRep();
internal::ImageRep* native_rep = NULL;
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
if (rep_type == Image::kGdkPixbufRep) {
GdkPixbuf* pixbuf = gfx::GdkPixbufFromSkBitmap(skia_rep->bitmap());
native_rep = new internal::GdkPixbufRep(pixbuf);

View file

@ -1,20 +0,0 @@
--- ui/gfx/image.h.orig 2011-04-19 23:12:17.508039568 +0300
+++ ui/gfx/image.h 2011-04-19 23:12:44.348038227 +0300
@@ -43,7 +43,7 @@
// Creates a new image with the default representation. The object will take
// ownership of the image.
explicit Image(const SkBitmap* bitmap);
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
// Does not increase |pixbuf|'s reference count; expects to take ownership.
explicit Image(GdkPixbuf* pixbuf);
#elif defined(OS_MACOSX)
@@ -57,7 +57,7 @@
// Conversion handlers.
operator const SkBitmap*();
operator const SkBitmap&();
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
operator GdkPixbuf*();
#elif defined(OS_MACOSX)
operator NSImage*();

View file

@ -1,11 +0,0 @@
--- ui/gfx/native_widget_types.h.orig 2011-04-16 22:00:39.271073137 +0300
+++ ui/gfx/native_widget_types.h 2011-04-16 22:02:38.712069130 +0300
@@ -97,7 +97,7 @@
#if defined(OS_MACOSX)
typedef NSImage NativeImageType;
-#elif defined(OS_LINUX) && !defined(TOOLKIT_VIEWS)
+#elif (defined(OS_LINUX) || defined(OS_FREEBSD)) && !defined(TOOLKIT_VIEWS)
typedef GdkPixbuf NativeImageType;
#else
typedef SkBitmap NativeImageType;

View file

@ -1,21 +1,32 @@
--- ui/gfx/surface/surface.gyp.orig 2011-06-05 21:15:55.954163307 +0300
+++ ui/gfx/surface/surface.gyp 2011-06-05 21:16:05.238163089 +0300
@@ -10,11 +10,17 @@
['exclude', '/(gtk|win|x11)_[^/]*\\.cc$'],
],
'conditions': [
- ['OS=="linux" or OS=="freebsd" or OS=="openbsd"', {'sources/': [
+ ['OS=="linux"', {'sources/': [
['include', '/gtk/'],
['include', '_(gtk|linux|posix|skia|x)\\.cc$'],
['include', '/(gtk|x11)_[^/]*\\.cc$'],
]}],
+ ['OS=="freebsd" or OS=="openbsd"', {'sources/': [
+ # gliaskos: Use transport_dib_mac.cc instead of duplicating the code.
+ ['include', '/gtk/'],
+ ['include', '_(gtk|dib_mac|posix|skia|x)\\.cc$'],
+ ['include', '/(gtk|x11)_[^/]*\\.cc$'],
+ ]}],
--- ui/gfx/surface/surface.gyp.orig 2011-06-29 21:20:25.308574273 +0300
+++ ui/gfx/surface/surface.gyp 2011-06-29 21:24:36.234570454 +0300
@@ -13,10 +13,20 @@
['toolkit_uses_gtk == 1', {
'sources/': [
['include', '/gtk/'],
- ['include', '_(gtk|linux|posix|skia|x)\\.cc$'],
+ ['include', '_(gtk|posix|skia|x)\\.cc$'],
['include', '/(gtk|x11)_[^/]*\\.cc$'],
],
}],
+ ['OS=="linux"', {
+ 'sources/': [
+ ['include', '_linux\\.cc$'],
+ ],
+ }],
+ ['OS=="freebsd"', {
+ 'sources/': [
+ ['include', '_freebsd\\.cc$'],
+ ],
+ }],
['OS=="mac"', {'sources/': [
['include', '/cocoa/'],
['include', '_(cocoa|mac|posix)\\.(cc|mm?)$'],
@@ -53,6 +63,7 @@
'transport_dib_linux.cc',
'transport_dib_mac.cc',
'transport_dib_win.cc',
+ 'transport_dib_freebsd.cc',
],
},
],

View file

@ -0,0 +1,110 @@
--- /dev/null 2011-06-28 23:33:00.000000000 +0300
+++ ui/gfx/surface/transport_dib_freebsd.cc 2011-06-28 23:30:26.428806593 +0300
@@ -0,0 +1,107 @@
+// 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 "ui/gfx/surface/transport_dib.h"
+
+#include <unistd.h>
+#include <sys/stat.h>
+
+#include "base/eintr_wrapper.h"
+#include "base/logging.h"
+#include "base/memory/scoped_ptr.h"
+#include "base/shared_memory.h"
+#include "skia/ext/platform_canvas.h"
+
+TransportDIB::TransportDIB()
+ : size_(0) {
+}
+
+TransportDIB::TransportDIB(TransportDIB::Handle dib)
+ : shared_memory_(dib, false /* read write */),
+ size_(0) {
+}
+
+TransportDIB::~TransportDIB() {
+}
+
+// static
+TransportDIB* TransportDIB::Create(size_t size, uint32 sequence_num) {
+ TransportDIB* dib = new TransportDIB;
+ if (!dib->shared_memory_.CreateAndMapAnonymous(size)) {
+ delete dib;
+ return NULL;
+ }
+
+ dib->size_ = size;
+ return dib;
+}
+
+// static
+TransportDIB* TransportDIB::Map(Handle handle) {
+ scoped_ptr<TransportDIB> dib(CreateWithHandle(handle));
+ if (!dib->Map())
+ return NULL;
+ return dib.release();
+}
+
+// static
+TransportDIB* TransportDIB::CreateWithHandle(Handle handle) {
+ return new TransportDIB(handle);
+}
+
+// static
+bool TransportDIB::is_valid_handle(Handle dib) {
+ return dib.fd >= 0;
+}
+
+// static
+bool TransportDIB::is_valid_id(Id id) {
+ return id != 0;
+}
+
+skia::PlatformCanvas* TransportDIB::GetPlatformCanvas(int w, int h) {
+ if (!memory() && !Map())
+ return NULL;
+ scoped_ptr<skia::PlatformCanvas> canvas(new skia::PlatformCanvas);
+ if (!canvas->initialize(w, h, true, reinterpret_cast<uint8_t*>(memory())))
+ return NULL;
+ return canvas.release();
+}
+
+bool TransportDIB::Map() {
+ if (!is_valid_handle(handle()))
+ return false;
+ if (memory())
+ return true;
+
+ struct stat st;
+ if ((fstat(shared_memory_.handle().fd, &st) != 0) ||
+ (!shared_memory_.Map(st.st_size))) {
+ return false;
+ }
+
+ size_ = st.st_size;
+ return true;
+}
+
+void* TransportDIB::memory() const {
+ return shared_memory_.memory();
+}
+
+TransportDIB::Id TransportDIB::id() const {
+ return shared_memory_.id();
+}
+
+TransportDIB::Handle TransportDIB::handle() const {
+ return shared_memory_.handle();
+}
+
+XID TransportDIB::MapToX(Display* display) {
+ if (!x_shm_) {
+ x_shm_ = ui::AttachSharedMemory(display, key_);
+ display_ = display;
+ }
+
+ return x_shm_;
+}

View file

@ -1,15 +0,0 @@
--- ui/gfx/surface/transport_dib_mac.cc.orig 2011-06-05 20:47:40.781162828 +0300
+++ ui/gfx/surface/transport_dib_mac.cc 2011-06-05 20:47:51.617166566 +0300
@@ -96,3 +96,12 @@
TransportDIB::Handle TransportDIB::handle() const {
return shared_memory_.handle();
}
+
+XID TransportDIB::MapToX(Display* display) {
+ if (!x_shm_) {
+ x_shm_ = ui::AttachSharedMemory(display, key_);
+ display_ = display;
+ }
+
+ return x_shm_;
+}

View file

@ -1,70 +0,0 @@
--- v8/src/platform-freebsd.cc.orig 2011-06-05 18:08:56.225331291 +0300
+++ v8/src/platform-freebsd.cc 2011-06-05 18:46:22.678164821 +0300
@@ -55,6 +55,7 @@
#include "platform.h"
#include "vm-state-inl.h"
+#include "v8threads.h"
namespace v8 {
@@ -397,31 +398,6 @@
};
-ThreadHandle::ThreadHandle(Kind kind) {
- data_ = new PlatformData(kind);
-}
-
-
-void ThreadHandle::Initialize(ThreadHandle::Kind kind) {
- data_->Initialize(kind);
-}
-
-
-ThreadHandle::~ThreadHandle() {
- delete data_;
-}
-
-
-bool ThreadHandle::IsSelf() const {
- return pthread_equal(data_->thread_, pthread_self());
-}
-
-
-bool ThreadHandle::IsValid() const {
- return data_->thread_ != kNoThread;
-}
-
-
Thread::Thread(Isolate* isolate, const Options& options)
: data_(new PlatformData),
isolate_(isolate),
@@ -448,8 +424,8 @@
// This is also initialized by the first argument to pthread_create() but we
// don't know which thread will run first (the original thread or the new
// one) so we initialize it here too.
- thread_->data_->thread_ = pthread_self();
- ASSERT(thread->IsValid());
+ thread->data()->thread_ = pthread_self();
+ ASSERT(thread->data()->thread_ != kNoThread);
Thread::SetThreadLocal(Isolate::isolate_key(), thread->isolate());
thread->Run();
return NULL;
@@ -470,13 +446,13 @@
pthread_attr_setstacksize(&attr, static_cast<size_t>(stack_size_));
attr_ptr = &attr;
}
- pthread_create(&thread_handle_data()->thread_, attr_ptr, ThreadEntry, this);
- ASSERT(IsValid());
+ pthread_create(&data_->thread_, attr_ptr, ThreadEntry, this);
+ ASSERT(data_->thread_ != kNoThread);
}
void Thread::Join() {
- pthread_join(thread_handle_data()->thread_, NULL);
+ pthread_join(data_->thread_, NULL);
}

View file

@ -1,20 +0,0 @@
--- webkit/glue/webkitclient_impl.cc.orig 2011-02-03 10:01:07.000000000 +0100
+++ webkit/glue/webkitclient_impl.cc 2011-02-05 00:07:18.000000000 +0100
@@ -42,7 +42,7 @@
#include "webkit/glue/websocketstreamhandle_impl.h"
#include "webkit/glue/weburlloader_impl.h"
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
#include "v8/include/v8.h"
#endif
@@ -205,7 +205,7 @@
}
WebThemeEngine* WebKitClientImpl::themeEngine() {
-#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
+#if defined(OS_WIN) || defined(OS_POSIX)
return &theme_engine_;
#else
return NULL;

View file

@ -1,20 +0,0 @@
--- webkit/glue/webkitclient_impl.h.orig 2011-02-03 10:01:07.000000000 +0100
+++ webkit/glue/webkitclient_impl.h 2011-02-05 00:08:55.000000000 +0100
@@ -10,7 +10,7 @@
#include "third_party/WebKit/Source/WebKit/chromium/public/WebKitClient.h"
#if defined(OS_WIN)
#include "webkit/glue/webthemeengine_impl_win.h"
-#elif defined(OS_LINUX)
+#elif defined(OS_LINUX) || defined(OS_OPENBSD) || defined(OS_FREEBSD)
#include "webkit/glue/webthemeengine_impl_linux.h"
#elif defined(OS_MACOSX)
#include "webkit/glue/webthemeengine_impl_mac.h"
@@ -88,7 +88,7 @@
double shared_timer_fire_time_;
int shared_timer_suspended_; // counter
-#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
+#if defined(OS_WIN) || defined(OS_POSIX)
WebThemeEngineImpl theme_engine_;
#endif
};

View file

@ -0,0 +1,20 @@
--- webkit/plugins/ppapi/ppapi_plugin_instance.cc.orig 2011-06-27 02:14:17.790782765 +0300
+++ webkit/plugins/ppapi/ppapi_plugin_instance.cc 2011-06-27 02:13:53.064781555 +0300
@@ -69,7 +69,7 @@
#include "printing/metafile_impl.h"
#endif
-#if defined(OS_LINUX) || defined(OS_WIN)
+#if defined(OS_LINUX) || defined(OS_FREEBSD) || defined(OS_WIN)
#include "printing/metafile.h"
#include "printing/metafile_skia_wrapper.h"
#endif
@@ -1297,7 +1297,7 @@
#endif // defined(OS_WIN)
bool ret = false;
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
// On Linux we just set the final bits in the native metafile
// (NativeMetafile and PreviewMetafile must have compatible formats,
// i.e. both PDF for this to work).

View file

@ -1,11 +0,0 @@
--- webkit/plugins/ppapi/ppb_flash_impl.h.orig 2011-03-15 06:28:40.000000000 +0200
+++ webkit/plugins/ppapi/ppb_flash_impl.h 2011-03-15 06:28:59.000000000 +0200
@@ -33,7 +33,7 @@
uint32_t glyph_count,
const uint16_t glyph_indices[],
const PP_Point glyph_advances[])
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
;
#else
{ return PP_FALSE; }

View file

@ -1,11 +0,0 @@
--- webkit/support/test_webkit_client.cc.orig 2011-02-03 10:01:07.000000000 +0100
+++ webkit/support/test_webkit_client.cc 2011-02-05 00:03:38.000000000 +0100
@@ -54,7 +54,7 @@
#if defined(OS_WIN)
#include "third_party/WebKit/Source/WebKit/chromium/public/win/WebThemeEngine.h"
#include "webkit/tools/test_shell/test_shell_webthemeengine.h"
-#elif defined(OS_LINUX)
+#elif defined(OS_LINUX) || defined(OS_OPENBSD) || defined(OS_FREEBSD)
#include "third_party/WebKit/Source/WebKit/chromium/public/linux/WebThemeEngine.h"
#elif defined(OS_MACOSX)
#include "base/mac/mac_util.h"

View file

@ -61,20 +61,15 @@ bin/chrome
%%DATADIR%%/protoc
%%DATADIR%%/resources.pak
%%DATADIR%%/resources/inspector/DevTools.js
%%DATADIR%%/resources/inspector/HeapSnapshotWorker.js
%%DATADIR%%/resources/inspector/Images/applicationCache.png
%%DATADIR%%/resources/inspector/Images/auditsIcon.png
%%DATADIR%%/resources/inspector/Images/back.png
%%DATADIR%%/resources/inspector/Images/breakpointBorder.png
%%DATADIR%%/resources/inspector/Images/breakpointConditionalBorder.png
%%DATADIR%%/resources/inspector/Images/breakpointConditionalCounterBorder.png
%%DATADIR%%/resources/inspector/Images/breakpointCounterBorder.png
%%DATADIR%%/resources/inspector/Images/breakpointsActivateButtonGlyph.png
%%DATADIR%%/resources/inspector/Images/breakpointsDeactivateButtonGlyph.png
%%DATADIR%%/resources/inspector/Images/checker.png
%%DATADIR%%/resources/inspector/Images/clearConsoleButtonGlyph.png
%%DATADIR%%/resources/inspector/Images/closeButtons.png
%%DATADIR%%/resources/inspector/Images/consoleButtonGlyph.png
%%DATADIR%%/resources/inspector/Images/consoleIcon.png
%%DATADIR%%/resources/inspector/Images/cookie.png
%%DATADIR%%/resources/inspector/Images/database.png
%%DATADIR%%/resources/inspector/Images/databaseTable.png
@ -83,6 +78,7 @@ bin/chrome
%%DATADIR%%/resources/inspector/Images/debuggerStepInto.png
%%DATADIR%%/resources/inspector/Images/debuggerStepOut.png
%%DATADIR%%/resources/inspector/Images/debuggerStepOver.png
%%DATADIR%%/resources/inspector/Images/deleteIcon.png
%%DATADIR%%/resources/inspector/Images/disclosureTriangleSmallDown.png
%%DATADIR%%/resources/inspector/Images/disclosureTriangleSmallDownBlack.png
%%DATADIR%%/resources/inspector/Images/disclosureTriangleSmallDownWhite.png
@ -92,19 +88,11 @@ bin/chrome
%%DATADIR%%/resources/inspector/Images/disclosureTriangleSmallRightDownBlack.png
%%DATADIR%%/resources/inspector/Images/disclosureTriangleSmallRightDownWhite.png
%%DATADIR%%/resources/inspector/Images/disclosureTriangleSmallRightWhite.png
%%DATADIR%%/resources/inspector/Images/dockButtonGlyph.png
%%DATADIR%%/resources/inspector/Images/elementsIcon.png
%%DATADIR%%/resources/inspector/Images/enableOutlineButtonGlyph.png
%%DATADIR%%/resources/inspector/Images/enableSolidButtonGlyph.png
%%DATADIR%%/resources/inspector/Images/errorIcon.png
%%DATADIR%%/resources/inspector/Images/errorMediumIcon.png
%%DATADIR%%/resources/inspector/Images/errorRedDot.png
%%DATADIR%%/resources/inspector/Images/excludeButtonGlyph.png
%%DATADIR%%/resources/inspector/Images/focusButtonGlyph.png
%%DATADIR%%/resources/inspector/Images/forward.png
%%DATADIR%%/resources/inspector/Images/frame.png
%%DATADIR%%/resources/inspector/Images/garbageCollectButtonGlyph.png
%%DATADIR%%/resources/inspector/Images/gearButtonGlyph.png
%%DATADIR%%/resources/inspector/Images/glossyHeader.png
%%DATADIR%%/resources/inspector/Images/glossyHeaderPressed.png
%%DATADIR%%/resources/inspector/Images/glossyHeaderSelected.png
@ -112,40 +100,29 @@ bin/chrome
%%DATADIR%%/resources/inspector/Images/goArrow.png
%%DATADIR%%/resources/inspector/Images/graphLabelCalloutLeft.png
%%DATADIR%%/resources/inspector/Images/graphLabelCalloutRight.png
%%DATADIR%%/resources/inspector/Images/helpButtonGlyph.png
%%DATADIR%%/resources/inspector/Images/largerResourcesButtonGlyph.png
%%DATADIR%%/resources/inspector/Images/localStorage.png
%%DATADIR%%/resources/inspector/Images/networkIcon.png
%%DATADIR%%/resources/inspector/Images/nodeSearchButtonGlyph.png
%%DATADIR%%/resources/inspector/Images/paneAddButtons.png
%%DATADIR%%/resources/inspector/Images/paneBottomGrow.png
%%DATADIR%%/resources/inspector/Images/paneBottomGrowActive.png
%%DATADIR%%/resources/inspector/Images/paneGrowHandleLine.png
%%DATADIR%%/resources/inspector/Images/paneRefreshButtons.png
%%DATADIR%%/resources/inspector/Images/paneSettingsButtons.png
%%DATADIR%%/resources/inspector/Images/pauseOnExceptionButtonGlyph.png
%%DATADIR%%/resources/inspector/Images/percentButtonGlyph.png
%%DATADIR%%/resources/inspector/Images/popoverArrows.png
%%DATADIR%%/resources/inspector/Images/popoverBackground.png
%%DATADIR%%/resources/inspector/Images/profileGroupIcon.png
%%DATADIR%%/resources/inspector/Images/profileIcon.png
%%DATADIR%%/resources/inspector/Images/profileSmallIcon.png
%%DATADIR%%/resources/inspector/Images/profilesIcon.png
%%DATADIR%%/resources/inspector/Images/profilesSilhouette.png
%%DATADIR%%/resources/inspector/Images/programCounterBorder.png
%%DATADIR%%/resources/inspector/Images/radioDot.png
%%DATADIR%%/resources/inspector/Images/recordButtonGlyph.png
%%DATADIR%%/resources/inspector/Images/recordToggledButtonGlyph.png
%%DATADIR%%/resources/inspector/Images/reloadButtonGlyph.png
%%DATADIR%%/resources/inspector/Images/resourceCSSIcon.png
%%DATADIR%%/resources/inspector/Images/resourceDocumentIcon.png
%%DATADIR%%/resources/inspector/Images/resourceDocumentIconSmall.png
%%DATADIR%%/resources/inspector/Images/resourceJSIcon.png
%%DATADIR%%/resources/inspector/Images/resourcePlainIcon.png
%%DATADIR%%/resources/inspector/Images/resourcePlainIconSmall.png
%%DATADIR%%/resources/inspector/Images/resourcesIcon.png
%%DATADIR%%/resources/inspector/Images/resourcesSizeGraphIcon.png
%%DATADIR%%/resources/inspector/Images/resourcesTimeGraphIcon.png
%%DATADIR%%/resources/inspector/Images/scriptsIcon.png
%%DATADIR%%/resources/inspector/Images/scriptsSilhouette.png
%%DATADIR%%/resources/inspector/Images/searchSmallBlue.png
%%DATADIR%%/resources/inspector/Images/searchSmallBrightBlue.png
@ -170,6 +147,7 @@ bin/chrome
%%DATADIR%%/resources/inspector/Images/statusbarBackgroundChromium.png
%%DATADIR%%/resources/inspector/Images/statusbarBottomBackground.png
%%DATADIR%%/resources/inspector/Images/statusbarBottomBackgroundChromium.png
%%DATADIR%%/resources/inspector/Images/statusbarButtonGlyphs.png
%%DATADIR%%/resources/inspector/Images/statusbarButtons.png
%%DATADIR%%/resources/inspector/Images/statusbarButtonsChromium.png
%%DATADIR%%/resources/inspector/Images/statusbarMenuButton.png
@ -201,7 +179,6 @@ bin/chrome
%%DATADIR%%/resources/inspector/Images/timelineHollowPillPurple.png
%%DATADIR%%/resources/inspector/Images/timelineHollowPillRed.png
%%DATADIR%%/resources/inspector/Images/timelineHollowPillYellow.png
%%DATADIR%%/resources/inspector/Images/timelineIcon.png
%%DATADIR%%/resources/inspector/Images/timelinePillBlue.png
%%DATADIR%%/resources/inspector/Images/timelinePillGray.png
%%DATADIR%%/resources/inspector/Images/timelinePillGreen.png
@ -209,6 +186,8 @@ bin/chrome
%%DATADIR%%/resources/inspector/Images/timelinePillPurple.png
%%DATADIR%%/resources/inspector/Images/timelinePillRed.png
%%DATADIR%%/resources/inspector/Images/timelinePillYellow.png
%%DATADIR%%/resources/inspector/Images/toolbarIcons.png
%%DATADIR%%/resources/inspector/Images/toolbarIconsSmall.png
%%DATADIR%%/resources/inspector/Images/toolbarItemSelected.png
%%DATADIR%%/resources/inspector/Images/trackHoriz.png
%%DATADIR%%/resources/inspector/Images/trackVert.png
@ -218,7 +197,6 @@ bin/chrome
%%DATADIR%%/resources/inspector/Images/treeRightTriangleWhite.png
%%DATADIR%%/resources/inspector/Images/treeUpTriangleBlack.png
%%DATADIR%%/resources/inspector/Images/treeUpTriangleWhite.png
%%DATADIR%%/resources/inspector/Images/undockButtonGlyph.png
%%DATADIR%%/resources/inspector/Images/userInputIcon.png
%%DATADIR%%/resources/inspector/Images/userInputPreviousIcon.png
%%DATADIR%%/resources/inspector/Images/userInputResultIcon.png