Update to 17.0.963.46
Obtained from: Chromium Chruetertee development repository Security: http://www.vuxml.org/freebsd/fe1976c2-5317-11e1-9e99-00262d5ed8ee.html
This commit is contained in:
parent
b6bea61efb
commit
a71930e2d9
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=290785
56 changed files with 401 additions and 1510 deletions
|
@ -7,7 +7,7 @@
|
|||
|
||||
PORTNAME= chromium
|
||||
DISTVERSIONPREFIX= courgette-redacted-
|
||||
DISTVERSION= 16.0.912.77
|
||||
DISTVERSION= 17.0.963.46
|
||||
CATEGORIES= www
|
||||
MASTER_SITES= http://download.goodking.org/downloads/ \
|
||||
ftp://rene-ladan.nl/pub/distfiles/ \
|
||||
|
@ -37,7 +37,6 @@ LIB_DEPENDS= execinfo.1:${PORTSDIR}/devel/libexecinfo \
|
|||
gnome-keyring.0:${PORTSDIR}/security/libgnome-keyring \
|
||||
cups.2:${PORTSDIR}/print/cups-client \
|
||||
event-1.4:${PORTSDIR}/devel/libevent \
|
||||
vpx:${PORTSDIR}/multimedia/libvpx \
|
||||
tcmalloc.2:${PORTSDIR}/devel/google-perftools
|
||||
|
||||
RUN_DEPENDS= ${LOCALBASE}/lib/alsa-lib/libasound_module_pcm_oss.so:${PORTSDIR}/audio/alsa-plugins \
|
||||
|
@ -61,7 +60,6 @@ ALL_TARGET= chrome
|
|||
|
||||
# See build/common.gypi for all the available variables.
|
||||
GYP_DEFINES+= use_cups=1 \
|
||||
use_system_vpx=1 \
|
||||
use_system_yasm=1 \
|
||||
use_system_libxml=1 \
|
||||
use_system_ffmpeg=0 \
|
||||
|
@ -181,17 +179,10 @@ post-patch:
|
|||
${WRKSRC}/third_party/WebKit/Source/WebCore/css/makeprop.pl \
|
||||
${WRKSRC}/third_party/WebKit/Source/WebCore/css/makevalues.pl \
|
||||
${WRKSRC}/third_party/WebKit/Source/WebCore/make-hash-tools.pl
|
||||
# http://code.google.com/p/chromium/issues/detail?id=96629
|
||||
@${REINPLACE_CMD} -e "s|'type': 'settings',|'type': 'none',|" \
|
||||
${WRKSRC}/third_party/icu/icu.gyp \
|
||||
${WRKSRC}/third_party/flac/flac.gyp \
|
||||
${WRKSRC}/third_party/speex/speex.gyp \
|
||||
${WRKSRC}/third_party/sqlite/sqlite.gyp \
|
||||
${WRKSRC}/third_party/harfbuzz/harfbuzz.gyp \
|
||||
${WRKSRC}/third_party/libevent/libevent.gyp \
|
||||
${WRKSRC}/third_party/libjpeg_turbo/libjpeg.gyp \
|
||||
${WRKSRC}/tools/gyp/test/settings/settings.gyp \
|
||||
${WRKSRC}/v8/tools/gyp/v8.gyp
|
||||
|
||||
pre-configure:
|
||||
@${CP} -R ${WRKSRC}/third_party/libvpx/source/config/linux \
|
||||
${WRKSRC}/third_party/libvpx/source/config/freebsd
|
||||
|
||||
do-configure:
|
||||
cd ${WRKSRC} && \
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
SHA256 (chromium-courgette-redacted-16.0.912.77.tar.xz) = e3775c055d4a7b073a893f1cc3c53989566b126284055f143c8a110291111e03
|
||||
SIZE (chromium-courgette-redacted-16.0.912.77.tar.xz) = 122857800
|
||||
SHA256 (chromium-courgette-redacted-17.0.963.46.tar.xz) = d938578436866131bccad1378e7e475f40be50391c4f304d756c5686e784ba10
|
||||
SIZE (chromium-courgette-redacted-17.0.963.46.tar.xz) = 134085652
|
||||
|
|
|
@ -1,60 +0,0 @@
|
|||
--- base/base.gypi.orig 2011-11-10 16:01:46.000000000 +0200
|
||||
+++ base/base.gypi 2011-11-28 21:48:00.000000000 +0200
|
||||
@@ -115,6 +115,7 @@
|
||||
'files/file_path_watcher_mac.cc',
|
||||
'files/file_path_watcher_stub.cc',
|
||||
'files/file_path_watcher_win.cc',
|
||||
+ 'files/file_path_watcher_freebsd.cc',
|
||||
'float_util.h',
|
||||
'format_macros.h',
|
||||
'global_descriptors_posix.cc',
|
||||
@@ -216,6 +217,7 @@
|
||||
'process_posix.cc',
|
||||
'process_util.cc',
|
||||
'process_util.h',
|
||||
+ 'process_util_freebsd.cc',
|
||||
'process_util_linux.cc',
|
||||
'process_util_mac.mm',
|
||||
'process_util_openbsd.cc',
|
||||
@@ -425,7 +427,7 @@
|
||||
'sources!' : [ 'message_pump_gtk.cc', ],
|
||||
'sources/' : [ [ 'include', 'message_pump_x.cc', ] ],
|
||||
}],
|
||||
- [ 'OS != "linux"', {
|
||||
+ [ 'OS != "linux" and OS != "freebsd"', {
|
||||
'sources!': [
|
||||
# Not automatically excluded by the *linux.cc rules.
|
||||
'linux_util.cc',
|
||||
@@ -498,6 +500,18 @@
|
||||
'files/file_path_watcher_stub.cc',
|
||||
],
|
||||
}],
|
||||
+ [ 'OS == "freebsd" and os_ver >= 801000', {
|
||||
+ 'sources!': [
|
||||
+ 'files/file_path_watcher_stub.cc',
|
||||
+ 'files/file_path_watcher_linux.cc',
|
||||
+ ],
|
||||
+ }],
|
||||
+ [ 'OS == "freebsd" and os_ver < 801000', {
|
||||
+ 'sources!': [
|
||||
+ 'files/file_path_watcher_linux.cc',
|
||||
+ 'files/file_path_watcher_freebsd.cc',
|
||||
+ ],
|
||||
+ }],
|
||||
[ 'OS == "openbsd"', {
|
||||
'sources/': [
|
||||
['include', '^base_paths_linux\\.cc$'],
|
||||
@@ -600,6 +614,13 @@
|
||||
],
|
||||
}],
|
||||
[ 'OS == "freebsd" or OS == "openbsd"', {
|
||||
+ # XXX rene: maybe this chunk should go one day
|
||||
+ 'sources!': [
|
||||
+ 'file_util_linux.cc',
|
||||
+ 'process_linux.cc',
|
||||
+ 'process_util_linux.cc',
|
||||
+ 'files/file_path_watcher_linux.cc',
|
||||
+ ],
|
||||
'include_dirs': [
|
||||
'/usr/local/include',
|
||||
],
|
|
@ -1,45 +0,0 @@
|
|||
--- base/debug/debugger_posix.cc.orig 2011-07-28 11:01:28.000000000 +0300
|
||||
+++ base/debug/debugger_posix.cc 2011-08-28 20:25:41.000000000 +0300
|
||||
@@ -13,6 +13,7 @@
|
||||
#include <sys/param.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/types.h>
|
||||
+#include <sys/user.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include <string>
|
||||
@@ -57,7 +58,7 @@
|
||||
return false;
|
||||
}
|
||||
|
||||
-#if defined(OS_MACOSX)
|
||||
+#if defined(OS_MACOSX) || defined(OS_FREEBSD)
|
||||
|
||||
// Based on Apple's recommended method as described in
|
||||
// http://developer.apple.com/qa/qa2004/qa1361.html
|
||||
@@ -95,7 +96,11 @@
|
||||
|
||||
// This process is being debugged if the P_TRACED flag is set.
|
||||
is_set = true;
|
||||
+#if defined(OS_FREEBSD)
|
||||
+ being_debugged = (info.ki_flag & P_TRACED) != 0;
|
||||
+#else
|
||||
being_debugged = (info.kp_proc.p_flag & P_TRACED) != 0;
|
||||
+#endif
|
||||
return being_debugged;
|
||||
}
|
||||
|
||||
@@ -145,12 +150,11 @@
|
||||
#else
|
||||
|
||||
bool BeingDebugged() {
|
||||
- // TODO(benl): can we determine this under FreeBSD?
|
||||
NOTIMPLEMENTED();
|
||||
return false;
|
||||
}
|
||||
|
||||
-#endif // defined(OS_FREEBSD)
|
||||
+#endif
|
||||
|
||||
// We want to break into the debugger in Debug mode, and cause a crash dump in
|
||||
// Release mode. Breakpad behaves as follows:
|
|
@ -1,14 +0,0 @@
|
|||
--- ./base/file_util_posix.cc.orig 2010-12-16 02:11:49.000000000 +0100
|
||||
+++ ./base/file_util_posix.cc 2010-12-20 20:15:07.000000000 +0100
|
||||
@@ -815,7 +815,11 @@
|
||||
}
|
||||
|
||||
bool GetShmemTempDir(FilePath* path) {
|
||||
+#if defined(OS_LINUX)
|
||||
*path = FilePath("/dev/shm");
|
||||
+#else
|
||||
+ *path = FilePath("/tmp");
|
||||
+#endif
|
||||
return true;
|
||||
}
|
||||
|
|
@ -1,476 +0,0 @@
|
|||
--- /dev/null 2011-10-09 00:44:00.000000000 +0300
|
||||
+++ base/files/file_path_watcher_freebsd.cc 2011-10-09 00:49:08.473941731 +0300
|
||||
@@ -0,0 +1,473 @@
|
||||
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
||||
+// Use of this source code is governed by a BSD-style license that can be
|
||||
+// found in the LICENSE file.
|
||||
+
|
||||
+#include "base/files/file_path_watcher.h"
|
||||
+
|
||||
+#include <fcntl.h>
|
||||
+#include <sys/event.h>
|
||||
+#include <sys/param.h>
|
||||
+
|
||||
+#include <vector>
|
||||
+
|
||||
+#include "base/file_util.h"
|
||||
+#include "base/message_loop.h"
|
||||
+#include "base/message_loop_proxy.h"
|
||||
+#include "base/stringprintf.h"
|
||||
+
|
||||
+namespace base {
|
||||
+namespace files {
|
||||
+
|
||||
+namespace {
|
||||
+
|
||||
+class FilePathWatcherImpl : public FilePathWatcher::PlatformDelegate,
|
||||
+ public MessageLoopForIO::Watcher,
|
||||
+ public MessageLoop::DestructionObserver {
|
||||
+ public:
|
||||
+ FilePathWatcherImpl() : kqueue_(-1) {}
|
||||
+ virtual ~FilePathWatcherImpl() {}
|
||||
+
|
||||
+ // MessageLoopForIO::Watcher overrides.
|
||||
+ virtual void OnFileCanReadWithoutBlocking(int fd) OVERRIDE;
|
||||
+ virtual void OnFileCanWriteWithoutBlocking(int fd) OVERRIDE;
|
||||
+
|
||||
+ // MessageLoop::DestructionObserver overrides.
|
||||
+ virtual void WillDestroyCurrentMessageLoop() OVERRIDE;
|
||||
+
|
||||
+ // FilePathWatcher::PlatformDelegate overrides.
|
||||
+ virtual bool Watch(const FilePath& path,
|
||||
+ FilePathWatcher::Delegate* delegate) OVERRIDE;
|
||||
+ virtual void Cancel() OVERRIDE;
|
||||
+
|
||||
+ private:
|
||||
+ class EventData {
|
||||
+ public:
|
||||
+ EventData(const FilePath& path, const FilePath::StringType& subdir)
|
||||
+ : path_(path), subdir_(subdir) { }
|
||||
+ FilePath path_; // Full path to this item.
|
||||
+ FilePath::StringType subdir_; // Path to any sub item.
|
||||
+ };
|
||||
+ typedef std::vector<struct kevent> EventVector;
|
||||
+
|
||||
+ // Can only be called on |io_message_loop_|'s thread.
|
||||
+ virtual void CancelOnMessageLoopThread() OVERRIDE;
|
||||
+
|
||||
+ // Returns true if the kevent values are error free.
|
||||
+ bool AreKeventValuesValid(struct kevent* kevents, int count);
|
||||
+
|
||||
+ // Respond to a change of attributes of the path component represented by
|
||||
+ // |event|. Sets |target_file_affected| to true if |target_| is affected.
|
||||
+ // Sets |update_watches| to true if |events_| need to be updated.
|
||||
+ void HandleAttributesChange(const EventVector::iterator& event,
|
||||
+ bool* target_file_affected,
|
||||
+ bool* update_watches);
|
||||
+
|
||||
+ // Respond to a move of deletion of the path component represented by
|
||||
+ // |event|. Sets |target_file_affected| to true if |target_| is affected.
|
||||
+ // Sets |update_watches| to true if |events_| need to be updated.
|
||||
+ void HandleDeleteOrMoveChange(const EventVector::iterator& event,
|
||||
+ bool* target_file_affected,
|
||||
+ bool* update_watches);
|
||||
+
|
||||
+ // Respond to a creation of an item in the path component represented by
|
||||
+ // |event|. Sets |target_file_affected| to true if |target_| is affected.
|
||||
+ // Sets |update_watches| to true if |events_| need to be updated.
|
||||
+ void HandleCreateItemChange(const EventVector::iterator& event,
|
||||
+ bool* target_file_affected,
|
||||
+ bool* update_watches);
|
||||
+
|
||||
+ // Update |events_| with the current status of the system.
|
||||
+ // Sets |target_file_affected| to true if |target_| is affected.
|
||||
+ // Returns false if an error occurs.
|
||||
+ bool UpdateWatches(bool* target_file_affected);
|
||||
+
|
||||
+ // Fills |events| with one kevent per component in |path|.
|
||||
+ // Returns the number of valid events created where a valid event is
|
||||
+ // defined as one that has a ident (file descriptor) field != -1.
|
||||
+ static int EventsForPath(FilePath path, EventVector *events);
|
||||
+
|
||||
+ // Release a kevent generated by EventsForPath.
|
||||
+ static void ReleaseEvent(struct kevent& event);
|
||||
+
|
||||
+ // Returns a file descriptor that will not block the system from deleting
|
||||
+ // the file it references.
|
||||
+ static int FileDescriptorForPath(const FilePath& path);
|
||||
+
|
||||
+ // Closes |*fd| and sets |*fd| to -1.
|
||||
+ static void CloseFileDescriptor(int* fd);
|
||||
+
|
||||
+ // Returns true if kevent has open file descriptor.
|
||||
+ static bool IsKeventFileDescriptorOpen(const struct kevent& event) {
|
||||
+ return event.ident != static_cast<uintptr_t>(-1);
|
||||
+ }
|
||||
+
|
||||
+ static EventData* EventDataForKevent(const struct kevent& event) {
|
||||
+ return reinterpret_cast<EventData*>(event.udata);
|
||||
+ }
|
||||
+
|
||||
+ EventVector events_;
|
||||
+ scoped_refptr<base::MessageLoopProxy> io_message_loop_;
|
||||
+ MessageLoopForIO::FileDescriptorWatcher kqueue_watcher_;
|
||||
+ scoped_refptr<FilePathWatcher::Delegate> delegate_;
|
||||
+ FilePath target_;
|
||||
+ int kqueue_;
|
||||
+
|
||||
+ DISALLOW_COPY_AND_ASSIGN(FilePathWatcherImpl);
|
||||
+};
|
||||
+
|
||||
+void FilePathWatcherImpl::ReleaseEvent(struct kevent& event) {
|
||||
+ CloseFileDescriptor(reinterpret_cast<int*>(&event.ident));
|
||||
+ EventData* entry = EventDataForKevent(event);
|
||||
+ delete entry;
|
||||
+ event.udata = NULL;
|
||||
+}
|
||||
+
|
||||
+int FilePathWatcherImpl::EventsForPath(FilePath path, EventVector* events) {
|
||||
+ DCHECK(MessageLoopForIO::current());
|
||||
+ // Make sure that we are working with a clean slate.
|
||||
+ DCHECK(events->empty());
|
||||
+
|
||||
+ std::vector<FilePath::StringType> components;
|
||||
+ path.GetComponents(&components);
|
||||
+
|
||||
+ if (components.size() < 1) {
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
+ int last_existing_entry = 0;
|
||||
+ FilePath built_path;
|
||||
+ bool path_still_exists = true;
|
||||
+ for(std::vector<FilePath::StringType>::iterator i = components.begin();
|
||||
+ i != components.end(); ++i) {
|
||||
+ if (i == components.begin()) {
|
||||
+ built_path = FilePath(*i);
|
||||
+ } else {
|
||||
+ built_path = built_path.Append(*i);
|
||||
+ }
|
||||
+ int fd = -1;
|
||||
+ if (path_still_exists) {
|
||||
+ fd = FileDescriptorForPath(built_path);
|
||||
+ if (fd == -1) {
|
||||
+ path_still_exists = false;
|
||||
+ } else {
|
||||
+ ++last_existing_entry;
|
||||
+ }
|
||||
+ }
|
||||
+ FilePath::StringType subdir = (i != (components.end() - 1)) ? *(i + 1) : "";
|
||||
+ EventData* data = new EventData(built_path, subdir);
|
||||
+ struct kevent event;
|
||||
+ EV_SET(&event, fd, EVFILT_VNODE, (EV_ADD | EV_CLEAR | EV_RECEIPT),
|
||||
+ (NOTE_DELETE | NOTE_WRITE | NOTE_ATTRIB |
|
||||
+ NOTE_RENAME | NOTE_REVOKE | NOTE_EXTEND), 0, data);
|
||||
+ events->push_back(event);
|
||||
+ }
|
||||
+ return last_existing_entry;
|
||||
+}
|
||||
+
|
||||
+int FilePathWatcherImpl::FileDescriptorForPath(const FilePath& path) {
|
||||
+ return HANDLE_EINTR(open(path.value().c_str(), O_RDONLY));
|
||||
+}
|
||||
+
|
||||
+void FilePathWatcherImpl::CloseFileDescriptor(int *fd) {
|
||||
+ if (*fd == -1) {
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ if (HANDLE_EINTR(close(*fd)) != 0) {
|
||||
+ PLOG(ERROR) << "close";
|
||||
+ }
|
||||
+ *fd = -1;
|
||||
+}
|
||||
+
|
||||
+bool FilePathWatcherImpl::AreKeventValuesValid(struct kevent* kevents,
|
||||
+ int count) {
|
||||
+ if (count < 0) {
|
||||
+ PLOG(ERROR) << "kevent";
|
||||
+ return false;
|
||||
+ }
|
||||
+ bool valid = true;
|
||||
+ for (int i = 0; i < count; ++i) {
|
||||
+ if (kevents[i].flags & EV_ERROR && kevents[i].data) {
|
||||
+ // Find the kevent in |events_| that matches the kevent with the error.
|
||||
+ EventVector::iterator event = events_.begin();
|
||||
+ for (; event != events_.end(); ++event) {
|
||||
+ if (event->ident == kevents[i].ident) {
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+ std::string path_name;
|
||||
+ if (event != events_.end()) {
|
||||
+ EventData* event_data = EventDataForKevent(*event);
|
||||
+ if (event_data != NULL) {
|
||||
+ path_name = event_data->path_.value();
|
||||
+ }
|
||||
+ }
|
||||
+ if (path_name.empty()) {
|
||||
+ path_name = base::StringPrintf(
|
||||
+ "fd %d", *reinterpret_cast<int*>(&kevents[i].ident));
|
||||
+ }
|
||||
+ LOG(ERROR) << "Error: " << kevents[i].data << " for " << path_name;
|
||||
+ valid = false;
|
||||
+ }
|
||||
+ }
|
||||
+ return valid;
|
||||
+}
|
||||
+
|
||||
+void FilePathWatcherImpl::HandleAttributesChange(
|
||||
+ const EventVector::iterator& event,
|
||||
+ bool* target_file_affected,
|
||||
+ bool* update_watches) {
|
||||
+ EventVector::iterator next_event = event + 1;
|
||||
+ EventData* next_event_data = EventDataForKevent(*next_event);
|
||||
+ // Check to see if the next item in path is still accessible.
|
||||
+ int have_access = FileDescriptorForPath(next_event_data->path_);
|
||||
+ if (have_access == -1) {
|
||||
+ *target_file_affected = true;
|
||||
+ *update_watches = true;
|
||||
+ EventVector::iterator local_event(event);
|
||||
+ for (; local_event != events_.end(); ++local_event) {
|
||||
+ // Close all nodes from the event down. This has the side effect of
|
||||
+ // potentially rendering other events in |updates| invalid.
|
||||
+ // There is no need to remove the events from |kqueue_| because this
|
||||
+ // happens as a side effect of closing the file descriptor.
|
||||
+ CloseFileDescriptor(reinterpret_cast<int*>(&local_event->ident));
|
||||
+ }
|
||||
+ } else {
|
||||
+ CloseFileDescriptor(&have_access);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+void FilePathWatcherImpl::HandleDeleteOrMoveChange(
|
||||
+ const EventVector::iterator& event,
|
||||
+ bool* target_file_affected,
|
||||
+ bool* update_watches) {
|
||||
+ *target_file_affected = true;
|
||||
+ *update_watches = true;
|
||||
+ EventVector::iterator local_event(event);
|
||||
+ for (; local_event != events_.end(); ++local_event) {
|
||||
+ // Close all nodes from the event down. This has the side effect of
|
||||
+ // potentially rendering other events in |updates| invalid.
|
||||
+ // There is no need to remove the events from |kqueue_| because this
|
||||
+ // happens as a side effect of closing the file descriptor.
|
||||
+ CloseFileDescriptor(reinterpret_cast<int*>(&local_event->ident));
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+void FilePathWatcherImpl::HandleCreateItemChange(
|
||||
+ const EventVector::iterator& event,
|
||||
+ bool* target_file_affected,
|
||||
+ bool* update_watches) {
|
||||
+ // Get the next item in the path.
|
||||
+ EventVector::iterator next_event = event + 1;
|
||||
+ EventData* next_event_data = EventDataForKevent(*next_event);
|
||||
+
|
||||
+ // Check to see if it already has a valid file descriptor.
|
||||
+ if (!IsKeventFileDescriptorOpen(*next_event)) {
|
||||
+ // If not, attempt to open a file descriptor for it.
|
||||
+ next_event->ident = FileDescriptorForPath(next_event_data->path_);
|
||||
+ if (IsKeventFileDescriptorOpen(*next_event)) {
|
||||
+ *update_watches = true;
|
||||
+ if (next_event_data->subdir_.empty()) {
|
||||
+ *target_file_affected = true;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+bool FilePathWatcherImpl::UpdateWatches(bool* target_file_affected) {
|
||||
+ // Iterate over events adding kevents for items that exist to the kqueue.
|
||||
+ // Then check to see if new components in the path have been created.
|
||||
+ // Repeat until no new components in the path are detected.
|
||||
+ // This is to get around races in directory creation in a watched path.
|
||||
+ bool update_watches = true;
|
||||
+ while (update_watches) {
|
||||
+ size_t valid;
|
||||
+ for (valid = 0; valid < events_.size(); ++valid) {
|
||||
+ if (!IsKeventFileDescriptorOpen(events_[valid])) {
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+ if (valid == 0) {
|
||||
+ // The root of the file path is inaccessible?
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
+ EventVector updates(valid);
|
||||
+ int count = HANDLE_EINTR(kevent(kqueue_, &events_[0], valid, &updates[0],
|
||||
+ valid, NULL));
|
||||
+ if (!AreKeventValuesValid(&updates[0], count)) {
|
||||
+ return false;
|
||||
+ }
|
||||
+ update_watches = false;
|
||||
+ for (; valid < events_.size(); ++valid) {
|
||||
+ EventData* event_data = EventDataForKevent(events_[valid]);
|
||||
+ events_[valid].ident = FileDescriptorForPath(event_data->path_);
|
||||
+ if (IsKeventFileDescriptorOpen(events_[valid])) {
|
||||
+ update_watches = true;
|
||||
+ if (event_data->subdir_.empty()) {
|
||||
+ *target_file_affected = true;
|
||||
+ }
|
||||
+ } else {
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ return true;
|
||||
+}
|
||||
+
|
||||
+void FilePathWatcherImpl::OnFileCanReadWithoutBlocking(int fd) {
|
||||
+ DCHECK(MessageLoopForIO::current());
|
||||
+ CHECK_EQ(fd, kqueue_);
|
||||
+ CHECK(events_.size());
|
||||
+
|
||||
+ // Request the file system update notifications that have occurred and return
|
||||
+ // them in |updates|. |count| will contain the number of updates that have
|
||||
+ // occurred.
|
||||
+ EventVector updates(events_.size());
|
||||
+ struct timespec timeout = {0, 0};
|
||||
+ int count = HANDLE_EINTR(kevent(kqueue_, NULL, 0, &updates[0], updates.size(),
|
||||
+ &timeout));
|
||||
+
|
||||
+ // Error values are stored within updates, so check to make sure that no
|
||||
+ // errors occurred.
|
||||
+ if (!AreKeventValuesValid(&updates[0], count)) {
|
||||
+ delegate_->OnFilePathError(target_);
|
||||
+ Cancel();
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ bool update_watches = false;
|
||||
+ bool send_notification = false;
|
||||
+
|
||||
+ // Iterate through each of the updates and react to them.
|
||||
+ for (int i = 0; i < count; ++i) {
|
||||
+ // Find our kevent record that matches the update notification.
|
||||
+ EventVector::iterator event = events_.begin();
|
||||
+ for (; event != events_.end(); ++event) {
|
||||
+ if (!IsKeventFileDescriptorOpen(*event) ||
|
||||
+ event->ident == updates[i].ident) {
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+ if (!IsKeventFileDescriptorOpen(*event) || event == events_.end()) {
|
||||
+ // The event may no longer exist in |events_| because another event
|
||||
+ // modified |events_| in such a way to make it invalid. For example if
|
||||
+ // the path is /foo/bar/bam and foo is deleted, NOTE_DELETE events for
|
||||
+ // foo, bar and bam will be sent. If foo is processed first, then
|
||||
+ // the file descriptors for bar and bam will already be closed and set
|
||||
+ // to -1 before they get a chance to be processed.
|
||||
+ continue;
|
||||
+ }
|
||||
+
|
||||
+ EventData* event_data = EventDataForKevent(*event);
|
||||
+
|
||||
+ // If the subdir is empty, this is the last item on the path and is the
|
||||
+ // target file.
|
||||
+ bool target_file_affected = event_data->subdir_.empty();
|
||||
+ if ((updates[i].fflags & NOTE_ATTRIB) && !target_file_affected) {
|
||||
+ HandleAttributesChange(event, &target_file_affected, &update_watches);
|
||||
+ }
|
||||
+ if (updates[i].fflags & (NOTE_DELETE | NOTE_REVOKE | NOTE_RENAME)) {
|
||||
+ HandleDeleteOrMoveChange(event, &target_file_affected, &update_watches);
|
||||
+ }
|
||||
+ if ((updates[i].fflags & NOTE_WRITE) && !target_file_affected) {
|
||||
+ HandleCreateItemChange(event, &target_file_affected, &update_watches);
|
||||
+ }
|
||||
+ send_notification |= target_file_affected;
|
||||
+ }
|
||||
+
|
||||
+ if (update_watches) {
|
||||
+ if (!UpdateWatches(&send_notification)) {
|
||||
+ delegate_->OnFilePathError(target_);
|
||||
+ Cancel();
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (send_notification) {
|
||||
+ delegate_->OnFilePathChanged(target_);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+void FilePathWatcherImpl::OnFileCanWriteWithoutBlocking(int fd) {
|
||||
+ NOTREACHED();
|
||||
+}
|
||||
+
|
||||
+void FilePathWatcherImpl::WillDestroyCurrentMessageLoop() {
|
||||
+ CancelOnMessageLoopThread();
|
||||
+}
|
||||
+
|
||||
+bool FilePathWatcherImpl::Watch(const FilePath& path,
|
||||
+ FilePathWatcher::Delegate* delegate) {
|
||||
+ DCHECK(MessageLoopForIO::current());
|
||||
+ DCHECK(target_.value().empty()); // Can only watch one path.
|
||||
+ DCHECK(delegate);
|
||||
+ DCHECK_EQ(kqueue_, -1);
|
||||
+
|
||||
+ delegate_ = delegate;
|
||||
+ target_ = path;
|
||||
+
|
||||
+ MessageLoop::current()->AddDestructionObserver(this);
|
||||
+ io_message_loop_ = base::MessageLoopProxy::current();
|
||||
+
|
||||
+ kqueue_ = kqueue();
|
||||
+ if (kqueue_ == -1) {
|
||||
+ PLOG(ERROR) << "kqueue";
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
+ int last_entry = EventsForPath(target_, &events_);
|
||||
+ CHECK_NE(last_entry, 0);
|
||||
+
|
||||
+ EventVector responses(last_entry);
|
||||
+
|
||||
+ int count = HANDLE_EINTR(kevent(kqueue_, &events_[0], last_entry,
|
||||
+ &responses[0], last_entry, NULL));
|
||||
+ if (!AreKeventValuesValid(&responses[0], count)) {
|
||||
+ // Calling Cancel() here to close any file descriptors that were opened.
|
||||
+ // This would happen in the destructor anyways, but FilePathWatchers tend to
|
||||
+ // be long lived, and if an error has occurred, there is no reason to waste
|
||||
+ // the file descriptors.
|
||||
+ Cancel();
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
+ return MessageLoopForIO::current()->WatchFileDescriptor(
|
||||
+ kqueue_, true, MessageLoopForIO::WATCH_READ, &kqueue_watcher_, this);
|
||||
+}
|
||||
+
|
||||
+void FilePathWatcherImpl::Cancel() {
|
||||
+ base::MessageLoopProxy* proxy = io_message_loop_.get();
|
||||
+ if (!proxy) {
|
||||
+ set_cancelled();
|
||||
+ return;
|
||||
+ }
|
||||
+ if (!proxy->BelongsToCurrentThread()) {
|
||||
+ proxy->PostTask(FROM_HERE,
|
||||
+ NewRunnableMethod(this, &FilePathWatcherImpl::Cancel));
|
||||
+ return;
|
||||
+ }
|
||||
+ CancelOnMessageLoopThread();
|
||||
+}
|
||||
+
|
||||
+void FilePathWatcherImpl::CancelOnMessageLoopThread() {
|
||||
+ DCHECK(MessageLoopForIO::current());
|
||||
+ if (!is_cancelled()) {
|
||||
+ set_cancelled();
|
||||
+ kqueue_watcher_.StopWatchingFileDescriptor();
|
||||
+ CloseFileDescriptor(&kqueue_);
|
||||
+ std::for_each(events_.begin(), events_.end(), ReleaseEvent);
|
||||
+ events_.clear();
|
||||
+ io_message_loop_ = NULL;
|
||||
+ MessageLoop::current()->RemoveDestructionObserver(this);
|
||||
+ delegate_ = NULL;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+} // namespace
|
||||
+
|
||||
+FilePathWatcher::FilePathWatcher() {
|
||||
+ impl_ = new FilePathWatcherImpl();
|
||||
+}
|
||||
+
|
||||
+} // namespace files
|
||||
+} // namespace base
|
|
@ -1,37 +0,0 @@
|
|||
--- base/process_util.h.orig 2011-11-01 10:42:54.000000000 +0200
|
||||
+++ base/process_util.h 2011-11-21 23:05:53.000000000 +0200
|
||||
@@ -14,14 +14,14 @@
|
||||
#if defined(OS_WIN)
|
||||
#include <windows.h>
|
||||
#include <tlhelp32.h>
|
||||
-#elif defined(OS_MACOSX) || defined(OS_OPENBSD)
|
||||
+#elif defined(OS_MACOSX) || defined(OS_OPENBSD) || defined(OS_FREEBSD)
|
||||
// kinfo_proc is defined in <sys/sysctl.h>, but this forward declaration
|
||||
// is sufficient for the vector<kinfo_proc> below.
|
||||
struct kinfo_proc;
|
||||
// malloc_zone_t is defined in <malloc/malloc.h>, but this forward declaration
|
||||
// is sufficient for GetPurgeableZone() below.
|
||||
typedef struct _malloc_zone_t malloc_zone_t;
|
||||
-#if !defined(OS_OPENBSD)
|
||||
+#if !defined(OS_OPENBSD) && !defined(OS_FREEBSD)
|
||||
#include <mach/mach.h>
|
||||
#endif
|
||||
#elif defined(OS_POSIX)
|
||||
@@ -166,7 +166,7 @@
|
||||
// Win XP SP1 as well.
|
||||
BASE_EXPORT ProcessId GetProcId(ProcessHandle process);
|
||||
|
||||
-#if defined(OS_LINUX) || defined(OS_ANDROID)
|
||||
+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FREEBSD)
|
||||
// Returns the path to the executable of the given process.
|
||||
BASE_EXPORT FilePath GetProcessExecutablePath(ProcessHandle process);
|
||||
|
||||
@@ -528,7 +528,7 @@
|
||||
#if defined(OS_WIN)
|
||||
HANDLE snapshot_;
|
||||
bool started_iteration_;
|
||||
-#elif defined(OS_MACOSX) || defined(OS_OPENBSD)
|
||||
+#elif defined(OS_MACOSX) || defined(OS_OPENBSD) || defined(OS_FREEBSD)
|
||||
std::vector<kinfo_proc> kinfo_procs_;
|
||||
size_t index_of_kinfo_proc_;
|
||||
#elif defined(OS_POSIX)
|
|
@ -1,326 +0,0 @@
|
|||
--- base/process_util_freebsd.cc.orig 2011-10-08 23:30:09.938179749 +0300
|
||||
+++ base/process_util_freebsd.cc 2011-10-09 14:30:52.108006527 +0300
|
||||
@@ -0,0 +1,323 @@
|
||||
+// Copyright (c) 2009 The Chromium Authors. All rights reserved.
|
||||
+// Use of this source code is governed by a BSD-style license that can be
|
||||
+// found in the LICENSE file.
|
||||
+
|
||||
+#include "base/process_util.h"
|
||||
+
|
||||
+#include <ctype.h>
|
||||
+#include <dirent.h>
|
||||
+#include <dlfcn.h>
|
||||
+#include <errno.h>
|
||||
+#include <fcntl.h>
|
||||
+#include <sys/time.h>
|
||||
+#include <sys/types.h>
|
||||
+#include <sys/wait.h>
|
||||
+#include <sys/sysctl.h>
|
||||
+#include <sys/user.h>
|
||||
+#include <time.h>
|
||||
+#include <unistd.h>
|
||||
+
|
||||
+#include "base/file_util.h"
|
||||
+#include "base/logging.h"
|
||||
+#include "base/string_number_conversions.h"
|
||||
+#include "base/string_split.h"
|
||||
+#include "base/string_tokenizer.h"
|
||||
+#include "base/string_util.h"
|
||||
+#include "base/sys_info.h"
|
||||
+//#include "base/thread_restrictions.h"
|
||||
+
|
||||
+namespace base {
|
||||
+
|
||||
+ProcessId GetParentProcessId(ProcessHandle process) {
|
||||
+ struct kinfo_proc info;
|
||||
+ int mib[4];
|
||||
+ size_t info_size = sizeof(info);
|
||||
+
|
||||
+ mib[0] = CTL_KERN;
|
||||
+ mib[1] = KERN_PROC;
|
||||
+ mib[2] = KERN_PROC_PID;
|
||||
+ mib[3] = process;
|
||||
+
|
||||
+ if (sysctl(mib, 4, &info, &info_size, NULL, 0) < 0)
|
||||
+ return -1;
|
||||
+
|
||||
+ return info.ki_ppid;
|
||||
+}
|
||||
+
|
||||
+FilePath GetProcessExecutablePath(ProcessHandle process) {
|
||||
+ char pathname[PATH_MAX];
|
||||
+ int mib[4];
|
||||
+ size_t len;
|
||||
+
|
||||
+ mib[0] = CTL_KERN;
|
||||
+ mib[1] = KERN_PROC;
|
||||
+ mib[2] = KERN_PROC_PATHNAME;
|
||||
+ mib[3] = process;
|
||||
+
|
||||
+ len = sizeof(pathname);
|
||||
+
|
||||
+ if (sysctl(mib, 4, pathname, &len, NULL, 0) < 0 || len == 0)
|
||||
+ return FilePath();
|
||||
+
|
||||
+ return FilePath(std::string(pathname));
|
||||
+}
|
||||
+
|
||||
+ProcessIterator::ProcessIterator(const ProcessFilter* filter)
|
||||
+ : index_of_kinfo_proc_(),
|
||||
+ filter_(filter) {
|
||||
+
|
||||
+ int mib[4];
|
||||
+
|
||||
+ mib[0] = CTL_KERN;
|
||||
+ mib[1] = KERN_PROC;
|
||||
+ mib[2] = KERN_PROC_UID;
|
||||
+ mib[3] = getuid();
|
||||
+
|
||||
+ bool done = false;
|
||||
+ int try_num = 1;
|
||||
+ const int max_tries = 10;
|
||||
+
|
||||
+ do {
|
||||
+ size_t len = 0;
|
||||
+ if (sysctl(mib, 4, NULL, &len, NULL, 0) <0 ){
|
||||
+ LOG(ERROR) << "failed to get the size needed for the process list";
|
||||
+ kinfo_procs_.resize(0);
|
||||
+ done = true;
|
||||
+ } else {
|
||||
+ size_t num_of_kinfo_proc = len / sizeof(struct kinfo_proc);
|
||||
+ // Leave some spare room for process table growth (more could show up
|
||||
+ // between when we check and now)
|
||||
+ num_of_kinfo_proc += 16;
|
||||
+ kinfo_procs_.resize(num_of_kinfo_proc);
|
||||
+ len = num_of_kinfo_proc * sizeof(struct kinfo_proc);
|
||||
+ if (sysctl(mib, 4, &kinfo_procs_[0], &len, NULL, 0) <0) {
|
||||
+ // If we get a mem error, it just means we need a bigger buffer, so
|
||||
+ // loop around again. Anything else is a real error and give up.
|
||||
+ if (errno != ENOMEM) {
|
||||
+ LOG(ERROR) << "failed to get the process list";
|
||||
+ kinfo_procs_.resize(0);
|
||||
+ done = true;
|
||||
+ }
|
||||
+ } else {
|
||||
+ // Got the list, just make sure we're sized exactly right
|
||||
+ size_t num_of_kinfo_proc = len / sizeof(struct kinfo_proc);
|
||||
+ kinfo_procs_.resize(num_of_kinfo_proc);
|
||||
+ done = true;
|
||||
+ }
|
||||
+ }
|
||||
+ } while (!done && (try_num++ < max_tries));
|
||||
+
|
||||
+ if (!done) {
|
||||
+ LOG(ERROR) << "failed to collect the process list in a few tries";
|
||||
+ kinfo_procs_.resize(0);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+ProcessIterator::~ProcessIterator() {
|
||||
+}
|
||||
+
|
||||
+bool ProcessIterator::CheckForNextProcess() {
|
||||
+ std::string data;
|
||||
+
|
||||
+ for (; index_of_kinfo_proc_ < kinfo_procs_.size(); ++ index_of_kinfo_proc_) {
|
||||
+ int mib[3];
|
||||
+ size_t len;
|
||||
+ struct kinfo_proc kinfo = kinfo_procs_[index_of_kinfo_proc_];
|
||||
+
|
||||
+ if ((kinfo.ki_pid > 0) && (kinfo.ki_stat == SZOMB))
|
||||
+ continue;
|
||||
+
|
||||
+ mib[0] = CTL_KERN;
|
||||
+ mib[1] = KERN_PROC_ARGS;
|
||||
+ mib[2] = kinfo.ki_pid;
|
||||
+
|
||||
+ len = 0;
|
||||
+ if (sysctl(mib, 3, NULL, &len, NULL, 0) < 0) {
|
||||
+ LOG(ERROR) << "failed to figure out the buffer size for a command line";
|
||||
+ continue;
|
||||
+ }
|
||||
+
|
||||
+ data.resize(len);
|
||||
+
|
||||
+ if (sysctl(mib, 3, &data[0], &len, NULL, 0) < 0) {
|
||||
+ LOG(ERROR) << "failed to fetch a commandline";
|
||||
+ continue;
|
||||
+ }
|
||||
+
|
||||
+ std::string delimiters;
|
||||
+ delimiters.push_back('\0');
|
||||
+ Tokenize(data, delimiters, &entry_.cmd_line_args_);
|
||||
+
|
||||
+ size_t exec_name_end = data.find('\0');
|
||||
+ if (exec_name_end == std::string::npos) {
|
||||
+ LOG(ERROR) << "command line data didn't match expected format";
|
||||
+ continue;
|
||||
+ }
|
||||
+
|
||||
+ entry_.pid_ = kinfo.ki_pid;
|
||||
+ entry_.ppid_ = kinfo.ki_ppid;
|
||||
+ entry_.gid_ = kinfo.ki_pgid;
|
||||
+
|
||||
+ size_t last_slash = data.rfind('/', exec_name_end);
|
||||
+ if (last_slash == std::string::npos)
|
||||
+ entry_.exe_file_.assign(data, 0, exec_name_end);
|
||||
+ else
|
||||
+ entry_.exe_file_.assign(data, last_slash + 1,
|
||||
+ exec_name_end - last_slash - 1);
|
||||
+
|
||||
+ // Start w/ the next entry next time through
|
||||
+ ++index_of_kinfo_proc_;
|
||||
+
|
||||
+ return true;
|
||||
+ }
|
||||
+ return false;
|
||||
+}
|
||||
+
|
||||
+bool NamedProcessIterator::IncludeEntry() {
|
||||
+ if(executable_name_ != entry().exe_file())
|
||||
+ return false;
|
||||
+
|
||||
+ return ProcessIterator::IncludeEntry();
|
||||
+}
|
||||
+
|
||||
+
|
||||
+ProcessMetrics::ProcessMetrics(ProcessHandle process)
|
||||
+ : process_(process),
|
||||
+ last_time_(0),
|
||||
+ last_system_time_(0),
|
||||
+ last_cpu_(0) {
|
||||
+ processor_count_ = base::SysInfo::NumberOfProcessors();
|
||||
+}
|
||||
+
|
||||
+// static
|
||||
+ProcessMetrics* ProcessMetrics::CreateProcessMetrics(ProcessHandle process) {
|
||||
+ return new ProcessMetrics(process);
|
||||
+}
|
||||
+
|
||||
+size_t ProcessMetrics::GetPagefileUsage() const {
|
||||
+ struct kinfo_proc info;
|
||||
+ int mib[4];
|
||||
+ size_t info_size = sizeof(info);
|
||||
+
|
||||
+ mib[0] = CTL_KERN;
|
||||
+ mib[1] = KERN_PROC;
|
||||
+ mib[2] = KERN_PROC_PID;
|
||||
+ mib[3] = process_;
|
||||
+
|
||||
+ if (sysctl(mib, 4, &info, &info_size, NULL, 0) < 0)
|
||||
+ return 0;
|
||||
+
|
||||
+ return info.ki_size;
|
||||
+}
|
||||
+
|
||||
+size_t ProcessMetrics::GetPeakPagefileUsage() const {
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+size_t ProcessMetrics::GetWorkingSetSize() const {
|
||||
+ struct kinfo_proc info;
|
||||
+ int mib[4];
|
||||
+ size_t info_size = sizeof(info);
|
||||
+
|
||||
+ mib[0] = CTL_KERN;
|
||||
+ mib[1] = KERN_PROC;
|
||||
+ mib[2] = KERN_PROC_PID;
|
||||
+ mib[3] = process_;
|
||||
+
|
||||
+ if (sysctl(mib, 4, &info, &info_size, NULL, 0) < 0)
|
||||
+ return 0;
|
||||
+
|
||||
+ return info.ki_rssize * getpagesize();
|
||||
+}
|
||||
+
|
||||
+size_t ProcessMetrics::GetPeakWorkingSetSize() const {
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+bool ProcessMetrics::GetMemoryBytes(size_t* private_bytes,
|
||||
+ size_t* shared_bytes) {
|
||||
+ WorkingSetKBytes ws_usage;
|
||||
+ if (!GetWorkingSetKBytes(&ws_usage))
|
||||
+ return false;
|
||||
+
|
||||
+ if (private_bytes)
|
||||
+ *private_bytes = ws_usage.priv << 10;
|
||||
+
|
||||
+ if (shared_bytes)
|
||||
+ *shared_bytes = ws_usage.shared * 1024;
|
||||
+
|
||||
+ return true;
|
||||
+}
|
||||
+
|
||||
+bool ProcessMetrics::GetWorkingSetKBytes(WorkingSetKBytes* ws_usage) const {
|
||||
+// TODO(bapt) be sure we can't be precise
|
||||
+ size_t priv = GetWorkingSetSize();
|
||||
+ if (!priv)
|
||||
+ return false;
|
||||
+ ws_usage->priv = priv / 1024;
|
||||
+ ws_usage->shareable = 0;
|
||||
+ ws_usage->shared = 0;
|
||||
+
|
||||
+ return true;
|
||||
+}
|
||||
+
|
||||
+bool ProcessMetrics::GetIOCounters(IoCounters* io_counters) const {
|
||||
+ return false;
|
||||
+}
|
||||
+
|
||||
+double ProcessMetrics::GetCPUUsage() {
|
||||
+ struct kinfo_proc info;
|
||||
+ int mib[4];
|
||||
+ size_t info_size = sizeof(info);
|
||||
+
|
||||
+ struct timeval now;
|
||||
+ int retval = gettimeofday(&now, NULL);
|
||||
+ if (retval)
|
||||
+ return 0;
|
||||
+
|
||||
+ mib[0] = CTL_KERN;
|
||||
+ mib[1] = KERN_PROC;
|
||||
+ mib[2] = KERN_PROC_PID;
|
||||
+ mib[3] = process_;
|
||||
+
|
||||
+ if (sysctl(mib, 4, &info, &info_size, NULL, 0) < 0)
|
||||
+ return 0;
|
||||
+
|
||||
+ return (info.ki_pctcpu / FSCALE) * 100.0;
|
||||
+}
|
||||
+
|
||||
+size_t GetSystemCommitCharge() {
|
||||
+ int mib[2], pagesize;
|
||||
+ unsigned long mem_total, mem_free, mem_inactive;
|
||||
+ size_t len = sizeof(mem_total);
|
||||
+
|
||||
+ if (sysctl(mib, 2, &mem_total, &len, NULL, 0) < 0)
|
||||
+ return 0;
|
||||
+
|
||||
+ len = sizeof(mem_free);
|
||||
+ if (sysctlbyname("vm.stats.vm.v_free_count", &mem_free, &len, NULL, 0) < 0)
|
||||
+ return 0;
|
||||
+
|
||||
+ len = sizeof(mem_inactive);
|
||||
+ if (sysctlbyname("vm.stats.vm.v_inactive_count", &mem_inactive, &len, NULL, 0) < 0)
|
||||
+ return 0;
|
||||
+
|
||||
+ pagesize = getpagesize();
|
||||
+
|
||||
+ return mem_total - (mem_free*pagesize) - (mem_inactive*pagesize);
|
||||
+}
|
||||
+
|
||||
+void EnableTerminationOnOutOfMemory() {
|
||||
+ DLOG(WARNING) << "Not feasible.";
|
||||
+}
|
||||
+
|
||||
+void EnableTerminationOnHeapCorruption() {
|
||||
+ // Nothing to do.
|
||||
+}
|
||||
+
|
||||
+bool AdjustOOMScore(ProcessId process, int score) {
|
||||
+ NOTIMPLEMENTED();
|
||||
+ return false;
|
||||
+}
|
||||
+
|
||||
+} // namespace base
|
|
@ -1,31 +1,17 @@
|
|||
--- base/process_util_posix.cc.orig 2011-09-12 11:35:34.000000000 +0300
|
||||
+++ base/process_util_posix.cc 2011-09-15 02:07:17.000000000 +0300
|
||||
@@ -33,6 +33,11 @@
|
||||
#include "base/threading/thread_restrictions.h"
|
||||
#include "base/time.h"
|
||||
|
||||
+#if defined(OS_FREEBSD)
|
||||
+#include <sys/event.h>
|
||||
+#include <sys/ucontext.h>
|
||||
+#endif
|
||||
+
|
||||
#if defined(OS_MACOSX)
|
||||
#include <crt_externs.h>
|
||||
#include <sys/event.h>
|
||||
@@ -767,8 +772,8 @@
|
||||
--- base/process_util_posix.cc.orig 2012-01-29 14:28:45.000000000 +0200
|
||||
+++ base/process_util_posix.cc 2012-01-29 14:29:58.000000000 +0200
|
||||
@@ -886,7 +886,7 @@
|
||||
return false;
|
||||
}
|
||||
|
||||
-#if defined(OS_MACOSX)
|
||||
-// Using kqueue on Mac so that we can wait on non-child processes.
|
||||
+#if defined(OS_MACOSX) || defined(OS_FREEBSD)
|
||||
+// Using kqueue on BSD so that we can wait on non-child processes.
|
||||
// Using kqueue on Mac so that we can wait on non-child processes.
|
||||
// We can't use kqueues on child processes because we need to reap
|
||||
// our own children using wait.
|
||||
static bool WaitForSingleNonChildProcess(ProcessHandle handle,
|
||||
@@ -826,19 +831,19 @@
|
||||
}
|
||||
}
|
||||
@@ -976,19 +976,19 @@
|
||||
|
||||
return true;
|
||||
}
|
||||
-#endif // OS_MACOSX
|
||||
+#endif // OS_MACOSX || OS_FREEBSD
|
||||
|
@ -35,9 +21,8 @@
|
|||
ProcessHandle our_pid = Process::Current().handle();
|
||||
if (parent_pid != our_pid) {
|
||||
-#if defined(OS_MACOSX)
|
||||
- // On Mac we can wait on non child processes.
|
||||
+#if defined(OS_MACOSX) || defined(OS_FREEBSD)
|
||||
+ // On BSD we can wait on non child processes.
|
||||
// On Mac we can wait on non child processes.
|
||||
return WaitForSingleNonChildProcess(handle, wait_milliseconds);
|
||||
#else
|
||||
// Currently on Linux we can't handle non child processes.
|
||||
|
@ -45,5 +30,5 @@
|
|||
-#endif // OS_MACOSX
|
||||
+#endif // OS_MACOSX || OS_FREEBSD
|
||||
}
|
||||
|
||||
bool waitpid_success;
|
||||
int status;
|
||||
|
|
|
@ -1,17 +1,18 @@
|
|||
--- build/common.gypi.orig 2011-11-10 16:01:45.000000000 +0200
|
||||
+++ build/common.gypi 2011-12-01 00:10:48.000000000 +0200
|
||||
@@ -403,6 +403,10 @@
|
||||
--- build/common.gypi.orig 2012-01-25 10:01:56.000000000 +0200
|
||||
+++ build/common.gypi 2012-01-29 21:49:50.000000000 +0200
|
||||
@@ -406,6 +406,11 @@
|
||||
# able to turn it off for remote debugging on Chromium OS
|
||||
'linux_disable_pie%': 0,
|
||||
|
||||
+ 'os_ver%': 0,
|
||||
+ 'prefix_dir%': '/usr',
|
||||
+ 'use_system_tcmalloc%': 0,
|
||||
+ 'use_system_libjpeg%': 0,
|
||||
+
|
||||
# The release channel that this build targets. This is used to restrict
|
||||
# channel-specific build options, like which installer packages to create.
|
||||
# The default is 'all', which does no channel-specific filtering.
|
||||
@@ -615,7 +619,7 @@
|
||||
@@ -632,7 +637,7 @@
|
||||
# This is used to tweak build flags for gcc 4.4.
|
||||
'gcc_version%': '<!(python <(DEPTH)/build/compiler_version.py)',
|
||||
# Figure out the python architecture to decide if we build pyauto.
|
||||
|
@ -20,16 +21,7 @@
|
|||
'conditions': [
|
||||
['branding=="Chrome"', {
|
||||
'linux_breakpad%': 1,
|
||||
@@ -1242,7 +1246,7 @@
|
||||
['exclude', '(^|/)(wayland)_[^/]*\\.(h|cc)$'],
|
||||
],
|
||||
}],
|
||||
- ['OS!="linux"', {
|
||||
+ ['OS!="linux" and OS!="freebsd"', {
|
||||
'sources/': [
|
||||
['exclude', '_linux(_unittest)?\\.(h|cc)$'],
|
||||
['exclude', '(^|/)linux/'],
|
||||
@@ -1911,6 +1915,22 @@
|
||||
@@ -1973,6 +1978,22 @@
|
||||
'ldflags': [
|
||||
'-Wl,--no-keep-memory',
|
||||
],
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
--- chrome/browser/about_flags.cc.orig 2011-03-20 22:02:04.388735857 +0200
|
||||
+++ chrome/browser/about_flags.cc 2011-03-20 22:02:04.492737343 +0200
|
||||
@@ -503,7 +503,7 @@
|
||||
--- chrome/browser/about_flags.cc.orig 2012-01-18 11:12:44.000000000 +0200
|
||||
+++ chrome/browser/about_flags.cc 2012-01-29 14:51:40.000000000 +0200
|
||||
@@ -674,7 +674,7 @@
|
||||
return kOsWin;
|
||||
#elif defined(OS_CHROMEOS) // Needs to be before the OS_LINUX check.
|
||||
return kOsCrOS;
|
||||
-#elif defined(OS_LINUX)
|
||||
+#elif defined(OS_LINUX) || defined(OS_FREEBSD)
|
||||
-#elif defined(OS_LINUX) || defined(OS_OPENBSD)
|
||||
+#elif defined(OS_LINUX) || defined(OS_BSD)
|
||||
return kOsLinux;
|
||||
#else
|
||||
#error Unknown platform
|
||||
|
|
|
@ -1,47 +1,11 @@
|
|||
--- chrome/browser/browser_about_handler.cc.orig 2011-11-01 10:43:20.000000000 +0200
|
||||
+++ chrome/browser/browser_about_handler.cc 2011-11-19 19:05:28.000000000 +0200
|
||||
@@ -79,7 +79,7 @@
|
||||
#include "chrome/browser/chromeos/version_loader.h"
|
||||
#include "chrome/browser/oom_priority_manager.h"
|
||||
#include "content/browser/zygote_host_linux.h"
|
||||
-#elif defined(OS_LINUX)
|
||||
+#elif defined(OS_LINUX) || defined(OS_FREEBSD)
|
||||
#include "content/browser/zygote_host_linux.h"
|
||||
#endif
|
||||
|
||||
@@ -152,7 +152,7 @@
|
||||
--- chrome/browser/browser_about_handler.cc.orig 2012-01-18 11:12:44.000000000 +0200
|
||||
+++ chrome/browser/browser_about_handler.cc 2012-01-29 15:07:44.000000000 +0200
|
||||
@@ -63,7 +63,7 @@
|
||||
#if defined(OS_WIN)
|
||||
chrome::kChromeUIConflictsHost,
|
||||
#endif
|
||||
-#if defined(OS_LINUX)
|
||||
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
|
||||
-#if defined(OS_LINUX) || defined(OS_OPENBSD)
|
||||
+#if defined(OS_LINUX) || defined(OS_BSD)
|
||||
chrome::kChromeUILinuxProxyConfigHost,
|
||||
chrome::kChromeUISandboxHost,
|
||||
#endif
|
||||
@@ -190,7 +190,7 @@
|
||||
#if defined(USE_TCMALLOC)
|
||||
chrome::kChromeUITCMallocHost,
|
||||
#endif
|
||||
-#if defined(OS_LINUX)
|
||||
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
|
||||
chrome::kChromeUILinuxProxyConfigHost,
|
||||
chrome::kChromeUISandboxHost,
|
||||
#endif
|
||||
@@ -1062,7 +1062,7 @@
|
||||
return data;
|
||||
}
|
||||
|
||||
-#if defined(OS_LINUX)
|
||||
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
|
||||
std::string AboutLinuxProxyConfig() {
|
||||
std::string data;
|
||||
AppendHeader(&data, 0,
|
||||
@@ -1447,7 +1447,7 @@
|
||||
return;
|
||||
} else if (host == chrome::kChromeUIHistogramsHost) {
|
||||
response = AboutHistograms(path);
|
||||
-#if defined(OS_LINUX)
|
||||
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
|
||||
} else if (host == chrome::kChromeUILinuxProxyConfigHost) {
|
||||
response = AboutLinuxProxyConfig();
|
||||
#endif
|
||||
|
|
|
@ -1,78 +1,29 @@
|
|||
--- chrome/browser/chrome_content_browser_client.cc.orig 2011-11-01 10:43:20.000000000 +0200
|
||||
+++ chrome/browser/chrome_content_browser_client.cc 2011-11-19 19:22:29.000000000 +0200
|
||||
@@ -81,18 +81,18 @@
|
||||
#include "chrome/browser/chrome_browser_main_win.h"
|
||||
#elif defined(OS_MACOSX)
|
||||
--- chrome/browser/chrome_content_browser_client.cc.orig 2012-01-18 11:12:43.000000000 +0200
|
||||
+++ chrome/browser/chrome_content_browser_client.cc 2012-01-29 15:16:06.000000000 +0200
|
||||
@@ -87,7 +87,7 @@
|
||||
#include "chrome/browser/chrome_browser_main_mac.h"
|
||||
-#elif defined(OS_LINUX)
|
||||
+#elif defined(OS_LINUX) || defined(OS_FREEBSD)
|
||||
#include "chrome/browser/chrome_browser_main_gtk.h"
|
||||
#elif defined(OS_CHROMEOS)
|
||||
#include "chrome/browser/chromeos/chrome_browser_main_chromeos.h"
|
||||
-#elif defined(OS_LINUX) || defined(OS_OPENBSD)
|
||||
+#elif defined(OS_LINUX) || defined(OS_BSD)
|
||||
#include "chrome/browser/chrome_browser_main_linux.h"
|
||||
#elif defined(OS_POSIX)
|
||||
#include "chrome/browser/chrome_browser_main_posix.h"
|
||||
@@ -105,7 +105,7 @@
|
||||
#include "chrome/browser/chrome_browser_main_extra_parts_aura.h"
|
||||
#endif
|
||||
|
||||
-#if defined(OS_LINUX)
|
||||
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
|
||||
-#if defined(OS_LINUX) || defined(OS_OPENBSD)
|
||||
+#if defined(OS_LINUX) || defined(OS_BSD)
|
||||
#include "base/linux_util.h"
|
||||
#include "chrome/browser/crash_handler_host_linux.h"
|
||||
#endif
|
||||
|
||||
#if defined(TOOLKIT_VIEWS)
|
||||
#include "chrome/browser/ui/views/tab_contents/tab_contents_view_views.h"
|
||||
-#elif defined(OS_LINUX)
|
||||
+#elif defined(OS_LINUX) || defined(OS_FREEBSD)
|
||||
#include "chrome/browser/tab_contents/tab_contents_view_gtk.h"
|
||||
#elif defined(OS_MACOSX)
|
||||
#include "chrome/browser/tab_contents/tab_contents_view_mac.h"
|
||||
@@ -108,7 +108,7 @@
|
||||
#elif defined(OS_WIN)
|
||||
#include "chrome/browser/renderer_host/render_widget_host_view_views.h"
|
||||
#include "content/browser/renderer_host/render_widget_host_view_win.h"
|
||||
-#elif defined(OS_LINUX)
|
||||
+#elif defined(OS_LINUX) || defined(OS_FREEBSD)
|
||||
#include "content/browser/renderer_host/render_widget_host_view_gtk.h"
|
||||
#elif defined(OS_MACOSX)
|
||||
#include "content/browser/renderer_host/render_widget_host_view_mac.h"
|
||||
@@ -195,7 +195,7 @@
|
||||
return new ChromeBrowserMainPartsWin(parameters);
|
||||
#elif defined(OS_MACOSX)
|
||||
return new ChromeBrowserMainPartsMac(parameters);
|
||||
-#elif defined(OS_LINUX)
|
||||
+#elif defined(OS_LINUX) || defined(OS_FREEBSD)
|
||||
return new ChromeBrowserMainPartsGtk(parameters);
|
||||
#else
|
||||
return NULL;
|
||||
@@ -210,7 +210,7 @@
|
||||
if (views::Widget::IsPureViews())
|
||||
return new RenderWidgetHostViewViews(widget);
|
||||
return new RenderWidgetHostViewWin(widget);
|
||||
-#elif defined(OS_LINUX)
|
||||
+#elif defined(OS_LINUX) || defined(OS_FREEBSD)
|
||||
return new RenderWidgetHostViewGtk(widget);
|
||||
#elif defined(OS_MACOSX)
|
||||
return render_widget_host_view_mac::CreateRenderWidgetHostView(widget);
|
||||
@@ -223,7 +223,7 @@
|
||||
TabContents* tab_contents) {
|
||||
#if defined(TOOLKIT_VIEWS)
|
||||
return new TabContentsViewViews(tab_contents);
|
||||
-#elif defined(OS_LINUX)
|
||||
+#elif defined(OS_LINUX) || defined(OS_FREEBSD)
|
||||
return new TabContentsViewGtk(tab_contents);
|
||||
#elif defined(OS_MACOSX)
|
||||
return tab_contents_view_mac::CreateTabContentsView(tab_contents);
|
||||
@@ -911,7 +911,7 @@
|
||||
return download_util::GetDefaultDownloadDirectory();
|
||||
}
|
||||
|
||||
-#if defined(OS_LINUX)
|
||||
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
|
||||
int ChromeContentBrowserClient::GetCrashSignalFD(
|
||||
const CommandLine& command_line) {
|
||||
if (command_line.HasSwitch(switches::kExtensionProcess)) {
|
||||
@@ -937,7 +937,7 @@
|
||||
|
||||
return -1;
|
||||
}
|
||||
-#endif // defined(OS_LINUX)
|
||||
+#endif // defined(OS_LINUX) || defined(OS_FREEBSD)
|
||||
|
||||
#if defined(OS_WIN)
|
||||
const wchar_t* ChromeContentBrowserClient::GetResourceDllName() {
|
||||
@@ -264,7 +264,7 @@
|
||||
main_parts = new ChromeBrowserMainPartsMac(parameters);
|
||||
#elif defined(OS_CHROMEOS)
|
||||
main_parts = new ChromeBrowserMainPartsChromeos(parameters);
|
||||
-#elif defined(OS_LINUX) || defined(OS_OPENBSD)
|
||||
+#elif defined(OS_LINUX) || defined(OS_BSD)
|
||||
main_parts = new ChromeBrowserMainPartsLinux(parameters);
|
||||
#elif defined(OS_POSIX)
|
||||
main_parts = new ChromeBrowserMainPartsPosix(parameters);
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
--- chrome/browser/extensions/process_map.cc.orig 2012-01-31 21:06:11.000000000 +0200
|
||||
+++ chrome/browser/extensions/process_map.cc 2012-01-31 21:06:50.000000000 +0200
|
||||
@@ -11,7 +11,7 @@
|
||||
Item() {
|
||||
}
|
||||
|
||||
- explicit Item(const ProcessMap::Item& other)
|
||||
+ Item(const ProcessMap::Item& other)
|
||||
: extension_id(other.extension_id),
|
||||
process_id(other.process_id),
|
||||
site_instance_id(other.site_instance_id) {
|
|
@ -1,11 +1,11 @@
|
|||
--- ./chrome/browser/net/connection_tester.cc.orig 2010-12-16 02:11:55.000000000 +0100
|
||||
+++ ./chrome/browser/net/connection_tester.cc 2010-12-20 20:15:08.000000000 +0100
|
||||
@@ -179,7 +179,7 @@
|
||||
--- chrome/browser/net/connection_tester.cc.orig 2012-01-18 11:12:39.000000000 +0200
|
||||
+++ chrome/browser/net/connection_tester.cc 2012-01-29 15:24:02.000000000 +0200
|
||||
@@ -212,7 +212,7 @@
|
||||
// Otherwise returns a network error code.
|
||||
int CreateSystemProxyConfigService(
|
||||
scoped_ptr<net::ProxyConfigService>* config_service) {
|
||||
-#if defined(OS_LINUX)
|
||||
+#if defined(OS_LINUX) || defined(FREEBSD)
|
||||
-#if defined(OS_LINUX) || defined(OS_OPENBSD)
|
||||
+#if defined(OS_LINUX) || defined(OS_BSD)
|
||||
// TODO(eroman): This is not supported on Linux yet, because of how
|
||||
// construction needs ot happen on the UI thread.
|
||||
return net::ERR_NOT_IMPLEMENTED;
|
||||
|
|
|
@ -1,11 +1,41 @@
|
|||
--- chrome/browser/process_singleton.h.orig 2011-03-20 22:02:04.272739829 +0200
|
||||
+++ chrome/browser/process_singleton.h 2011-03-20 22:02:04.444737667 +0200
|
||||
--- chrome/browser/process_singleton.h.orig 2012-01-18 11:12:43.000000000 +0200
|
||||
+++ chrome/browser/process_singleton.h 2012-01-29 15:27:59.000000000 +0200
|
||||
@@ -22,9 +22,9 @@
|
||||
#include "base/file_path.h"
|
||||
#endif // defined(OS_POSIX)
|
||||
|
||||
-#if defined(OS_LINUX) || defined(OS_OPENBSD)
|
||||
+#if defined(OS_LINUX) || defined(OS_BSD)
|
||||
#include "base/scoped_temp_dir.h"
|
||||
-#endif // defined(OS_LINUX) || defined(OS_OPENBSD)
|
||||
+#endif // defined(OS_LINUX) || defined(OS_BSD)
|
||||
|
||||
class CommandLine;
|
||||
class FilePath;
|
||||
@@ -67,7 +67,7 @@
|
||||
// instance.
|
||||
NotifyResult NotifyOtherProcessOrCreate();
|
||||
|
||||
-#if defined(OS_LINUX)
|
||||
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
|
||||
-#if defined(OS_LINUX) || defined(OS_OPENBSD)
|
||||
+#if defined(OS_LINUX) || defined(OS_BSD)
|
||||
// Exposed for testing. We use a timeout on Linux, and in tests we want
|
||||
// this timeout to be short.
|
||||
NotifyResult NotifyOtherProcessWithTimeout(const CommandLine& command_line,
|
||||
@@ -76,7 +76,7 @@
|
||||
NotifyResult NotifyOtherProcessWithTimeoutOrCreate(
|
||||
const CommandLine& command_line,
|
||||
int timeout_seconds);
|
||||
-#endif // defined(OS_LINUX) || defined(OS_OPENBSD)
|
||||
+#endif // defined(OS_LINUX) || defined(OS_BSD)
|
||||
|
||||
#if defined(OS_WIN) && !defined(USE_AURA)
|
||||
// Used in specific cases to let us know that there is an existing instance
|
||||
@@ -151,7 +151,7 @@
|
||||
HWND remote_window_; // The HWND_MESSAGE of another browser.
|
||||
HWND window_; // The HWND_MESSAGE window.
|
||||
bool is_virtualized_; // Stuck inside Microsoft Softricity VM environment.
|
||||
-#elif defined(OS_LINUX) || defined(OS_OPENBSD)
|
||||
+#elif defined(OS_LINUX) || defined(OS_BSD)
|
||||
// Path in file system to the socket.
|
||||
FilePath socket_path_;
|
||||
|
||||
|
|
|
@ -0,0 +1,38 @@
|
|||
--- chrome/browser/ui/webui/about_ui.cc.orig 2012-02-01 20:07:00.000000000 +0200
|
||||
+++ chrome/browser/ui/webui/about_ui.cc 2012-02-01 20:07:54.000000000 +0200
|
||||
@@ -81,7 +81,7 @@
|
||||
#include "chrome/browser/chromeos/version_loader.h"
|
||||
#include "chrome/browser/oom_priority_manager.h"
|
||||
#include "content/browser/zygote_host_linux.h"
|
||||
-#elif defined(OS_LINUX) || defined(OS_OPENBSD)
|
||||
+#elif defined(OS_LINUX) || defined(OS_BSD)
|
||||
#include "content/browser/zygote_host_linux.h"
|
||||
#endif
|
||||
|
||||
@@ -920,7 +920,7 @@
|
||||
return data;
|
||||
}
|
||||
|
||||
-#if defined(OS_LINUX) || defined(OS_OPENBSD)
|
||||
+#if defined(OS_LINUX) || defined(OS_BSD)
|
||||
std::string AboutLinuxProxyConfig() {
|
||||
std::string data;
|
||||
AppendHeader(&data, 0,
|
||||
@@ -1306,7 +1306,7 @@
|
||||
return;
|
||||
} else if (host == chrome::kChromeUIHistogramsHost) {
|
||||
response = AboutHistograms(path);
|
||||
-#if defined(OS_LINUX) || defined(OS_OPENBSD)
|
||||
+#if defined(OS_LINUX) || defined(OS_BSD)
|
||||
} else if (host == chrome::kChromeUILinuxProxyConfigHost) {
|
||||
response = AboutLinuxProxyConfig();
|
||||
#endif
|
||||
@@ -1322,7 +1322,7 @@
|
||||
response = ResourceBundle::GetSharedInstance().GetRawDataResource(
|
||||
IDR_OS_CREDITS_HTML).as_string();
|
||||
#endif
|
||||
-#if defined(OS_LINUX) || defined(OS_OPENBSD)
|
||||
+#if defined(OS_LINUX) || defined(OS_BSD)
|
||||
} else if (host == chrome::kChromeUISandboxHost) {
|
||||
response = AboutSandbox();
|
||||
#endif
|
|
@ -1,11 +1,11 @@
|
|||
--- chrome/common/child_process_logging.h.orig 2011-11-22 01:03:45.000000000 +0200
|
||||
+++ chrome/common/child_process_logging.h 2011-11-22 01:03:57.000000000 +0200
|
||||
@@ -30,7 +30,7 @@
|
||||
--- chrome/common/child_process_logging.h.orig 2012-01-18 11:13:17.000000000 +0200
|
||||
+++ chrome/common/child_process_logging.h 2012-01-29 15:30:03.000000000 +0200
|
||||
@@ -33,7 +33,7 @@
|
||||
|
||||
namespace child_process_logging {
|
||||
|
||||
-#if defined(OS_LINUX)
|
||||
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
|
||||
-#if defined(OS_LINUX) || defined(OS_OPENBSD)
|
||||
+#if defined(OS_LINUX) || defined(OS_BSD)
|
||||
// These are declared here so the crash reporter can access them directly in
|
||||
// compromised context without going through the standard library.
|
||||
extern char g_active_url[];
|
||||
|
|
|
@ -1,11 +0,0 @@
|
|||
--- chrome/common/multi_process_lock.h.orig 2011-03-20 22:02:04.375736719 +0200
|
||||
+++ chrome/common/multi_process_lock.h 2011-03-20 22:02:04.485737571 +0200
|
||||
@@ -18,7 +18,7 @@
|
||||
// The length of a multi-process lock name is limited on Linux, so
|
||||
// it is limited it on all platforms for consistency. This length does
|
||||
// not include a terminator.
|
||||
- static const size_t MULTI_PROCESS_LOCK_NAME_MAX_LEN = 106;
|
||||
+ static const size_t MULTI_PROCESS_LOCK_NAME_MAX_LEN = 102;
|
||||
|
||||
// Factory method for creating a multi-process lock.
|
||||
// |name| is the name of the lock. The name has special meaning on Windows
|
|
@ -1,11 +1,11 @@
|
|||
--- chrome/common/url_constants.cc.orig 2011-09-10 15:16:44.000000000 +0300
|
||||
+++ chrome/common/url_constants.cc 2011-09-10 15:17:50.000000000 +0300
|
||||
@@ -158,7 +158,7 @@
|
||||
--- chrome/common/url_constants.cc.orig 2012-01-18 11:13:17.000000000 +0200
|
||||
+++ chrome/common/url_constants.cc 2012-01-29 15:33:57.000000000 +0200
|
||||
@@ -186,7 +186,7 @@
|
||||
const char kChromeUIScreenshotPath[] = "screenshots";
|
||||
const char kChromeUIThemePath[] = "theme";
|
||||
const char kChromeUIThumbnailPath[] = "thumb";
|
||||
|
||||
-#if defined(OS_LINUX)
|
||||
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
|
||||
-#if defined(OS_LINUX) || defined(OS_OPENBSD)
|
||||
+#if defined(OS_LINUX) || defined(OS_BSD)
|
||||
const char kChromeUILinuxProxyConfigHost[] = "linux-proxy-config";
|
||||
const char kChromeUISandboxHost[] = "sandbox";
|
||||
#endif
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
--- chrome/common/url_constants.h.orig 2011-09-10 15:16:51.000000000 +0300
|
||||
+++ chrome/common/url_constants.h 2011-09-10 15:17:26.000000000 +0300
|
||||
@@ -156,7 +156,7 @@
|
||||
--- chrome/common/url_constants.h.orig 2012-01-18 11:13:17.000000000 +0200
|
||||
+++ chrome/common/url_constants.h 2012-01-29 15:35:17.000000000 +0200
|
||||
@@ -178,7 +178,7 @@
|
||||
extern const char kChromeUIScreenshotPath[];
|
||||
extern const char kChromeUIThemePath[];
|
||||
extern const char kChromeUIThumbnailPath[];
|
||||
|
||||
-#if defined(OS_LINUX)
|
||||
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
|
||||
-#if defined(OS_LINUX) || defined(OS_OPENBSD)
|
||||
+#if defined(OS_LINUX) || defined(OS_BSD)
|
||||
extern const char kChromeUILinuxProxyConfigHost[];
|
||||
extern const char kChromeUISandboxHost[];
|
||||
#endif
|
||||
|
|
|
@ -1,22 +0,0 @@
|
|||
--- chrome/nacl.gypi.orig 2011-11-01 10:43:23.000000000 +0200
|
||||
+++ chrome/nacl.gypi 2011-11-19 19:26:48.000000000 +0200
|
||||
@@ -102,8 +102,8 @@
|
||||
],
|
||||
},
|
||||
],
|
||||
- }],
|
||||
- ['OS!="win" and target_arch=="ia32"', {
|
||||
+ }], # Disable nacl on freebsd for now.
|
||||
+ ['OS!="win" and OS!="freebsd" and target_arch=="ia32"', {
|
||||
# Linux-x86-32 and OSX need only the x86-32 IRT.
|
||||
'actions': [
|
||||
{
|
||||
@@ -119,7 +119,7 @@
|
||||
},
|
||||
],
|
||||
}],
|
||||
- ['OS!="win" and target_arch=="x64"', {
|
||||
+ ['OS!="win" and OS!="freebsd" and target_arch=="x64"', {
|
||||
# Linux-x86-64 needs only the x86-64 IRT.
|
||||
'actions': [
|
||||
{
|
|
@ -0,0 +1,29 @@
|
|||
--- chrome/renderer/chrome_ppb_pdf_impl.cc.orig 2012-02-01 21:17:28.000000000 +0200
|
||||
+++ chrome/renderer/chrome_ppb_pdf_impl.cc 2012-02-01 21:18:02.000000000 +0200
|
||||
@@ -43,7 +43,7 @@
|
||||
|
||||
namespace chrome {
|
||||
|
||||
-#if defined(OS_LINUX) || defined(OS_OPENBSD)
|
||||
+#if defined(OS_LINUX) || defined(OS_BSD)
|
||||
class PrivateFontFile : public ppapi::Resource {
|
||||
public:
|
||||
PrivateFontFile(PP_Instance instance, int fd) : Resource(instance), fd_(fd) {
|
||||
@@ -187,7 +187,7 @@
|
||||
PP_Instance instance_id,
|
||||
const PP_FontDescription_Dev* description,
|
||||
PP_PrivateFontCharset charset) {
|
||||
-#if defined(OS_LINUX) || defined(OS_OPENBSD)
|
||||
+#if defined(OS_LINUX) || defined(OS_BSD)
|
||||
// Validate the instance before using it below.
|
||||
if (!HostGlobals::Get()->GetInstance(instance_id))
|
||||
return 0;
|
||||
@@ -219,7 +219,7 @@
|
||||
uint32_t table,
|
||||
void* output,
|
||||
uint32_t* output_length) {
|
||||
-#if defined(OS_LINUX) || defined(OS_OPENBSD)
|
||||
+#if defined(OS_LINUX) || defined(OS_BSD)
|
||||
ppapi::Resource* resource =
|
||||
PpapiGlobals::Get()->GetResourceTracker()->GetResource(font_file);
|
||||
if (!resource)
|
11
www/chromium/files/patch-content__app__content_main.cc
Normal file
11
www/chromium/files/patch-content__app__content_main.cc
Normal file
|
@ -0,0 +1,11 @@
|
|||
--- content/app/content_main.cc.orig 2012-02-01 21:47:17.000000000 +0200
|
||||
+++ content/app/content_main.cc 2012-02-01 21:47:28.000000000 +0200
|
||||
@@ -316,7 +316,7 @@
|
||||
base::GlobalDescriptors* g_fds = base::GlobalDescriptors::GetInstance();
|
||||
g_fds->Set(kPrimaryIPCChannel,
|
||||
kPrimaryIPCChannel + base::GlobalDescriptors::kBaseDescriptor);
|
||||
-#if defined(OS_LINUX) || defined(OS_OPENBSD)
|
||||
+#if defined(OS_LINUX) || defined(OS_BSD)
|
||||
g_fds->Set(kCrashDumpSignal,
|
||||
kCrashDumpSignal + base::GlobalDescriptors::kBaseDescriptor);
|
||||
#endif
|
|
@ -1,29 +0,0 @@
|
|||
--- content/browser/browser_main.cc.orig 2011-11-30 22:55:59.687176328 +0200
|
||||
+++ content/browser/browser_main.cc 2011-11-30 22:56:18.705178000 +0200
|
||||
@@ -39,7 +39,7 @@
|
||||
#include "ui/base/l10n/l10n_util_win.h"
|
||||
#endif
|
||||
|
||||
-#if defined(OS_LINUX)
|
||||
+#if defined(TOOLKIT_USES_GTK)
|
||||
#include <glib-object.h>
|
||||
#endif
|
||||
|
||||
@@ -109,7 +109,7 @@
|
||||
}
|
||||
#endif
|
||||
|
||||
-#if defined(OS_LINUX)
|
||||
+#if defined(TOOLKIT_USES_GTK)
|
||||
static void GLibLogHandler(const gchar* log_domain,
|
||||
GLogLevelFlags log_level,
|
||||
const gchar* message,
|
||||
@@ -288,7 +288,7 @@
|
||||
// of intersecting ifdefs we have. To keep it easy to follow, there
|
||||
// are no #else branches on any #ifs.
|
||||
|
||||
-#if defined(OS_LINUX)
|
||||
+#if defined(TOOLKIT_USES_GTK)
|
||||
// We want to call g_thread_init(), but in some codepaths (tests) it
|
||||
// is possible it has already been called. In older versions of
|
||||
// GTK, it is an error to call g_thread_init twice; unfortunately,
|
|
@ -0,0 +1,29 @@
|
|||
--- content/browser/browser_main_loop.cc.orig 2012-01-30 22:18:23.000000000 +0200
|
||||
+++ content/browser/browser_main_loop.cc 2012-01-30 22:19:06.000000000 +0200
|
||||
@@ -39,7 +39,7 @@
|
||||
#include "net/base/winsock_init.h"
|
||||
#endif
|
||||
|
||||
-#if defined(OS_LINUX) || defined(OS_OPENBSD)
|
||||
+#if defined(OS_LINUX) || defined(OS_BSD)
|
||||
#include <glib-object.h>
|
||||
#endif
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
}
|
||||
#endif
|
||||
|
||||
-#if defined(OS_LINUX) || defined(OS_OPENBSD)
|
||||
+#if defined(OS_LINUX) || defined(OS_BSD)
|
||||
static void GLibLogHandler(const gchar* log_domain,
|
||||
GLogLevelFlags log_level,
|
||||
const gchar* message,
|
||||
@@ -518,7 +518,7 @@
|
||||
// are no #else branches on any #ifs.
|
||||
// TODO(stevenjb): Move platform specific code into platform specific Parts
|
||||
// (Need to add InitializeToolkit stage to BrowserParts).
|
||||
-#if defined(OS_LINUX) || defined(OS_OPENBSD)
|
||||
+#if defined(OS_LINUX) || defined(OS_BSD)
|
||||
// Glib type system initialization. Needed at least for gconf,
|
||||
// used in net/proxy/proxy_config_service_linux.cc. Most likely
|
||||
// this is superfluous as gtk_init() ought to do this. It's
|
|
@ -0,0 +1,11 @@
|
|||
--- content/browser/gpu/gpu_blacklist.cc.orig 2012-02-01 21:23:10.000000000 +0200
|
||||
+++ content/browser/gpu/gpu_blacklist.cc 2012-02-01 21:23:18.000000000 +0200
|
||||
@@ -817,7 +817,7 @@
|
||||
return kOsChromeOS;
|
||||
#elif defined(OS_WIN)
|
||||
return kOsWin;
|
||||
-#elif defined(OS_LINUX) || defined(OS_OPENBSD)
|
||||
+#elif defined(OS_LINUX) || defined(OS_BSD)
|
||||
return kOsLinux;
|
||||
#elif defined(OS_MACOSX)
|
||||
return kOsMacosx;
|
|
@ -0,0 +1,11 @@
|
|||
--- content/browser/gpu/gpu_blacklist_unittest.cc.orig 2012-02-01 21:51:33.000000000 +0200
|
||||
+++ content/browser/gpu/gpu_blacklist_unittest.cc 2012-02-01 21:52:45.000000000 +0200
|
||||
@@ -191,7 +191,7 @@
|
||||
EXPECT_EQ(flags.flags(),
|
||||
static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl));
|
||||
#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || \
|
||||
- defined(OS_OPENBSD)
|
||||
+ defined(OS_BSD)
|
||||
// Blacklist entries will be filtered to the current OS only upon loading.
|
||||
EXPECT_TRUE(
|
||||
blacklist.LoadGpuBlacklist(vendor_json, GpuBlacklist::kCurrentOsOnly));
|
|
@ -1,11 +0,0 @@
|
|||
--- content/browser/renderer_host/browser_render_process_host.cc.orig 2011-03-20 22:02:04.283738713 +0200
|
||||
+++ content/browser/renderer_host/browser_render_process_host.cc 2011-03-20 22:02:04.448747953 +0200
|
||||
@@ -886,7 +886,7 @@
|
||||
HANDLE section = app::win::GetSectionFromProcess(
|
||||
dib_id.handle, GetHandle(), false /* read write */);
|
||||
return TransportDIB::Map(section);
|
||||
-#elif defined(OS_MACOSX)
|
||||
+#elif defined(OS_MACOSX) || defined(OS_FREEBSD)
|
||||
// On OSX, the browser allocates all DIBs and keeps a file descriptor around
|
||||
// for each.
|
||||
return widget_helper_->MapTransportDIB(dib_id);
|
|
@ -0,0 +1,11 @@
|
|||
--- content/browser/renderer_host/render_process_host_impl.cc.orig 2012-01-29 16:19:50.000000000 +0200
|
||||
+++ content/browser/renderer_host/render_process_host_impl.cc 2012-01-29 16:20:14.000000000 +0200
|
||||
@@ -806,7 +806,7 @@
|
||||
STANDARD_RIGHTS_REQUIRED | FILE_MAP_READ | FILE_MAP_WRITE,
|
||||
FALSE, 0);
|
||||
return TransportDIB::Map(section);
|
||||
-#elif defined(OS_MACOSX)
|
||||
+#elif defined(OS_MACOSX) || defined(OS_FREEBSD)
|
||||
// On OSX, the browser allocates all DIBs and keeps a file descriptor around
|
||||
// for each.
|
||||
return widget_helper_->MapTransportDIB(dib_id);
|
|
@ -1,11 +1,11 @@
|
|||
--- content/browser/tab_contents/tab_contents.cc.orig 2011-06-24 11:30:32.000000000 +0300
|
||||
+++ content/browser/tab_contents/tab_contents.cc 2011-06-26 21:18:24.774780173 +0300
|
||||
@@ -1822,7 +1822,7 @@
|
||||
if (!render_view_host->CreateRenderView(string16()))
|
||||
--- content/browser/tab_contents/tab_contents.cc.orig 2012-01-18 11:11:38.000000000 +0200
|
||||
+++ content/browser/tab_contents/tab_contents.cc 2012-01-29 16:23:41.000000000 +0200
|
||||
@@ -2021,7 +2021,7 @@
|
||||
if (!render_view_host->CreateRenderView(string16(), max_page_id))
|
||||
return false;
|
||||
|
||||
-#if defined(OS_LINUX)
|
||||
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
|
||||
-#if defined(OS_LINUX) || defined(OS_OPENBSD)
|
||||
+#if defined(OS_LINUX) || defined(OS_BSD)
|
||||
// Force a ViewMsg_Resize to be sent, needed to make plugins show up on
|
||||
// linux. See crbug.com/83941.
|
||||
if (RenderWidgetHost* render_widget_host = rwh_view->GetRenderWidgetHost())
|
||||
if (rwh_view) {
|
||||
|
|
|
@ -1,18 +1,20 @@
|
|||
--- content/browser/zygote_host_linux.cc.orig 2011-10-07 11:31:44.000000000 +0300
|
||||
+++ content/browser/zygote_host_linux.cc 2011-10-08 22:10:14.930730097 +0300
|
||||
@@ -271,6 +271,7 @@
|
||||
--- content/browser/zygote_host_linux.cc.orig 2012-01-18 11:11:40.000000000 +0200
|
||||
+++ content/browser/zygote_host_linux.cc 2012-01-29 16:31:59.000000000 +0200
|
||||
@@ -305,7 +305,7 @@
|
||||
return base::kNullProcessHandle;
|
||||
}
|
||||
|
||||
+#if !defined(OS_FREEBSD)
|
||||
-#if !defined(OS_OPENBSD)
|
||||
+#if !defined(OS_BSD)
|
||||
// This is just a starting score for a renderer or extension (the
|
||||
// only types of processes that will be started this way). It will
|
||||
// get adjusted as time goes on. (This is the same value as
|
||||
@@ -278,6 +279,7 @@
|
||||
// that's not something we can include here.)
|
||||
const int kLowestRendererOomScore = 300;
|
||||
AdjustRendererOOMScore(pid, kLowestRendererOomScore);
|
||||
+#endif
|
||||
|
||||
@@ -318,7 +318,7 @@
|
||||
return pid;
|
||||
}
|
||||
|
||||
-#if !defined(OS_OPENBSD)
|
||||
+#if !defined(OS_BSD)
|
||||
void ZygoteHost::AdjustRendererOOMScore(base::ProcessHandle pid, int score) {
|
||||
// 1) You can't change the oom_score_adj of a non-dumpable process
|
||||
// (EPERM) unless you're root. Because of this, we can't set the
|
||||
|
|
|
@ -1,11 +0,0 @@
|
|||
--- content/common/gpu/gpu_command_buffer_stub.cc.orig 2011-11-30 21:36:25.000000000 +0200
|
||||
+++ content/common/gpu/gpu_command_buffer_stub.cc 2011-11-30 21:36:49.000000000 +0200
|
||||
@@ -193,7 +193,7 @@
|
||||
renderer_id_,
|
||||
route_id_,
|
||||
handle_);
|
||||
-#elif defined(OS_WIN) || defined(OS_LINUX)
|
||||
+#elif defined(OS_WIN) || defined(OS_LINUX) || defined(OS_FREEBSD)
|
||||
surface_ = gfx::GLSurface::CreateViewGLSurface(software_, handle_);
|
||||
#endif
|
||||
} else {
|
|
@ -1,12 +1,11 @@
|
|||
--- content/common/seccomp_sandbox.h.orig 2011-10-10 20:30:54.487723398 +0000
|
||||
+++ content/common/seccomp_sandbox.h 2011-10-10 20:31:27.083734776 +0000
|
||||
@@ -18,7 +18,8 @@
|
||||
#include "content/common/content_switches.h"
|
||||
--- content/common/seccomp_sandbox.h.orig 2012-01-18 11:11:41.000000000 +0200
|
||||
+++ content/common/seccomp_sandbox.h 2012-01-29 17:00:42.000000000 +0200
|
||||
@@ -19,7 +19,7 @@
|
||||
|
||||
#if defined(ARCH_CPU_X86_FAMILY) && !defined(CHROMIUM_SELINUX) && \
|
||||
- !defined(__clang__) && !defined(OS_CHROMEOS) && !defined(TOOLKIT_VIEWS)
|
||||
+ !defined(__clang__) && !defined(OS_CHROMEOS) && !defined(TOOLKIT_VIEWS) && \
|
||||
+ !defined(OS_FREEBSD)
|
||||
!defined(__clang__) && !defined(OS_CHROMEOS) && !defined(TOOLKIT_VIEWS) && \
|
||||
- !defined(OS_OPENBSD)
|
||||
+ !defined(OS_BSD)
|
||||
#define SECCOMP_SANDBOX
|
||||
#include "seccompsandbox/sandbox.h"
|
||||
#endif
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
--- content/common/common_param_traits.h.orig 2011-06-06 00:08:49.215163238 +0300
|
||||
+++ content/common/common_param_traits.h 2011-06-06 00:09:04.929165157 +0300
|
||||
--- content/public/common/common_param_traits.h.orig 2011-06-06 00:08:49.215163238 +0300
|
||||
+++ content/public/common/common_param_traits.h 2011-06-06 00:09:04.929165157 +0300
|
||||
@@ -187,7 +187,7 @@
|
||||
};
|
||||
#endif
|
|
@ -1,15 +1,15 @@
|
|||
--- content/renderer/render_process_impl.cc.orig 2010-12-16 02:11:59.000000000 +0100
|
||||
+++ content/renderer/render_process_impl.cc 2010-12-20 20:15:08.000000000 +0100
|
||||
@@ -243,7 +243,7 @@
|
||||
#if defined(OS_WIN) || defined(OS_LINUX)
|
||||
--- content/renderer/render_process_impl.cc.orig 2012-01-18 11:11:41.000000000 +0200
|
||||
+++ content/renderer/render_process_impl.cc 2012-01-29 17:05:58.000000000 +0200
|
||||
@@ -105,7 +105,7 @@
|
||||
#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_OPENBSD)
|
||||
// Windows and Linux create transport DIBs inside the renderer
|
||||
return TransportDIB::Create(size, transport_dib_next_sequence_number_++);
|
||||
-#elif defined(OS_MACOSX) // defined(OS_WIN) || defined(OS_LINUX)
|
||||
+#elif defined(OS_MACOSX) || defined(OS_FREEBSD) // defined(OS_WIN) || defined(OS_LINUX)
|
||||
-#elif defined(OS_MACOSX)
|
||||
+#elif defined(OS_MACOSX) || defined(OS_FREEBSD)
|
||||
// Mac creates transport DIBs in the browser, so we need to do a sync IPC to
|
||||
// get one. The TransportDIB is cached in the browser.
|
||||
TransportDIB::Handle handle;
|
||||
@@ -260,7 +260,7 @@
|
||||
@@ -122,7 +122,7 @@
|
||||
if (!dib)
|
||||
return;
|
||||
|
||||
|
@ -18,12 +18,12 @@
|
|||
// On Mac we need to tell the browser that it can drop a reference to the
|
||||
// shared memory.
|
||||
IPC::Message* msg = new ViewHostMsg_FreeTransportDIB(dib->id());
|
||||
@@ -278,7 +278,7 @@
|
||||
@@ -140,7 +140,7 @@
|
||||
int width = rect.width();
|
||||
int height = rect.height();
|
||||
const size_t stride = skia::PlatformCanvas::StrideForWidth(rect.width());
|
||||
-#if defined(OS_LINUX)
|
||||
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
|
||||
-#if defined(OS_LINUX) || defined(OS_OPENBSD)
|
||||
+#if defined(OS_LINUX) || defined(OS_BSD)
|
||||
const size_t max_size = base::SysInfo::MaxSharedMemorySize();
|
||||
#else
|
||||
const size_t max_size = 0;
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
--- crypto/encryptor.cc.orig 2011-09-09 01:49:35.000000000 +0300
|
||||
+++ crypto/encryptor.cc 2011-09-09 01:56:01.000000000 +0300
|
||||
@@ -18,6 +18,11 @@
|
||||
#define bswap_16(x) OSSwapInt16(x)
|
||||
#define bswap_32(x) OSSwapInt32(x)
|
||||
#define bswap_64(x) OSSwapInt64(x)
|
||||
--- crypto/encryptor.cc.orig 2012-01-18 11:11:42.000000000 +0200
|
||||
+++ crypto/encryptor.cc 2012-01-29 17:11:33.000000000 +0200
|
||||
@@ -13,6 +13,11 @@
|
||||
#define bswap_16(x) _byteswap_ushort(x)
|
||||
#define bswap_32(x) _byteswap_ulong(x)
|
||||
#define bswap_64(x) _byteswap_uint64(x)
|
||||
+#elif defined(OS_FREEBSD)
|
||||
+#include <sys/endian.h>
|
||||
+#define bswap_16(x) bswap16(x)
|
||||
+#define bswap_32(x) bswap32(x)
|
||||
+#define bswap_64(x) bswap64(x)
|
||||
#else
|
||||
#include <byteswap.h>
|
||||
#endif
|
||||
#elif defined(OS_MACOSX)
|
||||
#include <libkern/OSByteOrder.h>
|
||||
#define bswap_16(x) OSSwapInt16(x)
|
||||
|
|
|
@ -1,10 +0,0 @@
|
|||
--- gpu/gpu.gyp.orig 2011-09-14 00:37:31.000000000 +0300
|
||||
+++ gpu/gpu.gyp 2011-09-14 00:36:48.000000000 +0300
|
||||
@@ -328,6 +328,7 @@
|
||||
],
|
||||
'include_dirs': [
|
||||
'..',
|
||||
+ '<(prefix_dir)/include',
|
||||
],
|
||||
'sources': [
|
||||
'command_buffer/common/gl_mock.h',
|
|
@ -1,11 +1,11 @@
|
|||
--- ipc/ipc_channel_posix.cc.orig 2011-06-06 00:13:54.367162724 +0300
|
||||
+++ ipc/ipc_channel_posix.cc 2011-06-06 00:14:09.016163924 +0300
|
||||
@@ -927,7 +927,7 @@
|
||||
--- ipc/ipc_channel_posix.cc.orig 2012-01-18 11:12:21.000000000 +0200
|
||||
+++ ipc/ipc_channel_posix.cc 2012-01-29 17:17:10.000000000 +0200
|
||||
@@ -948,7 +948,7 @@
|
||||
|
||||
bool Channel::ChannelImpl::GetClientEuid(uid_t* client_euid) const {
|
||||
DCHECK(HasAcceptedConnection());
|
||||
-#if defined(OS_MACOSX)
|
||||
+#if defined(OS_MACOSX) || defined(OS_FREEBSD)
|
||||
-#if defined(OS_MACOSX) || defined(OS_OPENBSD)
|
||||
+#if defined(OS_MACOSX) || defined(OS_BSD)
|
||||
uid_t peer_euid;
|
||||
gid_t peer_gid;
|
||||
if (getpeereid(pipe_, &peer_euid, &peer_gid) != 0) {
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
--- media/audio/pulse/pulse_output.cc.orig 2012-02-05 15:13:12.000000000 +0200
|
||||
+++ media/audio/pulse/pulse_output.cc 2012-02-05 15:13:41.000000000 +0200
|
||||
@@ -8,7 +8,7 @@
|
||||
#include "base/message_loop.h"
|
||||
#include "media/audio/audio_parameters.h"
|
||||
#include "media/audio/audio_util.h"
|
||||
-#if defined(OS_LINUX)
|
||||
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
|
||||
#include "media/audio/linux/audio_manager_linux.h"
|
||||
#elif defined(OS_OPENBSD)
|
||||
#include "media/audio/openbsd/audio_manager_openbsd.h"
|
11
www/chromium/files/patch-media__audio__pulse__pulse_output.h
Normal file
11
www/chromium/files/patch-media__audio__pulse__pulse_output.h
Normal file
|
@ -0,0 +1,11 @@
|
|||
--- media/audio/pulse/pulse_output.h.orig 2012-02-05 15:04:15.000000000 +0200
|
||||
+++ media/audio/pulse/pulse_output.h 2012-02-05 15:11:25.000000000 +0200
|
||||
@@ -31,7 +31,7 @@
|
||||
class SeekableBuffer;
|
||||
}
|
||||
|
||||
-#if defined(OS_LINUX)
|
||||
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
|
||||
class AudioManagerLinux;
|
||||
typedef AudioManagerLinux AudioManagerPulse;
|
||||
#elif defined(OS_OPENBSD)
|
|
@ -1,24 +1,6 @@
|
|||
--- media/media.gyp.orig 2011-11-01 10:42:28.000000000 +0200
|
||||
+++ media/media.gyp 2011-11-22 00:34:45.000000000 +0200
|
||||
@@ -293,7 +293,7 @@
|
||||
],
|
||||
},
|
||||
'conditions': [
|
||||
- ['OS=="linux"', {
|
||||
+ ['OS=="linux" or OS=="freebsd"', {
|
||||
'conditions': [
|
||||
['use_pulseaudio == 1', {
|
||||
'link_settings': {
|
||||
@@ -479,7 +479,7 @@
|
||||
],
|
||||
},
|
||||
}],
|
||||
- [ 'OS=="linux"', {
|
||||
+ [ 'OS=="linux" or OS=="freebsd"', {
|
||||
'variables': {
|
||||
'conditions': [
|
||||
[ 'target_arch=="ia32"', {
|
||||
@@ -765,7 +765,7 @@
|
||||
--- media/media.gyp.orig 2012-01-18 11:11:21.000000000 +0200
|
||||
+++ media/media.gyp 2012-01-29 19:28:14.000000000 +0200
|
||||
@@ -804,7 +804,7 @@
|
||||
},
|
||||
],
|
||||
}],
|
||||
|
|
|
@ -1,24 +0,0 @@
|
|||
--- net/base/dnsrr_resolver.cc.orig 2011-01-19 12:11:29.000000000 +0100
|
||||
+++ net/base/dnsrr_resolver.cc 2011-01-21 20:49:12.000000000 +0100
|
||||
@@ -4,10 +4,6 @@
|
||||
|
||||
#include "net/base/dnsrr_resolver.h"
|
||||
|
||||
-#if defined(OS_POSIX)
|
||||
-#include <resolv.h>
|
||||
-#endif
|
||||
-
|
||||
#if defined(OS_WIN)
|
||||
#include <windns.h>
|
||||
#endif
|
||||
@@ -23,6 +19,10 @@
|
||||
#include "net/base/dns_reload_timer.h"
|
||||
#include "net/base/dns_util.h"
|
||||
#include "net/base/net_errors.h"
|
||||
+#if defined(OS_POSIX)
|
||||
+#include <netinet/in.h>
|
||||
+#include <resolv.h>
|
||||
+#endif
|
||||
|
||||
// Life of a query:
|
||||
//
|
|
@ -1,14 +0,0 @@
|
|||
--- net/dns/dns_config_service_posix.h.orig 2011-10-09 01:34:20.846923374 +0300
|
||||
+++ net/dns/dns_config_service_posix.h 2011-10-09 01:35:52.752414016 +0300
|
||||
@@ -6,6 +6,11 @@
|
||||
#define NET_DNS_DNS_CONFIG_SERVICE_POSIX_H_
|
||||
#pragma once
|
||||
|
||||
+#include "build/build_config.h"
|
||||
+
|
||||
+#if defined(OS_FREEBSD)
|
||||
+#include <netinet/in.h>
|
||||
+#endif
|
||||
#include <resolv.h>
|
||||
|
||||
#include "base/compiler_specific.h"
|
|
@ -1,22 +1,11 @@
|
|||
--- net/net.gyp.orig 2011-06-24 11:30:36.000000000 +0300
|
||||
+++ net/net.gyp 2011-06-28 20:55:27.155810165 +0300
|
||||
@@ -149,8 +149,8 @@
|
||||
'base/network_change_notifier_linux.h',
|
||||
'base/network_change_notifier_mac.cc',
|
||||
'base/network_change_notifier_mac.h',
|
||||
- 'base/network_change_notifier_netlink_linux.cc',
|
||||
- 'base/network_change_notifier_netlink_linux.h',
|
||||
+ #'base/network_change_notifier_netlink_linux.cc',
|
||||
+ #'base/network_change_notifier_netlink_linux.h',
|
||||
'base/network_change_notifier_win.cc',
|
||||
'base/network_change_notifier_win.h',
|
||||
'base/network_config_watcher_mac.cc',
|
||||
@@ -731,7 +731,7 @@
|
||||
'../build/linux/system.gyp:gconf',
|
||||
'../build/linux/system.gyp:gdk',
|
||||
'../build/linux/system.gyp:gio',
|
||||
- '../build/linux/system.gyp:libresolv',
|
||||
+ #'../build/linux/system.gyp:libresolv',
|
||||
],
|
||||
'conditions': [
|
||||
['use_openssl==1', {
|
||||
--- net/net.gyp.orig 2012-01-30 23:30:30.000000000 +0200
|
||||
+++ net/net.gyp 2012-01-30 23:30:57.000000000 +0200
|
||||
@@ -853,7 +853,7 @@
|
||||
'sources!': [
|
||||
'base/network_change_notifier_linux.cc',
|
||||
'base/network_change_notifier_netlink_linux.cc',
|
||||
- 'proxy/proxy_config_service_linux.cc',
|
||||
+# 'proxy/proxy_config_service_linux.cc',
|
||||
],
|
||||
},{
|
||||
'dependencies': [
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
--- skia/ext/vector_platform_device_skia.cc.orig 2011-11-01 10:42:37.000000000 +0200
|
||||
+++ skia/ext/vector_platform_device_skia.cc 2011-11-21 22:28:09.000000000 +0200
|
||||
--- skia/ext/vector_platform_device_skia.cc.orig 2012-01-18 11:11:53.000000000 +0200
|
||||
+++ skia/ext/vector_platform_device_skia.cc 2012-01-29 19:42:26.000000000 +0200
|
||||
@@ -88,7 +88,7 @@
|
||||
SkASSERT(false);
|
||||
return NULL;
|
||||
}
|
||||
-#elif defined(OS_LINUX) || defined(OS_ANDROID)
|
||||
+#elif defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FREEBSD)
|
||||
-#elif defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_OPENBSD)
|
||||
+#elif defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
|
||||
void VectorPlatformDeviceSkia::DrawToNativeContext(
|
||||
PlatformSurface surface, int x, int y, const PlatformRect* src_rect) {
|
||||
// Should never be called on Linux.
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
--- skia/ext/vector_platform_device_skia.h.orig 2011-11-01 10:42:37.000000000 +0200
|
||||
+++ skia/ext/vector_platform_device_skia.h 2011-11-21 22:29:46.000000000 +0200
|
||||
@@ -40,7 +40,7 @@
|
||||
virtual void DrawToNativeContext(CGContext* context, int x, int y,
|
||||
const CGRect* src_rect);
|
||||
virtual CGContextRef GetBitmapContext();
|
||||
-#elif defined(OS_LINUX) || defined(OS_ANDROID)
|
||||
+#elif defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FREEBSD)
|
||||
virtual void DrawToNativeContext(PlatformSurface surface, int x, int y,
|
||||
const PlatformRect* src_rect);
|
||||
#endif
|
||||
--- skia/ext/vector_platform_device_skia.h.orig 2012-01-18 11:11:53.000000000 +0200
|
||||
+++ skia/ext/vector_platform_device_skia.h 2012-01-29 19:44:49.000000000 +0200
|
||||
@@ -43,7 +43,7 @@
|
||||
int y,
|
||||
const CGRect* src_rect) OVERRIDE;
|
||||
virtual CGContextRef GetBitmapContext() OVERRIDE;
|
||||
-#elif defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_OPENBSD)
|
||||
+#elif defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
|
||||
virtual void DrawToNativeContext(PlatformSurface surface,
|
||||
int x,
|
||||
int y,
|
||||
|
|
|
@ -1,11 +0,0 @@
|
|||
--- ./third_party/iccjpeg/iccjpeg.h.orig 2010-12-16 02:11:35.000000000 +0100
|
||||
+++ ./third_party/iccjpeg/iccjpeg.h 2010-12-20 20:15:08.000000000 +0100
|
||||
@@ -17,7 +17,7 @@
|
||||
*/
|
||||
|
||||
#include <stdio.h> /* needed to define "FILE", "NULL" */
|
||||
-#include "jpeglib.h"
|
||||
+#include "../libjpeg/jpeglib.h"
|
||||
|
||||
|
||||
/*
|
|
@ -1,12 +1,11 @@
|
|||
--- third_party/leveldatabase/env_chromium.cc.orig 2011-10-09 00:31:40.173746519 +0300
|
||||
+++ third_party/leveldatabase/env_chromium.cc 2011-10-09 00:33:07.446263098 +0300
|
||||
@@ -30,7 +30,8 @@
|
||||
#include "base/win/win_util.h"
|
||||
#endif
|
||||
|
||||
-#if defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_ANDROID)
|
||||
+#if defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_ANDROID) \
|
||||
+ || defined(OS_FREEBSD)
|
||||
// The following are glibc-specific
|
||||
--- third_party/leveldatabase/env_chromium.cc.orig 2012-01-18 11:12:19.000000000 +0200
|
||||
+++ third_party/leveldatabase/env_chromium.cc 2012-01-29 19:48:55.000000000 +0200
|
||||
@@ -33,7 +33,7 @@
|
||||
namespace {
|
||||
|
||||
#if defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_ANDROID) || \
|
||||
- defined(OS_OPENBSD)
|
||||
+ defined(OS_BSD)
|
||||
// The following are glibc-specific
|
||||
|
||||
size_t fread_unlocked(void *ptr, size_t size, size_t n, FILE *file) {
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
--- third_party/libjingle/source/talk/base/ipaddress.h.orig 2012-01-30 22:44:57.000000000 +0200
|
||||
+++ third_party/libjingle/source/talk/base/ipaddress.h 2012-01-30 22:47:28.000000000 +0200
|
||||
@@ -33,6 +33,9 @@
|
||||
#include <arpa/inet.h>
|
||||
#include <netdb.h>
|
||||
#endif
|
||||
+#ifdef BSD
|
||||
+#include <sys/socket.h>
|
||||
+#endif
|
||||
#ifdef WIN32
|
||||
#include <winsock2.h>
|
||||
#include <ws2tcpip.h>
|
|
@ -1,15 +1,6 @@
|
|||
--- third_party/libvpx/libvpx.gyp.orig 2011-10-09 00:08:25.368469771 +0300
|
||||
+++ third_party/libvpx/libvpx.gyp 2011-10-10 21:41:31.622025374 +0300
|
||||
@@ -77,7 +77,7 @@
|
||||
'source/libvpx/vpx_scale/generic/yv12extend.c',
|
||||
],
|
||||
'conditions': [
|
||||
- ['OS=="mac" or OS=="linux"', {
|
||||
+ ['OS=="mac" or OS=="linux" or OS=="freebsd"', {
|
||||
'asm_obj_extension': 'o',
|
||||
}],
|
||||
['OS=="win"', {
|
||||
@@ -86,7 +86,7 @@
|
||||
--- third_party/libvpx/libvpx.gyp.orig 2012-01-29 21:54:54.000000000 +0200
|
||||
+++ third_party/libvpx/libvpx.gyp 2012-01-29 21:55:14.000000000 +0200
|
||||
@@ -13,7 +13,7 @@
|
||||
],
|
||||
},
|
||||
'conditions': [
|
||||
|
@ -18,33 +9,3 @@
|
|||
'targets': [
|
||||
{
|
||||
# This libvpx target contains both encoder and decoder.
|
||||
@@ -98,7 +98,7 @@
|
||||
'<(SHARED_INTERMEDIATE_DIR)/third_party/libvpx',
|
||||
'yasm_path': '<(PRODUCT_DIR)/yasm',
|
||||
'conditions': [
|
||||
- [ 'OS=="linux" and target_arch=="ia32"', {
|
||||
+ [ '(OS=="linux" or OS=="freebsd") and target_arch=="ia32"', {
|
||||
'yasm_flags': [
|
||||
'-felf32',
|
||||
'-m', 'x86',
|
||||
@@ -106,7 +106,7 @@
|
||||
'-I', 'source/libvpx',
|
||||
],
|
||||
}],
|
||||
- [ 'OS=="linux" and target_arch=="x64"', {
|
||||
+ [ '(OS=="linux" or OS=="freebsd") and target_arch=="x64"', {
|
||||
'yasm_flags': [
|
||||
'-felf64',
|
||||
'-m', 'amd64',
|
||||
@@ -482,6 +482,11 @@
|
||||
'libvpx_path': 'lib/linux/arm',
|
||||
},
|
||||
}],
|
||||
+ ['OS=="freebsd"', {
|
||||
+ 'variables': {
|
||||
+ 'libvpx_path': '/usr/local/lib',
|
||||
+ },
|
||||
+ }],
|
||||
['OS=="win"', {
|
||||
'variables': {
|
||||
'libvpx_path': 'lib/win/ia32',
|
||||
|
|
|
@ -1,11 +0,0 @@
|
|||
--- third_party/openssl/openssl.gyp.orig 2011-11-21 22:53:37.000000000 +0200
|
||||
+++ third_party/openssl/openssl.gyp 2011-11-21 22:54:53.000000000 +0200
|
||||
@@ -576,7 +576,7 @@
|
||||
'openssl/engines/e_ubsec.c',
|
||||
],
|
||||
'conditions': [
|
||||
- ['OS=="linux"', {
|
||||
+ ['OS=="linux" or OS=="freebsd"', {
|
||||
'defines': [
|
||||
# ENGINESDIR must be defined if OPENSSLDIR is.
|
||||
'ENGINESDIR="/dev/null"',
|
|
@ -1,11 +0,0 @@
|
|||
--- third_party/skia/include/core/SkPreConfig.h.orig 2011-11-01 10:43:44.000000000 +0200
|
||||
+++ third_party/skia/include/core/SkPreConfig.h 2011-11-21 22:31:26.000000000 +0200
|
||||
@@ -30,7 +30,7 @@
|
||||
#define SK_BUILD_FOR_WIN32
|
||||
#elif defined(__SYMBIAN32__)
|
||||
#define SK_BUILD_FOR_WIN32
|
||||
- #elif defined(linux) || defined(__OpenBSD_)
|
||||
+ #elif defined(linux) || defined(__OpenBSD_) || defined(__FreeBSD__)
|
||||
#define SK_BUILD_FOR_UNIX
|
||||
#elif TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR
|
||||
#define SK_BUILD_FOR_IOS
|
|
@ -1,18 +0,0 @@
|
|||
--- third_party/yasm/yasm_compile.gypi.orig 2011-11-22 00:07:26.000000000 +0200
|
||||
+++ third_party/yasm/yasm_compile.gypi 2011-11-22 00:08:10.000000000 +0200
|
||||
@@ -36,13 +36,13 @@
|
||||
}],
|
||||
|
||||
# Define yasm_flags that pass into YASM.
|
||||
- [ 'OS=="linux" and target_arch=="ia32"', {
|
||||
+ [ '(OS=="linux" or OS=="freebsd") and target_arch=="ia32"', {
|
||||
'yasm_flags': [
|
||||
'-felf32',
|
||||
'-m', 'x86',
|
||||
],
|
||||
}],
|
||||
- [ 'OS=="linux" and target_arch=="x64"', {
|
||||
+ [ '(OS=="linux" or OS=="freebsd") and target_arch=="x64"', {
|
||||
'yasm_flags': [
|
||||
'-DPIC',
|
||||
'-felf64',
|
|
@ -1,11 +0,0 @@
|
|||
--- tools/gyp/pylib/gyp/__init__.py.orig 2011-09-30 10:20:48.000000000 +0200
|
||||
+++ tools/gyp/pylib/gyp/__init__.py 2011-10-06 00:20:12.000000000 +0200
|
||||
@@ -332,6 +332,8 @@
|
||||
'cygwin': 'msvs',
|
||||
'freebsd7': 'make',
|
||||
'freebsd8': 'make',
|
||||
+ 'freebsd9': 'make',
|
||||
+ 'freebsd10': 'make',
|
||||
'linux2': 'make',
|
||||
'linux3': 'make',
|
||||
'openbsd4': 'make',
|
|
@ -210,6 +210,19 @@ bin/chrome
|
|||
%%DATADIR%%/resources/inspector/Images/warningOrangeDot.png
|
||||
%%DATADIR%%/resources/inspector/Images/warningsErrors.png
|
||||
%%DATADIR%%/resources/inspector/ScriptFormatterWorker.js
|
||||
%%DATADIR%%/resources/inspector/resourcesPanel.css
|
||||
%%DATADIR%%/resources/inspector/heapProfiler.css
|
||||
%%DATADIR%%/resources/inspector/elementsPanel.css
|
||||
%%DATADIR%%/resources/inspector/textPrompt.css
|
||||
%%DATADIR%%/resources/inspector/splitView.css
|
||||
%%DATADIR%%/resources/inspector/resourceView.css
|
||||
%%DATADIR%%/resources/inspector/panelEnablerView.css
|
||||
%%DATADIR%%/resources/inspector/networkPanel.css
|
||||
%%DATADIR%%/resources/inspector/textViewer.css
|
||||
%%DATADIR%%/resources/inspector/profilesPanel.css
|
||||
%%DATADIR%%/resources/inspector/auditsPanel.css
|
||||
%%DATADIR%%/resources/inspector/timelinePanel.css
|
||||
%%DATADIR%%/resources/inspector/scriptsPanel.css
|
||||
%%DATADIR%%/resources/inspector/dataGrid.css
|
||||
%%DATADIR%%/resources/inspector/inspectorCommon.css
|
||||
%%DATADIR%%/resources/inspector/networkLogView.css
|
||||
|
|
Loading…
Reference in a new issue