summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--www/chromium/Makefile66
-rw-r--r--www/chromium/distinfo4
-rw-r--r--www/chromium/files/patch-app__app_base.gypi20
-rw-r--r--www/chromium/files/patch-app__gfx__gl__gl_bindings.h38
-rw-r--r--www/chromium/files/patch-app__gfx__gl__gl_context_egl.cc20
-rw-r--r--www/chromium/files/patch-app__surface__transport_dib.h44
-rw-r--r--www/chromium/files/patch-app__surface__transport_dib_freebsd.cc99
-rw-r--r--www/chromium/files/patch-base__base.gyp16
-rw-r--r--www/chromium/files/patch-base__base.gypi36
-rw-r--r--www/chromium/files/patch-base__debug__debugger_posix.cc48
-rw-r--r--www/chromium/files/patch-base__debug__leak_annotations.h11
-rw-r--r--www/chromium/files/patch-base__file_util_posix.cc14
-rw-r--r--www/chromium/files/patch-base__linux_util.cc33
-rw-r--r--www/chromium/files/patch-base__logging.h39
-rw-r--r--www/chromium/files/patch-base__process_util.h41
-rw-r--r--www/chromium/files/patch-base__process_util_freebsd.cc317
-rw-r--r--www/chromium/files/patch-base__process_util_posix.cc16
-rw-r--r--www/chromium/files/patch-base__sys_info_freebsd.cc24
-rw-r--r--www/chromium/files/patch-base__sys_info_posix.cc11
-rw-r--r--www/chromium/files/patch-build__build_config.h17
-rw-r--r--www/chromium/files/patch-build__common.gypi40
-rw-r--r--www/chromium/files/patch-build__features_override.gypi11
-rw-r--r--www/chromium/files/patch-build__linux__python_arch.sh22
-rw-r--r--www/chromium/files/patch-chrome__app__chrome_exe_main_gtk.cc34
-rw-r--r--www/chromium/files/patch-chrome__app__generated_resources.grd38
-rw-r--r--www/chromium/files/patch-chrome__browser__about_flags.cc11
-rw-r--r--www/chromium/files/patch-chrome__browser__browser_about_handler.cc47
-rw-r--r--www/chromium/files/patch-chrome__browser__browser_child_process_host.cc14
-rw-r--r--www/chromium/files/patch-chrome__browser__child_process_launcher.cc123
-rw-r--r--www/chromium/files/patch-chrome__browser__file_path_watcher__file_path_watcher_stub.cc11
-rw-r--r--www/chromium/files/patch-chrome__browser__memory_details.cc29
-rw-r--r--www/chromium/files/patch-chrome__browser__memory_purger.cc11
-rw-r--r--www/chromium/files/patch-chrome__browser__net__connection_tester.cc11
-rw-r--r--www/chromium/files/patch-chrome__browser__notifications__balloon_collection_impl.h11
-rw-r--r--www/chromium/files/patch-chrome__browser__process_singleton.h11
-rw-r--r--www/chromium/files/patch-chrome__browser__renderer_host__browser_render_process_host.cc11
-rw-r--r--www/chromium/files/patch-chrome__browser__renderer_host__mock_render_process_host.cc11
-rw-r--r--www/chromium/files/patch-chrome__browser__renderer_host__render_message_filter.cc20
-rw-r--r--www/chromium/files/patch-chrome__browser__renderer_host__render_sandbox_host_linux.cc15
-rw-r--r--www/chromium/files/patch-chrome__browser__renderer_host__render_widget_helper.cc20
-rw-r--r--www/chromium/files/patch-chrome__browser__renderer_host__render_widget_helper.h29
-rw-r--r--www/chromium/files/patch-chrome__browser__renderer_host__render_widget_host_unittest.cc11
-rw-r--r--www/chromium/files/patch-chrome__browser__shell_integration_linux.cc19
-rw-r--r--www/chromium/files/patch-chrome__browser__shell_integration_unittest.cc19
-rw-r--r--www/chromium/files/patch-chrome__browser__sync__engine__syncer_thread.cc29
-rw-r--r--www/chromium/files/patch-chrome__browser__sync__engine__syncer_thread.h20
-rw-r--r--www/chromium/files/patch-chrome__browser__sync__syncable__directory_backing_store.cc18
-rw-r--r--www/chromium/files/patch-chrome__browser__tab_contents__tab_contents.cc20
-rw-r--r--www/chromium/files/patch-chrome__browser__task_manager__task_manager_resource_providers.cc11
-rw-r--r--www/chromium/files/patch-chrome__browser__ui__browser.cc47
-rw-r--r--www/chromium/files/patch-chrome__browser__ui__toolbar__wrench_menu_model.cc20
-rw-r--r--www/chromium/files/patch-chrome__browser__ui__views__accessible_view_helper.cc11
-rw-r--r--www/chromium/files/patch-chrome__browser__ui__views__accessible_view_helper.h20
-rw-r--r--www/chromium/files/patch-chrome__browser__ui__views__create_application_shortcut_view.cc11
-rw-r--r--www/chromium/files/patch-chrome__browser__ui__views__download_item_view.cc20
-rw-r--r--www/chromium/files/patch-chrome__browser__ui__views__dropdown_bar_host.cc20
-rw-r--r--www/chromium/files/patch-chrome__browser__ui__views__extensions__extension_popup.cc20
-rw-r--r--www/chromium/files/patch-chrome__browser__ui__views__extensions__extension_view.cc11
-rw-r--r--www/chromium/files/patch-chrome__browser__ui__views__find_bar_view.cc34
-rw-r--r--www/chromium/files/patch-chrome__browser__ui__views__find_bar_view.h11
-rw-r--r--www/chromium/files/patch-chrome__browser__ui__views__frame__app_panel_browser_frame_view.cc11
-rw-r--r--www/chromium/files/patch-chrome__browser__ui__views__frame__browser_view.cc65
-rw-r--r--www/chromium/files/patch-chrome__browser__ui__views__frame__browser_view_layout.cc11
-rw-r--r--www/chromium/files/patch-chrome__browser__ui__views__frame__opaque_browser_frame_view.cc11
-rw-r--r--www/chromium/files/patch-chrome__browser__ui__views__fullscreen_exit_bubble.cc38
-rw-r--r--www/chromium/files/patch-chrome__browser__ui__views__fullscreen_exit_bubble.h20
-rw-r--r--www/chromium/files/patch-chrome__browser__ui__views__info_bubble.cc47
-rw-r--r--www/chromium/files/patch-chrome__browser__ui__views__info_bubble.h38
-rw-r--r--www/chromium/files/patch-chrome__browser__ui__views__location_bar__location_bar_view.cc11
-rw-r--r--www/chromium/files/patch-chrome__browser__ui__views__notifications__balloon_view.cc11
-rw-r--r--www/chromium/files/patch-chrome__browser__ui__views__notifications__balloon_view_host.cc29
-rw-r--r--www/chromium/files/patch-chrome__browser__ui__views__tabs__dragged_tab_view.cc11
-rw-r--r--www/chromium/files/patch-chrome__browser__ui__views__tabs__dragged_tab_view.h20
-rw-r--r--www/chromium/files/patch-chrome__browser__ui__views__tabs__tab_strip.cc11
-rw-r--r--www/chromium/files/patch-chrome__browser__ui__views__tabs__tab_strip.h11
-rw-r--r--www/chromium/files/patch-chrome__browser__web_applications__web_app.cc23
-rw-r--r--www/chromium/files/patch-chrome__browser__zygote_host_linux.cc78
-rw-r--r--www/chromium/files/patch-chrome__browser__zygote_host_linux.h12
-rw-r--r--www/chromium/files/patch-chrome__browser__zygote_main_linux.cc59
-rw-r--r--www/chromium/files/patch-chrome__chrome.gyp40
-rw-r--r--www/chromium/files/patch-chrome__chrome_browser.gypi49
-rw-r--r--www/chromium/files/patch-chrome__chrome_renderer.gypi17
-rw-r--r--www/chromium/files/patch-chrome__chrome_tests.gypi179
-rw-r--r--www/chromium/files/patch-chrome__common__chrome_constants.cc20
-rw-r--r--www/chromium/files/patch-chrome__common__chrome_paths.cc11
-rw-r--r--www/chromium/files/patch-chrome__common__chrome_switches.cc11
-rw-r--r--www/chromium/files/patch-chrome__common__chrome_switches.h11
-rw-r--r--www/chromium/files/patch-chrome__common__gpu_messages_internal.h11
-rw-r--r--www/chromium/files/patch-chrome__common__multi_process_lock.h11
-rw-r--r--www/chromium/files/patch-chrome__common__native_web_keyboard_event.h11
-rw-r--r--www/chromium/files/patch-chrome__common__plugin_messages.cc38
-rw-r--r--www/chromium/files/patch-chrome__common__plugin_messages.h11
-rw-r--r--www/chromium/files/patch-chrome__common__render_messages_internal.h11
-rw-r--r--www/chromium/files/patch-chrome__common__set_process_title_linux.cc19
-rw-r--r--www/chromium/files/patch-chrome__common__set_process_title_linux.h20
-rw-r--r--www/chromium/files/patch-chrome__default_plugin__default_plugin.gyp11
-rw-r--r--www/chromium/files/patch-chrome__gpu__gpu_channel.cc11
-rw-r--r--www/chromium/files/patch-chrome__gpu__x_util.h19
-rw-r--r--www/chromium/files/patch-chrome__plugin__plugin_main_linux.cc18
-rw-r--r--www/chromium/files/patch-chrome__plugin__plugin_thread.cc20
-rw-r--r--www/chromium/files/patch-chrome__renderer__mock_render_thread.cc20
-rw-r--r--www/chromium/files/patch-chrome__renderer__mock_render_thread.h11
-rw-r--r--www/chromium/files/patch-chrome__renderer__pepper_devices.cc11
-rw-r--r--www/chromium/files/patch-chrome__renderer__pepper_plugin_delegate_impl.cc38
-rw-r--r--www/chromium/files/patch-chrome__renderer__pepper_scrollbar_widget.h11
-rw-r--r--www/chromium/files/patch-chrome__renderer__render_process_impl.cc29
-rw-r--r--www/chromium/files/patch-chrome__renderer__render_thread.cc20
-rw-r--r--www/chromium/files/patch-chrome__renderer__render_view.h11
-rw-r--r--www/chromium/files/patch-chrome__renderer__render_widget.cc11
-rw-r--r--www/chromium/files/patch-chrome__renderer__renderer_glue.cc20
-rw-r--r--www/chromium/files/patch-chrome__renderer__renderer_main.cc20
-rw-r--r--www/chromium/files/patch-chrome__renderer__renderer_main_platform_delegate_linux.cc11
-rw-r--r--www/chromium/files/patch-chrome__renderer__renderer_webkitclient_impl.cc29
-rw-r--r--www/chromium/files/patch-chrome__renderer__webplugin_delegate_pepper.cc116
-rw-r--r--www/chromium/files/patch-chrome__renderer__webplugin_delegate_pepper.h20
-rw-r--r--www/chromium/files/patch-chrome__renderer__webplugin_delegate_proxy.cc62
-rw-r--r--www/chromium/files/patch-chrome__renderer__webplugin_delegate_proxy.h20
-rw-r--r--www/chromium/files/patch-chrome__test__automation__automation_proxy_uitest.cc20
-rw-r--r--www/chromium/files/patch-chrome__test__chrome_process_util.cc23
-rw-r--r--www/chromium/files/patch-chrome__test__page_cycler__page_cycler_test.cc11
-rw-r--r--www/chromium/files/patch-chrome__test__reliability__page_load_test.cc11
-rw-r--r--www/chromium/files/patch-chrome__test__startup__feature_startup_test.cc11
-rw-r--r--www/chromium/files/patch-chrome__test__testing_browser_process.h11
-rw-r--r--www/chromium/files/patch-chrome__test__testing_profile.cc20
-rw-r--r--www/chromium/files/patch-chrome__test__ui__sunspider_uitest.cc11
-rw-r--r--www/chromium/files/patch-chrome__test__ui__ui_layout_test.cc11
-rw-r--r--www/chromium/files/patch-chrome__test__ui__ui_test.cc11
-rw-r--r--www/chromium/files/patch-chrome__test__ui__v8_benchmark_uitest.cc11
-rw-r--r--www/chromium/files/patch-chrome__test__ui_test_utils.cc11
-rw-r--r--www/chromium/files/patch-chrome__test__url_fetch_test__url_fetch_test.cc11
-rw-r--r--www/chromium/files/patch-chrome__tools__build__linux__sed.sh8
-rw-r--r--www/chromium/files/patch-chrome__worker__worker_uitest.cc13
-rw-r--r--www/chromium/files/patch-chromium5146
-rw-r--r--www/chromium/files/patch-clang103
-rw-r--r--www/chromium/files/patch-codecs187
-rw-r--r--www/chromium/files/patch-gfx__native_widget_types.h11
-rw-r--r--www/chromium/files/patch-gfx__scoped_image.h20
-rw-r--r--www/chromium/files/patch-gpu__demos__demos.gyp29
-rw-r--r--www/chromium/files/patch-gpu__demos__framework__main_exe.cc26
-rw-r--r--www/chromium/files/patch-gpu__demos__framework__main_pepper.cc48
-rw-r--r--www/chromium/files/patch-gpu__gpu.gyp11
-rw-r--r--www/chromium/files/patch-ipc__ipc.gyp11
-rw-r--r--www/chromium/files/patch-ipc__sync_socket_unittest.cc14
-rw-r--r--www/chromium/files/patch-media__base__media_switches.cc11
-rw-r--r--www/chromium/files/patch-media__base__media_switches.h11
-rw-r--r--www/chromium/files/patch-native_client__build__common.gypi11
-rw-r--r--www/chromium/files/patch-native_client__src__shared__platform__platform.gyp11
-rw-r--r--www/chromium/files/patch-native_client__src__trusted__debug_stub__debug_stub.gyp20
-rw-r--r--www/chromium/files/patch-native_client__src__trusted__service_runtime__service_runtime.gyp11
-rw-r--r--www/chromium/files/patch-net__base__dnsrr_resolver.cc24
-rw-r--r--www/chromium/files/patch-net__base__host_resolver_impl.cc34
-rw-r--r--www/chromium/files/patch-net__base__host_resolver_proc.cc35
-rw-r--r--www/chromium/files/patch-net__base__listen_socket_unittest.cc12
-rw-r--r--www/chromium/files/patch-net__base__net_util.cc13
-rw-r--r--www/chromium/files/patch-net__base__network_change_notifier.cc10
-rw-r--r--www/chromium/files/patch-net__net.gyp51
-rw-r--r--www/chromium/files/patch-net__proxy__proxy_config_service_linux.cc189
-rw-r--r--www/chromium/files/patch-net__proxy__proxy_service.cc19
-rw-r--r--www/chromium/files/patch-ppapi__proxy__image_data.cc11
-rw-r--r--www/chromium/files/patch-printing__printing.gyp30
-rw-r--r--www/chromium/files/patch-remoting__remoting.gyp42
-rw-r--r--www/chromium/files/patch-third_party__WebKit__Source__WebCore__platform__UUID.cpp35
-rw-r--r--www/chromium/files/patch-third_party__WebKit__Source__WebCore__platform__chromium__PlatformBridge.h11
-rw-r--r--www/chromium/files/patch-third_party__WebKit__Source__WebCore__platform__sql__chromium__SQLiteFileSystemChromiumPosix.cpp11
-rw-r--r--www/chromium/files/patch-third_party__WebKit__Source__WebKit__chromium__src__PlatformBridge.cpp11
-rw-r--r--www/chromium/files/patch-third_party__ffmpeg__config__Chrome__freebsd__ia32__config.h963
-rw-r--r--www/chromium/files/patch-third_party__ffmpeg__config__Chrome__freebsd__x64__config.h963
-rw-r--r--www/chromium/files/patch-third_party__ffmpeg__config__Chromium__freebsd__ia32__config.h963
-rw-r--r--www/chromium/files/patch-third_party__ffmpeg__config__Chromium__freebsd__x64__config.h963
-rw-r--r--www/chromium/files/patch-third_party__ffmpeg__ffmpeg.gyp11
-rw-r--r--www/chromium/files/patch-third_party__ffmpeg__patched-ffmpeg-mt__libavutil_mem.c11
-rw-r--r--www/chromium/files/patch-third_party__iccjpeg__iccjpeg.h11
-rw-r--r--www/chromium/files/patch-third_party__icu__icu.gyp20
-rw-r--r--www/chromium/files/patch-third_party__icu__public__common__unicode__pfreebsd.h316
-rw-r--r--www/chromium/files/patch-third_party__icu__public__common__unicode__umachine.h11
-rw-r--r--www/chromium/files/patch-third_party__libevent__freebsd__config.h269
-rw-r--r--www/chromium/files/patch-third_party__libevent__freebsd__event-config.h265
-rw-r--r--www/chromium/files/patch-third_party__libevent__libevent.gyp23
-rw-r--r--www/chromium/files/patch-third_party__libvpx__libvpx.gyp14
-rw-r--r--www/chromium/files/patch-third_party__mesa__mesa.gyp11
-rw-r--r--www/chromium/files/patch-third_party__skia__include__core__SkPreConfig.h11
-rw-r--r--www/chromium/files/patch-third_party__tcmalloc__chromium__src__config_freebsd.h237
-rw-r--r--www/chromium/files/patch-thirdparty1102
-rw-r--r--www/chromium/files/patch-tools__gyp__pylib__gyp____init__.py10
-rw-r--r--www/chromium/files/patch-tools__gyp__pylib__gyp__generator__make.py32
-rw-r--r--www/chromium/files/patch-tools__gyp__test__additional-targets__src__dir1__actions.gyp11
-rw-r--r--www/chromium/files/patch-tools__gyp__test__library__src__library.gyp11
-rw-r--r--www/chromium/files/patch-ui__base__resource__resource_bundle.cc11
-rw-r--r--www/chromium/files/patch-v8__src__platform-freebsd.cc91
-rw-r--r--www/chromium/files/patch-v8__src__x64481
-rw-r--r--www/chromium/files/patch-webkit__build__webkit_version.py37
-rw-r--r--www/chromium/files/patch-webkit__glue__webkit_glue.h11
-rw-r--r--www/chromium/files/patch-webkit__glue__webkitclient_impl.cc20
-rw-r--r--www/chromium/files/patch-webkit__glue__webkitclient_impl.h20
-rw-r--r--www/chromium/files/patch-webkit__plugins__ppapi__ppb_flash_impl.h11
-rw-r--r--www/chromium/files/patch-webkit__support__test_webkit_client.cc11
-rw-r--r--www/chromium/files/patch-webkit__support__webkit_support_glue.cc11
-rw-r--r--www/chromium/pkg-message4
-rw-r--r--www/chromium/pkg-plist33
199 files changed, 10134 insertions, 6590 deletions
diff --git a/www/chromium/Makefile b/www/chromium/Makefile
index da6885f35729..c6c8966f5cef 100644
--- a/www/chromium/Makefile
+++ b/www/chromium/Makefile
@@ -7,11 +7,12 @@
PORTNAME= chromium
DISTVERSIONPREFIX= courgette-redacted-
-DISTVERSION= 6.0.472.63
+DISTVERSION= 10.0.648.204
CATEGORIES= www
MASTER_SITES= http://download.goodking.org/downloads/ \
ftp://rene-ladan.nl/pub/distfiles/ \
- CRITICAL
+ http://files.etoilebsd.net/goodking/
+DISTNAME= chromium-${DISTVERSIONPREFIX}${DISTVERSION}
MAINTAINER= chromium@FreeBSD.org
COMMENT= A mostly BSD-licensed web browser based on WebKit and Gtk+
@@ -25,7 +26,6 @@ BUILD_DEPENDS= ${LOCALBASE}/bin/flex:${PORTSDIR}/textproc/flex \
# minimal version of nss, LIB_DEPENDS does not enforce this
LIB_DEPENDS= execinfo.1:${PORTSDIR}/devel/libexecinfo \
- avformat:${PORTSDIR}/multimedia/ffmpeg \
cairo.2:${PORTSDIR}/graphics/cairo \
dbus-1.3:${PORTSDIR}/devel/dbus \
dbus-glib-1.2:${PORTSDIR}/devel/dbus-glib \
@@ -35,8 +35,6 @@ LIB_DEPENDS= execinfo.1:${PORTSDIR}/devel/libexecinfo \
nss3.1:${PORTSDIR}/security/nss \
gnome-keyring.0:${PORTSDIR}/security/libgnome-keyring
-FORBIDDEN= several security vulnerabilities
-
RUN_DEPENDS= ${LOCALBASE}/lib/alsa-lib/libasound_module_pcm_oss.so:${PORTSDIR}/audio/alsa-plugins \
${LOCALBASE}/lib/X11/fonts/Droid/fonts.dir:${PORTSDIR}/x11-fonts/droid-fonts-ttf
@@ -47,7 +45,7 @@ USE_PYTHON= 2.6+ # only needed at build time
USE_PERL5_BUILD=yes
USE_GMAKE= yes
MAN1= chrome.1
-USE_XORG= scrnsaverproto xtst
+USE_XORG= scrnsaverproto x11 xproto xtst
USE_GNOME= glib20 gtk20 dconf libxslt
LICENSE_COMB= multi
LICENSE= BSD LGPL21 MPL
@@ -64,22 +62,31 @@ ALL_TARGET= chrome
#GYP_DEFINES+= use_system_libjpeg=1
#GYP_DEFINES+= use_system_libpng=1
GYP_DEFINES+= use_system_libxml=1
+GYP_DEFINES+= use_system_ffmpeg=0
#GYP_DEFINES+= use_system_sqlite=0
+GYP_DEFINES+= use_system_yasm=1
#GYP_DEFINES+= use_system_zlib=1
-
-.include <bsd.port.options.mk>
+GYP_DEFINES+= python_ver=${PYTHON_VER}
OPTIONS= CODECS "Compile and enable patented codecs like H.264" off \
GCONF "Use gconf2 for preferences" on \
SSE2 "Use SSE2, disable this for PIII or older" on \
VPX "Use system libvpx for VP8 codec" on
-.include <bsd.port.pre.mk>
+.include <bsd.port.options.mk>
+
+.if ${OSVERSION} < 900033
+BUILD_DEPENDS+= ${LOCALBASE}/bin/as:${PORTSDIR}/devel/binutils
+CONFIGURE_ENV+= COMPILER_PATH=${LOCALBASE}/bin
+MAKE_ENV+= COMPILER_PATH=${LOCALBASE}/bin
+.endif
.if defined(WITH_CODECS)
GYP_DEFINES+= ffmpeg_branding=Chrome
+GYP_DEFINES+= use_proprietary_codecs=1
.else
GYP_DEFINES+= ffmpeg_branding=Chromium
+GYP_DEFINES+= use_proprietary_codecs=0
.endif
.if defined(WITH_GCONF)
@@ -101,11 +108,11 @@ GYP_DEFINES+= use_system_vpx=1
BUILDTYPE= Release
.else
BUILDTYPE= Debug
+STRIP=
.endif
MAKE_ENV+= BUILDTYPE=${BUILDTYPE}
MAKE_JOBS_SAFE= yes
-STRIP=
pre-everything::
@${ECHO_MSG}
@@ -121,21 +128,33 @@ post-patch:
@${REINPLACE_CMD} -e "s|/usr/local|${LOCALBASE}|" \
${WRKSRC}/base/base.gypi \
${WRKSRC}/build/common.gypi \
- ${WRKSRC}/third_party/ffmpeg/ffmpeg.gyp \
- ${WRKSRC}/third_party/icu/public/common/unicode/pfreebsd.h \
- ${WRKSRC}/third_party/tcmalloc/chromium/src/config_freebsd.h \
- ${WRKSRC}/third_party/WebKit/WebCore/plugins/PluginDatabase.cpp \
+ ${WRKSRC}/third_party/libvpx/libvpx.gyp \
+ ${WRKSRC}/third_party/WebKit/Source/WebCore/plugins/PluginDatabase.cpp \
${WRKSRC}/v8/tools/gyp/v8.gyp
+ @${REINPLACE_CMD} -e "s|/usr/include/vpx|${LOCALBASE}/include|" \
+ ${WRKSRC}/third_party/ffmpeg/ffmpeg.gyp
+ @${REINPLACE_CMD} -e "s|linux|freebsd|" \
+ ${WRKSRC}/tools/gyp/pylib/gyp/generator/make.py
@${REINPLACE_CMD} -e 's|/usr/bin/gcc|${CC}|' \
- ${WRKSRC}/third_party/WebKit/WebCore/bindings/scripts/IDLParser.pm \
- ${WRKSRC}/third_party/WebKit/WebCore/dom/make_names.pl
+ ${WRKSRC}/third_party/WebKit/Source/WebCore/bindings/scripts/IDLParser.pm \
+ ${WRKSRC}/third_party/WebKit/Source/WebCore/dom/make_names.pl
@${REINPLACE_CMD} -e "s|'flex'|'${LOCALBASE}/bin/flex'|" \
${WRKSRC}/third_party/angle/src/build_angle.gyp \
- ${WRKSRC}/third_party/WebKit/WebCore/WebCore.gyp/scripts/action_maketokenizer.py
+ ${WRKSRC}/third_party/WebKit/Source/WebCore/WebCore.gyp/scripts/action_maketokenizer.py
@${REINPLACE_CMD} -e 's|gperf --key-positions|${LOCALBASE}/bin/gperf --key-positions|' \
- ${WRKSRC}/third_party/WebKit/WebCore/css/makeprop.pl \
- ${WRKSRC}/third_party/WebKit/WebCore/css/makevalues.pl \
- ${WRKSRC}/third_party/WebKit/WebCore/make-hash-tools.pl
+ ${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
+ # kludges just to make it progress for now
+ @${REINPLACE_CMD} -e "s|/usr/lib|${LOCALBASE}/lib|" \
+ -e "s|'python_ver%': '2.5'|'python_ver%': '2.6'|" \
+ -e "s|.so.1.0|.so.1|" \
+ ${WRKSRC}/build/common.gypi
+ @${REINPLACE_CMD} -e "s|'-ldl',|'-lc',|" \
+ ${WRKSRC}/app/app_base.gypi \
+ ${WRKSRC}/build/linux/system.gyp \
+ ${WRKSRC}/chrome/chrome_browser.gypi \
+ ${WRKSRC}/media/media.gyp
do-configure:
cd ${WRKSRC} && \
@@ -155,4 +174,9 @@ do-install:
cd ${WRKSRC}/out/${BUILDTYPE} && ${COPYTREE_SHARE} "locales resources" ${DATADIR}
${LN} -sf ${DATADIR}/chrome ${PREFIX}/bin/
-.include <bsd.port.post.mk>
+post-install:
+.if ${OSVERSION} < 900000
+@${CAT} ${PKGMESSAGE}
+.endif
+
+.include <bsd.port.mk>
diff --git a/www/chromium/distinfo b/www/chromium/distinfo
index 0866dac769b2..8bc65dce2f51 100644
--- a/www/chromium/distinfo
+++ b/www/chromium/distinfo
@@ -1,2 +1,2 @@
-SHA256 (chromium-courgette-redacted-6.0.472.63.tar.xz) = 94ffd913f3724570eaa4bc9c61b8c78e0fd66c6d3e4a39fe4c27bcd075c0a455
-SIZE (chromium-courgette-redacted-6.0.472.63.tar.xz) = 95188168
+SHA256 (chromium-courgette-redacted-10.0.648.204.tar.xz) = c3f0de3a7f849e108b5572e2b458c39753f6ee51a37856a5142223b911d7b5e0
+SIZE (chromium-courgette-redacted-10.0.648.204.tar.xz) = 113622144
diff --git a/www/chromium/files/patch-app__app_base.gypi b/www/chromium/files/patch-app__app_base.gypi
new file mode 100644
index 000000000000..7a951d899feb
--- /dev/null
+++ b/www/chromium/files/patch-app__app_base.gypi
@@ -0,0 +1,20 @@
+--- app/app_base.gypi.orig 2011-03-20 22:02:04.362467155 +0200
++++ app/app_base.gypi 2011-03-20 22:02:04.479736529 +0200
+@@ -232,7 +232,7 @@
+ 'surface/io_surface_support_mac.cc',
+ 'surface/io_surface_support_mac.h',
+ 'surface/transport_dib.h',
+- 'surface/transport_dib_linux.cc',
++ 'surface/transport_dib_freebsd.cc',
+ 'surface/transport_dib_mac.cc',
+ 'surface/transport_dib_win.cc',
+ 'win/iat_patch_function.cc',
+@@ -335,7 +335,7 @@
+ ['exclude', '^win/*'],
+ ],
+ }],
+- ['OS=="linux"', {
++ ['OS=="linux" or OS=="freebsd"', {
+ 'sources': [
+ 'gfx/gl/gl_context_egl.cc',
+ 'gfx/gl/gl_context_egl.h',
diff --git a/www/chromium/files/patch-app__gfx__gl__gl_bindings.h b/www/chromium/files/patch-app__gfx__gl__gl_bindings.h
new file mode 100644
index 000000000000..5aa6ac1a7321
--- /dev/null
+++ b/www/chromium/files/patch-app__gfx__gl__gl_bindings.h
@@ -0,0 +1,38 @@
+--- ./app/gfx/gl/gl_bindings.h.orig 2010-12-16 02:11:22.000000000 +0100
++++ ./app/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
diff --git a/www/chromium/files/patch-app__gfx__gl__gl_context_egl.cc b/www/chromium/files/patch-app__gfx__gl__gl_context_egl.cc
new file mode 100644
index 000000000000..2504f387af0e
--- /dev/null
+++ b/www/chromium/files/patch-app__gfx__gl__gl_context_egl.cc
@@ -0,0 +1,20 @@
+--- app/gfx/gl/gl_context_egl.cc.orig 2011-01-26 10:30:13.000000000 +0100
++++ app/gfx/gl/gl_context_egl.cc 2011-01-30 13:55:55.000000000 +0100
+@@ -4,7 +4,7 @@
+
+ #include <EGL/egl.h>
+
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ extern "C" {
+ #include <X11/Xlib.h>
+ }
+@@ -82,7 +82,7 @@
+ if (initialized)
+ return true;
+
+-#ifdef OS_LINUX
++#ifdef OS_LINUX || defined(OS_FREEBSD)
+ EGLNativeDisplayType native_display = XOpenDisplay(NULL);
+ #else
+ EGLNativeDisplayType native_display = EGL_DEFAULT_DISPLAY;
diff --git a/www/chromium/files/patch-app__surface__transport_dib.h b/www/chromium/files/patch-app__surface__transport_dib.h
new file mode 100644
index 000000000000..696a7528f621
--- /dev/null
+++ b/www/chromium/files/patch-app__surface__transport_dib.h
@@ -0,0 +1,44 @@
+--- ./app/surface/transport_dib.h.orig 2010-12-16 02:11:21.000000000 +0100
++++ ./app/surface/transport_dib.h 2010-12-20 20:15:07.000000000 +0100
+@@ -8,7 +8,7 @@
+
+ #include "base/basictypes.h"
+
+-#if defined(OS_WIN) || defined(OS_MACOSX)
++#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_FREEBSD)
+ #include "base/shared_memory.h"
+ #endif
+
+@@ -78,7 +78,7 @@
+ static int fake_handle = 10;
+ return reinterpret_cast<Handle>(fake_handle++);
+ }
+-#elif defined(OS_MACOSX)
++#elif defined(OS_MACOSX) || defined(OS_FREEBSD)
+ typedef base::SharedMemoryHandle Handle;
+ // On Mac, the inode number of the backing file is used as an id.
+ typedef base::SharedMemoryId Id;
+@@ -93,7 +93,7 @@
+ static int fake_handle = 10;
+ return Handle(fake_handle++, false);
+ }
+-#elif defined(USE_X11)
++#elif defined(OS_LINUX)
+ typedef int Handle; // These two ints are SysV IPC shared memory keys
+ typedef int Id;
+
+@@ -171,11 +171,12 @@
+
+ private:
+ TransportDIB();
+-#if defined(OS_WIN) || defined(OS_MACOSX)
++#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_FREEBSD)
+ explicit TransportDIB(base::SharedMemoryHandle dib);
+ base::SharedMemory shared_memory_;
+ uint32 sequence_num_;
+-#elif defined(USE_X11)
++#endif
++#if defined(USE_X11)
+ int key_; // SysV shared memory id
+ void* address_; // mapped address
+ XSharedMemoryId x_shm_; // X id for the shared segment
diff --git a/www/chromium/files/patch-app__surface__transport_dib_freebsd.cc b/www/chromium/files/patch-app__surface__transport_dib_freebsd.cc
new file mode 100644
index 000000000000..bf07072b4438
--- /dev/null
+++ b/www/chromium/files/patch-app__surface__transport_dib_freebsd.cc
@@ -0,0 +1,99 @@
+--- app/surface/transport_dib_freebsd.cc.orig 2011-03-20 22:02:04.374736591 +0200
++++ app/surface/transport_dib_freebsd.cc 2011-03-20 22:02:04.482738307 +0200
+@@ -0,0 +1,96 @@
++// 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 "app/surface/transport_dib.h"
++
++#include <unistd.h>
++#include <sys/stat.h>
++
++#include "base/eintr_wrapper.h"
++#include "base/shared_memory.h"
++#include "base/scoped_ptr.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);
++}
++
++bool TransportDIB::Map() {
++ if (!is_valid(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;
++}
++
++bool TransportDIB::is_valid(Handle dib) {
++ return dib.fd >= 0;
++}
++
++skia::PlatformCanvas* TransportDIB::GetPlatformCanvas(int w, int h) {
++ return new skia::PlatformCanvas(w, h, true,
++ reinterpret_cast<uint8_t*>(memory()));
++}
++
++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_;
++}
diff --git a/www/chromium/files/patch-base__base.gyp b/www/chromium/files/patch-base__base.gyp
new file mode 100644
index 000000000000..6bb673e112eb
--- /dev/null
+++ b/www/chromium/files/patch-base__base.gyp
@@ -0,0 +1,16 @@
+--- ./base/base.gyp.orig 2010-12-16 02:11:49.000000000 +0100
++++ ./base/base.gyp 2010-12-20 20:15:07.000000000 +0100
+@@ -241,6 +241,13 @@
+ ],
+ }],
+ ],
++ 'conditions': [
++ [ 'OS == "freebsd"', {
++ # fdatasync is not implemented on FreeBSD
++ 'sources/': [ ['exclude', '^test/test_file_util_linux.cc$'] ],
++ },
++ ],
++ ],
+ },
+ {
+ 'target_name': 'test_support_base',
diff --git a/www/chromium/files/patch-base__base.gypi b/www/chromium/files/patch-base__base.gypi
new file mode 100644
index 000000000000..bd153b7557b3
--- /dev/null
+++ b/www/chromium/files/patch-base__base.gypi
@@ -0,0 +1,36 @@
+--- base/base.gypi.orig 2011-03-21 21:48:13.059300970 +0200
++++ base/base.gypi 2011-03-21 21:49:30.340376078 +0200
+@@ -157,6 +157,7 @@
+ 'process_posix.cc',
+ 'process_util.cc',
+ 'process_util.h',
++ 'process_util_freebsd.cc',
+ 'process_util_linux.cc',
+ 'process_util_mac.mm',
+ 'process_util_posix.cc',
+@@ -343,11 +344,9 @@
+ 'message_pump_glib_x.cc',
+ ],
+ }],
+- [ 'OS != "linux"', {
++ [ 'OS != "linux" and OS != "freebsd"', {
+ 'sources!': [
+ # Not automatically excluded by the *linux.cc rules.
+- 'gtk_util.cc',
+- 'gtk_util.h',
+ 'linux_util.cc',
+ ],
+ },
+@@ -462,6 +461,12 @@
+ ],
+ }],
+ [ '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',
++ ],
+ 'link_settings': {
+ 'libraries': [
+ '-L/usr/local/lib -lexecinfo',
diff --git a/www/chromium/files/patch-base__debug__debugger_posix.cc b/www/chromium/files/patch-base__debug__debugger_posix.cc
new file mode 100644
index 000000000000..a8a7712c3c63
--- /dev/null
+++ b/www/chromium/files/patch-base__debug__debugger_posix.cc
@@ -0,0 +1,48 @@
+--- base/debug/debugger_posix.cc.orig 2011-02-03 10:01:35.000000000 +0100
++++ base/debug/debugger_posix.cc 2011-02-06 17:07:57.000000000 +0100
+@@ -15,6 +15,7 @@
+ #include <sys/sysctl.h>
+ #endif
+ #include <sys/types.h>
++#include <sys/user.h>
+ #include <unistd.h>
+
+ #include <string>
+@@ -50,7 +51,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
+@@ -88,7 +89,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;
+ }
+
+@@ -135,15 +140,7 @@
+ return false;
+ }
+
+-#elif defined(OS_FREEBSD)
+-
+-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:
diff --git a/www/chromium/files/patch-base__debug__leak_annotations.h b/www/chromium/files/patch-base__debug__leak_annotations.h
new file mode 100644
index 000000000000..bf1a1edbf921
--- /dev/null
+++ b/www/chromium/files/patch-base__debug__leak_annotations.h
@@ -0,0 +1,11 @@
+--- ./base/debug/leak_annotations.h.orig 2010-12-16 02:11:48.000000000 +0100
++++ ./base/debug/leak_annotations.h 2010-12-20 20:15:07.000000000 +0100
+@@ -8,7 +8,7 @@
+
+ #include "build/build_config.h"
+
+-#if defined(OS_LINUX) && defined(USE_HEAPCHECKER)
++#if (defined(OS_LINUX) || defined(OS_FREEBSD)) && defined(USE_HEAPCHECKER)
+
+ #include "third_party/tcmalloc/chromium/src/google/heap-checker.h"
+
diff --git a/www/chromium/files/patch-base__file_util_posix.cc b/www/chromium/files/patch-base__file_util_posix.cc
new file mode 100644
index 000000000000..231f6541e48b
--- /dev/null
+++ b/www/chromium/files/patch-base__file_util_posix.cc
@@ -0,0 +1,14 @@
+--- ./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;
+ }
+
diff --git a/www/chromium/files/patch-base__linux_util.cc b/www/chromium/files/patch-base__linux_util.cc
new file mode 100644
index 000000000000..dd34e0e0e295
--- /dev/null
+++ b/www/chromium/files/patch-base__linux_util.cc
@@ -0,0 +1,33 @@
+--- base/linux_util.cc.orig 2011-03-21 20:43:02.797111222 +0200
++++ base/linux_util.cc 2011-03-21 20:44:28.268111587 +0200
+@@ -133,12 +133,14 @@
+ char g_linux_distro[kDistroSize] =
+ #if defined(OS_CHROMEOS)
+ "CrOS";
++#elif defined(OS_FREEBSD)
++ "FreeBSD";
+ #else // if defined(OS_LINUX)
+ "Unknown";
+ #endif
+
+ std::string GetLinuxDistro() {
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || defined(OS_FREEBSD)
+ return g_linux_distro;
+ #elif defined(OS_LINUX)
+ LinuxDistroHelper* distro_state_singleton = LinuxDistroHelper::GetInstance();
+@@ -194,6 +196,7 @@
+ return true;
+ }
+
++#if defined(OS_LINUX)
+ bool FindProcessHoldingSocket(pid_t* pid_out, ino_t socket_inode) {
+ DCHECK(pid_out);
+ bool already_found = false;
+@@ -293,5 +296,5 @@
+ }
+ return -1;
+ }
+-
++#endif // if defined(OS_LINUX)
+ } // namespace base
diff --git a/www/chromium/files/patch-base__logging.h b/www/chromium/files/patch-base__logging.h
new file mode 100644
index 000000000000..94cc3acaa6ba
--- /dev/null
+++ b/www/chromium/files/patch-base__logging.h
@@ -0,0 +1,39 @@
+--- ./base/logging.h.orig 2010-12-16 02:11:49.000000000 +0100
++++ ./base/logging.h 2010-12-20 20:15:08.000000000 +0100
+@@ -141,6 +141,18 @@
+ // There is also the special severity of DFATAL, which logs FATAL in
+ // debug mode, ERROR in normal mode.
+
++// XXX better comment -- must be before we use << and in global namespace
++// These functions are provided as a convenience for logging, which is where we
++// use streams (it is against Google style to use streams in other places). It
++// is designed to allow you to emit non-ASCII Unicode strings to the log file,
++// which is normally ASCII. It is relatively slow, so try not to use it for
++// common cases. Non-ASCII characters will be converted to UTF-8 by these
++// operators.
++std::ostream& operator<<(std::ostream& out, const wchar_t* wstr);
++inline std::ostream& operator<<(std::ostream& out, const std::wstring& wstr) {
++ return out << wstr.c_str();
++}
++
+ namespace logging {
+
+ // Where to record logging output? A flat file and/or system debug log via
+@@ -857,17 +869,6 @@
+
+ } // namespace logging
+
+-// These functions are provided as a convenience for logging, which is where we
+-// use streams (it is against Google style to use streams in other places). It
+-// is designed to allow you to emit non-ASCII Unicode strings to the log file,
+-// which is normally ASCII. It is relatively slow, so try not to use it for
+-// common cases. Non-ASCII characters will be converted to UTF-8 by these
+-// operators.
+-std::ostream& operator<<(std::ostream& out, const wchar_t* wstr);
+-inline std::ostream& operator<<(std::ostream& out, const std::wstring& wstr) {
+- return out << wstr.c_str();
+-}
+-
+ // The NOTIMPLEMENTED() macro annotates codepaths which have
+ // not been implemented yet.
+ //
diff --git a/www/chromium/files/patch-base__process_util.h b/www/chromium/files/patch-base__process_util.h
new file mode 100644
index 000000000000..6554558d1af9
--- /dev/null
+++ b/www/chromium/files/patch-base__process_util.h
@@ -0,0 +1,41 @@
+--- base/process_util.h.orig 2011-03-21 07:38:40.133112029 +0200
++++ base/process_util.h 2011-03-21 07:51:24.970111144 +0200
+@@ -28,6 +28,10 @@
+ #include <sys/types.h>
+ #endif
+
++#if defined(OS_FREEBSD)
++struct kinfo_proc;
++#endif
++
+ #include <list>
+ #include <string>
+ #include <utility>
+@@ -161,7 +165,7 @@
+ // Win XP SP1 as well.
+ ProcessId GetProcId(ProcessHandle process);
+
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ // Returns the ID for the parent of the given process.
+ ProcessId GetParentProcessId(ProcessHandle process);
+
+@@ -172,7 +176,9 @@
+ // CPU-related ticks. Returns -1 on parse error.
+ // Exposed for testing.
+ int ParseProcStatCPU(const std::string& input);
++#endif
+
++#if defined(OS_LINUX)
+ static const char kAdjustOOMScoreSwitch[] = "--adjust-oom-score";
+
+ // This adjusts /proc/process/oom_adj so the Linux OOM killer will prefer
+@@ -439,7 +445,7 @@
+ #if defined(OS_WIN)
+ HANDLE snapshot_;
+ bool started_iteration_;
+-#elif defined(OS_MACOSX)
++#elif defined(OS_MACOSX) || defined(OS_FREEBSD)
+ std::vector<kinfo_proc> kinfo_procs_;
+ size_t index_of_kinfo_proc_;
+ #elif defined(OS_POSIX)
diff --git a/www/chromium/files/patch-base__process_util_freebsd.cc b/www/chromium/files/patch-base__process_util_freebsd.cc
new file mode 100644
index 000000000000..0f00b7cf91b8
--- /dev/null
+++ b/www/chromium/files/patch-base__process_util_freebsd.cc
@@ -0,0 +1,317 @@
+--- /dev/null 2011-03-21 20:44:00.000000000 +0200
++++ base/process_util_freebsd.cc 2011-03-21 20:47:32.701912810 +0200
+@@ -0,0 +1,314 @@
++// 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() {
++ NOTIMPLEMENTED();
++ return;
++}
++}
diff --git a/www/chromium/files/patch-base__process_util_posix.cc b/www/chromium/files/patch-base__process_util_posix.cc
new file mode 100644
index 000000000000..aca6e21a0304
--- /dev/null
+++ b/www/chromium/files/patch-base__process_util_posix.cc
@@ -0,0 +1,16 @@
+--- ./base/process_util_posix.cc.orig 2010-12-16 02:11:49.000000000 +0100
++++ ./base/process_util_posix.cc 2010-12-20 20:15:08.000000000 +0100
+@@ -102,11 +102,11 @@
+ return status;
+ }
+
+-void StackDumpSignalHandler(int signal, siginfo_t* info, ucontext_t* context) {
++void StackDumpSignalHandler(int signal, siginfo_t* info /*, ucontext_t* context */) {
+ LOG(ERROR) << "Received signal " << signal;
+ debug::StackTrace().PrintBacktrace();
+
+- // TODO(shess): Port to Linux.
++ // TODO(shess): Port to Linux and FreeBSD.
+ #if defined(OS_MACOSX)
+ // TODO(shess): Port to 64-bit.
+ #if ARCH_CPU_32_BITS
diff --git a/www/chromium/files/patch-base__sys_info_freebsd.cc b/www/chromium/files/patch-base__sys_info_freebsd.cc
new file mode 100644
index 000000000000..465ad25ff781
--- /dev/null
+++ b/www/chromium/files/patch-base__sys_info_freebsd.cc
@@ -0,0 +1,24 @@
+--- base/sys_info_freebsd.cc.orig 2011-01-29 10:49:10.000000000 +0100
++++ base/sys_info_freebsd.cc 2011-02-07 22:02:40.000000000 +0100
+@@ -30,4 +30,21 @@
+ return limit;
+ }
+
++int SysInfo::NumberOfProcessors() {
++ int mib[2];
++
++ mib[0] = CTL_HW;
++ mib[1] = HW_NCPU;
++
++ int ncpu;
++ size_t len = sizeof(ncpu);
++
++ if (sysctl(mib, 2, &ncpu, &len, NULL, 0) == -1) {
++ NOTREACHED();
++ return 1;
++ }
++
++ return ncpu;
++}
++
+ } // namespace base
diff --git a/www/chromium/files/patch-base__sys_info_posix.cc b/www/chromium/files/patch-base__sys_info_posix.cc
new file mode 100644
index 000000000000..02d2c218a428
--- /dev/null
+++ b/www/chromium/files/patch-base__sys_info_posix.cc
@@ -0,0 +1,11 @@
+--- base/sys_info_posix.cc.orig 2011-02-07 00:36:57.000000000 +0100
++++ base/sys_info_posix.cc 2011-02-07 00:21:53.000000000 +0100
+@@ -23,7 +23,7 @@
+
+ namespace base {
+
+-#if !defined(OS_OPENBSD)
++#if !defined(OS_OPENBSD) && !defined(OS_FREEBSD)
+ int SysInfo::NumberOfProcessors() {
+ // It seems that sysconf returns the number of "logical" processors on both
+ // Mac and Linux. So we get the number of "online logical" processors.
diff --git a/www/chromium/files/patch-build__build_config.h b/www/chromium/files/patch-build__build_config.h
new file mode 100644
index 000000000000..1cc471d2a17f
--- /dev/null
+++ b/www/chromium/files/patch-build__build_config.h
@@ -0,0 +1,17 @@
+--- ./build/build_config.h.orig 2010-12-16 02:11:47.000000000 +0100
++++ ./build/build_config.h 2010-12-20 20:15:08.000000000 +0100
+@@ -69,12 +69,12 @@
+ #endif
+
+ // Use tcmalloc
+-#if (defined(OS_WIN) || defined(OS_LINUX)) && !defined(NO_TCMALLOC)
++#if (defined(OS_WIN) || defined(OS_LINUX) || defined(OS_FREEBSD)) && !defined(NO_TCMALLOC)
+ #define USE_TCMALLOC 1
+ #endif
+
+ // Use heapchecker.
+-#if defined(OS_LINUX) && !defined(NO_HEAPCHECKER)
++#if (defined(OS_LINUX) || defined(OS_FREEBSD)) && !defined(NO_HEAPCHECKER)
+ #define USE_HEAPCHECKER 1
+ #endif
+
diff --git a/www/chromium/files/patch-build__common.gypi b/www/chromium/files/patch-build__common.gypi
new file mode 100644
index 000000000000..ccca205b5aee
--- /dev/null
+++ b/www/chromium/files/patch-build__common.gypi
@@ -0,0 +1,40 @@
+--- ./build/common.gypi.orig 2010-12-20 20:09:09.000000000 +0100
++++ ./build/common.gypi 2010-12-20 20:15:08.000000000 +0100
+@@ -230,7 +230,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.
+@@ -279,8 +279,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.
+@@ -298,7 +298,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,
+@@ -638,7 +638,7 @@
+ ['exclude', '(^|/)(gtk|x11)_[^/]*\\.(h|cc)$'],
+ ],
+ }],
+- ['OS!="linux"', {
++ ['OS!="linux" and OS!="freebsd"', {
+ 'sources/': [
+ ['exclude', '_linux(_unittest)?\\.(h|cc)$'],
+ ['exclude', '(^|/)linux/'],
diff --git a/www/chromium/files/patch-build__features_override.gypi b/www/chromium/files/patch-build__features_override.gypi
new file mode 100644
index 000000000000..78fd4ceff97b
--- /dev/null
+++ b/www/chromium/files/patch-build__features_override.gypi
@@ -0,0 +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', {
+ 'feature_defines': [
+ 'WTF_USE_ACCELERATED_COMPOSITING=1',
+ 'ENABLE_3D_RENDERING=1',
diff --git a/www/chromium/files/patch-build__linux__python_arch.sh b/www/chromium/files/patch-build__linux__python_arch.sh
new file mode 100644
index 000000000000..c95c7569440c
--- /dev/null
+++ b/www/chromium/files/patch-build__linux__python_arch.sh
@@ -0,0 +1,22 @@
+--- ./build/linux/python_arch.sh.orig 2010-12-16 02:11:47.000000000 +0100
++++ ./build/linux/python_arch.sh 2010-12-20 20:15:08.000000000 +0100
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/usr/bin/env bash
+ # Copyright (c) 2010 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.
+@@ -10,12 +10,7 @@
+ # python_arch.sh /path/to/sysroot/usr/lib/libpython2.4.so.1.0
+ #
+
+-python=$(readlink -f "$1")
+-if [ ! -r "$python" ]; then
+- echo unknown
+- exit 0;
+-fi
+-file_out=$(file "$python")
++file_out=$(file "$1")
+ if [ $? -ne 0 ]; then
+ echo unknown
+ exit 0;
diff --git a/www/chromium/files/patch-chrome__app__chrome_exe_main_gtk.cc b/www/chromium/files/patch-chrome__app__chrome_exe_main_gtk.cc
new file mode 100644
index 000000000000..53abcf6499fc
--- /dev/null
+++ b/www/chromium/files/patch-chrome__app__chrome_exe_main_gtk.cc
@@ -0,0 +1,34 @@
+--- ./chrome/app/chrome_exe_main_gtk.cc.orig 2010-12-16 02:11:51.000000000 +0100
++++ ./chrome/app/chrome_exe_main_gtk.cc 2010-12-20 20:15:08.000000000 +0100
+@@ -3,7 +3,7 @@
+ // found in the LICENSE file.
+
+ #include "base/process_util.h"
+-#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
++#if (defined(OS_LINUX) || defined(OS_FREEBSD)) && !defined(OS_CHROMEOS)
+ #include "chrome/browser/first_run/first_run.h"
+ #endif
+
+@@ -19,11 +19,11 @@
+ 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 // defined(OS_LINUX) && defined(USE_TCMALLOC)
++#endif // (defined(OS_LINUX) || defined(OS_FREEBSD)) && defined(USE_TCMALLOC)
+ }
+
+ int main(int argc, const char** argv) {
+@@ -36,7 +36,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
diff --git a/www/chromium/files/patch-chrome__app__generated_resources.grd b/www/chromium/files/patch-chrome__app__generated_resources.grd
new file mode 100644
index 000000000000..37fe7fb7b105
--- /dev/null
+++ b/www/chromium/files/patch-chrome__app__generated_resources.grd
@@ -0,0 +1,38 @@
+--- chrome/app/generated_resources.grd.orig 2011-03-20 22:02:04.245737794 +0200
++++ chrome/app/generated_resources.grd 2011-03-20 22:02:04.423741982 +0200
+@@ -935,7 +935,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>
+@@ -6527,7 +6527,7 @@
+ <message name="IDS_OPTIONS_DIALOG_TITLE" desc="The title of the Options dialog box">
+ <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> Options
+ </message>
+- <if expr="os == 'linux2'">
++ <if expr="os == 'linux2' or os.find('bsd') != -1">
+ <message name="IDS_PREFERENCES_DIALOG_TITLE" desc="The title of the Preferences dialog box">
+ <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> Preferences
+ </message>
+@@ -6913,7 +6913,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>
+@@ -11110,7 +11110,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
diff --git a/www/chromium/files/patch-chrome__browser__about_flags.cc b/www/chromium/files/patch-chrome__browser__about_flags.cc
new file mode 100644
index 000000000000..fd6b76f2b5f2
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__about_flags.cc
@@ -0,0 +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 @@
+ 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)
+ return kOsLinux;
+ #else
+ #error Unknown platform
diff --git a/www/chromium/files/patch-chrome__browser__browser_about_handler.cc b/www/chromium/files/patch-chrome__browser__browser_about_handler.cc
new file mode 100644
index 000000000000..d7b0139edb5e
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__browser_about_handler.cc
@@ -0,0 +1,47 @@
+--- chrome/browser/browser_about_handler.cc.orig 2011-01-06 10:01:46.000000000 +0100
++++ chrome/browser/browser_about_handler.cc 2011-01-09 20:16:04.000000000 +0100
+@@ -74,7 +74,7 @@
+ #include "chrome/browser/zygote_host_linux.h"
+ #elif defined(OS_MACOSX)
+ #include "chrome/browser/ui/cocoa/about_ipc_dialog.h"
+-#elif defined(OS_LINUX)
++#elif defined(OS_LINUX) || defined(OS_FREEBSD)
+ #include "chrome/browser/zygote_host_linux.h"
+ #endif
+
+@@ -127,7 +127,7 @@
+ const char kNetInternalsPath[] = "net-internals";
+ const char kPluginsPath[] = "plugins";
+
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ const char kLinuxProxyConfigPath[] = "linux-proxy-config";
+ const char kSandboxPath[] = "sandbox";
+ #endif
+@@ -159,7 +159,7 @@
+ kTcmallocPath,
+ kTermsPath,
+ kVersionPath,
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ kSandboxPath,
+ #endif
+ #if defined(OS_CHROMEOS)
+@@ -549,7 +549,7 @@
+ return data;
+ }
+
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ std::string AboutLinuxProxyConfig() {
+ std::string data;
+ data.append("<!DOCTYPE HTML>\n");
+@@ -796,7 +796,7 @@
+ } else if (path == kTermsPath) {
+ response = ResourceBundle::GetSharedInstance().GetRawDataResource(
+ IDR_TERMS_HTML).as_string();
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ } else if (path == kLinuxProxyConfigPath) {
+ response = AboutLinuxProxyConfig();
+ } else if (path == kSandboxPath) {
diff --git a/www/chromium/files/patch-chrome__browser__browser_child_process_host.cc b/www/chromium/files/patch-chrome__browser__browser_child_process_host.cc
new file mode 100644
index 000000000000..31b7818f7618
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__browser_child_process_host.cc
@@ -0,0 +1,14 @@
+--- ./chrome/browser/browser_child_process_host.cc.orig 2010-12-16 02:11:58.000000000 +0100
++++ ./chrome/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 {
+
diff --git a/www/chromium/files/patch-chrome__browser__child_process_launcher.cc b/www/chromium/files/patch-chrome__browser__child_process_launcher.cc
new file mode 100644
index 000000000000..e62f21488279
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__child_process_launcher.cc
@@ -0,0 +1,123 @@
+--- ./chrome/browser/child_process_launcher.cc.orig 2010-12-16 02:11:58.000000000 +0100
++++ ./chrome/browser/child_process_launcher.cc 2010-12-20 20:15:08.000000000 +0100
+@@ -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/singleton.h"
+ #include "chrome/browser/crash_handler_host_linux.h"
+ #include "chrome/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)
+ if (use_zygote) {
+ base::GlobalDescriptors::Mapping mapping;
+ mapping.push_back(std::pair<uint32_t, int>(kPrimaryIPCChannel, ipcfd));
+@@ -131,7 +131,7 @@
+ ipcfd,
+ kPrimaryIPCChannel + base::GlobalDescriptors::kBaseDescriptor));
+
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ // On Linux, we need to add some extra file descriptors for crash handling
+ // and the sandbox.
+ bool is_renderer =
+@@ -163,7 +163,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)
+@@ -199,20 +199,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_) {
+@@ -232,7 +232,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()));
+@@ -240,7 +240,7 @@
+ }
+
+ static void TerminateInternal(
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ bool zygote,
+ #endif
+ base::ProcessHandle handle) {
+@@ -250,13 +250,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);
+ }
+@@ -269,7 +269,7 @@
+ base::Process process_;
+ bool starting_;
+
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ bool zygote_;
+ #endif
+ };
+@@ -315,7 +315,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
diff --git a/www/chromium/files/patch-chrome__browser__file_path_watcher__file_path_watcher_stub.cc b/www/chromium/files/patch-chrome__browser__file_path_watcher__file_path_watcher_stub.cc
new file mode 100644
index 000000000000..407bcfa0b005
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__file_path_watcher__file_path_watcher_stub.cc
@@ -0,0 +1,11 @@
+--- chrome/browser/file_path_watcher/file_path_watcher_stub.cc.orig 2011-03-20 22:02:04.296736175 +0200
++++ chrome/browser/file_path_watcher/file_path_watcher_stub.cc 2011-03-20 22:02:04.454738659 +0200
+@@ -9,7 +9,7 @@
+
+ class FilePathWatcherImpl : public FilePathWatcher::PlatformDelegate {
+ public:
+- virtual bool Watch(const FilePath& path, FileWatcher::Delegate* delegate) {
++ virtual bool Watch(const FilePath& path, FilePathWatcher::Delegate* delegate) {
+ return false;
+ }
+ };
diff --git a/www/chromium/files/patch-chrome__browser__memory_details.cc b/www/chromium/files/patch-chrome__browser__memory_details.cc
new file mode 100644
index 000000000000..06a750e7a46b
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__memory_details.cc
@@ -0,0 +1,29 @@
+--- ./chrome/browser/memory_details.cc.orig 2010-12-16 02:11:58.000000000 +0100
++++ ./chrome/browser/memory_details.cc 2010-12-20 20:15:08.000000000 +0100
+@@ -19,7 +19,7 @@
+ #include "chrome/common/url_constants.h"
+ #include "grit/chromium_strings.h"
+
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ #include "chrome/browser/zygote_host_linux.h"
+ #include "chrome/browser/renderer_host/render_sandbox_host_linux.h"
+ #endif
+@@ -101,7 +101,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
+@@ -179,7 +179,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) {
diff --git a/www/chromium/files/patch-chrome__browser__memory_purger.cc b/www/chromium/files/patch-chrome__browser__memory_purger.cc
new file mode 100644
index 000000000000..ad7911549f24
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__memory_purger.cc
@@ -0,0 +1,11 @@
+--- ./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.
diff --git a/www/chromium/files/patch-chrome__browser__net__connection_tester.cc b/www/chromium/files/patch-chrome__browser__net__connection_tester.cc
new file mode 100644
index 000000000000..edd73f2e7322
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__net__connection_tester.cc
@@ -0,0 +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 @@
+ // Otherwise returns a network error code.
+ int CreateSystemProxyConfigService(
+ scoped_ptr<net::ProxyConfigService>* config_service) {
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(FREEBSD)
+ // 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;
diff --git a/www/chromium/files/patch-chrome__browser__notifications__balloon_collection_impl.h b/www/chromium/files/patch-chrome__browser__notifications__balloon_collection_impl.h
new file mode 100644
index 000000000000..ed05a07f59ab
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__notifications__balloon_collection_impl.h
@@ -0,0 +1,11 @@
+--- ./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
diff --git a/www/chromium/files/patch-chrome__browser__process_singleton.h b/www/chromium/files/patch-chrome__browser__process_singleton.h
new file mode 100644
index 000000000000..cb9884bf65e0
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__process_singleton.h
@@ -0,0 +1,11 @@
+--- 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
+@@ -67,7 +67,7 @@
+ // instance.
+ NotifyResult NotifyOtherProcessOrCreate();
+
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ // 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,
diff --git a/www/chromium/files/patch-chrome__browser__renderer_host__browser_render_process_host.cc b/www/chromium/files/patch-chrome__browser__renderer_host__browser_render_process_host.cc
new file mode 100644
index 000000000000..c15ee65dbe10
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__renderer_host__browser_render_process_host.cc
@@ -0,0 +1,11 @@
+--- chrome/browser/renderer_host/browser_render_process_host.cc.orig 2011-03-20 22:02:04.283738713 +0200
++++ chrome/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);
diff --git a/www/chromium/files/patch-chrome__browser__renderer_host__mock_render_process_host.cc b/www/chromium/files/patch-chrome__browser__renderer_host__mock_render_process_host.cc
new file mode 100644
index 000000000000..54fb3976a708
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__renderer_host__mock_render_process_host.cc
@@ -0,0 +1,11 @@
+--- ./chrome/browser/renderer_host/mock_render_process_host.cc.orig 2010-12-16 02:11:57.000000000 +0100
++++ ./chrome/browser/renderer_host/mock_render_process_host.cc 2010-12-20 20:15:08.000000000 +0100
+@@ -106,7 +106,7 @@
+ DuplicateHandle(GetCurrentProcess(), dib_id.handle, GetCurrentProcess(),
+ &duped, 0, TRUE, DUPLICATE_SAME_ACCESS);
+ transport_dib_ = TransportDIB::Map(duped);
+-#elif defined(OS_MACOSX)
++#elif defined(OS_MACOSX) || defined(OS_FREEBSD)
+ // On Mac, TransportDIBs are always created in the browser, so we cannot map
+ // one from a dib_id.
+ transport_dib_ = TransportDIB::Create(100 * 100 * 4, 0);
diff --git a/www/chromium/files/patch-chrome__browser__renderer_host__render_message_filter.cc b/www/chromium/files/patch-chrome__browser__renderer_host__render_message_filter.cc
new file mode 100644
index 000000000000..af53ced27d9b
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__renderer_host__render_message_filter.cc
@@ -0,0 +1,20 @@
+--- chrome/browser/renderer_host/render_message_filter.cc.orig 2011-03-23 00:59:35.959798938 +0200
++++ chrome/browser/renderer_host/render_message_filter.cc 2011-03-23 00:59:46.644644079 +0200
+@@ -375,7 +375,7 @@
+ IPC_MESSAGE_HANDLER_DELAY_REPLY(ViewHostMsg_GetDefaultPrintSettings,
+ OnGetDefaultPrintSettings)
+ IPC_MESSAGE_HANDLER_DELAY_REPLY(ViewHostMsg_ScriptedPrint, OnScriptedPrint)
+-#if defined(OS_MACOSX)
++#if defined(OS_MACOSX) || defined(OS_FREEBSD)
+ IPC_MESSAGE_HANDLER(ViewHostMsg_AllocTransportDIB, OnAllocTransportDIB)
+ IPC_MESSAGE_HANDLER(ViewHostMsg_FreeTransportDIB, OnFreeTransportDIB)
+ #endif
+@@ -1196,7 +1196,7 @@
+ HistogramSynchronizer::DeserializeHistogramList(sequence_number, histograms);
+ }
+
+-#if defined(OS_MACOSX)
++#if defined(OS_MACOSX) || defined(OS_FREEBSD)
+ void RenderMessageFilter::OnAllocTransportDIB(
+ size_t size, bool cache_in_browser, TransportDIB::Handle* handle) {
+ render_widget_helper_->AllocTransportDIB(size, cache_in_browser, handle);
diff --git a/www/chromium/files/patch-chrome__browser__renderer_host__render_sandbox_host_linux.cc b/www/chromium/files/patch-chrome__browser__renderer_host__render_sandbox_host_linux.cc
new file mode 100644
index 000000000000..9f2e228aadea
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__renderer_host__render_sandbox_host_linux.cc
@@ -0,0 +1,15 @@
+--- ./chrome/browser/renderer_host/render_sandbox_host_linux.cc.orig 2010-12-16 02:11:57.000000000 +0100
++++ ./chrome/browser/renderer_host/render_sandbox_host_linux.cc 2010-12-20 20:15:08.000000000 +0100
+@@ -660,7 +660,12 @@
+ // 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)
++ if (socketpair(AF_UNIX, SOCK_SEQPACKET, 0, fds) != 0)
++ 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];
diff --git a/www/chromium/files/patch-chrome__browser__renderer_host__render_widget_helper.cc b/www/chromium/files/patch-chrome__browser__renderer_host__render_widget_helper.cc
new file mode 100644
index 000000000000..c4690963f6d1
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__renderer_host__render_widget_helper.cc
@@ -0,0 +1,20 @@
+--- ./chrome/browser/renderer_host/render_widget_helper.cc.orig 2010-12-16 02:11:57.000000000 +0100
++++ ./chrome/browser/renderer_host/render_widget_helper.cc 2010-12-20 20:15:08.000000000 +0100
+@@ -58,7 +58,7 @@
+ // object, so we should not be destroyed unless pending_paints_ is empty!
+ DCHECK(pending_paints_.empty());
+
+-#if defined(OS_MACOSX)
++#if defined(OS_MACOSX) || defined(OS_FREEBSD)
+ ClearAllocatedDIBs();
+ #endif
+ }
+@@ -274,7 +274,7 @@
+ host->CreateNewFullscreenWidget(route_id, popup_type);
+ }
+
+-#if defined(OS_MACOSX)
++#if defined(OS_MACOSX) || defined(OS_FREEBSD)
+ TransportDIB* RenderWidgetHelper::MapTransportDIB(TransportDIB::Id dib_id) {
+ AutoLock locked(allocated_dibs_lock_);
+
diff --git a/www/chromium/files/patch-chrome__browser__renderer_host__render_widget_helper.h b/www/chromium/files/patch-chrome__browser__renderer_host__render_widget_helper.h
new file mode 100644
index 000000000000..84496e0cfdd7
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__renderer_host__render_widget_helper.h
@@ -0,0 +1,29 @@
+--- ./chrome/browser/renderer_host/render_widget_helper.h.orig 2010-12-16 02:11:57.000000000 +0100
++++ ./chrome/browser/renderer_host/render_widget_helper.h 2010-12-20 20:15:08.000000000 +0100
+@@ -110,7 +110,7 @@
+ const base::TimeDelta& max_delay,
+ IPC::Message* msg);
+
+-#if defined(OS_MACOSX)
++#if defined(OS_MACOSX) || defined(OS_FREEBSD)
+ // Given the id of a transport DIB, return a mapping to it or NULL on error.
+ TransportDIB* MapTransportDIB(TransportDIB::Id dib_id);
+ #endif
+@@ -134,7 +134,7 @@
+ WebKit::WebPopupType popup_type,
+ int* route_id);
+
+-#if defined(OS_MACOSX)
++#if defined(OS_MACOSX) || defined(OS_FREEBSD)
+ // Called on the IO thread to handle the allocation of a TransportDIB. If
+ // |cache_in_browser| is |true|, then a copy of the shmem is kept by the
+ // browser, and it is the caller's repsonsibility to call
+@@ -191,7 +191,7 @@
+ // Called on the IO thread to resume a cross-site response.
+ void OnCrossSiteClosePageACK(const ViewMsg_ClosePage_Params& params);
+
+-#if defined(OS_MACOSX)
++#if defined(OS_MACOSX) || defined(OS_FREEBSD)
+ // Called on destruction to release all allocated transport DIBs
+ void ClearAllocatedDIBs();
+
diff --git a/www/chromium/files/patch-chrome__browser__renderer_host__render_widget_host_unittest.cc b/www/chromium/files/patch-chrome__browser__renderer_host__render_widget_host_unittest.cc
new file mode 100644
index 000000000000..6556577d7e86
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__renderer_host__render_widget_host_unittest.cc
@@ -0,0 +1,11 @@
+--- ./chrome/browser/renderer_host/render_widget_host_unittest.cc.orig 2010-12-16 02:11:57.000000000 +0100
++++ ./chrome/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());
diff --git a/www/chromium/files/patch-chrome__browser__shell_integration_linux.cc b/www/chromium/files/patch-chrome__browser__shell_integration_linux.cc
new file mode 100644
index 000000000000..952a3b700e35
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__shell_integration_linux.cc
@@ -0,0 +1,19 @@
+--- ./chrome/browser/shell_integration_linux.cc.orig 2010-12-16 02:11:58.000000000 +0100
++++ ./chrome/browser/shell_integration_linux.cc 2010-12-20 20:15:08.000000000 +0100
+@@ -118,6 +118,8 @@
+ if (!PathService::Get(chrome::DIR_USER_DESKTOP, &desktop_path))
+ return;
+
++#if !defined(OS_FREEBSD)
++// BSD: Linux-specific calls like openat are used so defined out for BSD.
+ int desktop_fd = open(desktop_path.value().c_str(), O_RDONLY | O_DIRECTORY);
+ if (desktop_fd < 0)
+ return;
+@@ -146,6 +148,7 @@
+
+ if (HANDLE_EINTR(close(desktop_fd)) < 0)
+ PLOG(ERROR) << "close";
++#endif // !defined(OS_FREEBSD)
+ }
+
+ void CreateShortcutInApplicationsMenu(const FilePath& shortcut_filename,
diff --git a/www/chromium/files/patch-chrome__browser__shell_integration_unittest.cc b/www/chromium/files/patch-chrome__browser__shell_integration_unittest.cc
new file mode 100644
index 000000000000..60bdefede6db
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__shell_integration_unittest.cc
@@ -0,0 +1,19 @@
+--- ./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.
diff --git a/www/chromium/files/patch-chrome__browser__sync__engine__syncer_thread.cc b/www/chromium/files/patch-chrome__browser__sync__engine__syncer_thread.cc
new file mode 100644
index 000000000000..495526589ded
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__sync__engine__syncer_thread.cc
@@ -0,0 +1,29 @@
+--- ./chrome/browser/sync/engine/syncer_thread.cc.orig 2010-12-16 02:11:54.000000000 +0100
++++ ./chrome/browser/sync/engine/syncer_thread.cc 2010-12-20 20:15:08.000000000 +0100
+@@ -264,7 +264,7 @@
+ bool initial_sync_for_thread = true;
+ bool continue_sync_cycle = false;
+
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ idle_query_.reset(new IdleQueryLinux());
+ #endif
+
+@@ -359,7 +359,7 @@
+ static_cast<int>(vault_.current_wait_interval_.poll_delta.InSeconds()),
+ &user_idle_milliseconds, &continue_sync_cycle, nudged);
+ }
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ idle_query_.reset();
+ #endif
+ }
+@@ -833,7 +833,7 @@
+ return 0;
+ }
+ return idle_time / 1000000; // nano to milli
+-#elif defined(OS_LINUX)
++#elif defined(OS_LINUX) || defined(OS_FREEBSD)
+ if (idle_query_.get())
+ return idle_query_->IdleTime();
+ return 0;
diff --git a/www/chromium/files/patch-chrome__browser__sync__engine__syncer_thread.h b/www/chromium/files/patch-chrome__browser__sync__engine__syncer_thread.h
new file mode 100644
index 000000000000..0053976a30de
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__sync__engine__syncer_thread.h
@@ -0,0 +1,20 @@
+--- chrome/browser/sync/engine/syncer_thread.h.orig 2011-01-06 10:01:41.000000000 +0100
++++ chrome/browser/sync/engine/syncer_thread.h 2011-01-09 20:25:21.000000000 +0100
+@@ -26,7 +26,7 @@
+ #include "chrome/browser/sync/syncable/model_type.h"
+ #include "chrome/common/deprecated/event_sys-inl.h"
+
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ #include "chrome/browser/sync/engine/idle_query_linux.h"
+ #endif
+
+@@ -329,7 +329,7 @@
+ NudgeSource source,
+ const syncable::ModelTypeBitSet& model_types);
+
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ // On Linux, we need this information in order to query idle time.
+ scoped_ptr<IdleQueryLinux> idle_query_;
+ #endif
diff --git a/www/chromium/files/patch-chrome__browser__sync__syncable__directory_backing_store.cc b/www/chromium/files/patch-chrome__browser__sync__syncable__directory_backing_store.cc
new file mode 100644
index 000000000000..46fe0a188d6b
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__sync__syncable__directory_backing_store.cc
@@ -0,0 +1,18 @@
+--- ./chrome/browser/sync/syncable/directory_backing_store.cc.orig 2010-12-16 02:11:54.000000000 +0100
++++ ./chrome/browser/sync/syncable/directory_backing_store.cc 2010-12-20 20:15:08.000000000 +0100
+@@ -304,13 +304,13 @@
+ #else
+ UMA_HISTOGRAM_COUNTS_100("Sync.DirectoryOpenFailedNotWinMac", bucket);
+
+-#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
++#if (defined(OS_LINUX) || defined(OS_FREEBSD)) && !defined(OS_CHROMEOS)
+ UMA_HISTOGRAM_COUNTS_100("Sync.DirectoryOpenFailedLinux", bucket);
+ #elif defined(OS_CHROMEOS)
+ UMA_HISTOGRAM_COUNTS_100("Sync.DirectoryOpenFailedCros", bucket);
+ #else
+ UMA_HISTOGRAM_COUNTS_100("Sync.DirectoryOpenFailedOther", bucket);
+-#endif // OS_LINUX && !OS_CHROMEOS
++#endif // (OS_LINUX || OS_FREEBSD) && !OS_CHROMEOS
+ #endif // OS_WIN
+ return !failed_again;
+ }
diff --git a/www/chromium/files/patch-chrome__browser__tab_contents__tab_contents.cc b/www/chromium/files/patch-chrome__browser__tab_contents__tab_contents.cc
new file mode 100644
index 000000000000..5bf75d0412b4
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__tab_contents__tab_contents.cc
@@ -0,0 +1,20 @@
+--- ./chrome/browser/tab_contents/tab_contents.cc.orig 2010-12-16 02:11:56.000000000 +0100
++++ ./chrome/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;
+ }
+
+-#if defined(OS_LINUX)
++#if defined(TOOLKIT_GTK)
+ case NotificationType::BROWSER_THEME_CHANGED: {
+ renderer_preferences_util::UpdateFromSystemSettings(
+ &renderer_preferences_, profile());
diff --git a/www/chromium/files/patch-chrome__browser__task_manager__task_manager_resource_providers.cc b/www/chromium/files/patch-chrome__browser__task_manager__task_manager_resource_providers.cc
new file mode 100644
index 000000000000..3e639c73aace
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__task_manager__task_manager_resource_providers.cc
@@ -0,0 +1,11 @@
+--- ./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);
diff --git a/www/chromium/files/patch-chrome__browser__ui__browser.cc b/www/chromium/files/patch-chrome__browser__ui__browser.cc
new file mode 100644
index 000000000000..d344c36b3329
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__ui__browser.cc
@@ -0,0 +1,47 @@
+--- ./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.
diff --git a/www/chromium/files/patch-chrome__browser__ui__toolbar__wrench_menu_model.cc b/www/chromium/files/patch-chrome__browser__ui__toolbar__wrench_menu_model.cc
new file mode 100644
index 000000000000..7b5accd59777
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__ui__toolbar__wrench_menu_model.cc
@@ -0,0 +1,20 @@
+--- ./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));
diff --git a/www/chromium/files/patch-chrome__browser__ui__views__accessible_view_helper.cc b/www/chromium/files/patch-chrome__browser__ui__views__accessible_view_helper.cc
new file mode 100644
index 000000000000..0434c61bb811
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__ui__views__accessible_view_helper.cc
@@ -0,0 +1,11 @@
+--- ./chrome/browser/ui/views/accessible_view_helper.cc.orig 2010-12-16 02:11:56.000000000 +0100
++++ ./chrome/browser/ui/views/accessible_view_helper.cc 2010-12-20 20:15:08.000000000 +0100
+@@ -21,7 +21,7 @@
+ if (!accessibility_event_router_->AddViewTree(view_tree_, profile))
+ view_tree_ = NULL;
+
+-#if defined(OS_LINUX)
++#if defined(TOOLKIT_USES_GTK)
+ GtkWidget* widget = view_tree->GetWidget()->GetNativeView();
+ widget_helper_.reset(new AccessibleWidgetHelper(widget, profile));
+ #endif
diff --git a/www/chromium/files/patch-chrome__browser__ui__views__accessible_view_helper.h b/www/chromium/files/patch-chrome__browser__ui__views__accessible_view_helper.h
new file mode 100644
index 000000000000..0b1d2cfd58ad
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__ui__views__accessible_view_helper.h
@@ -0,0 +1,20 @@
+--- chrome/browser/ui/views/accessible_view_helper.h.orig 2011-01-26 10:30:51.000000000 +0100
++++ chrome/browser/ui/views/accessible_view_helper.h 2011-01-30 14:03:17.000000000 +0100
+@@ -15,7 +15,7 @@
+ #include "chrome/browser/accessibility_events.h"
+ #include "gfx/native_widget_types.h"
+
+-#if defined(OS_LINUX)
++#if defined(TOOLKIT_USES_GTK)
+ #include "chrome/browser/ui/gtk/accessible_widget_helper_gtk.h"
+ #endif
+
+@@ -73,7 +73,7 @@
+ std::string window_title_;
+ std::vector<views::View*> managed_views_;
+
+-#if defined(OS_LINUX)
++#if defined(TOOLKIT_USES_GTK)
+ scoped_ptr<AccessibleWidgetHelper> widget_helper_;
+ #endif
+
diff --git a/www/chromium/files/patch-chrome__browser__ui__views__create_application_shortcut_view.cc b/www/chromium/files/patch-chrome__browser__ui__views__create_application_shortcut_view.cc
new file mode 100644
index 000000000000..e836bf36144d
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__ui__views__create_application_shortcut_view.cc
@@ -0,0 +1,11 @@
+--- ./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));
diff --git a/www/chromium/files/patch-chrome__browser__ui__views__download_item_view.cc b/www/chromium/files/patch-chrome__browser__ui__views__download_item_view.cc
new file mode 100644
index 000000000000..692528093ec1
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__ui__views__download_item_view.cc
@@ -0,0 +1,20 @@
+--- ./chrome/browser/ui/views/download_item_view.cc.orig 2010-12-16 02:11:56.000000000 +0100
++++ ./chrome/browser/ui/views/download_item_view.cc 2010-12-20 20:15:08.000000000 +0100
+@@ -259,7 +259,7 @@
+
+ // Extract the file extension (if any).
+ FilePath filename(download->target_name());
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ std::wstring extension = base::SysNativeMBToWide(filename.Extension());
+ #else
+ std::wstring extension = filename.Extension();
+@@ -268,7 +268,7 @@
+ // Remove leading '.'
+ if (extension.length() > 0)
+ extension = extension.substr(1);
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ std::wstring rootname =
+ base::SysNativeMBToWide(filename.RemoveExtension().value());
+ #else
diff --git a/www/chromium/files/patch-chrome__browser__ui__views__dropdown_bar_host.cc b/www/chromium/files/patch-chrome__browser__ui__views__dropdown_bar_host.cc
new file mode 100644
index 000000000000..d4db184f79eb
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__ui__views__dropdown_bar_host.cc
@@ -0,0 +1,20 @@
+--- 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
+
diff --git a/www/chromium/files/patch-chrome__browser__ui__views__extensions__extension_popup.cc b/www/chromium/files/patch-chrome__browser__ui__views__extensions__extension_popup.cc
new file mode 100644
index 000000000000..b0075ad23df2
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__ui__views__extensions__extension_popup.cc
@@ -0,0 +1,20 @@
+--- ./chrome/browser/ui/views/extensions/extension_popup.cc.orig 2010-12-16 02:11:56.000000000 +0100
++++ ./chrome/browser/ui/views/extensions/extension_popup.cc 2010-12-20 20:15:08.000000000 +0100
+@@ -25,7 +25,7 @@
+ #include "views/window/window.h"
+
+
+-#if defined(OS_LINUX)
++#if defined(TOOLKIT_GTK)
+ #include "views/widget/widget_gtk.h"
+ #endif
+
+@@ -108,7 +108,7 @@
+ // The bubble chrome requires a separate window, so construct it here.
+ if (BUBBLE_CHROME == popup_chrome_) {
+ gfx::NativeView native_window = frame->GetNativeView();
+-#if defined(OS_LINUX)
++#if defined(TOOLKIT_GTK)
+ border_widget_ = new views::WidgetGtk(views::WidgetGtk::TYPE_WINDOW);
+ static_cast<views::WidgetGtk*>(border_widget_)->MakeTransparent();
+ static_cast<views::WidgetGtk*>(border_widget_)->make_transient_to_parent();
diff --git a/www/chromium/files/patch-chrome__browser__ui__views__extensions__extension_view.cc b/www/chromium/files/patch-chrome__browser__ui__views__extensions__extension_view.cc
new file mode 100644
index 000000000000..a350f0fefde0
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__ui__views__extensions__extension_view.cc
@@ -0,0 +1,11 @@
+--- ./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
+
diff --git a/www/chromium/files/patch-chrome__browser__ui__views__find_bar_view.cc b/www/chromium/files/patch-chrome__browser__ui__views__find_bar_view.cc
new file mode 100644
index 000000000000..1afea304c2d1
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__ui__views__find_bar_view.cc
@@ -0,0 +1,34 @@
+--- ./chrome/browser/ui/views/find_bar_view.cc.orig 2010-12-16 02:11:56.000000000 +0100
++++ ./chrome/browser/ui/views/find_bar_view.cc 2010-12-20 20:15:08.000000000 +0100
+@@ -85,7 +85,7 @@
+
+ FindBarView::FindBarView(FindBarHost* host)
+ : DropdownBarView(host),
+-#if defined(OS_LINUX)
++#if defined(TOOLKIT_USES_GTK)
+ ignore_contents_changed_(false),
+ #endif
+ find_text_(NULL),
+@@ -174,11 +174,11 @@
+ }
+
+ void FindBarView::SetFindText(const string16& find_text) {
+-#if defined(OS_LINUX)
++#if defined(TOOLKIT_USES_GTK)
+ ignore_contents_changed_ = true;
+ #endif
+ find_text_->SetText(find_text);
+-#if defined(OS_LINUX)
++#if defined(TOOLKIT_USES_GTK)
+ ignore_contents_changed_ = false;
+ #endif
+ }
+@@ -465,7 +465,7 @@
+
+ void FindBarView::ContentsChanged(views::Textfield* sender,
+ const string16& new_contents) {
+-#if defined(OS_LINUX)
++#if defined(TOOLKIT_USES_GTK)
+ // On gtk setting the text in the find view causes a notification.
+ if (ignore_contents_changed_)
+ return;
diff --git a/www/chromium/files/patch-chrome__browser__ui__views__find_bar_view.h b/www/chromium/files/patch-chrome__browser__ui__views__find_bar_view.h
new file mode 100644
index 000000000000..ba9c7bce89c9
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__ui__views__find_bar_view.h
@@ -0,0 +1,11 @@
+--- ./chrome/browser/ui/views/find_bar_view.h.orig 2010-12-16 02:11:56.000000000 +0100
++++ ./chrome/browser/ui/views/find_bar_view.h 2010-12-20 20:15:08.000000000 +0100
+@@ -125,7 +125,7 @@
+ // between us and the TabContentsView.
+ FindBarHost* find_bar_host() const;
+
+-#if defined(OS_LINUX)
++#if defined(TOOLKIT_USES_GTK)
+ // In GTK we get changed signals if we programmatically set the text. If we
+ // don't ignore them we run into problems. For example, switching tabs back
+ // to one with the find bar visible will cause a search to the next found
diff --git a/www/chromium/files/patch-chrome__browser__ui__views__frame__app_panel_browser_frame_view.cc b/www/chromium/files/patch-chrome__browser__ui__views__frame__app_panel_browser_frame_view.cc
new file mode 100644
index 000000000000..cdd18389a370
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__ui__views__frame__app_panel_browser_frame_view.cc
@@ -0,0 +1,11 @@
+--- ./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
+
diff --git a/www/chromium/files/patch-chrome__browser__ui__views__frame__browser_view.cc b/www/chromium/files/patch-chrome__browser__ui__views__frame__browser_view.cc
new file mode 100644
index 000000000000..90f6e539ea54
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__ui__views__frame__browser_view.cc
@@ -0,0 +1,65 @@
+--- chrome/browser/ui/views/frame/browser_view.cc.orig 2011-01-26 10:30:50.000000000 +0100
++++ chrome/browser/ui/views/frame/browser_view.cc 2011-01-30 14:10:27.000000000 +0100
+@@ -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
+
+@@ -87,7 +87,7 @@
+ #include "chrome/browser/aeropeek_manager.h"
+ #include "chrome/browser/jumplist_win.h"
+ #include "ui/base/view_prop.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"
+@@ -1130,7 +1130,7 @@
+ string16 message = l10n_util::GetStringUTF16(message_id);
+ app::win::MessageBox(GetNativeHandle(), message, title,
+ MB_OK | MB_ICONWARNING | MB_TOPMOST);
+-#elif defined(OS_LINUX)
++#elif defined(TOOLKIT_GTK)
+ std::string title = l10n_util::GetStringUTF8(IDS_PRODUCT_NAME);
+ std::string message = l10n_util::GetStringUTF8(message_id);
+ GtkWidget* dialog = gtk_message_dialog_new(GetNativeHandle(),
+@@ -1224,7 +1224,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.
+@@ -1271,7 +1271,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_->IsReservedCommand(id) && !event.match_edit_command) {
+ #else
+ if (browser_->IsReservedCommand(id)) {
+@@ -1287,7 +1287,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)
+ static_cast<views::WindowGtk*>(window)->HandleKeyboardEvent(event.os_event);
+@@ -2230,7 +2230,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
diff --git a/www/chromium/files/patch-chrome__browser__ui__views__frame__browser_view_layout.cc b/www/chromium/files/patch-chrome__browser__ui__views__frame__browser_view_layout.cc
new file mode 100644
index 000000000000..0108af5a1464
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__ui__views__frame__browser_view_layout.cc
@@ -0,0 +1,11 @@
+--- ./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
+
diff --git a/www/chromium/files/patch-chrome__browser__ui__views__frame__opaque_browser_frame_view.cc b/www/chromium/files/patch-chrome__browser__ui__views__frame__opaque_browser_frame_view.cc
new file mode 100644
index 000000000000..28aadaba5422
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__ui__views__frame__opaque_browser_frame_view.cc
@@ -0,0 +1,11 @@
+--- ./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
+
diff --git a/www/chromium/files/patch-chrome__browser__ui__views__fullscreen_exit_bubble.cc b/www/chromium/files/patch-chrome__browser__ui__views__fullscreen_exit_bubble.cc
new file mode 100644
index 000000000000..62bf764a1192
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__ui__views__fullscreen_exit_bubble.cc
@@ -0,0 +1,38 @@
+--- ./chrome/browser/ui/views/fullscreen_exit_bubble.cc.orig 2010-12-16 02:11:56.000000000 +0100
++++ ./chrome/browser/ui/views/fullscreen_exit_bubble.cc 2010-12-20 20:15:08.000000000 +0100
+@@ -18,7 +18,7 @@
+ #if defined(OS_WIN)
+ #include "app/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
+
+@@ -119,7 +119,7 @@
+ return MA_NOACTIVATE;
+ }
+ };
+-#elif defined(OS_LINUX)
++#elif defined(TOOLKIT_GTK)
+ // TODO: figure out the equivalent of MA_NOACTIVATE for gtk.
+ #endif
+
+@@ -154,7 +154,7 @@
+ popup_->set_window_style(WS_POPUP);
+ popup_->set_window_ex_style(WS_EX_LAYERED | WS_EX_TOOLWINDOW |
+ l10n_util::GetExtendedTooltipStyles());
+-#elif defined(OS_LINUX)
++#elif defined(TOOLKIT_GTK)
+ popup_ = new views::WidgetGtk(views::WidgetGtk::TYPE_POPUP);
+ popup_->MakeTransparent();
+ #endif
+@@ -202,7 +202,7 @@
+ #if defined(OS_WIN)
+ popup_->MoveWindow(popup_rect.x(), popup_rect.y(), popup_rect.width(),
+ popup_rect.height());
+-#elif defined(OS_LINUX)
++#elif defined(TOOLKIT_GTK)
+ popup_->SetBounds(popup_rect);
+ #endif
+ popup_->Show();
diff --git a/www/chromium/files/patch-chrome__browser__ui__views__fullscreen_exit_bubble.h b/www/chromium/files/patch-chrome__browser__ui__views__fullscreen_exit_bubble.h
new file mode 100644
index 000000000000..c16aee35e0f5
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__ui__views__fullscreen_exit_bubble.h
@@ -0,0 +1,20 @@
+--- ./chrome/browser/ui/views/fullscreen_exit_bubble.h.orig 2010-12-16 02:11:56.000000000 +0100
++++ ./chrome/browser/ui/views/fullscreen_exit_bubble.h 2010-12-20 20:15:08.000000000 +0100
+@@ -12,7 +12,7 @@
+ #include "chrome/browser/command_updater.h"
+ #include "views/controls/link.h"
+
+-#if defined(OS_LINUX)
++#if defined(TOOLKIT_GTK)
+ namespace views {
+ class WidgetGtk;
+ }
+@@ -76,7 +76,7 @@
+ // The popup itself, which is a slightly modified WidgetWin. We need to use
+ // a WidgetWin (and thus an HWND) to make the popup float over other HWNDs.
+ FullscreenExitPopup* popup_;
+-#elif defined(OS_LINUX)
++#elif defined(TOOLKIT_GTK)
+ views::WidgetGtk* popup_;
+ #endif
+
diff --git a/www/chromium/files/patch-chrome__browser__ui__views__info_bubble.cc b/www/chromium/files/patch-chrome__browser__ui__views__info_bubble.cc
new file mode 100644
index 000000000000..cc4fe4ba82d6
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__ui__views__info_bubble.cc
@@ -0,0 +1,47 @@
+--- ./chrome/browser/ui/views/info_bubble.cc.orig 2010-12-16 02:11:56.000000000 +0100
++++ ./chrome/browser/ui/views/info_bubble.cc 2010-12-20 20:15:08.000000000 +0100
+@@ -308,7 +308,7 @@
+
+ InfoBubble::InfoBubble()
+ :
+-#if defined(OS_LINUX)
++#if defined(TOOLKIT_GTK)
+ WidgetGtk(TYPE_WINDOW),
+ border_contents_(NULL),
+ #elif defined(OS_WIN)
+@@ -375,7 +375,7 @@
+ WidgetWin::Init(border_->GetNativeView(), gfx::Rect());
+
+ SetWindowText(GetNativeView(), delegate_->accessible_name().c_str());
+-#elif defined(OS_LINUX)
++#elif defined(TOOLKIT_USES_GTK)
+ MakeTransparent();
+ make_transient_to_parent();
+ WidgetGtk::InitWithWidget(parent, gfx::Rect());
+@@ -447,7 +447,7 @@
+ ShowWindow(SW_SHOW);
+ if (fade_in)
+ FadeIn();
+-#elif defined(OS_LINUX)
++#elif defined(TOOLKIT_USES_GTK)
+ views::WidgetGtk::Show();
+ #endif
+ }
+@@ -487,7 +487,7 @@
+ GetRootView()->GetChildViewAt(0)->RequestFocus();
+ }
+ }
+-#elif defined(OS_LINUX)
++#elif defined(TOOLKIT_GTK)
+ void InfoBubble::IsActiveChanged() {
+ if (!IsActive())
+ Close();
+@@ -506,7 +506,7 @@
+ #if defined(OS_WIN)
+ border_->Close();
+ WidgetWin::Close();
+-#elif defined(OS_LINUX)
++#elif defined(TOOLKIT_GTK)
+ WidgetGtk::Close();
+ #endif
+ }
diff --git a/www/chromium/files/patch-chrome__browser__ui__views__info_bubble.h b/www/chromium/files/patch-chrome__browser__ui__views__info_bubble.h
new file mode 100644
index 000000000000..a28bdcb075ee
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__ui__views__info_bubble.h
@@ -0,0 +1,38 @@
+--- ./chrome/browser/ui/views/info_bubble.h.orig 2010-12-16 02:11:56.000000000 +0100
++++ ./chrome/browser/ui/views/info_bubble.h 2010-12-20 20:15:08.000000000 +0100
+@@ -14,7 +14,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
+
+@@ -178,7 +178,7 @@
+ class InfoBubble
+ #if defined(OS_WIN)
+ : public views::WidgetWin,
+-#elif defined(OS_LINUX)
++#elif defined(TOOLKIT_GTK)
+ : public views::WidgetGtk,
+ #endif
+ public views::AcceleratorTarget,
+@@ -252,7 +252,7 @@
+ #if defined(OS_WIN)
+ // Overridden from WidgetWin:
+ virtual void OnActivate(UINT action, BOOL minimized, HWND window);
+-#elif defined(OS_LINUX)
++#elif defined(TOOLKIT_GTK)
+ // Overridden from WidgetGtk:
+ virtual void IsActiveChanged();
+ #endif
+@@ -260,7 +260,7 @@
+ #if defined(OS_WIN)
+ // The window used to render the padding, border and arrow.
+ BorderWidget* border_;
+-#elif defined(OS_LINUX)
++#elif defined(OS_LINUX) || defined(OS_FREEBSD)
+ // The view displaying the border.
+ BorderContents* border_contents_;
+ #endif
diff --git a/www/chromium/files/patch-chrome__browser__ui__views__location_bar__location_bar_view.cc b/www/chromium/files/patch-chrome__browser__ui__views__location_bar__location_bar_view.cc
new file mode 100644
index 000000000000..cd357532c410
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__ui__views__location_bar__location_bar_view.cc
@@ -0,0 +1,11 @@
+--- ./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
+
diff --git a/www/chromium/files/patch-chrome__browser__ui__views__notifications__balloon_view.cc b/www/chromium/files/patch-chrome__browser__ui__views__notifications__balloon_view.cc
new file mode 100644
index 000000000000..09510f265db4
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__ui__views__notifications__balloon_view.cc
@@ -0,0 +1,11 @@
+--- ./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
+
diff --git a/www/chromium/files/patch-chrome__browser__ui__views__notifications__balloon_view_host.cc b/www/chromium/files/patch-chrome__browser__ui__views__notifications__balloon_view_host.cc
new file mode 100644
index 000000000000..312a418cf92a
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__ui__views__notifications__balloon_view_host.cc
@@ -0,0 +1,29 @@
+--- ./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_);
diff --git a/www/chromium/files/patch-chrome__browser__ui__views__tabs__dragged_tab_view.cc b/www/chromium/files/patch-chrome__browser__ui__views__tabs__dragged_tab_view.cc
new file mode 100644
index 000000000000..66e6f2f6a20a
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__ui__views__tabs__dragged_tab_view.cc
@@ -0,0 +1,11 @@
+--- ./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
+
diff --git a/www/chromium/files/patch-chrome__browser__ui__views__tabs__dragged_tab_view.h b/www/chromium/files/patch-chrome__browser__ui__views__tabs__dragged_tab_view.h
new file mode 100644
index 000000000000..f79e77c18b96
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__ui__views__tabs__dragged_tab_view.h
@@ -0,0 +1,20 @@
+--- ./chrome/browser/ui/views/tabs/dragged_tab_view.h.orig 2010-12-16 02:11:56.000000000 +0100
++++ ./chrome/browser/ui/views/tabs/dragged_tab_view.h 2010-12-20 20:15:08.000000000 +0100
+@@ -14,7 +14,7 @@
+ namespace views {
+ #if defined(OS_WIN)
+ class WidgetWin;
+-#elif defined(OS_LINUX)
++#elif defined(TOOLKIT_GTK)
+ class WidgetGtk;
+ #endif
+ }
+@@ -71,7 +71,7 @@
+ // The window that contains the DraggedTabView.
+ #if defined(OS_WIN)
+ scoped_ptr<views::WidgetWin> container_;
+-#elif defined(OS_LINUX)
++#elif defined(TOOLKIT_GTK)
+ scoped_ptr<views::WidgetGtk> container_;
+ #endif
+
diff --git a/www/chromium/files/patch-chrome__browser__ui__views__tabs__tab_strip.cc b/www/chromium/files/patch-chrome__browser__ui__views__tabs__tab_strip.cc
new file mode 100644
index 000000000000..8d67addfc3c3
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__ui__views__tabs__tab_strip.cc
@@ -0,0 +1,11 @@
+--- ./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
+
diff --git a/www/chromium/files/patch-chrome__browser__ui__views__tabs__tab_strip.h b/www/chromium/files/patch-chrome__browser__ui__views__tabs__tab_strip.h
new file mode 100644
index 000000000000..a3d9112062ac
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__ui__views__tabs__tab_strip.h
@@ -0,0 +1,11 @@
+--- ./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;
diff --git a/www/chromium/files/patch-chrome__browser__web_applications__web_app.cc b/www/chromium/files/patch-chrome__browser__web_applications__web_app.cc
new file mode 100644
index 000000000000..a2e8bdcc1cbc
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__web_applications__web_app.cc
@@ -0,0 +1,23 @@
+--- ./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;
diff --git a/www/chromium/files/patch-chrome__browser__zygote_host_linux.cc b/www/chromium/files/patch-chrome__browser__zygote_host_linux.cc
new file mode 100644
index 000000000000..8a8dc3d68415
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__zygote_host_linux.cc
@@ -0,0 +1,78 @@
+--- chrome/browser/zygote_host_linux.cc.orig 2011-03-23 00:55:52.194986092 +0200
++++ chrome/browser/zygote_host_linux.cc 2011-03-23 00:56:55.886462243 +0200
+@@ -61,8 +61,16 @@
+ }
+
+ ZygoteHost::~ZygoteHost() {
+- if (init_)
++#if defined(OS_FREEBSD)
++ Pickle pickle;
++#endif
++ if (init_) {
++#if defined(OS_FREEBSD)
++ pickle.WriteInt(kCmdEnd);
++ HANDLE_EINTR(write(control_fd_, pickle.data(), pickle.size()));
++#endif
+ close(control_fd_);
++ }
+ }
+
+ // static
+@@ -81,7 +89,12 @@
+ cmd_line.AppendSwitchASCII(switches::kProcessType, switches::kZygoteProcess);
+
+ int fds[2];
++#if defined(OS_FREEBSD)
++ if (socketpair(PF_UNIX, SOCK_SEQPACKET, 0, fds) != 0)
++ CHECK(socketpair(PF_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 +162,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.
++#if defined(OS_LINUX)
+ std::vector<int> fds_vec;
+ const int kExpectedLength = sizeof(kZygoteMagic);
+ char buf[kExpectedLength];
+@@ -179,6 +193,7 @@
+ // Reap the sandbox.
+ ProcessWatcher::EnsureProcessGetsReaped(process);
+ }
++#endif // defined(OS_LINUX)
+ } else {
+ // Not using the SUID sandbox.
+ pid_ = process;
+@@ -245,9 +260,11 @@
+ if (pid <= 0)
+ return base::kNullProcessHandle;
+ }
+-
++
++#if defined(OS_LINUX)
+ const int kRendererScore = 5;
+ AdjustRendererOOMScore(pid, kRendererScore);
++#endif
+
+ return pid;
+ }
+@@ -285,6 +302,7 @@
+ selinux_valid = true;
+ }
+
++#if defined(OS_LINUX)
+ if (using_suid_sandbox_ && !selinux) {
+ base::ProcessHandle sandbox_helper_process;
+ std::vector<std::string> adj_oom_score_cmdline;
+@@ -302,6 +320,7 @@
+ if (!base::AdjustOOMScore(pid, score))
+ PLOG(ERROR) << "Failed to adjust OOM score of renderer with pid " << pid;
+ }
++#endif // defined(OS_LINUX)
+ }
+
+ void ZygoteHost::EnsureProcessTerminated(pid_t process) {
diff --git a/www/chromium/files/patch-chrome__browser__zygote_host_linux.h b/www/chromium/files/patch-chrome__browser__zygote_host_linux.h
new file mode 100644
index 000000000000..b67bb5f3b82c
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__zygote_host_linux.h
@@ -0,0 +1,12 @@
+--- ./chrome/browser/zygote_host_linux.h.orig 2010-12-16 02:11:58.000000000 +0100
++++ ./chrome/browser/zygote_host_linux.h 2010-12-20 20:15:08.000000000 +0100
+@@ -51,6 +51,9 @@
+ kCmdReap = 1, // Reap a renderer child.
+ kCmdGetTerminationStatus = 2, // Check what happend to a child process.
+ kCmdGetSandboxStatus = 3, // Read a bitmask of kSandbox*
++#if defined(OS_FREEBSD)
++ kCmdEnd = 5, // Kill zygote for SOCK_DGRAM.
++#endif
+ };
+
+ // These form a bitmask which describes the conditions of the sandbox that
diff --git a/www/chromium/files/patch-chrome__browser__zygote_main_linux.cc b/www/chromium/files/patch-chrome__browser__zygote_main_linux.cc
new file mode 100644
index 000000000000..4e09fbe2a60f
--- /dev/null
+++ b/www/chromium/files/patch-chrome__browser__zygote_main_linux.cc
@@ -0,0 +1,59 @@
+--- chrome/browser/zygote_main_linux.cc.orig 2011-01-06 10:01:46.000000000 +0100
++++ chrome/browser/zygote_main_linux.cc 2011-01-09 20:41:38.000000000 +0100
+@@ -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>
+@@ -50,7 +56,7 @@
+ #include "unicode/timezone.h"
+
+ #if defined(ARCH_CPU_X86_FAMILY) && !defined(CHROMIUM_SELINUX) && \
+- !defined(__clang__)
++ !defined(__clang__) && !defined(OS_FREEBSD)
+ // 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
+@@ -173,6 +179,11 @@
+ case ZygoteHost::kCmdGetSandboxStatus:
+ HandleGetSandboxStatus(fd, pickle, iter);
+ return false;
++#if defined(OS_FREEBSD)
++ case ZygoteHost::kCmdEnd:
++ _exit(0);
++ return false;
++#endif
+ default:
+ NOTREACHED();
+ break;
+@@ -653,7 +664,7 @@
+
+ SkiaFontConfigSetImplementation(
+ new FontConfigIPC(kMagicSandboxIPCDescriptor));
+-
++#if !defined(OS_FREEBSD)
+ // 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
+@@ -679,6 +690,7 @@
+ return false;
+ }
+ }
++#endif // !OS_FREEBSD
+ } else if (switches::SeccompSandboxEnabled()) {
+ PreSandboxInit();
+ SkiaFontConfigSetImplementation(
diff --git a/www/chromium/files/patch-chrome__chrome.gyp b/www/chromium/files/patch-chrome__chrome.gyp
new file mode 100644
index 000000000000..f7579eb454e9
--- /dev/null
+++ b/www/chromium/files/patch-chrome__chrome.gyp
@@ -0,0 +1,40 @@
+--- ./chrome/chrome.gyp.orig 2010-12-16 02:12:13.000000000 +0100
++++ ./chrome/chrome.gyp 2010-12-20 20:15:08.000000000 +0100
+@@ -96,6 +96,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': [
+@@ -673,7 +677,7 @@
+ '..',
+ ],
+ 'conditions': [
+- ['OS=="linux"', {
++ ['OS=="linux" or OS=="freebsd"', {
+ 'dependencies': [
+ '../build/linux/system.gyp:gtk',
+ ],
+@@ -795,7 +799,7 @@
+ 'gpu/media/mft_angle_video_device.h',
+ ],
+ }],
+- ['OS=="linux" and target_arch!="arm"', {
++ ['(OS=="linux" or OS=="freebsd") and target_arch!="arm"', {
+ 'sources': [
+ 'gpu/x_util.cc',
+ 'gpu/x_util.h',
+@@ -1175,7 +1179,7 @@
+ 'service/cloud_print/print_system_win.cc',
+ ],
+ }],
+- ['OS=="linux"', {
++ ['OS=="linux" or OS=="freebsd"', {
+ 'dependencies': [
+ '../build/linux/system.gyp:gtk',
+ ],
diff --git a/www/chromium/files/patch-chrome__chrome_browser.gypi b/www/chromium/files/patch-chrome__chrome_browser.gypi
new file mode 100644
index 000000000000..b393fdcbb58b
--- /dev/null
+++ b/www/chromium/files/patch-chrome__chrome_browser.gypi
@@ -0,0 +1,49 @@
+--- chrome/chrome_browser.gypi.orig 2011-03-20 22:02:04.255736830 +0200
++++ chrome/chrome_browser.gypi 2011-03-20 22:02:04.431736294 +0200
+@@ -1237,7 +1237,7 @@
+ 'browser/favicon_service.h',
+ 'browser/file_path_watcher/file_path_watcher.cc',
+ 'browser/file_path_watcher/file_path_watcher.h',
+- 'browser/file_path_watcher/file_path_watcher_inotify.cc',
++ #'browser/file_path_watcher/file_path_watcher_inotify.cc',
+ 'browser/file_path_watcher/file_path_watcher_mac.cc',
+ 'browser/file_path_watcher/file_path_watcher_win.cc',
+ 'browser/file_select_helper.cc',
+@@ -1266,8 +1266,8 @@
+ 'browser/geolocation/empty_device_data_provider.h',
+ 'browser/geolocation/gateway_data_provider_common.cc',
+ 'browser/geolocation/gateway_data_provider_common.h',
+- 'browser/geolocation/gateway_data_provider_linux.cc',
+- 'browser/geolocation/gateway_data_provider_linux.h',
++ #'browser/geolocation/gateway_data_provider_linux.cc',
++ #'browser/geolocation/gateway_data_provider_linux.h',
+ 'browser/geolocation/gateway_data_provider_win.cc',
+ 'browser/geolocation/gateway_data_provider_win.h',
+ 'browser/geolocation/geolocation_content_settings_map.cc',
+@@ -1307,7 +1307,7 @@
+ 'browser/geolocation/wifi_data_provider_corewlan_mac.mm',
+ 'browser/geolocation/wifi_data_provider_common_win.cc',
+ 'browser/geolocation/wifi_data_provider_common_win.h',
+- 'browser/geolocation/wifi_data_provider_linux.cc',
++ #'browser/geolocation/wifi_data_provider_linux.cc',
+ 'browser/geolocation/wifi_data_provider_linux.h',
+ 'browser/geolocation/wifi_data_provider_mac.cc',
+ 'browser/geolocation/wifi_data_provider_mac.h',
+@@ -3621,7 +3621,7 @@
+ ['include', '^browser/chromeos/dom_ui/login/'],
+ ],
+ }],
+- ['OS=="linux"', {
++ ['OS=="linux" or OS=="freebsd"', {
+ 'dependencies': [
+ '../build/linux/system.gyp:dbus-glib',
+ '../build/linux/system.gyp:gconf',
+@@ -4294,7 +4294,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'],
diff --git a/www/chromium/files/patch-chrome__chrome_renderer.gypi b/www/chromium/files/patch-chrome__chrome_renderer.gypi
new file mode 100644
index 000000000000..5c67ef7c6071
--- /dev/null
+++ b/www/chromium/files/patch-chrome__chrome_renderer.gypi
@@ -0,0 +1,17 @@
+--- ./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',
+ ],
diff --git a/www/chromium/files/patch-chrome__chrome_tests.gypi b/www/chromium/files/patch-chrome__chrome_tests.gypi
new file mode 100644
index 000000000000..3cfc69e0b577
--- /dev/null
+++ b/www/chromium/files/patch-chrome__chrome_tests.gypi
@@ -0,0 +1,179 @@
+--- chrome/chrome_tests.gypi.orig 2011-01-06 10:02:02.000000000 +0100
++++ chrome/chrome_tests.gypi 2011-01-09 21:00:16.000000000 +0100
+@@ -141,7 +141,7 @@
+ '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',
+@@ -191,7 +191,7 @@
+ 'test/ui/ui_test_suite.h',
+ ],
+ 'conditions': [
+- ['OS=="linux"', {
++ ['OS=="linux" or OS=="freebsd"', {
+ 'dependencies': [
+ '../build/linux/system.gyp:gtk',
+ ],
+@@ -215,7 +215,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
+@@ -261,7 +261,7 @@
+ },
+ },
+ },],
+- ['OS=="linux"', {
++ ['OS=="linux" or OS=="freebsd"', {
+ 'dependencies': [
+ '../tools/xdisplaycheck/xdisplaycheck.gyp:xdisplaycheck',
+ ],
+@@ -341,7 +341,7 @@
+ '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',
+@@ -555,12 +555,12 @@
+ '../webkit/webkit.gyp:copy_npapi_test_plugin',
+ ],
+ }],
+- ['OS=="linux"', {
++ ['OS=="linux" or OS=="freebsd"', {
+ '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',
+ ],
+@@ -720,7 +720,7 @@
+ 'test/webdriver/commands/webdriver_command.cc',
+ ],
+ 'conditions': [
+- ['OS=="linux"', {
++ ['OS=="linux" or OS=="freebsd"', {
+ 'dependencies': [
+ '../build/linux/system.gyp:gtk',
+ '../tools/xdisplaycheck/xdisplaycheck.gyp:xdisplaycheck',
+@@ -1749,7 +1749,7 @@
+ ['exclude', '^browser/chromeos/'],
+ ],
+ }],
+- ['OS=="linux"', {
++ ['OS=="linux" or OS=="freebsd"', {
+ 'conditions': [
+ ['gcc_version==44', {
+ # Avoid gcc 4.4 strict aliasing issues in stl_tree.h when
+@@ -1786,7 +1786,7 @@
+ 'sources!': [
+ 'browser/printing/print_job_unittest.cc',
+ ],
+- }, { # else: OS != "linux"
++ }, { # else: OS != "linux" and OS != "freebsd"
+ 'sources!': [
+ 'browser/gtk/tabs/tab_renderer_gtk_unittest.cc',
+ 'browser/renderer_host/gtk_key_bindings_handler_unittest.cc',
+@@ -2265,7 +2265,7 @@
+ 'browser/renderer_host/test/render_view_host_manager_browsertest.cc',
+ ],
+ }],
+- ['OS=="linux"', {
++ ['OS=="linux" or OS=="freebsd"', {
+ 'dependencies': [
+ '../build/linux/system.gyp:gtk',
+ '../build/linux/system.gyp:nss',
+@@ -2428,7 +2428,7 @@
+ },
+ },
+ },],
+- ['OS=="linux"', {
++ ['OS=="linux" or OS=="freebsd"', {
+ 'dependencies': [
+ '../build/linux/system.gyp:gtk',
+ '../tools/xdisplaycheck/xdisplaycheck.gyp:xdisplaycheck',
+@@ -2529,7 +2529,7 @@
+ },
+ },
+ },],
+- ['OS=="linux"', {
++ ['OS=="linux" or OS=="freebsd"', {
+ 'dependencies': [
+ '../build/linux/system.gyp:gtk',
+ ],
+@@ -2566,7 +2566,7 @@
+ },
+ },
+ },],
+- ['OS=="linux"', {
++ ['OS=="linux" or OS=="freebsd"', {
+ 'dependencies': [
+ '../build/linux/system.gyp:gtk',
+ '../tools/xdisplaycheck/xdisplaycheck.gyp:xdisplaycheck',
+@@ -2603,7 +2603,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',
+@@ -2637,7 +2637,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',
+@@ -2790,7 +2790,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',
+@@ -2908,7 +2908,7 @@
+ ],
+ 'conditions': [
+ # Plugin code.
+- ['OS=="linux" or OS=="win"', {
++ ['OS=="linux" or OS=="freebsd" or OS=="win"', {
+ 'dependencies': [
+ 'plugin',
+ ],
+@@ -2916,7 +2916,7 @@
+ 'plugin',
+ ],
+ }],
+- ['OS=="linux"', {
++ ['OS=="linux" or OS=="freebsd"', {
+ 'dependencies': [
+ '../build/linux/system.gyp:gtk',
+ '../build/linux/system.gyp:nss',
+@@ -3143,7 +3143,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',
diff --git a/www/chromium/files/patch-chrome__common__chrome_constants.cc b/www/chromium/files/patch-chrome__common__chrome_constants.cc
new file mode 100644
index 000000000000..b29f65fee3f1
--- /dev/null
+++ b/www/chromium/files/patch-chrome__common__chrome_constants.cc
@@ -0,0 +1,20 @@
+--- chrome/common/chrome_constants.cc.orig 2011-01-06 10:02:01.000000000 +0100
++++ chrome/common/chrome_constants.cc 2011-01-09 20:43:41.000000000 +0100
+@@ -27,7 +27,7 @@
+ #if defined(OS_WIN)
+ const FilePath::CharType kBrowserProcessExecutableName[] = FPL("chrome.exe");
+ const FilePath::CharType kHelperProcessExecutableName[] = FPL("chrome.exe");
+-#elif defined(OS_LINUX)
++#elif defined(OS_LINUX) || defined(OS_FREEBSD)
+ const FilePath::CharType kBrowserProcessExecutableName[] = FPL("chrome");
+ // Helper processes end up with a name of "exe" due to execing via
+ // /proc/self/exe. See bug 22703.
+@@ -40,7 +40,7 @@
+ #if defined(OS_WIN)
+ const FilePath::CharType kBrowserProcessExecutablePath[] = FPL("chrome.exe");
+ const FilePath::CharType kHelperProcessExecutablePath[] = FPL("chrome.exe");
+-#elif defined(OS_LINUX)
++#elif defined(OS_LINUX) || defined(OS_FREEBSD)
+ const FilePath::CharType kBrowserProcessExecutablePath[] = FPL("chrome");
+ const FilePath::CharType kHelperProcessExecutablePath[] = FPL("chrome");
+ #elif defined(OS_MACOSX)
diff --git a/www/chromium/files/patch-chrome__common__chrome_paths.cc b/www/chromium/files/patch-chrome__common__chrome_paths.cc
new file mode 100644
index 000000000000..293743e97687
--- /dev/null
+++ b/www/chromium/files/patch-chrome__common__chrome_paths.cc
@@ -0,0 +1,11 @@
+--- ./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
diff --git a/www/chromium/files/patch-chrome__common__chrome_switches.cc b/www/chromium/files/patch-chrome__common__chrome_switches.cc
new file mode 100644
index 000000000000..2eaaffd30800
--- /dev/null
+++ b/www/chromium/files/patch-chrome__common__chrome_switches.cc
@@ -0,0 +1,11 @@
+--- ./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
diff --git a/www/chromium/files/patch-chrome__common__chrome_switches.h b/www/chromium/files/patch-chrome__common__chrome_switches.h
new file mode 100644
index 000000000000..9d7b27e82856
--- /dev/null
+++ b/www/chromium/files/patch-chrome__common__chrome_switches.h
@@ -0,0 +1,11 @@
+--- ./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
+
diff --git a/www/chromium/files/patch-chrome__common__gpu_messages_internal.h b/www/chromium/files/patch-chrome__common__gpu_messages_internal.h
new file mode 100644
index 000000000000..477a4493fcb1
--- /dev/null
+++ b/www/chromium/files/patch-chrome__common__gpu_messages_internal.h
@@ -0,0 +1,11 @@
+--- ./chrome/common/gpu_messages_internal.h.orig 2010-12-16 02:12:13.000000000 +0100
++++ ./chrome/common/gpu_messages_internal.h 2010-12-20 20:15:08.000000000 +0100
+@@ -82,7 +82,7 @@
+ IPC_MESSAGE_CONTROL1(GpuHostMsg_GraphicsInfoCollected,
+ GPUInfo /* GPU logging stats */)
+
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ // Get the XID for a view ID.
+ IPC_SYNC_MESSAGE_CONTROL1_1(GpuHostMsg_GetViewXID,
+ gfx::NativeViewId, /* view */
diff --git a/www/chromium/files/patch-chrome__common__multi_process_lock.h b/www/chromium/files/patch-chrome__common__multi_process_lock.h
new file mode 100644
index 000000000000..11d4a362bc1a
--- /dev/null
+++ b/www/chromium/files/patch-chrome__common__multi_process_lock.h
@@ -0,0 +1,11 @@
+--- 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
diff --git a/www/chromium/files/patch-chrome__common__native_web_keyboard_event.h b/www/chromium/files/patch-chrome__common__native_web_keyboard_event.h
new file mode 100644
index 000000000000..361dcf60fd91
--- /dev/null
+++ b/www/chromium/files/patch-chrome__common__native_web_keyboard_event.h
@@ -0,0 +1,11 @@
+--- chrome/common/native_web_keyboard_event.h.orig 2011-03-20 22:02:04.188736136 +0200
++++ chrome/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
diff --git a/www/chromium/files/patch-chrome__common__plugin_messages.cc b/www/chromium/files/patch-chrome__common__plugin_messages.cc
new file mode 100644
index 000000000000..efec5c201fc2
--- /dev/null
+++ b/www/chromium/files/patch-chrome__common__plugin_messages.cc
@@ -0,0 +1,38 @@
+--- chrome/common/plugin_messages.cc.orig 2011-01-19 12:12:15.000000000 +0100
++++ chrome/common/plugin_messages.cc 2011-01-21 20:46:41.000000000 +0100
+@@ -56,7 +56,7 @@
+
+ PluginMsg_UpdateGeometry_Param::PluginMsg_UpdateGeometry_Param()
+ : transparent(false),
+-#if !defined(OS_MACOSX)
++#if !defined(OS_MACOSX) && !defined(OS_FREEBSD)
+ windowless_buffer(TransportDIB::DefaultHandleValue()),
+ background_buffer(TransportDIB::DefaultHandleValue())
+ #else
+@@ -271,7 +271,7 @@
+ WriteParam(m, p.windowless_buffer);
+ WriteParam(m, p.background_buffer);
+ WriteParam(m, p.transparent);
+-#if defined(OS_MACOSX)
++#if defined(OS_MACOSX) || defined(OS_FREEBSD)
+ WriteParam(m, p.ack_key);
+ #endif
+ }
+@@ -285,7 +285,7 @@
+ ReadParam(m, iter, &r->windowless_buffer) &&
+ ReadParam(m, iter, &r->background_buffer) &&
+ ReadParam(m, iter, &r->transparent)
+-#if defined(OS_MACOSX)
++#if defined(OS_MACOSX) || defined(OS_FREEBSD)
+ &&
+ ReadParam(m, iter, &r->ack_key)
+ #endif
+@@ -304,7 +304,7 @@
+ LogParam(p.background_buffer, l);
+ l->append(", ");
+ LogParam(p.transparent, l);
+-#if defined(OS_MACOSX)
++#if defined(OS_MACOSX) || defined(OS_FREEBSD)
+ l->append(", ");
+ LogParam(p.ack_key, l);
+ #endif
diff --git a/www/chromium/files/patch-chrome__common__plugin_messages.h b/www/chromium/files/patch-chrome__common__plugin_messages.h
new file mode 100644
index 000000000000..1268927e0877
--- /dev/null
+++ b/www/chromium/files/patch-chrome__common__plugin_messages.h
@@ -0,0 +1,11 @@
+--- ./chrome/common/plugin_messages.h.orig 2010-12-16 02:12:13.000000000 +0100
++++ ./chrome/common/plugin_messages.h 2010-12-20 20:15:08.000000000 +0100
+@@ -116,7 +116,7 @@
+ TransportDIB::Handle windowless_buffer;
+ TransportDIB::Handle background_buffer;
+
+-#if defined(OS_MACOSX)
++#if defined(OS_MACOSX) || defined(OS_FREEBSD)
+ // This field contains a key that the plug-in process is expected to return
+ // to the renderer in its ACK message, unless the value is -1, in which case
+ // no ACK message is required. Other than the special -1 value, the values
diff --git a/www/chromium/files/patch-chrome__common__render_messages_internal.h b/www/chromium/files/patch-chrome__common__render_messages_internal.h
new file mode 100644
index 000000000000..11dde5605031
--- /dev/null
+++ b/www/chromium/files/patch-chrome__common__render_messages_internal.h
@@ -0,0 +1,11 @@
+--- chrome/common/render_messages_internal.h.orig 2011-01-06 10:02:01.000000000 +0100
++++ chrome/common/render_messages_internal.h 2011-01-09 20:47:08.000000000 +0100
+@@ -2117,7 +2117,7 @@
+ std::string /* extension_id */,
+ std::string /* name */)
+
+-#if defined(OS_MACOSX)
++#if defined(OS_MACOSX) || defined(OS_FREEBSD)
+ // On OSX, we cannot allocated shared memory from within the sandbox, so
+ // this call exists for the renderer to ask the browser to allocate memory
+ // on its behalf. We return a file descriptor to the POSIX shared memory.
diff --git a/www/chromium/files/patch-chrome__common__set_process_title_linux.cc b/www/chromium/files/patch-chrome__common__set_process_title_linux.cc
new file mode 100644
index 000000000000..ee15dc427cdb
--- /dev/null
+++ b/www/chromium/files/patch-chrome__common__set_process_title_linux.cc
@@ -0,0 +1,19 @@
+--- chrome/common/set_process_title_linux.cc.orig 2011-03-20 22:02:04.226737055 +0200
++++ chrome/common/set_process_title_linux.cc 2011-03-20 22:02:04.407737434 +0200
+@@ -48,6 +48,8 @@
+ extern char** environ;
+
+ static char** g_main_argv = NULL;
++
++#if !defined(OS_FREEBSD)
+ static char* g_orig_argv0 = NULL;
+
+ void setproctitle(const char* fmt, ...) {
+@@ -100,6 +102,7 @@
+ va_end(ap);
+ g_main_argv[1] = NULL;
+ }
++#endif
+
+ // A version of this built into glibc would not need this function, since
+ // it could stash the argv pointer in __libc_start_main(). But we need it.
diff --git a/www/chromium/files/patch-chrome__common__set_process_title_linux.h b/www/chromium/files/patch-chrome__common__set_process_title_linux.h
new file mode 100644
index 000000000000..73a7bf6ccf8c
--- /dev/null
+++ b/www/chromium/files/patch-chrome__common__set_process_title_linux.h
@@ -0,0 +1,20 @@
+--- chrome/common/set_process_title_linux.h.orig 2011-03-20 22:02:04.219736445 +0200
++++ chrome/common/set_process_title_linux.h 2011-03-20 22:02:04.404739287 +0200
+@@ -6,6 +6,9 @@
+ #define CHROME_COMMON_SET_PROCESS_TITLE_LINUX_H_
+ #pragma once
+
++#include "build/build_config.h"
++
++#if !defined(OS_FREEBSD)
+ // Set the process title that will show in "ps" and similar tools. Takes
+ // printf-style format string and arguments. After calling setproctitle()
+ // the original main() argv[] array should not be used. By default, the
+@@ -15,6 +18,7 @@
+ // This signature and naming is to be compatible with most other Unix
+ // implementations of setproctitle().
+ void setproctitle(const char* fmt, ...);
++#endif
+
+ // Initialize state needed for setproctitle() on Linux. Pass the argv pointer
+ // from main() to setproctitle_init() before calling setproctitle().
diff --git a/www/chromium/files/patch-chrome__default_plugin__default_plugin.gyp b/www/chromium/files/patch-chrome__default_plugin__default_plugin.gyp
new file mode 100644
index 000000000000..286ee4561cee
--- /dev/null
+++ b/www/chromium/files/patch-chrome__default_plugin__default_plugin.gyp
@@ -0,0 +1,11 @@
+--- ./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',
+ ],
diff --git a/www/chromium/files/patch-chrome__gpu__gpu_channel.cc b/www/chromium/files/patch-chrome__gpu__gpu_channel.cc
new file mode 100644
index 000000000000..9a9ffa8efa5a
--- /dev/null
+++ b/www/chromium/files/patch-chrome__gpu__gpu_channel.cc
@@ -0,0 +1,11 @@
+--- chrome/gpu/gpu_channel.cc.orig 2011-01-26 10:30:52.000000000 +0100
++++ chrome/gpu/gpu_channel.cc 2011-01-30 14:12:45.000000000 +0100
+@@ -139,7 +139,7 @@
+ // offscreen rendering and the browser provides whichever platform specific
+ // "render target" the GpuCommandBufferStub targets.
+ handle = gfx::NativeViewFromId(view_id);
+-#elif defined(OS_LINUX)
++#elif defined(OS_LINUX) || defined(OS_FREEBSD)
+ // Ask the browser for the view's XID.
+ gpu_thread_->Send(new GpuHostMsg_GetViewXID(view_id, &handle));
+ #elif defined(OS_MACOSX)
diff --git a/www/chromium/files/patch-chrome__gpu__x_util.h b/www/chromium/files/patch-chrome__gpu__x_util.h
new file mode 100644
index 000000000000..572626a58f7b
--- /dev/null
+++ b/www/chromium/files/patch-chrome__gpu__x_util.h
@@ -0,0 +1,19 @@
+--- ./chrome/gpu/x_util.h.orig 2010-12-16 02:11:58.000000000 +0100
++++ ./chrome/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_
diff --git a/www/chromium/files/patch-chrome__plugin__plugin_main_linux.cc b/www/chromium/files/patch-chrome__plugin__plugin_main_linux.cc
new file mode 100644
index 000000000000..70c3d55dc5ab
--- /dev/null
+++ b/www/chromium/files/patch-chrome__plugin__plugin_main_linux.cc
@@ -0,0 +1,18 @@
+--- ./chrome/plugin/plugin_main_linux.cc.orig 2010-12-16 02:11:58.000000000 +0100
++++ ./chrome/plugin/plugin_main_linux.cc 2010-12-20 20:15:08.000000000 +0100
+@@ -5,13 +5,13 @@
+ #include <signal.h>
+ #include <string.h>
+ #include <sys/types.h>
+-#include <syscall.h>
++#include <sys/syscall.h>
+ #include <unistd.h>
+
+ #include "build/build_config.h"
+
+ // This whole file is only useful on 64-bit architectures.
+-#if defined(ARCH_CPU_64_BITS)
++#if defined(ARCH_CPU_64_BITS) && !defined(OS_FREEBSD)
+
+ namespace {
+
diff --git a/www/chromium/files/patch-chrome__plugin__plugin_thread.cc b/www/chromium/files/patch-chrome__plugin__plugin_thread.cc
new file mode 100644
index 000000000000..d6d5e786a380
--- /dev/null
+++ b/www/chromium/files/patch-chrome__plugin__plugin_thread.cc
@@ -0,0 +1,20 @@
+--- ./chrome/plugin/plugin_thread.cc.orig 2010-12-16 02:11:58.000000000 +0100
++++ ./chrome/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.
diff --git a/www/chromium/files/patch-chrome__renderer__mock_render_thread.cc b/www/chromium/files/patch-chrome__renderer__mock_render_thread.cc
new file mode 100644
index 000000000000..7b23a646baf6
--- /dev/null
+++ b/www/chromium/files/patch-chrome__renderer__mock_render_thread.cc
@@ -0,0 +1,20 @@
+--- ./chrome/renderer/mock_render_thread.cc.orig 2010-12-16 02:11:59.000000000 +0100
++++ ./chrome/renderer/mock_render_thread.cc 2010-12-20 20:15:08.000000000 +0100
+@@ -108,7 +108,7 @@
+ IPC_MESSAGE_HANDLER(ViewHostMsg_AllocatePDFTransport,
+ OnAllocatePDFTransport)
+ #endif
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ IPC_MESSAGE_HANDLER(ViewHostMsg_AllocateTempFileForPrinting,
+ OnAllocateTempFileForPrinting)
+ IPC_MESSAGE_HANDLER(ViewHostMsg_TempFileForPrintingWritten,
+@@ -156,7 +156,7 @@
+ }
+ #endif
+
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ void MockRenderThread::OnAllocateTempFileForPrinting(
+ base::FileDescriptor* renderer_fd,
+ int* browser_fd) {
diff --git a/www/chromium/files/patch-chrome__renderer__mock_render_thread.h b/www/chromium/files/patch-chrome__renderer__mock_render_thread.h
new file mode 100644
index 000000000000..258d19da3579
--- /dev/null
+++ b/www/chromium/files/patch-chrome__renderer__mock_render_thread.h
@@ -0,0 +1,11 @@
+--- ./chrome/renderer/mock_render_thread.h.orig 2010-12-16 02:11:59.000000000 +0100
++++ ./chrome/renderer/mock_render_thread.h 2010-12-20 20:15:08.000000000 +0100
+@@ -105,7 +105,7 @@
+ base::SharedMemoryHandle* handle);
+ #endif
+
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ void OnAllocateTempFileForPrinting(base::FileDescriptor* renderer_fd,
+ int* browser_fd);
+ void OnTempFileForPrintingWritten(int browser_fd);
diff --git a/www/chromium/files/patch-chrome__renderer__pepper_devices.cc b/www/chromium/files/patch-chrome__renderer__pepper_devices.cc
new file mode 100644
index 000000000000..e170f3b44e95
--- /dev/null
+++ b/www/chromium/files/patch-chrome__renderer__pepper_devices.cc
@@ -0,0 +1,11 @@
+--- chrome/renderer/pepper_devices.cc.orig 2011-03-23 00:44:41.089126548 +0200
++++ chrome/renderer/pepper_devices.cc 2011-03-23 00:45:00.811641561 +0200
+@@ -52,7 +52,7 @@
+ uint32 buffer_size = width * height * kBytesPerPixel;
+
+ // Allocate the transport DIB and the PlatformCanvas pointing to it.
+-#if defined(OS_MACOSX)
++#if defined(OS_MACOSX) || defined(OS_FREEBSD)
+ // On the Mac, shared memory has to be created in the browser in order to
+ // work in the sandbox. Do this by sending a message to the browser
+ // requesting a TransportDIB (see also
diff --git a/www/chromium/files/patch-chrome__renderer__pepper_plugin_delegate_impl.cc b/www/chromium/files/patch-chrome__renderer__pepper_plugin_delegate_impl.cc
new file mode 100644
index 000000000000..53c5c333cb9c
--- /dev/null
+++ b/www/chromium/files/patch-chrome__renderer__pepper_plugin_delegate_impl.cc
@@ -0,0 +1,38 @@
+--- chrome/renderer/pepper_plugin_delegate_impl.cc.orig 2011-03-23 00:45:32.195641203 +0200
++++ chrome/renderer/pepper_plugin_delegate_impl.cc 2011-03-23 00:45:48.140640079 +0200
+@@ -48,7 +48,7 @@
+ #include "webkit/plugins/ppapi/ppapi_plugin_instance.h"
+ #include "webkit/plugins/ppapi/ppb_flash_impl.h"
+
+-#if defined(OS_MACOSX)
++#if defined(OS_MACOSX) || defined(OS_FREEBSD)
+ #include "chrome/common/render_messages.h"
+ #include "chrome/renderer/render_thread.h"
+ #endif
+@@ -76,7 +76,7 @@
+ dib_(dib) {
+ }
+
+-#if defined(OS_MACOSX)
++#if defined(OS_MACOSX) || defined(OS_FREEBSD)
+ // On Mac, we have to tell the browser to free the transport DIB.
+ virtual ~PlatformImage2DImpl() {
+ if (dib_.get()) {
+@@ -94,7 +94,7 @@
+ *byte_count = dib_->size();
+ #if defined(OS_WIN)
+ return reinterpret_cast<intptr_t>(dib_->handle());
+-#elif defined(OS_MACOSX)
++#elif defined(OS_MACOSX) || defined(OS_FREEBSD)
+ return static_cast<intptr_t>(dib_->handle().fd);
+ #elif defined(OS_LINUX)
+ return static_cast<intptr_t>(dib_->handle());
+@@ -494,7 +494,7 @@
+ uint32 buffer_size = width * height * 4;
+
+ // Allocate the transport DIB and the PlatformCanvas pointing to it.
+-#if defined(OS_MACOSX)
++#if defined(OS_MACOSX) || defined(OS_FREEBSD)
+ // On the Mac, shared memory has to be created in the browser in order to
+ // work in the sandbox. Do this by sending a message to the browser
+ // requesting a TransportDIB (see also
diff --git a/www/chromium/files/patch-chrome__renderer__pepper_scrollbar_widget.h b/www/chromium/files/patch-chrome__renderer__pepper_scrollbar_widget.h
new file mode 100644
index 000000000000..24fad497ce70
--- /dev/null
+++ b/www/chromium/files/patch-chrome__renderer__pepper_scrollbar_widget.h
@@ -0,0 +1,11 @@
+--- ./chrome/renderer/pepper_scrollbar_widget.h.orig 2010-12-16 02:11:59.000000000 +0100
++++ ./chrome/renderer/pepper_scrollbar_widget.h 2010-12-20 20:15:08.000000000 +0100
+@@ -38,7 +38,7 @@
+ virtual void getTickmarks(WebKit::WebScrollbar*,
+ WebKit::WebVector<WebKit::WebRect>*) const;
+
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ static void SetScrollbarColors(unsigned inactive_color,
+ unsigned active_color,
+ unsigned track_color);
diff --git a/www/chromium/files/patch-chrome__renderer__render_process_impl.cc b/www/chromium/files/patch-chrome__renderer__render_process_impl.cc
new file mode 100644
index 000000000000..53e780c25f72
--- /dev/null
+++ b/www/chromium/files/patch-chrome__renderer__render_process_impl.cc
@@ -0,0 +1,29 @@
+--- ./chrome/renderer/render_process_impl.cc.orig 2010-12-16 02:11:59.000000000 +0100
++++ ./chrome/renderer/render_process_impl.cc 2010-12-20 20:15:08.000000000 +0100
+@@ -243,7 +243,7 @@
+ #if defined(OS_WIN) || defined(OS_LINUX)
+ // 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)
+ // 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 @@
+ if (!dib)
+ return;
+
+-#if defined(OS_MACOSX)
++#if defined(OS_MACOSX) || defined(OS_FREEBSD)
+ // 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 @@
+ 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)
+ const size_t max_size = base::SysInfo::MaxSharedMemorySize();
+ #else
+ const size_t max_size = 0;
diff --git a/www/chromium/files/patch-chrome__renderer__render_thread.cc b/www/chromium/files/patch-chrome__renderer__render_thread.cc
new file mode 100644
index 000000000000..6acb175f2494
--- /dev/null
+++ b/www/chromium/files/patch-chrome__renderer__render_thread.cc
@@ -0,0 +1,20 @@
+--- ./chrome/renderer/render_thread.cc.orig 2010-12-16 02:11:59.000000000 +0100
++++ ./chrome/renderer/render_thread.cc 2010-12-20 20:15:08.000000000 +0100
+@@ -972,7 +972,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
+
+@@ -1048,7 +1048,7 @@
+ while (!v8::V8::IdleNotification()) {
+ }
+
+-#if (defined(OS_WIN) || defined(OS_LINUX)) && defined(USE_TCMALLOC)
++#if !defined(OS_MACOSX) && defined(USE_TCMALLOC)
+ // Tell tcmalloc to release any free pages it's still holding.
+ MallocExtension::instance()->ReleaseFreeMemory();
+ #endif
diff --git a/www/chromium/files/patch-chrome__renderer__render_view.h b/www/chromium/files/patch-chrome__renderer__render_view.h
new file mode 100644
index 000000000000..581e3e381275
--- /dev/null
+++ b/www/chromium/files/patch-chrome__renderer__render_view.h
@@ -0,0 +1,11 @@
+--- ./chrome/renderer/render_view.h.orig 2010-12-16 02:11:59.000000000 +0100
++++ ./chrome/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() {}
diff --git a/www/chromium/files/patch-chrome__renderer__render_widget.cc b/www/chromium/files/patch-chrome__renderer__render_widget.cc
new file mode 100644
index 000000000000..d7e35e10afe4
--- /dev/null
+++ b/www/chromium/files/patch-chrome__renderer__render_widget.cc
@@ -0,0 +1,11 @@
+--- chrome/renderer/render_widget.cc.orig 2011-03-23 00:47:39.891641114 +0200
++++ chrome/renderer/render_widget.cc 2011-03-23 00:48:36.043641158 +0200
+@@ -888,7 +888,7 @@
+ // Close our unused handle.
+ #if defined(OS_WIN)
+ ::CloseHandle(dib_handle);
+-#elif defined(OS_MACOSX)
++#elif defined(OS_MACOSX) || defined(OS_FREEBSD)
+ base::SharedMemory::CloseHandle(dib_handle);
+ #endif
+ }
diff --git a/www/chromium/files/patch-chrome__renderer__renderer_glue.cc b/www/chromium/files/patch-chrome__renderer__renderer_glue.cc
new file mode 100644
index 000000000000..d702d968a10f
--- /dev/null
+++ b/www/chromium/files/patch-chrome__renderer__renderer_glue.cc
@@ -0,0 +1,20 @@
+--- ./chrome/renderer/renderer_glue.cc.orig 2010-12-16 02:11:59.000000000 +0100
++++ ./chrome/renderer/renderer_glue.cc 2010-12-20 20:15:08.000000000 +0100
+@@ -38,7 +38,7 @@
+
+ #if defined(OS_WIN)
+ #include <strsafe.h> // note: per msdn docs, this must *follow* other includes
+-#elif defined(OS_LINUX)
++#elif defined(OS_LINUX) || defined(OS_FREEBSD)
+ #include "chrome/renderer/renderer_sandbox_support_linux.h"
+ #endif
+
+@@ -274,7 +274,7 @@
+ new ViewHostMsg_UserMetricsRecordAction(action));
+ }
+
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ int MatchFontWithFallback(const std::string& face, bool bold,
+ bool italic, int charset) {
+ return renderer_sandbox_support::MatchFontWithFallback(
diff --git a/www/chromium/files/patch-chrome__renderer__renderer_main.cc b/www/chromium/files/patch-chrome__renderer__renderer_main.cc
new file mode 100644
index 000000000000..0cb6e3c4350f
--- /dev/null
+++ b/www/chromium/files/patch-chrome__renderer__renderer_main.cc
@@ -0,0 +1,20 @@
+--- chrome/renderer/renderer_main.cc.orig 2011-03-20 22:02:04.303357408 +0200
++++ chrome/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
diff --git a/www/chromium/files/patch-chrome__renderer__renderer_main_platform_delegate_linux.cc b/www/chromium/files/patch-chrome__renderer__renderer_main_platform_delegate_linux.cc
new file mode 100644
index 000000000000..d2f337bdd4b1
--- /dev/null
+++ b/www/chromium/files/patch-chrome__renderer__renderer_main_platform_delegate_linux.cc
@@ -0,0 +1,11 @@
+--- chrome/renderer/renderer_main_platform_delegate_linux.cc.orig 2011-03-20 22:02:04.353053389 +0200
++++ chrome/renderer/renderer_main_platform_delegate_linux.cc 2011-03-20 22:02:04.476736985 +0200
+@@ -36,7 +36,7 @@
+ // The seccomp sandbox is started in the renderer.
+ // http://code.google.com/p/seccompsandbox/
+ #if defined(ARCH_CPU_X86_FAMILY) && !defined(CHROMIUM_SELINUX) && \
+- !defined(__clang__)
++ !defined(__clang__) && !defined(OS_FREEBSD)
+ // N.b. SupportsSeccompSandbox() returns a cached result, as we already
+ // called it earlier in the zygote. Thus, it is OK for us to not pass in
+ // a file descriptor for "/proc".
diff --git a/www/chromium/files/patch-chrome__renderer__renderer_webkitclient_impl.cc b/www/chromium/files/patch-chrome__renderer__renderer_webkitclient_impl.cc
new file mode 100644
index 000000000000..15372cc66b5e
--- /dev/null
+++ b/www/chromium/files/patch-chrome__renderer__renderer_webkitclient_impl.cc
@@ -0,0 +1,29 @@
+--- chrome/renderer/renderer_webkitclient_impl.cc.orig 2011-03-20 22:02:04.310852495 +0200
++++ chrome/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) {
diff --git a/www/chromium/files/patch-chrome__renderer__webplugin_delegate_pepper.cc b/www/chromium/files/patch-chrome__renderer__webplugin_delegate_pepper.cc
new file mode 100644
index 000000000000..5fc084fed516
--- /dev/null
+++ b/www/chromium/files/patch-chrome__renderer__webplugin_delegate_pepper.cc
@@ -0,0 +1,116 @@
+--- ./chrome/renderer/webplugin_delegate_pepper.cc.orig 2010-12-16 02:11:59.000000000 +0100
++++ ./chrome/renderer/webplugin_delegate_pepper.cc 2010-12-20 20:15:08.000000000 +0100
+@@ -9,7 +9,7 @@
+ #include <string>
+ #include <vector>
+
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ #include <unistd.h>
+ #endif
+
+@@ -39,7 +39,7 @@
+ #include "chrome/renderer/pepper_widget.h"
+ #include "chrome/renderer/render_thread.h"
+ #include "chrome/renderer/render_view.h"
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ #include "chrome/renderer/renderer_sandbox_support_linux.h"
+ #endif
+ #include "chrome/renderer/webplugin_delegate_proxy.h"
+@@ -463,7 +463,7 @@
+ NPError NPMatchFontWithFallback(NPP instance,
+ const NPFontDescription* description,
+ NPFontID* id) {
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ int fd = renderer_sandbox_support::MatchFontWithFallback(
+ description->face, description->weight >= 700, description->italic,
+ description->charset);
+@@ -482,7 +482,7 @@
+ uint32_t table,
+ void* output,
+ size_t* output_length) {
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ bool rv = renderer_sandbox_support::GetFontTable(
+ id, table, static_cast<uint8_t*>(output), output_length);
+ return rv ? NPERR_NO_ERROR : NPERR_GENERIC_ERROR;
+@@ -493,7 +493,7 @@
+ }
+
+ NPError NPDestroyFont(NPP instance, NPFontID id) {
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ close(id);
+ return NPERR_NO_ERROR;
+ #else
+@@ -1169,10 +1169,10 @@
+ current_printer_dpi_ = printer_dpi;
+ }
+ }
+-#if defined (OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ num_pages_ = num_pages;
+ pdf_output_done_ = false;
+-#endif // (OS_LINUX)
++#endif // OS_LINUX || OS_FREEBSD
+ return num_pages;
+ }
+
+@@ -1198,7 +1198,7 @@
+ unsigned char* pdf_output = NULL;
+ int32 output_size = 0;
+ NPPrintPageNumberRange page_range;
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ // On Linux we will try and output all pages as PDF in the first call to
+ // PrintPage. This is a temporary hack.
+ // TODO(sanjeevr): Remove this hack and fix this by changing the print
+@@ -1207,9 +1207,9 @@
+ return pdf_output_done_;
+ page_range.firstPageNumber = 0;
+ page_range.lastPageNumber = num_pages_ - 1;
+-#else // defined(OS_LINUX)
++#else // defined(OS_LINUX) || defined(OS_FREEBSD)
+ page_range.firstPageNumber = page_range.lastPageNumber = page_number;
+-#endif // defined(OS_LINUX)
++#endif // defined(OS_LINUX) || defined(OS_FREEBSD)
+ NPError err = print_extensions->printPagesAsPDF(instance()->npp(),
+ &page_range, 1,
+ &pdf_output, &output_size);
+@@ -1217,7 +1217,7 @@
+ return false;
+
+ bool ret = false;
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ // On Linux we need to get the backing PdfPsMetafile and write the bits
+ // directly.
+ cairo_t* context = canvas->beginPlatformPaint();
+@@ -1370,10 +1370,10 @@
+ current_printer_dpi_ = -1;
+ #if defined(OS_MACOSX)
+ last_printed_page_ = SkBitmap();
+-#elif defined(OS_LINUX)
++#elif defined(OS_LINUX) || defined(OS_FREEBSD)
+ num_pages_ = 0;
+ pdf_output_done_ = false;
+-#endif // defined(OS_LINUX)
++#endif // defined(OS_LINUX) || defined(OS_FREEBSD)
+ }
+
+ WebPluginDelegatePepper::WebPluginDelegatePepper(
+@@ -1384,10 +1384,10 @@
+ instance_(instance),
+ nested_delegate_(NULL),
+ current_printer_dpi_(-1),
+-#if defined (OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ num_pages_(0),
+ pdf_output_done_(false),
+-#endif // (OS_LINUX)
++#endif // OS_LINUX || OS_FREEBSD
+ #if defined(ENABLE_GPU)
+ command_buffer_(NULL),
+ method_factory3d_(ALLOW_THIS_IN_INITIALIZER_LIST(this)),
diff --git a/www/chromium/files/patch-chrome__renderer__webplugin_delegate_pepper.h b/www/chromium/files/patch-chrome__renderer__webplugin_delegate_pepper.h
new file mode 100644
index 000000000000..dbaa22a43618
--- /dev/null
+++ b/www/chromium/files/patch-chrome__renderer__webplugin_delegate_pepper.h
@@ -0,0 +1,20 @@
+--- ./chrome/renderer/webplugin_delegate_pepper.h.orig 2010-12-16 02:11:59.000000000 +0100
++++ ./chrome/renderer/webplugin_delegate_pepper.h 2010-12-20 20:15:08.000000000 +0100
+@@ -308,7 +308,7 @@
+ // variable to hold on to the pixels.
+ SkBitmap last_printed_page_;
+ #endif // defined(OS_MACOSX)
+-#if defined (OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ // On Linux, we always send all pages from the renderer to the browser.
+ // So, if the plugin supports printPagesAsPDF we print the entire output
+ // in one shot in the first call to PrintPage.
+@@ -319,7 +319,7 @@
+ // Specifies whether we have already output all pages. This is used to ignore
+ // subsequent PrintPage requests.
+ bool pdf_output_done_;
+-#endif // defined(OS_LINUX)
++#endif // defined(OS_LINUX) || defined(OS_FREEBSD)
+
+ #if defined(ENABLE_GPU)
+ // The command buffer used to issue commands to the nested GPU plugin.
diff --git a/www/chromium/files/patch-chrome__renderer__webplugin_delegate_proxy.cc b/www/chromium/files/patch-chrome__renderer__webplugin_delegate_proxy.cc
new file mode 100644
index 000000000000..1bb81ae3f225
--- /dev/null
+++ b/www/chromium/files/patch-chrome__renderer__webplugin_delegate_proxy.cc
@@ -0,0 +1,62 @@
+--- chrome/renderer/webplugin_delegate_proxy.cc.orig Mon Mar 14 19:30:50 2011
++++ chrome/renderer/webplugin_delegate_proxy.cc Mon Mar 14 19:39:56 2011
+@@ -158,7 +158,7 @@ class ResourceClientProxy : public webkit::npapi::WebP
+ bool multibyte_response_expected_;
+ };
+
+-#if defined(OS_MACOSX)
++#if defined(OS_MACOSX) || defined(OS_OPENBSD)
+ static void ReleaseTransportDIB(TransportDIB* dib) {
+ if (dib) {
+ IPC::Message* message = new ViewHostMsg_FreeTransportDIB(dib->id());
+@@ -184,7 +184,7 @@ WebPluginDelegateProxy::WebPluginDelegateProxy(
+ }
+
+ WebPluginDelegateProxy::~WebPluginDelegateProxy() {
+-#if defined(OS_MACOSX)
++#if defined(OS_MACOSX) || defined(OS_OPENBSD)
+ // Ask the browser to release old TransportDIB objects for which no
+ // PluginHostMsg_UpdateGeometry_ACK was ever received from the plugin
+ // process.
+@@ -530,7 +530,7 @@ void WebPluginDelegateProxy::UpdateGeometry(const gfx:
+ bool bitmaps_changed = false;
+
+ PluginMsg_UpdateGeometry_Param param;
+-#if defined(OS_MACOSX)
++#if defined(OS_MACOSX) || defined(OS_OPENBSD)
+ param.ack_key = -1;
+ #endif
+
+@@ -542,7 +542,7 @@ void WebPluginDelegateProxy::UpdateGeometry(const gfx:
+ bitmaps_changed = true;
+
+ bool needs_background_store = transparent_;
+-#if defined(OS_MACOSX)
++#if defined(OS_MACOSX) || defined(OS_OPENBSD)
+ // We don't support transparency under QuickDraw, and CoreGraphics
+ // preserves transparency information (and does the compositing itself)
+ // so plugins don't need access to the page background.
+@@ -614,7 +614,7 @@ void WebPluginDelegateProxy::UpdateGeometry(const gfx:
+ }
+
+ void WebPluginDelegateProxy::ResetWindowlessBitmaps() {
+-#if defined(OS_MACOSX)
++#if defined(OS_MACOSX) || defined(OS_OPENBSD)
+ DCHECK(!background_store_.get());
+ // The Mac TransportDIB implementation uses base::SharedMemory, which
+ // cannot be disposed of if an in-flight UpdateGeometry message refers to
+@@ -675,12 +675,12 @@ bool WebPluginDelegateProxy::CreateSharedBitmap(
+ scoped_ptr<TransportDIB>* memory,
+ scoped_ptr<skia::PlatformCanvas>* canvas) {
+ const size_t size = BitmapSizeForPluginRect(plugin_rect_);
+-#if defined(OS_POSIX) && !defined(OS_MACOSX)
++#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_OPENBSD)
+ memory->reset(TransportDIB::Create(size, 0));
+ if (!memory->get())
+ return false;
+ #endif
+-#if defined(OS_MACOSX)
++#if defined(OS_MACOSX) || defined(OS_OPENBSD)
+ TransportDIB::Handle handle;
+ IPC::Message* msg = new ViewHostMsg_AllocTransportDIB(size, true, &handle);
+ if (!RenderThread::current()->Send(msg)) \ No newline at end of file
diff --git a/www/chromium/files/patch-chrome__renderer__webplugin_delegate_proxy.h b/www/chromium/files/patch-chrome__renderer__webplugin_delegate_proxy.h
new file mode 100644
index 000000000000..68c34bdf9cc5
--- /dev/null
+++ b/www/chromium/files/patch-chrome__renderer__webplugin_delegate_proxy.h
@@ -0,0 +1,20 @@
+--- chrome/renderer/webplugin_delegate_proxy.h.orig 2011-03-23 00:46:31.521939657 +0200
++++ chrome/renderer/webplugin_delegate_proxy.h 2011-03-23 00:47:12.163682393 +0200
+@@ -21,7 +21,7 @@
+ #include "webkit/plugins/npapi/webplugininfo.h"
+ #include "webkit/plugins/npapi/webplugin_delegate.h"
+
+-#if defined(OS_MACOSX)
++#if defined(OS_MACOSX) || defined(OS_FREEBSD)
+ #include "base/hash_tables.h"
+ #include "base/linked_ptr.h"
+ #endif
+@@ -216,7 +216,7 @@
+ // point the window has already been destroyed).
+ void WillDestroyWindow();
+
+-#if defined(OS_MACOSX)
++#if defined(OS_MACOSX) || defined(OS_FREEBSD)
+ // Synthesize a fake window handle for the plug-in to identify the instance
+ // to the browser, allowing mapping to a surface for hardware acceleration
+ // of plug-in content. The browser generates the handle which is then set on
diff --git a/www/chromium/files/patch-chrome__test__automation__automation_proxy_uitest.cc b/www/chromium/files/patch-chrome__test__automation__automation_proxy_uitest.cc
new file mode 100644
index 000000000000..46f9d39234c8
--- /dev/null
+++ b/www/chromium/files/patch-chrome__test__automation__automation_proxy_uitest.cc
@@ -0,0 +1,20 @@
+--- ./chrome/test/automation/automation_proxy_uitest.cc.orig 2010-12-16 02:12:11.000000000 +0100
++++ ./chrome/test/automation/automation_proxy_uitest.cc 2010-12-20 20:15:08.000000000 +0100
+@@ -1327,7 +1327,7 @@
+ #endif // defined(OS_WIN)
+
+ // TODO(port): Need to port autocomplete_edit_proxy.* first.
+-#if defined(OS_WIN) || defined(OS_LINUX)
++#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_FREEBSD)
+ TEST_F(AutomationProxyTest, AutocompleteGetSetText) {
+ scoped_refptr<BrowserProxy> browser(automation()->GetBrowserWindow(0));
+ ASSERT_TRUE(browser.get());
+@@ -1371,7 +1371,7 @@
+ EXPECT_EQ(text_to_set2, actual_text2);
+ }
+
+-#endif // defined(OS_WIN) || defined(OS_LINUX)
++#endif // defined(OS_WIN) || defined(OS_LINUX) || defined(OS_FREEBSD)
+
+ #if defined(OS_MACOSX)
+ // Disabled, http://crbug.com/48601.
diff --git a/www/chromium/files/patch-chrome__test__chrome_process_util.cc b/www/chromium/files/patch-chrome__test__chrome_process_util.cc
new file mode 100644
index 000000000000..a4899669fadf
--- /dev/null
+++ b/www/chromium/files/patch-chrome__test__chrome_process_util.cc
@@ -0,0 +1,23 @@
+--- ./chrome/test/chrome_process_util.cc.orig 2010-12-16 02:12:11.000000000 +0100
++++ ./chrome/test/chrome_process_util.cc 2010-12-20 20:15:08.000000000 +0100
+@@ -61,7 +61,7 @@
+ result.push_back(process_entry->pid());
+ }
+
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ // On Linux we might be running with a zygote process for the renderers.
+ // Because of that we sweep the list of processes again and pick those which
+ // are children of one of the processes that we've already seen.
+@@ -72,9 +72,9 @@
+ while (const base::ProcessEntry* process_entry = it.NextProcessEntry())
+ result.push_back(process_entry->pid());
+ }
+-#endif // defined(OS_LINUX)
++#endif // defined(OS_LINUX) || defined(OS_FREEBSD)
+
+-#if defined(OS_LINUX) || defined(OS_MACOSX)
++#if defined(OS_POSIX)
+ // On Mac OS X we run the subprocesses with a different bundle, and
+ // on Linux via /proc/self/exe, so they end up with a different
+ // name. We must collect them in a second pass.
diff --git a/www/chromium/files/patch-chrome__test__page_cycler__page_cycler_test.cc b/www/chromium/files/patch-chrome__test__page_cycler__page_cycler_test.cc
new file mode 100644
index 000000000000..4d9fecf63a89
--- /dev/null
+++ b/www/chromium/files/patch-chrome__test__page_cycler__page_cycler_test.cc
@@ -0,0 +1,11 @@
+--- ./chrome/test/page_cycler/page_cycler_test.cc.orig 2010-12-16 02:12:11.000000000 +0100
++++ ./chrome/test/page_cycler/page_cycler_test.cc 2010-12-20 20:15:08.000000000 +0100
+@@ -298,7 +298,7 @@
+ dir = dir.AppendASCII("reference_build");
+ #if defined(OS_WIN)
+ dir = dir.AppendASCII("chrome");
+-#elif defined(OS_LINUX)
++#elif defined(OS_LINUX) || defined(OS_FREEBSD)
+ dir = dir.AppendASCII("chrome_linux");
+ #elif defined(OS_MACOSX)
+ dir = dir.AppendASCII("chrome_mac");
diff --git a/www/chromium/files/patch-chrome__test__reliability__page_load_test.cc b/www/chromium/files/patch-chrome__test__reliability__page_load_test.cc
new file mode 100644
index 000000000000..438201690b45
--- /dev/null
+++ b/www/chromium/files/patch-chrome__test__reliability__page_load_test.cc
@@ -0,0 +1,11 @@
+--- ./chrome/test/reliability/page_load_test.cc.orig 2010-12-16 02:12:11.000000000 +0100
++++ ./chrome/test/reliability/page_load_test.cc 2010-12-20 20:15:08.000000000 +0100
+@@ -165,7 +165,7 @@
+ scoped_ptr<FileVersionInfo> file_info;
+ file_info.reset(FileVersionInfo::CreateFileVersionInfo(kChromeDll));
+ last_change = WideToASCII(file_info->last_change());
+-#elif defined(OS_LINUX) || defined(OS_MACOSX)
++#elif defined(OS_LINUX) || defined(OS_FREEBSD) || defined(OS_MACOSX)
+ // TODO(fmeawad): On Mac, the version retrieved here belongs to the test
+ // module and not the chrome binary, need to be changed to chrome binary
+ // instead.
diff --git a/www/chromium/files/patch-chrome__test__startup__feature_startup_test.cc b/www/chromium/files/patch-chrome__test__startup__feature_startup_test.cc
new file mode 100644
index 000000000000..a9e54c079dc4
--- /dev/null
+++ b/www/chromium/files/patch-chrome__test__startup__feature_startup_test.cc
@@ -0,0 +1,11 @@
+--- ./chrome/test/startup/feature_startup_test.cc.orig 2010-12-16 02:12:00.000000000 +0100
++++ ./chrome/test/startup/feature_startup_test.cc 2010-12-20 20:15:08.000000000 +0100
+@@ -192,7 +192,7 @@
+ RunNewTabTimingTest();
+ }
+
+-#if defined(OS_LINUX)
++#if defined(TOOLKIT_GTK)
+ TEST_F(NewTabUIStartupTest, GtkThemeCold) {
+ RunStartupTest("tab_gtk_theme_cold", false /* cold */,
+ false /* not important */,
diff --git a/www/chromium/files/patch-chrome__test__testing_browser_process.h b/www/chromium/files/patch-chrome__test__testing_browser_process.h
new file mode 100644
index 000000000000..73e471d1cf9f
--- /dev/null
+++ b/www/chromium/files/patch-chrome__test__testing_browser_process.h
@@ -0,0 +1,11 @@
+--- ./chrome/test/testing_browser_process.h.orig 2010-12-16 02:12:11.000000000 +0100
++++ ./chrome/test/testing_browser_process.h 2010-12-20 20:15:08.000000000 +0100
+@@ -52,7 +52,7 @@
+ return NULL;
+ }
+
+-#if defined(OS_LINUX)
++#if defined(USE_X11)
+ virtual base::Thread* background_x11_thread() {
+ return NULL;
+ }
diff --git a/www/chromium/files/patch-chrome__test__testing_profile.cc b/www/chromium/files/patch-chrome__test__testing_profile.cc
new file mode 100644
index 000000000000..576e689b13b7
--- /dev/null
+++ b/www/chromium/files/patch-chrome__test__testing_profile.cc
@@ -0,0 +1,20 @@
+--- chrome/test/testing_profile.cc.orig 2011-01-26 10:31:06.000000000 +0100
++++ chrome/test/testing_profile.cc 2011-01-30 14:14:21.000000000 +0100
+@@ -49,7 +49,7 @@
+ #include "testing/gmock/include/gmock/gmock.h"
+ #include "webkit/database/database_tracker.h"
+
+-#if defined(OS_LINUX) && !defined(TOOLKIT_VIEWS)
++#if defined(TOOLKIT_GTK) && !defined(TOOLKIT_VIEWS)
+ #include "chrome/browser/ui/gtk/gtk_theme_provider.h"
+ #endif
+
+@@ -371,7 +371,7 @@
+
+ void TestingProfile::InitThemes() {
+ if (!created_theme_provider_) {
+-#if defined(OS_LINUX) && !defined(TOOLKIT_VIEWS)
++#if defined(TOOLKIT_GTK) && !defined(TOOLKIT_VIEWS)
+ theme_provider_.reset(new GtkThemeProvider);
+ #else
+ theme_provider_.reset(new BrowserThemeProvider);
diff --git a/www/chromium/files/patch-chrome__test__ui__sunspider_uitest.cc b/www/chromium/files/patch-chrome__test__ui__sunspider_uitest.cc
new file mode 100644
index 000000000000..2a3bbf8e14a4
--- /dev/null
+++ b/www/chromium/files/patch-chrome__test__ui__sunspider_uitest.cc
@@ -0,0 +1,11 @@
+--- ./chrome/test/ui/sunspider_uitest.cc.orig 2010-12-16 02:12:11.000000000 +0100
++++ ./chrome/test/ui/sunspider_uitest.cc 2010-12-20 20:15:08.000000000 +0100
+@@ -129,7 +129,7 @@
+ dir = dir.AppendASCII("reference_build");
+ #if defined(OS_WIN)
+ dir = dir.AppendASCII("chrome");
+-#elif defined(OS_LINUX)
++#elif defined(OS_LINUX) || defined(OS_FREEBSD)
+ dir = dir.AppendASCII("chrome_linux");
+ #elif defined(OS_MACOSX)
+ dir = dir.AppendASCII("chrome_mac");
diff --git a/www/chromium/files/patch-chrome__test__ui__ui_layout_test.cc b/www/chromium/files/patch-chrome__test__ui__ui_layout_test.cc
new file mode 100644
index 000000000000..abeda375a22c
--- /dev/null
+++ b/www/chromium/files/patch-chrome__test__ui__ui_layout_test.cc
@@ -0,0 +1,11 @@
+--- ./chrome/test/ui/ui_layout_test.cc.orig 2010-12-16 02:12:11.000000000 +0100
++++ ./chrome/test/ui/ui_layout_test.cc 2010-12-20 20:15:08.000000000 +0100
+@@ -19,7 +19,7 @@
+ static const char kPlatformName[] = "chromium-win";
+ #elif defined(OS_MACOSX)
+ static const char kPlatformName[] = "chromium-mac";
+-#elif defined(OS_LINUX)
++#elif defined(OS_LINUX) || defined(OS_FREEBSD)
+ static const char kPlatformName[] = "chromium-linux";
+ #else
+ #error No known OS defined
diff --git a/www/chromium/files/patch-chrome__test__ui__ui_test.cc b/www/chromium/files/patch-chrome__test__ui__ui_test.cc
new file mode 100644
index 000000000000..926d71e949aa
--- /dev/null
+++ b/www/chromium/files/patch-chrome__test__ui__ui_test.cc
@@ -0,0 +1,11 @@
+--- ./chrome/test/ui/ui_test.cc.orig 2010-12-16 02:12:11.000000000 +0100
++++ ./chrome/test/ui/ui_test.cc 2010-12-20 20:15:08.000000000 +0100
+@@ -68,7 +68,7 @@
+ L"NOTE: This test is expected to fail if crash_service.exe is not "
+ L"running. Start it manually before running this test (see the build "
+ L"output directory).";
+-#elif defined(OS_LINUX)
++#elif defined(OS_LINUX) || defined(OS_FREEBSD)
+ L"NOTE: This test is expected to fail if breakpad is not built in "
+ L"or if chromium is not running headless (try CHROME_HEADLESS=1).";
+ #else
diff --git a/www/chromium/files/patch-chrome__test__ui__v8_benchmark_uitest.cc b/www/chromium/files/patch-chrome__test__ui__v8_benchmark_uitest.cc
new file mode 100644
index 000000000000..fa3c78a7074a
--- /dev/null
+++ b/www/chromium/files/patch-chrome__test__ui__v8_benchmark_uitest.cc
@@ -0,0 +1,11 @@
+--- ./chrome/test/ui/v8_benchmark_uitest.cc.orig 2010-12-16 02:12:11.000000000 +0100
++++ ./chrome/test/ui/v8_benchmark_uitest.cc 2010-12-20 20:15:08.000000000 +0100
+@@ -131,7 +131,7 @@
+ dir = dir.AppendASCII("reference_build");
+ #if defined(OS_WIN)
+ dir = dir.AppendASCII("chrome");
+-#elif defined(OS_LINUX)
++#elif defined(OS_LINUX) || defined(OS_FREEBSD)
+ dir = dir.AppendASCII("chrome_linux");
+ #elif defined(OS_MACOSX)
+ dir = dir.AppendASCII("chrome_mac");
diff --git a/www/chromium/files/patch-chrome__test__ui_test_utils.cc b/www/chromium/files/patch-chrome__test__ui_test_utils.cc
new file mode 100644
index 000000000000..774c2921d008
--- /dev/null
+++ b/www/chromium/files/patch-chrome__test__ui_test_utils.cc
@@ -0,0 +1,11 @@
+--- ./chrome/test/ui_test_utils.cc.orig 2010-12-16 02:12:11.000000000 +0100
++++ ./chrome/test/ui_test_utils.cc 2010-12-20 20:15:08.000000000 +0100
+@@ -357,7 +357,7 @@
+ #if defined(TOOLKIT_VIEWS)
+ views::AcceleratorHandler handler;
+ loop->Run(&handler);
+-#elif defined(OS_LINUX)
++#elif defined(OS_LINUX) || defined(OS_FREEBSD)
+ loop->Run(NULL);
+ #else
+ loop->Run();
diff --git a/www/chromium/files/patch-chrome__test__url_fetch_test__url_fetch_test.cc b/www/chromium/files/patch-chrome__test__url_fetch_test__url_fetch_test.cc
new file mode 100644
index 000000000000..9fade75373dd
--- /dev/null
+++ b/www/chromium/files/patch-chrome__test__url_fetch_test__url_fetch_test.cc
@@ -0,0 +1,11 @@
+--- ./chrome/test/url_fetch_test/url_fetch_test.cc.orig 2010-12-16 02:12:11.000000000 +0100
++++ ./chrome/test/url_fetch_test/url_fetch_test.cc 2010-12-20 20:15:08.000000000 +0100
+@@ -35,7 +35,7 @@
+ dir = dir.AppendASCII("reference_build");
+ #if defined(OS_WIN)
+ dir = dir.AppendASCII("chrome");
+-#elif defined(OS_LINUX)
++#elif defined(OS_LINUX) || defined(OS_FREEBSD)
+ dir = dir.AppendASCII("chrome_linux");
+ #elif defined(OS_MACOSX)
+ dir = dir.AppendASCII("chrome_mac");
diff --git a/www/chromium/files/patch-chrome__tools__build__linux__sed.sh b/www/chromium/files/patch-chrome__tools__build__linux__sed.sh
new file mode 100644
index 000000000000..b4ec2b343401
--- /dev/null
+++ b/www/chromium/files/patch-chrome__tools__build__linux__sed.sh
@@ -0,0 +1,8 @@
+--- ./chrome/tools/build/linux/sed.sh.orig 2010-12-16 02:11:59.000000000 +0100
++++ ./chrome/tools/build/linux/sed.sh 2010-12-20 20:15:08.000000000 +0100
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/usr/bin/env bash
+
+ # Copyright (c) 2009 The Chromium Authors. All rights reserved.
+ # Use of this source code is governed by a BSD-style license that can be
diff --git a/www/chromium/files/patch-chrome__worker__worker_uitest.cc b/www/chromium/files/patch-chrome__worker__worker_uitest.cc
new file mode 100644
index 000000000000..721b1422a7eb
--- /dev/null
+++ b/www/chromium/files/patch-chrome__worker__worker_uitest.cc
@@ -0,0 +1,13 @@
+--- chrome/worker/worker_uitest.cc.orig 2011-01-11 10:01:47.000000000 +0100
++++ chrome/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
+
diff --git a/www/chromium/files/patch-chromium b/www/chromium/files/patch-chromium
deleted file mode 100644
index fbcbf23a6bf4..000000000000
--- a/www/chromium/files/patch-chromium
+++ /dev/null
@@ -1,5146 +0,0 @@
-diff --git a/app/app_base.gypi b/app/app_base.gypi
-index adefed7..ee12622 100644
---- app/app_base.gypi
-+++ app/app_base.gypi
-@@ -194,7 +194,7 @@
- 'surface/io_surface_support_mac.cc',
- 'surface/io_surface_support_mac.h',
- 'surface/transport_dib.h',
-- 'surface/transport_dib_linux.cc',
-+ 'surface/transport_dib_freebsd.cc',
- 'surface/transport_dib_mac.cc',
- 'surface/transport_dib_win.cc',
- 'table_model.cc',
-@@ -296,7 +296,7 @@
- 'os_exchange_data.cc',
- ],
- }],
-- ['OS=="linux"', {
-+ ['OS=="linux" or OS=="freebsd"', {
- 'sources': [
- 'gfx/gl/gl_context_egl.cc',
- 'gfx/gl/gl_context_egl.h',
-@@ -319,7 +319,6 @@
- 'link_settings': {
- 'libraries': [
- '-lX11',
-- '-ldl',
- ],
- },
- },
-diff --git a/app/gfx/gl/gl_bindings.h b/app/gfx/gl/gl_bindings.h
-index e384bfd..2bf33de 100644
---- app/gfx/gl/gl_bindings.h
-+++ app/gfx/gl/gl_bindings.h
-@@ -18,7 +18,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_NIX)
- #include <GL/glx.h>
- #include <GL/glxext.h>
-
-@@ -42,7 +42,7 @@
- typedef struct osmesa_context *OSMesaContext;
- typedef void (*OSMESAproc)();
-
--#if defined(OS_WIN) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_NIX)
-
- // Forward declare EGL types.
- typedef unsigned int EGLBoolean;
-@@ -65,7 +65,7 @@ typedef Pixmap EGLNativePixmapType;
- typedef Window EGLNativeWindowType;
- #endif
-
--#endif // OS_WIN || OS_LINUX
-+#endif // OS_WIN || OS_NIX
-
- #include "gl_bindings_autogen_gl.h"
- #include "gl_bindings_autogen_osmesa.h"
-@@ -73,7 +73,7 @@ typedef Window EGLNativeWindowType;
- #if defined(OS_WIN)
- #include "gl_bindings_autogen_egl.h"
- #include "gl_bindings_autogen_wgl.h"
--#elif defined(OS_LINUX)
-+#elif defined(OS_NIX)
- #include "gl_bindings_autogen_egl.h"
- #include "gl_bindings_autogen_glx.h"
- #endif
-diff --git a/app/gfx/gl/gl_context_egl.cc b/app/gfx/gl/gl_context_egl.cc
-index 1d05eb0..c988081 100644
---- app/gfx/gl/gl_context_egl.cc
-+++ app/gfx/gl/gl_context_egl.cc
-@@ -5,7 +5,7 @@
- #include <EGL/egl.h>
-
- #include "build/build_config.h"
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- #include "app/x11_util.h"
- #define EGL_HAS_PBUFFERS 1
- #endif
-@@ -28,7 +28,7 @@ bool BaseEGLContext::InitializeOneOff() {
- if (initialized)
- return true;
-
--#ifdef OS_LINUX
-+#ifdef OS_NIX
- EGLNativeDisplayType native_display = x11_util::GetXDisplay();
- #else
- EGLNativeDisplayType native_display = EGL_DEFAULT_DISPLAY;
-diff --git a/app/surface/transport_dib.h b/app/surface/transport_dib.h
-index c392c5f..eb19d04 100644
---- app/surface/transport_dib.h
-+++ app/surface/transport_dib.h
-@@ -7,7 +7,7 @@
-
- #include "base/basictypes.h"
-
--#if defined(OS_WIN) || defined(OS_MACOSX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_FREEBSD)
- #include "base/shared_memory.h"
- #endif
-
-@@ -80,7 +80,7 @@ class TransportDIB {
- static int fake_handle = 10;
- return reinterpret_cast<Handle>(fake_handle++);
- }
--#elif defined(OS_MACOSX)
-+#elif defined(OS_MACOSX) || defined(OS_FREEBSD)
- typedef base::SharedMemoryHandle Handle;
- // On Mac, the inode number of the backing file is used as an id.
- typedef base::SharedMemoryId Id;
-@@ -95,7 +95,7 @@ class TransportDIB {
- static int fake_handle = 10;
- return Handle(fake_handle++, false);
- }
--#elif defined(USE_X11)
-+#elif defined(OS_LINUX)
- typedef int Handle; // These two ints are SysV IPC shared memory keys
- typedef int Id;
-
-@@ -161,11 +161,12 @@ class TransportDIB {
-
- private:
- TransportDIB();
--#if defined(OS_WIN) || defined(OS_MACOSX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_FREEBSD)
- explicit TransportDIB(base::SharedMemoryHandle dib);
- base::SharedMemory shared_memory_;
- uint32 sequence_num_;
--#elif defined(USE_X11)
-+#endif
-+#if defined(USE_X11)
- int key_; // SysV shared memory id
- void* address_; // mapped address
- XSharedMemoryId x_shm_; // X id for the shared segment
-diff --git a/app/surface/transport_dib_freebsd.cc b/app/surface/transport_dib_freebsd.cc
-new file mode 100644
-index 0000000..b49ba71
---- /dev/null
-+++ app/surface/transport_dib_freebsd.cc
-@@ -0,0 +1,86 @@
-+// 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 "app/surface/transport_dib.h"
-+
-+#include <unistd.h>
-+#include <sys/stat.h>
-+
-+#include "base/eintr_wrapper.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_.Create(L"", false /* read write */,
-+ false /* do not open existing */, size)) {
-+ delete dib;
-+ return NULL;
-+ }
-+
-+ dib->size_ = size;
-+ return dib;
-+}
-+
-+// static
-+TransportDIB* TransportDIB::Map(TransportDIB::Handle handle) {
-+ if (!is_valid(handle))
-+ return NULL;
-+
-+ TransportDIB* dib = new TransportDIB(handle);
-+ struct stat st;
-+ if ((fstat(handle.fd, &st) != 0) ||
-+ (!dib->shared_memory_.Map(st.st_size))) {
-+ delete dib;
-+ HANDLE_EINTR(close(handle.fd));
-+ return NULL;
-+ }
-+
-+ dib->size_ = st.st_size;
-+
-+ return dib;
-+}
-+
-+bool TransportDIB::is_valid(Handle dib) {
-+ return dib.fd >= 0;
-+}
-+
-+skia::PlatformCanvas* TransportDIB::GetPlatformCanvas(int w, int h) {
-+ return new skia::PlatformCanvas(w, h, true,
-+ reinterpret_cast<uint8_t*>(memory()));
-+}
-+
-+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_ = x11_util::AttachSharedMemory(display, key_);
-+ display_ = display;
-+ }
-+
-+ return x_shm_;
-+}
-diff --git a/app/surface/transport_dib_linux.cc b/app/surface/transport_dib_linux.cc
-index 26cad3f..b5feed5 100644
---- app/surface/transport_dib_linux.cc
-+++ app/surface/transport_dib_linux.cc
-@@ -28,6 +28,9 @@ TransportDIB::TransportDIB()
- TransportDIB::~TransportDIB() {
- if (address_ != kInvalidAddress) {
- shmdt(address_);
-+#if defined(OS_FREEBSD)
-+ shmctl(key_, IPC_RMID, 0);
-+#endif
- address_ = kInvalidAddress;
- }
-
-@@ -53,7 +56,13 @@ TransportDIB* TransportDIB::Create(size_t size, uint32 sequence_num) {
- // Here we mark the shared memory for deletion. Since we attached it in the
- // line above, it doesn't actually get deleted but, if we crash, this means
- // that the kernel will automatically clean it up for us.
-+#if !defined(OS_FREEBSD)
-+// BSD: A shmctl IPC_RMID call here renders all future shared memory calls for
-+// BSD: a particular key to fail on FreeBSD, so I moved this call to the
-+// BSD: destructor. Of course, this means chromium crashes on FreeBSD don't
-+// BSD: clean up shared memory.
- shmctl(shmkey, IPC_RMID, 0);
-+#endif
- if (address == kInvalidAddress)
- return NULL;
-
-diff --git a/app/test_suite.h b/app/test_suite.h
-index 3a738b2..bf876dd 100644
---- app/test_suite.h
-+++ app/test_suite.h
-@@ -48,14 +48,14 @@ class AppTestSuite : public TestSuite {
- mac_util::SetOverrideAppBundlePath(path);
- #endif // OS_MACOSX
-
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- FilePath pak_dir;
- PathService::Get(base::DIR_MODULE, &pak_dir);
- pak_dir = pak_dir.AppendASCII("app_unittests_strings");
- PathService::Override(app::DIR_LOCALES, pak_dir);
- PathService::Override(app::FILE_RESOURCES_PAK,
- pak_dir.AppendASCII("app_resources.pak"));
--#endif // OS_LINUX
-+#endif // OS_NIX
-
- // Force unittests to run using en-US so if we test against string
- // output, it'll pass regardless of the system language.
-diff --git a/base/base.gyp b/base/base.gyp
-index d2c9a68..8d2e294 100644
---- base/base.gyp
-+++ base/base.gyp
-@@ -230,6 +230,13 @@
- 'test/test_file_util_posix.cc',
- 'test/test_file_util_win.cc',
- ],
-+ 'conditions': [
-+ [ 'OS == "freebsd"', {
-+ # fdatasync is not implemented on FreeBSD
-+ 'sources/': [ ['exclude', '^test/test_file_util_linux.cc$'] ],
-+ },
-+ ],
-+ ],
- },
- {
- 'target_name': 'test_support_perf',
-diff --git a/base/base.gypi b/base/base.gypi
-index ff05d2a..307d902 100644
---- base/base.gypi
-+++ base/base.gypi
-@@ -319,8 +319,6 @@
- [ 'OS != "linux"', {
- 'sources!': [
- # Not automatically excluded by the *linux.cc rules.
-- 'gtk_util.cc',
-- 'gtk_util.h',
- 'linux_util.cc',
- 'setproctitle_linux.c',
- 'setproctitle_linux.h',
-@@ -556,6 +554,9 @@
- ],
- },],
- [ 'OS == "freebsd" or OS == "openbsd"', {
-+ 'sources!': [
-+ 'process_linux.cc',
-+ ],
- 'link_settings': {
- 'libraries': [
- '-L/usr/local/lib -lexecinfo',
-@@ -630,7 +631,7 @@
- },
- ],
- }],
-- [ 'OS == "linux" and internal_pdf', {
-+ [ '(OS == "linux" or OS == "freebsd") and internal_pdf', {
- 'targets': [
- {
- 'target_name': 'base_fpic',
-diff --git a/base/debug_util_posix.cc b/base/debug_util_posix.cc
-index 110cb20..4894cc7 100644
---- base/debug_util_posix.cc
-+++ base/debug_util_posix.cc
-@@ -225,8 +225,8 @@ bool DebugUtil::BeingDebugged() {
-
- bool DebugUtil::BeingDebugged() {
- // TODO(benl): can we determine this under FreeBSD?
-- NOTIMPLEMENTED();
-- return false;
-+ LOG(WARNING) << "Don't know how to do this";
-+ return true;
- }
-
- #endif // defined(OS_FREEBSD)
-diff --git a/base/file_util_posix.cc b/base/file_util_posix.cc
-index 434c859..10d3200 100644
---- base/file_util_posix.cc
-+++ base/file_util_posix.cc
-@@ -777,7 +777,11 @@ bool GetTempDir(FilePath* path) {
- }
-
- bool GetShmemTempDir(FilePath* path) {
-+#if defined(OS_LINUX)
- *path = FilePath("/dev/shm");
-+#else
-+ *path = FilePath("/tmp");
-+#endif
- return true;
- }
-
-diff --git a/base/leak_annotations.h b/base/leak_annotations.h
-index a402acf..85b4c7e 100644
---- base/leak_annotations.h
-+++ base/leak_annotations.h
-@@ -7,7 +7,7 @@
-
- #include "build/build_config.h"
-
--#if defined(OS_LINUX) && defined(USE_HEAPCHECKER)
-+#if defined(OS_NIX) && defined(USE_HEAPCHECKER)
-
- #include "third_party/tcmalloc/chromium/src/google/heap-checker.h"
-
-diff --git a/base/profiler.cc b/base/profiler.cc
-index e291117..a6f1486 100644
---- base/profiler.cc
-+++ base/profiler.cc
-@@ -5,7 +5,7 @@
- #include "base/profiler.h"
- #include "base/string_util.h"
-
--#if defined(USE_TCMALLOC) && defined(OS_LINUX)
-+#if defined(USE_TCMALLOC) && defined(OS_NIX)
- #include "third_party/tcmalloc/chromium/src/google/profiler.h"
- #endif
-
-@@ -24,7 +24,7 @@ namespace base {
- void Profiler::StartRecording() {
- #ifdef QUANTIFY
- QuantifyStartRecordingData();
--#elif defined(USE_TCMALLOC) && defined(OS_LINUX)
-+#elif defined(USE_TCMALLOC) && defined(OS_NIX)
- ProfilerStart("chrome-profile");
- #endif
- }
-@@ -32,13 +32,13 @@ void Profiler::StartRecording() {
- void Profiler::StopRecording() {
- #ifdef QUANTIFY
- QuantifyStopRecordingData();
--#elif defined(USE_TCMALLOC) && defined(OS_LINUX)
-+#elif defined(USE_TCMALLOC) && defined(OS_NIX)
- ProfilerStop();
- #endif
- }
-
- void Profiler::Flush() {
--#if defined(USE_TCMALLOC) && defined(OS_LINUX)
-+#if defined(USE_TCMALLOC) && defined(OS_NIX)
- ProfilerFlush();
- #endif
- }
-diff --git a/base/test/test_suite.h b/base/test/test_suite.h
-index ff6f131..17d52c0 100644
---- base/test/test_suite.h
-+++ base/test/test_suite.h
-@@ -63,7 +63,7 @@ class TestSuite {
- #if defined(OS_POSIX) && !defined(OS_MACOSX)
- g_thread_init(NULL);
- gtk_init_check(&argc, &argv);
--#endif // defined(OS_LINUX)
-+#endif // defined(OS_POSIX) && !defined(OS_MACOSX)
- // Don't add additional code to this constructor. Instead add it to
- // Initialize(). See bug 6436.
- }
-diff --git a/base/worker_pool_linux.cc b/base/worker_pool_linux.cc
-index b9c85b3..3dc08b9 100644
---- base/worker_pool_linux.cc
-+++ base/worker_pool_linux.cc
-@@ -17,7 +17,7 @@ namespace {
- const int kIdleSecondsBeforeExit = 10 * 60;
- // A stack size of 64 KB is too small for the CERT_PKIXVerifyCert
- // function of NSS because of NSS bug 439169.
--const int kWorkerThreadStackSize = 128 * 1024;
-+const int kWorkerThreadStackSize = 256 * 1024;
-
- class WorkerPoolImpl {
- public:
-diff --git a/build/build_config.h b/build/build_config.h
-index c0a7bee..32e215c 100644
---- build/build_config.h
-+++ build/build_config.h
-@@ -47,6 +47,7 @@
-
- #if defined(OS_LINUX) || defined(OS_FREEBSD) || defined(OS_OPENBSD) || \
- defined(OS_SOLARIS)
-+#define OS_NIX 1
- #define USE_NSS 1 // Use NSS for crypto.
- #define USE_X11 1 // Use X for graphics.
- #endif
-@@ -61,12 +62,12 @@
- #endif
-
- // Use tcmalloc
--#if (defined(OS_WIN) || defined(OS_LINUX)) && !defined(NO_TCMALLOC)
-+#if (defined(OS_WIN) || defined(OS_NIX)) && !defined(NO_TCMALLOC)
- #define USE_TCMALLOC 1
- #endif
-
- // Use heapchecker.
--#if (defined(OS_WIN) || defined(OS_LINUX)) && !defined(NO_HEAPCHECKER)
-+#if (defined(OS_WIN) || defined(OS_NIX)) && !defined(NO_HEAPCHECKER)
- #define USE_HEAPCHECKER 1
- #endif
-
-diff --git a/build/common.gypi b/build/common.gypi
-index 8a9fd97..8f9abe4 100644
---- build/common.gypi
-+++ build/common.gypi
-@@ -106,7 +106,7 @@
- 'linux_fpic%': 0,
-
- # Python version.
-- 'python_ver%': '2.5',
-+ 'python_ver%': '2.6',
-
- # Set ARM-v7 compilation flags
- 'armv7%': 0,
-@@ -208,7 +208,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.
-@@ -246,21 +246,21 @@
- 'linux_use_debugallocation%': 0,
-
- # Disable TCMalloc's heapchecker.
-- 'linux_use_heapchecker%': 0,
-+ 'linux_use_heapchecker%': 1,
-
- # Set to 1 to turn on seccomp sandbox by default.
- # (Note: this is ignored for official builds.)
- 'linux_use_seccomp_sandbox%': 0,
-
- # Set to 1 to link against libgnome-keyring instead of using dlopen().
-- 'linux_link_gnome_keyring%': 0,
-+ 'linux_link_gnome_keyring%': 1,
-
- # Set to select the Title Case versions of strings in GRD files.
- 'use_titlecase_in_grd_files%': 0,
-
- # 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,
-@@ -279,13 +279,16 @@
- # whether to compile in the sources for the GPU plugin / process.
- 'enable_gpu%': 1,
-
-+ # Use GConf, the GNOME configuration system.
-+ 'use_gconf%': 1,
-+
- 'conditions': [
- ['OS=="linux" or OS=="freebsd" or OS=="openbsd"', {
- # This will set gcc_version to XY if you are running gcc X.Y.*.
- # 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)',
- 'conditions': [
- ['branding=="Chrome" or linux_chromium_breakpad==1', {
- 'linux_breakpad%': 1,
-@@ -576,7 +576,7 @@
- ['exclude', '/(gtk|x11)_[^/]*\\.cc$'],
- ],
- }],
-- ['OS!="linux"', {
-+ ['OS!="linux" and OS!="freebsd" and OS!="openbsd"', {
- 'sources/': [
- ['exclude', '_linux(_unittest)?\\.cc$'],
- ['exclude', '/linux/'],
-diff --git a/build/features_override.gypi b/build/features_override.gypi
-index 2e19776..b12261d 100644
---- build/features_override.gypi
-+++ build/features_override.gypi
-@@ -61,7 +61,7 @@
- 'enable_svg%': '<(enable_svg)',
- 'enable_touch_events%': '<(enable_touch_events)',
- 'conditions': [
-- ['OS=="win" or OS=="linux" or use_accelerated_compositing==1', {
-+ ['OS=="win" or OS=="linux" or OS=="freebsd" or use_accelerated_compositing==1', {
- 'feature_defines': [
- 'WTF_USE_ACCELERATED_COMPOSITING=1',
- 'ENABLE_3D_RENDERING=1',
-diff --git a/build/linux/python_arch.sh b/build/linux/python_arch.sh
-index f364469..a6c3f43 100755
---- build/linux/python_arch.sh
-+++ build/linux/python_arch.sh
-@@ -1,4 +1,4 @@
--#!/bin/bash
-+#!/usr/bin/env bash
- # Copyright (c) 2010 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.
-@@ -10,12 +10,7 @@
- # python_arch.sh /path/to/sysroot/usr/lib/libpython2.4.so.1.0
- #
-
--python=$(readlink -f "$1")
--if [ ! -r "$python" ]; then
-- echo unknown
-- exit 0;
--fi
--file_out=$(file "$python")
-+file_out=$(file "$1")
- if [ $? -ne 0 ]; then
- echo unknown
- exit 0;
-diff --git a/build/linux/system.gyp b/build/linux/system.gyp
-index 876579a..23d1c6c 100644
---- build/linux/system.gyp
-+++ build/linux/system.gyp
-@@ -188,11 +188,14 @@
- 'target_name': 'gconf',
- 'type': 'settings',
- 'conditions': [
-- ['_toolset=="target"', {
-+ ['use_gconf==1 and _toolset=="target"', {
- 'direct_dependent_settings': {
- 'cflags': [
- '<!@(<(pkg-config) --cflags gconf-2.0)',
- ],
-+ 'defines': [
-+ 'USE_GCONF',
-+ ],
- },
- 'link_settings': {
- 'ldflags': [
-@@ -283,7 +283,6 @@
- }, {
- 'link_settings': {
- 'libraries': [
-- '-ldl',
- ],
- },
- }],
-diff --git a/chrome/app/chrome_dll_main.cc b/chrome/app/chrome_dll_main.cc
-index 9e3feb8..b8013fc 100644
---- chrome/app/chrome_dll_main.cc
-+++ chrome/app/chrome_dll_main.cc
-@@ -71,7 +71,7 @@
- #include "app/x11_util.h"
- #endif
-
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- #include "chrome/browser/renderer_host/render_sandbox_host_linux.h"
- #include "chrome/browser/zygote_host_linux.h"
- #endif
-@@ -580,7 +580,7 @@ int ChromeMain(int argc, char** argv) {
- browser_pid = base::GetCurrentProcId();
- #elif defined(OS_POSIX)
- // On linux, we're in the zygote here; so we need the parent process' id.
-- browser_pid = base::GetParentProcessId(base::GetCurrentProcId());
-+ //browser_pid = base::GetParentProcessId(base::GetCurrentProcId());
- #endif
-
- #if defined(OS_POSIX)
-@@ -819,7 +819,7 @@ int ChromeMain(int argc, char** argv) {
- } else if (process_type == switches::kServiceProcess) {
- rv = ServiceProcessMain(main_params);
- } else if (process_type.empty()) {
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- const char* sandbox_binary = NULL;
- struct stat st;
-
-@@ -863,7 +863,7 @@ int ChromeMain(int argc, char** argv) {
- SetUpGLibLogHandler();
-
- x11_util::SetX11ErrorHandlers();
--#endif // defined(OS_LINUX)
-+#endif // defined(OS_NIX)
-
- rv = BrowserMain(main_params);
- } else {
-diff --git a/chrome/app/chrome_exe_main_gtk.cc b/chrome/app/chrome_exe_main_gtk.cc
-index fb3c332..d651fc3 100644
---- chrome/app/chrome_exe_main_gtk.cc
-+++ chrome/app/chrome_exe_main_gtk.cc
-@@ -4,7 +4,7 @@
-
- #include "base/at_exit.h"
- #include "base/process_util.h"
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if defined(OS_NIX) && !defined(OS_CHROMEOS)
- #include "chrome/browser/first_run.h"
- #endif
-
-@@ -20,11 +20,11 @@
- extern "C" {
- int ChromeMain(int argc, const char** argv);
-
--#if defined(OS_LINUX) && defined(USE_TCMALLOC)
-+#if defined(OS_NIX) && defined(USE_TCMALLOC)
-
- int tc_set_new_mode(int mode);
-
--#endif // defined(OS_LINUX) && defined(USE_TCMALLOC)
-+#endif // defined(OS_NIX) && defined(USE_TCMALLOC)
- }
-
- int main(int argc, const char** argv) {
-@@ -37,7 +37,7 @@ int main(int argc, const char** argv) {
- // 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_NIX) && defined(USE_TCMALLOC)
- // For tcmalloc, we need to tell it to behave like new.
- tc_set_new_mode(1);
- #endif
-diff --git a/chrome/app/chrome_main_uitest.cc b/chrome/app/chrome_main_uitest.cc
-index 8d13b89..88a4a99 100644
---- chrome/app/chrome_main_uitest.cc
-+++ chrome/app/chrome_main_uitest.cc
-@@ -18,7 +18,7 @@ TEST_F(ChromeMainTest, AppLaunch) {
- if (UITest::in_process_renderer()) {
- EXPECT_EQ(1, UITest::GetBrowserProcessCount());
- } else {
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- // On Linux we'll have four processes: browser, renderer, zygote and
- // sandbox helper.
- EXPECT_EQ(4, UITest::GetBrowserProcessCount());
-diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
-index 610d54d..90f4437 100644
---- chrome/app/generated_resources.grd
-+++ chrome/app/generated_resources.grd
-@@ -8758,7 +8758,7 @@ Keep your key file in a safe place. You will need it to create new versions of y
- 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
-diff --git a/chrome/browser/app_modal_dialog.cc b/chrome/browser/app_modal_dialog.cc
-index e8f306d..c40701a 100644
---- chrome/browser/app_modal_dialog.cc
-+++ chrome/browser/app_modal_dialog.cc
-@@ -11,7 +11,7 @@
-
- AppModalDialog::AppModalDialog(TabContents* tab_contents,
- const std::wstring& title)
--#if defined(OS_WIN) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_NIX)
- : dialog_(NULL),
- #elif defined(OS_MACOSX)
- :
-diff --git a/chrome/browser/app_modal_dialog.h b/chrome/browser/app_modal_dialog.h
-index 92ac494..092d428 100644
---- chrome/browser/app_modal_dialog.h
-+++ chrome/browser/app_modal_dialog.h
-@@ -92,7 +92,7 @@ class AppModalDialog {
- virtual NativeDialog CreateNativeDialog() = 0;
-
- // A reference to the platform native dialog box.
--#if defined(OS_LINUX) || defined(OS_WIN)
-+#if defined(OS_NIX) || defined(OS_WIN)
- NativeDialog dialog_;
- #endif
-
-diff --git a/chrome/browser/browser.cc b/chrome/browser/browser.cc
-index 364c599..548d8f2 100644
---- chrome/browser/browser.cc
-+++ chrome/browser/browser.cc
-@@ -254,7 +254,7 @@ Browser::~Browser() {
-
- BrowserList::RemoveBrowser(this);
-
--#if defined(OS_WIN) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_NIX)
- 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
-@@ -757,7 +757,7 @@ string16 Browser::GetWindowTitleForCurrentTab() const {
- // 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_NIX)
- 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)
-@@ -1417,9 +1417,9 @@ void Browser::ToggleFullscreenMode() {
-
- UserMetrics::RecordAction(UserMetricsAction("ToggleFullscreen"), profile_);
- window_->SetFullscreen(!window_->IsFullscreen());
-- // On Linux, setting fullscreen mode is an async call to the X server, which
-+ // On X11, 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(USE_X11)
- UpdateCommandsForFullscreenMode(window_->IsFullscreen());
- #endif
- }
-@@ -1644,7 +1644,7 @@ void Browser::OpenFile() {
-
- void Browser::OpenCreateShortcutsDialog() {
- UserMetrics::RecordAction(UserMetricsAction("CreateShortcut"), profile_);
--#if defined(OS_WIN) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_NIX)
- TabContents* current_tab = GetSelectedTabContents();
- DCHECK(current_tab && web_app::IsValidUrl(current_tab->GetURL())) <<
- "Menu item should be disabled.";
-@@ -2295,7 +2295,7 @@ void Browser::DuplicateContentsAt(int index) {
- }
-
- void Browser::CloseFrameAfterDragSession() {
--#if defined(OS_WIN) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_NIX)
- // 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.
-diff --git a/chrome/browser/browser_about_handler.cc b/chrome/browser/browser_about_handler.cc
-index 9607cad..516a755 100644
---- chrome/browser/browser_about_handler.cc
-+++ chrome/browser/browser_about_handler.cc
-@@ -64,7 +64,7 @@
- #include "chrome/browser/zygote_host_linux.h"
- #elif defined(OS_MACOSX)
- #include "chrome/browser/cocoa/about_ipc_dialog.h"
--#elif defined(OS_LINUX)
-+#elif defined(OS_NIX)
- #include "chrome/browser/zygote_host_linux.h"
- #endif
-
-@@ -106,7 +106,7 @@ const char kAboutPath[] = "about";
- const char kNetInternalsPath[] = "net-internals";
- const char kPluginsPath[] = "plugins";
-
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- const char kLinuxProxyConfigPath[] = "linux-proxy-config";
- const char kSandboxPath[] = "sandbox";
- #endif
-@@ -134,7 +134,7 @@ const char *kAllAboutPaths[] = {
- kTcmallocPath,
- kTermsPath,
- kVersionPath,
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- kLinuxProxyConfigPath,
- kSandboxPath,
- #endif
-@@ -521,7 +521,7 @@ std::string AboutStats() {
- return data;
- }
-
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- std::string AboutLinuxProxyConfig() {
- std::string data;
- data.append("<!DOCTYPE HTML>\n");
-@@ -898,7 +898,7 @@ void AboutSource::StartDataRequest(const std::string& path_raw,
- } else if (path == kTermsPath) {
- response = ResourceBundle::GetSharedInstance().GetRawDataResource(
- IDR_TERMS_HTML).as_string();
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- } else if (path == kLinuxProxyConfigPath) {
- response = AboutLinuxProxyConfig();
- } else if (path == kSandboxPath) {
-diff --git a/chrome/browser/browser_child_process_host.cc b/chrome/browser/browser_child_process_host.cc
-index d700475..fe219d8 100644
---- chrome/browser/browser_child_process_host.cc
-+++ chrome/browser/browser_child_process_host.cc
-@@ -25,9 +25,9 @@
- #include "chrome/common/result_codes.h"
- #include "chrome/installer/util/google_update_settings.h"
-
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- #include "base/linux_util.h"
--#endif // OS_LINUX
-+#endif // OS_NIX
-
- #if defined(OS_POSIX)
- // This is defined in chrome/browser/google_update_settings_posix.cc. It's the
-diff --git a/chrome/browser/browser_theme_provider.h b/chrome/browser/browser_theme_provider.h
-index 0cb4b15..8c2b0c7 100644
---- chrome/browser/browser_theme_provider.h
-+++ chrome/browser/browser_theme_provider.h
-@@ -129,7 +129,7 @@ class BrowserThemeProvider : public NonThreadSafe,
- virtual bool ShouldUseNativeFrame() const;
- virtual bool HasCustomImage(int id) const;
- virtual RefCountedMemory* GetRawData(int id) const;
--#if defined(OS_LINUX)
-+#if defined(TOOLKIT_GTK)
- // GdkPixbufs returned by GetPixbufNamed and GetRTLEnabledPixbufNamed are
- // shared instances owned by the theme provider and should not be freed.
- virtual GdkPixbuf* GetPixbufNamed(int id) const;
-@@ -241,12 +241,12 @@ class BrowserThemeProvider : public NonThreadSafe,
- // Remove preference values for themes that are no longer in use.
- void RemoveUnusedThemes();
-
--#if defined(OS_LINUX)
-+#if defined(TOOLKIT_GTK)
- // Loads an image and flips it horizontally if |rtl_enabled| is true.
- GdkPixbuf* GetPixbufImpl(int id, bool rtl_enabled) const;
- #endif
-
--#if defined(OS_LINUX)
-+#if defined(TOOLKIT_GTK)
- typedef std::map<int, GdkPixbuf*> GdkPixbufMap;
- mutable GdkPixbufMap gdk_pixbufs_;
- #elif defined(OS_MACOSX)
-diff --git a/chrome/browser/child_process_launcher.cc b/chrome/browser/child_process_launcher.cc
-index 60215d5..57fd9d2 100644
---- chrome/browser/child_process_launcher.cc
-+++ chrome/browser/child_process_launcher.cc
-@@ -18,7 +18,7 @@
-
- #if defined(OS_WIN)
- #include "chrome/common/sandbox_policy.h"
--#elif defined(OS_LINUX)
-+#elif defined(OS_NIX)
- #include "base/singleton.h"
- #include "chrome/browser/crash_handler_host_linux.h"
- #include "chrome/browser/zygote_host_linux.h"
-@@ -41,7 +41,7 @@ class ChildProcessLauncher::Context
- public:
- Context()
- : starting_(true)
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- , zygote_(false)
- #endif
- {
-@@ -106,7 +106,7 @@ class ChildProcessLauncher::Context
- handle = sandbox::StartProcessWithAccess(cmd_line, exposed_dir);
- #elif defined(OS_POSIX)
-
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- if (use_zygote) {
- base::GlobalDescriptors::Mapping mapping;
- mapping.push_back(std::pair<uint32_t, int>(kPrimaryIPCChannel, ipcfd));
-@@ -126,7 +126,7 @@ class ChildProcessLauncher::Context
- ipcfd,
- kPrimaryIPCChannel + base::GlobalDescriptors::kBaseDescriptor));
-
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- // On Linux, we need to add some extra file descriptors for crash handling
- // and the sandbox.
- bool is_renderer =
-@@ -158,7 +158,7 @@ class ChildProcessLauncher::Context
- sandbox_fd,
- kSandboxIPCChannel + base::GlobalDescriptors::kBaseDescriptor));
- }
--#endif // defined(OS_LINUX)
-+#endif // defined(OS_NIX)
-
- // Actually launch the app.
- bool launched;
-@@ -185,20 +185,20 @@ class ChildProcessLauncher::Context
- NewRunnableMethod(
- this,
- &ChildProcessLauncher::Context::Notify,
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- use_zygote,
- #endif
- handle));
- }
-
- void Notify(
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- bool zygote,
- #endif
- base::ProcessHandle handle) {
- starting_ = false;
- process_.set_handle(handle);
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- zygote_ = zygote;
- #endif
- if (client_) {
-@@ -218,7 +218,7 @@ class ChildProcessLauncher::Context
- ChromeThread::PROCESS_LAUNCHER, FROM_HERE,
- NewRunnableFunction(
- &ChildProcessLauncher::Context::TerminateInternal,
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- zygote_,
- #endif
- process_.handle()));
-@@ -226,7 +226,7 @@ class ChildProcessLauncher::Context
- }
-
- static void TerminateInternal(
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- bool zygote,
- #endif
- base::ProcessHandle handle) {
-@@ -236,13 +236,13 @@ class ChildProcessLauncher::Context
- process.Terminate(ResultCodes::NORMAL_EXIT);
- // On POSIX, we must additionally reap the child.
- #if defined(OS_POSIX)
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- if (zygote) {
- // If the renderer was created via a zygote, we have to proxy the reaping
- // through the zygote process.
- Singleton<ZygoteHost>()->EnsureProcessTerminated(handle);
- } else
--#endif // OS_LINUX
-+#endif // OS_NIX
- {
- ProcessWatcher::EnsureProcessTerminated(handle);
- }
-@@ -255,7 +255,7 @@ class ChildProcessLauncher::Context
- base::Process process_;
- bool starting_;
-
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- bool zygote_;
- #endif
- };
-@@ -300,7 +300,7 @@ base::ProcessHandle ChildProcessLauncher::GetHandle() {
- bool ChildProcessLauncher::DidProcessCrash() {
- bool did_crash, child_exited;
- base::ProcessHandle handle = context_->process_.handle();
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- if (context_->zygote_) {
- did_crash = Singleton<ZygoteHost>()->DidProcessCrash(handle, &child_exited);
- } else
-diff --git a/chrome/browser/cookie_modal_dialog.h b/chrome/browser/cookie_modal_dialog.h
-index 5308186..d9576bd 100644
---- chrome/browser/cookie_modal_dialog.h
-+++ chrome/browser/cookie_modal_dialog.h
-@@ -13,7 +13,7 @@
- #include "chrome/browser/cookie_prompt_modal_dialog_delegate.h"
- #include "googleurl/src/gurl.h"
-
--#if defined(OS_LINUX)
-+#if defined(TOOLKIT_USES_GTK)
- #include "app/gtk_signal.h"
- #endif
-
-@@ -28,7 +28,7 @@ class NSWindow;
- class HostContentSettingsMap;
- class PrefService;
-
--#if defined(OS_LINUX)
-+#if defined(TOOLKIT_USES_GTK)
- typedef struct _GtkWidget GtkWidget;
- typedef struct _GParamSpec GParamSpec;
- #endif
-@@ -73,7 +73,7 @@ class CookiePromptModalDialog : public AppModalDialog {
- static void RegisterUserPrefs(PrefService* prefs);
-
- // AppModalDialog overrides.
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_POSIX)
- virtual void CreateAndShowDialog();
- #endif
- virtual int GetDialogButtons();
-@@ -103,7 +103,7 @@ class CookiePromptModalDialog : public AppModalDialog {
- protected:
- // AppModalDialog overrides.
- virtual NativeDialog CreateNativeDialog();
--#if defined(OS_LINUX)
-+#if defined(TOOLKIT_GTK)
- virtual void HandleDialogResponse(GtkDialog* dialog, gint response_id);
- CHROMEGTK_CALLBACK_1(CookiePromptModalDialog,
- void,
-@@ -140,7 +140,7 @@ class CookiePromptModalDialog : public AppModalDialog {
- // delegate could be deleted
- CookiePromptModalDialogDelegate* delegate_;
-
--#if defined(OS_LINUX)
-+#if defined(TOOLKIT_GTK)
- // The "remember this choice" radio button in the dialog.
- GtkWidget* remember_radio_;
-
-diff --git a/chrome/browser/download/download_util.cc b/chrome/browser/download/download_util.cc
-index a3e064f..400ae31 100644
---- chrome/browser/download/download_util.cc
-+++ chrome/browser/download/download_util.cc
-@@ -43,14 +43,14 @@
- #include "views/drag_utils.h"
- #endif
-
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- #if defined(TOOLKIT_VIEWS)
- #include "app/drag_drop_types.h"
- #include "views/widget/widget_gtk.h"
- #elif defined(TOOLKIT_GTK)
- #include "chrome/browser/gtk/custom_drag.h"
- #endif // defined(TOOLKIT_GTK)
--#endif // defined(OS_LINUX)
-+#endif // defined(OS_NIX)
-
- #if defined(OS_WIN)
- #include "app/os_exchange_data_provider_win.h"
-@@ -329,7 +329,7 @@ void DragDownload(const DownloadItem* download,
- DWORD effects;
- DoDragDrop(OSExchangeDataProviderWin::GetIDataObject(data), drag_source.get(),
- DROPEFFECT_COPY | DROPEFFECT_LINK, &effects);
--#elif defined(OS_LINUX)
-+#elif defined(TOOLKIT_GTK)
- GtkWidget* root = gtk_widget_get_toplevel(view);
- if (!root)
- return;
-@@ -340,13 +340,13 @@ void DragDownload(const DownloadItem* download,
- widget->DoDrag(data, DragDropTypes::DRAG_COPY | DragDropTypes::DRAG_LINK);
- #endif // OS_WIN
- }
--#elif defined(OS_LINUX)
-+#elif defined(USE_X11)
- void DragDownload(const DownloadItem* download,
- SkBitmap* icon,
- gfx::NativeView view) {
- DownloadItemDrag::BeginDrag(download, icon);
- }
--#endif // OS_LINUX
-+#endif // USE_X11
-
- DictionaryValue* CreateDownloadItemValue(DownloadItem* download, int id) {
- DictionaryValue* file_value = new DictionaryValue();
-diff --git a/chrome/browser/extensions/extension_process_manager.cc b/chrome/browser/extensions/extension_process_manager.cc
-index cd040f8..ed24185 100644
---- chrome/browser/extensions/extension_process_manager.cc
-+++ chrome/browser/extensions/extension_process_manager.cc
-@@ -51,10 +51,10 @@ ExtensionProcessManager::ExtensionProcessManager(Profile* profile)
- NotificationService::AllSources());
- registrar_.Add(this, NotificationType::RENDERER_PROCESS_CLOSED,
- NotificationService::AllSources());
--#if defined(OS_WIN) || defined(OS_LINUX)
-+#if !defined(OS_MACOSX)
- registrar_.Add(this, NotificationType::BROWSER_CLOSED,
- NotificationService::AllSources());
--#elif defined(OS_MACOSX)
-+#else
- registrar_.Add(this, NotificationType::APP_TERMINATING,
- NotificationService::AllSources());
- #endif
-@@ -285,7 +285,7 @@ void ExtensionProcessManager::Observe(NotificationType type,
- UnregisterExtensionProcess(host->id());
- break;
- }
--#if defined(OS_WIN) || defined(OS_LINUX)
-+#if !defined(OS_MACOSX)
- case NotificationType::BROWSER_CLOSED: {
- // Close background hosts when the last browser is closed so that they
- // have time to shutdown various objects on different threads. Our
-@@ -295,7 +295,7 @@ void ExtensionProcessManager::Observe(NotificationType type,
- CloseBackgroundHosts();
- break;
- }
--#elif defined(OS_MACOSX)
-+#else
- case NotificationType::APP_TERMINATING: {
- CloseBackgroundHosts();
- break;
-diff --git a/chrome/browser/first_run.h b/chrome/browser/first_run.h
-index 6615d93..e582628 100644
---- chrome/browser/first_run.h
-+++ chrome/browser/first_run.h
-@@ -139,7 +139,7 @@ class FirstRun {
- // Import browser items in this process. The browser and the items to
- // import are encoded int the command line.
- static int ImportFromBrowser(Profile* profile, const CommandLine& cmdline);
--#elif defined(OS_LINUX)
-+#elif defined(OS_NIX)
- static bool ImportBookmarks(const std::wstring& import_bookmarks_path);
- #endif
-
-diff --git a/chrome/browser/geolocation/empty_device_data_provider.cc b/chrome/browser/geolocation/empty_device_data_provider.cc
-index 9e9fc27..371c281 100644
---- chrome/browser/geolocation/empty_device_data_provider.cc
-+++ chrome/browser/geolocation/empty_device_data_provider.cc
-@@ -12,7 +12,7 @@ RadioDataProviderImplBase* RadioDataProvider::DefaultFactoryFunction() {
- }
-
- // Only define for platforms that lack a real wifi data provider.
--#if !defined(OS_WIN) && !defined(OS_MACOSX) && !defined(OS_LINUX)
-+#if !defined(OS_WIN) && !defined(OS_MACOSX) && !defined(OS_NIX)
- // static
- template<>
- WifiDataProviderImplBase* WifiDataProvider::DefaultFactoryFunction() {
-diff --git a/chrome/browser/gpu_process_host.cc b/chrome/browser/gpu_process_host.cc
-index 883f9be..0506ff5 100644
---- chrome/browser/gpu_process_host.cc
-+++ chrome/browser/gpu_process_host.cc
-@@ -15,7 +15,7 @@
- #include "chrome/common/render_messages.h"
- #include "ipc/ipc_switches.h"
-
--#if defined(OS_LINUX)
-+#if defined(TOOLKIT_USES_GTK)
- #include "gfx/gtk_native_view_id_manager.h"
- #endif
-
-@@ -168,7 +168,7 @@ void GpuProcessHost::OnControlMessageReceived(const IPC::Message& message) {
- IPC_BEGIN_MESSAGE_MAP(GpuProcessHost, message)
- IPC_MESSAGE_HANDLER(GpuHostMsg_ChannelEstablished, OnChannelEstablished)
- IPC_MESSAGE_HANDLER(GpuHostMsg_SynchronizeReply, OnSynchronizeReply)
--#if defined(OS_LINUX)
-+#if defined(TOOLKIT_USES_GTK)
- IPC_MESSAGE_HANDLER(GpuHostMsg_GetViewXID, OnGetViewXID)
- #endif
- IPC_MESSAGE_UNHANDLED_ERROR()
-@@ -191,7 +191,7 @@ void GpuProcessHost::OnSynchronizeReply() {
- queued_synchronization_replies_.pop();
- }
-
--#if defined(OS_LINUX)
-+#if defined(TOOLKIT_USES_GTK)
- void GpuProcessHost::OnGetViewXID(gfx::NativeViewId id, unsigned long* xid) {
- GtkNativeViewManager* manager = Singleton<GtkNativeViewManager>::get();
- if (!manager->GetXIDForId(xid, id)) {
-diff --git a/chrome/browser/gpu_process_host.h b/chrome/browser/gpu_process_host.h
-index a331f69..3d105d0 100644
---- chrome/browser/gpu_process_host.h
-+++ chrome/browser/gpu_process_host.h
-@@ -84,7 +84,7 @@ class GpuProcessHost : public BrowserChildProcessHost {
- void OnChannelEstablished(const IPC::ChannelHandle& channel_handle,
- const GPUInfo& gpu_info);
- void OnSynchronizeReply();
--#if defined(OS_LINUX)
-+#if defined(TOOLKIT_USES_GTK)
- void OnGetViewXID(gfx::NativeViewId id, unsigned long* xid);
- #endif
-
-diff --git a/chrome/browser/gtk/browser_titlebar.cc b/chrome/browser/gtk/browser_titlebar.cc
-index dea24e6..77adb09 100644
---- chrome/browser/gtk/browser_titlebar.cc
-+++ chrome/browser/gtk/browser_titlebar.cc
-@@ -23,7 +23,9 @@
- #include "chrome/browser/gtk/accelerators_gtk.h"
- #include "chrome/browser/gtk/browser_window_gtk.h"
- #include "chrome/browser/gtk/custom_button.h"
-+#if defined(USE_GCONF)
- #include "chrome/browser/gtk/gconf_titlebar_listener.h"
-+#endif
- #include "chrome/browser/gtk/gtk_theme_provider.h"
- #include "chrome/browser/gtk/gtk_util.h"
- #include "chrome/browser/gtk/menu_gtk.h"
-@@ -193,6 +195,9 @@ void PopupPageMenuModel::Build() {
- ////////////////////////////////////////////////////////////////////////////////
- // BrowserTitlebar
-
-+// static
-+const char BrowserTitlebar::kDefaultButtonString[] = ":minimize,maximize,close";
-+
- BrowserTitlebar::BrowserTitlebar(BrowserWindowGtk* browser_window,
- GtkWindow* window)
- : browser_window_(browser_window),
-@@ -299,9 +304,13 @@ void BrowserTitlebar::Init() {
- gtk_box_pack_end(GTK_BOX(container_hbox_), titlebar_right_buttons_vbox_,
- FALSE, FALSE, 0);
-
-+#if defined(USE_GCONF)
- // Either read the gconf database and register for updates (on GNOME), or use
- // the default value (anywhere else).
- Singleton<GConfTitlebarListener>()->SetTitlebarButtons(this);
-+#else
-+ BuildButtons(kDefaultButtonString);
-+#endif
-
- // We use an alignment to control the titlebar height.
- titlebar_alignment_ = gtk_alignment_new(0.0, 0.0, 1.0, 1.0);
-@@ -363,7 +372,9 @@ void BrowserTitlebar::Init() {
-
- BrowserTitlebar::~BrowserTitlebar() {
- ActiveWindowWatcherX::RemoveObserver(this);
-+#if defined(USE_GCONF)
- Singleton<GConfTitlebarListener>()->RemoveObserver(this);
-+#endif
- }
-
- void BrowserTitlebar::BuildButtons(const std::string& button_string) {
-diff --git a/chrome/browser/gtk/browser_titlebar.h b/chrome/browser/gtk/browser_titlebar.h
-index c6da855..5cd30e6 100644
---- chrome/browser/gtk/browser_titlebar.h
-+++ chrome/browser/gtk/browser_titlebar.h
-@@ -31,6 +31,10 @@ class BrowserTitlebar : public NotificationObserver,
- public ActiveWindowWatcherX::Observer,
- public menus::SimpleMenuModel::Delegate {
- public:
-+ // A default button order string for when we aren't asking gconf for the
-+ // metacity configuration.
-+ static const char kDefaultButtonString[];
-+
- BrowserTitlebar(BrowserWindowGtk* browser_window, GtkWindow* window);
- virtual ~BrowserTitlebar();
-
-diff --git a/chrome/browser/gtk/gconf_titlebar_listener.cc b/chrome/browser/gtk/gconf_titlebar_listener.cc
-index 81b5ef0..237332f 100644
---- chrome/browser/gtk/gconf_titlebar_listener.cc
-+++ chrome/browser/gtk/gconf_titlebar_listener.cc
-@@ -13,10 +13,6 @@
-
- namespace {
-
--// A default button order string for when we aren't asking gconf for the
--// metacity configuration.
--const char* kDefaultButtonPlacement = ":minimize,maximize,close";
--
- // The GConf key we read for the button placement string. Even through the key
- // has "metacity" in it, it's shared between metacity and compiz.
- const char* kButtonLayoutKey = "/apps/metacity/general/button_layout";
-@@ -34,7 +30,7 @@ void GConfTitlebarListener::SetTitlebarButtons(BrowserTitlebar* titlebar) {
- titlebar->BuildButtons(current_value_);
- titlebars_.insert(titlebar);
- } else {
-- titlebar->BuildButtons(kDefaultButtonPlacement);
-+ titlebar->BuildButtons(BrowserTitlebar::kDefaultButtonString);
- }
- }
-
-@@ -113,8 +109,8 @@ bool GConfTitlebarListener::HandleGError(GError* error, const char* key) {
- void GConfTitlebarListener::ParseAndStoreValue(GConfValue* gconf_value) {
- if (gconf_value) {
- const char* value = gconf_value_get_string(gconf_value);
-- current_value_ = value ? value : kDefaultButtonPlacement;
-+ current_value_ = value ? value : BrowserTitlebar::kDefaultButtonString;
- } else {
-- current_value_ = kDefaultButtonPlacement;
-+ current_value_ = BrowserTitlebar::kDefaultButtonString;
- }
- }
-diff --git a/chrome/browser/memory_details.cc b/chrome/browser/memory_details.cc
-index 5c38d97..29a73d7 100644
---- chrome/browser/memory_details.cc
-+++ chrome/browser/memory_details.cc
-@@ -19,7 +19,7 @@
- #include "chrome/common/url_constants.h"
- #include "grit/chromium_strings.h"
-
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- #include "chrome/browser/zygote_host_linux.h"
- #include "chrome/browser/renderer_host/render_sandbox_host_linux.h"
- #endif
-@@ -74,7 +74,7 @@ void MemoryDetails::CollectChildInfoOnIOThread() {
- void MemoryDetails::CollectChildInfoOnUIThread() {
- DCHECK(ChromeThread::CurrentlyOn(ChromeThread::UI));
-
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- const pid_t zygote_pid = Singleton<ZygoteHost>()->pid();
- const pid_t sandbox_helper_pid = Singleton<RenderSandboxHostLinux>()->pid();
- #endif
-@@ -153,7 +153,7 @@ void MemoryDetails::CollectChildInfoOnUIThread() {
- }
- }
-
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- if (process.pid == zygote_pid) {
- process.type = ChildProcessInfo::ZYGOTE_PROCESS;
- } else if (process.pid == sandbox_helper_pid) {
-diff --git a/chrome/browser/memory_purger.cc b/chrome/browser/memory_purger.cc
-index 9117811..09b8c71 100644
---- chrome/browser/memory_purger.cc
-+++ chrome/browser/memory_purger.cc
-@@ -137,7 +137,7 @@ void MemoryPurger::PurgeBrowser() {
- // * 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_MACOSX) && 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.
-diff --git a/chrome/browser/net/connection_tester.cc b/chrome/browser/net/connection_tester.cc
-index 162be2c..e96b18f 100644
---- chrome/browser/net/connection_tester.cc
-+++ chrome/browser/net/connection_tester.cc
-@@ -161,7 +161,7 @@ class ExperimentURLRequestContext : public URLRequestContext {
- // Otherwise returns a network error code.
- int CreateSystemProxyConfigService(
- scoped_ptr<net::ProxyConfigService>* config_service) {
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- // 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;
-diff --git a/chrome/browser/notifications/balloon_collection_impl.h b/chrome/browser/notifications/balloon_collection_impl.h
-index cb06230..cc907f1 100644
---- chrome/browser/notifications/balloon_collection_impl.h
-+++ chrome/browser/notifications/balloon_collection_impl.h
-@@ -54,7 +54,7 @@ class BalloonCollectionImpl : public BalloonCollection
- 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
-diff --git a/chrome/browser/options_util.cc b/chrome/browser/options_util.cc
-index 8bcf063..7d710d4 100644
---- chrome/browser/options_util.cc
-+++ chrome/browser/options_util.cc
-@@ -28,7 +28,7 @@ void OptionsUtil::ResetToDefaults(Profile* profile) {
- prefs::kCookieBehavior,
- prefs::kDefaultCharset,
- prefs::kDnsPrefetchingEnabled,
--#if defined(OS_LINUX) || defined(OS_FREEBSD) || defined(OS_OPENBSD)
-+#if defined(OS_NIX)
- prefs::kCertRevocationCheckingEnabled,
- prefs::kSSL2Enabled,
- prefs::kSSL3Enabled,
-diff --git a/chrome/browser/process_singleton_linux.cc b/chrome/browser/process_singleton_linux.cc
-index bfd6539..5ea70a3 100644
---- chrome/browser/process_singleton_linux.cc
-+++ chrome/browser/process_singleton_linux.cc
-@@ -281,23 +281,24 @@ void DisplayProfileInUseError(const std::string& lock_path,
- }
-
- bool IsChromeProcess(pid_t pid) {
-- FilePath other_chrome_path(base::GetProcessExecutablePath(pid));
-+/* FilePath other_chrome_path(base::GetProcessExecutablePath(pid));
- return (!other_chrome_path.empty() &&
- other_chrome_path.BaseName() ==
-- FilePath::FromWStringHack(chrome::kBrowserProcessExecutableName));
-+ FilePath::FromWStringHack(chrome::kBrowserProcessExecutableName));*/
-+ return true;
- }
-
- // Return true if the given pid is one of our child processes.
- // Assumes that the current pid is the root of all pids of the current instance.
- bool IsSameChromeInstance(pid_t pid) {
- pid_t cur_pid = base::GetCurrentProcId();
-- while (pid != cur_pid) {
-+/* while (pid != cur_pid) {
- pid = base::GetParentProcessId(pid);
- if (pid < 0)
- return false;
- if (!IsChromeProcess(pid))
- return false;
-- }
-+ }*/
- return true;
- }
-
-diff --git a/chrome/browser/renderer_host/backing_store_proxy.cc b/chrome/browser/renderer_host/backing_store_proxy.cc
-index ba3538b..4388eb0 100644
---- chrome/browser/renderer_host/backing_store_proxy.cc
-+++ chrome/browser/renderer_host/backing_store_proxy.cc
-@@ -46,8 +46,12 @@ void BackingStoreProxy::PaintToBackingStore(
- process_id = process->GetHandle();
- #endif
-
-+#if defined(OS_FREEBSD)
-+ int render_process_id = process->id();
-+#endif
-+
- if (process_shim_->Send(new GpuMsg_PaintToBackingStore(
-- routing_id_, process_id, bitmap, bitmap_rect, copy_rects))) {
-+ routing_id_, render_process_id, bitmap, bitmap_rect, copy_rects))) {
- // Message sent successfully, so the caller can not destroy the
- // TransportDIB. OnDonePaintingToBackingStore will free it later.
- *painted_synchronously = false;
-diff --git a/chrome/browser/renderer_host/browser_render_process_host.cc b/chrome/browser/renderer_host/browser_render_process_host.cc
-index d6509e8..2211ef4 100644
---- chrome/browser/renderer_host/browser_render_process_host.cc
-+++ chrome/browser/renderer_host/browser_render_process_host.cc
-@@ -313,11 +313,11 @@ bool BrowserRenderProcessHost::Init(bool is_extensions_process,
- in_process_renderer_.reset(new RendererMainThread(channel_id));
-
- base::Thread::Options options;
--#if !defined(OS_LINUX)
-+#if !defined(USE_X11)
- // In-process plugins require this to be a UI message loop.
- options.message_loop_type = MessageLoop::TYPE_UI;
- #else
-- // We can't have multiple UI loops on Linux, so we don't support
-+ // We can't have multiple UI loops on X, so we don't support
- // in-process plugins.
- options.message_loop_type = MessageLoop::TYPE_DEFAULT;
- #endif
-@@ -736,13 +736,13 @@ TransportDIB* BrowserRenderProcessHost::MapTransportDIB(
- HANDLE section = win_util::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);
- #elif defined(OS_LINUX)
- return TransportDIB::Map(dib_id);
--#endif // defined(OS_LINUX)
-+#endif // defined(OS_NIX)
- }
-
- TransportDIB* BrowserRenderProcessHost::GetTransportDIB(
-diff --git a/chrome/browser/renderer_host/mock_render_process_host.cc b/chrome/browser/renderer_host/mock_render_process_host.cc
-index 21fa34d..22e53ed 100644
---- chrome/browser/renderer_host/mock_render_process_host.cc
-+++ chrome/browser/renderer_host/mock_render_process_host.cc
-@@ -99,7 +99,7 @@ TransportDIB* MockRenderProcessHost::GetTransportDIB(TransportDIB::Id dib_id) {
- DuplicateHandle(GetCurrentProcess(), dib_id.handle, GetCurrentProcess(),
- &duped, 0, TRUE, DUPLICATE_SAME_ACCESS);
- transport_dib_ = TransportDIB::Map(duped);
--#elif defined(OS_MACOSX)
-+#elif defined(OS_MACOSX) || defined(OS_FREEBSD)
- // On Mac, TransportDIBs are always created in the browser, so we cannot map
- // one from a dib_id.
- transport_dib_ = TransportDIB::Create(100 * 100 * 4, 0);
-diff --git a/chrome/browser/renderer_host/render_sandbox_host_linux.cc b/chrome/browser/renderer_host/render_sandbox_host_linux.cc
-index 5824fc9..59c6fa5 100644
---- chrome/browser/renderer_host/render_sandbox_host_linux.cc
-+++ chrome/browser/renderer_host/render_sandbox_host_linux.cc
-@@ -644,7 +644,12 @@ void RenderSandboxHostLinux::Init(const std::string& sandbox_path) {
- // 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)
-+ if (socketpair(AF_UNIX, SOCK_SEQPACKET, 0, fds) != 0)
-+ 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];
-diff --git a/chrome/browser/renderer_host/render_view_host_delegate.cc b/chrome/browser/renderer_host/render_view_host_delegate.cc
-index 11f6168..78122cc 100644
---- chrome/browser/renderer_host/render_view_host_delegate.cc
-+++ chrome/browser/renderer_host/render_view_host_delegate.cc
-@@ -11,7 +11,7 @@
- #include "googleurl/src/gurl.h"
- #include "webkit/glue/webpreferences.h"
-
--#if defined(OS_LINUX)
-+#if defined(TOOLKIT_GTK)
- #include "chrome/browser/gtk/gtk_util.h"
- #endif
-
-diff --git a/chrome/browser/renderer_host/render_widget_helper.cc b/chrome/browser/renderer_host/render_widget_helper.cc
-index e2cd531..9e603f7 100644
---- chrome/browser/renderer_host/render_widget_helper.cc
-+++ chrome/browser/renderer_host/render_widget_helper.cc
-@@ -58,7 +58,7 @@ RenderWidgetHelper::~RenderWidgetHelper() {
- // object, so we should not be destroyed unless pending_paints_ is empty!
- DCHECK(pending_paints_.empty());
-
--#if defined(OS_MACOSX)
-+#if defined(OS_MACOSX) || defined(OS_FREEBSD)
- ClearAllocatedDIBs();
- #endif
- }
-@@ -257,7 +257,7 @@ void RenderWidgetHelper::OnCreateWidgetOnUI(
- host->CreateNewWidget(route_id, popup_type);
- }
-
--#if defined(OS_MACOSX)
-+#if defined(OS_MACOSX) || defined(OS_FREEBSD)
- TransportDIB* RenderWidgetHelper::MapTransportDIB(TransportDIB::Id dib_id) {
- AutoLock locked(allocated_dibs_lock_);
-
-diff --git a/chrome/browser/renderer_host/render_widget_helper.h b/chrome/browser/renderer_host/render_widget_helper.h
-index d31bf66..ab08823 100644
---- chrome/browser/renderer_host/render_widget_helper.h
-+++ chrome/browser/renderer_host/render_widget_helper.h
-@@ -109,7 +109,7 @@ class RenderWidgetHelper
- const base::TimeDelta& max_delay,
- IPC::Message* msg);
-
--#if defined(OS_MACOSX)
-+#if defined(OS_MACOSX) || defined(OS_FREEBSD)
- // Given the id of a transport DIB, return a mapping to it or NULL on error.
- TransportDIB* MapTransportDIB(TransportDIB::Id dib_id);
- #endif
-@@ -130,7 +130,7 @@ class RenderWidgetHelper
- WebKit::WebPopupType popup_type,
- int* route_id);
-
--#if defined(OS_MACOSX)
-+#if defined(OS_MACOSX) || defined(OS_FREEBSD)
- // Called on the IO thread to handle the allocation of a TransportDIB. If
- // |cache_in_browser| is |true|, then a copy of the shmem is kept by the
- // browser, and it is the caller's repsonsibility to call
-@@ -182,7 +182,7 @@ class RenderWidgetHelper
- // Called on the IO thread to resume a cross-site response.
- void OnCrossSiteClosePageACK(ViewMsg_ClosePage_Params params);
-
--#if defined(OS_MACOSX)
-+#if defined(OS_MACOSX) || defined(OS_FREEBSD)
- // Called on destruction to release all allocated transport DIBs
- void ClearAllocatedDIBs();
-
-diff --git a/chrome/browser/renderer_host/render_widget_host.cc b/chrome/browser/renderer_host/render_widget_host.cc
-index 1920101..00afa22 100644
---- chrome/browser/renderer_host/render_widget_host.cc
-+++ chrome/browser/renderer_host/render_widget_host.cc
-@@ -154,7 +154,7 @@ void RenderWidgetHost::OnMessageReceived(const IPC::Message &msg) {
- OnMsgImeCancelComposition)
- IPC_MESSAGE_HANDLER(ViewHostMsg_GpuRenderingActivated,
- OnMsgGpuRenderingActivated)
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- IPC_MESSAGE_HANDLER(ViewHostMsg_CreatePluginContainer,
- OnMsgCreatePluginContainer)
- IPC_MESSAGE_HANDLER(ViewHostMsg_DestroyPluginContainer,
-@@ -909,7 +909,7 @@ void RenderWidgetHost::OnMsgGpuRenderingActivated(bool activated) {
- is_gpu_rendering_active_ = activated;
- }
-
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
-
- void RenderWidgetHost::OnMsgCreatePluginContainer(gfx::PluginWindowHandle id) {
- // TODO(piman): view_ can only be NULL with delayed view creation in
-diff --git a/chrome/browser/renderer_host/render_widget_host.h b/chrome/browser/renderer_host/render_widget_host.h
-index 0b0e114..3430042 100644
---- chrome/browser/renderer_host/render_widget_host.h
-+++ chrome/browser/renderer_host/render_widget_host.h
-@@ -490,7 +490,7 @@ class RenderWidgetHost : public IPC::Channel::Listener,
-
- void OnMsgGpuRenderingActivated(bool activated);
-
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- void OnMsgCreatePluginContainer(gfx::PluginWindowHandle id);
- void OnMsgDestroyPluginContainer(gfx::PluginWindowHandle id);
- #elif defined(OS_MACOSX)
-diff --git a/chrome/browser/renderer_host/render_widget_host_unittest.cc b/chrome/browser/renderer_host/render_widget_host_unittest.cc
-index 4ea8193..a8298a6 100644
---- chrome/browser/renderer_host/render_widget_host_unittest.cc
-+++ chrome/browser/renderer_host/render_widget_host_unittest.cc
-@@ -400,7 +400,7 @@ TEST_F(RenderWidgetHostTest, ResizeThenCrash) {
-
- // Tests setting custom background
- TEST_F(RenderWidgetHostTest, Background) {
--#if defined(OS_WIN) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_NIX)
- scoped_ptr<RenderWidgetHostView> view(
- RenderWidgetHostView::CreateViewForWidget(host_.get()));
- host_->set_view(view.get());
-diff --git a/chrome/browser/renderer_host/render_widget_host_view.h b/chrome/browser/renderer_host/render_widget_host_view.h
-index 9a20af0..4b695b4 100644
---- chrome/browser/renderer_host/render_widget_host_view.h
-+++ chrome/browser/renderer_host/render_widget_host_view.h
-@@ -215,7 +215,7 @@ class RenderWidgetHostView {
- virtual void DrawAcceleratedSurfaceInstances(CGLContextObj context) = 0;
- #endif
-
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- virtual void CreatePluginContainer(gfx::PluginWindowHandle id) = 0;
- virtual void DestroyPluginContainer(gfx::PluginWindowHandle id) = 0;
- #endif
-diff --git a/chrome/browser/renderer_host/resource_message_filter.cc b/chrome/browser/renderer_host/resource_message_filter.cc
-index 0418487..3cad76b 100644
---- chrome/browser/renderer_host/resource_message_filter.cc
-+++ chrome/browser/renderer_host/resource_message_filter.cc
-@@ -542,7 +542,7 @@ bool ResourceMessageFilter::OnMessageReceived(const IPC::Message& msg) {
- #if defined(OS_WIN)
- IPC_MESSAGE_HANDLER(ViewHostMsg_DuplicateSection, OnDuplicateSection)
- #endif
--#if defined(OS_MACOSX)
-+#if defined(OS_MACOSX) || defined(OS_FREEBSD)
- IPC_MESSAGE_HANDLER(ViewHostMsg_AllocatePDFTransport,
- OnAllocateSharedMemoryBuffer)
- #endif
-@@ -566,7 +566,7 @@ bool ResourceMessageFilter::OnMessageReceived(const IPC::Message& msg) {
- IPC_MESSAGE_HANDLER_DELAY_REPLY(ViewHostMsg_ScriptedPrint,
- OnScriptedPrint)
- #endif
--#if defined(OS_MACOSX)
-+#if defined(OS_MACOSX) || defined(OS_FREEBSD)
- IPC_MESSAGE_HANDLER(ViewHostMsg_AllocTransportDIB,
- OnAllocTransportDIB)
- IPC_MESSAGE_HANDLER(ViewHostMsg_FreeTransportDIB,
-@@ -1306,7 +1306,7 @@ void ResourceMessageFilter::OnRendererHistograms(
- HistogramSynchronizer::DeserializeHistogramList(sequence_number, histograms);
- }
-
--#if defined(OS_MACOSX)
-+#if defined(OS_MACOSX) || defined(OS_FREEBSD)
- void ResourceMessageFilter::OnAllocTransportDIB(
- size_t size, bool cache_in_browser, TransportDIB::Handle* handle) {
- render_widget_helper_->AllocTransportDIB(size, cache_in_browser, handle);
-diff --git a/chrome/browser/renderer_host/test/test_render_view_host.h b/chrome/browser/renderer_host/test/test_render_view_host.h
-index a2b1c99..90220d5 100644
---- chrome/browser/renderer_host/test/test_render_view_host.h
-+++ chrome/browser/renderer_host/test/test_render_view_host.h
-@@ -109,7 +109,7 @@ class TestRenderWidgetHostView : public RenderWidgetHostView {
- #endif
- virtual void SetVisuallyDeemphasized(bool deemphasized) { }
-
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- virtual void CreatePluginContainer(gfx::PluginWindowHandle id) { }
- virtual void DestroyPluginContainer(gfx::PluginWindowHandle id) { }
- #endif
-diff --git a/chrome/browser/renderer_host/video_layer_proxy.cc b/chrome/browser/renderer_host/video_layer_proxy.cc
-index 3df1d25..9a4341a 100644
---- chrome/browser/renderer_host/video_layer_proxy.cc
-+++ chrome/browser/renderer_host/video_layer_proxy.cc
-@@ -33,8 +33,12 @@ void VideoLayerProxy::CopyTransportDIB(RenderProcessHost* process,
- process_id = process->GetHandle();
- #endif
-
-+#if defined(OS_FREEBSD)
-+ int render_process_id = process->id();
-+#endif
-+
- if (process_shim_->Send(new GpuMsg_PaintToVideoLayer(
-- routing_id_, process_id, bitmap, bitmap_rect))) {
-+ routing_id_, render_process_id, bitmap, bitmap_rect))) {
- } else {
- // TODO(scherkus): what to do ?!?!
- }
-diff --git a/chrome/browser/renderer_preferences_util.cc b/chrome/browser/renderer_preferences_util.cc
-index dd29afc..6fcafe7 100644
---- chrome/browser/renderer_preferences_util.cc
-+++ chrome/browser/renderer_preferences_util.cc
-@@ -6,7 +6,7 @@
-
- #include "chrome/browser/profile.h"
-
--#if defined(OS_LINUX)
-+#if defined(TOOLKIT_GTK)
- #include "chrome/browser/gtk/gtk_theme_provider.h"
- #include "chrome/browser/gtk/gtk_util.h"
- #endif
-@@ -14,7 +14,7 @@
- namespace renderer_preferences_util {
-
- void UpdateFromSystemSettings(RendererPreferences* prefs, Profile* profile) {
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- gtk_util::UpdateGtkFontSettings(prefs);
-
- #if !defined(TOOLKIT_VIEWS)
-@@ -31,7 +31,7 @@ void UpdateFromSystemSettings(RendererPreferences* prefs, Profile* profile) {
- prefs->inactive_selection_fg_color =
- provider->get_inactive_selection_fg_color();
- #endif // !defined(TOOLKIT_VIEWS)
--#endif // defined(OS_LINUX)
-+#endif // defined(OS_NIX)
- }
-
- } // renderer_preferences_util
-diff --git a/chrome/browser/search_engines/template_url_prepopulate_data.cc b/chrome/browser/search_engines/template_url_prepopulate_data.cc
-index 67a5342..7f7dd38 100644
---- chrome/browser/search_engines/template_url_prepopulate_data.cc
-+++ chrome/browser/search_engines/template_url_prepopulate_data.cc
-@@ -4,7 +4,7 @@
-
- #include "chrome/browser/search_engines/template_url_prepopulate_data.h"
-
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- #include <locale.h>
- #endif
-
-diff --git a/chrome/browser/shell_integration_linux.cc b/chrome/browser/shell_integration_linux.cc
-index cf46e37..7fbe364 100644
---- chrome/browser/shell_integration_linux.cc
-+++ chrome/browser/shell_integration_linux.cc
-@@ -131,6 +131,8 @@ void CreateShortcutOnDesktop(const FilePath& shortcut_filename,
- if (!PathService::Get(chrome::DIR_USER_DESKTOP, &desktop_path))
- return;
-
-+#if !defined(OS_FREEBSD)
-+// BSD: Linux-specific calls like openat are used so defined out for BSD.
- int desktop_fd = open(desktop_path.value().c_str(), O_RDONLY | O_DIRECTORY);
- if (desktop_fd < 0)
- return;
-@@ -159,6 +161,7 @@ void CreateShortcutOnDesktop(const FilePath& shortcut_filename,
-
- if (HANDLE_EINTR(close(desktop_fd)) < 0)
- PLOG(ERROR) << "close";
-+#endif // !defined(OS_FREEBSD)
- }
-
- void CreateShortcutInApplicationsMenu(const FilePath& shortcut_filename,
-diff --git a/chrome/browser/shell_integration_unittest.cc b/chrome/browser/shell_integration_unittest.cc
-index 0514781..760a8c4 100644
---- chrome/browser/shell_integration_unittest.cc
-+++ chrome/browser/shell_integration_unittest.cc
-@@ -20,13 +20,13 @@
-
- #if defined(OS_WIN)
- #include "chrome/installer/util/browser_distribution.h"
--#elif defined(OS_LINUX)
-+#elif defined(OS_NIX)
- #include "base/env_var.h"
--#endif // defined(OS_LINUX)
-+#endif // defined(OS_NIX)
-
- #define FPL FILE_PATH_LITERAL
-
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- namespace {
-
- // Provides mock environment variables values based on a stored map.
-diff --git a/chrome/browser/sync/engine/syncer_thread.cc b/chrome/browser/sync/engine/syncer_thread.cc
-index ffc7bcd..e0b94d7 100644
---- chrome/browser/sync/engine/syncer_thread.cc
-+++ chrome/browser/sync/engine/syncer_thread.cc
-@@ -257,7 +257,7 @@ void SyncerThread::ThreadMainLoop() {
- bool initial_sync_for_thread = true;
- bool continue_sync_cycle = false;
-
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- idle_query_.reset(new IdleQueryLinux());
- #endif
-
-@@ -340,7 +340,7 @@ void SyncerThread::ThreadMainLoop() {
- static_cast<int>(vault_.current_wait_interval_.poll_delta.InSeconds()),
- &user_idle_milliseconds, &continue_sync_cycle, nudged);
- }
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- idle_query_.reset();
- #endif
- }
-@@ -755,7 +755,7 @@ int SyncerThread::UserIdleTime() {
- } else {
- return idle_time / 1000000; // nano to milli
- }
--#elif defined(OS_LINUX)
-+#elif defined(OS_NIX)
- if (idle_query_.get()) {
- return idle_query_->IdleTime();
- } else {
-diff --git a/chrome/browser/sync/engine/syncer_thread.h b/chrome/browser/sync/engine/syncer_thread.h
-index a54ff7f..ad4e63b 100644
---- chrome/browser/sync/engine/syncer_thread.h
-+++ chrome/browser/sync/engine/syncer_thread.h
-@@ -22,7 +22,7 @@
- #include "base/time.h"
- #include "base/waitable_event.h"
- #include "chrome/browser/sync/engine/all_status.h"
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- #include "chrome/browser/sync/engine/idle_query_linux.h"
- #endif
- #include "chrome/browser/sync/sessions/sync_session.h"
-@@ -324,7 +324,7 @@ class SyncerThread : public base::RefCountedThreadSafe<SyncerThread>,
- scoped_ptr<EventListenerHookup> directory_manager_hookup_;
- scoped_ptr<ChannelHookup<SyncerEvent> > syncer_events_;
-
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- // On Linux, we need this information in order to query idle time.
- scoped_ptr<IdleQueryLinux> idle_query_;
- #endif
-diff --git a/chrome/browser/sync/syncable/directory_backing_store.cc b/chrome/br
-owser/sync/syncable/directory_backing_store.cc
-index 048f016..9516bab 100644
---- chrome/browser/sync/syncable/directory_backing_store.cc
-+++ chrome/browser/sync/syncable/directory_backing_store.cc
-@@ -303,13 +303,13 @@ bool DirectoryBackingStore::BeginLoad() {
- #else
- UMA_HISTOGRAM_COUNTS_100("Sync.DirectoryOpenFailedNotWinMac", bucket);
-
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if defined(OS_NIX) && !defined(OS_CHROMEOS)
- UMA_HISTOGRAM_COUNTS_100("Sync.DirectoryOpenFailedLinux", bucket);
- #elif defined(OS_CHROMEOS)
- UMA_HISTOGRAM_COUNTS_100("Sync.DirectoryOpenFailedCros", bucket);
- #else
- UMA_HISTOGRAM_COUNTS_100("Sync.DirectoryOpenFailedOther", bucket);
--#endif // OS_LINUX && !OS_CHROMEOS
-+#endif // OS_NIX && !OS_CHROMEOS
- #endif // OS_WIN
- return !failed_again;
- }
-diff --git a/chrome/browser/sync/syncable/syncable.cc b/chrome/browser/sync/syncable/syncable.cc
-index 7c6cc71..29eac9a 100644
---- chrome/browser/sync/syncable/syncable.cc
-+++ chrome/browser/sync/syncable/syncable.cc
-@@ -82,7 +82,7 @@ int64 Now() {
- LARGE_INTEGER n;
- memcpy(&n, &filetime, sizeof(filetime));
- return n.QuadPart;
--#elif defined(OS_LINUX) || defined(OS_MACOSX)
-+#elif defined(OS_POSIX)
- struct timeval tv;
- gettimeofday(&tv, NULL);
- return static_cast<int64>(tv.tv_sec);
-diff --git a/chrome/browser/tab_contents/interstitial_page.cc b/chrome/browser/tab_contents/interstitial_page.cc
-index 10c8d7c..742e648 100644
---- chrome/browser/tab_contents/interstitial_page.cc
-+++ chrome/browser/tab_contents/interstitial_page.cc
-@@ -487,7 +487,7 @@ void InterstitialPage::CancelForNavigation() {
- }
-
- void InterstitialPage::SetSize(const gfx::Size& size) {
--#if defined(OS_WIN) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_NIX)
- // When a tab is closed, we might be resized after our view was NULLed
- // (typically if there was an info-bar).
- if (render_view_host_->view())
-diff --git a/chrome/browser/tab_contents/render_view_context_menu.cc b/chrome/browser/tab_contents/render_view_context_menu.cc
-index 37e2e01..6567331 100644
---- chrome/browser/tab_contents/render_view_context_menu.cc
-+++ chrome/browser/tab_contents/render_view_context_menu.cc
-@@ -879,7 +879,7 @@ bool RenderViewContextMenu::IsCommandIdEnabled(int id) const {
- return true;
- #endif // OS_MACOSX
-
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- // TODO(suzhe): this should not be enabled for password fields.
- case IDC_INPUT_METHODS_MENU:
- return true;
-diff --git a/chrome/browser/tab_contents/tab_contents.cc b/chrome/browser/tab_contents/tab_contents.cc
-index b5395cc..88ec57a 100644
---- chrome/browser/tab_contents/tab_contents.cc
-+++ chrome/browser/tab_contents/tab_contents.cc
-@@ -334,7 +334,7 @@ TabContents::TabContents(Profile* profile,
- 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
-@@ -3006,7 +3006,7 @@ void TabContents::Observe(NotificationType type,
- break;
- }
-
--#if defined(OS_LINUX)
-+#if defined(TOOLKIT_GTK)
- case NotificationType::BROWSER_THEME_CHANGED: {
- renderer_preferences_util::UpdateFromSystemSettings(
- &renderer_preferences_, profile());
-diff --git a/chrome/browser/task_manager_resource_providers.cc b/chrome/browser/task_manager_resource_providers.cc
-index 6dfbc0c..4551285 100644
---- chrome/browser/task_manager_resource_providers.cc
-+++ chrome/browser/task_manager_resource_providers.cc
-@@ -839,7 +839,7 @@ TaskManagerBrowserProcessResource::TaskManagerBrowserProcessResource()
- default_icon_ = IconUtil::CreateSkBitmapFromHICON(icon, icon_size);
- }
- }
--#elif defined(OS_LINUX)
-+#elif defined(OS_NIX)
- if (!default_icon_) {
- ResourceBundle& rb = ResourceBundle::GetSharedInstance();
- default_icon_ = rb.GetBitmapNamed(IDR_PRODUCT_LOGO_16);
-diff --git a/chrome/browser/views/accessible_view_helper.cc b/chrome/browser/views/accessible_view_helper.cc
-index f173761..89c639e 100644
---- chrome/browser/views/accessible_view_helper.cc
-+++ chrome/browser/views/accessible_view_helper.cc
-@@ -20,7 +20,7 @@ AccessibleViewHelper::AccessibleViewHelper(
- if (!accessibility_event_router_->AddViewTree(view_tree_, profile))
- view_tree_ = NULL;
-
--#if defined(OS_LINUX)
-+#if defined(TOOLKIT_USES_GTK)
- GtkWidget* widget = view_tree->GetWidget()->GetNativeView();
- widget_helper_.reset(new AccessibleWidgetHelper(widget, profile));
- #endif
-diff --git a/chrome/browser/views/accessible_view_helper.h b/chrome/browser/views/accessible_view_helper.h
-index 2d01238..584b91f 100644
---- chrome/browser/views/accessible_view_helper.h
-+++ chrome/browser/views/accessible_view_helper.h
-@@ -14,7 +14,7 @@
- #include "chrome/browser/accessibility_events.h"
- #include "chrome/browser/views/accessibility_event_router_views.h"
-
--#if defined(OS_LINUX)
-+#if defined(TOOLKIT_USES_GTK)
- #include "chrome/browser/gtk/accessible_widget_helper_gtk.h"
- #endif
-
-@@ -68,7 +68,7 @@ class AccessibleViewHelper {
- std::string window_title_;
- std::vector<views::View*> managed_views_;
-
--#if defined(OS_LINUX)
-+#if defined(TOOLKIT_USES_GTK)
- scoped_ptr<AccessibleWidgetHelper> widget_helper_;
- #endif
-
-diff --git a/chrome/browser/views/bug_report_view.cc b/chrome/browser/views/bug_report_view.cc
-index 564b080..8ebbc7e 100644
---- chrome/browser/views/bug_report_view.cc
-+++ chrome/browser/views/bug_report_view.cc
-@@ -39,7 +39,7 @@
- #include "views/window/client_view.h"
- #include "views/window/window.h"
-
--#if defined(OS_LINUX)
-+#if defined(USE_X11)
- #include "app/x11_util.h"
- #else
- #include "app/win_util.h"
-@@ -209,7 +209,7 @@ void ShowBugReportView(views::Window* parent,
- // rendered--do not re-render, and include windowed plugins).
- std::vector<unsigned char> *screenshot_png = new std::vector<unsigned char>;
-
--#if defined(OS_LINUX)
-+#if defined(USE_X11)
- x11_util::GrabWindowSnapshot(parent->GetNativeWindow(), screenshot_png);
- #else
- win_util::GrabWindowSnapshot(parent->GetNativeWindow(), screenshot_png);
-diff --git a/chrome/browser/views/content_blocked_bubble_contents.cc b/chrome/browser/views/content_blocked_bubble_contents.cc
-index bef80be..1cf055e 100644
---- chrome/browser/views/content_blocked_bubble_contents.cc
-+++ chrome/browser/views/content_blocked_bubble_contents.cc
-@@ -4,7 +4,7 @@
-
- #include "chrome/browser/views/content_blocked_bubble_contents.h"
-
--#if defined(OS_LINUX)
-+#if defined(TOOLKIT_GTK)
- #include <gdk/gdk.h>
- #endif
-
-@@ -87,7 +87,7 @@ gfx::NativeCursor ContentSettingBubbleContents::Favicon::GetCursorForPoint(
- if (!g_hand_cursor)
- g_hand_cursor = LoadCursor(NULL, IDC_HAND);
- return g_hand_cursor;
--#elif defined(OS_LINUX)
-+#elif defined(TOOLKIT_GTK)
- return gdk_cursor_new(GDK_HAND2);
- #endif
- }
-diff --git a/chrome/browser/views/create_application_shortcut_view.cc b/chrome/browser/views/create_application_shortcut_view.cc
-index b0a66b3..68d0002 100644
---- chrome/browser/views/create_application_shortcut_view.cc
-+++ chrome/browser/views/create_application_shortcut_view.cc
-@@ -267,7 +267,7 @@ void CreateApplicationShortcutView::Init() {
- 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_NIX)
- menu_check_box_ = AddCheckbox(
- l10n_util::GetString(IDS_CREATE_SHORTCUTS_MENU_CHKBOX),
- profile->GetPrefs()->GetBoolean(prefs::kWebAppCreateInAppsMenu));
-diff --git a/chrome/browser/views/download_item_view.cc b/chrome/browser/views/download_item_view.cc
-index 348c86d..9318b17 100644
---- chrome/browser/views/download_item_view.cc
-+++ chrome/browser/views/download_item_view.cc
-@@ -261,7 +261,7 @@ DownloadItemView::DownloadItemView(DownloadItem* download,
-
- // Extract the file extension (if any).
- FilePath filepath(download->original_name());
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- std::wstring extension = base::SysNativeMBToWide(filepath.Extension());
- #else
- std::wstring extension = filepath.Extension();
-@@ -270,7 +270,7 @@ DownloadItemView::DownloadItemView(DownloadItem* download,
- // Remove leading '.'
- if (extension.length() > 0)
- extension = extension.substr(1);
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- std::wstring rootname =
- base::SysNativeMBToWide(filepath.BaseName().RemoveExtension().value());
- #else
-diff --git a/chrome/browser/views/dropdown_bar_host.cc b/chrome/browser/views/dropdown_bar_host.cc
-index 4878e15..f396de6 100644
---- chrome/browser/views/dropdown_bar_host.cc
-+++ chrome/browser/views/dropdown_bar_host.cc
-@@ -20,7 +20,7 @@
- #include "views/focus/view_storage.h"
- #include "views/widget/widget.h"
-
--#if defined(OS_LINUX)
-+#if defined(TOOLKIT_GTK)
- #include "app/scoped_handle_gtk.h"
- #endif
-
-diff --git a/chrome/browser/views/extensions/extension_popup.cc b/chrome/browser/views/extensions/extension_popup.cc
-index a669d69..81ab297 100644
---- chrome/browser/views/extensions/extension_popup.cc
-+++ chrome/browser/views/extensions/extension_popup.cc
-@@ -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
-
-@@ -104,7 +104,7 @@ ExtensionPopup::ExtensionPopup(ExtensionHost* host,
- // The bubble chrome requires a separate window, so construct it here.
- if (BUBBLE_CHROME == popup_chrome_) {
- gfx::NativeView native_window = frame->GetNativeView();
--#if defined(OS_LINUX)
-+#if defined(TOOLKIT_GTK)
- border_widget_ = new views::WidgetGtk(views::WidgetGtk::TYPE_WINDOW);
- static_cast<views::WidgetGtk*>(border_widget_)->MakeTransparent();
- static_cast<views::WidgetGtk*>(border_widget_)->make_transient_to_parent();
-diff --git a/chrome/browser/views/extensions/extension_view.cc b/chrome/browser/views/extensions/extension_view.cc
-index 0090bda..6d2ab07 100644
---- chrome/browser/views/extensions/extension_view.cc
-+++ chrome/browser/views/extensions/extension_view.cc
-@@ -12,7 +12,7 @@
-
- #if defined(OS_WIN)
- #include "chrome/browser/renderer_host/render_widget_host_view_win.h"
--#elif defined(OS_LINUX)
-+#elif defined(TOOLKIT_GTK)
- #include "chrome/browser/renderer_host/render_widget_host_view_gtk.h"
- #endif
-
-@@ -100,7 +100,7 @@ void ExtensionView::CreateWidgetHostView() {
- HWND hwnd = view_win->Create(GetWidget()->GetNativeView());
- view_win->ShowWindow(SW_SHOW);
- Attach(hwnd);
--#elif defined(OS_LINUX)
-+#elif defined(TOOLKIT_GTK)
- RenderWidgetHostViewGtk* view_gtk =
- static_cast<RenderWidgetHostViewGtk*>(view);
- view_gtk->InitAsChild();
-diff --git a/chrome/browser/views/find_bar_host_interactive_uitest.cc b/chrome/browser/views/find_bar_host_interactive_uitest.cc
-index 51080bf..25a661f 100644
---- chrome/browser/views/find_bar_host_interactive_uitest.cc
-+++ chrome/browser/views/find_bar_host_interactive_uitest.cc
-@@ -38,7 +38,7 @@ class FindInPageTest : public InProcessBrowserTest {
- #if defined(TOOLKIT_VIEWS)
- views::View* view =
- reinterpret_cast<BrowserView*>(browser_window)->GetViewByID(view_id);
--#elif defined(OS_LINUX)
-+#elif defined(TOOLKIT_GTK)
- gfx::NativeWindow window = browser_window->GetNativeHandle();
- ASSERT_TRUE(window);
- GtkWidget* view = ViewIDUtil::GetWidget(GTK_WIDGET(window), view_id);
-diff --git a/chrome/browser/views/find_bar_view.cc b/chrome/browser/views/find_bar_view.cc
-index ae78c3c..e1d8820 100644
---- chrome/browser/views/find_bar_view.cc
-+++ chrome/browser/views/find_bar_view.cc
-@@ -80,7 +80,7 @@ static const int kDefaultCharWidth = 43;
-
- FindBarView::FindBarView(FindBarHost* host)
- : DropdownBarView(host),
--#if defined(OS_LINUX)
-+#if defined(TOOLKIT_USES_GTK)
- ignore_contents_changed_(false),
- #endif
- find_text_(NULL),
-@@ -170,11 +170,11 @@ FindBarView::~FindBarView() {
- }
-
- void FindBarView::SetFindText(const string16& find_text) {
--#if defined(OS_LINUX)
-+#if defined(TOOLKIT_USES_GTK)
- ignore_contents_changed_ = true;
- #endif
- find_text_->SetText(find_text);
--#if defined(OS_LINUX)
-+#if defined(TOOLKIT_USES_GTK)
- ignore_contents_changed_ = false;
- #endif
- }
-@@ -441,7 +441,7 @@ void FindBarView::ButtonPressed(
-
- void FindBarView::ContentsChanged(views::Textfield* sender,
- const string16& new_contents) {
--#if defined(OS_LINUX)
-+#if defined(TOOLKIT_USES_GTK)
- // On gtk setting the text in the find view causes a notification.
- if (ignore_contents_changed_)
- return;
-diff --git a/chrome/browser/views/find_bar_view.h b/chrome/browser/views/find_bar_view.h
-index efedc94..8709304 100644
---- chrome/browser/views/find_bar_view.h
-+++ chrome/browser/views/find_bar_view.h
-@@ -102,7 +102,7 @@ class FindBarView : public DropdownBarView,
- // between us and the TabContentsView.
- FindBarHost* find_bar_host() const;
-
--#if defined(OS_LINUX)
-+#if defined(TOOLKIT_USES_GTK)
- // In gtk we get changed signals if we programatically set the text. If we
- // don't ignore them we run into problems. For example, switching tabs back
- // to one with the find bar visible will cause a search to the next found
-diff --git a/chrome/browser/views/frame/app_panel_browser_frame_view.cc b/chrome/browser/views/frame/app_panel_browser_frame_view.cc
-index 16ebec3..804ebde 100644
---- chrome/browser/views/frame/app_panel_browser_frame_view.cc
-+++ chrome/browser/views/frame/app_panel_browser_frame_view.cc
-@@ -21,7 +21,7 @@
- #include "views/window/window.h"
- #include "views/window/window_resources.h"
-
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- #include "views/window/hit_test.h"
- #endif
-
-diff --git a/chrome/browser/views/frame/browser_view.cc b/chrome/browser/views/frame/browser_view.cc
-index a34ab3a..e8d40e9 100644
---- chrome/browser/views/frame/browser_view.cc
-+++ chrome/browser/views/frame/browser_view.cc
-@@ -4,7 +4,7 @@
-
- #include "chrome/browser/views/frame/browser_view.h"
-
--#if defined(OS_LINUX)
-+#if defined(TOOLKIT_GTK)
- #include <gtk/gtk.h>
- #endif
-
-@@ -67,7 +67,7 @@
- #include "app/win_util.h"
- #include "chrome/browser/aeropeek_manager.h"
- #include "chrome/browser/jumplist_win.h"
--#elif defined(OS_LINUX)
-+#elif defined(TOOLKIT_USES_GTK)
- #include "chrome/browser/views/accelerator_table_gtk.h"
- #include "views/window/hit_test.h"
- #endif
-@@ -1095,7 +1095,7 @@ void BrowserView::ShowProfileErrorDialog(int message_id) {
- std::wstring message = l10n_util::GetString(message_id);
- win_util::MessageBox(GetNativeHandle(), message, title,
- MB_OK | MB_ICONWARNING | MB_TOPMOST);
--#elif defined(OS_LINUX)
-+#elif defined(TOOLKIT_GTK)
- std::string title = l10n_util::GetStringUTF8(IDS_PRODUCT_NAME);
- std::string message = l10n_util::GetStringUTF8(message_id);
- GtkWidget* dialog = gtk_message_dialog_new(GetNativeHandle(),
-@@ -2066,7 +2066,7 @@ void BrowserView::ProcessFullscreen(bool fullscreen) {
- #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(TOOLKIT_GTK)
- // 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
-diff --git a/chrome/browser/views/frame/browser_view_layout.cc b/chrome/browser/views/frame/browser_view_layout.cc
-index a332beb..df7cbfd 100644
---- chrome/browser/views/frame/browser_view_layout.cc
-+++ chrome/browser/views/frame/browser_view_layout.cc
-@@ -18,7 +18,7 @@
- #include "gfx/scrollbar_size.h"
- #include "views/window/window.h"
-
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- #include "views/window/hit_test.h"
- #endif
-
-diff --git a/chrome/browser/views/frame/opaque_browser_frame_view.cc b/chrome/browser/views/frame/opaque_browser_frame_view.cc
-index fc6f4de..25bc28f 100644
---- chrome/browser/views/frame/opaque_browser_frame_view.cc
-+++ chrome/browser/views/frame/opaque_browser_frame_view.cc
-@@ -32,7 +32,7 @@
- #include "app/win_util.h"
- #endif
-
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- #include "views/window/hit_test.h"
- #endif
-
-diff --git a/chrome/browser/views/fullscreen_exit_bubble.cc b/chrome/browser/views/fullscreen_exit_bubble.cc
-index e216bd2..c889fae 100644
---- chrome/browser/views/fullscreen_exit_bubble.cc
-+++ chrome/browser/views/fullscreen_exit_bubble.cc
-@@ -17,7 +17,7 @@
- #if defined(OS_WIN)
- #include "app/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
-
-@@ -114,7 +114,7 @@ class FullscreenExitBubble::FullscreenExitPopup : public views::WidgetWin {
- return MA_NOACTIVATE;
- }
- };
--#elif defined(OS_LINUX)
-+#elif defined(TOOLKIT_GTK)
- // TODO: figure out the equivalent of MA_NOACTIVATE for gtk.
- #endif
-
-@@ -149,7 +149,7 @@ FullscreenExitBubble::FullscreenExitBubble(
- popup_->set_window_style(WS_POPUP);
- popup_->set_window_ex_style(WS_EX_LAYERED | WS_EX_TOOLWINDOW |
- l10n_util::GetExtendedTooltipStyles());
--#elif defined(OS_LINUX)
-+#elif defined(TOOLKIT_GTK)
- popup_ = new views::WidgetGtk(views::WidgetGtk::TYPE_POPUP);
- popup_->MakeTransparent();
- #endif
-@@ -197,7 +197,7 @@ void FullscreenExitBubble::AnimationProgressed(
- #if defined(OS_WIN)
- popup_->MoveWindow(popup_rect.x(), popup_rect.y(), popup_rect.width(),
- popup_rect.height());
--#elif defined(OS_LINUX)
-+#elif defined(TOOLKIT_GTK)
- popup_->SetBounds(popup_rect);
- #endif
- popup_->Show();
-diff --git a/chrome/browser/views/fullscreen_exit_bubble.h b/chrome/browser/views/fullscreen_exit_bubble.h
-index c9db5bb..3e0ca96 100644
---- chrome/browser/views/fullscreen_exit_bubble.h
-+++ chrome/browser/views/fullscreen_exit_bubble.h
-@@ -11,7 +11,7 @@
- #include "chrome/browser/command_updater.h"
- #include "views/controls/link.h"
-
--#if defined(OS_LINUX)
-+#if defined(TOOLKIT_GTK)
- namespace views {
- class WidgetGtk;
- }
-@@ -73,7 +73,7 @@ class FullscreenExitBubble : public views::LinkController,
- // The popup itself, which is a slightly modified WidgetWin. We need to use
- // a WidgetWin (and thus an HWND) to make the popup float over other HWNDs.
- FullscreenExitPopup* popup_;
--#elif defined(OS_LINUX)
-+#elif defined(TOOLKIT_GTK)
- views::WidgetGtk* popup_;
- #endif
-
-diff --git a/chrome/browser/views/info_bubble.cc b/chrome/browser/views/info_bubble.cc
-index 34645a0..a0369fb 100644
---- chrome/browser/views/info_bubble.cc
-+++ chrome/browser/views/info_bubble.cc
-@@ -307,7 +307,7 @@ void InfoBubble::AnimationProgressed(const Animation* animation) {
-
- InfoBubble::InfoBubble()
- :
--#if defined(OS_LINUX)
-+#if defined(TOOLKIT_GTK)
- WidgetGtk(TYPE_WINDOW),
- border_contents_(NULL),
- #elif defined(OS_WIN)
-@@ -367,7 +367,7 @@ void InfoBubble::Init(views::Widget* parent,
- WidgetWin::Init(border_->GetNativeView(), gfx::Rect());
-
- SetWindowText(GetNativeView(), delegate_->accessible_name().c_str());
--#elif defined(OS_LINUX)
-+#elif defined(TOOLKIT_USES_GTK)
- MakeTransparent();
- make_transient_to_parent();
- WidgetGtk::InitWithWidget(parent, gfx::Rect());
-@@ -439,7 +439,7 @@ void InfoBubble::Init(views::Widget* parent,
- ShowWindow(SW_SHOW);
- if (fade_in)
- FadeIn();
--#elif defined(OS_LINUX)
-+#elif defined(TOOLKIT_USES_GTK)
- views::WidgetGtk::Show();
- #endif
- }
-@@ -479,7 +479,7 @@ void InfoBubble::OnActivate(UINT action, BOOL minimized, HWND window) {
- GetRootView()->GetChildViewAt(0)->RequestFocus();
- }
- }
--#elif defined(OS_LINUX)
-+#elif defined(TOOLKIT_GTK)
- void InfoBubble::IsActiveChanged() {
- if (!IsActive())
- Close();
-@@ -498,7 +498,7 @@ void InfoBubble::DoClose(bool closed_by_escape) {
- #if defined(OS_WIN)
- border_->Close();
- WidgetWin::Close();
--#elif defined(OS_LINUX)
-+#elif defined(TOOLKIT_GTK)
- WidgetGtk::Close();
- #endif
- }
-diff --git a/chrome/browser/views/info_bubble.h b/chrome/browser/views/info_bubble.h
-index 30b3719..a2d09dc 100644
---- chrome/browser/views/info_bubble.h
-+++ chrome/browser/views/info_bubble.h
-@@ -12,7 +12,7 @@
- #include "chrome/browser/views/bubble_border.h"
- #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
-
-@@ -174,7 +174,7 @@ class InfoBubbleDelegate {
- class InfoBubble
- #if defined(OS_WIN)
- : public views::WidgetWin,
--#elif defined(OS_LINUX)
-+#elif defined(TOOLKIT_GTK)
- : public views::WidgetGtk,
- #endif
- public views::AcceleratorTarget,
-@@ -248,7 +248,7 @@ class InfoBubble
- #if defined(OS_WIN)
- // Overridden from WidgetWin:
- virtual void OnActivate(UINT action, BOOL minimized, HWND window);
--#elif defined(OS_LINUX)
-+#elif defined(TOOLKIT_GTK)
- // Overridden from WidgetGtk:
- virtual void IsActiveChanged();
- #endif
-@@ -256,7 +256,7 @@ class InfoBubble
- #if defined(OS_WIN)
- // The window used to render the padding, border and arrow.
- BorderWidget* border_;
--#elif defined(OS_LINUX)
-+#elif defined(OS_NIX)
- // The view displaying the border.
- BorderContents* border_contents_;
- #endif
-diff --git a/chrome/browser/views/location_bar/location_bar_view.cc b/chrome/browser/views/location_bar/location_bar_view.cc
-index 4dffa4e..0402591 100644
---- chrome/browser/views/location_bar/location_bar_view.cc
-+++ chrome/browser/views/location_bar/location_bar_view.cc
-@@ -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
-
-diff --git a/chrome/browser/views/location_bar/location_bar_view.h b/chrome/browser/views/location_bar/location_bar_view.h
-index 84270dd..389d121 100644
---- chrome/browser/views/location_bar/location_bar_view.h
-+++ chrome/browser/views/location_bar/location_bar_view.h
-@@ -357,7 +357,7 @@ class LocationBarView : public LocationBar,
- // focused. Used when the toolbar is in full keyboard accessibility mode.
- bool show_focus_rect_;
-
--#if defined(OS_LINUX)
-+#if defined(TOOLKIT_USES_GTK)
- scoped_ptr<AccessibleWidgetHelper> accessible_widget_helper_;
- #endif
-
-diff --git a/chrome/browser/views/notifications/balloon_view.cc b/chrome/browser/views/notifications/balloon_view.cc
-index c89280b..7047f8f 100644
---- chrome/browser/views/notifications/balloon_view.cc
-+++ chrome/browser/views/notifications/balloon_view.cc
-@@ -37,7 +37,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
-
-diff --git a/chrome/browser/views/notifications/balloon_view_host.cc b/chrome/browser/views/notifications/balloon_view_host.cc
-index b2c2a5c..7c305da 100644
---- chrome/browser/views/notifications/balloon_view_host.cc
-+++ chrome/browser/views/notifications/balloon_view_host.cc
-@@ -10,14 +10,14 @@
- #if defined(OS_WIN)
- #include "chrome/browser/renderer_host/render_widget_host_view_win.h"
- #endif
--#if defined(OS_LINUX)
-+#if defined(TOOLKIT_GTK)
- #include "chrome/browser/renderer_host/render_widget_host_view_gtk.h"
- #endif
- #include "views/widget/widget.h"
- #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
-
-@@ -70,7 +70,7 @@ void BalloonViewHost::InitRenderWidgetHostView() {
- HWND hwnd = view_win->Create(parent_native_view_);
- view_win->ShowWindow(SW_SHOW);
- native_host_->Attach(hwnd);
--#elif defined(OS_LINUX)
-+#elif defined(TOOLKIT_GTK)
- RenderWidgetHostViewGtk* view_gtk =
- static_cast<RenderWidgetHostViewGtk*>(render_widget_host_view_);
- view_gtk->InitAsChild();
-diff --git a/chrome/browser/views/tabs/dragged_tab_view.cc b/chrome/browser/views/tabs/dragged_tab_view.cc
-index 5ee2626..cca2b27 100644
---- chrome/browser/views/tabs/dragged_tab_view.cc
-+++ chrome/browser/views/tabs/dragged_tab_view.cc
-@@ -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
-
-diff --git a/chrome/browser/views/tabs/dragged_tab_view.h b/chrome/browser/views/tabs/dragged_tab_view.h
-index f2ded5a..653ccd7 100644
---- chrome/browser/views/tabs/dragged_tab_view.h
-+++ chrome/browser/views/tabs/dragged_tab_view.h
-@@ -13,7 +13,7 @@
- namespace views {
- #if defined(OS_WIN)
- class WidgetWin;
--#elif defined(OS_LINUX)
-+#elif defined(TOOLKIT_GTK)
- class WidgetGtk;
- #endif
- }
-@@ -70,7 +70,7 @@ class DraggedTabView : public views::View {
- // The window that contains the DraggedTabView.
- #if defined(OS_WIN)
- scoped_ptr<views::WidgetWin> container_;
--#elif defined(OS_LINUX)
-+#elif defined(TOOLKIT_GTK)
- scoped_ptr<views::WidgetGtk> container_;
- #endif
-
-diff --git a/chrome/browser/views/tabs/tab_strip.cc b/chrome/browser/views/tabs/tab_strip.cc
-index 03cc42f..925d96b 100644
---- chrome/browser/views/tabs/tab_strip.cc
-+++ chrome/browser/views/tabs/tab_strip.cc
-@@ -31,7 +31,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
-
-@@ -769,7 +769,7 @@ bool TabStrip::IsCursorInTabStripZone() const {
- #if defined(OS_WIN)
- DWORD pos = GetMessagePos();
- gfx::Point cursor_point(pos);
--#elif defined(OS_LINUX)
-+#elif defined(TOOLKIT_USES_GTK)
- // TODO(sky): make sure this is right with multiple monitors.
- GdkScreen* screen = gdk_screen_get_default();
- GdkDisplay* display = gdk_screen_get_display(screen);
-diff --git a/chrome/browser/views/tabs/tab_strip.h b/chrome/browser/views/tabs/tab_strip.h
-index 92ba7f9..8a1d646 100644
---- chrome/browser/views/tabs/tab_strip.h
-+++ chrome/browser/views/tabs/tab_strip.h
-@@ -18,7 +18,7 @@ class Tab;
-
- namespace views {
- class ImageView;
--#if defined(OS_LINUX)
-+#if defined(TOOLKIT_GTK)
- class WidgetGtk;
- #elif defined(OS_WIN)
- class WidgetWin;
-diff --git a/chrome/browser/web_applications/web_app.cc b/chrome/browser/web_applications/web_app.cc
-index 97a2329..741743f 100644
---- chrome/browser/web_applications/web_app.cc
-+++ chrome/browser/web_applications/web_app.cc
-@@ -32,9 +32,9 @@
- #include "chrome/common/url_constants.h"
- #include "webkit/glue/dom_operations.h"
-
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- #include "base/env_var.h"
--#endif // defined(OS_LINUX)
-+#endif // defined(OS_NIX)
-
- #if defined(OS_WIN)
- #include "base/win_util.h"
-@@ -258,7 +258,7 @@ void CreateShortcutTask::Run() {
- bool CreateShortcutTask::CreateShortcut() {
- DCHECK(ChromeThread::CurrentlyOn(ChromeThread::FILE));
-
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- scoped_ptr<base::EnvVarGetter> env_getter(base::EnvVarGetter::Create());
-
- std::string shortcut_template;
-diff --git a/chrome/browser/wrench_menu_model.cc b/chrome/browser/wrench_menu_model.cc
-index 637ab57..bf6ab61 100644
---- chrome/browser/wrench_menu_model.cc
-+++ chrome/browser/wrench_menu_model.cc
-@@ -200,7 +200,7 @@ void WrenchMenuModel::Build() {
- AddItemWithStringId(IDC_NEW_INCOGNITO_WINDOW, 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.
-@@ -215,7 +215,7 @@ void WrenchMenuModel::Build() {
- #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));
-diff --git a/chrome/browser/zygote_host_linux.cc b/chrome/browser/zygote_host_linux.cc
-index 9423598..b8e035d 100644
---- chrome/browser/zygote_host_linux.cc
-+++ chrome/browser/zygote_host_linux.cc
-@@ -55,7 +55,12 @@ ZygoteHost::ZygoteHost()
- }
-
- ZygoteHost::~ZygoteHost() {
-+ Pickle pickle;
- if (init_)
-+#if defined(OS_FREEBSD)
-+ pickle.WriteInt(kCmdEnd);
-+ HANDLE_EINTR(write(control_fd_, pickle.data(), pickle.size()));
-+#endif
- close(control_fd_);
- }
-
-@@ -71,7 +76,12 @@ void ZygoteHost::Init(const std::string& sandbox_cmd) {
- switches::kZygoteProcess);
-
- int fds[2];
-+#if defined(OS_FREEBSD)
-+ if (socketpair(PF_UNIX, SOCK_SEQPACKET, 0, fds) != 0)
-+ CHECK(socketpair(PF_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));
-
-@@ -153,6 +163,7 @@ void ZygoteHost::Init(const std::string& sandbox_cmd) {
- // 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.
-+#if defined(OS_LINUX)
- std::vector<int> fds_vec;
- const int kExpectedLength = sizeof(kZygoteMagic);
- char buf[kExpectedLength];
-@@ -182,6 +193,7 @@ void ZygoteHost::Init(const std::string& sandbox_cmd) {
- // Reap the sandbox.
- ProcessWatcher::EnsureProcessGetsReaped(process);
- }
-+#endif // defined(OS_LINUX)
- } else {
- // Not using the SUID sandbox.
- pid_ = process;
-@@ -277,6 +289,7 @@ pid_t ZygoteHost::ForkRenderer(
- selinux_valid = true;
- }
-
-+#if defined(OS_LINUX)
- const int kRendererScore = 5;
- if (using_suid_sandbox_ && !selinux) {
- base::ProcessHandle sandbox_helper_process;
-@@ -296,6 +309,7 @@ pid_t ZygoteHost::ForkRenderer(
- if (!base::AdjustOOMScore(pid, kRendererScore))
- LOG(ERROR) << "Failed to adjust OOM score of renderer";
- }
-+#endif // defined(OS_LINUX)
-
- return pid;
- }
-diff --git a/chrome/browser/zygote_host_linux.h b/chrome/browser/zygote_host_linux.h
-index 545df8d..749996e 100644
---- chrome/browser/zygote_host_linux.h
-+++ chrome/browser/zygote_host_linux.h
-@@ -45,6 +45,9 @@ class ZygoteHost {
- kCmdReap = 1, // Reap a renderer child.
- kCmdDidProcessCrash = 2, // Check if child process crashed.
- kCmdGetSandboxStatus = 3, // Read a bitmask of kSandbox*
-+#if defined(OS_FREEBSD)
-+ kCmdEnd = 5, // Kill zygote for SOCK_DGRAM.
-+#endif
- };
-
- // These form a bitmask which describes the conditions of the sandbox that
-diff --git a/chrome/browser/zygote_main_linux.cc b/chrome/browser/zygote_main_linux.cc
-index 51a658e..1d1e99d 100644
---- chrome/browser/zygote_main_linux.cc
-+++ chrome/browser/zygote_main_linux.cc
-@@ -2,11 +2,17 @@
- // 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>
-+#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>
-@@ -47,7 +53,7 @@
-
- #include "unicode/timezone.h"
-
--#if defined(ARCH_CPU_X86_FAMILY) && !defined(CHROMIUM_SELINUX)
-+#if defined(ARCH_CPU_X86_FAMILY) && defined(OS_LINUX) && !defined(CHROMIUM_SELINUX)
- // The seccomp sandbox is enabled on all ia32 and x86-64 processor as long as
- // we aren't using SELinux.
- #define SECCOMP_SANDBOX
-@@ -169,6 +175,11 @@ class Zygote {
- case ZygoteHost::kCmdGetSandboxStatus:
- HandleGetSandboxStatus(fd, pickle, iter);
- return false;
-+#if defined(OS_FREEBSD)
-+ case ZygoteHost::kCmdEnd:
-+ _exit(0);
-+ return false;
-+#endif
- default:
- NOTREACHED();
- break;
-@@ -237,7 +248,11 @@ class Zygote {
- int argc, numfds;
- base::GlobalDescriptors::Mapping mapping;
- base::ProcessId child;
-+#if defined(OS_FREEBSD)
-+ uint32_t dummy_inode = 0;
-+#elif
- uint64_t dummy_inode = 0;
-+#endif
- int dummy_fd = -1;
-
- if (!pickle.ReadInt(&iter, &argc))
-@@ -265,6 +280,7 @@ class Zygote {
- mapping.push_back(std::make_pair(
- static_cast<uint32_t>(kSandboxIPCChannel), kMagicSandboxIPCDescriptor));
-
-+#if defined(OS_LINUX)
- if (g_suid_sandbox_active) {
- dummy_fd = socket(PF_UNIX, SOCK_DGRAM, 0);
- if (dummy_fd < 0)
-@@ -273,6 +289,7 @@ class Zygote {
- if (!base::FileDescriptorGetInode(&dummy_inode, dummy_fd))
- goto error;
- }
-+#endif // defined(OS_LINUX)
-
- child = fork();
-
-@@ -280,10 +297,13 @@ class Zygote {
- #if defined(SECCOMP_SANDBOX)
- // Try to open /proc/self/maps as the seccomp sandbox needs access to it
- if (g_proc_fd >= 0) {
-+#if defined(OS_LINUX)
-+// BSD: Removing all Seccomp Sandbox code if not on linux
- int proc_self_maps = openat(g_proc_fd, "self/maps", O_RDONLY);
- if (proc_self_maps >= 0) {
- SeccompSandboxSetProcSelfMaps(proc_self_maps);
- }
-+#endif
- close(g_proc_fd);
- g_proc_fd = -1;
- }
-@@ -593,6 +613,8 @@ static bool EnterSandbox() {
-
- SkiaFontConfigUseIPCImplementation(kMagicSandboxIPCDescriptor);
-
-+ // TODO(benl): Do something for FreeBSD...
-+#if !defined(OS_FREEBSD)
- // 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
-@@ -618,6 +640,7 @@ static bool EnterSandbox() {
- return false;
- }
- }
-+#endif
- } else {
- SkiaFontConfigUseDirectImplementation();
- }
-diff --git a/chrome/chrome.gyp b/chrome/chrome.gyp
-index ebd8304..1e833f3 100644
---- chrome/chrome.gyp
-+++ chrome/chrome.gyp
-@@ -95,6 +95,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': [
-@@ -658,7 +662,7 @@
- '..',
- ],
- 'conditions': [
-- ['OS=="linux"', {
-+ ['OS=="linux" or OS=="freebsd"', {
- 'dependencies': [
- '../build/linux/system.gyp:gtk',
- ],
-@@ -716,7 +720,7 @@
- '<(DEPTH)/third_party/wtl/include',
- ],
- }],
-- ['OS=="linux" and target_arch!="arm"', {
-+ ['(OS=="linux" or OS=="freebsd") and target_arch!="arm"', {
- 'sources': [
- 'gpu/gpu_backing_store_glx.cc',
- 'gpu/gpu_backing_store_glx.h',
-@@ -1078,7 +1082,7 @@
- 'service/cloud_print/print_system_win.cc',
- ],
- }],
-- ['OS=="linux"', {
-+ ['OS=="linux" or OS=="freebsd"', {
- 'dependencies': [
- '../build/linux/system.gyp:gtk',
- ],
-diff --git a/chrome/chrome_browser.gypi b/chrome/chrome_browser.gypi
-index 05a38da..b64be85 100644
---- chrome/chrome_browser.gypi
-+++ chrome/chrome_browser.gypi
-@@ -2883,12 +2883,18 @@
- ],
- },
- }],
-+ ['use_gconf==0', {
-+ 'sources!': [
-+ 'browser/gtk/gconf_titlebar_listener.cc',
-+ 'browser/gtk/gconf_titlebar_listener.h',
-+ ],
-+ }],
- ['touchui==0', {
- 'sources!': [
- # Nothing yet.
- ],
- }],
-- ['OS=="linux"', {
-+ ['OS=="linux" or OS=="freebsd"', {
- 'dependencies': [
- '../build/linux/system.gyp:dbus-glib',
- '../build/linux/system.gyp:gconf',
-@@ -2870,12 +2870,6 @@
- '../build/linux/system.gyp:gtkprint',
- '../build/linux/system.gyp:nss',
- ],
-- 'link_settings': {
-- 'libraries': [
-- # For dlsym() in 'browser/zygote_main_linux.cc'
-- '-ldl',
-- ],
-- },
- 'sources!': [
- # Exclude extension shelf for toolstrips.
- 'browser/views/extensions/extension_shelf.cc',
-@@ -2935,6 +2929,9 @@
- 'sources': [
- 'browser/file_watcher_stub.cc',
- ],
-+ 'sources!': [
-+ 'browser/file_watcher_inotify.cc',
-+ ],
- }],
- ['OS=="mac"', {
- 'sources!': [
-@@ -3481,7 +3478,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'],
-diff --git a/chrome/chrome_renderer.gypi b/chrome/chrome_renderer.gypi
-index b0b2532..901204a 100644
---- chrome/chrome_renderer.gypi
-+++ chrome/chrome_renderer.gypi
-@@ -226,6 +226,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',
- ],
-diff --git a/chrome/chrome_tests.gypi b/chrome/chrome_tests.gypi
-index 28cd15b..adfae38 100644
---- chrome/chrome_tests.gypi
-+++ chrome/chrome_tests.gypi
-@@ -126,7 +126,7 @@
- 'test/ui_test_utils_win.cc',
- ],
- 'conditions': [
-- ['OS=="linux"', {
-+ ['OS=="linux" or OS=="freebsd"', {
- 'dependencies': [
- '../build/linux/system.gyp:gtk',
- '../build/linux/system.gyp:nss',
-@@ -172,7 +172,7 @@
- 'test/ui/ui_test_suite.h',
- ],
- 'conditions': [
-- ['OS=="linux"', {
-+ ['OS=="linux" or OS=="freebsd"', {
- 'dependencies': [
- '../build/linux/system.gyp:gtk',
- ],
-@@ -196,7 +196,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
-@@ -231,7 +231,7 @@
- 'test/automated_ui_tests/automated_ui_tests.h',
- ],
- 'conditions': [
-- ['OS=="linux"', {
-+ ['OS=="linux" or OS=="freebsd"', {
- 'dependencies': [
- '../tools/xdisplaycheck/xdisplaycheck.gyp:xdisplaycheck',
- ],
-@@ -345,7 +345,7 @@
- '../webkit/webkit.gyp:npapi_pepper_test_plugin',
- ],
- }],
-- ['OS=="linux"', {
-+ ['OS=="linux" or OS=="freebsd"', {
- 'dependencies': [
- '../build/linux/system.gyp:gtk',
- '../tools/xdisplaycheck/xdisplaycheck.gyp:xdisplaycheck',
-@@ -1232,7 +1232,7 @@
- ['exclude', '^browser/chromeos/'],
- ],
- }],
-- ['OS=="linux"', {
-+ ['OS=="linux" or OS=="freebsd"', {
- 'conditions': [
- ['gcc_version==44', {
- # Avoid gcc 4.4 strict aliasing issues in stl_tree.h when
-@@ -1662,7 +1662,7 @@
- 'browser/renderer_host/test/render_view_host_manager_browsertest.cc',
- ],
- }],
-- ['OS=="linux"', {
-+ ['OS=="linux" or OS=="freebsd"', {
- 'dependencies': [
- '../build/linux/system.gyp:gtk',
- '../tools/xdisplaycheck/xdisplaycheck.gyp:xdisplaycheck',
-@@ -1735,7 +1735,7 @@
- 'test/startup/startup_test.cc',
- ],
- 'conditions': [
-- ['OS=="linux"', {
-+ ['OS=="linux" or OS=="freebsd"', {
- 'dependencies': [
- '../build/linux/system.gyp:gtk',
- '../tools/xdisplaycheck/xdisplaycheck.gyp:xdisplaycheck',
-@@ -1816,7 +1816,7 @@
- '<(allocator_target)',
- ],
- },],
-- ['OS=="linux"', {
-+ ['OS=="linux" or OS=="freebsd"', {
- 'dependencies': [
- '../build/linux/system.gyp:gtk',
- ],
-@@ -1842,7 +1842,7 @@
- 'test/page_cycler/page_cycler_test.cc',
- ],
- 'conditions': [
-- ['OS=="linux"', {
-+ ['OS=="linux" or OS=="freebsd"', {
- 'dependencies': [
- '../build/linux/system.gyp:gtk',
- '../tools/xdisplaycheck/xdisplaycheck.gyp:xdisplaycheck',
-@@ -1879,7 +1879,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',
-@@ -1913,7 +1913,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',
-@@ -2057,7 +2057,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',
-@@ -2157,7 +2157,7 @@
- ],
- 'conditions': [
- # Plugin code.
-- ['OS=="linux" or OS=="win"', {
-+ ['OS=="linux" or OS=="freebsd" or OS=="win"', {
- 'dependencies': [
- 'plugin',
- ],
-@@ -2165,7 +2165,7 @@
- 'plugin',
- ],
- }],
-- ['OS=="linux"', {
-+ ['OS=="linux" or OS=="freebsd"', {
- 'dependencies': [
- '../build/linux/system.gyp:gtk',
- '../build/linux/system.gyp:nss',
-@@ -2294,7 +2294,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',
-@@ -2422,7 +2422,7 @@
- ]}, # 'targets'
- ], # OS=="win"
- # Build on linux x86_64 only if linux_fpic==1
- ['OS=="mac" or (OS=="win" and component=="static_library") '
-- 'or (OS=="linux" and target_arch==python_arch '
-+ 'or ((OS=="linux" or OS=="freebsd") and target_arch==python_arch '
- 'and (target_arch!="x64" or linux_fpic==1))', {
- 'targets': [
- {
-diff --git a/chrome/common/chrome_constants.cc b/chrome/common/chrome_constants.cc
-index 47f0d52..48779e7 100644
---- chrome/common/chrome_constants.cc
-+++ chrome/common/chrome_constants.cc
-@@ -27,7 +27,7 @@ namespace chrome {
- #if defined(OS_WIN)
- const wchar_t kBrowserProcessExecutableName[] = L"chrome.exe";
- const wchar_t kHelperProcessExecutableName[] = L"chrome.exe";
--#elif defined(OS_LINUX)
-+#elif defined(OS_NIX)
- const wchar_t kBrowserProcessExecutableName[] = L"chrome";
- // Helper processes end up with a name of "exe" due to execing via
- // /proc/self/exe. See bug 22703.
-@@ -39,7 +39,7 @@ const wchar_t kHelperProcessExecutableName[] = PRODUCT_STRING_W L" Helper";
- #if defined(OS_WIN)
- const wchar_t kBrowserProcessExecutablePath[] = L"chrome.exe";
- const FilePath::CharType kHelperProcessExecutablePath[] = FPL("chrome.exe");
--#elif defined(OS_LINUX)
-+#elif defined(OS_NIX)
- const wchar_t kBrowserProcessExecutablePath[] = L"chrome";
- const FilePath::CharType kHelperProcessExecutablePath[] = FPL("chrome");
- #elif defined(OS_MACOSX)
-diff --git a/chrome/common/chrome_paths.cc b/chrome/common/chrome_paths.cc
-index 6f77510..f4d4183 100644
---- chrome/common/chrome_paths.cc
-+++ chrome/common/chrome_paths.cc
-@@ -164,7 +164,7 @@ bool PathProvider(int key, FilePath* result) {
- 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
-diff --git a/chrome/common/chrome_switches.cc b/chrome/common/chrome_switches.cc
-index b78c3e7..da0c8ce 100644
---- chrome/common/chrome_switches.cc
-+++ chrome/common/chrome_switches.cc
-@@ -1029,7 +1029,7 @@ const char kServicesManifest[] = "services-manifest";
-
- #endif
-
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- // Specify the amount the trackpad should scroll by.
- const char kScrollPixels[] = "scroll-pixels";
- #endif
-diff --git a/chrome/common/chrome_switches.h b/chrome/common/chrome_switches.h
-index 7262bde..caf128f 100644
---- chrome/common/chrome_switches.h
-+++ chrome/common/chrome_switches.h
-@@ -302,7 +302,7 @@ extern const char kStartupManifest[];
- extern const char kServicesManifest[];
- #endif
-
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- extern const char kScrollPixels[];
- #endif
-
-diff --git a/chrome/common/gpu_messages_internal.h b/chrome/common/gpu_messages_internal.h
-index fa9a83f..8a3e65b 100644
---- chrome/common/gpu_messages_internal.h
-+++ chrome/common/gpu_messages_internal.h
-@@ -98,7 +98,7 @@ IPC_BEGIN_MESSAGES(GpuHost)
- // Response to a GpuMsg_Synchronize message.
- IPC_MESSAGE_CONTROL0(GpuHostMsg_SynchronizeReply)
-
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- // Get the XID for a view ID.
- IPC_SYNC_MESSAGE_CONTROL1_1(GpuHostMsg_GetViewXID,
- gfx::NativeViewId, /* view */
-diff --git a/chrome/common/native_web_keyboard_event.h b/chrome/common/native_web_keyboard_event.h
-index 381ad31..d5675ae 100644
---- chrome/common/native_web_keyboard_event.h
-+++ chrome/common/native_web_keyboard_event.h
-@@ -32,7 +32,7 @@ struct NativeWebKeyboardEvent : public WebKit::WebKeyboardEvent {
- NativeWebKeyboardEvent(wchar_t character,
- int state,
- double time_stamp_seconds);
--#elif defined(OS_LINUX)
-+#elif defined(TOOLKIT_GTK)
- explicit NativeWebKeyboardEvent(const GdkEventKey* event);
- NativeWebKeyboardEvent(wchar_t character,
- int state,
-@@ -48,7 +48,7 @@ struct NativeWebKeyboardEvent : public WebKit::WebKeyboardEvent {
- MSG os_event;
- #elif defined(OS_MACOSX)
- NSEvent* os_event;
--#elif defined(OS_LINUX)
-+#elif defined(TOOLKIT_GTK)
- GdkEventKey* os_event;
- #endif
-
-diff --git a/chrome/common/render_messages_internal.h b/chrome/common/render_messages_internal.h
-index 3704777..abbb050 100644
---- chrome/common/render_messages_internal.h
-+++ chrome/common/render_messages_internal.h
-@@ -1778,7 +1778,7 @@ IPC_BEGIN_MESSAGES(ViewHost)
- int /* fd in browser */)
- #endif
-
--#if defined(OS_MACOSX)
-+#if defined(OS_MACOSX) || defined(OS_FREEBSD)
- // Asks the browser to create a block of shared memory for the renderer to
- // pass NativeMetafile data to the browser.
- IPC_SYNC_MESSAGE_ROUTED1_1(ViewHostMsg_AllocatePDFTransport,
-@@ -1957,7 +1957,7 @@ IPC_BEGIN_MESSAGES(ViewHost)
- IPC_MESSAGE_CONTROL1(ViewHostMsg_ExtensionRemoveListener,
- std::string /* name */)
-
--#if defined(OS_MACOSX)
-+#if defined(OS_MACOSX) || defined(OS_FREEBSD)
- // On OSX, we cannot allocated shared memory from within the sandbox, so
- // this call exists for the renderer to ask the browser to allocate memory
- // on its behalf. We return a file descriptor to the POSIX shared memory.
-diff --git a/chrome/default_plugin/default_plugin.gyp b/chrome/default_plugin/default_plugin.gyp
-index a0d8a6d..2093868 100644
---- chrome/default_plugin/default_plugin.gyp
-+++ chrome/default_plugin/default_plugin.gyp
-@@ -53,7 +53,7 @@
- 'plugin_install_job_monitor.h',
- ],
- }],
-- ['OS=="linux"', {
-+ ['OS=="linux" or OS=="freebsd"', {
- 'dependencies': [
- '<(DEPTH)/build/linux/system.gyp:gtk',
- ],
-diff --git a/chrome/gpu/gpu_backing_store_glx.cc b/chrome/gpu/gpu_backing_store_glx.cc
-index 37076cc..821611e 100644
---- chrome/gpu/gpu_backing_store_glx.cc
-+++ chrome/gpu/gpu_backing_store_glx.cc
-@@ -7,6 +7,7 @@
- #include "app/gfx/gl/gl_bindings.h"
- #include "app/surface/transport_dib.h"
- #include "base/scoped_ptr.h"
-+#include "chrome/browser/renderer_host/render_process_host.h"
- #include "chrome/common/gpu_messages.h"
- #include "chrome/gpu/gpu_backing_store_glx_context.h"
- #include "chrome/gpu/gpu_thread.h"
-@@ -63,7 +64,7 @@ void GpuBackingStoreGLX::OnPaintToBackingStore(
- TransportDIB::Id id,
- const gfx::Rect& bitmap_rect,
- const std::vector<gfx::Rect>& copy_rects) {
-- scoped_ptr<TransportDIB> dib(TransportDIB::Map(id));
-+ scoped_ptr<TransportDIB> dib(RenderProcessHost::FromID(source_process_id)->GetTransportDIB(id));
- view_->BindContext();
-
- scoped_ptr<skia::PlatformCanvas> canvas(
-diff --git a/chrome/gpu/gpu_channel.cc b/chrome/gpu/gpu_channel.cc
-index 091410c..d2fdb49 100644
---- chrome/gpu/gpu_channel.cc
-+++ chrome/gpu/gpu_channel.cc
-@@ -116,7 +116,7 @@ void GpuChannel::OnCreateViewCommandBuffer(gfx::NativeViewId view_id,
- if (view_renderer_id != renderer_id_)
- return;
- handle = view;
--#elif defined(OS_LINUX)
-+#elif defined(OS_NIX)
- ChildThread* gpu_thread = ChildThread::current();
- // Ask the browser for the view's XID.
- // TODO(piman): This assumes that it doesn't change. It can change however
-diff --git a/chrome/gpu/gpu_config.h b/chrome/gpu/gpu_config.h
-index 41ca6a3..288bf3c 100644
---- chrome/gpu/gpu_config.h
-+++ chrome/gpu/gpu_config.h
-@@ -9,7 +9,7 @@
-
- #include "build/build_config.h"
-
--#if defined(OS_LINUX) && !defined(ARCH_CPU_ARMEL)
-+#if defined(OS_NIX) && !defined(ARCH_CPU_ARMEL)
-
- // Only define GLX support for Intel CPUs for now until we can get the
- // proper dependencies and build setup for ARM.
-diff --git a/chrome/gpu/gpu_thread.cc b/chrome/gpu/gpu_thread.cc
-index c5ac79f..257ed34 100644
---- chrome/gpu/gpu_thread.cc
-+++ chrome/gpu/gpu_thread.cc
-@@ -24,7 +24,7 @@
- #include <X11/Xutil.h> // Must be last.
- #endif
-
--#if defined(OS_LINUX)
-+#if defined(TOOLKIT_USES_GTK)
- #include <gtk/gtk.h>
- #endif
-
-@@ -32,7 +32,7 @@ GpuThread::GpuThread() {
- #if defined(GPU_USE_GLX)
- display_ = ::XOpenDisplay(NULL);
- #endif
--#if defined(OS_LINUX)
-+#if defined(TOOLKIT_USES_GTK)
- {
- // The X11 port of the command buffer code assumes it can access the X
- // display via the macro GDK_DISPLAY(), which implies that Gtk has been
-diff --git a/chrome/gpu/gpu_video_layer_glx.cc b/chrome/gpu/gpu_video_layer_glx.cc
-index d0578ad..985dc1a 100644
---- chrome/gpu/gpu_video_layer_glx.cc
-+++ chrome/gpu/gpu_video_layer_glx.cc
-@@ -5,6 +5,7 @@
- #include "chrome/gpu/gpu_video_layer_glx.h"
-
- #include "app/gfx/gl/gl_bindings.h"
-+#include "chrome/browser/renderer_host/render_process_host.h"
- #include "chrome/common/gpu_messages.h"
- #include "chrome/gpu/gpu_thread.h"
- #include "chrome/gpu/gpu_view_x.h"
-@@ -264,7 +265,7 @@ void GpuVideoLayerGLX::OnPaintToVideoLayer(base::ProcessId source_process_id,
- height <= 0 || height > kMaxVideoLayerSize)
- return;
-
-- TransportDIB* dib = TransportDIB::Map(id);
-+ TransportDIB* dib = RenderProcessHost::FromID(source_process_id)->GetTransportDIB(id);
- if (!dib)
- return;
-
-diff --git a/chrome/gpu/x_util.h b/chrome/gpu/x_util.h
-index 512b232..c201e07 100644
---- chrome/gpu/x_util.h
-+++ chrome/gpu/x_util.h
-@@ -11,7 +11,7 @@
- #include "build/build_config.h"
- #include "chrome/gpu/gpu_config.h"
-
--#if defined(OS_LINUX)
-+#if defined(USE_X11)
-
- // Forward declares ------------------------------------------------------------
- //
-@@ -41,6 +41,6 @@ class ScopedPtrXFree {
- void operator()(void* x) const;
- };
-
--#endif // OS_LINUX
-+#endif // USE_X11
-
- #endif // CHROME_GPU_X_UTIL_H_
-diff --git a/chrome/plugin/plugin_main_linux.cc b/chrome/plugin/plugin_main_linux.cc
-index 6bb9da7..27f7996 100644
---- chrome/plugin/plugin_main_linux.cc
-+++ chrome/plugin/plugin_main_linux.cc
-@@ -11,7 +11,7 @@
- #include "build/build_config.h"
-
- // This whole file is only useful on 64-bit architectures.
--#if defined(ARCH_CPU_64_BITS)
-+#if defined(ARCH_CPU_64_BITS) && !defined(OS_FREEBSD)
-
- namespace {
-
-diff --git a/chrome/plugin/plugin_thread.cc b/chrome/plugin/plugin_thread.cc
-index 1ae410e..84375a6 100644
---- chrome/plugin/plugin_thread.cc
-+++ chrome/plugin/plugin_thread.cc
-@@ -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>
-@@ -52,7 +52,7 @@ PluginThread::PluginThread()
- 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.
-diff --git a/chrome/renderer/mock_render_thread.cc b/chrome/renderer/mock_render_thread.cc
-index 57e9d80..e1e3b22 100644
---- chrome/renderer/mock_render_thread.cc
-+++ chrome/renderer/mock_render_thread.cc
-@@ -105,7 +105,7 @@ void MockRenderThread::OnMessageReceived(const IPC::Message& msg) {
- IPC_MESSAGE_HANDLER(ViewHostMsg_AllocatePDFTransport,
- OnAllocatePDFTransport)
- #endif
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- IPC_MESSAGE_HANDLER(ViewHostMsg_AllocateTempFileForPrinting,
- OnAllocateTempFileForPrinting)
- IPC_MESSAGE_HANDLER(ViewHostMsg_TempFileForPrintingWritten,
-@@ -154,7 +154,7 @@ void MockRenderThread::OnAllocatePDFTransport(
- }
- #endif
-
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- void MockRenderThread::OnAllocateTempFileForPrinting(
- base::FileDescriptor* renderer_fd,
- int* browser_fd) {
-diff --git a/chrome/renderer/mock_render_thread.h b/chrome/renderer/mock_render_thread.h
-index c297cb8..b69a369 100644
---- chrome/renderer/mock_render_thread.h
-+++ chrome/renderer/mock_render_thread.h
-@@ -101,7 +101,7 @@ class MockRenderThread : public RenderThreadBase {
- base::SharedMemoryHandle* handle);
- #endif
-
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- void OnAllocateTempFileForPrinting(base::FileDescriptor* renderer_fd,
- int* browser_fd);
- void OnTempFileForPrintingWritten(int browser_fd);
-diff --git a/chrome/renderer/pepper_scrollbar_widget.h b/chrome/renderer/pepper_scrollbar_widget.h
-index ac36f5e..3d9be56 100644
---- chrome/renderer/pepper_scrollbar_widget.h
-+++ chrome/renderer/pepper_scrollbar_widget.h
-@@ -37,7 +37,7 @@ class PepperScrollbarWidget : public PepperWidget,
- virtual void getTickmarks(WebKit::WebScrollbar*,
- WebKit::WebVector<WebKit::WebRect>*) const;
-
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- static void SetScrollbarColors(unsigned inactive_color,
- unsigned active_color,
- unsigned track_color);
-diff --git a/chrome/renderer/render_process_impl.cc b/chrome/renderer/render_process_impl.cc
-index e610df9..c4155d0 100644
---- chrome/renderer/render_process_impl.cc
-+++ chrome/renderer/render_process_impl.cc
-@@ -225,7 +225,7 @@ TransportDIB* RenderProcessImpl::CreateTransportDIB(size_t size) {
- #if defined(OS_WIN) || defined(OS_LINUX)
- // 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_NIX)
- // 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;
-@@ -242,7 +242,7 @@ void RenderProcessImpl::FreeTransportDIB(TransportDIB* dib) {
- if (!dib)
- return;
-
--#if defined(OS_MACOSX)
-+#if defined(OS_MACOSX) || defined(OS_FREEBSD)
- // 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());
-@@ -260,7 +260,7 @@ skia::PlatformCanvas* RenderProcessImpl::GetDrawingCanvas(
- int width = rect.width();
- int height = rect.height();
- const size_t stride = skia::PlatformCanvas::StrideForWidth(rect.width());
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- const size_t max_size = base::SysInfo::MaxSharedMemorySize();
- #else
- const size_t max_size = 0;
-diff --git a/chrome/renderer/render_thread.cc b/chrome/renderer/render_thread.cc
-index 3573488..e662023 100644
---- chrome/renderer/render_thread.cc
-+++ chrome/renderer/render_thread.cc
-@@ -901,7 +901,7 @@ void RenderThread::EnsureWebKitInitialized() {
- }
-
- void RenderThread::IdleHandler() {
--#if (defined(OS_WIN) || defined(OS_LINUX)) && defined(USE_TCMALLOC)
-+#if !defined(OS_MACOSX) && defined(USE_TCMALLOC)
- MallocExtension::instance()->ReleaseFreeMemory();
- #endif
-
-@@ -977,7 +977,7 @@ void RenderThread::OnPurgeMemory() {
- while (!v8::V8::IdleNotification()) {
- }
-
--#if (defined(OS_WIN) || defined(OS_LINUX)) && defined(USE_TCMALLOC)
-+#if !defined(OS_MACOSX) && defined(USE_TCMALLOC)
- // Tell tcmalloc to release any free pages it's still holding.
- MallocExtension::instance()->ReleaseFreeMemory();
- #endif
-diff --git a/chrome/renderer/render_view.h b/chrome/renderer/render_view.h
-index 25ef1e6..fe8feba 100644
---- chrome/renderer/render_view.h
-+++ chrome/renderer/render_view.h
-@@ -961,7 +961,7 @@ class RenderView : public RenderWidget,
- // periodic timer so we don't send too many messages.
- void SyncNavigationState();
-
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- void UpdateFontRenderingFromRendererPrefs();
- #else
- void UpdateFontRenderingFromRendererPrefs() {}
-diff --git a/chrome/renderer/renderer_glue.cc b/chrome/renderer/renderer_glue.cc
-index 849565a..8930fc2 100644
---- chrome/renderer/renderer_glue.cc
-+++ chrome/renderer/renderer_glue.cc
-@@ -39,7 +39,7 @@
-
- #if defined(OS_WIN)
- #include <strsafe.h> // note: per msdn docs, this must *follow* other includes
--#elif defined(OS_LINUX)
-+#elif defined(OS_NIX)
- #include "chrome/renderer/renderer_sandbox_support_linux.h"
- #endif
-
-@@ -313,7 +313,7 @@ bool IsSingleProcess() {
- return CommandLine::ForCurrentProcess()->HasSwitch(switches::kSingleProcess);
- }
-
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- int MatchFontWithFallback(const std::string& face, bool bold,
- bool italic, int charset) {
- return renderer_sandbox_support::MatchFontWithFallback(
-diff --git a/chrome/renderer/renderer_main.cc b/chrome/renderer/renderer_main.cc
-index f521e11..95982a7 100644
---- chrome/renderer/renderer_main.cc
-+++ chrome/renderer/renderer_main.cc
-@@ -267,7 +267,7 @@ int RendererMain(const MainFunctionParams& parameters) {
- PepperPluginRegistry::GetInstance();
-
- {
--#if !defined(OS_LINUX)
-+#if !defined(OS_NIX)
- // TODO(markus): Check if it is OK to unconditionally move this
- // instruction down.
- RenderProcessImpl render_process;
-@@ -277,7 +277,7 @@ int RendererMain(const MainFunctionParams& parameters) {
- if (!no_sandbox) {
- run_loop = platform.EnableSandbox();
- }
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- RenderProcessImpl render_process;
- render_process.set_main_thread(new RenderThread());
- #endif
-diff --git a/chrome/renderer/renderer_main_platform_delegate_linux.cc b/chrome/renderer/renderer_main_platform_delegate_linux.cc
-index 98b0aca..ca7df2e 100644
---- chrome/renderer/renderer_main_platform_delegate_linux.cc
-+++ chrome/renderer/renderer_main_platform_delegate_linux.cc
-@@ -36,7 +36,7 @@ bool RendererMainPlatformDelegate::EnableSandbox() {
- //
- // The seccomp sandbox is started in the renderer.
- // http://code.google.com/p/seccompsandbox/
--#if defined(ARCH_CPU_X86_FAMILY) && !defined(CHROMIUM_SELINUX)
-+#if defined(OS_LINUX) && defined(ARCH_CPU_X86_FAMILY) && !defined(CHROMIUM_SELINUX)
- // N.b. SupportsSeccompSandbox() returns a cached result, as we already
- // called it earlier in the zygote. Thus, it is OK for us to not pass in
- // a file descriptor for "/proc".
-diff --git a/chrome/renderer/renderer_webkitclient_impl.cc b/chrome/renderer/renderer_webkitclient_impl.cc
-index 27329ee..0bdbcdf 100644
---- chrome/renderer/renderer_webkitclient_impl.cc
-+++ chrome/renderer/renderer_webkitclient_impl.cc
-@@ -42,7 +42,7 @@
- #include "chrome/common/font_loader_mac.h"
- #endif
-
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- #include "chrome/renderer/renderer_sandbox_support_linux.h"
- #endif
-
-@@ -311,7 +311,7 @@ bool RendererWebKitClientImpl::SandboxSupport::ensureFontLoaded(HFONT font) {
- return RenderThread::current()->Send(new ViewHostMsg_PreCacheFont(logfont));
- }
-
--#elif defined(OS_LINUX)
-+#elif defined(OS_NIX)
-
- WebString RendererWebKitClientImpl::SandboxSupport::getFontFamilyForCharacters(
- const WebKit::WebUChar* characters, size_t num_characters) {
-diff --git a/chrome/renderer/renderer_webkitclient_impl.h b/chrome/renderer/renderer_webkitclient_impl.h
-index 86fdf1f..8c1e874 100644
---- chrome/renderer/renderer_webkitclient_impl.h
-+++ chrome/renderer/renderer_webkitclient_impl.h
-@@ -15,7 +15,7 @@
-
- #if defined(OS_WIN)
- #include "third_party/WebKit/WebKit/chromium/public/win/WebSandboxSupport.h"
--#elif defined(OS_LINUX)
-+#elif defined(OS_NIX)
- #include <string>
- #include <map>
- #include "base/lock.h"
-@@ -99,7 +99,7 @@ class RendererWebKitClientImpl : public webkit_glue::WebKitClientImpl {
- public:
- virtual bool ensureFontLoaded(HFONT);
- };
--#elif defined(OS_LINUX)
-+#elif defined(OS_NIX)
- class SandboxSupport : public WebKit::WebSandboxSupport {
- public:
- virtual WebKit::WebString getFontFamilyForCharacters(
-diff --git a/chrome/renderer/webplugin_delegate_pepper.cc b/chrome/renderer/webplugin_delegate_pepper.cc
-index 58f1a23..64bfaa4 100644
---- chrome/renderer/webplugin_delegate_pepper.cc
-+++ chrome/renderer/webplugin_delegate_pepper.cc
-@@ -9,7 +9,7 @@
- #include <string>
- #include <vector>
-
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- #include <unistd.h>
- #endif
-
-@@ -33,7 +33,7 @@
- #include "chrome/common/render_messages.h"
- #include "chrome/renderer/pepper_widget.h"
- #include "chrome/renderer/render_thread.h"
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- #include "chrome/renderer/renderer_sandbox_support_linux.h"
- #endif
- #include "chrome/renderer/webplugin_delegate_proxy.h"
-@@ -455,7 +455,7 @@ bool WebPluginDelegatePepper::SetCursor(NPCursorType type) {
- NPError NPMatchFontWithFallback(NPP instance,
- const NPFontDescription* description,
- NPFontID* id) {
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- int fd = renderer_sandbox_support::MatchFontWithFallback(
- description->face, description->weight >= 700, description->italic,
- description->charset);
-@@ -474,7 +474,7 @@ NPError GetFontTable(NPP instance,
- uint32_t table,
- void* output,
- size_t* output_length) {
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- bool rv = renderer_sandbox_support::GetFontTable(
- id, table, static_cast<uint8_t*>(output), output_length);
- return rv ? NPERR_NO_ERROR : NPERR_GENERIC_ERROR;
-@@ -485,7 +485,7 @@ NPError GetFontTable(NPP instance,
- }
-
- NPError NPDestroyFont(NPP instance, NPFontID id) {
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- close(id);
- return NPERR_NO_ERROR;
- #else
-@@ -1158,10 +1158,10 @@ int WebPluginDelegatePepper::PrintBegin(const gfx::Rect& printable_area,
- current_printer_dpi_ = printer_dpi;
- }
- }
--#if defined (OS_LINUX)
-+#if defined (OS_NIX)
- num_pages_ = num_pages;
- pdf_output_done_ = false;
--#endif // (OS_LINUX)
-+#endif // (OS_NIX)
- return num_pages;
- }
-
-@@ -1187,7 +1187,7 @@ bool WebPluginDelegatePepper::VectorPrintPage(int page_number,
- unsigned char* pdf_output = NULL;
- int32 output_size = 0;
- NPPrintPageNumberRange page_range;
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- // On Linux we will try and output all pages as PDF in the first call to
- // PrintPage. This is a temporary hack.
- // TODO(sanjeevr): Remove this hack and fix this by changing the print
-@@ -1196,9 +1196,9 @@ bool WebPluginDelegatePepper::VectorPrintPage(int page_number,
- return pdf_output_done_;
- page_range.firstPageNumber = 0;
- page_range.lastPageNumber = num_pages_ - 1;
--#else // defined(OS_LINUX)
-+#else // defined(OS_NIX)
- page_range.firstPageNumber = page_range.lastPageNumber = page_number;
--#endif // defined(OS_LINUX)
-+#endif // defined(OS_NIX)
- NPError err = print_extensions->printPagesAsPDF(instance()->npp(),
- &page_range, 1,
- &pdf_output, &output_size);
-@@ -1206,7 +1206,7 @@ bool WebPluginDelegatePepper::VectorPrintPage(int page_number,
- return false;
-
- bool ret = false;
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- // On Linux we need to get the backing PdfPsMetafile and write the bits
- // directly.
- cairo_t* context = canvas->beginPlatformPaint();
-@@ -1359,10 +1359,10 @@ void WebPluginDelegatePepper::PrintEnd() {
- current_printer_dpi_ = -1;
- #if defined(OS_MACOSX)
- last_printed_page_ = SkBitmap();
--#elif defined(OS_LINUX)
-+#elif defined(OS_NIX)
- num_pages_ = 0;
- pdf_output_done_ = false;
--#endif // defined(OS_LINUX)
-+#endif // defined(OS_NIX)
- }
-
- WebPluginDelegatePepper::WebPluginDelegatePepper(
-@@ -1373,10 +1373,10 @@ WebPluginDelegatePepper::WebPluginDelegatePepper(
- instance_(instance),
- nested_delegate_(NULL),
- current_printer_dpi_(-1),
--#if defined (OS_LINUX)
-+#if defined (OS_NIX)
- num_pages_(0),
- pdf_output_done_(false),
--#endif // (OS_LINUX)
-+#endif // (OS_NIX)
- #if defined(ENABLE_GPU)
- command_buffer_(NULL),
- #endif
-diff --git a/chrome/renderer/webplugin_delegate_pepper.h b/chrome/renderer/webplugin_delegate_pepper.h
-index be9c1ce..e38a3d7 100644
---- chrome/renderer/webplugin_delegate_pepper.h
-+++ chrome/renderer/webplugin_delegate_pepper.h
-@@ -305,7 +305,7 @@ class WebPluginDelegatePepper : public webkit_glue::WebPluginDelegate,
- // variable to hold on to the pixels.
- SkBitmap last_printed_page_;
- #endif // defined(OS_MACOSX)
--#if defined (OS_LINUX)
-+#if defined (OS_NIX)
- // On Linux, we always send all pages from the renderer to the browser.
- // So, if the plugin supports printPagesAsPDF we print the entire output
- // in one shot in the first call to PrintPage.
-@@ -316,7 +316,7 @@ class WebPluginDelegatePepper : public webkit_glue::WebPluginDelegate,
- // Specifies whether we have already output all pages. This is used to ignore
- // subsequent PrintPage requests.
- bool pdf_output_done_;
--#endif // defined(OS_LINUX)
-+#endif // defined(OS_NIX)
-
- #if defined(ENABLE_GPU)
- // The command buffer used to issue commands to the nested GPU plugin.
-diff --git a/chrome/service/service_process.cc b/chrome/service/service_process.cc
-index 408be65..973ccf8 100644
---- chrome/service/service_process.cc
-+++ chrome/service/service_process.cc
-@@ -17,7 +17,7 @@
- #if defined(OS_WIN)
- #include "remoting/host/capturer_gdi.h"
- #include "remoting/host/event_executor_win.h"
--#elif defined(OS_LINUX)
-+#elif defined(OS_NIX)
- #include "remoting/host/capturer_linux.h"
- #include "remoting/host/event_executor_linux.h"
- #elif defined(OS_MACOSX)
-@@ -78,7 +78,7 @@ remoting::ChromotingHost* ServiceProcess::CreateChromotingHost(
- #if defined(OS_WIN)
- capturer.reset(new remoting::CapturerGdi());
- executor.reset(new remoting::EventExecutorWin());
--#elif defined(OS_LINUX)
-+#elif defined(OS_NIX)
- capturer.reset(new remoting::CapturerLinux());
- executor.reset(new remoting::EventExecutorLinux());
- #elif defined(OS_MACOSX)
-diff --git a/chrome/test/automation/automation_proxy_uitest.cc b/chrome/test/automation/automation_proxy_uitest.cc
-index bace790..88b40bf 100644
---- chrome/test/automation/automation_proxy_uitest.cc
-+++ chrome/test/automation/automation_proxy_uitest.cc
-@@ -1306,7 +1306,7 @@ TEST_F(ExternalTabUITestPopupEnabled, UserGestureTargetBlank) {
- #endif // defined(OS_WIN)
-
- // TODO(port): Need to port autocomplete_edit_proxy.* first.
--#if defined(OS_WIN) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_NIX)
- TEST_F(AutomationProxyTest, AutocompleteGetSetText) {
- scoped_refptr<BrowserProxy> browser(automation()->GetBrowserWindow(0));
- ASSERT_TRUE(browser.get());
-@@ -1350,7 +1350,7 @@ TEST_F(AutomationProxyTest, AutocompleteParallelProxy) {
- EXPECT_EQ(text_to_set2, actual_text2);
- }
-
--#endif // defined(OS_WIN) || defined(OS_LINUX)
-+#endif // defined(OS_WIN) || defined(OS_NIX)
-
- #if defined(OS_MACOSX)
- // TODO(port): Implement AutocompleteEditProxy on Mac.
-diff --git a/chrome/test/chrome_process_util.cc b/chrome/test/chrome_process_util.cc
-index a3c4d6f..d76886e 100644
---- chrome/test/chrome_process_util.cc
-+++ chrome/test/chrome_process_util.cc
-@@ -79,7 +79,7 @@ ChromeProcessList GetRunningChromeProcesses(base::ProcessId browser_pid) {
- result.push_back(process_entry->pid());
- }
-
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- // On Linux we might be running with a zygote process for the renderers.
- // Because of that we sweep the list of processes again and pick those which
- // are children of one of the processes that we've already seen.
-@@ -90,9 +90,9 @@ ChromeProcessList GetRunningChromeProcesses(base::ProcessId browser_pid) {
- while (const base::ProcessEntry* process_entry = it.NextProcessEntry())
- result.push_back(process_entry->pid());
- }
--#endif // defined(OS_LINUX)
-+#endif // defined(OS_NIX)
-
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_POSIX)
- // On Mac OS X we run the subprocesses with a different bundle, and
- // on Linux via /proc/self/exe, so they end up with a different
- // name. We must collect them in a second pass.
-diff --git a/chrome/test/in_process_browser_test.cc b/chrome/test/in_process_browser_test.cc
-index 438a34c..5eb3588 100644
---- chrome/test/in_process_browser_test.cc
-+++ chrome/test/in_process_browser_test.cc
-@@ -38,7 +38,7 @@
- #include "net/base/mock_host_resolver.h"
- #include "sandbox/src/dep.h"
-
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- #include "base/singleton.h"
- #include "chrome/browser/renderer_host/render_sandbox_host_linux.h"
- #include "chrome/browser/zygote_host_linux.h"
-@@ -213,7 +213,7 @@ void InProcessBrowserTest::SetUp() {
- #endif
- CHECK(PathService::Override(base::FILE_EXE, chrome_path));
-
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- // Initialize the RenderSandbox and Zygote hosts. Apparently they get used
- // for InProcessBrowserTest, and this is not the normal browser startup path.
- Singleton<LinuxHostInit>::get();
-diff --git a/chrome/test/interactive_ui/interactive_ui_tests.gypi b/chrome/test/interactive_ui/interactive_ui_tests.gypi
-index 2da3179..7ad785e 100644
---- chrome/test/interactive_ui/interactive_ui_tests.gypi
-+++ chrome/test/interactive_ui/interactive_ui_tests.gypi
-@@ -52,7 +52,7 @@
- '<(DEPTH)/chrome/test/unit/chrome_test_suite.h',
- ],
- 'conditions': [
-- ['OS=="linux"', {
-+ ['OS=="linux" or OS=="freebsd"', {
- 'dependencies': [
- '<(DEPTH)/build/linux/system.gyp:gtk',
- '<(DEPTH)/build/linux/system.gyp:nss',
-diff --git a/chrome/test/page_cycler/page_cycler_test.cc b/chrome/test/page_cycler/page_cycler_test.cc
-index 1f5b49a..6aac289 100644
---- chrome/test/page_cycler/page_cycler_test.cc
-+++ chrome/test/page_cycler/page_cycler_test.cc
-@@ -286,7 +286,7 @@ class PageCyclerReferenceTest : public PageCyclerTest {
- dir = dir.AppendASCII("reference_build");
- #if defined(OS_WIN)
- dir = dir.AppendASCII("chrome");
--#elif defined(OS_LINUX)
-+#elif defined(OS_NIX)
- dir = dir.AppendASCII("chrome_linux");
- #elif defined(OS_MACOSX)
- dir = dir.AppendASCII("chrome_mac");
-diff --git a/chrome/test/reliability/page_load_test.cc b/chrome/test/reliability/page_load_test.cc
-index e39d342..ce3bcf5 100644
---- chrome/test/reliability/page_load_test.cc
-+++ chrome/test/reliability/page_load_test.cc
-@@ -162,7 +162,7 @@ class PageLoadTest : public UITest {
- scoped_ptr<FileVersionInfo> file_info;
- #if defined(OS_WIN)
- file_info.reset(FileVersionInfo::CreateFileVersionInfo(kChromeDll));
--#elif defined(OS_LINUX) || defined(OS_MACOSX)
-+#elif defined(OS_POSIX)
- // TODO(fmeawad): On Mac, the version retrieved here belongs to the test
- // module and not the chrome binary, need to be changed to chrome binary
- // instead.
-diff --git a/chrome/test/startup/feature_startup_test.cc b/chrome/test/startup/feature_startup_test.cc
-index df68386..f39143e 100644
---- chrome/test/startup/feature_startup_test.cc
-+++ chrome/test/startup/feature_startup_test.cc
-@@ -192,7 +192,7 @@ TEST_F(NewTabUIStartupTest, NewTabTimingTestsCold) {
- RunNewTabTimingTest();
- }
-
--#if defined(OS_LINUX)
-+#if defined(TOOLKIT_GTK)
- TEST_F(NewTabUIStartupTest, GtkThemeCold) {
- RunStartupTest("tab_gtk_theme_cold", false /* cold */,
- false /* not important */,
-diff --git a/chrome/test/startup/startup_test.cc b/chrome/test/startup/startup_test.cc
-index 7f6f47f..73055ee 100644
---- chrome/test/startup/startup_test.cc
-+++ chrome/test/startup/startup_test.cc
-@@ -389,7 +389,7 @@ TEST_F(StartupTest, PerfComplexTheme) {
- UITest::COMPLEX_THEME, 0, 0);
- }
-
--#if defined(OS_LINUX)
-+#if defined(TOOLKIT_USES_GTK)
- TEST_F(StartupTest, PerfGtkTheme) {
- RunStartupTest("warm", "gtk-theme", WARM, NOT_IMPORTANT,
- UITest::NATIVE_THEME, 0, 0);
-diff --git a/chrome/test/testing_browser_process.h b/chrome/test/testing_browser_process.h
-index c69af1c..974cb0a 100644
---- chrome/test/testing_browser_process.h
-+++ chrome/test/testing_browser_process.h
-@@ -48,7 +48,7 @@ class TestingBrowserProcess : public BrowserProcess {
- return NULL;
- }
-
--#if defined(OS_LINUX)
-+#if defined(USE_X11)
- virtual base::Thread* background_x11_thread() {
- return NULL;
- }
-diff --git a/chrome/test/testing_profile.cc b/chrome/test/testing_profile.cc
-index 60e423a..2805b7b 100644
---- chrome/test/testing_profile.cc
-+++ chrome/test/testing_profile.cc
-@@ -22,7 +22,7 @@
- #include "testing/gmock/include/gmock/gmock.h"
- #include "webkit/database/database_tracker.h"
-
--#if defined(OS_LINUX) && !defined(TOOLKIT_VIEWS)
-+#if defined(TOOLKIT_GTK) && !defined(TOOLKIT_VIEWS)
- #include "chrome/browser/gtk/gtk_theme_provider.h"
- #endif
-
-@@ -295,7 +295,7 @@ webkit_database::DatabaseTracker* TestingProfile::GetDatabaseTracker() {
-
- void TestingProfile::InitThemes() {
- if (!created_theme_provider_) {
--#if defined(OS_LINUX) && !defined(TOOLKIT_VIEWS)
-+#if defined(TOOLKIT_GTK) && !defined(TOOLKIT_VIEWS)
- theme_provider_.reset(new GtkThemeProvider);
- #else
- theme_provider_.reset(new BrowserThemeProvider);
-diff --git a/chrome/test/ui/history_uitest.cc b/chrome/test/ui/history_uitest.cc
-index 45e0983..9310407 100644
---- chrome/test/ui/history_uitest.cc
-+++ chrome/test/ui/history_uitest.cc
-@@ -116,7 +116,7 @@ TEST_F(HistoryTester, ConsiderRedirectAfterGestureAsUserInitiated) {
- WaitForFinish("History_Length_Test_12", "1", url, kTestCompleteCookie,
- kTestCompleteSuccess, action_max_timeout_ms());
- }
--#endif // defined(OS_WIN) || defined(OS_LINUX)
-+#endif // defined(OS_WIN) || defined(OS_NIX)
-
- TEST_F(HistoryTester, ConsiderSlowRedirectAsUserInitiated) {
- // Test the history length for the following page transition.
-diff --git a/chrome/test/ui/sunspider_uitest.cc b/chrome/test/ui/sunspider_uitest.cc
-index 1c4f484..b544407 100644
---- chrome/test/ui/sunspider_uitest.cc
-+++ chrome/test/ui/sunspider_uitest.cc
-@@ -128,7 +128,7 @@ class SunSpiderReferenceTest : public SunSpiderTest {
- dir = dir.AppendASCII("reference_build");
- #if defined(OS_WIN)
- dir = dir.AppendASCII("chrome");
--#elif defined(OS_LINUX)
-+#elif defined(OS_NIX)
- dir = dir.AppendASCII("chrome_linux");
- #elif defined(OS_MACOSX)
- dir = dir.AppendASCII("chrome_mac");
-diff --git a/chrome/test/ui/ui_layout_test.cc b/chrome/test/ui/ui_layout_test.cc
-index 6c5415f..2472bda 100644
---- chrome/test/ui/ui_layout_test.cc
-+++ chrome/test/ui/ui_layout_test.cc
-@@ -18,7 +18,7 @@
- static const char kPlatformName[] = "chromium-win";
- #elif defined(OS_MACOSX)
- static const char kPlatformName[] = "chromium-mac";
--#elif defined(OS_LINUX)
-+#elif defined(OS_NIX)
- static const char kPlatformName[] = "chromium-linux";
- #else
- #error No known OS defined
-diff --git a/chrome/test/ui/ui_test.cc b/chrome/test/ui/ui_test.cc
-index 90e1550..efc3f00 100644
---- chrome/test/ui/ui_test.cc
-+++ chrome/test/ui/ui_test.cc
-@@ -66,7 +66,7 @@ const wchar_t UITestBase::kFailedNoCrashService[] =
- L"NOTE: This test is expected to fail if crash_service.exe is not "
- L"running. Start it manually before running this test (see the build "
- L"output directory).";
--#elif defined(OS_LINUX)
-+#elif defined(OS_NIX)
- L"NOTE: This test is expected to fail if breakpad is not built in "
- L"or if chromium is not running headless (try CHROME_HEADLESS=1).";
- #else
-@@ -1460,7 +1460,7 @@ void UITestBase::PrintMemoryUsageInfo(const char* test_name) {
- PrintResult("ws_final_t", "", "ws_f_t" + trace_name,
- total_working_set_size, "bytes",
- false /* not important */);
--#elif defined(OS_LINUX) || defined(OS_MACOSX)
-+#elif defined(OS_POSIX)
- PrintResult("vm_size_final_b", "", "vm_size_f_b" + trace_name,
- browser_virtual_size, "bytes",
- true /* important */);
-diff --git a/chrome/test/ui/v8_benchmark_uitest.cc b/chrome/test/ui/v8_benchmark_uitest.cc
-index b020af1..ba8c221 100644
---- chrome/test/ui/v8_benchmark_uitest.cc
-+++ chrome/test/ui/v8_benchmark_uitest.cc
-@@ -130,7 +130,7 @@ class V8BenchmarkReferenceTest : public V8BenchmarkTest {
- dir = dir.AppendASCII("reference_build");
- #if defined(OS_WIN)
- dir = dir.AppendASCII("chrome");
--#elif defined(OS_LINUX)
-+#elif defined(OS_NIX)
- dir = dir.AppendASCII("chrome_linux");
- #elif defined(OS_MACOSX)
- dir = dir.AppendASCII("chrome_mac");
-diff --git a/chrome/test/ui_test_utils.cc b/chrome/test/ui_test_utils.cc
-index c464229..214652e 100644
---- chrome/test/ui_test_utils.cc
-+++ chrome/test/ui_test_utils.cc
-@@ -307,7 +307,7 @@ void RunMessageLoop() {
- #if defined(TOOLKIT_VIEWS)
- views::AcceleratorHandler handler;
- loop->Run(&handler);
--#elif defined(OS_LINUX)
-+#elif defined(OS_NIX)
- loop->Run(NULL);
- #else
- loop->Run();
-diff --git a/chrome/test/url_fetch_test/url_fetch_test.cc b/chrome/test/url_fetch_test/url_fetch_test.cc
-index ec87c76..3246efd 100644
---- chrome/test/url_fetch_test/url_fetch_test.cc
-+++ chrome/test/url_fetch_test/url_fetch_test.cc
-@@ -34,7 +34,7 @@ class UrlFetchTest : public UITest {
- dir = dir.AppendASCII("reference_build");
- #if defined(OS_WIN)
- dir = dir.AppendASCII("chrome");
--#elif defined(OS_LINUX)
-+#elif defined(OS_NIX)
- dir = dir.AppendASCII("chrome_linux");
- #elif defined(OS_MACOSX)
- dir = dir.AppendASCII("chrome_mac");
-diff --git a/chrome/tools/build/linux/sed.sh b/chrome/tools/build/linux/sed.sh
-index 22615cb..bc59956 100755
---- chrome/tools/build/linux/sed.sh
-+++ chrome/tools/build/linux/sed.sh
-@@ -1,4 +1,4 @@
--#!/bin/bash
-+#!/usr/bin/env bash
-
- # Copyright (c) 2009 The Chromium Authors. All rights reserved.
- # Use of this source code is governed by a BSD-style license that can be
-diff --git a/chrome/worker/worker_uitest.cc b/chrome/worker/worker_uitest.cc
-index 061c3f2..84a04a1 100644
---- chrome/worker/worker_uitest.cc
-+++ chrome/worker/worker_uitest.cc
-@@ -84,7 +84,7 @@ class WorkerTest : public UILayoutTest {
- // The 1 is for the browser process.
- int number_of_processes = 1 + workers +
- (UITest::in_process_renderer() ? 0 : tabs);
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- // On Linux, we also have a zygote process and a sandbox host process.
- number_of_processes += 2;
- #endif
-diff --git a/gpu/demos/demos.gyp b/gpu/demos/demos.gyp
-index a7ba2b9..2598548 100644
---- gpu/demos/demos.gyp
-+++ gpu/demos/demos.gyp
-@@ -11,7 +11,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.
-- ['OS=="linux" and (target_arch=="x64" or target_arch=="arm") and linux_fpic!=1', {
-+ ['(OS=="linux" or OS=="freebsd") and (target_arch=="x64" or target_arch=="arm") and linux_fpic!=1', {
- 'enable_pepper_demos%': 0,
- }, {
- 'enable_pepper_demos%': 1,
-@@ -48,7 +48,7 @@
- 'framework/window.h',
- ],
- 'conditions': [
-- ['OS=="linux"', {
-+ ['OS=="linux" or OS=="freebsd"', {
- 'dependencies': ['../../build/linux/system.gyp:gtk'],
- }],
- ],
-@@ -103,7 +103,7 @@
- 'framework/plugin.rc',
- ],
- }],
-- ['OS=="linux"', {
-+ ['OS=="linux" or OS=="freebsd"', {
- # -gstabs, used in the official builds, causes an ICE. Remove it.
- 'cflags!': ['-gstabs'],
- }],
-diff --git a/gpu/demos/framework/main_exe.cc b/gpu/demos/framework/main_exe.cc
-index bc42e6c..d1e1916 100644
---- gpu/demos/framework/main_exe.cc
-+++ gpu/demos/framework/main_exe.cc
-@@ -6,9 +6,9 @@
- #include "base/logging.h"
- #include "gpu/demos/framework/window.h"
-
--#if defined(OS_LINUX)
-+#if defined(TOOLKIT_USES_GTK)
- #include <gtk/gtk.h>
--#endif // OS_LINUX
-+#endif // TOOLKIT_USES_GTK
-
- namespace {
- static const int kWindowWidth = 512;
-@@ -16,9 +16,9 @@ static const int kWindowHeight = 512;
- } // namespace.
-
- int main(int argc, char *argv[]) {
--#if defined(OS_LINUX)
-+#if defined(TOOLKIT_USES_GTK)
- gtk_init(&argc, &argv);
--#endif // OS_LINUX
-+#endif // TOOLKIT_USES_GTK
-
- // AtExitManager is used by singleton classes to delete themselves when
- // the program terminates.
-diff --git a/gpu/demos/framework/main_pepper.cc b/gpu/demos/framework/main_pepper.cc
-index 887c853..108e645 100644
---- gpu/demos/framework/main_pepper.cc
-+++ gpu/demos/framework/main_pepper.cc
-@@ -106,7 +106,7 @@ NPError NPP_GetValue(NPP instance, NPPVariable variable, void* value) {
- NPError err = NPERR_NO_ERROR;
-
- switch (variable) {
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- case NPPVpluginNameString:
- *(static_cast<const char**>(value)) = "Pepper GPU Demo";
- break;
-@@ -163,17 +163,17 @@ EXPORT NPError API_CALL NP_GetEntryPoints(NPPluginFuncs* plugin_funcs) {
- }
-
- EXPORT NPError API_CALL NP_Initialize(NPNetscapeFuncs* browser_funcs
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- , NPPluginFuncs* plugin_funcs
--#endif // OS_LINUX
-+#endif // OS_NIX
- ) {
- g_at_exit_manager = new base::AtExitManager();
- gpu::demos::g_browser = browser_funcs;
- pglInitialize();
-
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- NP_GetEntryPoints(plugin_funcs);
--#endif // OS_LINUX
-+#endif // OS_NIX
- return NPERR_NO_ERROR;
- }
-
-@@ -182,7 +182,7 @@ EXPORT void API_CALL NP_Shutdown() {
- delete g_at_exit_manager;
- }
-
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- EXPORT NPError API_CALL NP_GetValue(NPP instance, NPPVariable variable,
- void* value) {
- return gpu::demos::NPP_GetValue(instance, variable, value);
-@@ -191,5 +191,5 @@ EXPORT NPError API_CALL NP_GetValue(NPP instance, NPPVariable variable,
- EXPORT const char* API_CALL NP_GetMIMEDescription() {
- return "pepper-application/x-gpu-demo::Pepper GPU Demo";
- }
--#endif // OS_LINUX
-+#endif // OS_NIX
- } // extern "C"
-diff --git a/gpu/gpu.gyp b/gpu/gpu.gyp
-index 6c9a525..efc5751 100644
---- gpu/gpu.gyp
-+++ gpu/gpu.gyp
-@@ -179,7 +179,7 @@
- 'command_buffer/service/texture_manager.cc',
- ],
- 'conditions': [
-- ['OS == "linux"', {
-+ ['OS == "linux" or OS=="freebsd"', {
- 'dependencies': [
- '../build/linux/system.gyp:gtk',
- ],
-diff --git a/ipc/ipc.gyp b/ipc/ipc.gyp
-index 5560abe..c393ba8 100644
---- ipc/ipc.gyp
-+++ ipc/ipc.gyp
-@@ -58,7 +58,7 @@
- '../build/linux/system.gyp:gtk',
- ],
- }],
-- ['OS=="linux"', {
-+ ['OS=="linux" or OS=="freebsd"', {
- 'conditions': [
- ['linux_use_tcmalloc==1', {
- 'dependencies': [
-diff --git a/ipc/sync_socket_unittest.cc b/ipc/sync_socket_unittest.cc
-index e07fdf9..b6e3372 100644
---- ipc/sync_socket_unittest.cc
-+++ ipc/sync_socket_unittest.cc
-@@ -8,9 +8,9 @@
- #include <sstream>
-
- #include "base/message_loop.h"
--#if defined(OS_LINUX) || defined(OS_MACOSX)
-+#if defined(OS_POSIX)
- #include "base/file_descriptor_posix.h"
--#endif // defined(OS_LINUX) || defined(OS_MACOSX)
-+#endif // defined(OS_POSIX)
- #include "base/platform_thread.h"
- #include "base/process_util.h"
- #include "base/sync_socket.h"
-diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
-index 3b684ce..cd64c80 100644
---- media/base/media_switches.cc
-+++ media/base/media_switches.cc
-@@ -6,7 +6,7 @@
-
- namespace switches {
-
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- // The Alsa device to use when opening an audio stream.
- const char kAlsaDevice[] = "alsa-device";
- #endif
-diff --git a/media/base/media_switches.h b/media/base/media_switches.h
-index 6e0e0d3..69b264f 100644
---- media/base/media_switches.h
-+++ media/base/media_switches.h
-@@ -11,7 +11,7 @@
-
- namespace switches {
-
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- extern const char kAlsaDevice[];
- #endif
-
-diff --git a/media/media.gyp b/media/media.gyp
-index 7ef2bae..9d92635 100644
---- media/media.gyp
-+++ media/media.gyp
-@@ -435,7 +435,6 @@
- ],
- 'link_settings': {
- 'libraries': [
-- '-ldl',
- '-lX11',
- '-lXrender',
- '-lXext',
-diff --git a/net/base/host_resolver_impl.cc b/net/base/host_resolver_impl.cc
-index ffba57f..f567569 100644
---- net/base/host_resolver_impl.cc
-+++ net/base/host_resolver_impl.cc
-@@ -133,13 +133,11 @@ class HostResolveFailedParams : public NetLog::EventParameters {
- std::vector<int> GetAllGetAddrinfoOSErrors() {
- int os_errors[] = {
- #if defined(OS_POSIX)
-- EAI_ADDRFAMILY,
- EAI_AGAIN,
- EAI_BADFLAGS,
- EAI_FAIL,
- EAI_FAMILY,
- EAI_MEMORY,
-- EAI_NODATA,
- EAI_NONAME,
- EAI_SERVICE,
- EAI_SOCKTYPE,
-@@ -726,7 +724,7 @@ HostResolverImpl::HostResolverImpl(
- #if defined(OS_WIN)
- EnsureWinsockInit();
- #endif
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- if (HaveOnlyLoopbackAddresses())
- additional_resolver_flags_ |= HOST_RESOLVER_LOOPBACK_ONLY;
- #endif
-@@ -1059,7 +1057,7 @@ void HostResolverImpl::OnIPAddressChanged() {
- ipv6_probe_job_ = new IPv6ProbeJob(this);
- ipv6_probe_job_->Start();
- }
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- if (HaveOnlyLoopbackAddresses()) {
- additional_resolver_flags_ |= HOST_RESOLVER_LOOPBACK_ONLY;
- } else {
-diff --git a/net/base/host_resolver_proc.cc b/net/base/host_resolver_proc.cc
-index 804135c..08669e9 100644
---- net/base/host_resolver_proc.cc
-+++ net/base/host_resolver_proc.cc
-@@ -6,10 +6,6 @@
-
- #include "build/build_config.h"
-
--#if defined(OS_POSIX) && !defined(OS_MACOSX)
--#include <resolv.h>
--#endif
--
- #include "base/logging.h"
- #include "base/time.h"
- #include "net/base/address_list.h"
-@@ -17,6 +13,7 @@
- #include "net/base/sys_addrinfo.h"
-
- #if defined(OS_POSIX) && !defined(OS_MACOSX)
-+#include <resolv.h>
- #include "base/singleton.h"
- #include "base/thread_local_storage.h"
- #endif
-diff --git a/net/base/listen_socket_unittest.cc b/net/base/listen_socket_unittest.cc
-index b38019d..38c0812 100644
---- net/base/listen_socket_unittest.cc
-+++ net/base/listen_socket_unittest.cc
-@@ -5,6 +5,7 @@
- #include "net/base/listen_socket_unittest.h"
-
- #include <fcntl.h>
-+#include <netinet/in.h>
-
- #include "base/eintr_wrapper.h"
- #include "net/base/net_util.h"
-diff --git a/net/base/net_util.cc b/net/base/net_util.cc
-index c7b6a6f..166bcf7 100644
---- net/base/net_util.cc
-+++ net/base/net_util.cc
-@@ -24,9 +24,9 @@
- #include <fcntl.h>
- #include <ifaddrs.h>
- #include <netdb.h>
-+#include <sys/socket.h>
- #include <net/if.h>
- #include <netinet/in.h>
--#include <sys/socket.h>
- #endif
-
- #include "base/base64.h"
-diff --git a/net/base/network_change_notifier.cc b/net/base/network_change_notifier.cc
-index a0bc6b5..7db2396 100644
---- net/base/network_change_notifier.cc
-+++ net/base/network_change_notifier.cc
-@@ -37,7 +37,6 @@ NetworkChangeNotifier* NetworkChangeNotifier::Create() {
- #elif defined(OS_MACOSX)
- return new NetworkChangeNotifierMac();
- #else
-- NOTIMPLEMENTED();
- return NULL;
- #endif
- }
-diff --git a/net/net.gyp b/net/net.gyp
-index 98dc526..7fdddc9 100644
---- net/net.gyp
-+++ net/net.gyp
-@@ -115,11 +115,9 @@
- 'base/net_util_win.cc',
- 'base/network_change_notifier.cc',
- 'base/network_change_notifier.h',
-- 'base/network_change_notifier_linux.cc',
- '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_win.cc',
- 'base/network_change_notifier_win.h',
-@@ -579,6 +577,7 @@
- ],
- }],
- [ 'OS == "linux" or OS == "freebsd" or OS == "openbsd"', {
-+ 'sources!': [ 'proxy/proxy_config_service_linux.cc', ],
- 'dependencies': [
- '../build/linux/system.gyp:gconf',
- '../build/linux/system.gyp:gdk',
-@@ -742,7 +741,6 @@
- 'proxy/mock_proxy_resolver.h',
- 'proxy/multi_threaded_proxy_resolver_unittest.cc',
- 'proxy/proxy_bypass_rules_unittest.cc',
-- 'proxy/proxy_config_service_linux_unittest.cc',
- 'proxy/proxy_config_service_win_unittest.cc',
- 'proxy/proxy_config_unittest.cc',
- 'proxy/proxy_list_unittest.cc',
-@@ -795,7 +793,7 @@
- ],
- },
- ],
-- ['OS == "linux"', {
-+ ['OS == "linux" or OS == "freebsd"', {
- 'conditions': [
- ['linux_use_tcmalloc==1', {
- 'dependencies': [
-@@ -930,7 +928,7 @@
- '../build/linux/system.gyp:nss',
- ],
- }],
-- ['OS == "linux"', {
-+ ['OS == "linux" or OS == "freebsd"', {
- 'conditions': [
- ['linux_use_tcmalloc==1', {
- 'dependencies': [
-diff --git a/printing/printing.gyp b/printing/printing.gyp
-index ec1872a..649e500 100644
---- printing/printing.gyp
-+++ printing/printing.gyp
-@@ -103,7 +103,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"
-@@ -114,14 +114,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',
-- ],
-- }],
-+ ],
-+ }],
- ],
- }],
- ],
-diff --git a/remoting/host/simple_host_process.cc b/remoting/host/simple_host_process.cc
-index 035fa32..8efbd2b 100644
---- remoting/host/simple_host_process.cc
-+++ remoting/host/simple_host_process.cc
-@@ -34,7 +34,7 @@
- #if defined(OS_WIN)
- #include "remoting/host/capturer_gdi.h"
- #include "remoting/host/event_executor_win.h"
--#elif defined(OS_LINUX)
-+#elif defined(OS_NIX)
- #include "remoting/host/capturer_linux.h"
- #include "remoting/host/event_executor_linux.h"
- #elif defined(OS_MACOSX)
-@@ -77,7 +77,7 @@ int main(int argc, char** argv) {
- #if defined(OS_WIN)
- capturer.reset(new remoting::CapturerGdi());
- executor.reset(new remoting::EventExecutorWin());
--#elif defined(OS_LINUX)
-+#elif defined(OS_NIX)
- capturer.reset(new remoting::CapturerLinux());
- executor.reset(new remoting::EventExecutorLinux());
- #elif defined(OS_MACOSX)
-diff --git a/remoting/remoting.gyp b/remoting/remoting.gyp
-index bda9e60..cf19115 100644
---- remoting/remoting.gyp
-+++ remoting/remoting.gyp
-@@ -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.
- {
-@@ -187,7 +187,7 @@
- 'host/event_executor_win.h',
- ],
- }],
-- ['OS=="linux"', {
-+ ['OS=="linux" or OS=="freebsd"', {
- 'sources': [
- 'host/capturer_linux.cc',
- 'host/capturer_linux.h',
-@@ -374,7 +374,7 @@
- 'host/capturer_gdi_unittest.cc',
- ],
- }],
-- ['OS=="linux"', {
-+ ['OS=="linux" or OS=="freebsd"', {
- 'dependencies': [
- # Needed for the following #include chain:
- # base/run_all_unittests.cc
-diff --git a/third_party/glew/src/glew.c b/third_party/glew/src/glew.c
-index 8d89d8a..00b011a 100644
---- third_party/glew/src/glew.c
-+++ third_party/glew/src/glew.c
-@@ -162,7 +162,7 @@ void* NSGLGetProcAddress (const GLubyte *name)
- }
- #endif /* __APPLE__ */
-
--#if defined(__sgi) || defined (__sun) || defined(__linux__)
-+#if defined(__sgi) || defined (__sun) || defined(__linux__) || defined(__FreeBSD__)
- #include <dlfcn.h>
- #include <stdio.h>
- #include <stdlib.h>
-@@ -198,7 +198,7 @@ void* dlGetProcAddress (const GLubyte* name)
- # if defined(__APPLE__)
- # define glewGetProcAddress(name) NSGLGetProcAddress(name)
- # else
--# if defined(__sgi) || defined(__sun) || defined(__linux__)
-+# if defined(__sgi) || defined(__sun) || defined(__linux__) || defined(__FreeBSD__)
- # define glewGetProcAddress(name) dlGetProcAddress(name)
- # else /* Used to use this for Linux, but no longer */
- # define glewGetProcAddress(name) (*glXGetProcAddressARB)(name)
-diff --git a/third_party/libevent/event-config.h b/third_party/libevent/event-config.h
-index 66a53de..d3b8486 100644
---- third_party/libevent/event-config.h
-+++ third_party/libevent/event-config.h
-@@ -9,6 +9,8 @@
- #include "mac/event-config.h"
- #elif defined(__linux__)
- #include "linux/event-config.h"
-+#elif defined(__FreeBSD__)
-+#include "freebsd/event-config.h"
- #else
- #error generate event-config.h for your platform
- #endif
-diff --git a/third_party/libevent/freebsd/event-config.h b/third_party/libevent/freebsd/event-config.h
-new file mode 100644
-index 0000000..1e0ae89
---- /dev/null
-+++ third_party/libevent/freebsd/event-config.h
-@@ -0,0 +1,262 @@
-+/* event-config.h
-+ * Generated by autoconf; post-processed by libevent.
-+ * Do not edit this file.
-+ * Do not rely on macros in this file existing in later versions.
-+ */
-+#ifndef _EVENT_CONFIG_H_
-+#define _EVENT_CONFIG_H_
-+/* config.h. Generated from config.h.in by configure. */
-+/* config.h.in. Generated from configure.in by autoheader. */
-+
-+/* Define if clock_gettime is available in libc */
-+#define _EVENT_DNS_USE_CPU_CLOCK_FOR_ID 1
-+
-+/* Define is no secure id variant is available */
-+/* #undef _EVENT_DNS_USE_GETTIMEOFDAY_FOR_ID */
-+
-+/* Define to 1 if you have the `clock_gettime' function. */
-+#define _EVENT_HAVE_CLOCK_GETTIME 1
-+
-+/* Define if /dev/poll is available */
-+/* #undef _EVENT_HAVE_DEVPOLL */
-+
-+/* Define to 1 if you have the <dlfcn.h> header file. */
-+#define _EVENT_HAVE_DLFCN_H 1
-+
-+/* Define if your system supports the epoll system calls */
-+/* #undef _EVENT_HAVE_EPOLL */
-+
-+/* Define to 1 if you have the `epoll_ctl' function. */
-+/* #undef _EVENT_HAVE_EPOLL_CTL */
-+
-+/* Define if your system supports event ports */
-+/* #undef _EVENT_HAVE_EVENT_PORTS */
-+
-+/* Define to 1 if you have the `fcntl' function. */
-+#define _EVENT_HAVE_FCNTL 1
-+
-+/* Define to 1 if you have the <fcntl.h> header file. */
-+#define _EVENT_HAVE_FCNTL_H 1
-+
-+/* Define to 1 if you have the `getaddrinfo' function. */
-+#define _EVENT_HAVE_GETADDRINFO 1
-+
-+/* Define to 1 if you have the `getnameinfo' function. */
-+#define _EVENT_HAVE_GETNAMEINFO 1
-+
-+/* Define to 1 if you have the `gettimeofday' function. */
-+#define _EVENT_HAVE_GETTIMEOFDAY 1
-+
-+/* Define to 1 if you have the `inet_ntop' function. */
-+#define _EVENT_HAVE_INET_NTOP 1
-+
-+/* Define to 1 if you have the <inttypes.h> header file. */
-+#define _EVENT_HAVE_INTTYPES_H 1
-+
-+/* Define to 1 if you have the `kqueue' function. */
-+#define _EVENT_HAVE_KQUEUE 1
-+
-+/* Define to 1 if you have the `nsl' library (-lnsl). */
-+/* #undef _EVENT_HAVE_LIBNSL */
-+
-+/* Define to 1 if you have the `resolv' library (-lresolv). */
-+/* #undef _EVENT_HAVE_LIBRESOLV */
-+
-+/* Define to 1 if you have the `rt' library (-lrt). */
-+#define _EVENT_HAVE_LIBRT 1
-+
-+/* Define to 1 if you have the `socket' library (-lsocket). */
-+/* #undef _EVENT_HAVE_LIBSOCKET */
-+
-+/* Define to 1 if you have the <memory.h> header file. */
-+#define _EVENT_HAVE_MEMORY_H 1
-+
-+/* Define to 1 if you have the <netinet/in6.h> header file. */
-+/* #undef _EVENT_HAVE_NETINET_IN6_H */
-+
-+/* Define to 1 if you have the `poll' function. */
-+#define _EVENT_HAVE_POLL 1
-+
-+/* Define to 1 if you have the <poll.h> header file. */
-+#define _EVENT_HAVE_POLL_H 1
-+
-+/* Define to 1 if you have the `port_create' function. */
-+/* #undef _EVENT_HAVE_PORT_CREATE */
-+
-+/* Define to 1 if you have the <port.h> header file. */
-+/* #undef _EVENT_HAVE_PORT_H */
-+
-+/* Define to 1 if you have the `select' function. */
-+#define _EVENT_HAVE_SELECT 1
-+
-+/* Define if F_SETFD is defined in <fcntl.h> */
-+#define _EVENT_HAVE_SETFD 1
-+
-+/* Define to 1 if you have the `sigaction' function. */
-+#define _EVENT_HAVE_SIGACTION 1
-+
-+/* Define to 1 if you have the `signal' function. */
-+#define _EVENT_HAVE_SIGNAL 1
-+
-+/* Define to 1 if you have the <signal.h> header file. */
-+#define _EVENT_HAVE_SIGNAL_H 1
-+
-+/* Define to 1 if you have the <stdarg.h> header file. */
-+#define _EVENT_HAVE_STDARG_H 1
-+
-+/* Define to 1 if you have the <stdint.h> header file. */
-+#define _EVENT_HAVE_STDINT_H 1
-+
-+/* Define to 1 if you have the <stdlib.h> header file. */
-+#define _EVENT_HAVE_STDLIB_H 1
-+
-+/* Define to 1 if you have the <strings.h> header file. */
-+#define _EVENT_HAVE_STRINGS_H 1
-+
-+/* Define to 1 if you have the <string.h> header file. */
-+#define _EVENT_HAVE_STRING_H 1
-+
-+/* Define to 1 if you have the `strlcpy' function. */
-+#define _EVENT_HAVE_STRLCPY 1
-+
-+/* Define to 1 if you have the `strsep' function. */
-+#define _EVENT_HAVE_STRSEP 1
-+
-+/* Define to 1 if you have the `strtok_r' function. */
-+#define _EVENT_HAVE_STRTOK_R 1
-+
-+/* Define to 1 if you have the `strtoll' function. */
-+#define _EVENT_HAVE_STRTOLL 1
-+
-+/* Define to 1 if the system has the type `struct in6_addr'. */
-+#define _EVENT_HAVE_STRUCT_IN6_ADDR 1
-+
-+/* Define to 1 if you have the <sys/devpoll.h> header file. */
-+/* #undef _EVENT_HAVE_SYS_DEVPOLL_H */
-+
-+/* Define to 1 if you have the <sys/epoll.h> header file. */
-+/* #undef _EVENT_HAVE_SYS_EPOLL_H */
-+
-+/* Define to 1 if you have the <sys/event.h> header file. */
-+#define _EVENT_HAVE_SYS_EVENT_H 1
-+
-+/* Define to 1 if you have the <sys/ioctl.h> header file. */
-+#define _EVENT_HAVE_SYS_IOCTL_H 1
-+
-+/* Define to 1 if you have the <sys/param.h> header file. */
-+#define _EVENT_HAVE_SYS_PARAM_H 1
-+
-+/* Define to 1 if you have the <sys/queue.h> header file. */
-+#define _EVENT_HAVE_SYS_QUEUE_H 1
-+
-+/* Define to 1 if you have the <sys/select.h> header file. */
-+#define _EVENT_HAVE_SYS_SELECT_H 1
-+
-+/* Define to 1 if you have the <sys/socket.h> header file. */
-+#define _EVENT_HAVE_SYS_SOCKET_H 1
-+
-+/* Define to 1 if you have the <sys/stat.h> header file. */
-+#define _EVENT_HAVE_SYS_STAT_H 1
-+
-+/* Define to 1 if you have the <sys/time.h> header file. */
-+#define _EVENT_HAVE_SYS_TIME_H 1
-+
-+/* Define to 1 if you have the <sys/types.h> header file. */
-+#define _EVENT_HAVE_SYS_TYPES_H 1
-+
-+/* Define if TAILQ_FOREACH is defined in <sys/queue.h> */
-+#define _EVENT_HAVE_TAILQFOREACH 1
-+
-+/* Define if timeradd is defined in <sys/time.h> */
-+#define _EVENT_HAVE_TIMERADD 1
-+
-+/* Define if timerclear is defined in <sys/time.h> */
-+#define _EVENT_HAVE_TIMERCLEAR 1
-+
-+/* Define if timercmp is defined in <sys/time.h> */
-+#define _EVENT_HAVE_TIMERCMP 1
-+
-+/* Define if timerisset is defined in <sys/time.h> */
-+#define _EVENT_HAVE_TIMERISSET 1
-+
-+/* Define to 1 if the system has the type `uint16_t'. */
-+#define _EVENT_HAVE_UINT16_T 1
-+
-+/* Define to 1 if the system has the type `uint32_t'. */
-+#define _EVENT_HAVE_UINT32_T 1
-+
-+/* Define to 1 if the system has the type `uint64_t'. */
-+#define _EVENT_HAVE_UINT64_T 1
-+
-+/* Define to 1 if the system has the type `uint8_t'. */
-+#define _EVENT_HAVE_UINT8_T 1
-+
-+/* Define to 1 if you have the <unistd.h> header file. */
-+#define _EVENT_HAVE_UNISTD_H 1
-+
-+/* Define to 1 if you have the `vasprintf' function. */
-+#define _EVENT_HAVE_VASPRINTF 1
-+
-+/* Define if kqueue works correctly with pipes */
-+#define _EVENT_HAVE_WORKING_KQUEUE 1
-+
-+/* Name of package */
-+#define _EVENT_PACKAGE "libevent"
-+
-+/* Define to the address where bug reports for this package should be sent. */
-+#define _EVENT_PACKAGE_BUGREPORT ""
-+
-+/* Define to the full name of this package. */
-+#define _EVENT_PACKAGE_NAME ""
-+
-+/* Define to the full name and version of this package. */
-+#define _EVENT_PACKAGE_STRING ""
-+
-+/* Define to the one symbol short name of this package. */
-+#define _EVENT_PACKAGE_TARNAME ""
-+
-+/* Define to the version of this package. */
-+#define _EVENT_PACKAGE_VERSION ""
-+
-+/* The size of `int', as computed by sizeof. */
-+#define _EVENT_SIZEOF_INT 4
-+
-+/* The size of `long', as computed by sizeof. */
-+#define _EVENT_SIZEOF_LONG 8
-+
-+/* The size of `long long', as computed by sizeof. */
-+#define _EVENT_SIZEOF_LONG_LONG 8
-+
-+/* The size of `short', as computed by sizeof. */
-+#define _EVENT_SIZEOF_SHORT 2
-+
-+/* Define to 1 if you have the ANSI C header files. */
-+#define _EVENT_STDC_HEADERS 1
-+
-+/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
-+#define _EVENT_TIME_WITH_SYS_TIME 1
-+
-+/* Version number of package */
-+#define _EVENT_VERSION "1.4.13-stable"
-+
-+/* Define to appropriate substitue if compiler doesnt have __func__ */
-+/* #undef _EVENT___func__ */
-+
-+/* Define to empty if `const' does not conform to ANSI C. */
-+/* #undef _EVENT_const */
-+
-+/* Define to `__inline__' or `__inline' if that's what the C compiler
-+ calls it, or to nothing if 'inline' is not supported under any name. */
-+#ifndef _EVENT___cplusplus
-+/* #undef _EVENT_inline */
-+#endif
-+
-+/* Define to `int' if <sys/types.h> does not define. */
-+/* #undef _EVENT_pid_t */
-+
-+/* Define to `unsigned int' if <sys/types.h> does not define. */
-+/* #undef _EVENT_size_t */
-+
-+/* Define to unsigned int if you dont have it */
-+/* #undef _EVENT_socklen_t */
-+#endif
-diff --git a/third_party/libxslt/libxslt.gyp b/third_party/libxslt/libxslt.gyp
-index cc6a377..632749b 100644
---- third_party/libxslt/libxslt.gyp
-+++ third_party/libxslt/libxslt.gyp
-@@ -21,7 +21,7 @@
- {
- 'target_name': 'libxslt',
- 'conditions': [
-- ['OS=="linux" and use_system_libxml', {
-+ ['(OS=="linux" or OS=="freebsd") and use_system_libxml', {
- 'type': 'settings',
- 'direct_dependent_settings': {
- 'cflags': [
-diff --git a/third_party/mesa/mesa.gyp b/third_party/mesa/mesa.gyp
-index 277add5..23185e5 100644
---- third_party/mesa/mesa.gyp
-+++ third_party/mesa/mesa.gyp
-@@ -7,7 +7,7 @@
- },
- 'target_defaults': {
- 'conditions': [
-- ['OS=="linux"', {
-+ ['OS=="linux" or OS=="freebsd"', {
- 'cflags': [
- '-fPIC',
- ],
-diff --git a/third_party/tcmalloc/chromium/src/config.h b/third_party/tcmalloc/chromium/src/config.h
-index 812c67c..047b878 100644
---- third_party/tcmalloc/chromium/src/config.h
-+++ third_party/tcmalloc/chromium/src/config.h
-@@ -15,6 +15,8 @@
- #include "third_party/tcmalloc/chromium/src/config_win.h"
- #elif defined(OS_LINUX)
- #include "third_party/tcmalloc/chromium/src/config_linux.h"
-+#elif defined(OS_FREEBSD)
-+#include "third_party/tcmalloc/chromium/src/config_freebsd.h"
- #endif
-
- #endif // CONFIG_H_
-diff --git a/third_party/tcmalloc/chromium/src/config_freebsd.h b/third_party/tcmalloc/chromium/src/config_freebsd.h
-new file mode 100644
-index 0000000..d286c35
---- /dev/null
-+++ third_party/tcmalloc/chromium/src/config_freebsd.h
-@@ -0,0 +1,234 @@
-+/* src/config.h. Generated from config.h.in by configure. */
-+/* src/config.h.in. Generated from configure.ac by autoheader. */
-+
-+/* Define to 1 if compiler supports __builtin_stack_pointer */
-+/* #undef HAVE_BUILTIN_STACK_POINTER */
-+
-+/* Define to 1 if you have the <conflict-signal.h> header file. */
-+/* #undef HAVE_CONFLICT_SIGNAL_H */
-+
-+/* Define to 1 if you have the declaration of `cfree', and to 0 if you don't.
-+ */
-+#define HAVE_DECL_CFREE 0
-+
-+/* Define to 1 if you have the declaration of `memalign', and to 0 if you
-+ don't. */
-+#define HAVE_DECL_MEMALIGN 0
-+
-+/* Define to 1 if you have the declaration of `posix_memalign', and to 0 if
-+ you don't. */
-+#define HAVE_DECL_POSIX_MEMALIGN 0
-+
-+/* Define to 1 if you have the declaration of `pvalloc', and to 0 if you
-+ don't. */
-+#define HAVE_DECL_PVALLOC 0
-+
-+/* Define to 1 if you have the declaration of `uname', and to 0 if you don't.
-+ */
-+#define HAVE_DECL_UNAME 1
-+
-+/* Define to 1 if you have the declaration of `valloc', and to 0 if you don't.
-+ */
-+#define HAVE_DECL_VALLOC 0
-+
-+/* Define to 1 if you have the <dlfcn.h> header file. */
-+#define HAVE_DLFCN_H 1
-+
-+/* Define to 1 if the system has the type `Elf32_Versym'. */
-+#define HAVE_ELF32_VERSYM 1
-+
-+/* Define to 1 if you have the <execinfo.h> header file. */
-+#define HAVE_EXECINFO_H 1
-+
-+/* Define to 1 if you have the <fcntl.h> header file. */
-+#define HAVE_FCNTL_H 1
-+
-+/* Define to 1 if you have the <features.h> header file. */
-+/* #undef HAVE_FEATURES_H */
-+
-+/* Define to 1 if you have the `geteuid' function. */
-+#define HAVE_GETEUID 1
-+
-+/* Define to 1 if you have the `getpagesize' function. */
-+#define HAVE_GETPAGESIZE 1
-+
-+/* Define to 1 if you have the <glob.h> header file. */
-+#define HAVE_GLOB_H 1
-+
-+/* Define to 1 if you have the <grp.h> header file. */
-+#define HAVE_GRP_H 1
-+
-+/* Define to 1 if you have the <inttypes.h> header file. */
-+#define HAVE_INTTYPES_H 1
-+
-+/* Define to 1 if you have the <libunwind.h> header file. */
-+/* #undef HAVE_LIBUNWIND_H */
-+
-+/* Define to 1 if you have the <linux/ptrace.h> header file. */
-+/* #undef HAVE_LINUX_PTRACE_H */
-+
-+/* Define to 1 if you have the <malloc.h> header file. */
-+/* #undef HAVE_MALLOC_H */
-+
-+/* Define to 1 if you have the <memory.h> header file. */
-+#define HAVE_MEMORY_H 1
-+
-+/* Define to 1 if you have a working `mmap' system call. */
-+#define HAVE_MMAP 1
-+
-+/* define if the compiler implements namespaces */
-+#define HAVE_NAMESPACES 1
-+
-+/* Define to 1 if you have the <poll.h> header file. */
-+#define HAVE_POLL_H 1
-+
-+/* define if libc has program_invocation_name */
-+/* #undef HAVE_PROGRAM_INVOCATION_NAME */
-+
-+/* Define if you have POSIX threads libraries and header files. */
-+#define HAVE_PTHREAD 1
-+
-+/* Define to 1 if you have the <pwd.h> header file. */
-+#define HAVE_PWD_H 1
-+
-+/* Define to 1 if you have the `sbrk' function. */
-+#define HAVE_SBRK 1
-+
-+/* Define to 1 if you have the <sched.h> header file. */
-+#define HAVE_SCHED_H 1
-+
-+/* Define to 1 if you have the <stdint.h> header file. */
-+#define HAVE_STDINT_H 1
-+
-+/* Define to 1 if you have the <stdlib.h> header file. */
-+#define HAVE_STDLIB_H 1
-+
-+/* Define to 1 if you have the <strings.h> header file. */
-+#define HAVE_STRINGS_H 1
-+
-+/* Define to 1 if you have the <string.h> header file. */
-+#define HAVE_STRING_H 1
-+
-+/* Define to 1 if the system has the type `struct mallinfo'. */
-+/* #undef HAVE_STRUCT_MALLINFO */
-+
-+/* Define to 1 if you have the <sys/prctl.h> header file. */
-+/* #undef HAVE_SYS_PRCTL_H */
-+
-+/* Define to 1 if you have the <sys/resource.h> header file. */
-+#define HAVE_SYS_RESOURCE_H 1
-+
-+/* Define to 1 if you have the <sys/socket.h> header file. */
-+#define HAVE_SYS_SOCKET_H 1
-+
-+/* Define to 1 if you have the <sys/stat.h> header file. */
-+#define HAVE_SYS_STAT_H 1
-+
-+/* Define to 1 if you have the <sys/syscall.h> header file. */
-+#define HAVE_SYS_SYSCALL_H 1
-+
-+/* Define to 1 if you have the <sys/types.h> header file. */
-+#define HAVE_SYS_TYPES_H 1
-+
-+/* Define to 1 if you have the <sys/wait.h> header file. */
-+#define HAVE_SYS_WAIT_H 1
-+
-+/* Define to 1 if compiler supports __thread */
-+#define HAVE_TLS 1
-+
-+/* Define to 1 if you have the <ucontext.h> header file. */
-+#define HAVE_UCONTEXT_H 1
-+
-+/* Define to 1 if you have the <unistd.h> header file. */
-+#define HAVE_UNISTD_H 1
-+
-+/* Define to 1 if you have the <unwind.h> header file. */
-+/* #undef HAVE_UNWIND_H */
-+
-+/* define if your compiler has __attribute__ */
-+#define HAVE___ATTRIBUTE__ 1
-+
-+/* Define to 1 if the system has the type `__int64'. */
-+/* #undef HAVE___INT64 */
-+
-+/* prefix where we look for installed files */
-+#define INSTALL_PREFIX "/usr/local"
-+
-+/* Define to 1 if int32_t is equivalent to intptr_t */
-+/* #undef INT32_EQUALS_INTPTR */
-+#if defined(__i386__)
-+#define INT32_EQUALS_INTPTR 1
-+#endif
-+
-+/* Define to 1 if your C compiler doesn't accept -c and -o together. */
-+/* #undef NO_MINUS_C_MINUS_O */
-+
-+/* Name of package */
-+#define PACKAGE "google-perftools"
-+
-+/* Define to the address where bug reports for this package should be sent. */
-+#define PACKAGE_BUGREPORT "opensource@google.com"
-+
-+/* Define to the full name of this package. */
-+#define PACKAGE_NAME "google-perftools"
-+
-+/* Define to the full name and version of this package. */
-+#define PACKAGE_STRING "google-perftools 1.3"
-+
-+/* Define to the one symbol short name of this package. */
-+#define PACKAGE_TARNAME "google-perftools"
-+
-+/* Define to the version of this package. */
-+#define PACKAGE_VERSION "1.3"
-+
-+/* How to access the PC from a struct ucontext */
-+#if defined(__i386__)
-+#define PC_FROM_UCONTEXT uc_mcontext.mc_eip
-+#else
-+#define PC_FROM_UCONTEXT uc_mcontext.mc_rip
-+#endif
-+
-+/* Always the empty-string on non-windows systems. On windows, should be
-+ "__declspec(dllexport)". This way, when we compile the dll, we export our
-+ functions/classes. It's safe to define this here because config.h is only
-+ used internally, to compile the DLL, and every DLL source file #includes
-+ "config.h" before anything else. */
-+#define PERFTOOLS_DLL_DECL
-+
-+/* printf format code for printing a size_t and ssize_t */
-+#define PRIdS "zd"
-+
-+/* printf format code for printing a size_t and ssize_t */
-+#define PRIuS "zu"
-+
-+/* printf format code for printing a size_t and ssize_t */
-+#define PRIxS "zx"
-+
-+/* Define to necessary symbol if this constant uses a non-standard name on
-+ your system. */
-+/* #undef PTHREAD_CREATE_JOINABLE */
-+
-+/* Define to 1 if you have the ANSI C header files. */
-+#define STDC_HEADERS 1
-+
-+/* the namespace where STL code like vector<> is defined */
-+#define STL_NAMESPACE std
-+
-+/* Version number of package */
-+#define VERSION "1.3"
-+
-+/* C99 says: define this to get the PRI... macros from stdint.h */
-+#ifndef __STDC_FORMAT_MACROS
-+# define __STDC_FORMAT_MACROS 1
-+#endif
-+
-+/* Define to `__inline__' or `__inline' if that's what the C compiler
-+ calls it, or to nothing if 'inline' is not supported under any name. */
-+#ifndef __cplusplus
-+/* #undef inline */
-+#endif
-+
-+
-+#ifdef __MINGW32__
-+#include "windows/mingw.h"
-+#endif
-diff --git a/webkit/glue/plugins/pepper_font.cc b/webkit/glue/plugins/pepper_font.cc
-index 8bc48a3..1d7a655 100644
---- webkit/glue/plugins/pepper_font.cc
-+++ webkit/glue/plugins/pepper_font.cc
-@@ -6,7 +6,7 @@
-
- #include "webkit/glue/plugins/pepper_font.h"
-
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- #include <unistd.h>
- #endif
-
-@@ -21,7 +21,7 @@ namespace {
-
- PP_Resource MatchFontWithFallback(PP_Module module_id,
- const PP_FontDescription* description) {
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- PluginModule* module = PluginModule::FromPPModule(module_id);
- if (!module)
- return NULL;
-@@ -73,7 +73,7 @@ Font::Font(PluginModule* module, int fd)
- }
-
- Font::~Font() {
--#if defined (OS_LINUX)
-+#if defined (OS_NIX)
- close(fd_);
- #endif
- }
-@@ -86,7 +86,7 @@ const PPB_Font* Font::GetInterface() {
- bool Font::GetFontTable(uint32_t table,
- void* output,
- uint32_t* output_length) {
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- size_t temp_size = static_cast<size_t>(*output_length);
- bool rv = webkit_glue::GetFontTable(
- fd_, table, static_cast<uint8_t*>(output), &temp_size);
-diff --git a/webkit/glue/plugins/pepper_plugin_instance.cc b/webkit/glue/plugins/pepper_plugin_instance.cc
-index dcc7ea2..215241e 100644
---- webkit/glue/plugins/pepper_plugin_instance.cc
-+++ webkit/glue/plugins/pepper_plugin_instance.cc
-@@ -228,10 +228,10 @@ PluginInstance::PluginInstance(PluginDelegate* delegate,
- find_identifier_(-1),
- plugin_find_interface_(NULL),
- plugin_zoom_interface_(NULL),
--#if defined (OS_LINUX)
-+#if defined (OS_NIX)
- num_pages_(0),
- pdf_output_done_(false),
--#endif // defined (OS_LINUX)
-+#endif // defined (OS_NIX)
- plugin_print_interface_(NULL) {
- memset(&current_print_settings_, 0, sizeof(current_print_settings_));
- DCHECK(delegate);
-@@ -542,17 +542,17 @@ int PluginInstance::PrintBegin(const gfx::Rect& printable_area,
- if (!num_pages)
- return 0;
- current_print_settings_ = print_settings;
--#if defined (OS_LINUX)
-+#if defined (OS_NIX)
- num_pages_ = num_pages;
- pdf_output_done_ = false;
--#endif // (OS_LINUX)
-+#endif // (OS_NIX)
- return num_pages;
- }
-
- bool PluginInstance::PrintPage(int page_number, WebKit::WebCanvas* canvas) {
- DCHECK(plugin_print_interface_);
- PP_PrintPageNumberRange page_range;
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- if (current_print_settings_.format == PP_PRINTOUTPUTFORMAT_PDF) {
- // On Linux we will try and output all pages as PDF in the first call to
- // PrintPage. This is a temporary hack.
-@@ -563,9 +563,9 @@ bool PluginInstance::PrintPage(int page_number, WebKit::WebCanvas* canvas) {
- page_range.first_page_number = 0;
- page_range.last_page_number = num_pages_ - 1;
- }
--#else // defined(OS_LINUX)
-+#else // defined(OS_NIX)
- page_range.first_page_number = page_range.last_page_number = page_number;
--#endif // defined(OS_LINUX)
-+#endif // defined(OS_NIX)
-
- PP_Resource print_output =
- plugin_print_interface_->PrintPages(GetPPInstance(), &page_range, 1);
-@@ -593,10 +593,10 @@
- memset(&current_print_settings_, 0, sizeof(current_print_settings_));
- #if defined(OS_MACOSX)
- last_printed_page_ = NULL;
--#elif defined(OS_LINUX)
-+#elif defined(OS_NIX)
- num_pages_ = 0;
- pdf_output_done_ = false;
--#endif // defined(OS_LINUX)
-+#endif // defined(OS_NIX)
- }
-
- bool PluginInstance::PrintPDFOutput(PP_Resource print_output,
-@@ -619,7 +619,7 @@ bool PluginInstance::PrintPDFOutput(PP_Resource print_output,
- #endif // defined(OS_WIN)
-
- bool ret = false;
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- // On Linux we need to get the backing PdfPsMetafile and write the bits
- // directly.
- cairo_t* context = canvas->beginPlatformPaint();
-diff --git a/webkit/glue/plugins/pepper_plugin_instance.h b/webkit/glue/plugins/pepper_plugin_instance.h
-index 4528a99..96d9c29 100644
---- webkit/glue/plugins/pepper_plugin_instance.h
-+++ webkit/glue/plugins/pepper_plugin_instance.h
-@@ -184,7 +184,7 @@
- // to keep the pixels valid until CGContextEndPage is called. We use this
- // variable to hold on to the pixels.
- scoped_refptr<ImageData> last_printed_page_;
--#elif defined(OS_LINUX)
-+#elif defined(OS_NIX)
- // On Linux, we always send all pages from the renderer to the browser.
- // So, if the plugin supports printPagesAsPDF we print the entire output
- // in one shot in the first call to PrintPage.
-@@ -195,7 +195,7 @@
- // Specifies whether we have already output all pages. This is used to ignore
- // subsequent PrintPage requests.
- bool pdf_output_done_;
--#endif // defined(OS_LINUX)
-+#endif // defined(OS_NIX)
-
- // The plugin print interface.
- const PPP_Printing* plugin_print_interface_;
-diff --git a/webkit/glue/webkit_glue.h b/webkit/glue/webkit_glue.h
-index 541836b..5d3b64c 100644
---- webkit/glue/webkit_glue.h
-+++ webkit/glue/webkit_glue.h
-@@ -265,7 +265,7 @@ std::string GetProductVersion();
- // Returns true if the embedder is running in single process mode.
- bool IsSingleProcess();
-
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- // Return a read-only file descriptor to the font which best matches the given
- // properties or -1 on failure.
- // charset: specifies the language(s) that the font must cover. See
-diff --git a/webkit/glue/webkitclient_impl.cc b/webkit/glue/webkitclient_impl.cc
-index b05e7d9..9bcb0dd 100644
---- webkit/glue/webkitclient_impl.cc
-+++ webkit/glue/webkitclient_impl.cc
-@@ -37,7 +37,7 @@
- #include "webkit/glue/websocketstreamhandle_impl.h"
- #include "webkit/glue/weburlloader_impl.h"
-
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- #include "v8/include/v8.h"
- #endif
-
-diff --git a/webkit/support/webkit_support_glue.cc b/webkit/support/webkit_support_glue.cc
-index bae6374..6f13174 100644
---- webkit/support/webkit_support_glue.cc
-+++ webkit/support/webkit_support_glue.cc
-@@ -72,7 +72,7 @@ bool IsSingleProcess() {
- return true;
- }
-
--#if defined(OS_LINUX)
-+#if defined(OS_NIX)
- int MatchFontWithFallback(const std::string& face, bool bold,
- bool italic, int charset) {
- return -1;
diff --git a/www/chromium/files/patch-clang b/www/chromium/files/patch-clang
deleted file mode 100644
index 41e786df6c65..000000000000
--- a/www/chromium/files/patch-clang
+++ /dev/null
@@ -1,103 +0,0 @@
-diff --git a/base/logging.h b/base/logging.h
-index 2084739..d865744 100644
---- base/logging.h
-+++ base/logging.h
-@@ -102,6 +102,18 @@
- // There is also the special severity of DFATAL, which logs FATAL in
- // debug mode, ERROR in normal mode.
-
-+// XXX better comment -- must be before we use << and in global namespace
-+// These functions are provided as a convenience for logging, which is where we
-+// use streams (it is against Google style to use streams in other places). It
-+// is designed to allow you to emit non-ASCII Unicode strings to the log file,
-+// which is normally ASCII. It is relatively slow, so try not to use it for
-+// common cases. Non-ASCII characters will be converted to UTF-8 by these
-+// operators.
-+std::ostream& operator<<(std::ostream& out, const wchar_t* wstr);
-+inline std::ostream& operator<<(std::ostream& out, const std::wstring& wstr) {
-+ return out << wstr.c_str();
-+}
-+
- namespace logging {
-
- // Where to record logging output? A flat file and/or system debug log via
-@@ -842,17 +854,6 @@ void RawLog(int level, const char* message);
-
- } // namespace logging
-
--// These functions are provided as a convenience for logging, which is where we
--// use streams (it is against Google style to use streams in other places). It
--// is designed to allow you to emit non-ASCII Unicode strings to the log file,
--// which is normally ASCII. It is relatively slow, so try not to use it for
--// common cases. Non-ASCII characters will be converted to UTF-8 by these
--// operators.
--std::ostream& operator<<(std::ostream& out, const wchar_t* wstr);
--inline std::ostream& operator<<(std::ostream& out, const std::wstring& wstr) {
-- return out << wstr.c_str();
--}
--
- // The NOTIMPLEMENTED() macro annotates codepaths which have
- // not been implemented yet.
- //
-diff -ru chrome/plugin/plugin_main_linux.cc.orig chrome/plugin/plugin_main_linux.cc
---- chrome/plugin/plugin_main_linux.cc.orig 2010-10-23 17:25:49.000000000 -0700
-+++ chrome/plugin/plugin_main_linux.cc 2010-10-23 13:57:10.000000000 -0700
-@@ -5,7 +5,7 @@
- #include <signal.h>
- #include <string.h>
- #include <sys/types.h>
--#include <syscall.h>
-+#include <sys/syscall.h>
- #include <unistd.h>
-
- #include "build/build_config.h"
---- net/base/ssl_config_service.h.orig 2010-09-21 08:01:26.000000000 +0000
-+++ net/base/ssl_config_service.h 2010-11-13 07:22:48.000000000 +0000
-@@ -121,10 +121,10 @@
- // True if we use False Start for SSL and TLS.
- static bool false_start_enabled();
-
-- protected:
- // SetFlags sets the values of several flags based on global configuration.
- static void SetSSLConfigFlags(SSLConfig*);
-
-+ protected:
- friend class base::RefCountedThreadSafe<SSLConfigService>;
-
- virtual ~SSLConfigService() {}
---- third_party/ffmpeg/patched-ffmpeg-mt/libavcodec/x86/dsputil_mmx.c.orig 2010-09-21 08:06:29.000000000 +0000
-+++ third_party/ffmpeg/patched-ffmpeg-mt/libavcodec/x86/dsputil_mmx.c 2010-11-13 07:22:15.000000000 +0000
-@@ -615,7 +615,7 @@
- __asm__ volatile(
- "mov %7, %3 \n"
- "1: \n"
-- "movzx (%3,%4), %2 \n"
-+ "movzbl (%3,%4), %2 \n"
- "mov %2, %k3 \n"
- "sub %b1, %b3 \n"
- "add %b0, %b3 \n"
-Index: third_party/libjingle/source/talk/base/stringutils.h
-===================================================================
---- third_party/libjingle/source/talk/base/stringutils.h (revision 29)
-+++ third_party/libjingle/source/talk/base/stringutils.h (working copy)
-@@ -37,7 +37,7 @@
- #define alloca _alloca
- #endif // WIN32
- #ifdef POSIX
--#include <alloca.h>
-+#include <stdlib.h>
- #endif // POSIX
-
- #include <cstring>
-diff -ru third_party/skia/include/core/SkPreConfig.h.orig third_party/skia/include/core/SkPreConfig.h
---- third_party/skia/include/core/SkPreConfig.h.orig 2010-08-18 01:03:49.000000000 -0700
-+++ third_party/skia/include/core/SkPreConfig.h 2010-10-23 12:54:33.000000000 -0700
-@@ -57,6 +57,8 @@
- #if !defined(SK_RESTRICT)
- #define SK_RESTRICT __restrict__
- #endif
-+#undef SK_RESTRICT
-+#define SK_RESTRICT
-
- //////////////////////////////////////////////////////////////////////
-
diff --git a/www/chromium/files/patch-codecs b/www/chromium/files/patch-codecs
deleted file mode 100644
index a0ff71a88174..000000000000
--- a/www/chromium/files/patch-codecs
+++ /dev/null
@@ -1,187 +0,0 @@
-Index: third_party/ffmpeg/ffmpeg.gyp
-===================================================================
---- third_party/ffmpeg/ffmpeg.gyp (revision 49485)
-+++ third_party/ffmpeg/ffmpeg.gyp (working copy)
-@@ -80,7 +80,7 @@
- 'ffmpeg_variant%': '<(target_arch)',
-
- 'use_system_ffmpeg%': 0,
-- 'use_system_yasm%': 0,
-+ 'use_system_yasm%': 1,
- 'build_ffmpegsumo%': 1,
- 'use_system_vpx%': 0,
-
-@@ -156,11 +156,11 @@
- 'patched-ffmpeg-mt/libavutil/pixdesc.c',
- 'patched-ffmpeg-mt/libavutil/rational.c',
- # Config file for the OS and architecture.
-- 'config/<(ffmpeg_branding)/<(OS)/<(ffmpeg_config)/config.h',
-+ 'config/<(ffmpeg_branding)/linux/<(ffmpeg_config)/config.h',
- 'config/libavutil/avconfig.h',
- ],
- 'include_dirs': [
-- 'config/<(ffmpeg_branding)/<(OS)/<(ffmpeg_config)',
-+ 'config/<(ffmpeg_branding)/linux/<(ffmpeg_config)',
- 'patched-ffmpeg-mt',
- 'config',
- ],
-@@ -417,8 +417,13 @@
- }],
- ['use_system_vpx==0', {
- 'ldflags': [
-- '-L<(libvpx_hack_dir)/lib/<(OS)/<(target_arch)',
-+ '-L<(libvpx_hack_dir)/lib/linux/<(target_arch)',
- ],
-+ }, {
-+ # Using libvpx provided by the system.
-+ 'ldflags': [
-+ '-L/usr/local/lib',
-+ ],
- }],
- ],
- },
-@@ -476,7 +476,7 @@
- }, {
- # Using libvpx provided by the system.
- 'include_dirs': [
-- '/usr/include/vpx',
-+ '/usr/local/include',
- ],
- }
- ],
-Index: third_party/ffmpeg/config/Chromium/linux/x64/config.h
-===================================================================
---- third_party/ffmpeg/config/Chromium/linux/x64/config.h (revision 49485)
-+++ third_party/ffmpeg/config/Chromium/linux/x64/config.h (working copy)
-@@ -45,7 +45,7 @@
- #define HAVE_NEON 0
- #define HAVE_PPC4XX 0
- #define HAVE_SSE 1
--#define HAVE_SSSE3 1
-+#define HAVE_SSSE3 0
- #define HAVE_VIS 0
- #define HAVE_BIGENDIAN 0
- #define HAVE_BEOSTHREADS 0
-@@ -94,16 +94,16 @@
- #define HAVE_LLRINT 1
- #define HAVE_LOCAL_ALIGNED_16 1
- #define HAVE_LOCAL_ALIGNED_8 1
--#define HAVE_LOG2 1
--#define HAVE_LOG2F 1
-+#define HAVE_LOG2 0
-+#define HAVE_LOG2F 0
- #define HAVE_LOONGSON 0
- #define HAVE_LRINT 1
- #define HAVE_LRINTF 1
- #define HAVE_LZO1X_999_COMPRESS 0
- #define HAVE_MACHINE_IOCTL_BT848_H 0
- #define HAVE_MACHINE_IOCTL_METEOR_H 0
--#define HAVE_MALLOC_H 1
--#define HAVE_MEMALIGN 1
-+#define HAVE_MALLOC_H 0
-+#define HAVE_MEMALIGN 0
- #define HAVE_MKSTEMP 1
- #define HAVE_PLD 0
- #define HAVE_POSIX_MEMALIGN 1
-Index: third_party/ffmpeg/config/Chromium/linux/ia32/config.h
-===================================================================
---- third_party/ffmpeg/config/Chromium/linux/ia32/config.h (revision 49485)
-+++ third_party/ffmpeg/config/Chromium/linux/ia32/config.h (working copy)
-@@ -45,7 +45,7 @@
- #define HAVE_NEON 0
- #define HAVE_PPC4XX 0
- #define HAVE_SSE 1
--#define HAVE_SSSE3 1
-+#define HAVE_SSSE3 0
- #define HAVE_VIS 0
- #define HAVE_BIGENDIAN 0
- #define HAVE_BEOSTHREADS 0
-@@ -94,16 +94,16 @@
- #define HAVE_LLRINT 1
- #define HAVE_LOCAL_ALIGNED_16 1
- #define HAVE_LOCAL_ALIGNED_8 1
--#define HAVE_LOG2 1
--#define HAVE_LOG2F 1
-+#define HAVE_LOG2 0
-+#define HAVE_LOG2F 0
- #define HAVE_LOONGSON 0
- #define HAVE_LRINT 1
- #define HAVE_LRINTF 1
- #define HAVE_LZO1X_999_COMPRESS 0
- #define HAVE_MACHINE_IOCTL_BT848_H 0
- #define HAVE_MACHINE_IOCTL_METEOR_H 0
--#define HAVE_MALLOC_H 1
--#define HAVE_MEMALIGN 1
-+#define HAVE_MALLOC_H 0
-+#define HAVE_MEMALIGN 0
- #define HAVE_MKSTEMP 1
- #define HAVE_PLD 0
- #define HAVE_POSIX_MEMALIGN 1
-Index: third_party/ffmpeg/config/Chrome/linux/x64/config.h
-===================================================================
---- third_party/ffmpeg/config/Chrome/linux/x64/config.h (revision 49485)
-+++ third_party/ffmpeg/config/Chrome/linux/x64/config.h (working copy)
-@@ -45,7 +45,7 @@
- #define HAVE_NEON 0
- #define HAVE_PPC4XX 0
- #define HAVE_SSE 1
--#define HAVE_SSSE3 1
-+#define HAVE_SSSE3 0
- #define HAVE_VIS 0
- #define HAVE_BIGENDIAN 0
- #define HAVE_BEOSTHREADS 0
-@@ -94,16 +94,16 @@
- #define HAVE_LLRINT 1
- #define HAVE_LOCAL_ALIGNED_16 1
- #define HAVE_LOCAL_ALIGNED_8 1
--#define HAVE_LOG2 1
--#define HAVE_LOG2F 1
-+#define HAVE_LOG2 0
-+#define HAVE_LOG2F 0
- #define HAVE_LOONGSON 0
- #define HAVE_LRINT 1
- #define HAVE_LRINTF 1
- #define HAVE_LZO1X_999_COMPRESS 0
- #define HAVE_MACHINE_IOCTL_BT848_H 0
- #define HAVE_MACHINE_IOCTL_METEOR_H 0
--#define HAVE_MALLOC_H 1
--#define HAVE_MEMALIGN 1
-+#define HAVE_MALLOC_H 0
-+#define HAVE_MEMALIGN 0
- #define HAVE_MKSTEMP 1
- #define HAVE_PLD 0
- #define HAVE_POSIX_MEMALIGN 1
-Index: third_party/ffmpeg/config/Chrome/linux/ia32/config.h
-===================================================================
---- third_party/ffmpeg/config/Chrome/linux/ia32/config.h (revision 49485)
-+++ third_party/ffmpeg/config/Chrome/linux/ia32/config.h (working copy)
-@@ -45,7 +45,7 @@
- #define HAVE_NEON 0
- #define HAVE_PPC4XX 0
- #define HAVE_SSE 1
--#define HAVE_SSSE3 1
-+#define HAVE_SSSE3 0
- #define HAVE_VIS 0
- #define HAVE_BIGENDIAN 0
- #define HAVE_BEOSTHREADS 0
-@@ -94,16 +94,16 @@
- #define HAVE_LLRINT 1
- #define HAVE_LOCAL_ALIGNED_16 1
- #define HAVE_LOCAL_ALIGNED_8 1
--#define HAVE_LOG2 1
--#define HAVE_LOG2F 1
-+#define HAVE_LOG2 0
-+#define HAVE_LOG2F 0
- #define HAVE_LOONGSON 0
- #define HAVE_LRINT 1
- #define HAVE_LRINTF 1
- #define HAVE_LZO1X_999_COMPRESS 0
- #define HAVE_MACHINE_IOCTL_BT848_H 0
- #define HAVE_MACHINE_IOCTL_METEOR_H 0
--#define HAVE_MALLOC_H 1
--#define HAVE_MEMALIGN 1
-+#define HAVE_MALLOC_H 0
-+#define HAVE_MEMALIGN 0
- #define HAVE_MKSTEMP 1
- #define HAVE_PLD 0
- #define HAVE_POSIX_MEMALIGN 1
diff --git a/www/chromium/files/patch-gfx__native_widget_types.h b/www/chromium/files/patch-gfx__native_widget_types.h
new file mode 100644
index 000000000000..76b2669bbe16
--- /dev/null
+++ b/www/chromium/files/patch-gfx__native_widget_types.h
@@ -0,0 +1,11 @@
+--- gfx/native_widget_types.h.orig 2011-03-20 22:02:04.270736223 +0200
++++ gfx/native_widget_types.h 2011-03-20 22:02:04.441738962 +0200
+@@ -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;
diff --git a/www/chromium/files/patch-gfx__scoped_image.h b/www/chromium/files/patch-gfx__scoped_image.h
new file mode 100644
index 000000000000..4335135e4e75
--- /dev/null
+++ b/www/chromium/files/patch-gfx__scoped_image.h
@@ -0,0 +1,20 @@
+--- gfx/scoped_image.h.orig 2011-03-20 22:02:04.269886673 +0200
++++ gfx/scoped_image.h 2011-03-20 22:02:04.438736904 +0200
+@@ -11,7 +11,7 @@
+ #include "gfx/native_widget_types.h"
+ #include "third_party/skia/include/core/SkBitmap.h"
+
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ #include <glib-object.h>
+ #elif defined(OS_MACOSX)
+ #include "base/mac/mac_util.h"
+@@ -116,7 +116,7 @@
+ #endif // defined(OS_MACOSX)
+
+ // Specialization for the GdkPixbuf type on Linux.
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ template <>
+ class ScopedImage<GdkPixbuf> : public gfx::internal::ScopedImage<GdkPixbuf> {
+ public:
diff --git a/www/chromium/files/patch-gpu__demos__demos.gyp b/www/chromium/files/patch-gpu__demos__demos.gyp
new file mode 100644
index 000000000000..bd782e0285be
--- /dev/null
+++ b/www/chromium/files/patch-gpu__demos__demos.gyp
@@ -0,0 +1,29 @@
+--- ./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 @@
+ # 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.
+- ['OS=="linux" and (target_arch=="x64" or target_arch=="arm") and linux_fpic!=1', {
++ ['(OS=="linux" or OS=="freebsd") and (target_arch=="x64" or target_arch=="arm") and linux_fpic!=1', {
+ '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 @@
+ ],
+ },
+ 'conditions': [
+- ['OS=="linux"', {
++ ['OS=="linux" or OS=="freebsd"', {
+ # -gstabs, used in the official builds, causes an ICE. Remove it.
+ 'cflags!': ['-gstabs'],
+ }],
diff --git a/www/chromium/files/patch-gpu__demos__framework__main_exe.cc b/www/chromium/files/patch-gpu__demos__framework__main_exe.cc
new file mode 100644
index 000000000000..d937f06e55c6
--- /dev/null
+++ b/www/chromium/files/patch-gpu__demos__framework__main_exe.cc
@@ -0,0 +1,26 @@
+--- ./gpu/demos/framework/main_exe.cc.orig 2010-12-16 02:11:23.000000000 +0100
++++ ./gpu/demos/framework/main_exe.cc 2010-12-20 20:15:08.000000000 +0100
+@@ -8,9 +8,9 @@
+ #include "base/logging.h"
+ #include "gpu/demos/framework/window.h"
+
+-#if defined(OS_LINUX)
++#if defined(TOOLKIT_USES_GTK)
+ #include <gtk/gtk.h>
+-#endif // OS_LINUX
++#endif // TOOLKIT_USES_GTK
+
+ namespace {
+ static const int kWindowWidth = 512;
+@@ -18,9 +18,9 @@
+ } // namespace.
+
+ int main(int argc, char** argv) {
+-#if defined(OS_LINUX)
++#if defined(TOOLKIT_USES_GTK)
+ gtk_init(&argc, &argv);
+-#endif // OS_LINUX
++#endif // TOOLKIT_USES_GTK
+
+ // AtExitManager is used by singleton classes to delete themselves when
+ // the program terminates.
diff --git a/www/chromium/files/patch-gpu__demos__framework__main_pepper.cc b/www/chromium/files/patch-gpu__demos__framework__main_pepper.cc
new file mode 100644
index 000000000000..c6dabfd31905
--- /dev/null
+++ b/www/chromium/files/patch-gpu__demos__framework__main_pepper.cc
@@ -0,0 +1,48 @@
+--- gpu/demos/framework/main_pepper.cc.orig 2011-01-06 10:01:08.000000000 +0100
++++ gpu/demos/framework/main_pepper.cc 2011-01-09 19:58:46.000000000 +0100
+@@ -97,7 +97,7 @@
+ NPError err = NPERR_NO_ERROR;
+
+ switch (variable) {
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ case NPPVpluginNameString:
+ *(static_cast<const char**>(value)) = "Pepper GPU Demo";
+ break;
+@@ -153,16 +153,16 @@
+ }
+
+ EXPORT NPError API_CALL NP_Initialize(NPNetscapeFuncs* browser_funcs
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ , NPPluginFuncs* plugin_funcs
+-#endif // OS_LINUX
++#endif // OS_LINUX || OS_FREEBSD
+ ) {
+ gpu::demos::g_browser = browser_funcs;
+ pglInitialize();
+
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ NP_GetEntryPoints(plugin_funcs);
+-#endif // OS_LINUX
++#endif // OS_LINUX || OS_FREEBSD
+ return NPERR_NO_ERROR;
+ }
+
+@@ -170,7 +170,7 @@
+ pglTerminate();
+ }
+
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ EXPORT NPError API_CALL NP_GetValue(NPP instance, NPPVariable variable,
+ void* value) {
+ return gpu::demos::NPP_GetValue(instance, variable, value);
+@@ -179,5 +179,5 @@
+ EXPORT const char* API_CALL NP_GetMIMEDescription() {
+ return "pepper-application/x-gpu-demo::Pepper GPU Demo";
+ }
+-#endif // OS_LINUX
++#endif // OS_LINUX || OS_FREEBSD
+ } // extern "C"
diff --git a/www/chromium/files/patch-gpu__gpu.gyp b/www/chromium/files/patch-gpu__gpu.gyp
new file mode 100644
index 000000000000..f58003bcdbdc
--- /dev/null
+++ b/www/chromium/files/patch-gpu__gpu.gyp
@@ -0,0 +1,11 @@
+--- ./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',
+ ],
diff --git a/www/chromium/files/patch-ipc__ipc.gyp b/www/chromium/files/patch-ipc__ipc.gyp
new file mode 100644
index 000000000000..8d08cab90acc
--- /dev/null
+++ b/www/chromium/files/patch-ipc__ipc.gyp
@@ -0,0 +1,11 @@
+--- ./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': [
diff --git a/www/chromium/files/patch-ipc__sync_socket_unittest.cc b/www/chromium/files/patch-ipc__sync_socket_unittest.cc
new file mode 100644
index 000000000000..4e811e586f07
--- /dev/null
+++ b/www/chromium/files/patch-ipc__sync_socket_unittest.cc
@@ -0,0 +1,14 @@
+--- ipc/sync_socket_unittest.cc.orig 2011-01-06 10:01:35.000000000 +0100
++++ ipc/sync_socket_unittest.cc 2011-01-09 19:49:43.000000000 +0100
+@@ -20,9 +20,9 @@
+ #include "testing/gtest/include/gtest/gtest.h"
+ #include "testing/multiprocess_func_list.h"
+
+-#if defined(OS_LINUX) || defined(OS_MACOSX)
++#if defined(OS_POSIX)
+ #include "base/file_descriptor_posix.h"
+-#endif // defined(OS_LINUX) || defined(OS_MACOSX)
++#endif // defined(OS_POSIX)
+
+ enum IPCMessageIds {
+ UNUSED_IPC_TYPE,
diff --git a/www/chromium/files/patch-media__base__media_switches.cc b/www/chromium/files/patch-media__base__media_switches.cc
new file mode 100644
index 000000000000..4ab640162e64
--- /dev/null
+++ b/www/chromium/files/patch-media__base__media_switches.cc
@@ -0,0 +1,11 @@
+--- ./media/base/media_switches.cc.orig 2010-12-16 02:11:21.000000000 +0100
++++ ./media/base/media_switches.cc 2010-12-20 20:15:08.000000000 +0100
+@@ -6,7 +6,7 @@
+
+ namespace switches {
+
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ // The Alsa device to use when opening an audio stream.
+ const char kAlsaOutputDevice[] = "alsa-output-device";
+ // The Alsa device to use when opening an audio input stream.
diff --git a/www/chromium/files/patch-media__base__media_switches.h b/www/chromium/files/patch-media__base__media_switches.h
new file mode 100644
index 000000000000..ca1ef25e9ac6
--- /dev/null
+++ b/www/chromium/files/patch-media__base__media_switches.h
@@ -0,0 +1,11 @@
+--- ./media/base/media_switches.h.orig 2010-12-16 02:11:21.000000000 +0100
++++ ./media/base/media_switches.h 2010-12-20 20:15:08.000000000 +0100
+@@ -11,7 +11,7 @@
+
+ namespace switches {
+
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ extern const char kAlsaOutputDevice[];
+ extern const char kAlsaInputDevice[];
+ #endif
diff --git a/www/chromium/files/patch-native_client__build__common.gypi b/www/chromium/files/patch-native_client__build__common.gypi
new file mode 100644
index 000000000000..9a7ecc46ea98
--- /dev/null
+++ b/www/chromium/files/patch-native_client__build__common.gypi
@@ -0,0 +1,11 @@
+--- ./native_client/build/common.gypi.orig 2010-12-16 02:12:20.000000000 +0100
++++ ./native_client/build/common.gypi 2010-12-20 20:15:08.000000000 +0100
+@@ -375,7 +375,7 @@
+ },
+ },
+ 'conditions': [
+- ['OS=="linux"', {
++ ['OS=="linux" or OS=="freebsd"', {
+ 'target_defaults': {
+ # Enable -Werror by default, but put it in a variable so it can
+ # be disabled in ~/.gyp/include.gypi on the valgrind builders.
diff --git a/www/chromium/files/patch-native_client__src__shared__platform__platform.gyp b/www/chromium/files/patch-native_client__src__shared__platform__platform.gyp
new file mode 100644
index 000000000000..35e16a8130de
--- /dev/null
+++ b/www/chromium/files/patch-native_client__src__shared__platform__platform.gyp
@@ -0,0 +1,11 @@
+--- ./native_client/src/shared/platform/platform.gyp.orig 2010-12-16 02:12:14.000000000 +0100
++++ ./native_client/src/shared/platform/platform.gyp 2010-12-20 20:15:08.000000000 +0100
+@@ -60,7 +60,7 @@
+ 'time.h',
+ ],
+ 'conditions': [
+- ['OS=="linux"', {
++ ['OS=="linux" or OS=="freebsd"', {
+ 'platform_sources': [
+ 'linux/condition_variable.cc',
+ 'linux/lock.cc',
diff --git a/www/chromium/files/patch-native_client__src__trusted__debug_stub__debug_stub.gyp b/www/chromium/files/patch-native_client__src__trusted__debug_stub__debug_stub.gyp
new file mode 100644
index 000000000000..91ed115749cc
--- /dev/null
+++ b/www/chromium/files/patch-native_client__src__trusted__debug_stub__debug_stub.gyp
@@ -0,0 +1,20 @@
+--- ./native_client/src/trusted/debug_stub/debug_stub.gyp.orig 2010-12-16 02:12:15.000000000 +0100
++++ ./native_client/src/trusted/debug_stub/debug_stub.gyp 2010-12-20 20:15:08.000000000 +0100
+@@ -16,7 +16,7 @@
+ 'transport_common.cc',
+ ],
+ 'conditions': [
+- ['OS=="linux" or OS=="mac"', {
++ ['OS=="linux" or OS=="freebsd" or OS=="mac"', {
+ 'platform_sources': [
+ 'posix/debug_stub_posix.cc',
+ 'posix/mutex_impl.cc',
+@@ -40,7 +40,7 @@
+ 'target_base': 'none',
+ },
+ 'target_conditions': [
+- ['OS=="linux" or OS=="mac"', {
++ ['OS=="linux" or OS=="freebsd" or OS=="mac"', {
+ 'cflags': [
+ '-Wno-long-long',
+ ],
diff --git a/www/chromium/files/patch-native_client__src__trusted__service_runtime__service_runtime.gyp b/www/chromium/files/patch-native_client__src__trusted__service_runtime__service_runtime.gyp
new file mode 100644
index 000000000000..0f1ff031c35f
--- /dev/null
+++ b/www/chromium/files/patch-native_client__src__trusted__service_runtime__service_runtime.gyp
@@ -0,0 +1,11 @@
+--- ./native_client/src/trusted/service_runtime/service_runtime.gyp.orig 2010-12-16 02:12:19.000000000 +0100
++++ ./native_client/src/trusted/service_runtime/service_runtime.gyp 2010-12-20 20:15:08.000000000 +0100
+@@ -31,7 +31,7 @@
+ {
+ 'variables': {
+ 'conditions': [
+- ['OS=="linux"', {
++ ['OS=="linux" or OS=="freebsd"', {
+ 'syscall_handler': [
+ 'linux/nacl_syscall_impl.c'
+ ],
diff --git a/www/chromium/files/patch-net__base__dnsrr_resolver.cc b/www/chromium/files/patch-net__base__dnsrr_resolver.cc
new file mode 100644
index 000000000000..7218a4ba66d5
--- /dev/null
+++ b/www/chromium/files/patch-net__base__dnsrr_resolver.cc
@@ -0,0 +1,24 @@
+--- 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:
+ //
diff --git a/www/chromium/files/patch-net__base__host_resolver_impl.cc b/www/chromium/files/patch-net__base__host_resolver_impl.cc
new file mode 100644
index 000000000000..8a1b9a487a56
--- /dev/null
+++ b/www/chromium/files/patch-net__base__host_resolver_impl.cc
@@ -0,0 +1,34 @@
+--- ./net/base/host_resolver_impl.cc.orig 2010-12-16 02:11:31.000000000 +0100
++++ ./net/base/host_resolver_impl.cc 2010-12-20 20:15:08.000000000 +0100
+@@ -199,13 +199,11 @@
+ std::vector<int> GetAllGetAddrinfoOSErrors() {
+ int os_errors[] = {
+ #if defined(OS_POSIX)
+- EAI_ADDRFAMILY,
+ EAI_AGAIN,
+ EAI_BADFLAGS,
+ EAI_FAIL,
+ EAI_FAMILY,
+ EAI_MEMORY,
+- EAI_NODATA,
+ EAI_NONAME,
+ EAI_SERVICE,
+ EAI_SOCKTYPE,
+@@ -919,7 +917,7 @@
+ #if defined(OS_WIN)
+ EnsureWinsockInit();
+ #endif
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ if (HaveOnlyLoopbackAddresses())
+ additional_resolver_flags_ |= HOST_RESOLVER_LOOPBACK_ONLY;
+ #endif
+@@ -1316,7 +1314,7 @@
+ ipv6_probe_job_ = new IPv6ProbeJob(this);
+ ipv6_probe_job_->Start();
+ }
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ if (HaveOnlyLoopbackAddresses()) {
+ additional_resolver_flags_ |= HOST_RESOLVER_LOOPBACK_ONLY;
+ } else {
diff --git a/www/chromium/files/patch-net__base__host_resolver_proc.cc b/www/chromium/files/patch-net__base__host_resolver_proc.cc
new file mode 100644
index 000000000000..5035e513624b
--- /dev/null
+++ b/www/chromium/files/patch-net__base__host_resolver_proc.cc
@@ -0,0 +1,35 @@
+--- net/base/host_resolver_proc.cc.orig 2011-03-15 05:50:10.000000000 +0200
++++ net/base/host_resolver_proc.cc 2011-03-15 05:50:34.000000000 +0200
+@@ -6,15 +6,15 @@
+
+ #include "build/build_config.h"
+
+-#if defined(OS_POSIX) && !defined(OS_MACOSX)
+-#include <resolv.h>
+-#endif
+-
+ #include "base/logging.h"
+ #include "net/base/address_list.h"
+ #include "net/base/dns_reload_timer.h"
+ #include "net/base/net_errors.h"
+ #include "net/base/sys_addrinfo.h"
++#if defined(OS_POSIX) && !defined(OS_MACOSX)
++#include <netdb.h> /* EAI_NODATA */
++#include <resolv.h>
++#endif
+
+ namespace net {
+
+@@ -248,7 +248,11 @@
+ #if defined(OS_WIN)
+ if (err != WSAHOST_NOT_FOUND && err != WSANO_DATA)
+ return ERR_NAME_RESOLUTION_FAILED;
+-#elif defined(OS_POSIX)
++#elif defined(OS_FREEBSD)
++ // EAI_NODATA is obsolete [RFC 3493].
++ if (err != EAI_NONAME)
++ return ERR_NAME_RESOLUTION_FAILED;
++#elif defined(OS_POSIX)
+ if (err != EAI_NONAME && err != EAI_NODATA)
+ return ERR_NAME_RESOLUTION_FAILED;
+ #endif
diff --git a/www/chromium/files/patch-net__base__listen_socket_unittest.cc b/www/chromium/files/patch-net__base__listen_socket_unittest.cc
new file mode 100644
index 000000000000..d8fd871c7448
--- /dev/null
+++ b/www/chromium/files/patch-net__base__listen_socket_unittest.cc
@@ -0,0 +1,12 @@
+--- ./net/base/listen_socket_unittest.cc.orig 2010-12-16 02:11:31.000000000 +0100
++++ ./net/base/listen_socket_unittest.cc 2010-12-20 20:15:08.000000000 +0100
+@@ -6,6 +6,9 @@
+
+ #include <fcntl.h>
+ #include <sys/types.h>
++#if defined(OS_FREEBSD)
++#include <netinet/in.h>
++#endif
+
+ #include "base/eintr_wrapper.h"
+ #include "net/base/net_util.h"
diff --git a/www/chromium/files/patch-net__base__net_util.cc b/www/chromium/files/patch-net__base__net_util.cc
new file mode 100644
index 000000000000..9342df1ee8d4
--- /dev/null
+++ b/www/chromium/files/patch-net__base__net_util.cc
@@ -0,0 +1,13 @@
+--- ./net/base/net_util.cc.orig 2010-12-16 02:11:31.000000000 +0100
++++ ./net/base/net_util.cc 2010-12-20 20:15:08.000000000 +0100
+@@ -25,9 +25,9 @@
+ #include <fcntl.h>
+ #include <ifaddrs.h>
+ #include <netdb.h>
++#include <sys/socket.h>
+ #include <net/if.h>
+ #include <netinet/in.h>
+-#include <sys/socket.h>
+ #endif
+
+ #include "base/base64.h"
diff --git a/www/chromium/files/patch-net__base__network_change_notifier.cc b/www/chromium/files/patch-net__base__network_change_notifier.cc
new file mode 100644
index 000000000000..5b5b4a119657
--- /dev/null
+++ b/www/chromium/files/patch-net__base__network_change_notifier.cc
@@ -0,0 +1,10 @@
+--- ./net/base/network_change_notifier.cc.orig 2010-12-16 02:11:31.000000000 +0100
++++ ./net/base/network_change_notifier.cc 2010-12-20 20:15:08.000000000 +0100
+@@ -42,7 +42,6 @@
+ #elif defined(OS_MACOSX)
+ return new NetworkChangeNotifierMac();
+ #else
+- NOTIMPLEMENTED();
+ return NULL;
+ #endif
+ }
diff --git a/www/chromium/files/patch-net__net.gyp b/www/chromium/files/patch-net__net.gyp
new file mode 100644
index 000000000000..de645d79ace6
--- /dev/null
+++ b/www/chromium/files/patch-net__net.gyp
@@ -0,0 +1,51 @@
+--- net/net.gyp.orig 2011-03-20 22:02:04.177736414 +0200
++++ net/net.gyp 2011-03-20 22:02:04.391765571 +0200
+@@ -137,8 +137,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',
+@@ -242,7 +242,7 @@
+ 'dependencies': [
+ '../build/linux/system.gyp:gconf',
+ '../build/linux/system.gyp:gdk',
+- '../build/linux/system.gyp:libresolv',
++ #'../build/linux/system.gyp:libresolv',
+ ],
+ 'conditions': [
+ ['use_openssl==1', {
+@@ -548,8 +548,8 @@
+ 'proxy/proxy_config_service.h',
+ 'proxy/proxy_config_service_fixed.cc',
+ 'proxy/proxy_config_service_fixed.h',
+- 'proxy/proxy_config_service_linux.cc',
+- 'proxy/proxy_config_service_linux.h',
++ #'proxy/proxy_config_service_linux.cc',
++ #'proxy/proxy_config_service_linux.h',
+ 'proxy/proxy_config_service_mac.cc',
+ 'proxy/proxy_config_service_mac.h',
+ 'proxy/proxy_config_service_win.cc',
+@@ -1029,7 +1029,7 @@
+ ],
+ }
+ ],
+- [ 'OS == "linux"', {
++ [ 'OS == "linux" or OS=="freebsd"', {
+ 'conditions': [
+ ['linux_use_tcmalloc==1', {
+ 'dependencies': [
+@@ -1194,7 +1194,7 @@
+ }],
+ ],
+ }],
+- ['OS == "linux"', {
++ ['OS == "linux" or OS=="freebsd"', {
+ 'conditions': [
+ ['linux_use_tcmalloc==1', {
+ 'dependencies': [
diff --git a/www/chromium/files/patch-net__proxy__proxy_config_service_linux.cc b/www/chromium/files/patch-net__proxy__proxy_config_service_linux.cc
new file mode 100644
index 000000000000..0c9a6c80b4b9
--- /dev/null
+++ b/www/chromium/files/patch-net__proxy__proxy_config_service_linux.cc
@@ -0,0 +1,189 @@
+--- ./net/proxy/proxy_config_service_linux.cc.orig 2010-12-13 12:03:17.000000000 +0100
++++ ./net/proxy/proxy_config_service_linux.cc 2011-01-07 14:17:11.000000000 +0100
+@@ -12,7 +12,13 @@
+ #include <limits.h>
+ #include <stdio.h>
+ #include <stdlib.h>
++#if defined(OS_FREEBSD)
++#include <sys/types.h>
++#include <sys/event.h>
++#include <sys/time.h>
++#else
+ #include <sys/inotify.h>
++#endif
+ #include <unistd.h>
+
+ #include <map>
+@@ -432,7 +438,7 @@
+ public base::MessagePumpLibevent::Watcher {
+ public:
+ explicit GConfSettingGetterImplKDE(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) {
+ // Derive the location of the kde config dir from the environment.
+@@ -488,31 +494,35 @@
+ }
+
+ 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()
+ // 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);
+ }
+
+ virtual bool Init(MessageLoop* glib_default_loop,
+ MessageLoopForIO* file_loop) {
+- DCHECK(inotify_fd_ < 0);
+- inotify_fd_ = inotify_init();
+- if (inotify_fd_ < 0) {
++ DCHECK(notify_fd_ < 0);
++#if defined(OS_FREEBSD)
++ notify_fd_ = kqueue();
++#else
++ notify_fd_ = inotify_init();
++#endif
++ if (notify_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) {
++ int flags = fcntl(notify_fd_, F_GETFL);
++ if (fcntl(notify_fd_, F_SETFL, flags | O_NONBLOCK) < 0) {
+ PLOG(ERROR) << "fcntl failed";
+- close(inotify_fd_);
+- inotify_fd_ = -1;
++ close(notify_fd_);
++ notify_fd_ = -1;
+ return false;
+ }
+ file_loop_ = file_loop;
+@@ -523,28 +533,41 @@
+ }
+
+ 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_);
++#if defined(OS_FREEBSD)
++ // catch the deletion event of kioslaverc
++ int kioslavercfd = open(kde_config_dir_.Append("kioslaverc").value().c_str(), O_RDONLY);
++ if (kioslavercfd == -1)
++ return false;
++
++ struct kevent ke;
++ EV_SET(&ke, kioslavercfd, EVFILT_VNODE, EV_ADD | EV_ONESHOT, NOTE_DELETE | NOTE_RENAME, 0, NULL);
++
++ if (kevent(notify_fd_, &ke, 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(),
+ 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() {
+@@ -553,7 +576,7 @@
+
+ // Implement base::MessagePumpLibevent::Delegate.
+ void OnFileCanReadWithoutBlocking(int fd) {
+- DCHECK(fd == inotify_fd_);
++ DCHECK(fd == notify_fd_);
+ DCHECK(MessageLoop::current() == file_loop_);
+ OnChangeNotification();
+ }
+@@ -824,12 +847,25 @@
+ // 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(MessageLoop::current() == file_loop_);
++#if defined(OS_FREEBSD)
++ bool kioslaverc_touched = true;
++ struct kevent ke;
++ if (kevent(notify_fd_, NULL, 0, &ke, 1, NULL) == -1) {
++ LOG(ERROR) << "kevent() failure: no loner watching kioslaverc";
++ notify_watcher_.StopWatchingFileDescriptor();
++ close(notify_fd_);
++ notify_fd_ = -1;
++ kioslaverc_touched = false;
++ }
++ close(ke.ident);
++
++#else
+ char event_buf[(sizeof(inotify_event) + NAME_MAX + 1) * 4];
+ bool kioslaverc_touched = false;
+ 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) {
+ // 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;
+@@ -856,14 +892,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;
+ }
+ }
++#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.)
+@@ -877,8 +914,8 @@
+ typedef std::map<std::string, std::string> string_map_type;
+ typedef std::map<std::string, std::vector<std::string> > strings_map_type;
+
+- int inotify_fd_;
+- base::MessagePumpLibevent::FileDescriptorWatcher inotify_watcher_;
++ int notify_fd_;
++ base::MessagePumpLibevent::FileDescriptorWatcher notify_watcher_;
+ ProxyConfigServiceLinux::Delegate* notify_delegate_;
+ base::OneShotTimer<GConfSettingGetterImplKDE> debounce_timer_;
+ FilePath kde_config_dir_;
diff --git a/www/chromium/files/patch-net__proxy__proxy_service.cc b/www/chromium/files/patch-net__proxy__proxy_service.cc
new file mode 100644
index 000000000000..ab71a09b6797
--- /dev/null
+++ b/www/chromium/files/patch-net__proxy__proxy_service.cc
@@ -0,0 +1,19 @@
+--- net/proxy/proxy_service.cc.orig 2011-03-20 22:02:04.206737865 +0200
++++ net/proxy/proxy_service.cc 2011-03-20 22:02:04.398743833 +0200
+@@ -124,6 +124,16 @@
+ }
+ };
+
++// ProxyConfigService implementation that does nothing.
++class ProxyConfigServiceNull : public ProxyConfigService {
++public:
++ ProxyConfigServiceNull() {}
++ virtual void AddObserver(Observer* observer) {}
++ virtual void RemoveObserver(Observer* observer) {}
++ virtual bool GetLatestProxyConfig(ProxyConfig* config) { return true; }
++ virtual void OnLazyPoll() {}
++};
++
+ // ProxyResolver that simulates a PAC script which returns
+ // |pac_string| for every single URL.
+ class ProxyResolverFromPacString : public ProxyResolver {
diff --git a/www/chromium/files/patch-ppapi__proxy__image_data.cc b/www/chromium/files/patch-ppapi__proxy__image_data.cc
new file mode 100644
index 000000000000..0ddf1e0e14c6
--- /dev/null
+++ b/www/chromium/files/patch-ppapi__proxy__image_data.cc
@@ -0,0 +1,11 @@
+--- ppapi/proxy/image_data.cc.orig 2011-03-15 05:44:04.000000000 +0200
++++ ppapi/proxy/image_data.cc 2011-03-15 05:48:26.000000000 +0200
+@@ -4,7 +4,7 @@
+
+ #include "ppapi/proxy/image_data.h"
+
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined (OS_FREEBSD)
+ #include <sys/shm.h>
+ #endif
+
diff --git a/www/chromium/files/patch-printing__printing.gyp b/www/chromium/files/patch-printing__printing.gyp
new file mode 100644
index 000000000000..780bb4b9a139
--- /dev/null
+++ b/www/chromium/files/patch-printing__printing.gyp
@@ -0,0 +1,30 @@
+--- ./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',
+- ],
+- }],
++ ],
++ }],
+ ],
+ }],
+ ],
diff --git a/www/chromium/files/patch-remoting__remoting.gyp b/www/chromium/files/patch-remoting__remoting.gyp
new file mode 100644
index 000000000000..3054d3be354a
--- /dev/null
+++ b/www/chromium/files/patch-remoting__remoting.gyp
@@ -0,0 +1,42 @@
+--- ./remoting/remoting.gyp.orig 2010-12-13 12:03:06.000000000 +0100
++++ ./remoting/remoting.gyp 2011-01-07 14:17:11.000000000 +0100
+@@ -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': [
+@@ -221,7 +223,11 @@
+ 'host/event_executor_win.h',
+ ],
+ }],
+- ['OS=="linux"', {
++ ['OS=="linux" or OS=="freebsd"', {
++ 'dependencies': [
++ '../build/linux/system.gyp:x11',
++ '../build/linux/system.gyp:xext',
++ ],
+ 'sources': [
+ 'host/capturer_linux.cc',
+ 'host/capturer_linux.h',
+@@ -497,7 +503,7 @@
+ 'host/capturer_gdi_unittest.cc',
+ ],
+ }],
+- ['OS=="linux"', {
++ ['OS=="linux" or OS=="freebsd"', {
+ 'dependencies': [
+ # Needed for the following #include chain:
+ # base/run_all_unittests.cc
diff --git a/www/chromium/files/patch-third_party__WebKit__Source__WebCore__platform__UUID.cpp b/www/chromium/files/patch-third_party__WebKit__Source__WebCore__platform__UUID.cpp
new file mode 100644
index 000000000000..a5a1d9f5b64e
--- /dev/null
+++ b/www/chromium/files/patch-third_party__WebKit__Source__WebCore__platform__UUID.cpp
@@ -0,0 +1,35 @@
+--- ./third_party/WebKit/Source/WebCore/platform/UUID.cpp.orig 2011-01-25 10:33:42.000000000 +0100
++++ ./third_party/WebKit/Source/WebCore/platform/UUID.cpp 2011-01-25 10:43:15.000000000 +0100
+@@ -41,6 +41,8 @@
+ #include <objbase.h>
+ #elif OS(DARWIN)
+ #include <CoreFoundation/CoreFoundation.h>
++#elif OS(FREEBSD)
++#include <uuid.h>
+ #elif OS(LINUX) && !PLATFORM(CHROMIUM)
+ #include <stdio.h>
+ #elif OS(LINUX) && PLATFORM(CHROMIUM)
+@@ -80,6 +82,23 @@
+ String canonicalUuidStr = uuidStr.lower(); // make it lower.
+ ASSERT(canonicalUuidStr[uuidVersionIdentifierIndex] == uuidVersionRequired);
+ return canonicalUuidStr;
++#elif OS(FREEBSD)
++ uuid_t *store;
++ char *uuid;
++ store = (uuid_t*)malloc(sizeof(uuid_t));
++ if (store == NULL)
++ return String();
++
++ if (uuidgen(store, 1) != 0)
++ return String();
++
++ uuid_to_string(store, &uuid, NULL);
++ String canonicalUuidStr = String(uuid).lower(); // make it lower
++ free(uuid);
++ free(store);
++ ASSERT(canonicalUuidStr[uuidVersionIdentifierIndex] == uuidVersionRequired);
++ return canonicalUuidStr;
++
+ #elif OS(LINUX) && !PLATFORM(CHROMIUM)
+ // This does not work for the linux system that turns on sandbox.
+ FILE* fptr = fopen("/proc/sys/kernel/random/uuid", "r");
diff --git a/www/chromium/files/patch-third_party__WebKit__Source__WebCore__platform__chromium__PlatformBridge.h b/www/chromium/files/patch-third_party__WebKit__Source__WebCore__platform__chromium__PlatformBridge.h
new file mode 100644
index 000000000000..8a62ea59bc13
--- /dev/null
+++ b/www/chromium/files/patch-third_party__WebKit__Source__WebCore__platform__chromium__PlatformBridge.h
@@ -0,0 +1,11 @@
+--- 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
diff --git a/www/chromium/files/patch-third_party__WebKit__Source__WebCore__platform__sql__chromium__SQLiteFileSystemChromiumPosix.cpp b/www/chromium/files/patch-third_party__WebKit__Source__WebCore__platform__sql__chromium__SQLiteFileSystemChromiumPosix.cpp
new file mode 100644
index 000000000000..304c58edc42e
--- /dev/null
+++ b/www/chromium/files/patch-third_party__WebKit__Source__WebCore__platform__sql__chromium__SQLiteFileSystemChromiumPosix.cpp
@@ -0,0 +1,11 @@
+--- third_party/WebKit/Source/WebCore/platform/sql/chromium/SQLiteFileSystemChromiumPosix.cpp.orig 2011-03-20 22:02:04.262978254 +0200
++++ third_party/WebKit/Source/WebCore/platform/sql/chromium/SQLiteFileSystemChromiumPosix.cpp 2011-03-20 22:02:04.435738199 +0200
+@@ -755,6 +755,8 @@
+ if (!success)
+ success = !fsync(fd);
+ return success;
++#elif OS(FREEBSD)
++ return !fsync(fd);
+ #else
+ return !fdatasync(fd);
+ #endif
diff --git a/www/chromium/files/patch-third_party__WebKit__Source__WebKit__chromium__src__PlatformBridge.cpp b/www/chromium/files/patch-third_party__WebKit__Source__WebKit__chromium__src__PlatformBridge.cpp
new file mode 100644
index 000000000000..9bf7d716fda0
--- /dev/null
+++ b/www/chromium/files/patch-third_party__WebKit__Source__WebKit__chromium__src__PlatformBridge.cpp
@@ -0,0 +1,11 @@
+--- 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)
+ {
diff --git a/www/chromium/files/patch-third_party__ffmpeg__config__Chrome__freebsd__ia32__config.h b/www/chromium/files/patch-third_party__ffmpeg__config__Chrome__freebsd__ia32__config.h
new file mode 100644
index 000000000000..29b8ad877235
--- /dev/null
+++ b/www/chromium/files/patch-third_party__ffmpeg__config__Chrome__freebsd__ia32__config.h
@@ -0,0 +1,963 @@
+--- ./third_party/ffmpeg/config/Chrome/freebsd/ia32/config.h.orig 2010-12-20 20:15:08.000000000 +0100
++++ ./third_party/ffmpeg/config/Chrome/freebsd/ia32/config.h 2010-12-20 20:15:08.000000000 +0100
+@@ -0,0 +1,960 @@
++/* Automatically generated by configure - do not modify! */
++#ifndef FFMPEG_CONFIG_H
++#define FFMPEG_CONFIG_H
++#define FFMPEG_CONFIGURATION "--disable-everything --disable-network --disable-bzlib --disable-zlib --disable-swscale --disable-amd3dnow --disable-amd3dnowext --enable-shared --enable-libvpx --enable-decoder='theora,vorbis,libvpx,pcm_u8,pcm_s16le,pcm_f32le,aac,h264,mp3' --enable-encoder=libvpx --enable-demuxer='ogg,matroska,wav,mp3,mov' --enable-parser=mpegaudio --extra-cflags='-m32 -fPIC' --extra-ldflags='-m32 -L../../libvpx/linux32/usr/local/lib'"
++#define FFMPEG_LICENSE "LGPL version 2.1 or later"
++#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
++#define CC_TYPE "gcc" /* rene: what about clang? does $(CC) work? */
++#define CC_VERSION __VERSION__
++#define restrict restrict
++#define ASMALIGN(ZEROBITS) ".p2align " #ZEROBITS "\n\t"
++#define EXTERN_PREFIX ""
++#define EXTERN_ASM
++#define SLIBSUF ".so"
++#define ARCH_ALPHA 0
++#define ARCH_ARM 0
++#define ARCH_AVR32 0
++#define ARCH_AVR32_AP 0
++#define ARCH_AVR32_UC 0
++#define ARCH_BFIN 0
++#define ARCH_IA64 0
++#define ARCH_M68K 0
++#define ARCH_MIPS 0
++#define ARCH_MIPS64 0
++#define ARCH_PARISC 0
++#define ARCH_PPC 0
++#define ARCH_PPC64 0
++#define ARCH_S390 0
++#define ARCH_SH4 0
++#define ARCH_SPARC 0
++#define ARCH_SPARC64 0
++#define ARCH_TOMI 0
++#define ARCH_X86 1
++#define ARCH_X86_32 1
++#define ARCH_X86_64 0
++#define HAVE_ALTIVEC 0
++#define HAVE_AMD3DNOW 0
++#define HAVE_AMD3DNOWEXT 0
++#define HAVE_ARMV5TE 0
++#define HAVE_ARMV6 0
++#define HAVE_ARMV6T2 0
++#define HAVE_ARMVFP 0
++#define HAVE_IWMMXT 0
++#define HAVE_MMI 0
++#define HAVE_MMX 1
++#define HAVE_MMX2 1
++#define HAVE_NEON 0
++#define HAVE_PPC4XX 0
++#define HAVE_SSE 1
++#define HAVE_SSSE3 1
++#define HAVE_VIS 0
++#define HAVE_BIGENDIAN 0
++#define HAVE_FAST_UNALIGNED 1
++#define HAVE_PTHREADS 1
++#define HAVE_W32THREADS 0
++#define HAVE_ALIGNED_STACK 1
++#define HAVE_ALSA_ASOUNDLIB_H 0
++#define HAVE_ALTIVEC_H 0
++#define HAVE_ARPA_INET_H 0
++#define HAVE_ATTRIBUTE_MAY_ALIAS 1
++#define HAVE_ATTRIBUTE_PACKED 1
++#define HAVE_BSWAP 1
++#define HAVE_CLOSESOCKET 0
++#define HAVE_CMOV 0
++#define HAVE_CONIO_H 0
++#define HAVE_DCBZL 0
++#define HAVE_DEV_BKTR_IOCTL_BT848_H 0
++#define HAVE_DEV_BKTR_IOCTL_METEOR_H 0
++#define HAVE_DEV_IC_BT8XX_H 0
++#define HAVE_DEV_VIDEO_METEOR_IOCTL_METEOR_H 0
++#define HAVE_DEV_VIDEO_BKTR_IOCTL_BT848_H 0
++#define HAVE_DLFCN_H 1
++#define HAVE_DLOPEN 1
++#define HAVE_DOS_PATHS 0
++#define HAVE_EBP_AVAILABLE 0
++#define HAVE_EBX_AVAILABLE 0
++#define HAVE_EXP2 1
++#define HAVE_EXP2F 1
++#define HAVE_FAST_64BIT 0
++#define HAVE_FAST_CLZ 1
++#define HAVE_FAST_CMOV 0
++#define HAVE_FCNTL 1
++#define HAVE_FORK 1
++#define HAVE_GETADDRINFO 1
++#define HAVE_GETHRTIME 0
++#define HAVE_GETPROCESSMEMORYINFO 0
++#define HAVE_GETPROCESSTIMES 0
++#define HAVE_GETRUSAGE 1
++#define HAVE_GNU_AS 1
++#define HAVE_STRUCT_RUSAGE_RU_MAXRSS 1
++#define HAVE_IBM_ASM 0
++#define HAVE_INET_ATON 1
++#define HAVE_INLINE_ASM 1
++#define HAVE_ISATTY 1
++#define HAVE_LDBRX 0
++#define HAVE_LIBDC1394_1 0
++#define HAVE_LIBDC1394_2 0
++#define HAVE_LLRINT 1
++#define HAVE_LLRINTF 1
++#define HAVE_LOCAL_ALIGNED_16 1
++#define HAVE_LOCAL_ALIGNED_8 1
++#define HAVE_LOG2 0
++#define HAVE_LOG2F 0
++#define HAVE_LOONGSON 0
++#define HAVE_LRINT 1
++#define HAVE_LRINTF 1
++#define HAVE_LZO1X_999_COMPRESS 0
++#define HAVE_MACHINE_IOCTL_BT848_H 0
++#define HAVE_MACHINE_IOCTL_METEOR_H 0
++#define HAVE_MALLOC_H 0
++#define HAVE_MEMALIGN 0
++#define HAVE_MKSTEMP 1
++#define HAVE_PLD 0
++#define HAVE_POSIX_MEMALIGN 1
++#define HAVE_ROUND 1
++#define HAVE_ROUNDF 1
++#define HAVE_SDL 0
++#define HAVE_SDL_VIDEO_SIZE 0
++#define HAVE_SETMODE 0
++#define HAVE_SOCKLEN_T 0
++#define HAVE_SOUNDCARD_H 0
++#define HAVE_POLL_H 1
++#define HAVE_SETRLIMIT 1
++#define HAVE_STRERROR_R 1
++#define HAVE_STRTOK_R 1
++#define HAVE_STRUCT_ADDRINFO 0
++#define HAVE_STRUCT_IPV6_MREQ 0
++#define HAVE_STRUCT_SOCKADDR_IN6 0
++#define HAVE_STRUCT_SOCKADDR_SA_LEN 0
++#define HAVE_STRUCT_SOCKADDR_STORAGE 0
++#define HAVE_SYMVER 0
++#define HAVE_SYMVER_GNU_ASM 1
++#define HAVE_SYMVER_ASM_LABEL 0
++#define HAVE_SYS_MMAN_H 1
++#define HAVE_SYS_RESOURCE_H 1
++#define HAVE_SYS_SELECT_H 1
++#define HAVE_SYS_SOUNDCARD_H 1
++#define HAVE_SYS_VIDEOIO_H 0
++#define HAVE_TEN_OPERANDS 1
++#define HAVE_TERMIOS_H 1
++#define HAVE_THREADS 1
++#define HAVE_TRUNCF 1
++#define HAVE_VFP_ARGS 0
++#define HAVE_VIRTUALALLOC 0
++#define HAVE_WINSOCK2_H 0
++#define HAVE_XFORM_ASM 0
++#define HAVE_XMM_CLOBBERS 0
++#define HAVE_YASM 1
++#define CONFIG_BSFS 0
++#define CONFIG_DECODERS 1
++#define CONFIG_DEMUXERS 1
++#define CONFIG_ENCODERS 1
++#define CONFIG_FILTERS 0
++#define CONFIG_HWACCELS 0
++#define CONFIG_INDEVS 0
++#define CONFIG_MUXERS 0
++#define CONFIG_OUTDEVS 0
++#define CONFIG_PARSERS 1
++#define CONFIG_PROTOCOLS 1
++#define CONFIG_AANDCT 0
++#define CONFIG_AVCODEC 1
++#define CONFIG_AVCORE 1
++#define CONFIG_AVDEVICE 1
++#define CONFIG_AVFILTER 1
++#define CONFIG_AVFORMAT 1
++#define CONFIG_AVISYNTH 0
++#define CONFIG_BZLIB 0
++#define CONFIG_DCT 0
++#define CONFIG_DOC 0
++#define CONFIG_DWT 0
++#define CONFIG_DXVA2 0
++#define CONFIG_FASTDIV 1
++#define CONFIG_FFMPEG 0
++#define CONFIG_FFPLAY 0
++#define CONFIG_FFPROBE 1
++#define CONFIG_FFSERVER 0
++#define CONFIG_FFT 1
++#define CONFIG_FREI0R 0
++#define CONFIG_GOLOMB 1
++#define CONFIG_GPL 0
++#define CONFIG_GRAY 0
++#define CONFIG_H264DSP 1
++#define CONFIG_H264PRED 1
++#define CONFIG_HARDCODED_TABLES 0
++#define CONFIG_HUFFMAN 0
++#define CONFIG_LIBDC1394 0
++#define CONFIG_LIBDIRAC 0
++#define CONFIG_LIBFAAC 0
++#define CONFIG_LIBGSM 0
++#define CONFIG_LIBMP3LAME 0
++#define CONFIG_LIBNUT 0
++#define CONFIG_LIBOPENCORE_AMRNB 0
++#define CONFIG_LIBOPENCORE_AMRWB 0
++#define CONFIG_LIBOPENCV 0
++#define CONFIG_LIBOPENJPEG 0
++#define CONFIG_LIBRTMP 0
++#define CONFIG_LIBSCHROEDINGER 0
++#define CONFIG_LIBSPEEX 0
++#define CONFIG_LIBTHEORA 0
++#define CONFIG_LIBVORBIS 0
++#define CONFIG_LIBVPX 1
++#define CONFIG_LIBX264 0
++#define CONFIG_LIBXAVS 0
++#define CONFIG_LIBXVID 0
++#define CONFIG_LPC 0
++#define CONFIG_LSP 0
++#define CONFIG_MDCT 1
++#define CONFIG_MEMALIGN_HACK 0
++#define CONFIG_MLIB 0
++#define CONFIG_MPEGAUDIO_HP 1
++#define CONFIG_NETWORK 0
++#define CONFIG_NONFREE 0
++#define CONFIG_PIC 1
++#define CONFIG_POSTPROC 0
++#define CONFIG_RDFT 1
++#define CONFIG_RTPDEC 0
++#define CONFIG_RUNTIME_CPUDETECT 0
++#define CONFIG_SHARED 1
++#define CONFIG_SMALL 0
++#define CONFIG_SRAM 0
++#define CONFIG_STATIC 1
++#define CONFIG_SWSCALE 0
++#define CONFIG_SWSCALE_ALPHA 1
++#define CONFIG_VAAPI 0
++#define CONFIG_VDPAU 0
++#define CONFIG_VERSION3 0
++#define CONFIG_X11GRAB 0
++#define CONFIG_ZLIB 0
++#define CONFIG_AVUTIL 1
++#define CONFIG_GPLV3 0
++#define CONFIG_LGPLV3 0
++#define CONFIG_AASC_DECODER 0
++#define CONFIG_AMV_DECODER 0
++#define CONFIG_ANM_DECODER 0
++#define CONFIG_ANSI_DECODER 0
++#define CONFIG_ASV1_DECODER 0
++#define CONFIG_ASV2_DECODER 0
++#define CONFIG_AURA_DECODER 0
++#define CONFIG_AURA2_DECODER 0
++#define CONFIG_AVS_DECODER 0
++#define CONFIG_BETHSOFTVID_DECODER 0
++#define CONFIG_BFI_DECODER 0
++#define CONFIG_BINK_DECODER 0
++#define CONFIG_BMP_DECODER 0
++#define CONFIG_C93_DECODER 0
++#define CONFIG_CAVS_DECODER 0
++#define CONFIG_CDGRAPHICS_DECODER 0
++#define CONFIG_CINEPAK_DECODER 0
++#define CONFIG_CLJR_DECODER 0
++#define CONFIG_CSCD_DECODER 0
++#define CONFIG_CYUV_DECODER 0
++#define CONFIG_DNXHD_DECODER 0
++#define CONFIG_DPX_DECODER 0
++#define CONFIG_DSICINVIDEO_DECODER 0
++#define CONFIG_DVVIDEO_DECODER 0
++#define CONFIG_DXA_DECODER 0
++#define CONFIG_EACMV_DECODER 0
++#define CONFIG_EAMAD_DECODER 0
++#define CONFIG_EATGQ_DECODER 0
++#define CONFIG_EATGV_DECODER 0
++#define CONFIG_EATQI_DECODER 0
++#define CONFIG_EIGHTBPS_DECODER 0
++#define CONFIG_EIGHTSVX_EXP_DECODER 0
++#define CONFIG_EIGHTSVX_FIB_DECODER 0
++#define CONFIG_ESCAPE124_DECODER 0
++#define CONFIG_FFV1_DECODER 0
++#define CONFIG_FFVHUFF_DECODER 0
++#define CONFIG_FLASHSV_DECODER 0
++#define CONFIG_FLIC_DECODER 0
++#define CONFIG_FLV_DECODER 0
++#define CONFIG_FOURXM_DECODER 0
++#define CONFIG_FRAPS_DECODER 0
++#define CONFIG_FRWU_DECODER 0
++#define CONFIG_GIF_DECODER 0
++#define CONFIG_H261_DECODER 0
++#define CONFIG_H263_DECODER 0
++#define CONFIG_H263I_DECODER 0
++#define CONFIG_H264_DECODER 1
++#define CONFIG_H264_VDPAU_DECODER 0
++#define CONFIG_HUFFYUV_DECODER 0
++#define CONFIG_IDCIN_DECODER 0
++#define CONFIG_IFF_BYTERUN1_DECODER 0
++#define CONFIG_IFF_ILBM_DECODER 0
++#define CONFIG_INDEO2_DECODER 0
++#define CONFIG_INDEO3_DECODER 0
++#define CONFIG_INDEO5_DECODER 0
++#define CONFIG_INTERPLAY_VIDEO_DECODER 0
++#define CONFIG_JPEGLS_DECODER 0
++#define CONFIG_KGV1_DECODER 0
++#define CONFIG_KMVC_DECODER 0
++#define CONFIG_LOCO_DECODER 0
++#define CONFIG_MDEC_DECODER 0
++#define CONFIG_MIMIC_DECODER 0
++#define CONFIG_MJPEG_DECODER 0
++#define CONFIG_MJPEGB_DECODER 0
++#define CONFIG_MMVIDEO_DECODER 0
++#define CONFIG_MOTIONPIXELS_DECODER 0
++#define CONFIG_MPEG_XVMC_DECODER 0
++#define CONFIG_MPEG1VIDEO_DECODER 0
++#define CONFIG_MPEG2VIDEO_DECODER 0
++#define CONFIG_MPEG4_DECODER 0
++#define CONFIG_MPEG4_VDPAU_DECODER 0
++#define CONFIG_MPEGVIDEO_DECODER 0
++#define CONFIG_MPEG_VDPAU_DECODER 0
++#define CONFIG_MPEG1_VDPAU_DECODER 0
++#define CONFIG_MSMPEG4V1_DECODER 0
++#define CONFIG_MSMPEG4V2_DECODER 0
++#define CONFIG_MSMPEG4V3_DECODER 0
++#define CONFIG_MSRLE_DECODER 0
++#define CONFIG_MSVIDEO1_DECODER 0
++#define CONFIG_MSZH_DECODER 0
++#define CONFIG_NUV_DECODER 0
++#define CONFIG_PAM_DECODER 0
++#define CONFIG_PBM_DECODER 0
++#define CONFIG_PCX_DECODER 0
++#define CONFIG_PGM_DECODER 0
++#define CONFIG_PGMYUV_DECODER 0
++#define CONFIG_PICTOR_DECODER 0
++#define CONFIG_PNG_DECODER 0
++#define CONFIG_PPM_DECODER 0
++#define CONFIG_PTX_DECODER 0
++#define CONFIG_QDRAW_DECODER 0
++#define CONFIG_QPEG_DECODER 0
++#define CONFIG_QTRLE_DECODER 0
++#define CONFIG_R10K_DECODER 0
++#define CONFIG_R210_DECODER 0
++#define CONFIG_RAWVIDEO_DECODER 0
++#define CONFIG_RL2_DECODER 0
++#define CONFIG_ROQ_DECODER 0
++#define CONFIG_RPZA_DECODER 0
++#define CONFIG_RV10_DECODER 0
++#define CONFIG_RV20_DECODER 0
++#define CONFIG_RV30_DECODER 0
++#define CONFIG_RV40_DECODER 0
++#define CONFIG_SGI_DECODER 0
++#define CONFIG_SMACKER_DECODER 0
++#define CONFIG_SMC_DECODER 0
++#define CONFIG_SNOW_DECODER 0
++#define CONFIG_SP5X_DECODER 0
++#define CONFIG_SUNRAST_DECODER 0
++#define CONFIG_SVQ1_DECODER 0
++#define CONFIG_SVQ3_DECODER 0
++#define CONFIG_TARGA_DECODER 0
++#define CONFIG_THEORA_DECODER 1
++#define CONFIG_THP_DECODER 0
++#define CONFIG_TIERTEXSEQVIDEO_DECODER 0
++#define CONFIG_TIFF_DECODER 0
++#define CONFIG_TMV_DECODER 0
++#define CONFIG_TRUEMOTION1_DECODER 0
++#define CONFIG_TRUEMOTION2_DECODER 0
++#define CONFIG_TSCC_DECODER 0
++#define CONFIG_TXD_DECODER 0
++#define CONFIG_ULTI_DECODER 0
++#define CONFIG_V210_DECODER 0
++#define CONFIG_V210X_DECODER 0
++#define CONFIG_VB_DECODER 0
++#define CONFIG_VC1_DECODER 0
++#define CONFIG_VC1_VDPAU_DECODER 0
++#define CONFIG_VCR1_DECODER 0
++#define CONFIG_VMDVIDEO_DECODER 0
++#define CONFIG_VMNC_DECODER 0
++#define CONFIG_VP3_DECODER 1
++#define CONFIG_VP5_DECODER 0
++#define CONFIG_VP6_DECODER 0
++#define CONFIG_VP6A_DECODER 0
++#define CONFIG_VP6F_DECODER 0
++#define CONFIG_VP8_DECODER 0
++#define CONFIG_VQA_DECODER 0
++#define CONFIG_WMV1_DECODER 0
++#define CONFIG_WMV2_DECODER 0
++#define CONFIG_WMV3_DECODER 0
++#define CONFIG_WMV3_VDPAU_DECODER 0
++#define CONFIG_WNV1_DECODER 0
++#define CONFIG_XAN_WC3_DECODER 0
++#define CONFIG_XL_DECODER 0
++#define CONFIG_YOP_DECODER 0
++#define CONFIG_ZLIB_DECODER 0
++#define CONFIG_ZMBV_DECODER 0
++#define CONFIG_AAC_DECODER 1
++#define CONFIG_AAC_LATM_DECODER 0
++#define CONFIG_AC3_DECODER 0
++#define CONFIG_ALAC_DECODER 0
++#define CONFIG_ALS_DECODER 0
++#define CONFIG_AMRNB_DECODER 0
++#define CONFIG_APE_DECODER 0
++#define CONFIG_ATRAC1_DECODER 0
++#define CONFIG_ATRAC3_DECODER 0
++#define CONFIG_BINKAUDIO_DCT_DECODER 0
++#define CONFIG_BINKAUDIO_RDFT_DECODER 0
++#define CONFIG_COOK_DECODER 0
++#define CONFIG_DCA_DECODER 0
++#define CONFIG_DSICINAUDIO_DECODER 0
++#define CONFIG_EAC3_DECODER 0
++#define CONFIG_FLAC_DECODER 0
++#define CONFIG_GSM_DECODER 0
++#define CONFIG_GSM_MS_DECODER 0
++#define CONFIG_IMC_DECODER 0
++#define CONFIG_MACE3_DECODER 0
++#define CONFIG_MACE6_DECODER 0
++#define CONFIG_MLP_DECODER 0
++#define CONFIG_MP1_DECODER 0
++#define CONFIG_MP1FLOAT_DECODER 0
++#define CONFIG_MP2_DECODER 0
++#define CONFIG_MP2FLOAT_DECODER 0
++#define CONFIG_MP3_DECODER 1
++#define CONFIG_MP3FLOAT_DECODER 0
++#define CONFIG_MP3ADU_DECODER 0
++#define CONFIG_MP3ADUFLOAT_DECODER 0
++#define CONFIG_MP3ON4_DECODER 0
++#define CONFIG_MP3ON4FLOAT_DECODER 0
++#define CONFIG_MPC7_DECODER 0
++#define CONFIG_MPC8_DECODER 0
++#define CONFIG_NELLYMOSER_DECODER 0
++#define CONFIG_QCELP_DECODER 0
++#define CONFIG_QDM2_DECODER 0
++#define CONFIG_RA_144_DECODER 0
++#define CONFIG_RA_288_DECODER 0
++#define CONFIG_SHORTEN_DECODER 0
++#define CONFIG_SIPR_DECODER 0
++#define CONFIG_SMACKAUD_DECODER 0
++#define CONFIG_SONIC_DECODER 0
++#define CONFIG_TRUEHD_DECODER 0
++#define CONFIG_TRUESPEECH_DECODER 0
++#define CONFIG_TTA_DECODER 0
++#define CONFIG_TWINVQ_DECODER 0
++#define CONFIG_VMDAUDIO_DECODER 0
++#define CONFIG_VORBIS_DECODER 1
++#define CONFIG_WAVPACK_DECODER 0
++#define CONFIG_WMAPRO_DECODER 0
++#define CONFIG_WMAV1_DECODER 0
++#define CONFIG_WMAV2_DECODER 0
++#define CONFIG_WMAVOICE_DECODER 0
++#define CONFIG_WS_SND1_DECODER 0
++#define CONFIG_PCM_ALAW_DECODER 0
++#define CONFIG_PCM_BLURAY_DECODER 0
++#define CONFIG_PCM_DVD_DECODER 0
++#define CONFIG_PCM_F32BE_DECODER 0
++#define CONFIG_PCM_F32LE_DECODER 1
++#define CONFIG_PCM_F64BE_DECODER 0
++#define CONFIG_PCM_F64LE_DECODER 0
++#define CONFIG_PCM_LXF_DECODER 0
++#define CONFIG_PCM_MULAW_DECODER 0
++#define CONFIG_PCM_S8_DECODER 0
++#define CONFIG_PCM_S16BE_DECODER 0
++#define CONFIG_PCM_S16LE_DECODER 1
++#define CONFIG_PCM_S16LE_PLANAR_DECODER 0
++#define CONFIG_PCM_S24BE_DECODER 0
++#define CONFIG_PCM_S24DAUD_DECODER 0
++#define CONFIG_PCM_S24LE_DECODER 0
++#define CONFIG_PCM_S32BE_DECODER 0
++#define CONFIG_PCM_S32LE_DECODER 0
++#define CONFIG_PCM_U8_DECODER 1
++#define CONFIG_PCM_U16BE_DECODER 0
++#define CONFIG_PCM_U16LE_DECODER 0
++#define CONFIG_PCM_U24BE_DECODER 0
++#define CONFIG_PCM_U24LE_DECODER 0
++#define CONFIG_PCM_U32BE_DECODER 0
++#define CONFIG_PCM_U32LE_DECODER 0
++#define CONFIG_PCM_ZORK_DECODER 0
++#define CONFIG_INTERPLAY_DPCM_DECODER 0
++#define CONFIG_ROQ_DPCM_DECODER 0
++#define CONFIG_SOL_DPCM_DECODER 0
++#define CONFIG_XAN_DPCM_DECODER 0
++#define CONFIG_ADPCM_4XM_DECODER 0
++#define CONFIG_ADPCM_ADX_DECODER 0
++#define CONFIG_ADPCM_CT_DECODER 0
++#define CONFIG_ADPCM_EA_DECODER 0
++#define CONFIG_ADPCM_EA_MAXIS_XA_DECODER 0
++#define CONFIG_ADPCM_EA_R1_DECODER 0
++#define CONFIG_ADPCM_EA_R2_DECODER 0
++#define CONFIG_ADPCM_EA_R3_DECODER 0
++#define CONFIG_ADPCM_EA_XAS_DECODER 0
++#define CONFIG_ADPCM_G722_DECODER 0
++#define CONFIG_ADPCM_G726_DECODER 0
++#define CONFIG_ADPCM_IMA_AMV_DECODER 0
++#define CONFIG_ADPCM_IMA_DK3_DECODER 0
++#define CONFIG_ADPCM_IMA_DK4_DECODER 0
++#define CONFIG_ADPCM_IMA_EA_EACS_DECODER 0
++#define CONFIG_ADPCM_IMA_EA_SEAD_DECODER 0
++#define CONFIG_ADPCM_IMA_ISS_DECODER 0
++#define CONFIG_ADPCM_IMA_QT_DECODER 0
++#define CONFIG_ADPCM_IMA_SMJPEG_DECODER 0
++#define CONFIG_ADPCM_IMA_WAV_DECODER 0
++#define CONFIG_ADPCM_IMA_WS_DECODER 0
++#define CONFIG_ADPCM_MS_DECODER 0
++#define CONFIG_ADPCM_SBPRO_2_DECODER 0
++#define CONFIG_ADPCM_SBPRO_3_DECODER 0
++#define CONFIG_ADPCM_SBPRO_4_DECODER 0
++#define CONFIG_ADPCM_SWF_DECODER 0
++#define CONFIG_ADPCM_THP_DECODER 0
++#define CONFIG_ADPCM_XA_DECODER 0
++#define CONFIG_ADPCM_YAMAHA_DECODER 0
++#define CONFIG_DVBSUB_DECODER 0
++#define CONFIG_DVDSUB_DECODER 0
++#define CONFIG_PGSSUB_DECODER 0
++#define CONFIG_XSUB_DECODER 0
++#define CONFIG_LIBDIRAC_DECODER 0
++#define CONFIG_LIBGSM_DECODER 0
++#define CONFIG_LIBGSM_MS_DECODER 0
++#define CONFIG_LIBOPENCORE_AMRNB_DECODER 0
++#define CONFIG_LIBOPENCORE_AMRWB_DECODER 0
++#define CONFIG_LIBOPENJPEG_DECODER 0
++#define CONFIG_LIBSCHROEDINGER_DECODER 0
++#define CONFIG_LIBSPEEX_DECODER 0
++#define CONFIG_LIBVPX_DECODER 1
++#define CONFIG_A64MULTI_ENCODER 0
++#define CONFIG_A64MULTI5_ENCODER 0
++#define CONFIG_ASV1_ENCODER 0
++#define CONFIG_ASV2_ENCODER 0
++#define CONFIG_BMP_ENCODER 0
++#define CONFIG_DNXHD_ENCODER 0
++#define CONFIG_DVVIDEO_ENCODER 0
++#define CONFIG_FFV1_ENCODER 0
++#define CONFIG_FFVHUFF_ENCODER 0
++#define CONFIG_FLASHSV_ENCODER 0
++#define CONFIG_FLV_ENCODER 0
++#define CONFIG_GIF_ENCODER 0
++#define CONFIG_H261_ENCODER 0
++#define CONFIG_H263_ENCODER 0
++#define CONFIG_H263P_ENCODER 0
++#define CONFIG_HUFFYUV_ENCODER 0
++#define CONFIG_JPEGLS_ENCODER 0
++#define CONFIG_LJPEG_ENCODER 0
++#define CONFIG_MJPEG_ENCODER 0
++#define CONFIG_MPEG1VIDEO_ENCODER 0
++#define CONFIG_MPEG2VIDEO_ENCODER 0
++#define CONFIG_MPEG4_ENCODER 0
++#define CONFIG_MSMPEG4V1_ENCODER 0
++#define CONFIG_MSMPEG4V2_ENCODER 0
++#define CONFIG_MSMPEG4V3_ENCODER 0
++#define CONFIG_PAM_ENCODER 0
++#define CONFIG_PBM_ENCODER 0
++#define CONFIG_PCX_ENCODER 0
++#define CONFIG_PGM_ENCODER 0
++#define CONFIG_PGMYUV_ENCODER 0
++#define CONFIG_PNG_ENCODER 0
++#define CONFIG_PPM_ENCODER 0
++#define CONFIG_QTRLE_ENCODER 0
++#define CONFIG_RAWVIDEO_ENCODER 0
++#define CONFIG_ROQ_ENCODER 0
++#define CONFIG_RV10_ENCODER 0
++#define CONFIG_RV20_ENCODER 0
++#define CONFIG_SGI_ENCODER 0
++#define CONFIG_SNOW_ENCODER 0
++#define CONFIG_SVQ1_ENCODER 0
++#define CONFIG_TARGA_ENCODER 0
++#define CONFIG_TIFF_ENCODER 0
++#define CONFIG_V210_ENCODER 0
++#define CONFIG_WMV1_ENCODER 0
++#define CONFIG_WMV2_ENCODER 0
++#define CONFIG_ZLIB_ENCODER 0
++#define CONFIG_ZMBV_ENCODER 0
++#define CONFIG_AAC_ENCODER 0
++#define CONFIG_AC3_ENCODER 0
++#define CONFIG_ALAC_ENCODER 0
++#define CONFIG_FLAC_ENCODER 0
++#define CONFIG_MP2_ENCODER 0
++#define CONFIG_NELLYMOSER_ENCODER 0
++#define CONFIG_RA_144_ENCODER 0
++#define CONFIG_SONIC_ENCODER 0
++#define CONFIG_SONIC_LS_ENCODER 0
++#define CONFIG_VORBIS_ENCODER 0
++#define CONFIG_WMAV1_ENCODER 0
++#define CONFIG_WMAV2_ENCODER 0
++#define CONFIG_PCM_ALAW_ENCODER 0
++#define CONFIG_PCM_F32BE_ENCODER 0
++#define CONFIG_PCM_F32LE_ENCODER 0
++#define CONFIG_PCM_F64BE_ENCODER 0
++#define CONFIG_PCM_F64LE_ENCODER 0
++#define CONFIG_PCM_MULAW_ENCODER 0
++#define CONFIG_PCM_S8_ENCODER 0
++#define CONFIG_PCM_S16BE_ENCODER 0
++#define CONFIG_PCM_S16LE_ENCODER 0
++#define CONFIG_PCM_S24BE_ENCODER 0
++#define CONFIG_PCM_S24DAUD_ENCODER 0
++#define CONFIG_PCM_S24LE_ENCODER 0
++#define CONFIG_PCM_S32BE_ENCODER 0
++#define CONFIG_PCM_S32LE_ENCODER 0
++#define CONFIG_PCM_U8_ENCODER 0
++#define CONFIG_PCM_U16BE_ENCODER 0
++#define CONFIG_PCM_U16LE_ENCODER 0
++#define CONFIG_PCM_U24BE_ENCODER 0
++#define CONFIG_PCM_U24LE_ENCODER 0
++#define CONFIG_PCM_U32BE_ENCODER 0
++#define CONFIG_PCM_U32LE_ENCODER 0
++#define CONFIG_PCM_ZORK_ENCODER 0
++#define CONFIG_ROQ_DPCM_ENCODER 0
++#define CONFIG_ADPCM_ADX_ENCODER 0
++#define CONFIG_ADPCM_G722_ENCODER 0
++#define CONFIG_ADPCM_G726_ENCODER 0
++#define CONFIG_ADPCM_IMA_QT_ENCODER 0
++#define CONFIG_ADPCM_IMA_WAV_ENCODER 0
++#define CONFIG_ADPCM_MS_ENCODER 0
++#define CONFIG_ADPCM_SWF_ENCODER 0
++#define CONFIG_ADPCM_YAMAHA_ENCODER 0
++#define CONFIG_DVBSUB_ENCODER 0
++#define CONFIG_DVDSUB_ENCODER 0
++#define CONFIG_XSUB_ENCODER 0
++#define CONFIG_LIBDIRAC_ENCODER 0
++#define CONFIG_LIBFAAC_ENCODER 0
++#define CONFIG_LIBGSM_ENCODER 0
++#define CONFIG_LIBGSM_MS_ENCODER 0
++#define CONFIG_LIBMP3LAME_ENCODER 0
++#define CONFIG_LIBOPENCORE_AMRNB_ENCODER 0
++#define CONFIG_LIBSCHROEDINGER_ENCODER 0
++#define CONFIG_LIBTHEORA_ENCODER 0
++#define CONFIG_LIBVORBIS_ENCODER 0
++#define CONFIG_LIBVPX_ENCODER 1
++#define CONFIG_LIBX264_ENCODER 0
++#define CONFIG_LIBXAVS_ENCODER 0
++#define CONFIG_LIBXVID_ENCODER 0
++#define CONFIG_H263_VAAPI_HWACCEL 0
++#define CONFIG_H264_DXVA2_HWACCEL 0
++#define CONFIG_H264_VAAPI_HWACCEL 0
++#define CONFIG_MPEG2_DXVA2_HWACCEL 0
++#define CONFIG_MPEG2_VAAPI_HWACCEL 0
++#define CONFIG_MPEG4_VAAPI_HWACCEL 0
++#define CONFIG_VC1_DXVA2_HWACCEL 0
++#define CONFIG_VC1_VAAPI_HWACCEL 0
++#define CONFIG_WMV3_DXVA2_HWACCEL 0
++#define CONFIG_WMV3_VAAPI_HWACCEL 0
++#define CONFIG_AAC_PARSER 0
++#define CONFIG_AAC_LATM_PARSER 0
++#define CONFIG_AC3_PARSER 0
++#define CONFIG_CAVSVIDEO_PARSER 0
++#define CONFIG_DCA_PARSER 0
++#define CONFIG_DIRAC_PARSER 0
++#define CONFIG_DNXHD_PARSER 0
++#define CONFIG_DVBSUB_PARSER 0
++#define CONFIG_DVDSUB_PARSER 0
++#define CONFIG_H261_PARSER 0
++#define CONFIG_H263_PARSER 0
++#define CONFIG_H264_PARSER 0
++#define CONFIG_MJPEG_PARSER 0
++#define CONFIG_MLP_PARSER 0
++#define CONFIG_MPEG4VIDEO_PARSER 0
++#define CONFIG_MPEGAUDIO_PARSER 1
++#define CONFIG_MPEGVIDEO_PARSER 0
++#define CONFIG_PNM_PARSER 0
++#define CONFIG_VC1_PARSER 0
++#define CONFIG_VP3_PARSER 0
++#define CONFIG_VP8_PARSER 0
++#define CONFIG_AAC_ADTSTOASC_BSF 0
++#define CONFIG_CHOMP_BSF 0
++#define CONFIG_DUMP_EXTRADATA_BSF 0
++#define CONFIG_H264_MP4TOANNEXB_BSF 0
++#define CONFIG_MPEG4VIDEO_ES_BSF 0
++#define CONFIG_IMX_DUMP_HEADER_BSF 0
++#define CONFIG_MJPEGA_DUMP_HEADER_BSF 0
++#define CONFIG_MP3_HEADER_COMPRESS_BSF 0
++#define CONFIG_MP3_HEADER_DECOMPRESS_BSF 0
++#define CONFIG_MOV2TEXTSUB_BSF 0
++#define CONFIG_NOISE_BSF 0
++#define CONFIG_REMOVE_EXTRADATA_BSF 0
++#define CONFIG_TEXT2MOVSUB_BSF 0
++#define CONFIG_VC1_ASFTORCV_BSF 0
++#define CONFIG_VC1_ASFTOANNEXG_BSF 0
++#define CONFIG_AAC_DEMUXER 0
++#define CONFIG_AC3_DEMUXER 0
++#define CONFIG_AEA_DEMUXER 0
++#define CONFIG_AIFF_DEMUXER 0
++#define CONFIG_AMR_DEMUXER 0
++#define CONFIG_ANM_DEMUXER 0
++#define CONFIG_APC_DEMUXER 0
++#define CONFIG_APE_DEMUXER 0
++#define CONFIG_APPLEHTTP_DEMUXER 0
++#define CONFIG_ASF_DEMUXER 0
++#define CONFIG_ASS_DEMUXER 0
++#define CONFIG_AU_DEMUXER 0
++#define CONFIG_AVI_DEMUXER 0
++#define CONFIG_AVISYNTH_DEMUXER 0
++#define CONFIG_AVS_DEMUXER 0
++#define CONFIG_BETHSOFTVID_DEMUXER 0
++#define CONFIG_BFI_DEMUXER 0
++#define CONFIG_BINK_DEMUXER 0
++#define CONFIG_C93_DEMUXER 0
++#define CONFIG_CAF_DEMUXER 0
++#define CONFIG_CAVSVIDEO_DEMUXER 0
++#define CONFIG_CDG_DEMUXER 0
++#define CONFIG_DAUD_DEMUXER 0
++#define CONFIG_DIRAC_DEMUXER 0
++#define CONFIG_DNXHD_DEMUXER 0
++#define CONFIG_DSICIN_DEMUXER 0
++#define CONFIG_DTS_DEMUXER 0
++#define CONFIG_DV_DEMUXER 0
++#define CONFIG_DXA_DEMUXER 0
++#define CONFIG_EA_DEMUXER 0
++#define CONFIG_EA_CDATA_DEMUXER 0
++#define CONFIG_EAC3_DEMUXER 0
++#define CONFIG_FFM_DEMUXER 0
++#define CONFIG_FILMSTRIP_DEMUXER 0
++#define CONFIG_FLAC_DEMUXER 0
++#define CONFIG_FLIC_DEMUXER 0
++#define CONFIG_FLV_DEMUXER 0
++#define CONFIG_FOURXM_DEMUXER 0
++#define CONFIG_G722_DEMUXER 0
++#define CONFIG_GSM_DEMUXER 0
++#define CONFIG_GXF_DEMUXER 0
++#define CONFIG_H261_DEMUXER 0
++#define CONFIG_H263_DEMUXER 0
++#define CONFIG_H264_DEMUXER 0
++#define CONFIG_IDCIN_DEMUXER 0
++#define CONFIG_IFF_DEMUXER 0
++#define CONFIG_IMAGE2_DEMUXER 0
++#define CONFIG_IMAGE2PIPE_DEMUXER 0
++#define CONFIG_INGENIENT_DEMUXER 0
++#define CONFIG_IPMOVIE_DEMUXER 0
++#define CONFIG_ISS_DEMUXER 0
++#define CONFIG_IV8_DEMUXER 0
++#define CONFIG_IVF_DEMUXER 0
++#define CONFIG_LMLM4_DEMUXER 0
++#define CONFIG_LXF_DEMUXER 0
++#define CONFIG_M4V_DEMUXER 0
++#define CONFIG_MATROSKA_DEMUXER 1
++#define CONFIG_MJPEG_DEMUXER 0
++#define CONFIG_MLP_DEMUXER 0
++#define CONFIG_MM_DEMUXER 0
++#define CONFIG_MMF_DEMUXER 0
++#define CONFIG_MOV_DEMUXER 1
++#define CONFIG_MP3_DEMUXER 1
++#define CONFIG_MPC_DEMUXER 0
++#define CONFIG_MPC8_DEMUXER 0
++#define CONFIG_MPEGPS_DEMUXER 0
++#define CONFIG_MPEGTS_DEMUXER 0
++#define CONFIG_MPEGTSRAW_DEMUXER 0
++#define CONFIG_MPEGVIDEO_DEMUXER 0
++#define CONFIG_MSNWC_TCP_DEMUXER 0
++#define CONFIG_MTV_DEMUXER 0
++#define CONFIG_MVI_DEMUXER 0
++#define CONFIG_MXF_DEMUXER 0
++#define CONFIG_NC_DEMUXER 0
++#define CONFIG_NSV_DEMUXER 0
++#define CONFIG_NUT_DEMUXER 0
++#define CONFIG_NUV_DEMUXER 0
++#define CONFIG_OGG_DEMUXER 1
++#define CONFIG_OMA_DEMUXER 0
++#define CONFIG_PCM_ALAW_DEMUXER 0
++#define CONFIG_PCM_MULAW_DEMUXER 0
++#define CONFIG_PCM_F64BE_DEMUXER 0
++#define CONFIG_PCM_F64LE_DEMUXER 0
++#define CONFIG_PCM_F32BE_DEMUXER 0
++#define CONFIG_PCM_F32LE_DEMUXER 0
++#define CONFIG_PCM_S32BE_DEMUXER 0
++#define CONFIG_PCM_S32LE_DEMUXER 0
++#define CONFIG_PCM_S24BE_DEMUXER 0
++#define CONFIG_PCM_S24LE_DEMUXER 0
++#define CONFIG_PCM_S16BE_DEMUXER 0
++#define CONFIG_PCM_S16LE_DEMUXER 0
++#define CONFIG_PCM_S8_DEMUXER 0
++#define CONFIG_PCM_U32BE_DEMUXER 0
++#define CONFIG_PCM_U32LE_DEMUXER 0
++#define CONFIG_PCM_U24BE_DEMUXER 0
++#define CONFIG_PCM_U24LE_DEMUXER 0
++#define CONFIG_PCM_U16BE_DEMUXER 0
++#define CONFIG_PCM_U16LE_DEMUXER 0
++#define CONFIG_PCM_U8_DEMUXER 0
++#define CONFIG_PVA_DEMUXER 0
++#define CONFIG_QCP_DEMUXER 0
++#define CONFIG_R3D_DEMUXER 0
++#define CONFIG_RAWVIDEO_DEMUXER 0
++#define CONFIG_RL2_DEMUXER 0
++#define CONFIG_RM_DEMUXER 0
++#define CONFIG_ROQ_DEMUXER 0
++#define CONFIG_RPL_DEMUXER 0
++#define CONFIG_RSO_DEMUXER 0
++#define CONFIG_RTP_DEMUXER 0
++#define CONFIG_RTSP_DEMUXER 0
++#define CONFIG_SAP_DEMUXER 0
++#define CONFIG_SDP_DEMUXER 0
++#define CONFIG_SEGAFILM_DEMUXER 0
++#define CONFIG_SHORTEN_DEMUXER 0
++#define CONFIG_SIFF_DEMUXER 0
++#define CONFIG_SMACKER_DEMUXER 0
++#define CONFIG_SOL_DEMUXER 0
++#define CONFIG_SOX_DEMUXER 0
++#define CONFIG_SRT_DEMUXER 0
++#define CONFIG_STR_DEMUXER 0
++#define CONFIG_SWF_DEMUXER 0
++#define CONFIG_THP_DEMUXER 0
++#define CONFIG_TIERTEXSEQ_DEMUXER 0
++#define CONFIG_TMV_DEMUXER 0
++#define CONFIG_TRUEHD_DEMUXER 0
++#define CONFIG_TTA_DEMUXER 0
++#define CONFIG_TXD_DEMUXER 0
++#define CONFIG_TTY_DEMUXER 0
++#define CONFIG_VC1_DEMUXER 0
++#define CONFIG_VC1T_DEMUXER 0
++#define CONFIG_VMD_DEMUXER 0
++#define CONFIG_VOC_DEMUXER 0
++#define CONFIG_VQF_DEMUXER 0
++#define CONFIG_W64_DEMUXER 0
++#define CONFIG_WAV_DEMUXER 1
++#define CONFIG_WC3_DEMUXER 0
++#define CONFIG_WEBP_DEMUXER 0
++#define CONFIG_WSAUD_DEMUXER 0
++#define CONFIG_WSVQA_DEMUXER 0
++#define CONFIG_WV_DEMUXER 0
++#define CONFIG_XA_DEMUXER 0
++#define CONFIG_YOP_DEMUXER 0
++#define CONFIG_YUV4MPEGPIPE_DEMUXER 0
++#define CONFIG_LIBNUT_DEMUXER 0
++#define CONFIG_A64_MUXER 0
++#define CONFIG_AC3_MUXER 0
++#define CONFIG_ADTS_MUXER 0
++#define CONFIG_AIFF_MUXER 0
++#define CONFIG_AMR_MUXER 0
++#define CONFIG_ASF_MUXER 0
++#define CONFIG_ASS_MUXER 0
++#define CONFIG_ASF_STREAM_MUXER 0
++#define CONFIG_AU_MUXER 0
++#define CONFIG_AVI_MUXER 0
++#define CONFIG_AVM2_MUXER 0
++#define CONFIG_CAVSVIDEO_MUXER 0
++#define CONFIG_CRC_MUXER 0
++#define CONFIG_DAUD_MUXER 0
++#define CONFIG_DIRAC_MUXER 0
++#define CONFIG_DNXHD_MUXER 0
++#define CONFIG_DTS_MUXER 0
++#define CONFIG_DV_MUXER 0
++#define CONFIG_EAC3_MUXER 0
++#define CONFIG_FFM_MUXER 0
++#define CONFIG_FILMSTRIP_MUXER 0
++#define CONFIG_FLAC_MUXER 0
++#define CONFIG_FLV_MUXER 0
++#define CONFIG_FRAMECRC_MUXER 0
++#define CONFIG_FRAMEMD5_MUXER 0
++#define CONFIG_G722_MUXER 0
++#define CONFIG_GIF_MUXER 0
++#define CONFIG_GXF_MUXER 0
++#define CONFIG_H261_MUXER 0
++#define CONFIG_H263_MUXER 0
++#define CONFIG_H264_MUXER 0
++#define CONFIG_IMAGE2_MUXER 0
++#define CONFIG_IMAGE2PIPE_MUXER 0
++#define CONFIG_IPOD_MUXER 0
++#define CONFIG_M4V_MUXER 0
++#define CONFIG_MD5_MUXER 0
++#define CONFIG_MATROSKA_MUXER 0
++#define CONFIG_MATROSKA_AUDIO_MUXER 0
++#define CONFIG_MJPEG_MUXER 0
++#define CONFIG_MLP_MUXER 0
++#define CONFIG_MMF_MUXER 0
++#define CONFIG_MOV_MUXER 0
++#define CONFIG_MP2_MUXER 0
++#define CONFIG_MP3_MUXER 0
++#define CONFIG_MP4_MUXER 0
++#define CONFIG_MPEG1SYSTEM_MUXER 0
++#define CONFIG_MPEG1VCD_MUXER 0
++#define CONFIG_MPEG1VIDEO_MUXER 0
++#define CONFIG_MPEG2DVD_MUXER 0
++#define CONFIG_MPEG2SVCD_MUXER 0
++#define CONFIG_MPEG2VIDEO_MUXER 0
++#define CONFIG_MPEG2VOB_MUXER 0
++#define CONFIG_MPEGTS_MUXER 0
++#define CONFIG_MPJPEG_MUXER 0
++#define CONFIG_MXF_MUXER 0
++#define CONFIG_MXF_D10_MUXER 0
++#define CONFIG_NULL_MUXER 0
++#define CONFIG_NUT_MUXER 0
++#define CONFIG_OGG_MUXER 0
++#define CONFIG_PCM_ALAW_MUXER 0
++#define CONFIG_PCM_MULAW_MUXER 0
++#define CONFIG_PCM_F64BE_MUXER 0
++#define CONFIG_PCM_F64LE_MUXER 0
++#define CONFIG_PCM_F32BE_MUXER 0
++#define CONFIG_PCM_F32LE_MUXER 0
++#define CONFIG_PCM_S32BE_MUXER 0
++#define CONFIG_PCM_S32LE_MUXER 0
++#define CONFIG_PCM_S24BE_MUXER 0
++#define CONFIG_PCM_S24LE_MUXER 0
++#define CONFIG_PCM_S16BE_MUXER 0
++#define CONFIG_PCM_S16LE_MUXER 0
++#define CONFIG_PCM_S8_MUXER 0
++#define CONFIG_PCM_U32BE_MUXER 0
++#define CONFIG_PCM_U32LE_MUXER 0
++#define CONFIG_PCM_U24BE_MUXER 0
++#define CONFIG_PCM_U24LE_MUXER 0
++#define CONFIG_PCM_U16BE_MUXER 0
++#define CONFIG_PCM_U16LE_MUXER 0
++#define CONFIG_PCM_U8_MUXER 0
++#define CONFIG_PSP_MUXER 0
++#define CONFIG_RAWVIDEO_MUXER 0
++#define CONFIG_RM_MUXER 0
++#define CONFIG_ROQ_MUXER 0
++#define CONFIG_RSO_MUXER 0
++#define CONFIG_RTP_MUXER 0
++#define CONFIG_RTSP_MUXER 0
++#define CONFIG_SAP_MUXER 0
++#define CONFIG_SOX_MUXER 0
++#define CONFIG_SPDIF_MUXER 0
++#define CONFIG_SRT_MUXER 0
++#define CONFIG_SWF_MUXER 0
++#define CONFIG_TG2_MUXER 0
++#define CONFIG_TGP_MUXER 0
++#define CONFIG_TRUEHD_MUXER 0
++#define CONFIG_VC1T_MUXER 0
++#define CONFIG_VOC_MUXER 0
++#define CONFIG_WAV_MUXER 0
++#define CONFIG_WEBM_MUXER 0
++#define CONFIG_WEBP_MUXER 0
++#define CONFIG_YUV4MPEGPIPE_MUXER 0
++#define CONFIG_LIBNUT_MUXER 0
++#define CONFIG_ANULL_FILTER 0
++#define CONFIG_ANULLSRC_FILTER 0
++#define CONFIG_ANULLSINK_FILTER 0
++#define CONFIG_ASPECT_FILTER 0
++#define CONFIG_BLACKFRAME_FILTER 0
++#define CONFIG_CROP_FILTER 0
++#define CONFIG_CROPDETECT_FILTER 0
++#define CONFIG_DRAWBOX_FILTER 0
++#define CONFIG_FIFO_FILTER 0
++#define CONFIG_FORMAT_FILTER 0
++#define CONFIG_FREI0R_FILTER 0
++#define CONFIG_HFLIP_FILTER 0
++#define CONFIG_NOFORMAT_FILTER 0
++#define CONFIG_NULL_FILTER 0
++#define CONFIG_OCV_SMOOTH_FILTER 0
++#define CONFIG_PAD_FILTER 0
++#define CONFIG_PIXDESCTEST_FILTER 0
++#define CONFIG_PIXELASPECT_FILTER 0
++#define CONFIG_SCALE_FILTER 0
++#define CONFIG_SETPTS_FILTER 0
++#define CONFIG_SETTB_FILTER 0
++#define CONFIG_SLICIFY_FILTER 0
++#define CONFIG_TRANSPOSE_FILTER 0
++#define CONFIG_UNSHARP_FILTER 0
++#define CONFIG_VFLIP_FILTER 0
++#define CONFIG_YADIF_FILTER 0
++#define CONFIG_BUFFER_FILTER 0
++#define CONFIG_COLOR_FILTER 0
++#define CONFIG_NULLSRC_FILTER 0
++#define CONFIG_NULLSINK_FILTER 0
++#define CONFIG_CONCAT_PROTOCOL 0
++#define CONFIG_FILE_PROTOCOL 0
++#define CONFIG_GOPHER_PROTOCOL 0
++#define CONFIG_HTTP_PROTOCOL 0
++#define CONFIG_MMSH_PROTOCOL 0
++#define CONFIG_MMST_PROTOCOL 0
++#define CONFIG_MD5_PROTOCOL 0
++#define CONFIG_PIPE_PROTOCOL 0
++#define CONFIG_RTMP_PROTOCOL 0
++#define CONFIG_RTMPT_PROTOCOL 0
++#define CONFIG_RTMPE_PROTOCOL 0
++#define CONFIG_RTMPTE_PROTOCOL 0
++#define CONFIG_RTMPS_PROTOCOL 0
++#define CONFIG_RTP_PROTOCOL 0
++#define CONFIG_TCP_PROTOCOL 0
++#define CONFIG_UDP_PROTOCOL 0
++#define CONFIG_ALSA_INDEV 0
++#define CONFIG_BKTR_INDEV 0
++#define CONFIG_DV1394_INDEV 0
++#define CONFIG_JACK_INDEV 0
++#define CONFIG_OSS_INDEV 0
++#define CONFIG_V4L2_INDEV 0
++#define CONFIG_V4L_INDEV 0
++#define CONFIG_VFWCAP_INDEV 0
++#define CONFIG_X11_GRAB_DEVICE_INDEV 0
++#define CONFIG_LIBDC1394_INDEV 0
++#define CONFIG_ALSA_OUTDEV 0
++#define CONFIG_OSS_OUTDEV 0
++#endif /* FFMPEG_CONFIG_H */
diff --git a/www/chromium/files/patch-third_party__ffmpeg__config__Chrome__freebsd__x64__config.h b/www/chromium/files/patch-third_party__ffmpeg__config__Chrome__freebsd__x64__config.h
new file mode 100644
index 000000000000..9a6a0222378a
--- /dev/null
+++ b/www/chromium/files/patch-third_party__ffmpeg__config__Chrome__freebsd__x64__config.h
@@ -0,0 +1,963 @@
+--- ./third_party/ffmpeg/config/Chrome/freebsd/x64/config.h.orig 2010-12-20 20:15:08.000000000 +0100
++++ ./third_party/ffmpeg/config/Chrome/freebsd/x64/config.h 2010-12-20 20:15:08.000000000 +0100
+@@ -0,0 +1,960 @@
++/* Automatically generated by configure - do not modify! */
++#ifndef FFMPEG_CONFIG_H
++#define FFMPEG_CONFIG_H
++#define FFMPEG_CONFIGURATION "--disable-everything --disable-network --disable-bzlib --disable-zlib --disable-swscale --disable-amd3dnow --disable-amd3dnowext --enable-shared --enable-libvpx --enable-decoder='theora,vorbis,libvpx,pcm_u8,pcm_s16le,pcm_f32le,aac,h264,mp3' --enable-encoder=libvpx --enable-demuxer='ogg,matroska,wav,mp3,mov' --enable-parser=mpegaudio --extra-ldflags=-L../../libvpx/linux64/usr/local/lib"
++#define FFMPEG_LICENSE "LGPL version 2.1 or later"
++#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
++#define CC_TYPE "gcc" /* rene: what about clang? does $(CC) work? */
++#define CC_VERSION __VERSION__
++#define restrict restrict
++#define ASMALIGN(ZEROBITS) ".p2align " #ZEROBITS "\n\t"
++#define EXTERN_PREFIX ""
++#define EXTERN_ASM
++#define SLIBSUF ".so"
++#define ARCH_ALPHA 0
++#define ARCH_ARM 0
++#define ARCH_AVR32 0
++#define ARCH_AVR32_AP 0
++#define ARCH_AVR32_UC 0
++#define ARCH_BFIN 0
++#define ARCH_IA64 0
++#define ARCH_M68K 0
++#define ARCH_MIPS 0
++#define ARCH_MIPS64 0
++#define ARCH_PARISC 0
++#define ARCH_PPC 0
++#define ARCH_PPC64 0
++#define ARCH_S390 0
++#define ARCH_SH4 0
++#define ARCH_SPARC 0
++#define ARCH_SPARC64 0
++#define ARCH_TOMI 0
++#define ARCH_X86 1
++#define ARCH_X86_32 0
++#define ARCH_X86_64 1
++#define HAVE_ALTIVEC 0
++#define HAVE_AMD3DNOW 0
++#define HAVE_AMD3DNOWEXT 0
++#define HAVE_ARMV5TE 0
++#define HAVE_ARMV6 0
++#define HAVE_ARMV6T2 0
++#define HAVE_ARMVFP 0
++#define HAVE_IWMMXT 0
++#define HAVE_MMI 0
++#define HAVE_MMX 1
++#define HAVE_MMX2 1
++#define HAVE_NEON 0
++#define HAVE_PPC4XX 0
++#define HAVE_SSE 1
++#define HAVE_SSSE3 1
++#define HAVE_VIS 0
++#define HAVE_BIGENDIAN 0
++#define HAVE_FAST_UNALIGNED 1
++#define HAVE_PTHREADS 1
++#define HAVE_W32THREADS 0
++#define HAVE_ALIGNED_STACK 1
++#define HAVE_ALSA_ASOUNDLIB_H 0
++#define HAVE_ALTIVEC_H 0
++#define HAVE_ARPA_INET_H 0
++#define HAVE_ATTRIBUTE_MAY_ALIAS 1
++#define HAVE_ATTRIBUTE_PACKED 1
++#define HAVE_BSWAP 1
++#define HAVE_CLOSESOCKET 0
++#define HAVE_CMOV 1
++#define HAVE_CONIO_H 0
++#define HAVE_DCBZL 0
++#define HAVE_DEV_BKTR_IOCTL_BT848_H 0
++#define HAVE_DEV_BKTR_IOCTL_METEOR_H 0
++#define HAVE_DEV_IC_BT8XX_H 0
++#define HAVE_DEV_VIDEO_METEOR_IOCTL_METEOR_H 0
++#define HAVE_DEV_VIDEO_BKTR_IOCTL_BT848_H 0
++#define HAVE_DLFCN_H 1
++#define HAVE_DLOPEN 1
++#define HAVE_DOS_PATHS 0
++#define HAVE_EBP_AVAILABLE 1
++#define HAVE_EBX_AVAILABLE 1
++#define HAVE_EXP2 1
++#define HAVE_EXP2F 1
++#define HAVE_FAST_64BIT 1
++#define HAVE_FAST_CLZ 1
++#define HAVE_FAST_CMOV 1
++#define HAVE_FCNTL 1
++#define HAVE_FORK 1
++#define HAVE_GETADDRINFO 1
++#define HAVE_GETHRTIME 0
++#define HAVE_GETPROCESSMEMORYINFO 0
++#define HAVE_GETPROCESSTIMES 0
++#define HAVE_GETRUSAGE 1
++#define HAVE_GNU_AS 1
++#define HAVE_STRUCT_RUSAGE_RU_MAXRSS 1
++#define HAVE_IBM_ASM 0
++#define HAVE_INET_ATON 1
++#define HAVE_INLINE_ASM 1
++#define HAVE_ISATTY 1
++#define HAVE_LDBRX 0
++#define HAVE_LIBDC1394_1 0
++#define HAVE_LIBDC1394_2 0
++#define HAVE_LLRINT 1
++#define HAVE_LLRINTF 1
++#define HAVE_LOCAL_ALIGNED_16 1
++#define HAVE_LOCAL_ALIGNED_8 1
++#define HAVE_LOG2 0
++#define HAVE_LOG2F 0
++#define HAVE_LOONGSON 0
++#define HAVE_LRINT 1
++#define HAVE_LRINTF 1
++#define HAVE_LZO1X_999_COMPRESS 0
++#define HAVE_MACHINE_IOCTL_BT848_H 0
++#define HAVE_MACHINE_IOCTL_METEOR_H 0
++#define HAVE_MALLOC_H 0
++#define HAVE_MEMALIGN 0
++#define HAVE_MKSTEMP 1
++#define HAVE_PLD 0
++#define HAVE_POSIX_MEMALIGN 1
++#define HAVE_ROUND 1
++#define HAVE_ROUNDF 1
++#define HAVE_SDL 0
++#define HAVE_SDL_VIDEO_SIZE 0
++#define HAVE_SETMODE 0
++#define HAVE_SOCKLEN_T 0
++#define HAVE_SOUNDCARD_H 0
++#define HAVE_POLL_H 1
++#define HAVE_SETRLIMIT 1
++#define HAVE_STRERROR_R 1
++#define HAVE_STRTOK_R 1
++#define HAVE_STRUCT_ADDRINFO 0
++#define HAVE_STRUCT_IPV6_MREQ 0
++#define HAVE_STRUCT_SOCKADDR_IN6 0
++#define HAVE_STRUCT_SOCKADDR_SA_LEN 0
++#define HAVE_STRUCT_SOCKADDR_STORAGE 0
++#define HAVE_SYMVER 0
++#define HAVE_SYMVER_GNU_ASM 1
++#define HAVE_SYMVER_ASM_LABEL 0
++#define HAVE_SYS_MMAN_H 1
++#define HAVE_SYS_RESOURCE_H 1
++#define HAVE_SYS_SELECT_H 1
++#define HAVE_SYS_SOUNDCARD_H 1
++#define HAVE_SYS_VIDEOIO_H 0
++#define HAVE_TEN_OPERANDS 1
++#define HAVE_TERMIOS_H 1
++#define HAVE_THREADS 1
++#define HAVE_TRUNCF 1
++#define HAVE_VFP_ARGS 0
++#define HAVE_VIRTUALALLOC 0
++#define HAVE_WINSOCK2_H 0
++#define HAVE_XFORM_ASM 0
++#define HAVE_XMM_CLOBBERS 1
++#define HAVE_YASM 1
++#define CONFIG_BSFS 0
++#define CONFIG_DECODERS 1
++#define CONFIG_DEMUXERS 1
++#define CONFIG_ENCODERS 1
++#define CONFIG_FILTERS 0
++#define CONFIG_HWACCELS 0
++#define CONFIG_INDEVS 0
++#define CONFIG_MUXERS 0
++#define CONFIG_OUTDEVS 0
++#define CONFIG_PARSERS 1
++#define CONFIG_PROTOCOLS 1
++#define CONFIG_AANDCT 0
++#define CONFIG_AVCODEC 1
++#define CONFIG_AVCORE 1
++#define CONFIG_AVDEVICE 1
++#define CONFIG_AVFILTER 1
++#define CONFIG_AVFORMAT 1
++#define CONFIG_AVISYNTH 0
++#define CONFIG_BZLIB 0
++#define CONFIG_DCT 0
++#define CONFIG_DOC 0
++#define CONFIG_DWT 0
++#define CONFIG_DXVA2 0
++#define CONFIG_FASTDIV 1
++#define CONFIG_FFMPEG 0
++#define CONFIG_FFPLAY 0
++#define CONFIG_FFPROBE 1
++#define CONFIG_FFSERVER 0
++#define CONFIG_FFT 1
++#define CONFIG_FREI0R 0
++#define CONFIG_GOLOMB 1
++#define CONFIG_GPL 0
++#define CONFIG_GRAY 0
++#define CONFIG_H264DSP 1
++#define CONFIG_H264PRED 1
++#define CONFIG_HARDCODED_TABLES 0
++#define CONFIG_HUFFMAN 0
++#define CONFIG_LIBDC1394 0
++#define CONFIG_LIBDIRAC 0
++#define CONFIG_LIBFAAC 0
++#define CONFIG_LIBGSM 0
++#define CONFIG_LIBMP3LAME 0
++#define CONFIG_LIBNUT 0
++#define CONFIG_LIBOPENCORE_AMRNB 0
++#define CONFIG_LIBOPENCORE_AMRWB 0
++#define CONFIG_LIBOPENCV 0
++#define CONFIG_LIBOPENJPEG 0
++#define CONFIG_LIBRTMP 0
++#define CONFIG_LIBSCHROEDINGER 0
++#define CONFIG_LIBSPEEX 0
++#define CONFIG_LIBTHEORA 0
++#define CONFIG_LIBVORBIS 0
++#define CONFIG_LIBVPX 1
++#define CONFIG_LIBX264 0
++#define CONFIG_LIBXAVS 0
++#define CONFIG_LIBXVID 0
++#define CONFIG_LPC 0
++#define CONFIG_LSP 0
++#define CONFIG_MDCT 1
++#define CONFIG_MEMALIGN_HACK 0
++#define CONFIG_MLIB 0
++#define CONFIG_MPEGAUDIO_HP 1
++#define CONFIG_NETWORK 0
++#define CONFIG_NONFREE 0
++#define CONFIG_PIC 1
++#define CONFIG_POSTPROC 0
++#define CONFIG_RDFT 1
++#define CONFIG_RTPDEC 0
++#define CONFIG_RUNTIME_CPUDETECT 0
++#define CONFIG_SHARED 1
++#define CONFIG_SMALL 0
++#define CONFIG_SRAM 0
++#define CONFIG_STATIC 1
++#define CONFIG_SWSCALE 0
++#define CONFIG_SWSCALE_ALPHA 1
++#define CONFIG_VAAPI 0
++#define CONFIG_VDPAU 0
++#define CONFIG_VERSION3 0
++#define CONFIG_X11GRAB 0
++#define CONFIG_ZLIB 0
++#define CONFIG_AVUTIL 1
++#define CONFIG_GPLV3 0
++#define CONFIG_LGPLV3 0
++#define CONFIG_AASC_DECODER 0
++#define CONFIG_AMV_DECODER 0
++#define CONFIG_ANM_DECODER 0
++#define CONFIG_ANSI_DECODER 0
++#define CONFIG_ASV1_DECODER 0
++#define CONFIG_ASV2_DECODER 0
++#define CONFIG_AURA_DECODER 0
++#define CONFIG_AURA2_DECODER 0
++#define CONFIG_AVS_DECODER 0
++#define CONFIG_BETHSOFTVID_DECODER 0
++#define CONFIG_BFI_DECODER 0
++#define CONFIG_BINK_DECODER 0
++#define CONFIG_BMP_DECODER 0
++#define CONFIG_C93_DECODER 0
++#define CONFIG_CAVS_DECODER 0
++#define CONFIG_CDGRAPHICS_DECODER 0
++#define CONFIG_CINEPAK_DECODER 0
++#define CONFIG_CLJR_DECODER 0
++#define CONFIG_CSCD_DECODER 0
++#define CONFIG_CYUV_DECODER 0
++#define CONFIG_DNXHD_DECODER 0
++#define CONFIG_DPX_DECODER 0
++#define CONFIG_DSICINVIDEO_DECODER 0
++#define CONFIG_DVVIDEO_DECODER 0
++#define CONFIG_DXA_DECODER 0
++#define CONFIG_EACMV_DECODER 0
++#define CONFIG_EAMAD_DECODER 0
++#define CONFIG_EATGQ_DECODER 0
++#define CONFIG_EATGV_DECODER 0
++#define CONFIG_EATQI_DECODER 0
++#define CONFIG_EIGHTBPS_DECODER 0
++#define CONFIG_EIGHTSVX_EXP_DECODER 0
++#define CONFIG_EIGHTSVX_FIB_DECODER 0
++#define CONFIG_ESCAPE124_DECODER 0
++#define CONFIG_FFV1_DECODER 0
++#define CONFIG_FFVHUFF_DECODER 0
++#define CONFIG_FLASHSV_DECODER 0
++#define CONFIG_FLIC_DECODER 0
++#define CONFIG_FLV_DECODER 0
++#define CONFIG_FOURXM_DECODER 0
++#define CONFIG_FRAPS_DECODER 0
++#define CONFIG_FRWU_DECODER 0
++#define CONFIG_GIF_DECODER 0
++#define CONFIG_H261_DECODER 0
++#define CONFIG_H263_DECODER 0
++#define CONFIG_H263I_DECODER 0
++#define CONFIG_H264_DECODER 1
++#define CONFIG_H264_VDPAU_DECODER 0
++#define CONFIG_HUFFYUV_DECODER 0
++#define CONFIG_IDCIN_DECODER 0
++#define CONFIG_IFF_BYTERUN1_DECODER 0
++#define CONFIG_IFF_ILBM_DECODER 0
++#define CONFIG_INDEO2_DECODER 0
++#define CONFIG_INDEO3_DECODER 0
++#define CONFIG_INDEO5_DECODER 0
++#define CONFIG_INTERPLAY_VIDEO_DECODER 0
++#define CONFIG_JPEGLS_DECODER 0
++#define CONFIG_KGV1_DECODER 0
++#define CONFIG_KMVC_DECODER 0
++#define CONFIG_LOCO_DECODER 0
++#define CONFIG_MDEC_DECODER 0
++#define CONFIG_MIMIC_DECODER 0
++#define CONFIG_MJPEG_DECODER 0
++#define CONFIG_MJPEGB_DECODER 0
++#define CONFIG_MMVIDEO_DECODER 0
++#define CONFIG_MOTIONPIXELS_DECODER 0
++#define CONFIG_MPEG_XVMC_DECODER 0
++#define CONFIG_MPEG1VIDEO_DECODER 0
++#define CONFIG_MPEG2VIDEO_DECODER 0
++#define CONFIG_MPEG4_DECODER 0
++#define CONFIG_MPEG4_VDPAU_DECODER 0
++#define CONFIG_MPEGVIDEO_DECODER 0
++#define CONFIG_MPEG_VDPAU_DECODER 0
++#define CONFIG_MPEG1_VDPAU_DECODER 0
++#define CONFIG_MSMPEG4V1_DECODER 0
++#define CONFIG_MSMPEG4V2_DECODER 0
++#define CONFIG_MSMPEG4V3_DECODER 0
++#define CONFIG_MSRLE_DECODER 0
++#define CONFIG_MSVIDEO1_DECODER 0
++#define CONFIG_MSZH_DECODER 0
++#define CONFIG_NUV_DECODER 0
++#define CONFIG_PAM_DECODER 0
++#define CONFIG_PBM_DECODER 0
++#define CONFIG_PCX_DECODER 0
++#define CONFIG_PGM_DECODER 0
++#define CONFIG_PGMYUV_DECODER 0
++#define CONFIG_PICTOR_DECODER 0
++#define CONFIG_PNG_DECODER 0
++#define CONFIG_PPM_DECODER 0
++#define CONFIG_PTX_DECODER 0
++#define CONFIG_QDRAW_DECODER 0
++#define CONFIG_QPEG_DECODER 0
++#define CONFIG_QTRLE_DECODER 0
++#define CONFIG_R10K_DECODER 0
++#define CONFIG_R210_DECODER 0
++#define CONFIG_RAWVIDEO_DECODER 0
++#define CONFIG_RL2_DECODER 0
++#define CONFIG_ROQ_DECODER 0
++#define CONFIG_RPZA_DECODER 0
++#define CONFIG_RV10_DECODER 0
++#define CONFIG_RV20_DECODER 0
++#define CONFIG_RV30_DECODER 0
++#define CONFIG_RV40_DECODER 0
++#define CONFIG_SGI_DECODER 0
++#define CONFIG_SMACKER_DECODER 0
++#define CONFIG_SMC_DECODER 0
++#define CONFIG_SNOW_DECODER 0
++#define CONFIG_SP5X_DECODER 0
++#define CONFIG_SUNRAST_DECODER 0
++#define CONFIG_SVQ1_DECODER 0
++#define CONFIG_SVQ3_DECODER 0
++#define CONFIG_TARGA_DECODER 0
++#define CONFIG_THEORA_DECODER 1
++#define CONFIG_THP_DECODER 0
++#define CONFIG_TIERTEXSEQVIDEO_DECODER 0
++#define CONFIG_TIFF_DECODER 0
++#define CONFIG_TMV_DECODER 0
++#define CONFIG_TRUEMOTION1_DECODER 0
++#define CONFIG_TRUEMOTION2_DECODER 0
++#define CONFIG_TSCC_DECODER 0
++#define CONFIG_TXD_DECODER 0
++#define CONFIG_ULTI_DECODER 0
++#define CONFIG_V210_DECODER 0
++#define CONFIG_V210X_DECODER 0
++#define CONFIG_VB_DECODER 0
++#define CONFIG_VC1_DECODER 0
++#define CONFIG_VC1_VDPAU_DECODER 0
++#define CONFIG_VCR1_DECODER 0
++#define CONFIG_VMDVIDEO_DECODER 0
++#define CONFIG_VMNC_DECODER 0
++#define CONFIG_VP3_DECODER 1
++#define CONFIG_VP5_DECODER 0
++#define CONFIG_VP6_DECODER 0
++#define CONFIG_VP6A_DECODER 0
++#define CONFIG_VP6F_DECODER 0
++#define CONFIG_VP8_DECODER 0
++#define CONFIG_VQA_DECODER 0
++#define CONFIG_WMV1_DECODER 0
++#define CONFIG_WMV2_DECODER 0
++#define CONFIG_WMV3_DECODER 0
++#define CONFIG_WMV3_VDPAU_DECODER 0
++#define CONFIG_WNV1_DECODER 0
++#define CONFIG_XAN_WC3_DECODER 0
++#define CONFIG_XL_DECODER 0
++#define CONFIG_YOP_DECODER 0
++#define CONFIG_ZLIB_DECODER 0
++#define CONFIG_ZMBV_DECODER 0
++#define CONFIG_AAC_DECODER 1
++#define CONFIG_AAC_LATM_DECODER 0
++#define CONFIG_AC3_DECODER 0
++#define CONFIG_ALAC_DECODER 0
++#define CONFIG_ALS_DECODER 0
++#define CONFIG_AMRNB_DECODER 0
++#define CONFIG_APE_DECODER 0
++#define CONFIG_ATRAC1_DECODER 0
++#define CONFIG_ATRAC3_DECODER 0
++#define CONFIG_BINKAUDIO_DCT_DECODER 0
++#define CONFIG_BINKAUDIO_RDFT_DECODER 0
++#define CONFIG_COOK_DECODER 0
++#define CONFIG_DCA_DECODER 0
++#define CONFIG_DSICINAUDIO_DECODER 0
++#define CONFIG_EAC3_DECODER 0
++#define CONFIG_FLAC_DECODER 0
++#define CONFIG_GSM_DECODER 0
++#define CONFIG_GSM_MS_DECODER 0
++#define CONFIG_IMC_DECODER 0
++#define CONFIG_MACE3_DECODER 0
++#define CONFIG_MACE6_DECODER 0
++#define CONFIG_MLP_DECODER 0
++#define CONFIG_MP1_DECODER 0
++#define CONFIG_MP1FLOAT_DECODER 0
++#define CONFIG_MP2_DECODER 0
++#define CONFIG_MP2FLOAT_DECODER 0
++#define CONFIG_MP3_DECODER 1
++#define CONFIG_MP3FLOAT_DECODER 0
++#define CONFIG_MP3ADU_DECODER 0
++#define CONFIG_MP3ADUFLOAT_DECODER 0
++#define CONFIG_MP3ON4_DECODER 0
++#define CONFIG_MP3ON4FLOAT_DECODER 0
++#define CONFIG_MPC7_DECODER 0
++#define CONFIG_MPC8_DECODER 0
++#define CONFIG_NELLYMOSER_DECODER 0
++#define CONFIG_QCELP_DECODER 0
++#define CONFIG_QDM2_DECODER 0
++#define CONFIG_RA_144_DECODER 0
++#define CONFIG_RA_288_DECODER 0
++#define CONFIG_SHORTEN_DECODER 0
++#define CONFIG_SIPR_DECODER 0
++#define CONFIG_SMACKAUD_DECODER 0
++#define CONFIG_SONIC_DECODER 0
++#define CONFIG_TRUEHD_DECODER 0
++#define CONFIG_TRUESPEECH_DECODER 0
++#define CONFIG_TTA_DECODER 0
++#define CONFIG_TWINVQ_DECODER 0
++#define CONFIG_VMDAUDIO_DECODER 0
++#define CONFIG_VORBIS_DECODER 1
++#define CONFIG_WAVPACK_DECODER 0
++#define CONFIG_WMAPRO_DECODER 0
++#define CONFIG_WMAV1_DECODER 0
++#define CONFIG_WMAV2_DECODER 0
++#define CONFIG_WMAVOICE_DECODER 0
++#define CONFIG_WS_SND1_DECODER 0
++#define CONFIG_PCM_ALAW_DECODER 0
++#define CONFIG_PCM_BLURAY_DECODER 0
++#define CONFIG_PCM_DVD_DECODER 0
++#define CONFIG_PCM_F32BE_DECODER 0
++#define CONFIG_PCM_F32LE_DECODER 1
++#define CONFIG_PCM_F64BE_DECODER 0
++#define CONFIG_PCM_F64LE_DECODER 0
++#define CONFIG_PCM_LXF_DECODER 0
++#define CONFIG_PCM_MULAW_DECODER 0
++#define CONFIG_PCM_S8_DECODER 0
++#define CONFIG_PCM_S16BE_DECODER 0
++#define CONFIG_PCM_S16LE_DECODER 1
++#define CONFIG_PCM_S16LE_PLANAR_DECODER 0
++#define CONFIG_PCM_S24BE_DECODER 0
++#define CONFIG_PCM_S24DAUD_DECODER 0
++#define CONFIG_PCM_S24LE_DECODER 0
++#define CONFIG_PCM_S32BE_DECODER 0
++#define CONFIG_PCM_S32LE_DECODER 0
++#define CONFIG_PCM_U8_DECODER 1
++#define CONFIG_PCM_U16BE_DECODER 0
++#define CONFIG_PCM_U16LE_DECODER 0
++#define CONFIG_PCM_U24BE_DECODER 0
++#define CONFIG_PCM_U24LE_DECODER 0
++#define CONFIG_PCM_U32BE_DECODER 0
++#define CONFIG_PCM_U32LE_DECODER 0
++#define CONFIG_PCM_ZORK_DECODER 0
++#define CONFIG_INTERPLAY_DPCM_DECODER 0
++#define CONFIG_ROQ_DPCM_DECODER 0
++#define CONFIG_SOL_DPCM_DECODER 0
++#define CONFIG_XAN_DPCM_DECODER 0
++#define CONFIG_ADPCM_4XM_DECODER 0
++#define CONFIG_ADPCM_ADX_DECODER 0
++#define CONFIG_ADPCM_CT_DECODER 0
++#define CONFIG_ADPCM_EA_DECODER 0
++#define CONFIG_ADPCM_EA_MAXIS_XA_DECODER 0
++#define CONFIG_ADPCM_EA_R1_DECODER 0
++#define CONFIG_ADPCM_EA_R2_DECODER 0
++#define CONFIG_ADPCM_EA_R3_DECODER 0
++#define CONFIG_ADPCM_EA_XAS_DECODER 0
++#define CONFIG_ADPCM_G722_DECODER 0
++#define CONFIG_ADPCM_G726_DECODER 0
++#define CONFIG_ADPCM_IMA_AMV_DECODER 0
++#define CONFIG_ADPCM_IMA_DK3_DECODER 0
++#define CONFIG_ADPCM_IMA_DK4_DECODER 0
++#define CONFIG_ADPCM_IMA_EA_EACS_DECODER 0
++#define CONFIG_ADPCM_IMA_EA_SEAD_DECODER 0
++#define CONFIG_ADPCM_IMA_ISS_DECODER 0
++#define CONFIG_ADPCM_IMA_QT_DECODER 0
++#define CONFIG_ADPCM_IMA_SMJPEG_DECODER 0
++#define CONFIG_ADPCM_IMA_WAV_DECODER 0
++#define CONFIG_ADPCM_IMA_WS_DECODER 0
++#define CONFIG_ADPCM_MS_DECODER 0
++#define CONFIG_ADPCM_SBPRO_2_DECODER 0
++#define CONFIG_ADPCM_SBPRO_3_DECODER 0
++#define CONFIG_ADPCM_SBPRO_4_DECODER 0
++#define CONFIG_ADPCM_SWF_DECODER 0
++#define CONFIG_ADPCM_THP_DECODER 0
++#define CONFIG_ADPCM_XA_DECODER 0
++#define CONFIG_ADPCM_YAMAHA_DECODER 0
++#define CONFIG_DVBSUB_DECODER 0
++#define CONFIG_DVDSUB_DECODER 0
++#define CONFIG_PGSSUB_DECODER 0
++#define CONFIG_XSUB_DECODER 0
++#define CONFIG_LIBDIRAC_DECODER 0
++#define CONFIG_LIBGSM_DECODER 0
++#define CONFIG_LIBGSM_MS_DECODER 0
++#define CONFIG_LIBOPENCORE_AMRNB_DECODER 0
++#define CONFIG_LIBOPENCORE_AMRWB_DECODER 0
++#define CONFIG_LIBOPENJPEG_DECODER 0
++#define CONFIG_LIBSCHROEDINGER_DECODER 0
++#define CONFIG_LIBSPEEX_DECODER 0
++#define CONFIG_LIBVPX_DECODER 1
++#define CONFIG_A64MULTI_ENCODER 0
++#define CONFIG_A64MULTI5_ENCODER 0
++#define CONFIG_ASV1_ENCODER 0
++#define CONFIG_ASV2_ENCODER 0
++#define CONFIG_BMP_ENCODER 0
++#define CONFIG_DNXHD_ENCODER 0
++#define CONFIG_DVVIDEO_ENCODER 0
++#define CONFIG_FFV1_ENCODER 0
++#define CONFIG_FFVHUFF_ENCODER 0
++#define CONFIG_FLASHSV_ENCODER 0
++#define CONFIG_FLV_ENCODER 0
++#define CONFIG_GIF_ENCODER 0
++#define CONFIG_H261_ENCODER 0
++#define CONFIG_H263_ENCODER 0
++#define CONFIG_H263P_ENCODER 0
++#define CONFIG_HUFFYUV_ENCODER 0
++#define CONFIG_JPEGLS_ENCODER 0
++#define CONFIG_LJPEG_ENCODER 0
++#define CONFIG_MJPEG_ENCODER 0
++#define CONFIG_MPEG1VIDEO_ENCODER 0
++#define CONFIG_MPEG2VIDEO_ENCODER 0
++#define CONFIG_MPEG4_ENCODER 0
++#define CONFIG_MSMPEG4V1_ENCODER 0
++#define CONFIG_MSMPEG4V2_ENCODER 0
++#define CONFIG_MSMPEG4V3_ENCODER 0
++#define CONFIG_PAM_ENCODER 0
++#define CONFIG_PBM_ENCODER 0
++#define CONFIG_PCX_ENCODER 0
++#define CONFIG_PGM_ENCODER 0
++#define CONFIG_PGMYUV_ENCODER 0
++#define CONFIG_PNG_ENCODER 0
++#define CONFIG_PPM_ENCODER 0
++#define CONFIG_QTRLE_ENCODER 0
++#define CONFIG_RAWVIDEO_ENCODER 0
++#define CONFIG_ROQ_ENCODER 0
++#define CONFIG_RV10_ENCODER 0
++#define CONFIG_RV20_ENCODER 0
++#define CONFIG_SGI_ENCODER 0
++#define CONFIG_SNOW_ENCODER 0
++#define CONFIG_SVQ1_ENCODER 0
++#define CONFIG_TARGA_ENCODER 0
++#define CONFIG_TIFF_ENCODER 0
++#define CONFIG_V210_ENCODER 0
++#define CONFIG_WMV1_ENCODER 0
++#define CONFIG_WMV2_ENCODER 0
++#define CONFIG_ZLIB_ENCODER 0
++#define CONFIG_ZMBV_ENCODER 0
++#define CONFIG_AAC_ENCODER 0
++#define CONFIG_AC3_ENCODER 0
++#define CONFIG_ALAC_ENCODER 0
++#define CONFIG_FLAC_ENCODER 0
++#define CONFIG_MP2_ENCODER 0
++#define CONFIG_NELLYMOSER_ENCODER 0
++#define CONFIG_RA_144_ENCODER 0
++#define CONFIG_SONIC_ENCODER 0
++#define CONFIG_SONIC_LS_ENCODER 0
++#define CONFIG_VORBIS_ENCODER 0
++#define CONFIG_WMAV1_ENCODER 0
++#define CONFIG_WMAV2_ENCODER 0
++#define CONFIG_PCM_ALAW_ENCODER 0
++#define CONFIG_PCM_F32BE_ENCODER 0
++#define CONFIG_PCM_F32LE_ENCODER 0
++#define CONFIG_PCM_F64BE_ENCODER 0
++#define CONFIG_PCM_F64LE_ENCODER 0
++#define CONFIG_PCM_MULAW_ENCODER 0
++#define CONFIG_PCM_S8_ENCODER 0
++#define CONFIG_PCM_S16BE_ENCODER 0
++#define CONFIG_PCM_S16LE_ENCODER 0
++#define CONFIG_PCM_S24BE_ENCODER 0
++#define CONFIG_PCM_S24DAUD_ENCODER 0
++#define CONFIG_PCM_S24LE_ENCODER 0
++#define CONFIG_PCM_S32BE_ENCODER 0
++#define CONFIG_PCM_S32LE_ENCODER 0
++#define CONFIG_PCM_U8_ENCODER 0
++#define CONFIG_PCM_U16BE_ENCODER 0
++#define CONFIG_PCM_U16LE_ENCODER 0
++#define CONFIG_PCM_U24BE_ENCODER 0
++#define CONFIG_PCM_U24LE_ENCODER 0
++#define CONFIG_PCM_U32BE_ENCODER 0
++#define CONFIG_PCM_U32LE_ENCODER 0
++#define CONFIG_PCM_ZORK_ENCODER 0
++#define CONFIG_ROQ_DPCM_ENCODER 0
++#define CONFIG_ADPCM_ADX_ENCODER 0
++#define CONFIG_ADPCM_G722_ENCODER 0
++#define CONFIG_ADPCM_G726_ENCODER 0
++#define CONFIG_ADPCM_IMA_QT_ENCODER 0
++#define CONFIG_ADPCM_IMA_WAV_ENCODER 0
++#define CONFIG_ADPCM_MS_ENCODER 0
++#define CONFIG_ADPCM_SWF_ENCODER 0
++#define CONFIG_ADPCM_YAMAHA_ENCODER 0
++#define CONFIG_DVBSUB_ENCODER 0
++#define CONFIG_DVDSUB_ENCODER 0
++#define CONFIG_XSUB_ENCODER 0
++#define CONFIG_LIBDIRAC_ENCODER 0
++#define CONFIG_LIBFAAC_ENCODER 0
++#define CONFIG_LIBGSM_ENCODER 0
++#define CONFIG_LIBGSM_MS_ENCODER 0
++#define CONFIG_LIBMP3LAME_ENCODER 0
++#define CONFIG_LIBOPENCORE_AMRNB_ENCODER 0
++#define CONFIG_LIBSCHROEDINGER_ENCODER 0
++#define CONFIG_LIBTHEORA_ENCODER 0
++#define CONFIG_LIBVORBIS_ENCODER 0
++#define CONFIG_LIBVPX_ENCODER 1
++#define CONFIG_LIBX264_ENCODER 0
++#define CONFIG_LIBXAVS_ENCODER 0
++#define CONFIG_LIBXVID_ENCODER 0
++#define CONFIG_H263_VAAPI_HWACCEL 0
++#define CONFIG_H264_DXVA2_HWACCEL 0
++#define CONFIG_H264_VAAPI_HWACCEL 0
++#define CONFIG_MPEG2_DXVA2_HWACCEL 0
++#define CONFIG_MPEG2_VAAPI_HWACCEL 0
++#define CONFIG_MPEG4_VAAPI_HWACCEL 0
++#define CONFIG_VC1_DXVA2_HWACCEL 0
++#define CONFIG_VC1_VAAPI_HWACCEL 0
++#define CONFIG_WMV3_DXVA2_HWACCEL 0
++#define CONFIG_WMV3_VAAPI_HWACCEL 0
++#define CONFIG_AAC_PARSER 0
++#define CONFIG_AAC_LATM_PARSER 0
++#define CONFIG_AC3_PARSER 0
++#define CONFIG_CAVSVIDEO_PARSER 0
++#define CONFIG_DCA_PARSER 0
++#define CONFIG_DIRAC_PARSER 0
++#define CONFIG_DNXHD_PARSER 0
++#define CONFIG_DVBSUB_PARSER 0
++#define CONFIG_DVDSUB_PARSER 0
++#define CONFIG_H261_PARSER 0
++#define CONFIG_H263_PARSER 0
++#define CONFIG_H264_PARSER 0
++#define CONFIG_MJPEG_PARSER 0
++#define CONFIG_MLP_PARSER 0
++#define CONFIG_MPEG4VIDEO_PARSER 0
++#define CONFIG_MPEGAUDIO_PARSER 1
++#define CONFIG_MPEGVIDEO_PARSER 0
++#define CONFIG_PNM_PARSER 0
++#define CONFIG_VC1_PARSER 0
++#define CONFIG_VP3_PARSER 0
++#define CONFIG_VP8_PARSER 0
++#define CONFIG_AAC_ADTSTOASC_BSF 0
++#define CONFIG_CHOMP_BSF 0
++#define CONFIG_DUMP_EXTRADATA_BSF 0
++#define CONFIG_H264_MP4TOANNEXB_BSF 0
++#define CONFIG_MPEG4VIDEO_ES_BSF 0
++#define CONFIG_IMX_DUMP_HEADER_BSF 0
++#define CONFIG_MJPEGA_DUMP_HEADER_BSF 0
++#define CONFIG_MP3_HEADER_COMPRESS_BSF 0
++#define CONFIG_MP3_HEADER_DECOMPRESS_BSF 0
++#define CONFIG_MOV2TEXTSUB_BSF 0
++#define CONFIG_NOISE_BSF 0
++#define CONFIG_REMOVE_EXTRADATA_BSF 0
++#define CONFIG_TEXT2MOVSUB_BSF 0
++#define CONFIG_VC1_ASFTORCV_BSF 0
++#define CONFIG_VC1_ASFTOANNEXG_BSF 0
++#define CONFIG_AAC_DEMUXER 0
++#define CONFIG_AC3_DEMUXER 0
++#define CONFIG_AEA_DEMUXER 0
++#define CONFIG_AIFF_DEMUXER 0
++#define CONFIG_AMR_DEMUXER 0
++#define CONFIG_ANM_DEMUXER 0
++#define CONFIG_APC_DEMUXER 0
++#define CONFIG_APE_DEMUXER 0
++#define CONFIG_APPLEHTTP_DEMUXER 0
++#define CONFIG_ASF_DEMUXER 0
++#define CONFIG_ASS_DEMUXER 0
++#define CONFIG_AU_DEMUXER 0
++#define CONFIG_AVI_DEMUXER 0
++#define CONFIG_AVISYNTH_DEMUXER 0
++#define CONFIG_AVS_DEMUXER 0
++#define CONFIG_BETHSOFTVID_DEMUXER 0
++#define CONFIG_BFI_DEMUXER 0
++#define CONFIG_BINK_DEMUXER 0
++#define CONFIG_C93_DEMUXER 0
++#define CONFIG_CAF_DEMUXER 0
++#define CONFIG_CAVSVIDEO_DEMUXER 0
++#define CONFIG_CDG_DEMUXER 0
++#define CONFIG_DAUD_DEMUXER 0
++#define CONFIG_DIRAC_DEMUXER 0
++#define CONFIG_DNXHD_DEMUXER 0
++#define CONFIG_DSICIN_DEMUXER 0
++#define CONFIG_DTS_DEMUXER 0
++#define CONFIG_DV_DEMUXER 0
++#define CONFIG_DXA_DEMUXER 0
++#define CONFIG_EA_DEMUXER 0
++#define CONFIG_EA_CDATA_DEMUXER 0
++#define CONFIG_EAC3_DEMUXER 0
++#define CONFIG_FFM_DEMUXER 0
++#define CONFIG_FILMSTRIP_DEMUXER 0
++#define CONFIG_FLAC_DEMUXER 0
++#define CONFIG_FLIC_DEMUXER 0
++#define CONFIG_FLV_DEMUXER 0
++#define CONFIG_FOURXM_DEMUXER 0
++#define CONFIG_G722_DEMUXER 0
++#define CONFIG_GSM_DEMUXER 0
++#define CONFIG_GXF_DEMUXER 0
++#define CONFIG_H261_DEMUXER 0
++#define CONFIG_H263_DEMUXER 0
++#define CONFIG_H264_DEMUXER 0
++#define CONFIG_IDCIN_DEMUXER 0
++#define CONFIG_IFF_DEMUXER 0
++#define CONFIG_IMAGE2_DEMUXER 0
++#define CONFIG_IMAGE2PIPE_DEMUXER 0
++#define CONFIG_INGENIENT_DEMUXER 0
++#define CONFIG_IPMOVIE_DEMUXER 0
++#define CONFIG_ISS_DEMUXER 0
++#define CONFIG_IV8_DEMUXER 0
++#define CONFIG_IVF_DEMUXER 0
++#define CONFIG_LMLM4_DEMUXER 0
++#define CONFIG_LXF_DEMUXER 0
++#define CONFIG_M4V_DEMUXER 0
++#define CONFIG_MATROSKA_DEMUXER 1
++#define CONFIG_MJPEG_DEMUXER 0
++#define CONFIG_MLP_DEMUXER 0
++#define CONFIG_MM_DEMUXER 0
++#define CONFIG_MMF_DEMUXER 0
++#define CONFIG_MOV_DEMUXER 1
++#define CONFIG_MP3_DEMUXER 1
++#define CONFIG_MPC_DEMUXER 0
++#define CONFIG_MPC8_DEMUXER 0
++#define CONFIG_MPEGPS_DEMUXER 0
++#define CONFIG_MPEGTS_DEMUXER 0
++#define CONFIG_MPEGTSRAW_DEMUXER 0
++#define CONFIG_MPEGVIDEO_DEMUXER 0
++#define CONFIG_MSNWC_TCP_DEMUXER 0
++#define CONFIG_MTV_DEMUXER 0
++#define CONFIG_MVI_DEMUXER 0
++#define CONFIG_MXF_DEMUXER 0
++#define CONFIG_NC_DEMUXER 0
++#define CONFIG_NSV_DEMUXER 0
++#define CONFIG_NUT_DEMUXER 0
++#define CONFIG_NUV_DEMUXER 0
++#define CONFIG_OGG_DEMUXER 1
++#define CONFIG_OMA_DEMUXER 0
++#define CONFIG_PCM_ALAW_DEMUXER 0
++#define CONFIG_PCM_MULAW_DEMUXER 0
++#define CONFIG_PCM_F64BE_DEMUXER 0
++#define CONFIG_PCM_F64LE_DEMUXER 0
++#define CONFIG_PCM_F32BE_DEMUXER 0
++#define CONFIG_PCM_F32LE_DEMUXER 0
++#define CONFIG_PCM_S32BE_DEMUXER 0
++#define CONFIG_PCM_S32LE_DEMUXER 0
++#define CONFIG_PCM_S24BE_DEMUXER 0
++#define CONFIG_PCM_S24LE_DEMUXER 0
++#define CONFIG_PCM_S16BE_DEMUXER 0
++#define CONFIG_PCM_S16LE_DEMUXER 0
++#define CONFIG_PCM_S8_DEMUXER 0
++#define CONFIG_PCM_U32BE_DEMUXER 0
++#define CONFIG_PCM_U32LE_DEMUXER 0
++#define CONFIG_PCM_U24BE_DEMUXER 0
++#define CONFIG_PCM_U24LE_DEMUXER 0
++#define CONFIG_PCM_U16BE_DEMUXER 0
++#define CONFIG_PCM_U16LE_DEMUXER 0
++#define CONFIG_PCM_U8_DEMUXER 0
++#define CONFIG_PVA_DEMUXER 0
++#define CONFIG_QCP_DEMUXER 0
++#define CONFIG_R3D_DEMUXER 0
++#define CONFIG_RAWVIDEO_DEMUXER 0
++#define CONFIG_RL2_DEMUXER 0
++#define CONFIG_RM_DEMUXER 0
++#define CONFIG_ROQ_DEMUXER 0
++#define CONFIG_RPL_DEMUXER 0
++#define CONFIG_RSO_DEMUXER 0
++#define CONFIG_RTP_DEMUXER 0
++#define CONFIG_RTSP_DEMUXER 0
++#define CONFIG_SAP_DEMUXER 0
++#define CONFIG_SDP_DEMUXER 0
++#define CONFIG_SEGAFILM_DEMUXER 0
++#define CONFIG_SHORTEN_DEMUXER 0
++#define CONFIG_SIFF_DEMUXER 0
++#define CONFIG_SMACKER_DEMUXER 0
++#define CONFIG_SOL_DEMUXER 0
++#define CONFIG_SOX_DEMUXER 0
++#define CONFIG_SRT_DEMUXER 0
++#define CONFIG_STR_DEMUXER 0
++#define CONFIG_SWF_DEMUXER 0
++#define CONFIG_THP_DEMUXER 0
++#define CONFIG_TIERTEXSEQ_DEMUXER 0
++#define CONFIG_TMV_DEMUXER 0
++#define CONFIG_TRUEHD_DEMUXER 0
++#define CONFIG_TTA_DEMUXER 0
++#define CONFIG_TXD_DEMUXER 0
++#define CONFIG_TTY_DEMUXER 0
++#define CONFIG_VC1_DEMUXER 0
++#define CONFIG_VC1T_DEMUXER 0
++#define CONFIG_VMD_DEMUXER 0
++#define CONFIG_VOC_DEMUXER 0
++#define CONFIG_VQF_DEMUXER 0
++#define CONFIG_W64_DEMUXER 0
++#define CONFIG_WAV_DEMUXER 1
++#define CONFIG_WC3_DEMUXER 0
++#define CONFIG_WEBP_DEMUXER 0
++#define CONFIG_WSAUD_DEMUXER 0
++#define CONFIG_WSVQA_DEMUXER 0
++#define CONFIG_WV_DEMUXER 0
++#define CONFIG_XA_DEMUXER 0
++#define CONFIG_YOP_DEMUXER 0
++#define CONFIG_YUV4MPEGPIPE_DEMUXER 0
++#define CONFIG_LIBNUT_DEMUXER 0
++#define CONFIG_A64_MUXER 0
++#define CONFIG_AC3_MUXER 0
++#define CONFIG_ADTS_MUXER 0
++#define CONFIG_AIFF_MUXER 0
++#define CONFIG_AMR_MUXER 0
++#define CONFIG_ASF_MUXER 0
++#define CONFIG_ASS_MUXER 0
++#define CONFIG_ASF_STREAM_MUXER 0
++#define CONFIG_AU_MUXER 0
++#define CONFIG_AVI_MUXER 0
++#define CONFIG_AVM2_MUXER 0
++#define CONFIG_CAVSVIDEO_MUXER 0
++#define CONFIG_CRC_MUXER 0
++#define CONFIG_DAUD_MUXER 0
++#define CONFIG_DIRAC_MUXER 0
++#define CONFIG_DNXHD_MUXER 0
++#define CONFIG_DTS_MUXER 0
++#define CONFIG_DV_MUXER 0
++#define CONFIG_EAC3_MUXER 0
++#define CONFIG_FFM_MUXER 0
++#define CONFIG_FILMSTRIP_MUXER 0
++#define CONFIG_FLAC_MUXER 0
++#define CONFIG_FLV_MUXER 0
++#define CONFIG_FRAMECRC_MUXER 0
++#define CONFIG_FRAMEMD5_MUXER 0
++#define CONFIG_G722_MUXER 0
++#define CONFIG_GIF_MUXER 0
++#define CONFIG_GXF_MUXER 0
++#define CONFIG_H261_MUXER 0
++#define CONFIG_H263_MUXER 0
++#define CONFIG_H264_MUXER 0
++#define CONFIG_IMAGE2_MUXER 0
++#define CONFIG_IMAGE2PIPE_MUXER 0
++#define CONFIG_IPOD_MUXER 0
++#define CONFIG_M4V_MUXER 0
++#define CONFIG_MD5_MUXER 0
++#define CONFIG_MATROSKA_MUXER 0
++#define CONFIG_MATROSKA_AUDIO_MUXER 0
++#define CONFIG_MJPEG_MUXER 0
++#define CONFIG_MLP_MUXER 0
++#define CONFIG_MMF_MUXER 0
++#define CONFIG_MOV_MUXER 0
++#define CONFIG_MP2_MUXER 0
++#define CONFIG_MP3_MUXER 0
++#define CONFIG_MP4_MUXER 0
++#define CONFIG_MPEG1SYSTEM_MUXER 0
++#define CONFIG_MPEG1VCD_MUXER 0
++#define CONFIG_MPEG1VIDEO_MUXER 0
++#define CONFIG_MPEG2DVD_MUXER 0
++#define CONFIG_MPEG2SVCD_MUXER 0
++#define CONFIG_MPEG2VIDEO_MUXER 0
++#define CONFIG_MPEG2VOB_MUXER 0
++#define CONFIG_MPEGTS_MUXER 0
++#define CONFIG_MPJPEG_MUXER 0
++#define CONFIG_MXF_MUXER 0
++#define CONFIG_MXF_D10_MUXER 0
++#define CONFIG_NULL_MUXER 0
++#define CONFIG_NUT_MUXER 0
++#define CONFIG_OGG_MUXER 0
++#define CONFIG_PCM_ALAW_MUXER 0
++#define CONFIG_PCM_MULAW_MUXER 0
++#define CONFIG_PCM_F64BE_MUXER 0
++#define CONFIG_PCM_F64LE_MUXER 0
++#define CONFIG_PCM_F32BE_MUXER 0
++#define CONFIG_PCM_F32LE_MUXER 0
++#define CONFIG_PCM_S32BE_MUXER 0
++#define CONFIG_PCM_S32LE_MUXER 0
++#define CONFIG_PCM_S24BE_MUXER 0
++#define CONFIG_PCM_S24LE_MUXER 0
++#define CONFIG_PCM_S16BE_MUXER 0
++#define CONFIG_PCM_S16LE_MUXER 0
++#define CONFIG_PCM_S8_MUXER 0
++#define CONFIG_PCM_U32BE_MUXER 0
++#define CONFIG_PCM_U32LE_MUXER 0
++#define CONFIG_PCM_U24BE_MUXER 0
++#define CONFIG_PCM_U24LE_MUXER 0
++#define CONFIG_PCM_U16BE_MUXER 0
++#define CONFIG_PCM_U16LE_MUXER 0
++#define CONFIG_PCM_U8_MUXER 0
++#define CONFIG_PSP_MUXER 0
++#define CONFIG_RAWVIDEO_MUXER 0
++#define CONFIG_RM_MUXER 0
++#define CONFIG_ROQ_MUXER 0
++#define CONFIG_RSO_MUXER 0
++#define CONFIG_RTP_MUXER 0
++#define CONFIG_RTSP_MUXER 0
++#define CONFIG_SAP_MUXER 0
++#define CONFIG_SOX_MUXER 0
++#define CONFIG_SPDIF_MUXER 0
++#define CONFIG_SRT_MUXER 0
++#define CONFIG_SWF_MUXER 0
++#define CONFIG_TG2_MUXER 0
++#define CONFIG_TGP_MUXER 0
++#define CONFIG_TRUEHD_MUXER 0
++#define CONFIG_VC1T_MUXER 0
++#define CONFIG_VOC_MUXER 0
++#define CONFIG_WAV_MUXER 0
++#define CONFIG_WEBM_MUXER 0
++#define CONFIG_WEBP_MUXER 0
++#define CONFIG_YUV4MPEGPIPE_MUXER 0
++#define CONFIG_LIBNUT_MUXER 0
++#define CONFIG_ANULL_FILTER 0
++#define CONFIG_ANULLSRC_FILTER 0
++#define CONFIG_ANULLSINK_FILTER 0
++#define CONFIG_ASPECT_FILTER 0
++#define CONFIG_BLACKFRAME_FILTER 0
++#define CONFIG_CROP_FILTER 0
++#define CONFIG_CROPDETECT_FILTER 0
++#define CONFIG_DRAWBOX_FILTER 0
++#define CONFIG_FIFO_FILTER 0
++#define CONFIG_FORMAT_FILTER 0
++#define CONFIG_FREI0R_FILTER 0
++#define CONFIG_HFLIP_FILTER 0
++#define CONFIG_NOFORMAT_FILTER 0
++#define CONFIG_NULL_FILTER 0
++#define CONFIG_OCV_SMOOTH_FILTER 0
++#define CONFIG_PAD_FILTER 0
++#define CONFIG_PIXDESCTEST_FILTER 0
++#define CONFIG_PIXELASPECT_FILTER 0
++#define CONFIG_SCALE_FILTER 0
++#define CONFIG_SETPTS_FILTER 0
++#define CONFIG_SETTB_FILTER 0
++#define CONFIG_SLICIFY_FILTER 0
++#define CONFIG_TRANSPOSE_FILTER 0
++#define CONFIG_UNSHARP_FILTER 0
++#define CONFIG_VFLIP_FILTER 0
++#define CONFIG_YADIF_FILTER 0
++#define CONFIG_BUFFER_FILTER 0
++#define CONFIG_COLOR_FILTER 0
++#define CONFIG_NULLSRC_FILTER 0
++#define CONFIG_NULLSINK_FILTER 0
++#define CONFIG_CONCAT_PROTOCOL 0
++#define CONFIG_FILE_PROTOCOL 0
++#define CONFIG_GOPHER_PROTOCOL 0
++#define CONFIG_HTTP_PROTOCOL 0
++#define CONFIG_MMSH_PROTOCOL 0
++#define CONFIG_MMST_PROTOCOL 0
++#define CONFIG_MD5_PROTOCOL 0
++#define CONFIG_PIPE_PROTOCOL 0
++#define CONFIG_RTMP_PROTOCOL 0
++#define CONFIG_RTMPT_PROTOCOL 0
++#define CONFIG_RTMPE_PROTOCOL 0
++#define CONFIG_RTMPTE_PROTOCOL 0
++#define CONFIG_RTMPS_PROTOCOL 0
++#define CONFIG_RTP_PROTOCOL 0
++#define CONFIG_TCP_PROTOCOL 0
++#define CONFIG_UDP_PROTOCOL 0
++#define CONFIG_ALSA_INDEV 0
++#define CONFIG_BKTR_INDEV 0
++#define CONFIG_DV1394_INDEV 0
++#define CONFIG_JACK_INDEV 0
++#define CONFIG_OSS_INDEV 0
++#define CONFIG_V4L2_INDEV 0
++#define CONFIG_V4L_INDEV 0
++#define CONFIG_VFWCAP_INDEV 0
++#define CONFIG_X11_GRAB_DEVICE_INDEV 0
++#define CONFIG_LIBDC1394_INDEV 0
++#define CONFIG_ALSA_OUTDEV 0
++#define CONFIG_OSS_OUTDEV 0
++#endif /* FFMPEG_CONFIG_H */
diff --git a/www/chromium/files/patch-third_party__ffmpeg__config__Chromium__freebsd__ia32__config.h b/www/chromium/files/patch-third_party__ffmpeg__config__Chromium__freebsd__ia32__config.h
new file mode 100644
index 000000000000..d2f21da773dc
--- /dev/null
+++ b/www/chromium/files/patch-third_party__ffmpeg__config__Chromium__freebsd__ia32__config.h
@@ -0,0 +1,963 @@
+--- ./third_party/ffmpeg/config/Chromium/freebsd/ia32/config.h.orig 2010-12-20 20:15:08.000000000 +0100
++++ ./third_party/ffmpeg/config/Chromium/freebsd/ia32/config.h 2010-12-20 20:15:08.000000000 +0100
+@@ -0,0 +1,960 @@
++/* Automatically generated by configure - do not modify! */
++#ifndef FFMPEG_CONFIG_H
++#define FFMPEG_CONFIG_H
++#define FFMPEG_CONFIGURATION "--disable-everything --disable-network --disable-bzlib --disable-zlib --disable-swscale --disable-amd3dnow --disable-amd3dnowext --enable-shared --enable-libvpx --enable-decoder='theora,vorbis,libvpx,pcm_u8,pcm_s16le,pcm_f32le' --enable-encoder=libvpx --enable-demuxer='ogg,matroska,wav' --extra-cflags='-m32 -fPIC' --extra-ldflags='-m32 -L../../libvpx/linux32/usr/local/lib'"
++#define FFMPEG_LICENSE "LGPL version 2.1 or later"
++#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
++#define CC_TYPE "gcc" /* rene: what about clang? does $(CC) work? */
++#define CC_VERSION __VERSION__
++#define restrict restrict
++#define ASMALIGN(ZEROBITS) ".p2align " #ZEROBITS "\n\t"
++#define EXTERN_PREFIX ""
++#define EXTERN_ASM
++#define SLIBSUF ".so"
++#define ARCH_ALPHA 0
++#define ARCH_ARM 0
++#define ARCH_AVR32 0
++#define ARCH_AVR32_AP 0
++#define ARCH_AVR32_UC 0
++#define ARCH_BFIN 0
++#define ARCH_IA64 0
++#define ARCH_M68K 0
++#define ARCH_MIPS 0
++#define ARCH_MIPS64 0
++#define ARCH_PARISC 0
++#define ARCH_PPC 0
++#define ARCH_PPC64 0
++#define ARCH_S390 0
++#define ARCH_SH4 0
++#define ARCH_SPARC 0
++#define ARCH_SPARC64 0
++#define ARCH_TOMI 0
++#define ARCH_X86 1
++#define ARCH_X86_32 1
++#define ARCH_X86_64 0
++#define HAVE_ALTIVEC 0
++#define HAVE_AMD3DNOW 0
++#define HAVE_AMD3DNOWEXT 0
++#define HAVE_ARMV5TE 0
++#define HAVE_ARMV6 0
++#define HAVE_ARMV6T2 0
++#define HAVE_ARMVFP 0
++#define HAVE_IWMMXT 0
++#define HAVE_MMI 0
++#define HAVE_MMX 1
++#define HAVE_MMX2 1
++#define HAVE_NEON 0
++#define HAVE_PPC4XX 0
++#define HAVE_SSE 1
++#define HAVE_SSSE3 1
++#define HAVE_VIS 0
++#define HAVE_BIGENDIAN 0
++#define HAVE_FAST_UNALIGNED 1
++#define HAVE_PTHREADS 1
++#define HAVE_W32THREADS 0
++#define HAVE_ALIGNED_STACK 1
++#define HAVE_ALSA_ASOUNDLIB_H 0
++#define HAVE_ALTIVEC_H 0
++#define HAVE_ARPA_INET_H 0
++#define HAVE_ATTRIBUTE_MAY_ALIAS 1
++#define HAVE_ATTRIBUTE_PACKED 1
++#define HAVE_BSWAP 1
++#define HAVE_CLOSESOCKET 0
++#define HAVE_CMOV 0
++#define HAVE_CONIO_H 0
++#define HAVE_DCBZL 0
++#define HAVE_DEV_BKTR_IOCTL_BT848_H 0
++#define HAVE_DEV_BKTR_IOCTL_METEOR_H 0
++#define HAVE_DEV_IC_BT8XX_H 0
++#define HAVE_DEV_VIDEO_METEOR_IOCTL_METEOR_H 0
++#define HAVE_DEV_VIDEO_BKTR_IOCTL_BT848_H 0
++#define HAVE_DLFCN_H 1
++#define HAVE_DLOPEN 1
++#define HAVE_DOS_PATHS 0
++#define HAVE_EBP_AVAILABLE 0
++#define HAVE_EBX_AVAILABLE 0
++#define HAVE_EXP2 1
++#define HAVE_EXP2F 1
++#define HAVE_FAST_64BIT 0
++#define HAVE_FAST_CLZ 1
++#define HAVE_FAST_CMOV 0
++#define HAVE_FCNTL 1
++#define HAVE_FORK 1
++#define HAVE_GETADDRINFO 1
++#define HAVE_GETHRTIME 0
++#define HAVE_GETPROCESSMEMORYINFO 0
++#define HAVE_GETPROCESSTIMES 0
++#define HAVE_GETRUSAGE 1
++#define HAVE_GNU_AS 1
++#define HAVE_STRUCT_RUSAGE_RU_MAXRSS 1
++#define HAVE_IBM_ASM 0
++#define HAVE_INET_ATON 1
++#define HAVE_INLINE_ASM 1
++#define HAVE_ISATTY 1
++#define HAVE_LDBRX 0
++#define HAVE_LIBDC1394_1 0
++#define HAVE_LIBDC1394_2 0
++#define HAVE_LLRINT 1
++#define HAVE_LLRINTF 1
++#define HAVE_LOCAL_ALIGNED_16 1
++#define HAVE_LOCAL_ALIGNED_8 1
++#define HAVE_LOG2 0
++#define HAVE_LOG2F 0
++#define HAVE_LOONGSON 0
++#define HAVE_LRINT 1
++#define HAVE_LRINTF 1
++#define HAVE_LZO1X_999_COMPRESS 0
++#define HAVE_MACHINE_IOCTL_BT848_H 0
++#define HAVE_MACHINE_IOCTL_METEOR_H 0
++#define HAVE_MALLOC_H 0
++#define HAVE_MEMALIGN 0
++#define HAVE_MKSTEMP 1
++#define HAVE_PLD 0
++#define HAVE_POSIX_MEMALIGN 1
++#define HAVE_ROUND 1
++#define HAVE_ROUNDF 1
++#define HAVE_SDL 0
++#define HAVE_SDL_VIDEO_SIZE 0
++#define HAVE_SETMODE 0
++#define HAVE_SOCKLEN_T 0
++#define HAVE_SOUNDCARD_H 0
++#define HAVE_POLL_H 1
++#define HAVE_SETRLIMIT 1
++#define HAVE_STRERROR_R 1
++#define HAVE_STRTOK_R 1
++#define HAVE_STRUCT_ADDRINFO 0
++#define HAVE_STRUCT_IPV6_MREQ 0
++#define HAVE_STRUCT_SOCKADDR_IN6 0
++#define HAVE_STRUCT_SOCKADDR_SA_LEN 0
++#define HAVE_STRUCT_SOCKADDR_STORAGE 0
++#define HAVE_SYMVER 0
++#define HAVE_SYMVER_GNU_ASM 1
++#define HAVE_SYMVER_ASM_LABEL 0
++#define HAVE_SYS_MMAN_H 1
++#define HAVE_SYS_RESOURCE_H 1
++#define HAVE_SYS_SELECT_H 1
++#define HAVE_SYS_SOUNDCARD_H 1
++#define HAVE_SYS_VIDEOIO_H 0
++#define HAVE_TEN_OPERANDS 1
++#define HAVE_TERMIOS_H 1
++#define HAVE_THREADS 1
++#define HAVE_TRUNCF 1
++#define HAVE_VFP_ARGS 0
++#define HAVE_VIRTUALALLOC 0
++#define HAVE_WINSOCK2_H 0
++#define HAVE_XFORM_ASM 0
++#define HAVE_XMM_CLOBBERS 0
++#define HAVE_YASM 1
++#define CONFIG_BSFS 0
++#define CONFIG_DECODERS 1
++#define CONFIG_DEMUXERS 1
++#define CONFIG_ENCODERS 1
++#define CONFIG_FILTERS 0
++#define CONFIG_HWACCELS 0
++#define CONFIG_INDEVS 0
++#define CONFIG_MUXERS 0
++#define CONFIG_OUTDEVS 0
++#define CONFIG_PARSERS 0
++#define CONFIG_PROTOCOLS 1
++#define CONFIG_AANDCT 0
++#define CONFIG_AVCODEC 1
++#define CONFIG_AVCORE 1
++#define CONFIG_AVDEVICE 1
++#define CONFIG_AVFILTER 1
++#define CONFIG_AVFORMAT 1
++#define CONFIG_AVISYNTH 0
++#define CONFIG_BZLIB 0
++#define CONFIG_DCT 0
++#define CONFIG_DOC 0
++#define CONFIG_DWT 0
++#define CONFIG_DXVA2 0
++#define CONFIG_FASTDIV 1
++#define CONFIG_FFMPEG 0
++#define CONFIG_FFPLAY 0
++#define CONFIG_FFPROBE 1
++#define CONFIG_FFSERVER 0
++#define CONFIG_FFT 1
++#define CONFIG_FREI0R 0
++#define CONFIG_GOLOMB 1
++#define CONFIG_GPL 0
++#define CONFIG_GRAY 0
++#define CONFIG_H264DSP 0
++#define CONFIG_H264PRED 0
++#define CONFIG_HARDCODED_TABLES 0
++#define CONFIG_HUFFMAN 0
++#define CONFIG_LIBDC1394 0
++#define CONFIG_LIBDIRAC 0
++#define CONFIG_LIBFAAC 0
++#define CONFIG_LIBGSM 0
++#define CONFIG_LIBMP3LAME 0
++#define CONFIG_LIBNUT 0
++#define CONFIG_LIBOPENCORE_AMRNB 0
++#define CONFIG_LIBOPENCORE_AMRWB 0
++#define CONFIG_LIBOPENCV 0
++#define CONFIG_LIBOPENJPEG 0
++#define CONFIG_LIBRTMP 0
++#define CONFIG_LIBSCHROEDINGER 0
++#define CONFIG_LIBSPEEX 0
++#define CONFIG_LIBTHEORA 0
++#define CONFIG_LIBVORBIS 0
++#define CONFIG_LIBVPX 1
++#define CONFIG_LIBX264 0
++#define CONFIG_LIBXAVS 0
++#define CONFIG_LIBXVID 0
++#define CONFIG_LPC 0
++#define CONFIG_LSP 0
++#define CONFIG_MDCT 1
++#define CONFIG_MEMALIGN_HACK 0
++#define CONFIG_MLIB 0
++#define CONFIG_MPEGAUDIO_HP 1
++#define CONFIG_NETWORK 0
++#define CONFIG_NONFREE 0
++#define CONFIG_PIC 1
++#define CONFIG_POSTPROC 0
++#define CONFIG_RDFT 0
++#define CONFIG_RTPDEC 0
++#define CONFIG_RUNTIME_CPUDETECT 0
++#define CONFIG_SHARED 1
++#define CONFIG_SMALL 0
++#define CONFIG_SRAM 0
++#define CONFIG_STATIC 1
++#define CONFIG_SWSCALE 0
++#define CONFIG_SWSCALE_ALPHA 1
++#define CONFIG_VAAPI 0
++#define CONFIG_VDPAU 0
++#define CONFIG_VERSION3 0
++#define CONFIG_X11GRAB 0
++#define CONFIG_ZLIB 0
++#define CONFIG_AVUTIL 1
++#define CONFIG_GPLV3 0
++#define CONFIG_LGPLV3 0
++#define CONFIG_AASC_DECODER 0
++#define CONFIG_AMV_DECODER 0
++#define CONFIG_ANM_DECODER 0
++#define CONFIG_ANSI_DECODER 0
++#define CONFIG_ASV1_DECODER 0
++#define CONFIG_ASV2_DECODER 0
++#define CONFIG_AURA_DECODER 0
++#define CONFIG_AURA2_DECODER 0
++#define CONFIG_AVS_DECODER 0
++#define CONFIG_BETHSOFTVID_DECODER 0
++#define CONFIG_BFI_DECODER 0
++#define CONFIG_BINK_DECODER 0
++#define CONFIG_BMP_DECODER 0
++#define CONFIG_C93_DECODER 0
++#define CONFIG_CAVS_DECODER 0
++#define CONFIG_CDGRAPHICS_DECODER 0
++#define CONFIG_CINEPAK_DECODER 0
++#define CONFIG_CLJR_DECODER 0
++#define CONFIG_CSCD_DECODER 0
++#define CONFIG_CYUV_DECODER 0
++#define CONFIG_DNXHD_DECODER 0
++#define CONFIG_DPX_DECODER 0
++#define CONFIG_DSICINVIDEO_DECODER 0
++#define CONFIG_DVVIDEO_DECODER 0
++#define CONFIG_DXA_DECODER 0
++#define CONFIG_EACMV_DECODER 0
++#define CONFIG_EAMAD_DECODER 0
++#define CONFIG_EATGQ_DECODER 0
++#define CONFIG_EATGV_DECODER 0
++#define CONFIG_EATQI_DECODER 0
++#define CONFIG_EIGHTBPS_DECODER 0
++#define CONFIG_EIGHTSVX_EXP_DECODER 0
++#define CONFIG_EIGHTSVX_FIB_DECODER 0
++#define CONFIG_ESCAPE124_DECODER 0
++#define CONFIG_FFV1_DECODER 0
++#define CONFIG_FFVHUFF_DECODER 0
++#define CONFIG_FLASHSV_DECODER 0
++#define CONFIG_FLIC_DECODER 0
++#define CONFIG_FLV_DECODER 0
++#define CONFIG_FOURXM_DECODER 0
++#define CONFIG_FRAPS_DECODER 0
++#define CONFIG_FRWU_DECODER 0
++#define CONFIG_GIF_DECODER 0
++#define CONFIG_H261_DECODER 0
++#define CONFIG_H263_DECODER 0
++#define CONFIG_H263I_DECODER 0
++#define CONFIG_H264_DECODER 0
++#define CONFIG_H264_VDPAU_DECODER 0
++#define CONFIG_HUFFYUV_DECODER 0
++#define CONFIG_IDCIN_DECODER 0
++#define CONFIG_IFF_BYTERUN1_DECODER 0
++#define CONFIG_IFF_ILBM_DECODER 0
++#define CONFIG_INDEO2_DECODER 0
++#define CONFIG_INDEO3_DECODER 0
++#define CONFIG_INDEO5_DECODER 0
++#define CONFIG_INTERPLAY_VIDEO_DECODER 0
++#define CONFIG_JPEGLS_DECODER 0
++#define CONFIG_KGV1_DECODER 0
++#define CONFIG_KMVC_DECODER 0
++#define CONFIG_LOCO_DECODER 0
++#define CONFIG_MDEC_DECODER 0
++#define CONFIG_MIMIC_DECODER 0
++#define CONFIG_MJPEG_DECODER 0
++#define CONFIG_MJPEGB_DECODER 0
++#define CONFIG_MMVIDEO_DECODER 0
++#define CONFIG_MOTIONPIXELS_DECODER 0
++#define CONFIG_MPEG_XVMC_DECODER 0
++#define CONFIG_MPEG1VIDEO_DECODER 0
++#define CONFIG_MPEG2VIDEO_DECODER 0
++#define CONFIG_MPEG4_DECODER 0
++#define CONFIG_MPEG4_VDPAU_DECODER 0
++#define CONFIG_MPEGVIDEO_DECODER 0
++#define CONFIG_MPEG_VDPAU_DECODER 0
++#define CONFIG_MPEG1_VDPAU_DECODER 0
++#define CONFIG_MSMPEG4V1_DECODER 0
++#define CONFIG_MSMPEG4V2_DECODER 0
++#define CONFIG_MSMPEG4V3_DECODER 0
++#define CONFIG_MSRLE_DECODER 0
++#define CONFIG_MSVIDEO1_DECODER 0
++#define CONFIG_MSZH_DECODER 0
++#define CONFIG_NUV_DECODER 0
++#define CONFIG_PAM_DECODER 0
++#define CONFIG_PBM_DECODER 0
++#define CONFIG_PCX_DECODER 0
++#define CONFIG_PGM_DECODER 0
++#define CONFIG_PGMYUV_DECODER 0
++#define CONFIG_PICTOR_DECODER 0
++#define CONFIG_PNG_DECODER 0
++#define CONFIG_PPM_DECODER 0
++#define CONFIG_PTX_DECODER 0
++#define CONFIG_QDRAW_DECODER 0
++#define CONFIG_QPEG_DECODER 0
++#define CONFIG_QTRLE_DECODER 0
++#define CONFIG_R10K_DECODER 0
++#define CONFIG_R210_DECODER 0
++#define CONFIG_RAWVIDEO_DECODER 0
++#define CONFIG_RL2_DECODER 0
++#define CONFIG_ROQ_DECODER 0
++#define CONFIG_RPZA_DECODER 0
++#define CONFIG_RV10_DECODER 0
++#define CONFIG_RV20_DECODER 0
++#define CONFIG_RV30_DECODER 0
++#define CONFIG_RV40_DECODER 0
++#define CONFIG_SGI_DECODER 0
++#define CONFIG_SMACKER_DECODER 0
++#define CONFIG_SMC_DECODER 0
++#define CONFIG_SNOW_DECODER 0
++#define CONFIG_SP5X_DECODER 0
++#define CONFIG_SUNRAST_DECODER 0
++#define CONFIG_SVQ1_DECODER 0
++#define CONFIG_SVQ3_DECODER 0
++#define CONFIG_TARGA_DECODER 0
++#define CONFIG_THEORA_DECODER 1
++#define CONFIG_THP_DECODER 0
++#define CONFIG_TIERTEXSEQVIDEO_DECODER 0
++#define CONFIG_TIFF_DECODER 0
++#define CONFIG_TMV_DECODER 0
++#define CONFIG_TRUEMOTION1_DECODER 0
++#define CONFIG_TRUEMOTION2_DECODER 0
++#define CONFIG_TSCC_DECODER 0
++#define CONFIG_TXD_DECODER 0
++#define CONFIG_ULTI_DECODER 0
++#define CONFIG_V210_DECODER 0
++#define CONFIG_V210X_DECODER 0
++#define CONFIG_VB_DECODER 0
++#define CONFIG_VC1_DECODER 0
++#define CONFIG_VC1_VDPAU_DECODER 0
++#define CONFIG_VCR1_DECODER 0
++#define CONFIG_VMDVIDEO_DECODER 0
++#define CONFIG_VMNC_DECODER 0
++#define CONFIG_VP3_DECODER 1
++#define CONFIG_VP5_DECODER 0
++#define CONFIG_VP6_DECODER 0
++#define CONFIG_VP6A_DECODER 0
++#define CONFIG_VP6F_DECODER 0
++#define CONFIG_VP8_DECODER 0
++#define CONFIG_VQA_DECODER 0
++#define CONFIG_WMV1_DECODER 0
++#define CONFIG_WMV2_DECODER 0
++#define CONFIG_WMV3_DECODER 0
++#define CONFIG_WMV3_VDPAU_DECODER 0
++#define CONFIG_WNV1_DECODER 0
++#define CONFIG_XAN_WC3_DECODER 0
++#define CONFIG_XL_DECODER 0
++#define CONFIG_YOP_DECODER 0
++#define CONFIG_ZLIB_DECODER 0
++#define CONFIG_ZMBV_DECODER 0
++#define CONFIG_AAC_DECODER 0
++#define CONFIG_AAC_LATM_DECODER 0
++#define CONFIG_AC3_DECODER 0
++#define CONFIG_ALAC_DECODER 0
++#define CONFIG_ALS_DECODER 0
++#define CONFIG_AMRNB_DECODER 0
++#define CONFIG_APE_DECODER 0
++#define CONFIG_ATRAC1_DECODER 0
++#define CONFIG_ATRAC3_DECODER 0
++#define CONFIG_BINKAUDIO_DCT_DECODER 0
++#define CONFIG_BINKAUDIO_RDFT_DECODER 0
++#define CONFIG_COOK_DECODER 0
++#define CONFIG_DCA_DECODER 0
++#define CONFIG_DSICINAUDIO_DECODER 0
++#define CONFIG_EAC3_DECODER 0
++#define CONFIG_FLAC_DECODER 0
++#define CONFIG_GSM_DECODER 0
++#define CONFIG_GSM_MS_DECODER 0
++#define CONFIG_IMC_DECODER 0
++#define CONFIG_MACE3_DECODER 0
++#define CONFIG_MACE6_DECODER 0
++#define CONFIG_MLP_DECODER 0
++#define CONFIG_MP1_DECODER 0
++#define CONFIG_MP1FLOAT_DECODER 0
++#define CONFIG_MP2_DECODER 0
++#define CONFIG_MP2FLOAT_DECODER 0
++#define CONFIG_MP3_DECODER 0
++#define CONFIG_MP3FLOAT_DECODER 0
++#define CONFIG_MP3ADU_DECODER 0
++#define CONFIG_MP3ADUFLOAT_DECODER 0
++#define CONFIG_MP3ON4_DECODER 0
++#define CONFIG_MP3ON4FLOAT_DECODER 0
++#define CONFIG_MPC7_DECODER 0
++#define CONFIG_MPC8_DECODER 0
++#define CONFIG_NELLYMOSER_DECODER 0
++#define CONFIG_QCELP_DECODER 0
++#define CONFIG_QDM2_DECODER 0
++#define CONFIG_RA_144_DECODER 0
++#define CONFIG_RA_288_DECODER 0
++#define CONFIG_SHORTEN_DECODER 0
++#define CONFIG_SIPR_DECODER 0
++#define CONFIG_SMACKAUD_DECODER 0
++#define CONFIG_SONIC_DECODER 0
++#define CONFIG_TRUEHD_DECODER 0
++#define CONFIG_TRUESPEECH_DECODER 0
++#define CONFIG_TTA_DECODER 0
++#define CONFIG_TWINVQ_DECODER 0
++#define CONFIG_VMDAUDIO_DECODER 0
++#define CONFIG_VORBIS_DECODER 1
++#define CONFIG_WAVPACK_DECODER 0
++#define CONFIG_WMAPRO_DECODER 0
++#define CONFIG_WMAV1_DECODER 0
++#define CONFIG_WMAV2_DECODER 0
++#define CONFIG_WMAVOICE_DECODER 0
++#define CONFIG_WS_SND1_DECODER 0
++#define CONFIG_PCM_ALAW_DECODER 0
++#define CONFIG_PCM_BLURAY_DECODER 0
++#define CONFIG_PCM_DVD_DECODER 0
++#define CONFIG_PCM_F32BE_DECODER 0
++#define CONFIG_PCM_F32LE_DECODER 1
++#define CONFIG_PCM_F64BE_DECODER 0
++#define CONFIG_PCM_F64LE_DECODER 0
++#define CONFIG_PCM_LXF_DECODER 0
++#define CONFIG_PCM_MULAW_DECODER 0
++#define CONFIG_PCM_S8_DECODER 0
++#define CONFIG_PCM_S16BE_DECODER 0
++#define CONFIG_PCM_S16LE_DECODER 1
++#define CONFIG_PCM_S16LE_PLANAR_DECODER 0
++#define CONFIG_PCM_S24BE_DECODER 0
++#define CONFIG_PCM_S24DAUD_DECODER 0
++#define CONFIG_PCM_S24LE_DECODER 0
++#define CONFIG_PCM_S32BE_DECODER 0
++#define CONFIG_PCM_S32LE_DECODER 0
++#define CONFIG_PCM_U8_DECODER 1
++#define CONFIG_PCM_U16BE_DECODER 0
++#define CONFIG_PCM_U16LE_DECODER 0
++#define CONFIG_PCM_U24BE_DECODER 0
++#define CONFIG_PCM_U24LE_DECODER 0
++#define CONFIG_PCM_U32BE_DECODER 0
++#define CONFIG_PCM_U32LE_DECODER 0
++#define CONFIG_PCM_ZORK_DECODER 0
++#define CONFIG_INTERPLAY_DPCM_DECODER 0
++#define CONFIG_ROQ_DPCM_DECODER 0
++#define CONFIG_SOL_DPCM_DECODER 0
++#define CONFIG_XAN_DPCM_DECODER 0
++#define CONFIG_ADPCM_4XM_DECODER 0
++#define CONFIG_ADPCM_ADX_DECODER 0
++#define CONFIG_ADPCM_CT_DECODER 0
++#define CONFIG_ADPCM_EA_DECODER 0
++#define CONFIG_ADPCM_EA_MAXIS_XA_DECODER 0
++#define CONFIG_ADPCM_EA_R1_DECODER 0
++#define CONFIG_ADPCM_EA_R2_DECODER 0
++#define CONFIG_ADPCM_EA_R3_DECODER 0
++#define CONFIG_ADPCM_EA_XAS_DECODER 0
++#define CONFIG_ADPCM_G722_DECODER 0
++#define CONFIG_ADPCM_G726_DECODER 0
++#define CONFIG_ADPCM_IMA_AMV_DECODER 0
++#define CONFIG_ADPCM_IMA_DK3_DECODER 0
++#define CONFIG_ADPCM_IMA_DK4_DECODER 0
++#define CONFIG_ADPCM_IMA_EA_EACS_DECODER 0
++#define CONFIG_ADPCM_IMA_EA_SEAD_DECODER 0
++#define CONFIG_ADPCM_IMA_ISS_DECODER 0
++#define CONFIG_ADPCM_IMA_QT_DECODER 0
++#define CONFIG_ADPCM_IMA_SMJPEG_DECODER 0
++#define CONFIG_ADPCM_IMA_WAV_DECODER 0
++#define CONFIG_ADPCM_IMA_WS_DECODER 0
++#define CONFIG_ADPCM_MS_DECODER 0
++#define CONFIG_ADPCM_SBPRO_2_DECODER 0
++#define CONFIG_ADPCM_SBPRO_3_DECODER 0
++#define CONFIG_ADPCM_SBPRO_4_DECODER 0
++#define CONFIG_ADPCM_SWF_DECODER 0
++#define CONFIG_ADPCM_THP_DECODER 0
++#define CONFIG_ADPCM_XA_DECODER 0
++#define CONFIG_ADPCM_YAMAHA_DECODER 0
++#define CONFIG_DVBSUB_DECODER 0
++#define CONFIG_DVDSUB_DECODER 0
++#define CONFIG_PGSSUB_DECODER 0
++#define CONFIG_XSUB_DECODER 0
++#define CONFIG_LIBDIRAC_DECODER 0
++#define CONFIG_LIBGSM_DECODER 0
++#define CONFIG_LIBGSM_MS_DECODER 0
++#define CONFIG_LIBOPENCORE_AMRNB_DECODER 0
++#define CONFIG_LIBOPENCORE_AMRWB_DECODER 0
++#define CONFIG_LIBOPENJPEG_DECODER 0
++#define CONFIG_LIBSCHROEDINGER_DECODER 0
++#define CONFIG_LIBSPEEX_DECODER 0
++#define CONFIG_LIBVPX_DECODER 1
++#define CONFIG_A64MULTI_ENCODER 0
++#define CONFIG_A64MULTI5_ENCODER 0
++#define CONFIG_ASV1_ENCODER 0
++#define CONFIG_ASV2_ENCODER 0
++#define CONFIG_BMP_ENCODER 0
++#define CONFIG_DNXHD_ENCODER 0
++#define CONFIG_DVVIDEO_ENCODER 0
++#define CONFIG_FFV1_ENCODER 0
++#define CONFIG_FFVHUFF_ENCODER 0
++#define CONFIG_FLASHSV_ENCODER 0
++#define CONFIG_FLV_ENCODER 0
++#define CONFIG_GIF_ENCODER 0
++#define CONFIG_H261_ENCODER 0
++#define CONFIG_H263_ENCODER 0
++#define CONFIG_H263P_ENCODER 0
++#define CONFIG_HUFFYUV_ENCODER 0
++#define CONFIG_JPEGLS_ENCODER 0
++#define CONFIG_LJPEG_ENCODER 0
++#define CONFIG_MJPEG_ENCODER 0
++#define CONFIG_MPEG1VIDEO_ENCODER 0
++#define CONFIG_MPEG2VIDEO_ENCODER 0
++#define CONFIG_MPEG4_ENCODER 0
++#define CONFIG_MSMPEG4V1_ENCODER 0
++#define CONFIG_MSMPEG4V2_ENCODER 0
++#define CONFIG_MSMPEG4V3_ENCODER 0
++#define CONFIG_PAM_ENCODER 0
++#define CONFIG_PBM_ENCODER 0
++#define CONFIG_PCX_ENCODER 0
++#define CONFIG_PGM_ENCODER 0
++#define CONFIG_PGMYUV_ENCODER 0
++#define CONFIG_PNG_ENCODER 0
++#define CONFIG_PPM_ENCODER 0
++#define CONFIG_QTRLE_ENCODER 0
++#define CONFIG_RAWVIDEO_ENCODER 0
++#define CONFIG_ROQ_ENCODER 0
++#define CONFIG_RV10_ENCODER 0
++#define CONFIG_RV20_ENCODER 0
++#define CONFIG_SGI_ENCODER 0
++#define CONFIG_SNOW_ENCODER 0
++#define CONFIG_SVQ1_ENCODER 0
++#define CONFIG_TARGA_ENCODER 0
++#define CONFIG_TIFF_ENCODER 0
++#define CONFIG_V210_ENCODER 0
++#define CONFIG_WMV1_ENCODER 0
++#define CONFIG_WMV2_ENCODER 0
++#define CONFIG_ZLIB_ENCODER 0
++#define CONFIG_ZMBV_ENCODER 0
++#define CONFIG_AAC_ENCODER 0
++#define CONFIG_AC3_ENCODER 0
++#define CONFIG_ALAC_ENCODER 0
++#define CONFIG_FLAC_ENCODER 0
++#define CONFIG_MP2_ENCODER 0
++#define CONFIG_NELLYMOSER_ENCODER 0
++#define CONFIG_RA_144_ENCODER 0
++#define CONFIG_SONIC_ENCODER 0
++#define CONFIG_SONIC_LS_ENCODER 0
++#define CONFIG_VORBIS_ENCODER 0
++#define CONFIG_WMAV1_ENCODER 0
++#define CONFIG_WMAV2_ENCODER 0
++#define CONFIG_PCM_ALAW_ENCODER 0
++#define CONFIG_PCM_F32BE_ENCODER 0
++#define CONFIG_PCM_F32LE_ENCODER 0
++#define CONFIG_PCM_F64BE_ENCODER 0
++#define CONFIG_PCM_F64LE_ENCODER 0
++#define CONFIG_PCM_MULAW_ENCODER 0
++#define CONFIG_PCM_S8_ENCODER 0
++#define CONFIG_PCM_S16BE_ENCODER 0
++#define CONFIG_PCM_S16LE_ENCODER 0
++#define CONFIG_PCM_S24BE_ENCODER 0
++#define CONFIG_PCM_S24DAUD_ENCODER 0
++#define CONFIG_PCM_S24LE_ENCODER 0
++#define CONFIG_PCM_S32BE_ENCODER 0
++#define CONFIG_PCM_S32LE_ENCODER 0
++#define CONFIG_PCM_U8_ENCODER 0
++#define CONFIG_PCM_U16BE_ENCODER 0
++#define CONFIG_PCM_U16LE_ENCODER 0
++#define CONFIG_PCM_U24BE_ENCODER 0
++#define CONFIG_PCM_U24LE_ENCODER 0
++#define CONFIG_PCM_U32BE_ENCODER 0
++#define CONFIG_PCM_U32LE_ENCODER 0
++#define CONFIG_PCM_ZORK_ENCODER 0
++#define CONFIG_ROQ_DPCM_ENCODER 0
++#define CONFIG_ADPCM_ADX_ENCODER 0
++#define CONFIG_ADPCM_G722_ENCODER 0
++#define CONFIG_ADPCM_G726_ENCODER 0
++#define CONFIG_ADPCM_IMA_QT_ENCODER 0
++#define CONFIG_ADPCM_IMA_WAV_ENCODER 0
++#define CONFIG_ADPCM_MS_ENCODER 0
++#define CONFIG_ADPCM_SWF_ENCODER 0
++#define CONFIG_ADPCM_YAMAHA_ENCODER 0
++#define CONFIG_DVBSUB_ENCODER 0
++#define CONFIG_DVDSUB_ENCODER 0
++#define CONFIG_XSUB_ENCODER 0
++#define CONFIG_LIBDIRAC_ENCODER 0
++#define CONFIG_LIBFAAC_ENCODER 0
++#define CONFIG_LIBGSM_ENCODER 0
++#define CONFIG_LIBGSM_MS_ENCODER 0
++#define CONFIG_LIBMP3LAME_ENCODER 0
++#define CONFIG_LIBOPENCORE_AMRNB_ENCODER 0
++#define CONFIG_LIBSCHROEDINGER_ENCODER 0
++#define CONFIG_LIBTHEORA_ENCODER 0
++#define CONFIG_LIBVORBIS_ENCODER 0
++#define CONFIG_LIBVPX_ENCODER 1
++#define CONFIG_LIBX264_ENCODER 0
++#define CONFIG_LIBXAVS_ENCODER 0
++#define CONFIG_LIBXVID_ENCODER 0
++#define CONFIG_H263_VAAPI_HWACCEL 0
++#define CONFIG_H264_DXVA2_HWACCEL 0
++#define CONFIG_H264_VAAPI_HWACCEL 0
++#define CONFIG_MPEG2_DXVA2_HWACCEL 0
++#define CONFIG_MPEG2_VAAPI_HWACCEL 0
++#define CONFIG_MPEG4_VAAPI_HWACCEL 0
++#define CONFIG_VC1_DXVA2_HWACCEL 0
++#define CONFIG_VC1_VAAPI_HWACCEL 0
++#define CONFIG_WMV3_DXVA2_HWACCEL 0
++#define CONFIG_WMV3_VAAPI_HWACCEL 0
++#define CONFIG_AAC_PARSER 0
++#define CONFIG_AAC_LATM_PARSER 0
++#define CONFIG_AC3_PARSER 0
++#define CONFIG_CAVSVIDEO_PARSER 0
++#define CONFIG_DCA_PARSER 0
++#define CONFIG_DIRAC_PARSER 0
++#define CONFIG_DNXHD_PARSER 0
++#define CONFIG_DVBSUB_PARSER 0
++#define CONFIG_DVDSUB_PARSER 0
++#define CONFIG_H261_PARSER 0
++#define CONFIG_H263_PARSER 0
++#define CONFIG_H264_PARSER 0
++#define CONFIG_MJPEG_PARSER 0
++#define CONFIG_MLP_PARSER 0
++#define CONFIG_MPEG4VIDEO_PARSER 0
++#define CONFIG_MPEGAUDIO_PARSER 0
++#define CONFIG_MPEGVIDEO_PARSER 0
++#define CONFIG_PNM_PARSER 0
++#define CONFIG_VC1_PARSER 0
++#define CONFIG_VP3_PARSER 0
++#define CONFIG_VP8_PARSER 0
++#define CONFIG_AAC_ADTSTOASC_BSF 0
++#define CONFIG_CHOMP_BSF 0
++#define CONFIG_DUMP_EXTRADATA_BSF 0
++#define CONFIG_H264_MP4TOANNEXB_BSF 0
++#define CONFIG_MPEG4VIDEO_ES_BSF 0
++#define CONFIG_IMX_DUMP_HEADER_BSF 0
++#define CONFIG_MJPEGA_DUMP_HEADER_BSF 0
++#define CONFIG_MP3_HEADER_COMPRESS_BSF 0
++#define CONFIG_MP3_HEADER_DECOMPRESS_BSF 0
++#define CONFIG_MOV2TEXTSUB_BSF 0
++#define CONFIG_NOISE_BSF 0
++#define CONFIG_REMOVE_EXTRADATA_BSF 0
++#define CONFIG_TEXT2MOVSUB_BSF 0
++#define CONFIG_VC1_ASFTORCV_BSF 0
++#define CONFIG_VC1_ASFTOANNEXG_BSF 0
++#define CONFIG_AAC_DEMUXER 0
++#define CONFIG_AC3_DEMUXER 0
++#define CONFIG_AEA_DEMUXER 0
++#define CONFIG_AIFF_DEMUXER 0
++#define CONFIG_AMR_DEMUXER 0
++#define CONFIG_ANM_DEMUXER 0
++#define CONFIG_APC_DEMUXER 0
++#define CONFIG_APE_DEMUXER 0
++#define CONFIG_APPLEHTTP_DEMUXER 0
++#define CONFIG_ASF_DEMUXER 0
++#define CONFIG_ASS_DEMUXER 0
++#define CONFIG_AU_DEMUXER 0
++#define CONFIG_AVI_DEMUXER 0
++#define CONFIG_AVISYNTH_DEMUXER 0
++#define CONFIG_AVS_DEMUXER 0
++#define CONFIG_BETHSOFTVID_DEMUXER 0
++#define CONFIG_BFI_DEMUXER 0
++#define CONFIG_BINK_DEMUXER 0
++#define CONFIG_C93_DEMUXER 0
++#define CONFIG_CAF_DEMUXER 0
++#define CONFIG_CAVSVIDEO_DEMUXER 0
++#define CONFIG_CDG_DEMUXER 0
++#define CONFIG_DAUD_DEMUXER 0
++#define CONFIG_DIRAC_DEMUXER 0
++#define CONFIG_DNXHD_DEMUXER 0
++#define CONFIG_DSICIN_DEMUXER 0
++#define CONFIG_DTS_DEMUXER 0
++#define CONFIG_DV_DEMUXER 0
++#define CONFIG_DXA_DEMUXER 0
++#define CONFIG_EA_DEMUXER 0
++#define CONFIG_EA_CDATA_DEMUXER 0
++#define CONFIG_EAC3_DEMUXER 0
++#define CONFIG_FFM_DEMUXER 0
++#define CONFIG_FILMSTRIP_DEMUXER 0
++#define CONFIG_FLAC_DEMUXER 0
++#define CONFIG_FLIC_DEMUXER 0
++#define CONFIG_FLV_DEMUXER 0
++#define CONFIG_FOURXM_DEMUXER 0
++#define CONFIG_G722_DEMUXER 0
++#define CONFIG_GSM_DEMUXER 0
++#define CONFIG_GXF_DEMUXER 0
++#define CONFIG_H261_DEMUXER 0
++#define CONFIG_H263_DEMUXER 0
++#define CONFIG_H264_DEMUXER 0
++#define CONFIG_IDCIN_DEMUXER 0
++#define CONFIG_IFF_DEMUXER 0
++#define CONFIG_IMAGE2_DEMUXER 0
++#define CONFIG_IMAGE2PIPE_DEMUXER 0
++#define CONFIG_INGENIENT_DEMUXER 0
++#define CONFIG_IPMOVIE_DEMUXER 0
++#define CONFIG_ISS_DEMUXER 0
++#define CONFIG_IV8_DEMUXER 0
++#define CONFIG_IVF_DEMUXER 0
++#define CONFIG_LMLM4_DEMUXER 0
++#define CONFIG_LXF_DEMUXER 0
++#define CONFIG_M4V_DEMUXER 0
++#define CONFIG_MATROSKA_DEMUXER 1
++#define CONFIG_MJPEG_DEMUXER 0
++#define CONFIG_MLP_DEMUXER 0
++#define CONFIG_MM_DEMUXER 0
++#define CONFIG_MMF_DEMUXER 0
++#define CONFIG_MOV_DEMUXER 0
++#define CONFIG_MP3_DEMUXER 0
++#define CONFIG_MPC_DEMUXER 0
++#define CONFIG_MPC8_DEMUXER 0
++#define CONFIG_MPEGPS_DEMUXER 0
++#define CONFIG_MPEGTS_DEMUXER 0
++#define CONFIG_MPEGTSRAW_DEMUXER 0
++#define CONFIG_MPEGVIDEO_DEMUXER 0
++#define CONFIG_MSNWC_TCP_DEMUXER 0
++#define CONFIG_MTV_DEMUXER 0
++#define CONFIG_MVI_DEMUXER 0
++#define CONFIG_MXF_DEMUXER 0
++#define CONFIG_NC_DEMUXER 0
++#define CONFIG_NSV_DEMUXER 0
++#define CONFIG_NUT_DEMUXER 0
++#define CONFIG_NUV_DEMUXER 0
++#define CONFIG_OGG_DEMUXER 1
++#define CONFIG_OMA_DEMUXER 0
++#define CONFIG_PCM_ALAW_DEMUXER 0
++#define CONFIG_PCM_MULAW_DEMUXER 0
++#define CONFIG_PCM_F64BE_DEMUXER 0
++#define CONFIG_PCM_F64LE_DEMUXER 0
++#define CONFIG_PCM_F32BE_DEMUXER 0
++#define CONFIG_PCM_F32LE_DEMUXER 0
++#define CONFIG_PCM_S32BE_DEMUXER 0
++#define CONFIG_PCM_S32LE_DEMUXER 0
++#define CONFIG_PCM_S24BE_DEMUXER 0
++#define CONFIG_PCM_S24LE_DEMUXER 0
++#define CONFIG_PCM_S16BE_DEMUXER 0
++#define CONFIG_PCM_S16LE_DEMUXER 0
++#define CONFIG_PCM_S8_DEMUXER 0
++#define CONFIG_PCM_U32BE_DEMUXER 0
++#define CONFIG_PCM_U32LE_DEMUXER 0
++#define CONFIG_PCM_U24BE_DEMUXER 0
++#define CONFIG_PCM_U24LE_DEMUXER 0
++#define CONFIG_PCM_U16BE_DEMUXER 0
++#define CONFIG_PCM_U16LE_DEMUXER 0
++#define CONFIG_PCM_U8_DEMUXER 0
++#define CONFIG_PVA_DEMUXER 0
++#define CONFIG_QCP_DEMUXER 0
++#define CONFIG_R3D_DEMUXER 0
++#define CONFIG_RAWVIDEO_DEMUXER 0
++#define CONFIG_RL2_DEMUXER 0
++#define CONFIG_RM_DEMUXER 0
++#define CONFIG_ROQ_DEMUXER 0
++#define CONFIG_RPL_DEMUXER 0
++#define CONFIG_RSO_DEMUXER 0
++#define CONFIG_RTP_DEMUXER 0
++#define CONFIG_RTSP_DEMUXER 0
++#define CONFIG_SAP_DEMUXER 0
++#define CONFIG_SDP_DEMUXER 0
++#define CONFIG_SEGAFILM_DEMUXER 0
++#define CONFIG_SHORTEN_DEMUXER 0
++#define CONFIG_SIFF_DEMUXER 0
++#define CONFIG_SMACKER_DEMUXER 0
++#define CONFIG_SOL_DEMUXER 0
++#define CONFIG_SOX_DEMUXER 0
++#define CONFIG_SRT_DEMUXER 0
++#define CONFIG_STR_DEMUXER 0
++#define CONFIG_SWF_DEMUXER 0
++#define CONFIG_THP_DEMUXER 0
++#define CONFIG_TIERTEXSEQ_DEMUXER 0
++#define CONFIG_TMV_DEMUXER 0
++#define CONFIG_TRUEHD_DEMUXER 0
++#define CONFIG_TTA_DEMUXER 0
++#define CONFIG_TXD_DEMUXER 0
++#define CONFIG_TTY_DEMUXER 0
++#define CONFIG_VC1_DEMUXER 0
++#define CONFIG_VC1T_DEMUXER 0
++#define CONFIG_VMD_DEMUXER 0
++#define CONFIG_VOC_DEMUXER 0
++#define CONFIG_VQF_DEMUXER 0
++#define CONFIG_W64_DEMUXER 0
++#define CONFIG_WAV_DEMUXER 1
++#define CONFIG_WC3_DEMUXER 0
++#define CONFIG_WEBP_DEMUXER 0
++#define CONFIG_WSAUD_DEMUXER 0
++#define CONFIG_WSVQA_DEMUXER 0
++#define CONFIG_WV_DEMUXER 0
++#define CONFIG_XA_DEMUXER 0
++#define CONFIG_YOP_DEMUXER 0
++#define CONFIG_YUV4MPEGPIPE_DEMUXER 0
++#define CONFIG_LIBNUT_DEMUXER 0
++#define CONFIG_A64_MUXER 0
++#define CONFIG_AC3_MUXER 0
++#define CONFIG_ADTS_MUXER 0
++#define CONFIG_AIFF_MUXER 0
++#define CONFIG_AMR_MUXER 0
++#define CONFIG_ASF_MUXER 0
++#define CONFIG_ASS_MUXER 0
++#define CONFIG_ASF_STREAM_MUXER 0
++#define CONFIG_AU_MUXER 0
++#define CONFIG_AVI_MUXER 0
++#define CONFIG_AVM2_MUXER 0
++#define CONFIG_CAVSVIDEO_MUXER 0
++#define CONFIG_CRC_MUXER 0
++#define CONFIG_DAUD_MUXER 0
++#define CONFIG_DIRAC_MUXER 0
++#define CONFIG_DNXHD_MUXER 0
++#define CONFIG_DTS_MUXER 0
++#define CONFIG_DV_MUXER 0
++#define CONFIG_EAC3_MUXER 0
++#define CONFIG_FFM_MUXER 0
++#define CONFIG_FILMSTRIP_MUXER 0
++#define CONFIG_FLAC_MUXER 0
++#define CONFIG_FLV_MUXER 0
++#define CONFIG_FRAMECRC_MUXER 0
++#define CONFIG_FRAMEMD5_MUXER 0
++#define CONFIG_G722_MUXER 0
++#define CONFIG_GIF_MUXER 0
++#define CONFIG_GXF_MUXER 0
++#define CONFIG_H261_MUXER 0
++#define CONFIG_H263_MUXER 0
++#define CONFIG_H264_MUXER 0
++#define CONFIG_IMAGE2_MUXER 0
++#define CONFIG_IMAGE2PIPE_MUXER 0
++#define CONFIG_IPOD_MUXER 0
++#define CONFIG_M4V_MUXER 0
++#define CONFIG_MD5_MUXER 0
++#define CONFIG_MATROSKA_MUXER 0
++#define CONFIG_MATROSKA_AUDIO_MUXER 0
++#define CONFIG_MJPEG_MUXER 0
++#define CONFIG_MLP_MUXER 0
++#define CONFIG_MMF_MUXER 0
++#define CONFIG_MOV_MUXER 0
++#define CONFIG_MP2_MUXER 0
++#define CONFIG_MP3_MUXER 0
++#define CONFIG_MP4_MUXER 0
++#define CONFIG_MPEG1SYSTEM_MUXER 0
++#define CONFIG_MPEG1VCD_MUXER 0
++#define CONFIG_MPEG1VIDEO_MUXER 0
++#define CONFIG_MPEG2DVD_MUXER 0
++#define CONFIG_MPEG2SVCD_MUXER 0
++#define CONFIG_MPEG2VIDEO_MUXER 0
++#define CONFIG_MPEG2VOB_MUXER 0
++#define CONFIG_MPEGTS_MUXER 0
++#define CONFIG_MPJPEG_MUXER 0
++#define CONFIG_MXF_MUXER 0
++#define CONFIG_MXF_D10_MUXER 0
++#define CONFIG_NULL_MUXER 0
++#define CONFIG_NUT_MUXER 0
++#define CONFIG_OGG_MUXER 0
++#define CONFIG_PCM_ALAW_MUXER 0
++#define CONFIG_PCM_MULAW_MUXER 0
++#define CONFIG_PCM_F64BE_MUXER 0
++#define CONFIG_PCM_F64LE_MUXER 0
++#define CONFIG_PCM_F32BE_MUXER 0
++#define CONFIG_PCM_F32LE_MUXER 0
++#define CONFIG_PCM_S32BE_MUXER 0
++#define CONFIG_PCM_S32LE_MUXER 0
++#define CONFIG_PCM_S24BE_MUXER 0
++#define CONFIG_PCM_S24LE_MUXER 0
++#define CONFIG_PCM_S16BE_MUXER 0
++#define CONFIG_PCM_S16LE_MUXER 0
++#define CONFIG_PCM_S8_MUXER 0
++#define CONFIG_PCM_U32BE_MUXER 0
++#define CONFIG_PCM_U32LE_MUXER 0
++#define CONFIG_PCM_U24BE_MUXER 0
++#define CONFIG_PCM_U24LE_MUXER 0
++#define CONFIG_PCM_U16BE_MUXER 0
++#define CONFIG_PCM_U16LE_MUXER 0
++#define CONFIG_PCM_U8_MUXER 0
++#define CONFIG_PSP_MUXER 0
++#define CONFIG_RAWVIDEO_MUXER 0
++#define CONFIG_RM_MUXER 0
++#define CONFIG_ROQ_MUXER 0
++#define CONFIG_RSO_MUXER 0
++#define CONFIG_RTP_MUXER 0
++#define CONFIG_RTSP_MUXER 0
++#define CONFIG_SAP_MUXER 0
++#define CONFIG_SOX_MUXER 0
++#define CONFIG_SPDIF_MUXER 0
++#define CONFIG_SRT_MUXER 0
++#define CONFIG_SWF_MUXER 0
++#define CONFIG_TG2_MUXER 0
++#define CONFIG_TGP_MUXER 0
++#define CONFIG_TRUEHD_MUXER 0
++#define CONFIG_VC1T_MUXER 0
++#define CONFIG_VOC_MUXER 0
++#define CONFIG_WAV_MUXER 0
++#define CONFIG_WEBM_MUXER 0
++#define CONFIG_WEBP_MUXER 0
++#define CONFIG_YUV4MPEGPIPE_MUXER 0
++#define CONFIG_LIBNUT_MUXER 0
++#define CONFIG_ANULL_FILTER 0
++#define CONFIG_ANULLSRC_FILTER 0
++#define CONFIG_ANULLSINK_FILTER 0
++#define CONFIG_ASPECT_FILTER 0
++#define CONFIG_BLACKFRAME_FILTER 0
++#define CONFIG_CROP_FILTER 0
++#define CONFIG_CROPDETECT_FILTER 0
++#define CONFIG_DRAWBOX_FILTER 0
++#define CONFIG_FIFO_FILTER 0
++#define CONFIG_FORMAT_FILTER 0
++#define CONFIG_FREI0R_FILTER 0
++#define CONFIG_HFLIP_FILTER 0
++#define CONFIG_NOFORMAT_FILTER 0
++#define CONFIG_NULL_FILTER 0
++#define CONFIG_OCV_SMOOTH_FILTER 0
++#define CONFIG_PAD_FILTER 0
++#define CONFIG_PIXDESCTEST_FILTER 0
++#define CONFIG_PIXELASPECT_FILTER 0
++#define CONFIG_SCALE_FILTER 0
++#define CONFIG_SETPTS_FILTER 0
++#define CONFIG_SETTB_FILTER 0
++#define CONFIG_SLICIFY_FILTER 0
++#define CONFIG_TRANSPOSE_FILTER 0
++#define CONFIG_UNSHARP_FILTER 0
++#define CONFIG_VFLIP_FILTER 0
++#define CONFIG_YADIF_FILTER 0
++#define CONFIG_BUFFER_FILTER 0
++#define CONFIG_COLOR_FILTER 0
++#define CONFIG_NULLSRC_FILTER 0
++#define CONFIG_NULLSINK_FILTER 0
++#define CONFIG_CONCAT_PROTOCOL 0
++#define CONFIG_FILE_PROTOCOL 0
++#define CONFIG_GOPHER_PROTOCOL 0
++#define CONFIG_HTTP_PROTOCOL 0
++#define CONFIG_MMSH_PROTOCOL 0
++#define CONFIG_MMST_PROTOCOL 0
++#define CONFIG_MD5_PROTOCOL 0
++#define CONFIG_PIPE_PROTOCOL 0
++#define CONFIG_RTMP_PROTOCOL 0
++#define CONFIG_RTMPT_PROTOCOL 0
++#define CONFIG_RTMPE_PROTOCOL 0
++#define CONFIG_RTMPTE_PROTOCOL 0
++#define CONFIG_RTMPS_PROTOCOL 0
++#define CONFIG_RTP_PROTOCOL 0
++#define CONFIG_TCP_PROTOCOL 0
++#define CONFIG_UDP_PROTOCOL 0
++#define CONFIG_ALSA_INDEV 0
++#define CONFIG_BKTR_INDEV 0
++#define CONFIG_DV1394_INDEV 0
++#define CONFIG_JACK_INDEV 0
++#define CONFIG_OSS_INDEV 0
++#define CONFIG_V4L2_INDEV 0
++#define CONFIG_V4L_INDEV 0
++#define CONFIG_VFWCAP_INDEV 0
++#define CONFIG_X11_GRAB_DEVICE_INDEV 0
++#define CONFIG_LIBDC1394_INDEV 0
++#define CONFIG_ALSA_OUTDEV 0
++#define CONFIG_OSS_OUTDEV 0
++#endif /* FFMPEG_CONFIG_H */
diff --git a/www/chromium/files/patch-third_party__ffmpeg__config__Chromium__freebsd__x64__config.h b/www/chromium/files/patch-third_party__ffmpeg__config__Chromium__freebsd__x64__config.h
new file mode 100644
index 000000000000..29f3252c7369
--- /dev/null
+++ b/www/chromium/files/patch-third_party__ffmpeg__config__Chromium__freebsd__x64__config.h
@@ -0,0 +1,963 @@
+--- ./third_party/ffmpeg/config/Chromium/freebsd/x64/config.h.orig 2010-12-20 20:15:08.000000000 +0100
++++ ./third_party/ffmpeg/config/Chromium/freebsd/x64/config.h 2010-12-20 20:15:08.000000000 +0100
+@@ -0,0 +1,960 @@
++/* Automatically generated by configure - do not modify! */
++#ifndef FFMPEG_CONFIG_H
++#define FFMPEG_CONFIG_H
++#define FFMPEG_CONFIGURATION "--disable-everything --disable-network --disable-bzlib --disable-zlib --disable-swscale --disable-amd3dnow --disable-amd3dnowext --enable-shared --enable-libvpx --enable-decoder='theora,vorbis,libvpx,pcm_u8,pcm_s16le,pcm_f32le' --enable-encoder=libvpx --enable-demuxer='ogg,matroska,wav' --extra-ldflags=-L../../libvpx/linux64/usr/local/lib"
++#define FFMPEG_LICENSE "LGPL version 2.1 or later"
++#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
++#define CC_TYPE "gcc" /* rene: what about clang? does $(CC) work? */
++#define CC_VERSION __VERSION__
++#define restrict restrict
++#define ASMALIGN(ZEROBITS) ".p2align " #ZEROBITS "\n\t"
++#define EXTERN_PREFIX ""
++#define EXTERN_ASM
++#define SLIBSUF ".so"
++#define ARCH_ALPHA 0
++#define ARCH_ARM 0
++#define ARCH_AVR32 0
++#define ARCH_AVR32_AP 0
++#define ARCH_AVR32_UC 0
++#define ARCH_BFIN 0
++#define ARCH_IA64 0
++#define ARCH_M68K 0
++#define ARCH_MIPS 0
++#define ARCH_MIPS64 0
++#define ARCH_PARISC 0
++#define ARCH_PPC 0
++#define ARCH_PPC64 0
++#define ARCH_S390 0
++#define ARCH_SH4 0
++#define ARCH_SPARC 0
++#define ARCH_SPARC64 0
++#define ARCH_TOMI 0
++#define ARCH_X86 1
++#define ARCH_X86_32 0
++#define ARCH_X86_64 1
++#define HAVE_ALTIVEC 0
++#define HAVE_AMD3DNOW 0
++#define HAVE_AMD3DNOWEXT 0
++#define HAVE_ARMV5TE 0
++#define HAVE_ARMV6 0
++#define HAVE_ARMV6T2 0
++#define HAVE_ARMVFP 0
++#define HAVE_IWMMXT 0
++#define HAVE_MMI 0
++#define HAVE_MMX 1
++#define HAVE_MMX2 1
++#define HAVE_NEON 0
++#define HAVE_PPC4XX 0
++#define HAVE_SSE 1
++#define HAVE_SSSE3 1
++#define HAVE_VIS 0
++#define HAVE_BIGENDIAN 0
++#define HAVE_FAST_UNALIGNED 1
++#define HAVE_PTHREADS 1
++#define HAVE_W32THREADS 0
++#define HAVE_ALIGNED_STACK 1
++#define HAVE_ALSA_ASOUNDLIB_H 0
++#define HAVE_ALTIVEC_H 0
++#define HAVE_ARPA_INET_H 0
++#define HAVE_ATTRIBUTE_MAY_ALIAS 1
++#define HAVE_ATTRIBUTE_PACKED 1
++#define HAVE_BSWAP 1
++#define HAVE_CLOSESOCKET 0
++#define HAVE_CMOV 1
++#define HAVE_CONIO_H 0
++#define HAVE_DCBZL 0
++#define HAVE_DEV_BKTR_IOCTL_BT848_H 0
++#define HAVE_DEV_BKTR_IOCTL_METEOR_H 0
++#define HAVE_DEV_IC_BT8XX_H 0
++#define HAVE_DEV_VIDEO_METEOR_IOCTL_METEOR_H 0
++#define HAVE_DEV_VIDEO_BKTR_IOCTL_BT848_H 0
++#define HAVE_DLFCN_H 1
++#define HAVE_DLOPEN 1
++#define HAVE_DOS_PATHS 0
++#define HAVE_EBP_AVAILABLE 1
++#define HAVE_EBX_AVAILABLE 1
++#define HAVE_EXP2 1
++#define HAVE_EXP2F 1
++#define HAVE_FAST_64BIT 1
++#define HAVE_FAST_CLZ 1
++#define HAVE_FAST_CMOV 1
++#define HAVE_FCNTL 1
++#define HAVE_FORK 1
++#define HAVE_GETADDRINFO 1
++#define HAVE_GETHRTIME 0
++#define HAVE_GETPROCESSMEMORYINFO 0
++#define HAVE_GETPROCESSTIMES 0
++#define HAVE_GETRUSAGE 1
++#define HAVE_GNU_AS 1
++#define HAVE_STRUCT_RUSAGE_RU_MAXRSS 1
++#define HAVE_IBM_ASM 0
++#define HAVE_INET_ATON 1
++#define HAVE_INLINE_ASM 1
++#define HAVE_ISATTY 1
++#define HAVE_LDBRX 0
++#define HAVE_LIBDC1394_1 0
++#define HAVE_LIBDC1394_2 0
++#define HAVE_LLRINT 1
++#define HAVE_LLRINTF 1
++#define HAVE_LOCAL_ALIGNED_16 1
++#define HAVE_LOCAL_ALIGNED_8 1
++#define HAVE_LOG2 0
++#define HAVE_LOG2F 0
++#define HAVE_LOONGSON 0
++#define HAVE_LRINT 1
++#define HAVE_LRINTF 1
++#define HAVE_LZO1X_999_COMPRESS 0
++#define HAVE_MACHINE_IOCTL_BT848_H 0
++#define HAVE_MACHINE_IOCTL_METEOR_H 0
++#define HAVE_MALLOC_H 0
++#define HAVE_MEMALIGN 0
++#define HAVE_MKSTEMP 1
++#define HAVE_PLD 0
++#define HAVE_POSIX_MEMALIGN 1
++#define HAVE_ROUND 1
++#define HAVE_ROUNDF 1
++#define HAVE_SDL 0
++#define HAVE_SDL_VIDEO_SIZE 0
++#define HAVE_SETMODE 0
++#define HAVE_SOCKLEN_T 0
++#define HAVE_SOUNDCARD_H 0
++#define HAVE_POLL_H 1
++#define HAVE_SETRLIMIT 1
++#define HAVE_STRERROR_R 1
++#define HAVE_STRTOK_R 1
++#define HAVE_STRUCT_ADDRINFO 0
++#define HAVE_STRUCT_IPV6_MREQ 0
++#define HAVE_STRUCT_SOCKADDR_IN6 0
++#define HAVE_STRUCT_SOCKADDR_SA_LEN 0
++#define HAVE_STRUCT_SOCKADDR_STORAGE 0
++#define HAVE_SYMVER 0
++#define HAVE_SYMVER_GNU_ASM 1
++#define HAVE_SYMVER_ASM_LABEL 0
++#define HAVE_SYS_MMAN_H 1
++#define HAVE_SYS_RESOURCE_H 1
++#define HAVE_SYS_SELECT_H 1
++#define HAVE_SYS_SOUNDCARD_H 1
++#define HAVE_SYS_VIDEOIO_H 0
++#define HAVE_TEN_OPERANDS 1
++#define HAVE_TERMIOS_H 1
++#define HAVE_THREADS 1
++#define HAVE_TRUNCF 1
++#define HAVE_VFP_ARGS 0
++#define HAVE_VIRTUALALLOC 0
++#define HAVE_WINSOCK2_H 0
++#define HAVE_XFORM_ASM 0
++#define HAVE_XMM_CLOBBERS 1
++#define HAVE_YASM 1
++#define CONFIG_BSFS 0
++#define CONFIG_DECODERS 1
++#define CONFIG_DEMUXERS 1
++#define CONFIG_ENCODERS 1
++#define CONFIG_FILTERS 0
++#define CONFIG_HWACCELS 0
++#define CONFIG_INDEVS 0
++#define CONFIG_MUXERS 0
++#define CONFIG_OUTDEVS 0
++#define CONFIG_PARSERS 0
++#define CONFIG_PROTOCOLS 1
++#define CONFIG_AANDCT 0
++#define CONFIG_AVCODEC 1
++#define CONFIG_AVCORE 1
++#define CONFIG_AVDEVICE 1
++#define CONFIG_AVFILTER 1
++#define CONFIG_AVFORMAT 1
++#define CONFIG_AVISYNTH 0
++#define CONFIG_BZLIB 0
++#define CONFIG_DCT 0
++#define CONFIG_DOC 0
++#define CONFIG_DWT 0
++#define CONFIG_DXVA2 0
++#define CONFIG_FASTDIV 1
++#define CONFIG_FFMPEG 0
++#define CONFIG_FFPLAY 0
++#define CONFIG_FFPROBE 1
++#define CONFIG_FFSERVER 0
++#define CONFIG_FFT 1
++#define CONFIG_FREI0R 0
++#define CONFIG_GOLOMB 1
++#define CONFIG_GPL 0
++#define CONFIG_GRAY 0
++#define CONFIG_H264DSP 0
++#define CONFIG_H264PRED 0
++#define CONFIG_HARDCODED_TABLES 0
++#define CONFIG_HUFFMAN 0
++#define CONFIG_LIBDC1394 0
++#define CONFIG_LIBDIRAC 0
++#define CONFIG_LIBFAAC 0
++#define CONFIG_LIBGSM 0
++#define CONFIG_LIBMP3LAME 0
++#define CONFIG_LIBNUT 0
++#define CONFIG_LIBOPENCORE_AMRNB 0
++#define CONFIG_LIBOPENCORE_AMRWB 0
++#define CONFIG_LIBOPENCV 0
++#define CONFIG_LIBOPENJPEG 0
++#define CONFIG_LIBRTMP 0
++#define CONFIG_LIBSCHROEDINGER 0
++#define CONFIG_LIBSPEEX 0
++#define CONFIG_LIBTHEORA 0
++#define CONFIG_LIBVORBIS 0
++#define CONFIG_LIBVPX 1
++#define CONFIG_LIBX264 0
++#define CONFIG_LIBXAVS 0
++#define CONFIG_LIBXVID 0
++#define CONFIG_LPC 0
++#define CONFIG_LSP 0
++#define CONFIG_MDCT 1
++#define CONFIG_MEMALIGN_HACK 0
++#define CONFIG_MLIB 0
++#define CONFIG_MPEGAUDIO_HP 1
++#define CONFIG_NETWORK 0
++#define CONFIG_NONFREE 0
++#define CONFIG_PIC 1
++#define CONFIG_POSTPROC 0
++#define CONFIG_RDFT 0
++#define CONFIG_RTPDEC 0
++#define CONFIG_RUNTIME_CPUDETECT 0
++#define CONFIG_SHARED 1
++#define CONFIG_SMALL 0
++#define CONFIG_SRAM 0
++#define CONFIG_STATIC 1
++#define CONFIG_SWSCALE 0
++#define CONFIG_SWSCALE_ALPHA 1
++#define CONFIG_VAAPI 0
++#define CONFIG_VDPAU 0
++#define CONFIG_VERSION3 0
++#define CONFIG_X11GRAB 0
++#define CONFIG_ZLIB 0
++#define CONFIG_AVUTIL 1
++#define CONFIG_GPLV3 0
++#define CONFIG_LGPLV3 0
++#define CONFIG_AASC_DECODER 0
++#define CONFIG_AMV_DECODER 0
++#define CONFIG_ANM_DECODER 0
++#define CONFIG_ANSI_DECODER 0
++#define CONFIG_ASV1_DECODER 0
++#define CONFIG_ASV2_DECODER 0
++#define CONFIG_AURA_DECODER 0
++#define CONFIG_AURA2_DECODER 0
++#define CONFIG_AVS_DECODER 0
++#define CONFIG_BETHSOFTVID_DECODER 0
++#define CONFIG_BFI_DECODER 0
++#define CONFIG_BINK_DECODER 0
++#define CONFIG_BMP_DECODER 0
++#define CONFIG_C93_DECODER 0
++#define CONFIG_CAVS_DECODER 0
++#define CONFIG_CDGRAPHICS_DECODER 0
++#define CONFIG_CINEPAK_DECODER 0
++#define CONFIG_CLJR_DECODER 0
++#define CONFIG_CSCD_DECODER 0
++#define CONFIG_CYUV_DECODER 0
++#define CONFIG_DNXHD_DECODER 0
++#define CONFIG_DPX_DECODER 0
++#define CONFIG_DSICINVIDEO_DECODER 0
++#define CONFIG_DVVIDEO_DECODER 0
++#define CONFIG_DXA_DECODER 0
++#define CONFIG_EACMV_DECODER 0
++#define CONFIG_EAMAD_DECODER 0
++#define CONFIG_EATGQ_DECODER 0
++#define CONFIG_EATGV_DECODER 0
++#define CONFIG_EATQI_DECODER 0
++#define CONFIG_EIGHTBPS_DECODER 0
++#define CONFIG_EIGHTSVX_EXP_DECODER 0
++#define CONFIG_EIGHTSVX_FIB_DECODER 0
++#define CONFIG_ESCAPE124_DECODER 0
++#define CONFIG_FFV1_DECODER 0
++#define CONFIG_FFVHUFF_DECODER 0
++#define CONFIG_FLASHSV_DECODER 0
++#define CONFIG_FLIC_DECODER 0
++#define CONFIG_FLV_DECODER 0
++#define CONFIG_FOURXM_DECODER 0
++#define CONFIG_FRAPS_DECODER 0
++#define CONFIG_FRWU_DECODER 0
++#define CONFIG_GIF_DECODER 0
++#define CONFIG_H261_DECODER 0
++#define CONFIG_H263_DECODER 0
++#define CONFIG_H263I_DECODER 0
++#define CONFIG_H264_DECODER 0
++#define CONFIG_H264_VDPAU_DECODER 0
++#define CONFIG_HUFFYUV_DECODER 0
++#define CONFIG_IDCIN_DECODER 0
++#define CONFIG_IFF_BYTERUN1_DECODER 0
++#define CONFIG_IFF_ILBM_DECODER 0
++#define CONFIG_INDEO2_DECODER 0
++#define CONFIG_INDEO3_DECODER 0
++#define CONFIG_INDEO5_DECODER 0
++#define CONFIG_INTERPLAY_VIDEO_DECODER 0
++#define CONFIG_JPEGLS_DECODER 0
++#define CONFIG_KGV1_DECODER 0
++#define CONFIG_KMVC_DECODER 0
++#define CONFIG_LOCO_DECODER 0
++#define CONFIG_MDEC_DECODER 0
++#define CONFIG_MIMIC_DECODER 0
++#define CONFIG_MJPEG_DECODER 0
++#define CONFIG_MJPEGB_DECODER 0
++#define CONFIG_MMVIDEO_DECODER 0
++#define CONFIG_MOTIONPIXELS_DECODER 0
++#define CONFIG_MPEG_XVMC_DECODER 0
++#define CONFIG_MPEG1VIDEO_DECODER 0
++#define CONFIG_MPEG2VIDEO_DECODER 0
++#define CONFIG_MPEG4_DECODER 0
++#define CONFIG_MPEG4_VDPAU_DECODER 0
++#define CONFIG_MPEGVIDEO_DECODER 0
++#define CONFIG_MPEG_VDPAU_DECODER 0
++#define CONFIG_MPEG1_VDPAU_DECODER 0
++#define CONFIG_MSMPEG4V1_DECODER 0
++#define CONFIG_MSMPEG4V2_DECODER 0
++#define CONFIG_MSMPEG4V3_DECODER 0
++#define CONFIG_MSRLE_DECODER 0
++#define CONFIG_MSVIDEO1_DECODER 0
++#define CONFIG_MSZH_DECODER 0
++#define CONFIG_NUV_DECODER 0
++#define CONFIG_PAM_DECODER 0
++#define CONFIG_PBM_DECODER 0
++#define CONFIG_PCX_DECODER 0
++#define CONFIG_PGM_DECODER 0
++#define CONFIG_PGMYUV_DECODER 0
++#define CONFIG_PICTOR_DECODER 0
++#define CONFIG_PNG_DECODER 0
++#define CONFIG_PPM_DECODER 0
++#define CONFIG_PTX_DECODER 0
++#define CONFIG_QDRAW_DECODER 0
++#define CONFIG_QPEG_DECODER 0
++#define CONFIG_QTRLE_DECODER 0
++#define CONFIG_R10K_DECODER 0
++#define CONFIG_R210_DECODER 0
++#define CONFIG_RAWVIDEO_DECODER 0
++#define CONFIG_RL2_DECODER 0
++#define CONFIG_ROQ_DECODER 0
++#define CONFIG_RPZA_DECODER 0
++#define CONFIG_RV10_DECODER 0
++#define CONFIG_RV20_DECODER 0
++#define CONFIG_RV30_DECODER 0
++#define CONFIG_RV40_DECODER 0
++#define CONFIG_SGI_DECODER 0
++#define CONFIG_SMACKER_DECODER 0
++#define CONFIG_SMC_DECODER 0
++#define CONFIG_SNOW_DECODER 0
++#define CONFIG_SP5X_DECODER 0
++#define CONFIG_SUNRAST_DECODER 0
++#define CONFIG_SVQ1_DECODER 0
++#define CONFIG_SVQ3_DECODER 0
++#define CONFIG_TARGA_DECODER 0
++#define CONFIG_THEORA_DECODER 1
++#define CONFIG_THP_DECODER 0
++#define CONFIG_TIERTEXSEQVIDEO_DECODER 0
++#define CONFIG_TIFF_DECODER 0
++#define CONFIG_TMV_DECODER 0
++#define CONFIG_TRUEMOTION1_DECODER 0
++#define CONFIG_TRUEMOTION2_DECODER 0
++#define CONFIG_TSCC_DECODER 0
++#define CONFIG_TXD_DECODER 0
++#define CONFIG_ULTI_DECODER 0
++#define CONFIG_V210_DECODER 0
++#define CONFIG_V210X_DECODER 0
++#define CONFIG_VB_DECODER 0
++#define CONFIG_VC1_DECODER 0
++#define CONFIG_VC1_VDPAU_DECODER 0
++#define CONFIG_VCR1_DECODER 0
++#define CONFIG_VMDVIDEO_DECODER 0
++#define CONFIG_VMNC_DECODER 0
++#define CONFIG_VP3_DECODER 1
++#define CONFIG_VP5_DECODER 0
++#define CONFIG_VP6_DECODER 0
++#define CONFIG_VP6A_DECODER 0
++#define CONFIG_VP6F_DECODER 0
++#define CONFIG_VP8_DECODER 0
++#define CONFIG_VQA_DECODER 0
++#define CONFIG_WMV1_DECODER 0
++#define CONFIG_WMV2_DECODER 0
++#define CONFIG_WMV3_DECODER 0
++#define CONFIG_WMV3_VDPAU_DECODER 0
++#define CONFIG_WNV1_DECODER 0
++#define CONFIG_XAN_WC3_DECODER 0
++#define CONFIG_XL_DECODER 0
++#define CONFIG_YOP_DECODER 0
++#define CONFIG_ZLIB_DECODER 0
++#define CONFIG_ZMBV_DECODER 0
++#define CONFIG_AAC_DECODER 0
++#define CONFIG_AAC_LATM_DECODER 0
++#define CONFIG_AC3_DECODER 0
++#define CONFIG_ALAC_DECODER 0
++#define CONFIG_ALS_DECODER 0
++#define CONFIG_AMRNB_DECODER 0
++#define CONFIG_APE_DECODER 0
++#define CONFIG_ATRAC1_DECODER 0
++#define CONFIG_ATRAC3_DECODER 0
++#define CONFIG_BINKAUDIO_DCT_DECODER 0
++#define CONFIG_BINKAUDIO_RDFT_DECODER 0
++#define CONFIG_COOK_DECODER 0
++#define CONFIG_DCA_DECODER 0
++#define CONFIG_DSICINAUDIO_DECODER 0
++#define CONFIG_EAC3_DECODER 0
++#define CONFIG_FLAC_DECODER 0
++#define CONFIG_GSM_DECODER 0
++#define CONFIG_GSM_MS_DECODER 0
++#define CONFIG_IMC_DECODER 0
++#define CONFIG_MACE3_DECODER 0
++#define CONFIG_MACE6_DECODER 0
++#define CONFIG_MLP_DECODER 0
++#define CONFIG_MP1_DECODER 0
++#define CONFIG_MP1FLOAT_DECODER 0
++#define CONFIG_MP2_DECODER 0
++#define CONFIG_MP2FLOAT_DECODER 0
++#define CONFIG_MP3_DECODER 0
++#define CONFIG_MP3FLOAT_DECODER 0
++#define CONFIG_MP3ADU_DECODER 0
++#define CONFIG_MP3ADUFLOAT_DECODER 0
++#define CONFIG_MP3ON4_DECODER 0
++#define CONFIG_MP3ON4FLOAT_DECODER 0
++#define CONFIG_MPC7_DECODER 0
++#define CONFIG_MPC8_DECODER 0
++#define CONFIG_NELLYMOSER_DECODER 0
++#define CONFIG_QCELP_DECODER 0
++#define CONFIG_QDM2_DECODER 0
++#define CONFIG_RA_144_DECODER 0
++#define CONFIG_RA_288_DECODER 0
++#define CONFIG_SHORTEN_DECODER 0
++#define CONFIG_SIPR_DECODER 0
++#define CONFIG_SMACKAUD_DECODER 0
++#define CONFIG_SONIC_DECODER 0
++#define CONFIG_TRUEHD_DECODER 0
++#define CONFIG_TRUESPEECH_DECODER 0
++#define CONFIG_TTA_DECODER 0
++#define CONFIG_TWINVQ_DECODER 0
++#define CONFIG_VMDAUDIO_DECODER 0
++#define CONFIG_VORBIS_DECODER 1
++#define CONFIG_WAVPACK_DECODER 0
++#define CONFIG_WMAPRO_DECODER 0
++#define CONFIG_WMAV1_DECODER 0
++#define CONFIG_WMAV2_DECODER 0
++#define CONFIG_WMAVOICE_DECODER 0
++#define CONFIG_WS_SND1_DECODER 0
++#define CONFIG_PCM_ALAW_DECODER 0
++#define CONFIG_PCM_BLURAY_DECODER 0
++#define CONFIG_PCM_DVD_DECODER 0
++#define CONFIG_PCM_F32BE_DECODER 0
++#define CONFIG_PCM_F32LE_DECODER 1
++#define CONFIG_PCM_F64BE_DECODER 0
++#define CONFIG_PCM_F64LE_DECODER 0
++#define CONFIG_PCM_LXF_DECODER 0
++#define CONFIG_PCM_MULAW_DECODER 0
++#define CONFIG_PCM_S8_DECODER 0
++#define CONFIG_PCM_S16BE_DECODER 0
++#define CONFIG_PCM_S16LE_DECODER 1
++#define CONFIG_PCM_S16LE_PLANAR_DECODER 0
++#define CONFIG_PCM_S24BE_DECODER 0
++#define CONFIG_PCM_S24DAUD_DECODER 0
++#define CONFIG_PCM_S24LE_DECODER 0
++#define CONFIG_PCM_S32BE_DECODER 0
++#define CONFIG_PCM_S32LE_DECODER 0
++#define CONFIG_PCM_U8_DECODER 1
++#define CONFIG_PCM_U16BE_DECODER 0
++#define CONFIG_PCM_U16LE_DECODER 0
++#define CONFIG_PCM_U24BE_DECODER 0
++#define CONFIG_PCM_U24LE_DECODER 0
++#define CONFIG_PCM_U32BE_DECODER 0
++#define CONFIG_PCM_U32LE_DECODER 0
++#define CONFIG_PCM_ZORK_DECODER 0
++#define CONFIG_INTERPLAY_DPCM_DECODER 0
++#define CONFIG_ROQ_DPCM_DECODER 0
++#define CONFIG_SOL_DPCM_DECODER 0
++#define CONFIG_XAN_DPCM_DECODER 0
++#define CONFIG_ADPCM_4XM_DECODER 0
++#define CONFIG_ADPCM_ADX_DECODER 0
++#define CONFIG_ADPCM_CT_DECODER 0
++#define CONFIG_ADPCM_EA_DECODER 0
++#define CONFIG_ADPCM_EA_MAXIS_XA_DECODER 0
++#define CONFIG_ADPCM_EA_R1_DECODER 0
++#define CONFIG_ADPCM_EA_R2_DECODER 0
++#define CONFIG_ADPCM_EA_R3_DECODER 0
++#define CONFIG_ADPCM_EA_XAS_DECODER 0
++#define CONFIG_ADPCM_G722_DECODER 0
++#define CONFIG_ADPCM_G726_DECODER 0
++#define CONFIG_ADPCM_IMA_AMV_DECODER 0
++#define CONFIG_ADPCM_IMA_DK3_DECODER 0
++#define CONFIG_ADPCM_IMA_DK4_DECODER 0
++#define CONFIG_ADPCM_IMA_EA_EACS_DECODER 0
++#define CONFIG_ADPCM_IMA_EA_SEAD_DECODER 0
++#define CONFIG_ADPCM_IMA_ISS_DECODER 0
++#define CONFIG_ADPCM_IMA_QT_DECODER 0
++#define CONFIG_ADPCM_IMA_SMJPEG_DECODER 0
++#define CONFIG_ADPCM_IMA_WAV_DECODER 0
++#define CONFIG_ADPCM_IMA_WS_DECODER 0
++#define CONFIG_ADPCM_MS_DECODER 0
++#define CONFIG_ADPCM_SBPRO_2_DECODER 0
++#define CONFIG_ADPCM_SBPRO_3_DECODER 0
++#define CONFIG_ADPCM_SBPRO_4_DECODER 0
++#define CONFIG_ADPCM_SWF_DECODER 0
++#define CONFIG_ADPCM_THP_DECODER 0
++#define CONFIG_ADPCM_XA_DECODER 0
++#define CONFIG_ADPCM_YAMAHA_DECODER 0
++#define CONFIG_DVBSUB_DECODER 0
++#define CONFIG_DVDSUB_DECODER 0
++#define CONFIG_PGSSUB_DECODER 0
++#define CONFIG_XSUB_DECODER 0
++#define CONFIG_LIBDIRAC_DECODER 0
++#define CONFIG_LIBGSM_DECODER 0
++#define CONFIG_LIBGSM_MS_DECODER 0
++#define CONFIG_LIBOPENCORE_AMRNB_DECODER 0
++#define CONFIG_LIBOPENCORE_AMRWB_DECODER 0
++#define CONFIG_LIBOPENJPEG_DECODER 0
++#define CONFIG_LIBSCHROEDINGER_DECODER 0
++#define CONFIG_LIBSPEEX_DECODER 0
++#define CONFIG_LIBVPX_DECODER 1
++#define CONFIG_A64MULTI_ENCODER 0
++#define CONFIG_A64MULTI5_ENCODER 0
++#define CONFIG_ASV1_ENCODER 0
++#define CONFIG_ASV2_ENCODER 0
++#define CONFIG_BMP_ENCODER 0
++#define CONFIG_DNXHD_ENCODER 0
++#define CONFIG_DVVIDEO_ENCODER 0
++#define CONFIG_FFV1_ENCODER 0
++#define CONFIG_FFVHUFF_ENCODER 0
++#define CONFIG_FLASHSV_ENCODER 0
++#define CONFIG_FLV_ENCODER 0
++#define CONFIG_GIF_ENCODER 0
++#define CONFIG_H261_ENCODER 0
++#define CONFIG_H263_ENCODER 0
++#define CONFIG_H263P_ENCODER 0
++#define CONFIG_HUFFYUV_ENCODER 0
++#define CONFIG_JPEGLS_ENCODER 0
++#define CONFIG_LJPEG_ENCODER 0
++#define CONFIG_MJPEG_ENCODER 0
++#define CONFIG_MPEG1VIDEO_ENCODER 0
++#define CONFIG_MPEG2VIDEO_ENCODER 0
++#define CONFIG_MPEG4_ENCODER 0
++#define CONFIG_MSMPEG4V1_ENCODER 0
++#define CONFIG_MSMPEG4V2_ENCODER 0
++#define CONFIG_MSMPEG4V3_ENCODER 0
++#define CONFIG_PAM_ENCODER 0
++#define CONFIG_PBM_ENCODER 0
++#define CONFIG_PCX_ENCODER 0
++#define CONFIG_PGM_ENCODER 0
++#define CONFIG_PGMYUV_ENCODER 0
++#define CONFIG_PNG_ENCODER 0
++#define CONFIG_PPM_ENCODER 0
++#define CONFIG_QTRLE_ENCODER 0
++#define CONFIG_RAWVIDEO_ENCODER 0
++#define CONFIG_ROQ_ENCODER 0
++#define CONFIG_RV10_ENCODER 0
++#define CONFIG_RV20_ENCODER 0
++#define CONFIG_SGI_ENCODER 0
++#define CONFIG_SNOW_ENCODER 0
++#define CONFIG_SVQ1_ENCODER 0
++#define CONFIG_TARGA_ENCODER 0
++#define CONFIG_TIFF_ENCODER 0
++#define CONFIG_V210_ENCODER 0
++#define CONFIG_WMV1_ENCODER 0
++#define CONFIG_WMV2_ENCODER 0
++#define CONFIG_ZLIB_ENCODER 0
++#define CONFIG_ZMBV_ENCODER 0
++#define CONFIG_AAC_ENCODER 0
++#define CONFIG_AC3_ENCODER 0
++#define CONFIG_ALAC_ENCODER 0
++#define CONFIG_FLAC_ENCODER 0
++#define CONFIG_MP2_ENCODER 0
++#define CONFIG_NELLYMOSER_ENCODER 0
++#define CONFIG_RA_144_ENCODER 0
++#define CONFIG_SONIC_ENCODER 0
++#define CONFIG_SONIC_LS_ENCODER 0
++#define CONFIG_VORBIS_ENCODER 0
++#define CONFIG_WMAV1_ENCODER 0
++#define CONFIG_WMAV2_ENCODER 0
++#define CONFIG_PCM_ALAW_ENCODER 0
++#define CONFIG_PCM_F32BE_ENCODER 0
++#define CONFIG_PCM_F32LE_ENCODER 0
++#define CONFIG_PCM_F64BE_ENCODER 0
++#define CONFIG_PCM_F64LE_ENCODER 0
++#define CONFIG_PCM_MULAW_ENCODER 0
++#define CONFIG_PCM_S8_ENCODER 0
++#define CONFIG_PCM_S16BE_ENCODER 0
++#define CONFIG_PCM_S16LE_ENCODER 0
++#define CONFIG_PCM_S24BE_ENCODER 0
++#define CONFIG_PCM_S24DAUD_ENCODER 0
++#define CONFIG_PCM_S24LE_ENCODER 0
++#define CONFIG_PCM_S32BE_ENCODER 0
++#define CONFIG_PCM_S32LE_ENCODER 0
++#define CONFIG_PCM_U8_ENCODER 0
++#define CONFIG_PCM_U16BE_ENCODER 0
++#define CONFIG_PCM_U16LE_ENCODER 0
++#define CONFIG_PCM_U24BE_ENCODER 0
++#define CONFIG_PCM_U24LE_ENCODER 0
++#define CONFIG_PCM_U32BE_ENCODER 0
++#define CONFIG_PCM_U32LE_ENCODER 0
++#define CONFIG_PCM_ZORK_ENCODER 0
++#define CONFIG_ROQ_DPCM_ENCODER 0
++#define CONFIG_ADPCM_ADX_ENCODER 0
++#define CONFIG_ADPCM_G722_ENCODER 0
++#define CONFIG_ADPCM_G726_ENCODER 0
++#define CONFIG_ADPCM_IMA_QT_ENCODER 0
++#define CONFIG_ADPCM_IMA_WAV_ENCODER 0
++#define CONFIG_ADPCM_MS_ENCODER 0
++#define CONFIG_ADPCM_SWF_ENCODER 0
++#define CONFIG_ADPCM_YAMAHA_ENCODER 0
++#define CONFIG_DVBSUB_ENCODER 0
++#define CONFIG_DVDSUB_ENCODER 0
++#define CONFIG_XSUB_ENCODER 0
++#define CONFIG_LIBDIRAC_ENCODER 0
++#define CONFIG_LIBFAAC_ENCODER 0
++#define CONFIG_LIBGSM_ENCODER 0
++#define CONFIG_LIBGSM_MS_ENCODER 0
++#define CONFIG_LIBMP3LAME_ENCODER 0
++#define CONFIG_LIBOPENCORE_AMRNB_ENCODER 0
++#define CONFIG_LIBSCHROEDINGER_ENCODER 0
++#define CONFIG_LIBTHEORA_ENCODER 0
++#define CONFIG_LIBVORBIS_ENCODER 0
++#define CONFIG_LIBVPX_ENCODER 1
++#define CONFIG_LIBX264_ENCODER 0
++#define CONFIG_LIBXAVS_ENCODER 0
++#define CONFIG_LIBXVID_ENCODER 0
++#define CONFIG_H263_VAAPI_HWACCEL 0
++#define CONFIG_H264_DXVA2_HWACCEL 0
++#define CONFIG_H264_VAAPI_HWACCEL 0
++#define CONFIG_MPEG2_DXVA2_HWACCEL 0
++#define CONFIG_MPEG2_VAAPI_HWACCEL 0
++#define CONFIG_MPEG4_VAAPI_HWACCEL 0
++#define CONFIG_VC1_DXVA2_HWACCEL 0
++#define CONFIG_VC1_VAAPI_HWACCEL 0
++#define CONFIG_WMV3_DXVA2_HWACCEL 0
++#define CONFIG_WMV3_VAAPI_HWACCEL 0
++#define CONFIG_AAC_PARSER 0
++#define CONFIG_AAC_LATM_PARSER 0
++#define CONFIG_AC3_PARSER 0
++#define CONFIG_CAVSVIDEO_PARSER 0
++#define CONFIG_DCA_PARSER 0
++#define CONFIG_DIRAC_PARSER 0
++#define CONFIG_DNXHD_PARSER 0
++#define CONFIG_DVBSUB_PARSER 0
++#define CONFIG_DVDSUB_PARSER 0
++#define CONFIG_H261_PARSER 0
++#define CONFIG_H263_PARSER 0
++#define CONFIG_H264_PARSER 0
++#define CONFIG_MJPEG_PARSER 0
++#define CONFIG_MLP_PARSER 0
++#define CONFIG_MPEG4VIDEO_PARSER 0
++#define CONFIG_MPEGAUDIO_PARSER 0
++#define CONFIG_MPEGVIDEO_PARSER 0
++#define CONFIG_PNM_PARSER 0
++#define CONFIG_VC1_PARSER 0
++#define CONFIG_VP3_PARSER 0
++#define CONFIG_VP8_PARSER 0
++#define CONFIG_AAC_ADTSTOASC_BSF 0
++#define CONFIG_CHOMP_BSF 0
++#define CONFIG_DUMP_EXTRADATA_BSF 0
++#define CONFIG_H264_MP4TOANNEXB_BSF 0
++#define CONFIG_MPEG4VIDEO_ES_BSF 0
++#define CONFIG_IMX_DUMP_HEADER_BSF 0
++#define CONFIG_MJPEGA_DUMP_HEADER_BSF 0
++#define CONFIG_MP3_HEADER_COMPRESS_BSF 0
++#define CONFIG_MP3_HEADER_DECOMPRESS_BSF 0
++#define CONFIG_MOV2TEXTSUB_BSF 0
++#define CONFIG_NOISE_BSF 0
++#define CONFIG_REMOVE_EXTRADATA_BSF 0
++#define CONFIG_TEXT2MOVSUB_BSF 0
++#define CONFIG_VC1_ASFTORCV_BSF 0
++#define CONFIG_VC1_ASFTOANNEXG_BSF 0
++#define CONFIG_AAC_DEMUXER 0
++#define CONFIG_AC3_DEMUXER 0
++#define CONFIG_AEA_DEMUXER 0
++#define CONFIG_AIFF_DEMUXER 0
++#define CONFIG_AMR_DEMUXER 0
++#define CONFIG_ANM_DEMUXER 0
++#define CONFIG_APC_DEMUXER 0
++#define CONFIG_APE_DEMUXER 0
++#define CONFIG_APPLEHTTP_DEMUXER 0
++#define CONFIG_ASF_DEMUXER 0
++#define CONFIG_ASS_DEMUXER 0
++#define CONFIG_AU_DEMUXER 0
++#define CONFIG_AVI_DEMUXER 0
++#define CONFIG_AVISYNTH_DEMUXER 0
++#define CONFIG_AVS_DEMUXER 0
++#define CONFIG_BETHSOFTVID_DEMUXER 0
++#define CONFIG_BFI_DEMUXER 0
++#define CONFIG_BINK_DEMUXER 0
++#define CONFIG_C93_DEMUXER 0
++#define CONFIG_CAF_DEMUXER 0
++#define CONFIG_CAVSVIDEO_DEMUXER 0
++#define CONFIG_CDG_DEMUXER 0
++#define CONFIG_DAUD_DEMUXER 0
++#define CONFIG_DIRAC_DEMUXER 0
++#define CONFIG_DNXHD_DEMUXER 0
++#define CONFIG_DSICIN_DEMUXER 0
++#define CONFIG_DTS_DEMUXER 0
++#define CONFIG_DV_DEMUXER 0
++#define CONFIG_DXA_DEMUXER 0
++#define CONFIG_EA_DEMUXER 0
++#define CONFIG_EA_CDATA_DEMUXER 0
++#define CONFIG_EAC3_DEMUXER 0
++#define CONFIG_FFM_DEMUXER 0
++#define CONFIG_FILMSTRIP_DEMUXER 0
++#define CONFIG_FLAC_DEMUXER 0
++#define CONFIG_FLIC_DEMUXER 0
++#define CONFIG_FLV_DEMUXER 0
++#define CONFIG_FOURXM_DEMUXER 0
++#define CONFIG_G722_DEMUXER 0
++#define CONFIG_GSM_DEMUXER 0
++#define CONFIG_GXF_DEMUXER 0
++#define CONFIG_H261_DEMUXER 0
++#define CONFIG_H263_DEMUXER 0
++#define CONFIG_H264_DEMUXER 0
++#define CONFIG_IDCIN_DEMUXER 0
++#define CONFIG_IFF_DEMUXER 0
++#define CONFIG_IMAGE2_DEMUXER 0
++#define CONFIG_IMAGE2PIPE_DEMUXER 0
++#define CONFIG_INGENIENT_DEMUXER 0
++#define CONFIG_IPMOVIE_DEMUXER 0
++#define CONFIG_ISS_DEMUXER 0
++#define CONFIG_IV8_DEMUXER 0
++#define CONFIG_IVF_DEMUXER 0
++#define CONFIG_LMLM4_DEMUXER 0
++#define CONFIG_LXF_DEMUXER 0
++#define CONFIG_M4V_DEMUXER 0
++#define CONFIG_MATROSKA_DEMUXER 1
++#define CONFIG_MJPEG_DEMUXER 0
++#define CONFIG_MLP_DEMUXER 0
++#define CONFIG_MM_DEMUXER 0
++#define CONFIG_MMF_DEMUXER 0
++#define CONFIG_MOV_DEMUXER 0
++#define CONFIG_MP3_DEMUXER 0
++#define CONFIG_MPC_DEMUXER 0
++#define CONFIG_MPC8_DEMUXER 0
++#define CONFIG_MPEGPS_DEMUXER 0
++#define CONFIG_MPEGTS_DEMUXER 0
++#define CONFIG_MPEGTSRAW_DEMUXER 0
++#define CONFIG_MPEGVIDEO_DEMUXER 0
++#define CONFIG_MSNWC_TCP_DEMUXER 0
++#define CONFIG_MTV_DEMUXER 0
++#define CONFIG_MVI_DEMUXER 0
++#define CONFIG_MXF_DEMUXER 0
++#define CONFIG_NC_DEMUXER 0
++#define CONFIG_NSV_DEMUXER 0
++#define CONFIG_NUT_DEMUXER 0
++#define CONFIG_NUV_DEMUXER 0
++#define CONFIG_OGG_DEMUXER 1
++#define CONFIG_OMA_DEMUXER 0
++#define CONFIG_PCM_ALAW_DEMUXER 0
++#define CONFIG_PCM_MULAW_DEMUXER 0
++#define CONFIG_PCM_F64BE_DEMUXER 0
++#define CONFIG_PCM_F64LE_DEMUXER 0
++#define CONFIG_PCM_F32BE_DEMUXER 0
++#define CONFIG_PCM_F32LE_DEMUXER 0
++#define CONFIG_PCM_S32BE_DEMUXER 0
++#define CONFIG_PCM_S32LE_DEMUXER 0
++#define CONFIG_PCM_S24BE_DEMUXER 0
++#define CONFIG_PCM_S24LE_DEMUXER 0
++#define CONFIG_PCM_S16BE_DEMUXER 0
++#define CONFIG_PCM_S16LE_DEMUXER 0
++#define CONFIG_PCM_S8_DEMUXER 0
++#define CONFIG_PCM_U32BE_DEMUXER 0
++#define CONFIG_PCM_U32LE_DEMUXER 0
++#define CONFIG_PCM_U24BE_DEMUXER 0
++#define CONFIG_PCM_U24LE_DEMUXER 0
++#define CONFIG_PCM_U16BE_DEMUXER 0
++#define CONFIG_PCM_U16LE_DEMUXER 0
++#define CONFIG_PCM_U8_DEMUXER 0
++#define CONFIG_PVA_DEMUXER 0
++#define CONFIG_QCP_DEMUXER 0
++#define CONFIG_R3D_DEMUXER 0
++#define CONFIG_RAWVIDEO_DEMUXER 0
++#define CONFIG_RL2_DEMUXER 0
++#define CONFIG_RM_DEMUXER 0
++#define CONFIG_ROQ_DEMUXER 0
++#define CONFIG_RPL_DEMUXER 0
++#define CONFIG_RSO_DEMUXER 0
++#define CONFIG_RTP_DEMUXER 0
++#define CONFIG_RTSP_DEMUXER 0
++#define CONFIG_SAP_DEMUXER 0
++#define CONFIG_SDP_DEMUXER 0
++#define CONFIG_SEGAFILM_DEMUXER 0
++#define CONFIG_SHORTEN_DEMUXER 0
++#define CONFIG_SIFF_DEMUXER 0
++#define CONFIG_SMACKER_DEMUXER 0
++#define CONFIG_SOL_DEMUXER 0
++#define CONFIG_SOX_DEMUXER 0
++#define CONFIG_SRT_DEMUXER 0
++#define CONFIG_STR_DEMUXER 0
++#define CONFIG_SWF_DEMUXER 0
++#define CONFIG_THP_DEMUXER 0
++#define CONFIG_TIERTEXSEQ_DEMUXER 0
++#define CONFIG_TMV_DEMUXER 0
++#define CONFIG_TRUEHD_DEMUXER 0
++#define CONFIG_TTA_DEMUXER 0
++#define CONFIG_TXD_DEMUXER 0
++#define CONFIG_TTY_DEMUXER 0
++#define CONFIG_VC1_DEMUXER 0
++#define CONFIG_VC1T_DEMUXER 0
++#define CONFIG_VMD_DEMUXER 0
++#define CONFIG_VOC_DEMUXER 0
++#define CONFIG_VQF_DEMUXER 0
++#define CONFIG_W64_DEMUXER 0
++#define CONFIG_WAV_DEMUXER 1
++#define CONFIG_WC3_DEMUXER 0
++#define CONFIG_WEBP_DEMUXER 0
++#define CONFIG_WSAUD_DEMUXER 0
++#define CONFIG_WSVQA_DEMUXER 0
++#define CONFIG_WV_DEMUXER 0
++#define CONFIG_XA_DEMUXER 0
++#define CONFIG_YOP_DEMUXER 0
++#define CONFIG_YUV4MPEGPIPE_DEMUXER 0
++#define CONFIG_LIBNUT_DEMUXER 0
++#define CONFIG_A64_MUXER 0
++#define CONFIG_AC3_MUXER 0
++#define CONFIG_ADTS_MUXER 0
++#define CONFIG_AIFF_MUXER 0
++#define CONFIG_AMR_MUXER 0
++#define CONFIG_ASF_MUXER 0
++#define CONFIG_ASS_MUXER 0
++#define CONFIG_ASF_STREAM_MUXER 0
++#define CONFIG_AU_MUXER 0
++#define CONFIG_AVI_MUXER 0
++#define CONFIG_AVM2_MUXER 0
++#define CONFIG_CAVSVIDEO_MUXER 0
++#define CONFIG_CRC_MUXER 0
++#define CONFIG_DAUD_MUXER 0
++#define CONFIG_DIRAC_MUXER 0
++#define CONFIG_DNXHD_MUXER 0
++#define CONFIG_DTS_MUXER 0
++#define CONFIG_DV_MUXER 0
++#define CONFIG_EAC3_MUXER 0
++#define CONFIG_FFM_MUXER 0
++#define CONFIG_FILMSTRIP_MUXER 0
++#define CONFIG_FLAC_MUXER 0
++#define CONFIG_FLV_MUXER 0
++#define CONFIG_FRAMECRC_MUXER 0
++#define CONFIG_FRAMEMD5_MUXER 0
++#define CONFIG_G722_MUXER 0
++#define CONFIG_GIF_MUXER 0
++#define CONFIG_GXF_MUXER 0
++#define CONFIG_H261_MUXER 0
++#define CONFIG_H263_MUXER 0
++#define CONFIG_H264_MUXER 0
++#define CONFIG_IMAGE2_MUXER 0
++#define CONFIG_IMAGE2PIPE_MUXER 0
++#define CONFIG_IPOD_MUXER 0
++#define CONFIG_M4V_MUXER 0
++#define CONFIG_MD5_MUXER 0
++#define CONFIG_MATROSKA_MUXER 0
++#define CONFIG_MATROSKA_AUDIO_MUXER 0
++#define CONFIG_MJPEG_MUXER 0
++#define CONFIG_MLP_MUXER 0
++#define CONFIG_MMF_MUXER 0
++#define CONFIG_MOV_MUXER 0
++#define CONFIG_MP2_MUXER 0
++#define CONFIG_MP3_MUXER 0
++#define CONFIG_MP4_MUXER 0
++#define CONFIG_MPEG1SYSTEM_MUXER 0
++#define CONFIG_MPEG1VCD_MUXER 0
++#define CONFIG_MPEG1VIDEO_MUXER 0
++#define CONFIG_MPEG2DVD_MUXER 0
++#define CONFIG_MPEG2SVCD_MUXER 0
++#define CONFIG_MPEG2VIDEO_MUXER 0
++#define CONFIG_MPEG2VOB_MUXER 0
++#define CONFIG_MPEGTS_MUXER 0
++#define CONFIG_MPJPEG_MUXER 0
++#define CONFIG_MXF_MUXER 0
++#define CONFIG_MXF_D10_MUXER 0
++#define CONFIG_NULL_MUXER 0
++#define CONFIG_NUT_MUXER 0
++#define CONFIG_OGG_MUXER 0
++#define CONFIG_PCM_ALAW_MUXER 0
++#define CONFIG_PCM_MULAW_MUXER 0
++#define CONFIG_PCM_F64BE_MUXER 0
++#define CONFIG_PCM_F64LE_MUXER 0
++#define CONFIG_PCM_F32BE_MUXER 0
++#define CONFIG_PCM_F32LE_MUXER 0
++#define CONFIG_PCM_S32BE_MUXER 0
++#define CONFIG_PCM_S32LE_MUXER 0
++#define CONFIG_PCM_S24BE_MUXER 0
++#define CONFIG_PCM_S24LE_MUXER 0
++#define CONFIG_PCM_S16BE_MUXER 0
++#define CONFIG_PCM_S16LE_MUXER 0
++#define CONFIG_PCM_S8_MUXER 0
++#define CONFIG_PCM_U32BE_MUXER 0
++#define CONFIG_PCM_U32LE_MUXER 0
++#define CONFIG_PCM_U24BE_MUXER 0
++#define CONFIG_PCM_U24LE_MUXER 0
++#define CONFIG_PCM_U16BE_MUXER 0
++#define CONFIG_PCM_U16LE_MUXER 0
++#define CONFIG_PCM_U8_MUXER 0
++#define CONFIG_PSP_MUXER 0
++#define CONFIG_RAWVIDEO_MUXER 0
++#define CONFIG_RM_MUXER 0
++#define CONFIG_ROQ_MUXER 0
++#define CONFIG_RSO_MUXER 0
++#define CONFIG_RTP_MUXER 0
++#define CONFIG_RTSP_MUXER 0
++#define CONFIG_SAP_MUXER 0
++#define CONFIG_SOX_MUXER 0
++#define CONFIG_SPDIF_MUXER 0
++#define CONFIG_SRT_MUXER 0
++#define CONFIG_SWF_MUXER 0
++#define CONFIG_TG2_MUXER 0
++#define CONFIG_TGP_MUXER 0
++#define CONFIG_TRUEHD_MUXER 0
++#define CONFIG_VC1T_MUXER 0
++#define CONFIG_VOC_MUXER 0
++#define CONFIG_WAV_MUXER 0
++#define CONFIG_WEBM_MUXER 0
++#define CONFIG_WEBP_MUXER 0
++#define CONFIG_YUV4MPEGPIPE_MUXER 0
++#define CONFIG_LIBNUT_MUXER 0
++#define CONFIG_ANULL_FILTER 0
++#define CONFIG_ANULLSRC_FILTER 0
++#define CONFIG_ANULLSINK_FILTER 0
++#define CONFIG_ASPECT_FILTER 0
++#define CONFIG_BLACKFRAME_FILTER 0
++#define CONFIG_CROP_FILTER 0
++#define CONFIG_CROPDETECT_FILTER 0
++#define CONFIG_DRAWBOX_FILTER 0
++#define CONFIG_FIFO_FILTER 0
++#define CONFIG_FORMAT_FILTER 0
++#define CONFIG_FREI0R_FILTER 0
++#define CONFIG_HFLIP_FILTER 0
++#define CONFIG_NOFORMAT_FILTER 0
++#define CONFIG_NULL_FILTER 0
++#define CONFIG_OCV_SMOOTH_FILTER 0
++#define CONFIG_PAD_FILTER 0
++#define CONFIG_PIXDESCTEST_FILTER 0
++#define CONFIG_PIXELASPECT_FILTER 0
++#define CONFIG_SCALE_FILTER 0
++#define CONFIG_SETPTS_FILTER 0
++#define CONFIG_SETTB_FILTER 0
++#define CONFIG_SLICIFY_FILTER 0
++#define CONFIG_TRANSPOSE_FILTER 0
++#define CONFIG_UNSHARP_FILTER 0
++#define CONFIG_VFLIP_FILTER 0
++#define CONFIG_YADIF_FILTER 0
++#define CONFIG_BUFFER_FILTER 0
++#define CONFIG_COLOR_FILTER 0
++#define CONFIG_NULLSRC_FILTER 0
++#define CONFIG_NULLSINK_FILTER 0
++#define CONFIG_CONCAT_PROTOCOL 0
++#define CONFIG_FILE_PROTOCOL 0
++#define CONFIG_GOPHER_PROTOCOL 0
++#define CONFIG_HTTP_PROTOCOL 0
++#define CONFIG_MMSH_PROTOCOL 0
++#define CONFIG_MMST_PROTOCOL 0
++#define CONFIG_MD5_PROTOCOL 0
++#define CONFIG_PIPE_PROTOCOL 0
++#define CONFIG_RTMP_PROTOCOL 0
++#define CONFIG_RTMPT_PROTOCOL 0
++#define CONFIG_RTMPE_PROTOCOL 0
++#define CONFIG_RTMPTE_PROTOCOL 0
++#define CONFIG_RTMPS_PROTOCOL 0
++#define CONFIG_RTP_PROTOCOL 0
++#define CONFIG_TCP_PROTOCOL 0
++#define CONFIG_UDP_PROTOCOL 0
++#define CONFIG_ALSA_INDEV 0
++#define CONFIG_BKTR_INDEV 0
++#define CONFIG_DV1394_INDEV 0
++#define CONFIG_JACK_INDEV 0
++#define CONFIG_OSS_INDEV 0
++#define CONFIG_V4L2_INDEV 0
++#define CONFIG_V4L_INDEV 0
++#define CONFIG_VFWCAP_INDEV 0
++#define CONFIG_X11_GRAB_DEVICE_INDEV 0
++#define CONFIG_LIBDC1394_INDEV 0
++#define CONFIG_ALSA_OUTDEV 0
++#define CONFIG_OSS_OUTDEV 0
++#endif /* FFMPEG_CONFIG_H */
diff --git a/www/chromium/files/patch-third_party__ffmpeg__ffmpeg.gyp b/www/chromium/files/patch-third_party__ffmpeg__ffmpeg.gyp
new file mode 100644
index 000000000000..d7905d4a8e84
--- /dev/null
+++ b/www/chromium/files/patch-third_party__ffmpeg__ffmpeg.gyp
@@ -0,0 +1,11 @@
+--- third_party/ffmpeg/ffmpeg.gyp.orig 2011-03-28 21:25:33.000000000 +0200
++++ third_party/ffmpeg/ffmpeg.gyp 2011-03-28 21:28:28.000000000 +0200
+@@ -56,7 +56,7 @@
+ ['target_arch=="arm"', {
+ 'ffmpeg_asm_lib': 0,
+ }],
+- ['OS=="mac" or OS=="win"', {
++ ['OS=="mac" or OS=="win" or OS=="freebsd"', {
+ 'os_config%': '<(OS)',
+ }, { # all other Unix OS's use the linux config
+ 'os_config%': 'linux',
diff --git a/www/chromium/files/patch-third_party__ffmpeg__patched-ffmpeg-mt__libavutil_mem.c b/www/chromium/files/patch-third_party__ffmpeg__patched-ffmpeg-mt__libavutil_mem.c
new file mode 100644
index 000000000000..f208f07cec86
--- /dev/null
+++ b/www/chromium/files/patch-third_party__ffmpeg__patched-ffmpeg-mt__libavutil_mem.c
@@ -0,0 +1,11 @@
+--- third_party/ffmpeg/patched-ffmpeg-mt/libavutil/mem.c.orig 2011-03-25 14:43:09.000000000 +0200
++++ third_party/ffmpeg/patched-ffmpeg-mt/libavutil/mem.c 2011-03-25 14:43:21.000000000 +0200
+@@ -30,7 +30,7 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #if HAVE_MALLOC_H
+-#include <malloc.h>
++#include <stdlib.h>
+ #endif
+
+ #include "avutil.h"
diff --git a/www/chromium/files/patch-third_party__iccjpeg__iccjpeg.h b/www/chromium/files/patch-third_party__iccjpeg__iccjpeg.h
new file mode 100644
index 000000000000..340b34a72875
--- /dev/null
+++ b/www/chromium/files/patch-third_party__iccjpeg__iccjpeg.h
@@ -0,0 +1,11 @@
+--- ./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"
+
+
+ /*
diff --git a/www/chromium/files/patch-third_party__icu__icu.gyp b/www/chromium/files/patch-third_party__icu__icu.gyp
new file mode 100644
index 000000000000..4ea4117f81e6
--- /dev/null
+++ b/www/chromium/files/patch-third_party__icu__icu.gyp
@@ -0,0 +1,20 @@
+--- third_party/icu/icu.gyp.orig 2011-01-06 11:00:47.000000000 +0100
++++ third_party/icu/icu.gyp 2011-01-09 19:47:16.000000000 +0100
+@@ -54,7 +54,7 @@
+ }, { # else: OS != "win"
+ 'sources!': ['icudt42.dll'],
+ }],
+- [ 'OS != "linux" or chromeos == 1', {
++ [ '(OS != "linux" and OS != "freebsd") or chromeos == 1', {
+ 'sources!': ['linux/icudt42l_dat.S'],
+ }],
+ [ 'OS != "mac"', {
+@@ -232,7 +232,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': [
diff --git a/www/chromium/files/patch-third_party__icu__public__common__unicode__pfreebsd.h b/www/chromium/files/patch-third_party__icu__public__common__unicode__pfreebsd.h
new file mode 100644
index 000000000000..0a9bec6cd097
--- /dev/null
+++ b/www/chromium/files/patch-third_party__icu__public__common__unicode__pfreebsd.h
@@ -0,0 +1,316 @@
+--- ./third_party/icu/public/common/unicode/pfreebsd.h.orig 2010-12-20 20:15:08.000000000 +0100
++++ ./third_party/icu/public/common/unicode/pfreebsd.h 2010-12-20 20:15:08.000000000 +0100
+@@ -0,0 +1,313 @@
++/*
++******************************************************************************
++*
++* Copyright (C) 1997-2007, International Business Machines
++* Corporation and others. All Rights Reserved.
++*
++******************************************************************************
++*
++* FILE NAME : platform.h
++*
++* Date Name Description
++* 05/13/98 nos Creation (content moved here from ptypes.h).
++* 03/02/99 stephen Added AS400 support.
++* 03/30/99 stephen Added Linux support.
++* 04/13/99 stephen Reworked for autoconf.
++******************************************************************************
++*/
++
++/**
++ * \file
++ * \brief Basic types for the platform
++ */
++
++/* Define the platform we're on. */
++#ifndef U_BSD
++#define U_BSD
++#endif
++
++/* Define whether inttypes.h is available */
++#ifndef U_HAVE_INTTYPES_H
++#define U_HAVE_INTTYPES_H 1
++#endif
++
++/*
++ * Define what support for C++ streams is available.
++ * If U_IOSTREAM_SOURCE is set to 199711, then <iostream> is available
++ * (1997711 is the date the ISO/IEC C++ FDIS was published), and then
++ * one should qualify streams using the std namespace in ICU header
++ * files.
++ * If U_IOSTREAM_SOURCE is set to 198506, then <iostream.h> is
++ * available instead (198506 is the date when Stroustrup published
++ * "An Extensible I/O Facility for C++" at the summer USENIX conference).
++ * If U_IOSTREAM_SOURCE is 0, then C++ streams are not available and
++ * support for them will be silently suppressed in ICU.
++ *
++ */
++
++#ifndef U_IOSTREAM_SOURCE
++#define U_IOSTREAM_SOURCE 199711
++#endif
++
++/* Determines whether specific types are available */
++#ifndef U_HAVE_INT8_T
++#define U_HAVE_INT8_T 1
++#endif
++
++#ifndef U_HAVE_UINT8_T
++#define U_HAVE_UINT8_T 1
++#endif
++
++#ifndef U_HAVE_INT16_T
++#define U_HAVE_INT16_T 1
++#endif
++
++#ifndef U_HAVE_UINT16_T
++#define U_HAVE_UINT16_T 1
++#endif
++
++#ifndef U_HAVE_INT32_T
++#define U_HAVE_INT32_T 1
++#endif
++
++#ifndef U_HAVE_UINT32_T
++#define U_HAVE_UINT32_T 1
++#endif
++
++#ifndef U_HAVE_INT64_T
++#define U_HAVE_INT64_T 1
++#endif
++
++#ifndef U_HAVE_UINT64_T
++#define U_HAVE_UINT64_T 1
++#endif
++
++/*===========================================================================*/
++/* Generic data types */
++/*===========================================================================*/
++
++#include <sys/types.h>
++
++/* If your platform does not have the <inttypes.h> header, you may
++ need to edit the typedefs below. */
++#if U_HAVE_INTTYPES_H
++
++/* autoconf 2.13 sometimes can't properly find the data types in <inttypes.h> */
++/* os/390 needs <inttypes.h>, but it doesn't have int8_t, and it sometimes */
++/* doesn't have uint8_t depending on the OS version. */
++/* So we have this work around. */
++#ifdef OS390
++/* The features header is needed to get (u)int64_t sometimes. */
++#include <features.h>
++#if ! U_HAVE_INT8_T
++typedef signed char int8_t;
++#endif
++#if !defined(__uint8_t)
++#define __uint8_t 1
++typedef unsigned char uint8_t;
++#endif
++#endif /* OS390 */
++
++#include <inttypes.h>
++
++#else /* U_HAVE_INTTYPES_H */
++
++#if ! U_HAVE_INT8_T
++typedef signed char int8_t;
++#endif
++
++#if ! U_HAVE_UINT8_T
++typedef unsigned char uint8_t;
++#endif
++
++#if ! U_HAVE_INT16_T
++typedef signed short int16_t;
++#endif
++
++#if ! U_HAVE_UINT16_T
++typedef unsigned short uint16_t;
++#endif
++
++#if ! U_HAVE_INT32_T
++typedef signed int int32_t;
++#endif
++
++#if ! U_HAVE_UINT32_T
++typedef unsigned int uint32_t;
++#endif
++
++#if ! U_HAVE_INT64_T
++ typedef signed long long int64_t;
++/* else we may not have a 64-bit type */
++#endif
++
++#if ! U_HAVE_UINT64_T
++ typedef unsigned long long uint64_t;
++/* else we may not have a 64-bit type */
++#endif
++
++#endif
++
++/*===========================================================================*/
++/* Compiler and environment features */
++/*===========================================================================*/
++
++/* Define whether namespace is supported */
++#ifndef U_HAVE_NAMESPACE
++#define U_HAVE_NAMESPACE 1
++#endif
++
++/* Determines the endianness of the platform
++ It's done this way in case multiple architectures are being built at once.
++ For example, Darwin supports fat binaries, which can be both PPC and x86 based. */
++#if defined(BYTE_ORDER) && defined(BIG_ENDIAN)
++#define U_IS_BIG_ENDIAN (BYTE_ORDER == BIG_ENDIAN)
++#else
++#define U_IS_BIG_ENDIAN 0
++#endif
++
++/* 1 or 0 to enable or disable threads. If undefined, default is: enable threads. */
++#define ICU_USE_THREADS 1
++
++/* On strong memory model CPUs (e.g. x86 CPUs), we use a safe & quick double check lock. */
++#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
++#define UMTX_STRONG_MEMORY_MODEL 1
++#endif
++
++#ifndef U_DEBUG
++#define U_DEBUG 0
++#endif
++
++#ifndef U_RELEASE
++#define U_RELEASE 1
++#endif
++
++/* Determine whether to disable renaming or not. This overrides the
++ setting in umachine.h which is for all platforms. */
++#ifndef U_DISABLE_RENAMING
++#define U_DISABLE_RENAMING 0
++#endif
++
++/* Determine whether to override new and delete. */
++#ifndef U_OVERRIDE_CXX_ALLOCATION
++#define U_OVERRIDE_CXX_ALLOCATION 1
++#endif
++/* Determine whether to override placement new and delete for STL. */
++#ifndef U_HAVE_PLACEMENT_NEW
++#define U_HAVE_PLACEMENT_NEW 1
++#endif
++
++/* Determine whether to enable tracing. */
++#ifndef U_ENABLE_TRACING
++#define U_ENABLE_TRACING 0
++#endif
++
++/* Do we allow ICU users to use the draft APIs by default? */
++#ifndef U_DEFAULT_SHOW_DRAFT
++#define U_DEFAULT_SHOW_DRAFT 1
++#endif
++
++/* Define the library suffix in a C syntax. */
++#define U_HAVE_LIB_SUFFIX 0
++#define U_LIB_SUFFIX_C_NAME
++#define U_LIB_SUFFIX_C_NAME_STRING ""
++
++/*===========================================================================*/
++/* Character data types */
++/*===========================================================================*/
++
++#if ((defined(OS390) && (!defined(__CHARSET_LIB) || !__CHARSET_LIB))) || defined(OS400)
++# define U_CHARSET_FAMILY 1
++#endif
++
++/*===========================================================================*/
++/* Information about wchar support */
++/*===========================================================================*/
++
++#define U_HAVE_WCHAR_H 1
++#define U_SIZEOF_WCHAR_T 4
++
++#define U_HAVE_WCSCPY 1
++
++/**
++ * \def U_DECLARE_UTF16
++ * Do not use this macro. Use the UNICODE_STRING or U_STRING_DECL macros
++ * instead.
++ * @internal
++ */
++#if 1 || defined(U_CHECK_UTF16_STRING)
++#if (defined(__xlC__) && defined(__IBM_UTF_LITERAL) && U_SIZEOF_WCHAR_T != 2) \
++ || (defined(__HP_aCC) && __HP_aCC >= 035000) \
++ || (defined(__HP_cc) && __HP_cc >= 111106)
++#define U_DECLARE_UTF16(string) u ## string
++#elif (defined(__SUNPRO_CC) && __SUNPRO_CC >= 0x550)
++/* || (defined(__SUNPRO_C) && __SUNPRO_C >= 0x580) */
++/* Sun's C compiler has issues with this notation, and it's unreliable. */
++#define U_DECLARE_UTF16(string) U ## string
++#elif U_SIZEOF_WCHAR_T == 2 \
++ && (U_CHARSET_FAMILY == 0 || ((defined(OS390) || defined(OS400)) && defined(__UCS2__)))
++#define U_DECLARE_UTF16(string) L ## string
++#endif
++#endif
++
++/*===========================================================================*/
++/* Information about POSIX support */
++/*===========================================================================*/
++
++#define U_HAVE_NL_LANGINFO_CODESET 1
++#define U_NL_LANGINFO_CODESET CODESET
++
++#if 1
++#define U_TZSET tzset
++#endif
++#if 0
++#define U_TIMEZONE
++#endif
++#if 1
++#define U_TZNAME tzname
++#endif
++
++#define U_HAVE_MMAP 1
++#define U_HAVE_POPEN 1
++
++/*===========================================================================*/
++/* Symbol import-export control */
++/*===========================================================================*/
++
++#if 1
++#define U_EXPORT __attribute__((visibility("default")))
++/*#elif defined(__HP_aCC) || defined(__HP_cc)
++#define U_EXPORT __declspec(dllexport)*/
++#else
++#define U_EXPORT
++#endif
++
++/* U_CALLCONV is releated to U_EXPORT2 */
++#define U_EXPORT2
++
++/* cygwin needs to export/import data */
++#ifdef U_CYGWIN
++#define U_IMPORT __declspec(dllimport)
++#else
++#define U_IMPORT
++#endif
++
++/*===========================================================================*/
++/* Code alignment and C function inlining */
++/*===========================================================================*/
++
++#ifndef U_INLINE
++# ifdef __cplusplus
++# define U_INLINE inline
++# else
++# define U_INLINE inline
++# endif
++#endif
++
++#define U_ALIGN_CODE(n)
++
++/*===========================================================================*/
++/* Programs used by ICU code */
++/*===========================================================================*/
++
++#define U_MAKE "/usr/local/bin/gmake"
diff --git a/www/chromium/files/patch-third_party__icu__public__common__unicode__umachine.h b/www/chromium/files/patch-third_party__icu__public__common__unicode__umachine.h
new file mode 100644
index 000000000000..faa0d7b9f5b1
--- /dev/null
+++ b/www/chromium/files/patch-third_party__icu__public__common__unicode__umachine.h
@@ -0,0 +1,11 @@
+--- ./third_party/icu/public/common/unicode/umachine.h.orig 2010-12-16 02:34:25.000000000 +0100
++++ ./third_party/icu/public/common/unicode/umachine.h 2010-12-20 20:15:08.000000000 +0100
+@@ -49,6 +49,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
diff --git a/www/chromium/files/patch-third_party__libevent__freebsd__config.h b/www/chromium/files/patch-third_party__libevent__freebsd__config.h
new file mode 100644
index 000000000000..0afcd1cf5e94
--- /dev/null
+++ b/www/chromium/files/patch-third_party__libevent__freebsd__config.h
@@ -0,0 +1,269 @@
+--- ./third_party/libevent/freebsd/config.h.orig 2010-12-20 20:15:08.000000000 +0100
++++ ./third_party/libevent/freebsd/config.h 2010-12-20 20:15:08.000000000 +0100
+@@ -0,0 +1,266 @@
++/* config.h. Generated from config.h.in by configure. */
++/* config.h.in. Generated from configure.in by autoheader. */
++
++/* Define if clock_gettime is available in libc */
++#define DNS_USE_CPU_CLOCK_FOR_ID 1
++
++/* Define is no secure id variant is available */
++/* #undef DNS_USE_GETTIMEOFDAY_FOR_ID */
++
++/* Define to 1 if you have the `clock_gettime' function. */
++#define HAVE_CLOCK_GETTIME 1
++
++/* Define if /dev/poll is available */
++/* #undef HAVE_DEVPOLL */
++
++/* Define to 1 if you have the <dlfcn.h> header file. */
++#define HAVE_DLFCN_H 1
++
++/* Define if your system supports the epoll system calls */
++/* #undef HAVE_EPOLL */
++
++/* Define to 1 if you have the `epoll_ctl' function. */
++/* #undef HAVE_EPOLL_CTL */
++
++/* Define if your system supports event ports */
++/* #undef HAVE_EVENT_PORTS */
++
++/* Define to 1 if you have the `fcntl' function. */
++#define HAVE_FCNTL 1
++
++/* Define to 1 if you have the <fcntl.h> header file. */
++#define HAVE_FCNTL_H 1
++
++/* Define to 1 if the system has the type `fd_mask'. */
++#define HAVE_FD_MASK 1
++
++/* Define to 1 if you have the `getaddrinfo' function. */
++#define HAVE_GETADDRINFO 1
++
++/* Define to 1 if you have the `getegid' function. */
++#define HAVE_GETEGID 1
++
++/* Define to 1 if you have the `geteuid' function. */
++#define HAVE_GETEUID 1
++
++/* Define to 1 if you have the `getnameinfo' function. */
++#define HAVE_GETNAMEINFO 1
++
++/* Define to 1 if you have the `gettimeofday' function. */
++#define HAVE_GETTIMEOFDAY 1
++
++/* Define to 1 if you have the `inet_ntop' function. */
++#define HAVE_INET_NTOP 1
++
++/* Define to 1 if you have the <inttypes.h> header file. */
++#define HAVE_INTTYPES_H 1
++
++/* Define to 1 if you have the `issetugid' function. */
++#define HAVE_ISSETUGID 1
++
++/* Define to 1 if you have the `kqueue' function. */
++#define HAVE_KQUEUE 1
++
++/* Define to 1 if you have the `nsl' library (-lnsl). */
++/* #undef HAVE_LIBNSL */
++
++/* Define to 1 if you have the `resolv' library (-lresolv). */
++/* #undef HAVE_LIBRESOLV */
++
++/* Define to 1 if you have the `rt' library (-lrt). */
++#define HAVE_LIBRT 1
++
++/* Define to 1 if you have the `socket' library (-lsocket). */
++/* #undef HAVE_LIBSOCKET */
++
++/* Define to 1 if you have the <memory.h> header file. */
++#define HAVE_MEMORY_H 1
++
++/* Define to 1 if you have the <netinet/in6.h> header file. */
++/* #undef HAVE_NETINET_IN6_H */
++
++/* Define to 1 if you have the `poll' function. */
++#define HAVE_POLL 1
++
++/* Define to 1 if you have the <poll.h> header file. */
++#define HAVE_POLL_H 1
++
++/* Define to 1 if you have the `port_create' function. */
++/* #undef HAVE_PORT_CREATE */
++
++/* Define to 1 if you have the <port.h> header file. */
++/* #undef HAVE_PORT_H */
++
++/* Define to 1 if you have the `select' function. */
++#define HAVE_SELECT 1
++
++/* Define if F_SETFD is defined in <fcntl.h> */
++#define HAVE_SETFD 1
++
++/* Define to 1 if you have the `sigaction' function. */
++#define HAVE_SIGACTION 1
++
++/* Define to 1 if you have the `signal' function. */
++#define HAVE_SIGNAL 1
++
++/* Define to 1 if you have the <signal.h> header file. */
++#define HAVE_SIGNAL_H 1
++
++/* Define to 1 if you have the <stdarg.h> header file. */
++#define HAVE_STDARG_H 1
++
++/* Define to 1 if you have the <stdint.h> header file. */
++#define HAVE_STDINT_H 1
++
++/* Define to 1 if you have the <stdlib.h> header file. */
++#define HAVE_STDLIB_H 1
++
++/* Define to 1 if you have the <strings.h> header file. */
++#define HAVE_STRINGS_H 1
++
++/* Define to 1 if you have the <string.h> header file. */
++#define HAVE_STRING_H 1
++
++/* Define to 1 if you have the `strlcpy' function. */
++#define HAVE_STRLCPY 1
++
++/* Define to 1 if you have the `strsep' function. */
++#define HAVE_STRSEP 1
++
++/* Define to 1 if you have the `strtok_r' function. */
++#define HAVE_STRTOK_R 1
++
++/* Define to 1 if you have the `strtoll' function. */
++#define HAVE_STRTOLL 1
++
++/* Define to 1 if the system has the type `struct in6_addr'. */
++#define HAVE_STRUCT_IN6_ADDR 1
++
++/* Define to 1 if you have the <sys/devpoll.h> header file. */
++/* #undef HAVE_SYS_DEVPOLL_H */
++
++/* Define to 1 if you have the <sys/epoll.h> header file. */
++/* #undef HAVE_SYS_EPOLL_H */
++
++/* Define to 1 if you have the <sys/event.h> header file. */
++#define HAVE_SYS_EVENT_H 1
++
++/* Define to 1 if you have the <sys/ioctl.h> header file. */
++#define HAVE_SYS_IOCTL_H 1
++
++/* Define to 1 if you have the <sys/param.h> header file. */
++#define HAVE_SYS_PARAM_H 1
++
++/* Define to 1 if you have the <sys/queue.h> header file. */
++#define HAVE_SYS_QUEUE_H 1
++
++/* Define to 1 if you have the <sys/select.h> header file. */
++#define HAVE_SYS_SELECT_H 1
++
++/* Define to 1 if you have the <sys/socket.h> header file. */
++#define HAVE_SYS_SOCKET_H 1
++
++/* Define to 1 if you have the <sys/stat.h> header file. */
++#define HAVE_SYS_STAT_H 1
++
++/* Define to 1 if you have the <sys/time.h> header file. */
++#define HAVE_SYS_TIME_H 1
++
++/* Define to 1 if you have the <sys/types.h> header file. */
++#define HAVE_SYS_TYPES_H 1
++
++/* Define if TAILQ_FOREACH is defined in <sys/queue.h> */
++#define HAVE_TAILQFOREACH 1
++
++/* Define if timeradd is defined in <sys/time.h> */
++#define HAVE_TIMERADD 1
++
++/* Define if timerclear is defined in <sys/time.h> */
++#define HAVE_TIMERCLEAR 1
++
++/* Define if timercmp is defined in <sys/time.h> */
++#define HAVE_TIMERCMP 1
++
++/* Define if timerisset is defined in <sys/time.h> */
++#define HAVE_TIMERISSET 1
++
++/* Define to 1 if the system has the type `uint16_t'. */
++#define HAVE_UINT16_T 1
++
++/* Define to 1 if the system has the type `uint32_t'. */
++#define HAVE_UINT32_T 1
++
++/* Define to 1 if the system has the type `uint64_t'. */
++#define HAVE_UINT64_T 1
++
++/* Define to 1 if the system has the type `uint8_t'. */
++#define HAVE_UINT8_T 1
++
++/* Define to 1 if you have the <unistd.h> header file. */
++#define HAVE_UNISTD_H 1
++
++/* Define to 1 if you have the `vasprintf' function. */
++#define HAVE_VASPRINTF 1
++
++/* Define if kqueue works correctly with pipes */
++#define HAVE_WORKING_KQUEUE 1
++
++/* Name of package */
++#define PACKAGE "libevent"
++
++/* Define to the address where bug reports for this package should be sent. */
++#define PACKAGE_BUGREPORT ""
++
++/* Define to the full name of this package. */
++#define PACKAGE_NAME ""
++
++/* Define to the full name and version of this package. */
++#define PACKAGE_STRING ""
++
++/* Define to the one symbol short name of this package. */
++#define PACKAGE_TARNAME ""
++
++/* Define to the version of this package. */
++#define PACKAGE_VERSION ""
++
++/* The size of `int', as computed by sizeof. */
++#define SIZEOF_INT 4
++
++/* The size of `long', as computed by sizeof. */
++#define SIZEOF_LONG 4
++
++/* The size of `long long', as computed by sizeof. */
++#define SIZEOF_LONG_LONG 8
++
++/* The size of `short', as computed by sizeof. */
++#define SIZEOF_SHORT 2
++
++/* Define to 1 if you have the ANSI C header files. */
++#define STDC_HEADERS 1
++
++/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
++#define TIME_WITH_SYS_TIME 1
++
++/* Version number of package */
++#define VERSION "1.4.13-stable"
++
++/* Define to appropriate substitue if compiler doesnt have __func__ */
++/* #undef __func__ */
++
++/* Define to empty if `const' does not conform to ANSI C. */
++/* #undef const */
++
++/* Define to `__inline__' or `__inline' if that's what the C compiler
++ calls it, or to nothing if 'inline' is not supported under any name. */
++#ifndef __cplusplus
++/* #undef inline */
++#endif
++
++/* Define to `int' if <sys/types.h> does not define. */
++/* #undef pid_t */
++
++/* Define to `unsigned int' if <sys/types.h> does not define. */
++/* #undef size_t */
++
++/* Define to unsigned int if you dont have it */
++/* #undef socklen_t */
diff --git a/www/chromium/files/patch-third_party__libevent__freebsd__event-config.h b/www/chromium/files/patch-third_party__libevent__freebsd__event-config.h
new file mode 100644
index 000000000000..7f841aa04463
--- /dev/null
+++ b/www/chromium/files/patch-third_party__libevent__freebsd__event-config.h
@@ -0,0 +1,265 @@
+--- ./third_party/libevent/freebsd/event-config.h.orig 2010-12-20 20:15:08.000000000 +0100
++++ ./third_party/libevent/freebsd/event-config.h 2010-12-20 20:15:08.000000000 +0100
+@@ -0,0 +1,262 @@
++/* event-config.h
++ * Generated by autoconf; post-processed by libevent.
++ * Do not edit this file.
++ * Do not rely on macros in this file existing in later versions.
++ */
++#ifndef _EVENT_CONFIG_H_
++#define _EVENT_CONFIG_H_
++/* config.h. Generated from config.h.in by configure. */
++/* config.h.in. Generated from configure.in by autoheader. */
++
++/* Define if clock_gettime is available in libc */
++#define _EVENT_DNS_USE_CPU_CLOCK_FOR_ID 1
++
++/* Define is no secure id variant is available */
++/* #undef _EVENT_DNS_USE_GETTIMEOFDAY_FOR_ID */
++
++/* Define to 1 if you have the `clock_gettime' function. */
++#define _EVENT_HAVE_CLOCK_GETTIME 1
++
++/* Define if /dev/poll is available */
++/* #undef _EVENT_HAVE_DEVPOLL */
++
++/* Define to 1 if you have the <dlfcn.h> header file. */
++#define _EVENT_HAVE_DLFCN_H 1
++
++/* Define if your system supports the epoll system calls */
++/* #undef _EVENT_HAVE_EPOLL */
++
++/* Define to 1 if you have the `epoll_ctl' function. */
++/* #undef _EVENT_HAVE_EPOLL_CTL */
++
++/* Define if your system supports event ports */
++/* #undef _EVENT_HAVE_EVENT_PORTS */
++
++/* Define to 1 if you have the `fcntl' function. */
++#define _EVENT_HAVE_FCNTL 1
++
++/* Define to 1 if you have the <fcntl.h> header file. */
++#define _EVENT_HAVE_FCNTL_H 1
++
++/* Define to 1 if you have the `getaddrinfo' function. */
++#define _EVENT_HAVE_GETADDRINFO 1
++
++/* Define to 1 if you have the `getnameinfo' function. */
++#define _EVENT_HAVE_GETNAMEINFO 1
++
++/* Define to 1 if you have the `gettimeofday' function. */
++#define _EVENT_HAVE_GETTIMEOFDAY 1
++
++/* Define to 1 if you have the `inet_ntop' function. */
++#define _EVENT_HAVE_INET_NTOP 1
++
++/* Define to 1 if you have the <inttypes.h> header file. */
++#define _EVENT_HAVE_INTTYPES_H 1
++
++/* Define to 1 if you have the `kqueue' function. */
++#define _EVENT_HAVE_KQUEUE 1
++
++/* Define to 1 if you have the `nsl' library (-lnsl). */
++/* #undef _EVENT_HAVE_LIBNSL */
++
++/* Define to 1 if you have the `resolv' library (-lresolv). */
++/* #undef _EVENT_HAVE_LIBRESOLV */
++
++/* Define to 1 if you have the `rt' library (-lrt). */
++#define _EVENT_HAVE_LIBRT 1
++
++/* Define to 1 if you have the `socket' library (-lsocket). */
++/* #undef _EVENT_HAVE_LIBSOCKET */
++
++/* Define to 1 if you have the <memory.h> header file. */
++#define _EVENT_HAVE_MEMORY_H 1
++
++/* Define to 1 if you have the <netinet/in6.h> header file. */
++/* #undef _EVENT_HAVE_NETINET_IN6_H */
++
++/* Define to 1 if you have the `poll' function. */
++#define _EVENT_HAVE_POLL 1
++
++/* Define to 1 if you have the <poll.h> header file. */
++#define _EVENT_HAVE_POLL_H 1
++
++/* Define to 1 if you have the `port_create' function. */
++/* #undef _EVENT_HAVE_PORT_CREATE */
++
++/* Define to 1 if you have the <port.h> header file. */
++/* #undef _EVENT_HAVE_PORT_H */
++
++/* Define to 1 if you have the `select' function. */
++#define _EVENT_HAVE_SELECT 1
++
++/* Define if F_SETFD is defined in <fcntl.h> */
++#define _EVENT_HAVE_SETFD 1
++
++/* Define to 1 if you have the `sigaction' function. */
++#define _EVENT_HAVE_SIGACTION 1
++
++/* Define to 1 if you have the `signal' function. */
++#define _EVENT_HAVE_SIGNAL 1
++
++/* Define to 1 if you have the <signal.h> header file. */
++#define _EVENT_HAVE_SIGNAL_H 1
++
++/* Define to 1 if you have the <stdarg.h> header file. */
++#define _EVENT_HAVE_STDARG_H 1
++
++/* Define to 1 if you have the <stdint.h> header file. */
++#define _EVENT_HAVE_STDINT_H 1
++
++/* Define to 1 if you have the <stdlib.h> header file. */
++#define _EVENT_HAVE_STDLIB_H 1
++
++/* Define to 1 if you have the <strings.h> header file. */
++#define _EVENT_HAVE_STRINGS_H 1
++
++/* Define to 1 if you have the <string.h> header file. */
++#define _EVENT_HAVE_STRING_H 1
++
++/* Define to 1 if you have the `strlcpy' function. */
++#define _EVENT_HAVE_STRLCPY 1
++
++/* Define to 1 if you have the `strsep' function. */
++#define _EVENT_HAVE_STRSEP 1
++
++/* Define to 1 if you have the `strtok_r' function. */
++#define _EVENT_HAVE_STRTOK_R 1
++
++/* Define to 1 if you have the `strtoll' function. */
++#define _EVENT_HAVE_STRTOLL 1
++
++/* Define to 1 if the system has the type `struct in6_addr'. */
++#define _EVENT_HAVE_STRUCT_IN6_ADDR 1
++
++/* Define to 1 if you have the <sys/devpoll.h> header file. */
++/* #undef _EVENT_HAVE_SYS_DEVPOLL_H */
++
++/* Define to 1 if you have the <sys/epoll.h> header file. */
++/* #undef _EVENT_HAVE_SYS_EPOLL_H */
++
++/* Define to 1 if you have the <sys/event.h> header file. */
++#define _EVENT_HAVE_SYS_EVENT_H 1
++
++/* Define to 1 if you have the <sys/ioctl.h> header file. */
++#define _EVENT_HAVE_SYS_IOCTL_H 1
++
++/* Define to 1 if you have the <sys/param.h> header file. */
++#define _EVENT_HAVE_SYS_PARAM_H 1
++
++/* Define to 1 if you have the <sys/queue.h> header file. */
++#define _EVENT_HAVE_SYS_QUEUE_H 1
++
++/* Define to 1 if you have the <sys/select.h> header file. */
++#define _EVENT_HAVE_SYS_SELECT_H 1
++
++/* Define to 1 if you have the <sys/socket.h> header file. */
++#define _EVENT_HAVE_SYS_SOCKET_H 1
++
++/* Define to 1 if you have the <sys/stat.h> header file. */
++#define _EVENT_HAVE_SYS_STAT_H 1
++
++/* Define to 1 if you have the <sys/time.h> header file. */
++#define _EVENT_HAVE_SYS_TIME_H 1
++
++/* Define to 1 if you have the <sys/types.h> header file. */
++#define _EVENT_HAVE_SYS_TYPES_H 1
++
++/* Define if TAILQ_FOREACH is defined in <sys/queue.h> */
++#define _EVENT_HAVE_TAILQFOREACH 1
++
++/* Define if timeradd is defined in <sys/time.h> */
++#define _EVENT_HAVE_TIMERADD 1
++
++/* Define if timerclear is defined in <sys/time.h> */
++#define _EVENT_HAVE_TIMERCLEAR 1
++
++/* Define if timercmp is defined in <sys/time.h> */
++#define _EVENT_HAVE_TIMERCMP 1
++
++/* Define if timerisset is defined in <sys/time.h> */
++#define _EVENT_HAVE_TIMERISSET 1
++
++/* Define to 1 if the system has the type `uint16_t'. */
++#define _EVENT_HAVE_UINT16_T 1
++
++/* Define to 1 if the system has the type `uint32_t'. */
++#define _EVENT_HAVE_UINT32_T 1
++
++/* Define to 1 if the system has the type `uint64_t'. */
++#define _EVENT_HAVE_UINT64_T 1
++
++/* Define to 1 if the system has the type `uint8_t'. */
++#define _EVENT_HAVE_UINT8_T 1
++
++/* Define to 1 if you have the <unistd.h> header file. */
++#define _EVENT_HAVE_UNISTD_H 1
++
++/* Define to 1 if you have the `vasprintf' function. */
++#define _EVENT_HAVE_VASPRINTF 1
++
++/* Define if kqueue works correctly with pipes */
++#define _EVENT_HAVE_WORKING_KQUEUE 1
++
++/* Name of package */
++#define _EVENT_PACKAGE "libevent"
++
++/* Define to the address where bug reports for this package should be sent. */
++#define _EVENT_PACKAGE_BUGREPORT ""
++
++/* Define to the full name of this package. */
++#define _EVENT_PACKAGE_NAME ""
++
++/* Define to the full name and version of this package. */
++#define _EVENT_PACKAGE_STRING ""
++
++/* Define to the one symbol short name of this package. */
++#define _EVENT_PACKAGE_TARNAME ""
++
++/* Define to the version of this package. */
++#define _EVENT_PACKAGE_VERSION ""
++
++/* The size of `int', as computed by sizeof. */
++#define _EVENT_SIZEOF_INT 4
++
++/* The size of `long', as computed by sizeof. */
++#define _EVENT_SIZEOF_LONG 8
++
++/* The size of `long long', as computed by sizeof. */
++#define _EVENT_SIZEOF_LONG_LONG 8
++
++/* The size of `short', as computed by sizeof. */
++#define _EVENT_SIZEOF_SHORT 2
++
++/* Define to 1 if you have the ANSI C header files. */
++#define _EVENT_STDC_HEADERS 1
++
++/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
++#define _EVENT_TIME_WITH_SYS_TIME 1
++
++/* Version number of package */
++#define _EVENT_VERSION "1.4.13-stable"
++
++/* Define to appropriate substitue if compiler doesnt have __func__ */
++/* #undef _EVENT___func__ */
++
++/* Define to empty if `const' does not conform to ANSI C. */
++/* #undef _EVENT_const */
++
++/* Define to `__inline__' or `__inline' if that's what the C compiler
++ calls it, or to nothing if 'inline' is not supported under any name. */
++#ifndef _EVENT___cplusplus
++/* #undef _EVENT_inline */
++#endif
++
++/* Define to `int' if <sys/types.h> does not define. */
++/* #undef _EVENT_pid_t */
++
++/* Define to `unsigned int' if <sys/types.h> does not define. */
++/* #undef _EVENT_size_t */
++
++/* Define to unsigned int if you dont have it */
++/* #undef _EVENT_socklen_t */
++#endif
diff --git a/www/chromium/files/patch-third_party__libevent__libevent.gyp b/www/chromium/files/patch-third_party__libevent__libevent.gyp
new file mode 100644
index 000000000000..842bb14d7fe9
--- /dev/null
+++ b/www/chromium/files/patch-third_party__libevent__libevent.gyp
@@ -0,0 +1,23 @@
+--- ./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' ]
++ }],
+ ],
+ },
+ ],
diff --git a/www/chromium/files/patch-third_party__libvpx__libvpx.gyp b/www/chromium/files/patch-third_party__libvpx__libvpx.gyp
new file mode 100644
index 000000000000..7321bcde470e
--- /dev/null
+++ b/www/chromium/files/patch-third_party__libvpx__libvpx.gyp
@@ -0,0 +1,14 @@
+--- ./third_party/libvpx/libvpx.gyp.orig 2010-12-16 02:34:53.000000000 +0100
++++ ./third_party/libvpx/libvpx.gyp 2010-12-20 20:15:08.000000000 +0100
+@@ -35,6 +35,11 @@
+ 'libvpx_path': 'lib/linux/arm',
+ },
+ }],
++ ['OS=="freebsd"', {
++ 'variables': {
++ 'libvpx_path': '/usr/local/lib',
++ },
++ }],
+ ['OS=="win"', {
+ 'variables': {
+ 'libvpx_path': 'lib/win/ia32',
diff --git a/www/chromium/files/patch-third_party__mesa__mesa.gyp b/www/chromium/files/patch-third_party__mesa__mesa.gyp
new file mode 100644
index 000000000000..ca52ddb5490e
--- /dev/null
+++ b/www/chromium/files/patch-third_party__mesa__mesa.gyp
@@ -0,0 +1,11 @@
+--- ./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',
+ ],
diff --git a/www/chromium/files/patch-third_party__skia__include__core__SkPreConfig.h b/www/chromium/files/patch-third_party__skia__include__core__SkPreConfig.h
new file mode 100644
index 000000000000..7eb1b268ee58
--- /dev/null
+++ b/www/chromium/files/patch-third_party__skia__include__core__SkPreConfig.h
@@ -0,0 +1,11 @@
+--- ./third_party/skia/include/core/SkPreConfig.h.orig 2010-12-16 02:12:24.000000000 +0100
++++ ./third_party/skia/include/core/SkPreConfig.h 2010-12-20 20:15:08.000000000 +0100
+@@ -57,6 +57,8 @@
+ #if !defined(SK_RESTRICT)
+ #define SK_RESTRICT __restrict__
+ #endif
++#undef SK_RESTRICT
++#define SK_RESTRICT
+
+ //////////////////////////////////////////////////////////////////////
+
diff --git a/www/chromium/files/patch-third_party__tcmalloc__chromium__src__config_freebsd.h b/www/chromium/files/patch-third_party__tcmalloc__chromium__src__config_freebsd.h
new file mode 100644
index 000000000000..76ee37af39d6
--- /dev/null
+++ b/www/chromium/files/patch-third_party__tcmalloc__chromium__src__config_freebsd.h
@@ -0,0 +1,237 @@
+--- ./third_party/tcmalloc/chromium/src/config_freebsd.h.orig 2010-12-20 20:15:08.000000000 +0100
++++ ./third_party/tcmalloc/chromium/src/config_freebsd.h 2010-12-20 20:15:08.000000000 +0100
+@@ -0,0 +1,234 @@
++/* src/config.h. Generated from config.h.in by configure. */
++/* src/config.h.in. Generated from configure.ac by autoheader. */
++
++/* Define to 1 if compiler supports __builtin_stack_pointer */
++/* #undef HAVE_BUILTIN_STACK_POINTER */
++
++/* Define to 1 if you have the <conflict-signal.h> header file. */
++/* #undef HAVE_CONFLICT_SIGNAL_H */
++
++/* Define to 1 if you have the declaration of `cfree', and to 0 if you don't.
++ */
++#define HAVE_DECL_CFREE 0
++
++/* Define to 1 if you have the declaration of `memalign', and to 0 if you
++ don't. */
++#define HAVE_DECL_MEMALIGN 0
++
++/* Define to 1 if you have the declaration of `posix_memalign', and to 0 if
++ you don't. */
++#define HAVE_DECL_POSIX_MEMALIGN 0
++
++/* Define to 1 if you have the declaration of `pvalloc', and to 0 if you
++ don't. */
++#define HAVE_DECL_PVALLOC 0
++
++/* Define to 1 if you have the declaration of `uname', and to 0 if you don't.
++ */
++#define HAVE_DECL_UNAME 1
++
++/* Define to 1 if you have the declaration of `valloc', and to 0 if you don't.
++ */
++#define HAVE_DECL_VALLOC 0
++
++/* Define to 1 if you have the <dlfcn.h> header file. */
++#define HAVE_DLFCN_H 1
++
++/* Define to 1 if the system has the type `Elf32_Versym'. */
++#define HAVE_ELF32_VERSYM 1
++
++/* Define to 1 if you have the <execinfo.h> header file. */
++#define HAVE_EXECINFO_H 1
++
++/* Define to 1 if you have the <fcntl.h> header file. */
++#define HAVE_FCNTL_H 1
++
++/* Define to 1 if you have the <features.h> header file. */
++/* #undef HAVE_FEATURES_H */
++
++/* Define to 1 if you have the `geteuid' function. */
++#define HAVE_GETEUID 1
++
++/* Define to 1 if you have the `getpagesize' function. */
++#define HAVE_GETPAGESIZE 1
++
++/* Define to 1 if you have the <glob.h> header file. */
++#define HAVE_GLOB_H 1
++
++/* Define to 1 if you have the <grp.h> header file. */
++#define HAVE_GRP_H 1
++
++/* Define to 1 if you have the <inttypes.h> header file. */
++#define HAVE_INTTYPES_H 1
++
++/* Define to 1 if you have the <libunwind.h> header file. */
++/* #undef HAVE_LIBUNWIND_H */
++
++/* Define to 1 if you have the <linux/ptrace.h> header file. */
++/* #undef HAVE_LINUX_PTRACE_H */
++
++/* Define to 1 if you have the <malloc.h> header file. */
++/* #undef HAVE_MALLOC_H */
++
++/* Define to 1 if you have the <memory.h> header file. */
++#define HAVE_MEMORY_H 1
++
++/* Define to 1 if you have a working `mmap' system call. */
++#define HAVE_MMAP 1
++
++/* define if the compiler implements namespaces */
++#define HAVE_NAMESPACES 1
++
++/* Define to 1 if you have the <poll.h> header file. */
++#define HAVE_POLL_H 1
++
++/* define if libc has program_invocation_name */
++/* #undef HAVE_PROGRAM_INVOCATION_NAME */
++
++/* Define if you have POSIX threads libraries and header files. */
++#define HAVE_PTHREAD 1
++
++/* Define to 1 if you have the <pwd.h> header file. */
++#define HAVE_PWD_H 1
++
++/* Define to 1 if you have the `sbrk' function. */
++#define HAVE_SBRK 1
++
++/* Define to 1 if you have the <sched.h> header file. */
++#define HAVE_SCHED_H 1
++
++/* Define to 1 if you have the <stdint.h> header file. */
++#define HAVE_STDINT_H 1
++
++/* Define to 1 if you have the <stdlib.h> header file. */
++#define HAVE_STDLIB_H 1
++
++/* Define to 1 if you have the <strings.h> header file. */
++#define HAVE_STRINGS_H 1
++
++/* Define to 1 if you have the <string.h> header file. */
++#define HAVE_STRING_H 1
++
++/* Define to 1 if the system has the type `struct mallinfo'. */
++/* #undef HAVE_STRUCT_MALLINFO */
++
++/* Define to 1 if you have the <sys/prctl.h> header file. */
++/* #undef HAVE_SYS_PRCTL_H */
++
++/* Define to 1 if you have the <sys/resource.h> header file. */
++#define HAVE_SYS_RESOURCE_H 1
++
++/* Define to 1 if you have the <sys/socket.h> header file. */
++#define HAVE_SYS_SOCKET_H 1
++
++/* Define to 1 if you have the <sys/stat.h> header file. */
++#define HAVE_SYS_STAT_H 1
++
++/* Define to 1 if you have the <sys/syscall.h> header file. */
++#define HAVE_SYS_SYSCALL_H 1
++
++/* Define to 1 if you have the <sys/types.h> header file. */
++#define HAVE_SYS_TYPES_H 1
++
++/* Define to 1 if you have the <sys/wait.h> header file. */
++#define HAVE_SYS_WAIT_H 1
++
++/* Define to 1 if compiler supports __thread */
++#define HAVE_TLS 1
++
++/* Define to 1 if you have the <ucontext.h> header file. */
++#define HAVE_UCONTEXT_H 1
++
++/* Define to 1 if you have the <unistd.h> header file. */
++#define HAVE_UNISTD_H 1
++
++/* Define to 1 if you have the <unwind.h> header file. */
++/* #undef HAVE_UNWIND_H */
++
++/* define if your compiler has __attribute__ */
++#define HAVE___ATTRIBUTE__ 1
++
++/* Define to 1 if the system has the type `__int64'. */
++/* #undef HAVE___INT64 */
++
++/* prefix where we look for installed files */
++#define INSTALL_PREFIX "/usr/local"
++
++/* Define to 1 if int32_t is equivalent to intptr_t */
++/* #undef INT32_EQUALS_INTPTR */
++#if defined(__i386__)
++#define INT32_EQUALS_INTPTR 1
++#endif
++
++/* Define to 1 if your C compiler doesn't accept -c and -o together. */
++/* #undef NO_MINUS_C_MINUS_O */
++
++/* Name of package */
++#define PACKAGE "google-perftools"
++
++/* Define to the address where bug reports for this package should be sent. */
++#define PACKAGE_BUGREPORT "opensource@google.com"
++
++/* Define to the full name of this package. */
++#define PACKAGE_NAME "google-perftools"
++
++/* Define to the full name and version of this package. */
++#define PACKAGE_STRING "google-perftools 1.3"
++
++/* Define to the one symbol short name of this package. */
++#define PACKAGE_TARNAME "google-perftools"
++
++/* Define to the version of this package. */
++#define PACKAGE_VERSION "1.3"
++
++/* How to access the PC from a struct ucontext */
++#if defined(__i386__)
++#define PC_FROM_UCONTEXT uc_mcontext.mc_eip
++#else
++#define PC_FROM_UCONTEXT uc_mcontext.mc_rip
++#endif
++
++/* Always the empty-string on non-windows systems. On windows, should be
++ "__declspec(dllexport)". This way, when we compile the dll, we export our
++ functions/classes. It's safe to define this here because config.h is only
++ used internally, to compile the DLL, and every DLL source file #includes
++ "config.h" before anything else. */
++#define PERFTOOLS_DLL_DECL
++
++/* printf format code for printing a size_t and ssize_t */
++#define PRIdS "zd"
++
++/* printf format code for printing a size_t and ssize_t */
++#define PRIuS "zu"
++
++/* printf format code for printing a size_t and ssize_t */
++#define PRIxS "zx"
++
++/* Define to necessary symbol if this constant uses a non-standard name on
++ your system. */
++/* #undef PTHREAD_CREATE_JOINABLE */
++
++/* Define to 1 if you have the ANSI C header files. */
++#define STDC_HEADERS 1
++
++/* the namespace where STL code like vector<> is defined */
++#define STL_NAMESPACE std
++
++/* Version number of package */
++#define VERSION "1.3"
++
++/* C99 says: define this to get the PRI... macros from stdint.h */
++#ifndef __STDC_FORMAT_MACROS
++# define __STDC_FORMAT_MACROS 1
++#endif
++
++/* Define to `__inline__' or `__inline' if that's what the C compiler
++ calls it, or to nothing if 'inline' is not supported under any name. */
++#ifndef __cplusplus
++/* #undef inline */
++#endif
++
++
++#ifdef __MINGW32__
++#include "windows/mingw.h"
++#endif
diff --git a/www/chromium/files/patch-thirdparty b/www/chromium/files/patch-thirdparty
deleted file mode 100644
index cc590a1ac640..000000000000
--- a/www/chromium/files/patch-thirdparty
+++ /dev/null
@@ -1,1102 +0,0 @@
-Index: third_party/WebKit/WebCore/dom/SelectElement.cpp
-===================================================================
---- third_party/WebKit/WebCore/dom/SelectElement.cpp (revision 63601)
-+++ third_party/WebKit/WebCore/dom/SelectElement.cpp (working copy)
-@@ -53,7 +53,7 @@
- #if PLATFORM(MAC) || (PLATFORM(CHROMIUM) && OS(DARWIN))
- #define ARROW_KEYS_POP_MENU 1
- #define SPACE_OR_RETURN_POP_MENU 0
--#elif PLATFORM(GTK) || (PLATFORM(CHROMIUM) && OS(LINUX))
-+#elif PLATFORM(GTK) || (PLATFORM(CHROMIUM) && (OS(LINUX) || OS(FREEBSD)))
- #define ARROW_KEYS_POP_MENU 0
- #define SPACE_OR_RETURN_POP_MENU 1
- #else
-Index: third_party/WebKit/WebCore/page/EventHandler.cpp
-===================================================================
---- third_party/WebKit/WebCore/page/EventHandler.cpp (revision 63601)
-+++ third_party/WebKit/WebCore/page/EventHandler.cpp (working copy)
-@@ -1890,7 +1890,7 @@
- return swallowEvent;
- }
-
--#if !PLATFORM(GTK) && !(PLATFORM(CHROMIUM) && OS(LINUX))
-+#if !PLATFORM(GTK) && !(PLATFORM(CHROMIUM) && (OS(LINUX) || OS(FREEBSD)))
- bool EventHandler::shouldTurnVerticalTicksIntoHorizontal(const HitTestResult&) const
- {
- return false;
-Index: third_party/WebKit/WebCore/page/chromium/EventHandlerChromium.cpp
-===================================================================
---- third_party/WebKit/WebCore/page/chromium/EventHandlerChromium.cpp (revision 63601)
-+++ third_party/WebKit/WebCore/page/chromium/EventHandlerChromium.cpp (working copy)
-@@ -154,7 +154,7 @@
- #endif
- }
-
--#if OS(LINUX)
-+#if OS(LINUX) || OS(FREEBSD)
- // GTK+ must scroll horizontally if the mouse pointer is on top of the
- // horizontal scrollbar while scrolling with the wheel.
- // This code comes from gtk/EventHandlerGtk.cpp.
-Index: third_party/WebKit/WebCore/platform/chromium/ChromiumBridge.h
-===================================================================
---- third_party/WebKit/WebCore/platform/chromium/ChromiumBridge.h (revision 63601)
-+++ third_party/WebKit/WebCore/platform/chromium/ChromiumBridge.h (working copy)
-@@ -141,7 +141,7 @@
- #if OS(WINDOWS)
- static bool ensureFontLoaded(HFONT font);
- #endif
--#if OS(LINUX)
-+#if OS(LINUX) || OS(FREEBSD)
- static void getRenderStyleForStrike(const char* family, int sizeAndStyle, FontRenderStyle* result);
- static String getFontFamilyForCharacters(const UChar*, size_t numCharacters);
- #endif
-Index: third_party/WebKit/WebCore/platform/graphics/chromium/FontCustomPlatformData.cpp
-===================================================================
---- third_party/WebKit/WebCore/platform/graphics/chromium/FontCustomPlatformData.cpp (revision 63601)
-+++ third_party/WebKit/WebCore/platform/graphics/chromium/FontCustomPlatformData.cpp (working copy)
-@@ -36,7 +36,7 @@
- #include "Base64.h"
- #include "ChromiumBridge.h"
- #include "OpenTypeUtilities.h"
--#elif OS(LINUX)
-+#elif OS(LINUX) || OS(FREEBSD)
- #include "SkStream.h"
- #endif
-
-@@ -47,7 +47,7 @@
-
- #if OS(WINDOWS)
- #include <objbase.h>
--#elif OS(LINUX)
-+#elif OS(LINUX) || OS(FREEBSD)
- #include <cstring>
- #endif
-
-@@ -58,7 +58,7 @@
- #if OS(WINDOWS)
- if (m_fontReference)
- RemoveFontMemResourceEx(m_fontReference);
--#elif OS(LINUX)
-+#elif OS(LINUX) || OS(FREEBSD)
- if (m_fontReference)
- m_fontReference->unref();
- #endif
-@@ -99,7 +99,7 @@
-
- HFONT hfont = CreateFontIndirect(&logFont);
- return FontPlatformData(hfont, size);
--#elif OS(LINUX)
-+#elif OS(LINUX) || OS(FREEBSD)
- ASSERT(m_fontReference);
- return FontPlatformData(m_fontReference, "", size, bold && !m_fontReference->isBold(), italic && !m_fontReference->isItalic());
- #else
-@@ -123,7 +123,7 @@
- }
- #endif
-
--#if OS(LINUX)
-+#if OS(LINUX) || OS(FREEBSD)
- class RemoteFontStream : public SkStream {
- public:
- explicit RemoteFontStream(PassRefPtr<SharedBuffer> buffer)
-@@ -189,7 +189,7 @@
- if (!fontReference)
- return 0;
- return new FontCustomPlatformData(fontReference, fontName);
--#elif OS(LINUX)
-+#elif OS(LINUX) || OS(FREEBSD)
- RemoteFontStream* stream = new RemoteFontStream(buffer);
- SkTypeface* typeface = SkTypeface::CreateFromStream(stream);
- if (!typeface)
-Index: third_party/WebKit/WebCore/platform/graphics/chromium/FontPlatformData.h
-===================================================================
---- third_party/WebKit/WebCore/platform/graphics/chromium/FontPlatformData.h (revision 63601)
-+++ third_party/WebKit/WebCore/platform/graphics/chromium/FontPlatformData.h (working copy)
-@@ -33,7 +33,7 @@
-
- #if OS(WINDOWS)
- #include "FontPlatformDataChromiumWin.h"
--#elif OS(LINUX)
-+#elif OS(LINUX) || OS(FREEBSD)
- #include "FontPlatformDataLinux.h"
- #endif
-
-Index: third_party/WebKit/WebCore/platform/graphics/chromium/FontCustomPlatformData.h
-===================================================================
---- third_party/WebKit/WebCore/platform/graphics/chromium/FontCustomPlatformData.h (revision 63601)
-+++ third_party/WebKit/WebCore/platform/graphics/chromium/FontCustomPlatformData.h (working copy)
-@@ -38,7 +38,7 @@
- #if OS(WINDOWS)
- #include "PlatformString.h"
- #include <windows.h>
--#elif OS(LINUX)
-+#elif OS(LINUX) || OS(FREEBSD)
- #include "SkTypeface.h"
- #endif
-
-@@ -53,7 +53,7 @@
- : m_fontReference(fontReference)
- , m_name(name)
- {}
--#elif OS(LINUX)
-+#elif OS(LINUX) || OS(FREEBSD)
- explicit FontCustomPlatformData(SkTypeface* typeface)
- : m_fontReference(typeface)
- {}
-@@ -67,7 +67,7 @@
- #if OS(WINDOWS)
- HANDLE m_fontReference;
- String m_name;
--#elif OS(LINUX)
-+#elif OS(LINUX) || OS(FREEBSD)
- SkTypeface* m_fontReference;
- #endif
- };
-Index: third_party/WebKit/WebCore/platform/graphics/skia/PlatformContextSkia.cpp
-===================================================================
---- third_party/WebKit/WebCore/platform/graphics/skia/PlatformContextSkia.cpp (revision 63601)
-+++ third_party/WebKit/WebCore/platform/graphics/skia/PlatformContextSkia.cpp (working copy)
-@@ -89,7 +89,7 @@
- // color to produce a new output color.
- SkColor applyAlpha(SkColor) const;
-
--#if OS(LINUX) || OS(WINDOWS)
-+#if OS(LINUX) || OS(FREEBSD) || OS(WINDOWS)
- // If non-empty, the current State is clipped to this image.
- SkBitmap m_imageBufferClip;
- // If m_imageBufferClip is non-empty, this is the region the image is clipped to.
-@@ -146,7 +146,7 @@
- , m_lineJoin(other.m_lineJoin)
- , m_dash(other.m_dash)
- , m_textDrawingMode(other.m_textDrawingMode)
--#if OS(LINUX) || OS(WINDOWS)
-+#if OS(LINUX) || OS(FREEBSD) || OS(WINDOWS)
- , m_imageBufferClip(other.m_imageBufferClip)
- , m_clip(other.m_clip)
- #endif
-@@ -232,7 +232,7 @@
- m_stateStack.append(m_state->cloneInheritedProperties());
- m_state = &m_stateStack.last();
-
--#if OS(LINUX) || OS(WINDOWS)
-+#if OS(LINUX) || OS(FREEBSD) || OS(WINDOWS)
- // The clip image only needs to be applied once. Reset the image so that we
- // don't attempt to clip multiple times.
- m_state->m_imageBufferClip.reset();
-@@ -242,7 +242,7 @@
- canvas()->save();
- }
-
--#if OS(LINUX) || OS(WINDOWS)
-+#if OS(LINUX) || OS(FREEBSD) || OS(WINDOWS)
- void PlatformContextSkia::beginLayerClippedToImage(const WebCore::FloatRect& rect,
- const WebCore::ImageBuffer* imageBuffer)
- {
-@@ -290,7 +290,7 @@
-
- void PlatformContextSkia::restore()
- {
--#if OS(LINUX) || OS(WINDOWS)
-+#if OS(LINUX) || OS(FREEBSD) || OS(WINDOWS)
- if (!m_state->m_imageBufferClip.empty()) {
- applyClipFromImage(m_state->m_clip, m_state->m_imageBufferClip);
- canvas()->restore();
-@@ -614,7 +614,7 @@
- return !m_imageResamplingHintSrcSize.isEmpty() && !m_imageResamplingHintDstSize.isEmpty();
- }
-
--#if OS(LINUX) || OS(WINDOWS)
-+#if OS(LINUX) || OS(FREEBSD) || OS(WINDOWS)
- void PlatformContextSkia::applyClipFromImage(const WebCore::FloatRect& rect, const SkBitmap& imageBuffer)
- {
- // NOTE: this assumes the image mask contains opaque black for the portions that are to be shown, as such we
-Index: third_party/WebKit/WebCore/platform/graphics/skia/PlatformContextSkia.h
-===================================================================
---- third_party/WebKit/WebCore/platform/graphics/skia/PlatformContextSkia.h (revision 63601)
-+++ third_party/WebKit/WebCore/platform/graphics/skia/PlatformContextSkia.h (working copy)
-@@ -88,7 +88,7 @@
- // |rect|. This layer is implicitly restored when the next restore is
- // invoked.
- // NOTE: |imageBuffer| may be deleted before the |restore| is invoked.
--#if OS(LINUX) || OS(WINDOWS)
-+#if OS(LINUX) || OS(FREEBSD) || OS(WINDOWS)
- void beginLayerClippedToImage(const WebCore::FloatRect&,
- const WebCore::ImageBuffer*);
- #endif
-@@ -176,7 +176,7 @@
- bool hasImageResamplingHint() const;
-
- private:
--#if OS(LINUX) || OS(WINDOWS)
-+#if OS(LINUX) || OS(FREEBSD) || OS(WINDOWS)
- // Used when restoring and the state has an image clip. Only shows the pixels in
- // m_canvas that are also in imageBuffer.
- void applyClipFromImage(const WebCore::FloatRect&, const SkBitmap&);
-Index: third_party/WebKit/WebCore/platform/graphics/skia/GraphicsContextSkia.cpp
-===================================================================
---- third_party/WebKit/WebCore/platform/graphics/skia/GraphicsContextSkia.cpp (revision 63601)
-+++ third_party/WebKit/WebCore/platform/graphics/skia/GraphicsContextSkia.cpp (working copy)
-@@ -432,7 +432,7 @@
- if (paintingDisabled())
- return;
-
--#if OS(LINUX) || OS(WINDOWS)
-+#if OS(LINUX) || OS(FREEBSD) || OS(WINDOWS)
- platformContext()->beginLayerClippedToImage(rect, imageBuffer);
- #endif
- }
-Index: third_party/WebKit/WebCore/platform/Scrollbar.cpp
-===================================================================
---- third_party/WebKit/WebCore/platform/Scrollbar.cpp (revision 63601)
-+++ third_party/WebKit/WebCore/platform/Scrollbar.cpp (working copy)
-@@ -40,7 +40,7 @@
-
- using namespace std;
-
--#if PLATFORM(CHROMIUM) && OS(LINUX)
-+#if PLATFORM(CHROMIUM) && (OS(LINUX) || OS(FREEBSD))
- // The position of the scrollbar thumb affects the appearance of the steppers, so
- // when the thumb moves, we have to invalidate them for painting.
- #define THUMB_POSITION_AFFECTS_BUTTONS
-Index: third_party/WebKit/WebCore/bindings/js/JSInspectorFrontendHostCustom.cpp
-===================================================================
---- third_party/WebKit/WebCore/bindings/js/JSInspectorFrontendHostCustom.cpp (revision 63601)
-+++ third_party/WebKit/WebCore/bindings/js/JSInspectorFrontendHostCustom.cpp (working copy)
-@@ -57,6 +57,8 @@
- DEFINE_STATIC_LOCAL(const String, platform, ("windows"));
- #elif OS(LINUX)
- DEFINE_STATIC_LOCAL(const String, platform, ("linux"));
-+#elif OS(FREEBSD)
-+ DEFINE_STATIC_LOCAL(const String, platform, ("freebsd"));
- #else
- DEFINE_STATIC_LOCAL(const String, platform, ("unknown"));
- #endif
-Index: third_party/WebKit/WebCore/bindings/v8/custom/V8InspectorFrontendHostCustom.cpp
-===================================================================
---- third_party/WebKit/WebCore/bindings/v8/custom/V8InspectorFrontendHostCustom.cpp (revision 63601)
-+++ third_party/WebKit/WebCore/bindings/v8/custom/V8InspectorFrontendHostCustom.cpp (working copy)
-@@ -46,6 +46,8 @@
- return v8String("mac");
- #elif defined(OS_LINUX)
- return v8String("linux");
-+#elif defined(OS_FREEBSD)
-+ return v8String("freebsd");
- #elif defined(OS_WIN)
- return v8String("windows");
- #else
-Index: third_party/WebKit/WebCore/loader/CachedFont.cpp
-===================================================================
---- third_party/WebKit/WebCore/loader/CachedFont.cpp (revision 63601)
-+++ third_party/WebKit/WebCore/loader/CachedFont.cpp (working copy)
-@@ -27,7 +27,7 @@
- #include "config.h"
- #include "CachedFont.h"
-
--#if PLATFORM(CG) || PLATFORM(QT) || PLATFORM(GTK) || (PLATFORM(CHROMIUM) && (OS(WINDOWS) || OS(LINUX))) || PLATFORM(HAIKU) || OS(WINCE) || PLATFORM(ANDROID)
-+#if PLATFORM(CG) || PLATFORM(QT) || PLATFORM(GTK) || (PLATFORM(CHROMIUM) && (OS(WINDOWS) || OS(LINUX) || OS(FREEBSD))) || PLATFORM(HAIKU) || OS(WINCE) || PLATFORM(ANDROID)
- #define STORE_FONT_CUSTOM_PLATFORM_DATA
- #endif
-
-Index: third_party/WebKit/WebKit/chromium/src/WebGraphicsContext3DDefaultImpl.cpp
-===================================================================
---- third_party/WebKit/WebKit/chromium/src/WebGraphicsContext3DDefaultImpl.cpp (revision 63601)
-+++ third_party/WebKit/WebKit/chromium/src/WebGraphicsContext3DDefaultImpl.cpp (working copy)
-@@ -39,7 +39,7 @@
-
- #include "NotImplemented.h"
-
--#if OS(LINUX)
-+#if OS(LINUX) || OS(FREEBSD)
- #include <dlfcn.h>
- #endif
-
-@@ -54,7 +54,7 @@
-
- bool WebGraphicsContext3DDefaultImpl::s_initializedGLEW = false;
-
--#if OS(LINUX)
-+#if OS(LINUX) || OS(FREEBSD)
- WebGraphicsContext3DDefaultImpl::GLConnection* WebGraphicsContext3DDefaultImpl::s_gl = 0;
-
- WebGraphicsContext3DDefaultImpl::GLConnection* WebGraphicsContext3DDefaultImpl::GLConnection::create()
-@@ -107,7 +107,7 @@
- dlclose(m_libGL);
- }
-
--#endif // OS(LINUX)
-+#endif // OS(LINUX) || OS(FREEBSD)
-
- WebGraphicsContext3DDefaultImpl::VertexAttribPointerState::VertexAttribPointerState()
- : enabled(false)
-@@ -142,7 +142,7 @@
- , m_pbuffer(0)
- , m_contextObj(0)
- , m_renderOutput(0)
--#elif OS(LINUX)
-+#elif OS(LINUX) || OS(FREEBSD)
- , m_contextObj(0)
- , m_pbuffer(0)
- #else
-@@ -183,7 +183,7 @@
- CGLDestroyPBuffer(m_pbuffer);
- if (m_renderOutput)
- delete[] m_renderOutput;
--#elif OS(LINUX)
-+#elif OS(LINUX) || OS(FREEBSD)
- s_gl->makeCurrent(0, 0);
- s_gl->destroyContext(m_contextObj);
- s_gl->destroyPbuffer(m_pbuffer);
-@@ -316,7 +316,7 @@
- }
- m_pbuffer = pbuffer;
- m_contextObj = context;
--#elif OS(LINUX)
-+#elif OS(LINUX) || OS(FREEBSD)
- if (!s_gl) {
- s_gl = GLConnection::create();
- if (!s_gl)
-@@ -431,7 +431,7 @@
- if (CGLGetCurrentContext() != m_contextObj)
- if (CGLSetCurrentContext(m_contextObj) == kCGLNoError)
- return true;
--#elif OS(LINUX)
-+#elif OS(LINUX) || OS(FREEBSD)
- if (s_gl->getCurrentContext() != m_contextObj)
- if (s_gl->makeCurrent(m_pbuffer, m_contextObj))
- return true;
-Index: third_party/WebKit/WebKit/chromium/src/ChromiumBridge.cpp
-===================================================================
---- third_party/WebKit/WebKit/chromium/src/ChromiumBridge.cpp (revision 63601)
-+++ third_party/WebKit/WebKit/chromium/src/ChromiumBridge.cpp (working copy)
-@@ -64,7 +64,7 @@
- #include "WebThemeEngine.h"
- #endif
-
--#if OS(LINUX)
-+#if OS(LINUX) || OS(FREEBSD)
- #include "WebFontInfo.h"
- #include "WebFontRenderStyle.h"
- #endif
-@@ -420,7 +420,7 @@
- }
- #endif
-
--#if OS(LINUX)
-+#if OS(LINUX) || OS(FREEBSD)
- String ChromiumBridge::getFontFamilyForCharacters(const UChar* characters, size_t numCharacters)
- {
- if (webKitClient()->sandboxSupport())
-Index: third_party/WebKit/WebKit/chromium/src/WebFrameImpl.cpp
-===================================================================
---- third_party/WebKit/WebKit/chromium/src/WebFrameImpl.cpp (revision 63601)
-+++ third_party/WebKit/WebKit/chromium/src/WebFrameImpl.cpp (working copy)
-@@ -151,7 +151,7 @@
- #include "LocalCurrentGraphicsContext.h"
- #endif
-
--#if OS(LINUX)
-+#if OS(LINUX) || OS(FREEBSD)
- #include <gdk/gdk.h>
- #endif
-
-@@ -298,7 +298,7 @@
- float scale = m_printedPageWidth / pageRect.width();
-
- ctx.save();
--#if OS(LINUX)
-+#if OS(LINUX) || OS(FREEBSD)
- ctx.scale(WebCore::FloatSize(scale, scale));
- #endif
- ctx.translate(static_cast<float>(-pageRect.x()),
-Index: third_party/WebKit/WebKit/chromium/src/WebGraphicsContext3DDefaultImpl.h
-===================================================================
---- third_party/WebKit/WebKit/chromium/src/WebGraphicsContext3DDefaultImpl.h (revision 63601)
-+++ third_party/WebKit/WebKit/chromium/src/WebGraphicsContext3DDefaultImpl.h (working copy)
-@@ -52,7 +52,7 @@
- #define FLIP_FRAMEBUFFER_VERTICALLY
- #endif
-
--#if OS(LINUX)
-+#if OS(LINUX) || OS(FREEBSD)
- #include "GL/glxew.h"
- #endif
-
-@@ -332,7 +332,7 @@
- CGLPBufferObj m_pbuffer;
- CGLContextObj m_contextObj;
- unsigned char* m_renderOutput;
--#elif OS(LINUX)
-+#elif OS(LINUX) || OS(FREEBSD)
- GLXContext m_contextObj;
- GLXPbuffer m_pbuffer;
-
-Index: third_party/WebKit/WebKit/chromium/src/WebViewImpl.cpp
-===================================================================
---- third_party/WebKit/WebKit/chromium/src/WebViewImpl.cpp (revision 63601)
-+++ third_party/WebKit/WebKit/chromium/src/WebViewImpl.cpp (working copy)
-@@ -115,7 +115,7 @@
- #if OS(WINDOWS)
- #include "RenderThemeChromiumWin.h"
- #else
--#if OS(LINUX)
-+#if OS(LINUX) || OS(FREEBSD)
- #include "RenderThemeChromiumLinux.h"
- #endif
- #include "RenderTheme.h"
-@@ -402,7 +402,7 @@
- || (event.button == WebMouseEvent::ButtonLeft
- && event.modifiers & WebMouseEvent::ControlKey))
- mouseContextMenu(event);
--#elif OS(LINUX)
-+#elif OS(LINUX) || OS(FREEBSD)
- if (event.button == WebMouseEvent::ButtonRight)
- mouseContextMenu(event);
- #endif
-@@ -441,7 +441,7 @@
- if (!mainFrameImpl() || !mainFrameImpl()->frameView())
- return;
-
--#if OS(LINUX)
-+#if OS(LINUX) || OS(FREEBSD)
- // If the event was a middle click, attempt to copy text into the focused
- // frame. We execute this before we let the page have a go at the event
- // because the page may change what is focused during in its event handler.
-@@ -525,11 +525,11 @@
- if (!handler)
- return keyEventDefault(event);
-
--#if OS(WINDOWS) || OS(LINUX)
-+#if OS(WINDOWS) || OS(LINUX) || OS(FREEBSD)
- const WebInputEvent::Type contextMenuTriggeringEventType =
- #if OS(WINDOWS)
- WebInputEvent::KeyUp;
--#elif OS(LINUX)
-+#elif OS(LINUX) || OS(FREEBSD)
- WebInputEvent::RawKeyDown;
- #endif
-
-@@ -673,7 +673,7 @@
- }
- #endif
-
--#if OS(WINDOWS) || OS(LINUX)
-+#if OS(WINDOWS) || OS(LINUX) || OS(FREEBSD)
- // Mac has no way to open a context menu based on a keyboard event.
- bool WebViewImpl::sendContextMenuEvent(const WebKeyboardEvent& event)
- {
-@@ -1875,7 +1875,7 @@
- void WebViewImpl::setScrollbarColors(unsigned inactiveColor,
- unsigned activeColor,
- unsigned trackColor) {
--#if OS(LINUX)
-+#if OS(LINUX) || OS(FREEBSD)
- PlatformThemeChromiumGtk::setScrollbarColors(inactiveColor,
- activeColor,
- trackColor);
-@@ -1886,7 +1886,7 @@
- unsigned activeForegroundColor,
- unsigned inactiveBackgroundColor,
- unsigned inactiveForegroundColor) {
--#if OS(LINUX)
-+#if OS(LINUX) || OS(FREEBSD)
- RenderThemeChromiumLinux::setSelectionColors(activeBackgroundColor,
- activeForegroundColor,
- inactiveBackgroundColor,
-Index: tools/gyp/test/additional-targets/src/dir1/actions.gyp
-===================================================================
---- tools/gyp/test/additional-targets/src/dir1/actions.gyp (revision 837)
-+++ tools/gyp/test/additional-targets/src/dir1/actions.gyp (working copy)
-@@ -47,7 +47,7 @@
- },
- ],
- 'conditions': [
-- ['OS=="linux"', {
-+ ['OS=="linux" or OS=="freebsd"', {
- 'target_defaults': {
- 'cflags': ['-fPIC'],
- },
-Index: tools/gyp/test/library/src/library.gyp
-===================================================================
---- tools/gyp/test/library/src/library.gyp (revision 837)
-+++ tools/gyp/test/library/src/library.gyp (working copy)
-@@ -48,7 +48,7 @@
- },
- ],
- 'conditions': [
-- ['OS=="linux"', {
-+ ['OS=="linux" or OS=="freebsd"', {
- 'target_defaults': {
- # Support 64-bit shared libs (also works fine for 32-bit).
- 'cflags': ['-fPIC'],
-Index: tools/gyp/pylib/gyp/generator/make.py
-===================================================================
---- tools/gyp/pylib/gyp/generator/make.py (revision 837)
-+++ tools/gyp/pylib/gyp/generator/make.py (working copy)
-@@ -34,7 +34,7 @@
- generator_default_variables = {
- 'EXECUTABLE_PREFIX': '',
- 'EXECUTABLE_SUFFIX': '',
-- 'OS': 'linux',
-+ 'OS': 'freebsd',
- 'STATIC_LIB_PREFIX': 'lib',
- 'SHARED_LIB_PREFIX': 'lib',
- 'STATIC_LIB_SUFFIX': '.a',
-@@ -106,7 +106,7 @@
- # export LINK="$(CXX)"
- #
- # This will allow make to invoke N linker processes as specified in -jN.
--LINK ?= flock $(builddir)/linker.lock $(CXX)
-+LINK ?= $(CXX)
-
- # We want to use GNU ar's T option if available because it's much faster.
- # We try to archive and link a file to see ar and ld support this feature.
-@@ -147,13 +147,13 @@
- ARFLAGS.target := $(call detect_arflags,target)
- endif
-
--CC.host ?= gcc
--CFLAGS.host ?=
--CXX.host ?= g++
--CXXFLAGS.host ?=
--LINK.host ?= g++
--LDFLAGS.host ?=
--AR.host ?= ar
-+CC.host ?= $(CC)
-+CFLAGS.host ?= $(CFLAGS)
-+CXX.host ?= $(CXX)
-+CXXFLAGS.host ?= $(CXXFLAGS)
-+LINK.host ?= $(LINK)
-+LDFLAGS.host ?= $(LDFLAGS)
-+AR.host ?= $(AR)
- # See the description for ARFLAGS.target.
- -include $(obj).host/arflags/arflags.mk
- # Temporarily disabled -- see ARFLAGS.target.
-@@ -195,7 +195,7 @@
- # We remove slashes and replace spaces with new lines;
- # remove blank lines;
- # delete the first line and append a colon to the remaining lines.
--sed -e 's|\\||' -e 's| |\n|g' $(depfile).raw |\
-+sed -e 's|\\||' -e 'y| |\n|' $(depfile).raw |\
- grep -v '^$$' |\
- sed -e 1d -e 's|$$|:|' \
- >> $(depfile)
-@@ -895,12 +895,12 @@
- # CFLAGS et al overrides must be target-local.
- # See "Target-specific Variable Values" in the GNU Make manual.""")
- self.WriteLn("$(OBJS): TOOLSET := $(TOOLSET)")
-- self.WriteLn("$(OBJS): GYP_CFLAGS := $(CFLAGS_$(BUILDTYPE)) "
-- "$(CFLAGS_C_$(BUILDTYPE)) "
-- "$(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE))")
-- self.WriteLn("$(OBJS): GYP_CXXFLAGS := $(CFLAGS_$(BUILDTYPE)) "
-- "$(CFLAGS_CC_$(BUILDTYPE)) "
-- "$(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE))")
-+ self.WriteLn("$(OBJS): GYP_CFLAGS := $(INCS_$(BUILDTYPE)) "
-+ "$(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) "
-+ "$(DEFS_$(BUILDTYPE))")
-+ self.WriteLn("$(OBJS): GYP_CXXFLAGS := $(INCS_$(BUILDTYPE)) "
-+ "$(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) "
-+ "$(DEFS_$(BUILDTYPE))")
-
- self.WriteLn()
-
-Index: tools/gyp/pylib/gyp/__init__.py
-===================================================================
---- tools/gyp/pylib/gyp/__init__.py (revision 856)
-+++ tools/gyp/pylib/gyp/__init__.py (working copy)
-@@ -315,6 +315,7 @@
- 'cygwin': 'msvs',
- 'freebsd7': 'make',
- 'freebsd8': 'make',
-+ 'freebsd9': 'make',
- 'linux2': 'make',
- 'openbsd4': 'make',
- 'sunos5': 'make',}[sys.platform] ]
-Index: third_party/hunspell/hunspell.gyp
-===================================================================
---- third_party/hunspell/hunspell.gyp (revision 50872)
-+++ third_party/hunspell/hunspell.gyp (working copy)
-@@ -63,11 +63,12 @@
- ],
- },
- 'conditions': [
-- ['OS=="linux"', {
-+ ['OS=="linux" or OS=="freebsd"', {
- 'cflags': [
- '-Wno-unused-value',
- '-Wno-unused-variable',
- '-Wno-write-strings',
-+ '-Wno-parentheses',
- ],
- }],
- ],
-Index: third_party/icu/public/common/unicode/umachine.h
-===================================================================
---- third_party/icu/public/common/unicode/umachine.h (revision 51076)
-+++ third_party/icu/public/common/unicode/umachine.h (working copy)
-@@ -49,6 +49,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
-Index: third_party/icu/public/common/unicode/pfreebsd.h
-===================================================================
---- third_party/icu/public/common/unicode/pfreebsd.h (revision 0)
-+++ third_party/icu/public/common/unicode/pfreebsd.h (revision 0)
-@@ -0,0 +1,313 @@
-+/*
-+******************************************************************************
-+*
-+* Copyright (C) 1997-2007, International Business Machines
-+* Corporation and others. All Rights Reserved.
-+*
-+******************************************************************************
-+*
-+* FILE NAME : platform.h
-+*
-+* Date Name Description
-+* 05/13/98 nos Creation (content moved here from ptypes.h).
-+* 03/02/99 stephen Added AS400 support.
-+* 03/30/99 stephen Added Linux support.
-+* 04/13/99 stephen Reworked for autoconf.
-+******************************************************************************
-+*/
-+
-+/**
-+ * \file
-+ * \brief Basic types for the platform
-+ */
-+
-+/* Define the platform we're on. */
-+#ifndef U_BSD
-+#define U_BSD
-+#endif
-+
-+/* Define whether inttypes.h is available */
-+#ifndef U_HAVE_INTTYPES_H
-+#define U_HAVE_INTTYPES_H 1
-+#endif
-+
-+/*
-+ * Define what support for C++ streams is available.
-+ * If U_IOSTREAM_SOURCE is set to 199711, then <iostream> is available
-+ * (1997711 is the date the ISO/IEC C++ FDIS was published), and then
-+ * one should qualify streams using the std namespace in ICU header
-+ * files.
-+ * If U_IOSTREAM_SOURCE is set to 198506, then <iostream.h> is
-+ * available instead (198506 is the date when Stroustrup published
-+ * "An Extensible I/O Facility for C++" at the summer USENIX conference).
-+ * If U_IOSTREAM_SOURCE is 0, then C++ streams are not available and
-+ * support for them will be silently suppressed in ICU.
-+ *
-+ */
-+
-+#ifndef U_IOSTREAM_SOURCE
-+#define U_IOSTREAM_SOURCE 199711
-+#endif
-+
-+/* Determines whether specific types are available */
-+#ifndef U_HAVE_INT8_T
-+#define U_HAVE_INT8_T 1
-+#endif
-+
-+#ifndef U_HAVE_UINT8_T
-+#define U_HAVE_UINT8_T 1
-+#endif
-+
-+#ifndef U_HAVE_INT16_T
-+#define U_HAVE_INT16_T 1
-+#endif
-+
-+#ifndef U_HAVE_UINT16_T
-+#define U_HAVE_UINT16_T 1
-+#endif
-+
-+#ifndef U_HAVE_INT32_T
-+#define U_HAVE_INT32_T 1
-+#endif
-+
-+#ifndef U_HAVE_UINT32_T
-+#define U_HAVE_UINT32_T 1
-+#endif
-+
-+#ifndef U_HAVE_INT64_T
-+#define U_HAVE_INT64_T 1
-+#endif
-+
-+#ifndef U_HAVE_UINT64_T
-+#define U_HAVE_UINT64_T 1
-+#endif
-+
-+/*===========================================================================*/
-+/* Generic data types */
-+/*===========================================================================*/
-+
-+#include <sys/types.h>
-+
-+/* If your platform does not have the <inttypes.h> header, you may
-+ need to edit the typedefs below. */
-+#if U_HAVE_INTTYPES_H
-+
-+/* autoconf 2.13 sometimes can't properly find the data types in <inttypes.h> */
-+/* os/390 needs <inttypes.h>, but it doesn't have int8_t, and it sometimes */
-+/* doesn't have uint8_t depending on the OS version. */
-+/* So we have this work around. */
-+#ifdef OS390
-+/* The features header is needed to get (u)int64_t sometimes. */
-+#include <features.h>
-+#if ! U_HAVE_INT8_T
-+typedef signed char int8_t;
-+#endif
-+#if !defined(__uint8_t)
-+#define __uint8_t 1
-+typedef unsigned char uint8_t;
-+#endif
-+#endif /* OS390 */
-+
-+#include <inttypes.h>
-+
-+#else /* U_HAVE_INTTYPES_H */
-+
-+#if ! U_HAVE_INT8_T
-+typedef signed char int8_t;
-+#endif
-+
-+#if ! U_HAVE_UINT8_T
-+typedef unsigned char uint8_t;
-+#endif
-+
-+#if ! U_HAVE_INT16_T
-+typedef signed short int16_t;
-+#endif
-+
-+#if ! U_HAVE_UINT16_T
-+typedef unsigned short uint16_t;
-+#endif
-+
-+#if ! U_HAVE_INT32_T
-+typedef signed int int32_t;
-+#endif
-+
-+#if ! U_HAVE_UINT32_T
-+typedef unsigned int uint32_t;
-+#endif
-+
-+#if ! U_HAVE_INT64_T
-+ typedef signed long long int64_t;
-+/* else we may not have a 64-bit type */
-+#endif
-+
-+#if ! U_HAVE_UINT64_T
-+ typedef unsigned long long uint64_t;
-+/* else we may not have a 64-bit type */
-+#endif
-+
-+#endif
-+
-+/*===========================================================================*/
-+/* Compiler and environment features */
-+/*===========================================================================*/
-+
-+/* Define whether namespace is supported */
-+#ifndef U_HAVE_NAMESPACE
-+#define U_HAVE_NAMESPACE 1
-+#endif
-+
-+/* Determines the endianness of the platform
-+ It's done this way in case multiple architectures are being built at once.
-+ For example, Darwin supports fat binaries, which can be both PPC and x86 based. */
-+#if defined(BYTE_ORDER) && defined(BIG_ENDIAN)
-+#define U_IS_BIG_ENDIAN (BYTE_ORDER == BIG_ENDIAN)
-+#else
-+#define U_IS_BIG_ENDIAN 0
-+#endif
-+
-+/* 1 or 0 to enable or disable threads. If undefined, default is: enable threads. */
-+#define ICU_USE_THREADS 1
-+
-+/* On strong memory model CPUs (e.g. x86 CPUs), we use a safe & quick double check lock. */
-+#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
-+#define UMTX_STRONG_MEMORY_MODEL 1
-+#endif
-+
-+#ifndef U_DEBUG
-+#define U_DEBUG 0
-+#endif
-+
-+#ifndef U_RELEASE
-+#define U_RELEASE 1
-+#endif
-+
-+/* Determine whether to disable renaming or not. This overrides the
-+ setting in umachine.h which is for all platforms. */
-+#ifndef U_DISABLE_RENAMING
-+#define U_DISABLE_RENAMING 0
-+#endif
-+
-+/* Determine whether to override new and delete. */
-+#ifndef U_OVERRIDE_CXX_ALLOCATION
-+#define U_OVERRIDE_CXX_ALLOCATION 1
-+#endif
-+/* Determine whether to override placement new and delete for STL. */
-+#ifndef U_HAVE_PLACEMENT_NEW
-+#define U_HAVE_PLACEMENT_NEW 1
-+#endif
-+
-+/* Determine whether to enable tracing. */
-+#ifndef U_ENABLE_TRACING
-+#define U_ENABLE_TRACING 0
-+#endif
-+
-+/* Do we allow ICU users to use the draft APIs by default? */
-+#ifndef U_DEFAULT_SHOW_DRAFT
-+#define U_DEFAULT_SHOW_DRAFT 1
-+#endif
-+
-+/* Define the library suffix in a C syntax. */
-+#define U_HAVE_LIB_SUFFIX 0
-+#define U_LIB_SUFFIX_C_NAME
-+#define U_LIB_SUFFIX_C_NAME_STRING ""
-+
-+/*===========================================================================*/
-+/* Character data types */
-+/*===========================================================================*/
-+
-+#if ((defined(OS390) && (!defined(__CHARSET_LIB) || !__CHARSET_LIB))) || defined(OS400)
-+# define U_CHARSET_FAMILY 1
-+#endif
-+
-+/*===========================================================================*/
-+/* Information about wchar support */
-+/*===========================================================================*/
-+
-+#define U_HAVE_WCHAR_H 1
-+#define U_SIZEOF_WCHAR_T 4
-+
-+#define U_HAVE_WCSCPY 1
-+
-+/**
-+ * \def U_DECLARE_UTF16
-+ * Do not use this macro. Use the UNICODE_STRING or U_STRING_DECL macros
-+ * instead.
-+ * @internal
-+ */
-+#if 1 || defined(U_CHECK_UTF16_STRING)
-+#if (defined(__xlC__) && defined(__IBM_UTF_LITERAL) && U_SIZEOF_WCHAR_T != 2) \
-+ || (defined(__HP_aCC) && __HP_aCC >= 035000) \
-+ || (defined(__HP_cc) && __HP_cc >= 111106)
-+#define U_DECLARE_UTF16(string) u ## string
-+#elif (defined(__SUNPRO_CC) && __SUNPRO_CC >= 0x550)
-+/* || (defined(__SUNPRO_C) && __SUNPRO_C >= 0x580) */
-+/* Sun's C compiler has issues with this notation, and it's unreliable. */
-+#define U_DECLARE_UTF16(string) U ## string
-+#elif U_SIZEOF_WCHAR_T == 2 \
-+ && (U_CHARSET_FAMILY == 0 || ((defined(OS390) || defined(OS400)) && defined(__UCS2__)))
-+#define U_DECLARE_UTF16(string) L ## string
-+#endif
-+#endif
-+
-+/*===========================================================================*/
-+/* Information about POSIX support */
-+/*===========================================================================*/
-+
-+#define U_HAVE_NL_LANGINFO_CODESET 1
-+#define U_NL_LANGINFO_CODESET CODESET
-+
-+#if 1
-+#define U_TZSET tzset
-+#endif
-+#if 0
-+#define U_TIMEZONE
-+#endif
-+#if 1
-+#define U_TZNAME tzname
-+#endif
-+
-+#define U_HAVE_MMAP 1
-+#define U_HAVE_POPEN 1
-+
-+/*===========================================================================*/
-+/* Symbol import-export control */
-+/*===========================================================================*/
-+
-+#if 1
-+#define U_EXPORT __attribute__((visibility("default")))
-+/*#elif defined(__HP_aCC) || defined(__HP_cc)
-+#define U_EXPORT __declspec(dllexport)*/
-+#else
-+#define U_EXPORT
-+#endif
-+
-+/* U_CALLCONV is releated to U_EXPORT2 */
-+#define U_EXPORT2
-+
-+/* cygwin needs to export/import data */
-+#ifdef U_CYGWIN
-+#define U_IMPORT __declspec(dllimport)
-+#else
-+#define U_IMPORT
-+#endif
-+
-+/*===========================================================================*/
-+/* Code alignment and C function inlining */
-+/*===========================================================================*/
-+
-+#ifndef U_INLINE
-+# ifdef __cplusplus
-+# define U_INLINE inline
-+# else
-+# define U_INLINE inline
-+# endif
-+#endif
-+
-+#define U_ALIGN_CODE(n)
-+
-+/*===========================================================================*/
-+/* Programs used by ICU code */
-+/*===========================================================================*/
-+
-+#define U_MAKE "/usr/local/bin/gmake"
-Index: third_party/icu/icu.gyp
-===================================================================
---- third_party/icu/icu.gyp (revision 51076)
-+++ third_party/icu/icu.gyp (working copy)
-@@ -42,7 +42,7 @@
- }, { # else: OS != "win"
- 'sources!': ['icudt42.dll'],
- }],
-- [ 'OS != "linux" or chromeos == 1', {
-+ [ '(OS != "linux" and OS != "freebsd") or chromeos == 1', {
- 'sources!': ['linux/icudt42l_dat.s'],
- }],
- [ 'OS != "mac"', {
-@@ -215,7 +215,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': [
-@@ -403,7 +403,7 @@
- 'source/stubdata/stubdata.c',
- ],
- }],
-- [ 'OS == "linux"', {
-+ [ 'OS == "linux" or OS=="freebsd"', {
- 'cflags': [
- # TODO(port): fix ICU to not depend on this flag.
- '-fno-strict-aliasing',
-Index: third_party/libjingle/source/talk/base/httpcommon.cc
-===================================================================
---- third_party/libjingle/source/talk/base/httpcommon.cc (revision 24)
-+++ third_party/libjingle/source/talk/base/httpcommon.cc (working copy)
-@@ -399,7 +399,7 @@
- gmt = non_gmt + kTimeZoneOffsets[zindex] * 60 * 60;
- }
- // TODO: Android should support timezone, see b/2441195
--#if defined(OSX) || defined(ANDROID)
-+#if defined(OSX) || defined(ANDROID) || defined(BSD)
- tm *tm_for_timezone = localtime((time_t *)&gmt);
- *seconds = gmt + tm_for_timezone->tm_gmtoff;
- #else
-Index: third_party/libjingle/source/talk/base/unixfilesystem.cc
-===================================================================
---- third_party/libjingle/source/talk/base/unixfilesystem.cc (revision 24)
-+++ third_party/libjingle/source/talk/base/unixfilesystem.cc (working copy)
-@@ -490,7 +490,7 @@
-
- Pathname UnixFilesystem::GetCurrentDirectory() {
- Pathname cwd;
--#if defined(LINUX) || defined(OSX)
-+#if defined(LINUX) || defined(OSX) || defined(BSD)
- // Both Linux and Mac supported malloc()'ing the string themselves, although
- // that is not required by POSIX.
- char *path = getcwd(NULL, 0);
-@@ -508,7 +508,7 @@
- }
- cwd.SetFolder(std::string(path));
-
--#if defined(LINUX) || defined(OSX)
-+#if defined(LINUX) || defined(OSX) || defined(BSD)
- free(path);
- #endif
- return cwd;
-Index: third_party/libjingle/source/talk/base/physicalsocketserver.cc
-===================================================================
---- third_party/libjingle/source/talk/base/physicalsocketserver.cc (revision 24)
-+++ third_party/libjingle/source/talk/base/physicalsocketserver.cc (working copy)
-@@ -487,7 +487,7 @@
- *slevel = IPPROTO_IP;
- *sopt = IP_DONTFRAGMENT;
- break;
--#elif defined(OSX)
-+#elif defined(OSX) || defined(BSD)
- LOG(LS_WARNING) << "Socket::OPT_DONTFRAGMENT not supported.";
- return -1;
- #elif defined(POSIX)
-Index: third_party/ppapi/ppapi.gyp
-===================================================================
---- third_party/ppapi/ppapi.gyp (revision 165)
-+++ third_party/ppapi/ppapi.gyp (working copy)
-@@ -144,7 +144,7 @@
- },
- },
- }],
-- ['OS=="linux"', {
-+ ['OS=="linux" or OS=="freebsd"', {
- 'cflags': ['-Wextra', '-pedantic'],
- }],
- ['OS=="mac"', {
-@@ -172,7 +172,7 @@
- ['OS=="win"', {
- 'msvs_guid': '057E7FA0-83C0-11DF-8395-0800200C9A66',
- }],
-- ['OS=="linux"', {
-+ ['OS=="linux" or OS=="freebsd"', {
- 'cflags': ['-Wextra', '-pedantic'],
- }],
- ['OS=="mac"', {
-Index: native_client/src/shared/platform/platform.gyp
-===================================================================
---- native_client/src/shared/platform/platform.gyp (revision 2697)
-+++ native_client/src/shared/platform/platform.gyp (working copy)
-@@ -59,7 +59,7 @@
- 'time.h',
- ],
- 'conditions': [
-- ['OS=="linux"', {
-+ ['OS=="linux" or OS=="freebsd"', {
- 'platform_sources': [
- 'linux/condition_variable.cc',
- 'linux/lock.cc',
-Index: native_client/src/trusted/service_runtime/service_runtime.gyp
-===================================================================
---- native_client/src/trusted/service_runtime/service_runtime.gyp (revision 2697)
-+++ native_client/src/trusted/service_runtime/service_runtime.gyp (working copy)
-@@ -31,7 +31,7 @@
- {
- 'variables': {
- 'conditions': [
-- ['OS=="linux"', {
-+ ['OS=="linux" or OS=="freebsd"', {
- 'syscall_handler': [
- 'linux/nacl_syscall_impl.c'
- ],
-Index: native_client/build/common.gypi
-===================================================================
---- native_client/build/common.gypi (revision 2697)
-+++ native_client/build/common.gypi (working copy)
-@@ -383,7 +383,7 @@
- },
- },
- 'conditions': [
-- ['OS=="linux"', {
-+ ['OS=="linux" or OS=="freebsd"', {
- 'target_defaults': {
- # Enable -Werror by default, but put it in a variable so it can
- # be disabled in ~/.gyp/include.gypi on the valgrind builders.
diff --git a/www/chromium/files/patch-tools__gyp__pylib__gyp____init__.py b/www/chromium/files/patch-tools__gyp__pylib__gyp____init__.py
new file mode 100644
index 000000000000..4513980cf04d
--- /dev/null
+++ b/www/chromium/files/patch-tools__gyp__pylib__gyp____init__.py
@@ -0,0 +1,10 @@
+--- ./tools/gyp/pylib/gyp/__init__.py.orig 2010-12-16 02:33:33.000000000 +0100
++++ ./tools/gyp/pylib/gyp/__init__.py 2010-12-20 20:15:08.000000000 +0100
+@@ -315,6 +315,7 @@
+ 'cygwin': 'msvs',
+ 'freebsd7': 'make',
+ 'freebsd8': 'make',
++ 'freebsd9': 'make',
+ 'linux2': 'make',
+ 'openbsd4': 'make',
+ 'sunos5': 'make',}[sys.platform] ]
diff --git a/www/chromium/files/patch-tools__gyp__pylib__gyp__generator__make.py b/www/chromium/files/patch-tools__gyp__pylib__gyp__generator__make.py
new file mode 100644
index 000000000000..843a7b28d565
--- /dev/null
+++ b/www/chromium/files/patch-tools__gyp__pylib__gyp__generator__make.py
@@ -0,0 +1,32 @@
+--- ./tools/gyp/pylib/gyp/generator/make.py.orig 2010-12-16 02:33:33.000000000 +0100
++++ ./tools/gyp/pylib/gyp/generator/make.py 2010-12-20 20:15:08.000000000 +0100
+@@ -106,7 +106,7 @@
+ # export LINK="$(CXX)"
+ #
+ # This will allow make to invoke N linker processes as specified in -jN.
+-LINK ?= flock $(builddir)/linker.lock $(CXX)
++LINK ?= $(CXX)
+
+ # We want to use GNU ar's T option if available because it's much faster.
+ # We try to archive and link a file to see ar and ld support this feature.
+@@ -147,13 +147,13 @@
+ ARFLAGS.target := $(call detect_arflags,target)
+ endif
+
+-CC.host ?= gcc
+-CFLAGS.host ?=
+-CXX.host ?= g++
+-CXXFLAGS.host ?=
+-LINK.host ?= g++
+-LDFLAGS.host ?=
+-AR.host ?= ar
++CC.host ?= $(CC)
++CFLAGS.host ?= $(CFLAGS)
++CXX.host ?= $(CXX)
++CXXFLAGS.host ?= $(CXXFLAGS)
++LINK.host ?= $(LINK)
++LDFLAGS.host ?= $(LDFLAGS)
++AR.host ?= $(AR)
+ # See the description for ARFLAGS.target.
+ -include $(obj).host/arflags/arflags.mk
+ # Temporarily disabled -- see ARFLAGS.target.
diff --git a/www/chromium/files/patch-tools__gyp__test__additional-targets__src__dir1__actions.gyp b/www/chromium/files/patch-tools__gyp__test__additional-targets__src__dir1__actions.gyp
new file mode 100644
index 000000000000..a350f6e110c8
--- /dev/null
+++ b/www/chromium/files/patch-tools__gyp__test__additional-targets__src__dir1__actions.gyp
@@ -0,0 +1,11 @@
+--- ./tools/gyp/test/additional-targets/src/dir1/actions.gyp.orig 2010-12-16 02:33:31.000000000 +0100
++++ ./tools/gyp/test/additional-targets/src/dir1/actions.gyp 2010-12-20 20:15:08.000000000 +0100
+@@ -47,7 +47,7 @@
+ },
+ ],
+ 'conditions': [
+- ['OS=="linux"', {
++ ['OS=="linux" or OS=="freebsd"', {
+ 'target_defaults': {
+ 'cflags': ['-fPIC'],
+ },
diff --git a/www/chromium/files/patch-tools__gyp__test__library__src__library.gyp b/www/chromium/files/patch-tools__gyp__test__library__src__library.gyp
new file mode 100644
index 000000000000..050990b84576
--- /dev/null
+++ b/www/chromium/files/patch-tools__gyp__test__library__src__library.gyp
@@ -0,0 +1,11 @@
+--- ./tools/gyp/test/library/src/library.gyp.orig 2010-12-16 02:33:32.000000000 +0100
++++ ./tools/gyp/test/library/src/library.gyp 2010-12-20 20:15:08.000000000 +0100
+@@ -48,7 +48,7 @@
+ },
+ ],
+ 'conditions': [
+- ['OS=="linux"', {
++ ['OS=="linux" or OS=="freebsd"', {
+ 'target_defaults': {
+ # Support 64-bit shared libs (also works fine for 32-bit).
+ 'cflags': ['-fPIC'],
diff --git a/www/chromium/files/patch-ui__base__resource__resource_bundle.cc b/www/chromium/files/patch-ui__base__resource__resource_bundle.cc
new file mode 100644
index 000000000000..9476ed53feb0
--- /dev/null
+++ b/www/chromium/files/patch-ui__base__resource__resource_bundle.cc
@@ -0,0 +1,11 @@
+--- ui/base/resource/resource_bundle.cc.orig 2011-01-26 10:31:08.000000000 +0100
++++ ui/base/resource/resource_bundle.cc 2011-01-30 00:45:39.000000000 +0100
+@@ -176,7 +176,7 @@
+ #if defined(OS_MACOSX)
+ return rb.GetNSImageNamed(resource_id);
+ #elif defined(USE_X11) && !defined(TOOLKIT_VIEWS)
+- return rb.GetPixbufNamed(resource_id);
++ return (gfx::NativeImage)rb.GetPixbufNamed(resource_id);
+ #else
+ return rb.GetBitmapNamed(resource_id);
+ #endif
diff --git a/www/chromium/files/patch-v8__src__platform-freebsd.cc b/www/chromium/files/patch-v8__src__platform-freebsd.cc
new file mode 100644
index 000000000000..dc6b76538b01
--- /dev/null
+++ b/www/chromium/files/patch-v8__src__platform-freebsd.cc
@@ -0,0 +1,91 @@
+--- v8/src/platform-freebsd.cc.orig 2011-03-15 05:43:39.000000000 +0200
++++ v8/src/platform-freebsd.cc 2011-03-15 05:52:01.000000000 +0200
+@@ -53,6 +53,7 @@
+ #include "v8.h"
+
+ #include "platform.h"
++#include "top.h"
+ #include "vm-state-inl.h"
+
+
+@@ -526,6 +527,16 @@
+ return result;
+ }
+
++ virtual bool TryLock() {
++ int result = pthread_mutex_trylock(&mutex_);
++ // Return false if the lock is busy and locking failed.
++ if (result == EBUSY) {
++ return false;
++ }
++ ASSERT(result == 0); // Verify no other errors.
++ return true;
++ }
++
+ private:
+ pthread_mutex_t mutex_; // Pthread mutex for POSIX platforms.
+ };
+@@ -595,39 +606,41 @@
+ #ifdef ENABLE_LOGGING_AND_PROFILING
+
+ static Sampler* active_sampler_ = NULL;
++static pthread_t vm_tid_ = 0;
+
+ static void ProfilerSignalHandler(int signal, siginfo_t* info, void* context) {
+ USE(info);
+ if (signal != SIGPROF) return;
+- if (active_sampler_ == NULL) return;
+
+- TickSample sample;
++ if (active_sampler_ == NULL || !active_sampler_->IsActive()) return;
++ if (vm_tid_ != pthread_self()) return;
+
+- // We always sample the VM state.
+- sample.state = VMState::current_state();
++ TickSample sample_obj;
++ TickSample* sample = CpuProfiler::TickSampleEvent();
++ if (sample == NULL) sample = &sample_obj;
++
++ // Extracting the sample from the context is extremely machine dependent.
++ ucontext_t* ucontext = reinterpret_cast<ucontext_t*>(context);
++ mcontext_t& mcontext = ucontext->uc_mcontext;
++ sample->state = Top::current_vm_state();
+
+- // If profiling, we extract the current pc and sp.
+- if (active_sampler_->IsProfiling()) {
+- // Extracting the sample from the context is extremely machine dependent.
+- ucontext_t* ucontext = reinterpret_cast<ucontext_t*>(context);
+- mcontext_t& mcontext = ucontext->uc_mcontext;
+ #if V8_HOST_ARCH_IA32
+- sample.pc = reinterpret_cast<Address>(mcontext.mc_eip);
+- sample.sp = reinterpret_cast<Address>(mcontext.mc_esp);
+- sample.fp = reinterpret_cast<Address>(mcontext.mc_ebp);
++ sample->pc = reinterpret_cast<Address>(mcontext.mc_eip);
++ sample->sp = reinterpret_cast<Address>(mcontext.mc_esp);
++ sample->fp = reinterpret_cast<Address>(mcontext.mc_ebp);
+ #elif V8_HOST_ARCH_X64
+- sample.pc = reinterpret_cast<Address>(mcontext.mc_rip);
+- sample.sp = reinterpret_cast<Address>(mcontext.mc_rsp);
+- sample.fp = reinterpret_cast<Address>(mcontext.mc_rbp);
++ sample->pc = reinterpret_cast<Address>(mcontext.mc_rip);
++ sample->sp = reinterpret_cast<Address>(mcontext.mc_rsp);
++ sample->fp = reinterpret_cast<Address>(mcontext.mc_rbp);
+ #elif V8_HOST_ARCH_ARM
+- sample.pc = reinterpret_cast<Address>(mcontext.mc_r15);
+- sample.sp = reinterpret_cast<Address>(mcontext.mc_r13);
+- sample.fp = reinterpret_cast<Address>(mcontext.mc_r11);
++ sample->pc = reinterpret_cast<Address>(mcontext.mc_r15);
++ sample->sp = reinterpret_cast<Address>(mcontext.mc_r13);
++ sample->fp = reinterpret_cast<Address>(mcontext.mc_r11);
++#else
++ UNIMPLEMENTED();
+ #endif
+- active_sampler_->SampleStack(&sample);
+- }
+-
+- active_sampler_->Tick(&sample);
++ active_sampler_->SampleStack(sample);
++ active_sampler_->Tick(sample);
+ }
+
+
diff --git a/www/chromium/files/patch-v8__src__x64 b/www/chromium/files/patch-v8__src__x64
new file mode 100644
index 000000000000..f167ed1ce8f4
--- /dev/null
+++ b/www/chromium/files/patch-v8__src__x64
@@ -0,0 +1,481 @@
+diff -ru v8.orig/src/x64/code-stubs-x64.cc v8/src/x64/code-stubs-x64.cc
+--- v8.orig/src/x64/code-stubs-x64.cc 2011-03-12 11:22:17.000000000 +0200
++++ v8/src/x64/code-stubs-x64.cc 2011-03-23 01:39:18.065180854 +0200
+@@ -1699,11 +1699,14 @@
+ Label slow;
+ __ JumpIfNotSmi(rdx, &slow);
+
+- // Check if the calling frame is an arguments adaptor frame.
++ // Check if the calling frame is an arguments adaptor frame. We look at the
++ // context offset, and if the frame is not a regular one, then we find a
++ // Smi instead of the context. We can't use SmiCompare here, because that
++ // only works for comparing two smis.
+ Label adaptor;
+ __ movq(rbx, Operand(rbp, StandardFrameConstants::kCallerFPOffset));
+- __ SmiCompare(Operand(rbx, StandardFrameConstants::kContextOffset),
+- Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR));
++ __ Cmp(Operand(rbx, StandardFrameConstants::kContextOffset),
++ Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR));
+ __ j(equal, &adaptor);
+
+ // Check index against formal parameters count limit passed in
+@@ -1758,8 +1761,8 @@
+ // Check if the calling frame is an arguments adaptor frame.
+ Label adaptor_frame, try_allocate, runtime;
+ __ movq(rdx, Operand(rbp, StandardFrameConstants::kCallerFPOffset));
+- __ SmiCompare(Operand(rdx, StandardFrameConstants::kContextOffset),
+- Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR));
++ __ Cmp(Operand(rdx, StandardFrameConstants::kContextOffset),
++ Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR));
+ __ j(equal, &adaptor_frame);
+
+ // Get the length from the frame.
+@@ -3518,8 +3521,8 @@
+ // Look at the length of the result of adding the two strings.
+ STATIC_ASSERT(String::kMaxLength <= Smi::kMaxValue / 2);
+ __ SmiAdd(rbx, rbx, rcx);
+- // Use the runtime system when adding two one character strings, as it
+- // contains optimizations for this specific case using the symbol table.
++ // Use the symbol table when adding two one character strings, as it
++ // helps later optimizations to return a symbol here.
+ __ SmiCompare(rbx, Smi::FromInt(2));
+ __ j(not_equal, &longer_than_two);
+
+@@ -3823,15 +3826,14 @@
+ FieldOperand(symbol_table, SymbolTable::kCapacityOffset));
+ __ decl(mask);
+
+- Register undefined = scratch4;
+- __ LoadRoot(undefined, Heap::kUndefinedValueRootIndex);
++ Register map = scratch4;
+
+ // Registers
+ // chars: two character string, char 1 in byte 0 and char 2 in byte 1.
+ // hash: hash of two character string (32-bit int)
+ // symbol_table: symbol table
+ // mask: capacity mask (32-bit int)
+- // undefined: undefined value
++ // map: -
+ // scratch: -
+
+ // Perform a number of probes in the symbol table.
+@@ -3846,7 +3848,7 @@
+ }
+ __ andl(scratch, mask);
+
+- // Load the entry from the symble table.
++ // Load the entry from the symbol table.
+ Register candidate = scratch; // Scratch register contains candidate.
+ STATIC_ASSERT(SymbolTable::kEntrySize == 1);
+ __ movq(candidate,
+@@ -3856,8 +3858,16 @@
+ SymbolTable::kElementsStartOffset));
+
+ // If entry is undefined no string with this hash can be found.
+- __ cmpq(candidate, undefined);
++ NearLabel is_string;
++ __ CmpObjectType(candidate, ODDBALL_TYPE, map);
++ __ j(not_equal, &is_string);
++
++ __ CompareRoot(candidate, Heap::kUndefinedValueRootIndex);
+ __ j(equal, not_found);
++ // Must be null (deleted entry).
++ __ jmp(&next_probe[i]);
++
++ __ bind(&is_string);
+
+ // If length is not 2 the string is not a candidate.
+ __ SmiCompare(FieldOperand(candidate, String::kLengthOffset),
+@@ -3869,8 +3879,7 @@
+ Register temp = kScratchRegister;
+
+ // Check that the candidate is a non-external ascii string.
+- __ movq(temp, FieldOperand(candidate, HeapObject::kMapOffset));
+- __ movzxbl(temp, FieldOperand(temp, Map::kInstanceTypeOffset));
++ __ movzxbl(temp, FieldOperand(map, Map::kInstanceTypeOffset));
+ __ JumpIfInstanceTypeIsNotSequentialAscii(
+ temp, temp, &next_probe[i]);
+
+Only in v8/src/x64: code-stubs-x64.cc.orig
+diff -ru v8.orig/src/x64/codegen-x64.cc v8/src/x64/codegen-x64.cc
+--- v8.orig/src/x64/codegen-x64.cc 2011-03-12 11:22:17.000000000 +0200
++++ v8/src/x64/codegen-x64.cc 2011-03-23 01:39:18.093150889 +0200
+@@ -760,7 +760,7 @@
+ __ AbortIfNotNumber(value.reg());
+ }
+ // Smi => false iff zero.
+- __ SmiCompare(value.reg(), Smi::FromInt(0));
++ __ Cmp(value.reg(), Smi::FromInt(0));
+ if (value.is_smi()) {
+ value.Unuse();
+ dest->Split(not_zero);
+@@ -788,7 +788,7 @@
+ dest->false_target()->Branch(equal);
+
+ // Smi => false iff zero.
+- __ SmiCompare(value.reg(), Smi::FromInt(0));
++ __ Cmp(value.reg(), Smi::FromInt(0));
+ dest->false_target()->Branch(equal);
+ Condition is_smi = masm_->CheckSmi(value.reg());
+ dest->true_target()->Branch(is_smi);
+@@ -1030,7 +1030,7 @@
+ true, overwrite_mode);
+ } else {
+ // Set the flags based on the operation, type and loop nesting level.
+- // Bit operations always assume they likely operate on Smis. Still only
++ // Bit operations always assume they likely operate on smis. Still only
+ // generate the inline Smi check code if this operation is part of a loop.
+ // For all other operations only inline the Smi check code for likely smis
+ // if the operation is part of a loop.
+@@ -2102,7 +2102,7 @@
+ if (cc == equal) {
+ Label comparison_done;
+ __ SmiCompare(FieldOperand(left_side.reg(), String::kLengthOffset),
+- Smi::FromInt(1));
++ Smi::FromInt(1));
+ __ j(not_equal, &comparison_done);
+ uint8_t char_value =
+ static_cast<uint8_t>(String::cast(*right_val)->Get(0));
+@@ -2288,7 +2288,7 @@
+ // CompareStub and the inline code both support all values of cc.
+ }
+ // Implement comparison against a constant Smi, inlining the case
+- // where both sides are Smis.
++ // where both sides are smis.
+ left_side->ToRegister();
+ Register left_reg = left_side->reg();
+ Smi* constant_smi = Smi::cast(*right_side->handle());
+@@ -2298,7 +2298,6 @@
+ __ AbortIfNotSmi(left_reg);
+ }
+ // Test smi equality and comparison by signed int comparison.
+- // Both sides are smis, so we can use an Immediate.
+ __ SmiCompare(left_reg, constant_smi);
+ left_side->Unuse();
+ right_side->Unuse();
+@@ -2308,7 +2307,7 @@
+ JumpTarget is_smi;
+ if (cc == equal) {
+ // We can do the equality comparison before the smi check.
+- __ SmiCompare(left_reg, constant_smi);
++ __ Cmp(left_reg, constant_smi);
+ dest->true_target()->Branch(equal);
+ Condition left_is_smi = masm_->CheckSmi(left_reg);
+ dest->false_target()->Branch(left_is_smi);
+@@ -2569,8 +2568,8 @@
+ // adaptor frame below it.
+ Label invoke, adapted;
+ __ movq(rdx, Operand(rbp, StandardFrameConstants::kCallerFPOffset));
+- __ SmiCompare(Operand(rdx, StandardFrameConstants::kContextOffset),
+- Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR));
++ __ Cmp(Operand(rdx, StandardFrameConstants::kContextOffset),
++ Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR));
+ __ j(equal, &adapted);
+
+ // No arguments adaptor frame. Copy fixed number of arguments.
+@@ -3850,7 +3849,7 @@
+ __ movq(rbx, rax);
+
+ // If the property has been removed while iterating, we just skip it.
+- __ SmiCompare(rbx, Smi::FromInt(0));
++ __ Cmp(rbx, Smi::FromInt(0));
+ node->continue_target()->Branch(equal);
+
+ end_del_check.Bind();
+@@ -6182,15 +6181,15 @@
+
+ // Skip the arguments adaptor frame if it exists.
+ Label check_frame_marker;
+- __ SmiCompare(Operand(fp.reg(), StandardFrameConstants::kContextOffset),
+- Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR));
++ __ Cmp(Operand(fp.reg(), StandardFrameConstants::kContextOffset),
++ Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR));
+ __ j(not_equal, &check_frame_marker);
+ __ movq(fp.reg(), Operand(fp.reg(), StandardFrameConstants::kCallerFPOffset));
+
+ // Check the marker in the calling frame.
+ __ bind(&check_frame_marker);
+- __ SmiCompare(Operand(fp.reg(), StandardFrameConstants::kMarkerOffset),
+- Smi::FromInt(StackFrame::CONSTRUCT));
++ __ Cmp(Operand(fp.reg(), StandardFrameConstants::kMarkerOffset),
++ Smi::FromInt(StackFrame::CONSTRUCT));
+ fp.Unuse();
+ destination()->Split(equal);
+ }
+@@ -6210,8 +6209,8 @@
+
+ // Check if the calling frame is an arguments adaptor frame.
+ __ movq(fp.reg(), Operand(rbp, StandardFrameConstants::kCallerFPOffset));
+- __ SmiCompare(Operand(fp.reg(), StandardFrameConstants::kContextOffset),
+- Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR));
++ __ Cmp(Operand(fp.reg(), StandardFrameConstants::kContextOffset),
++ Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR));
+ __ j(not_equal, &exit);
+
+ // Arguments adaptor case: Read the arguments length from the
+@@ -6767,8 +6766,8 @@
+ // Fetch the map and check if array is in fast case.
+ // Check that object doesn't require security checks and
+ // has no indexed interceptor.
+- __ CmpObjectType(object.reg(), FIRST_JS_OBJECT_TYPE, tmp1.reg());
+- deferred->Branch(below);
++ __ CmpObjectType(object.reg(), JS_ARRAY_TYPE, tmp1.reg());
++ deferred->Branch(not_equal);
+ __ testb(FieldOperand(tmp1.reg(), Map::kBitFieldOffset),
+ Immediate(KeyedLoadIC::kSlowCaseBitFieldMask));
+ deferred->Branch(not_zero);
+@@ -6810,7 +6809,7 @@
+
+ Label done;
+ __ InNewSpace(tmp1.reg(), tmp2.reg(), equal, &done);
+- // Possible optimization: do a check that both values are Smis
++ // Possible optimization: do a check that both values are smis
+ // (or them and test against Smi mask.)
+
+ __ movq(tmp2.reg(), tmp1.reg());
+@@ -8485,12 +8484,6 @@
+ __ CmpObjectType(receiver.reg(), JS_ARRAY_TYPE, kScratchRegister);
+ deferred->Branch(not_equal);
+
+- // Check that the key is within bounds. Both the key and the length of
+- // the JSArray are smis. Use unsigned comparison to handle negative keys.
+- __ SmiCompare(FieldOperand(receiver.reg(), JSArray::kLengthOffset),
+- key.reg());
+- deferred->Branch(below_equal);
+-
+ // Get the elements array from the receiver and check that it is not a
+ // dictionary.
+ __ movq(tmp.reg(),
+@@ -8519,6 +8512,14 @@
+ kScratchRegister);
+ deferred->Branch(not_equal);
+
++ // Check that the key is within bounds. Both the key and the length of
++ // the JSArray are smis (because the fixed array check above ensures the
++ // elements are in fast case). Use unsigned comparison to handle negative
++ // keys.
++ __ SmiCompare(FieldOperand(receiver.reg(), JSArray::kLengthOffset),
++ key.reg());
++ deferred->Branch(below_equal);
++
+ // Store the value.
+ SmiIndex index =
+ masm()->SmiToIndex(kScratchRegister, key.reg(), kPointerSizeLog2);
+Only in v8/src/x64: codegen-x64.cc.orig
+diff -ru v8.orig/src/x64/full-codegen-x64.cc v8/src/x64/full-codegen-x64.cc
+--- v8.orig/src/x64/full-codegen-x64.cc 2011-03-12 11:22:17.000000000 +0200
++++ v8/src/x64/full-codegen-x64.cc 2011-03-23 01:39:18.110779666 +0200
+@@ -865,7 +865,7 @@
+ __ push(rcx); // Enumerable.
+ __ push(rbx); // Current entry.
+ __ InvokeBuiltin(Builtins::FILTER_KEY, CALL_FUNCTION);
+- __ SmiCompare(rax, Smi::FromInt(0));
++ __ Cmp(rax, Smi::FromInt(0));
+ __ j(equal, loop_statement.continue_target());
+ __ movq(rbx, rax);
+
+@@ -2300,15 +2300,15 @@
+
+ // Skip the arguments adaptor frame if it exists.
+ Label check_frame_marker;
+- __ SmiCompare(Operand(rax, StandardFrameConstants::kContextOffset),
+- Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR));
++ __ Cmp(Operand(rax, StandardFrameConstants::kContextOffset),
++ Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR));
+ __ j(not_equal, &check_frame_marker);
+ __ movq(rax, Operand(rax, StandardFrameConstants::kCallerFPOffset));
+
+ // Check the marker in the calling frame.
+ __ bind(&check_frame_marker);
+- __ SmiCompare(Operand(rax, StandardFrameConstants::kMarkerOffset),
+- Smi::FromInt(StackFrame::CONSTRUCT));
++ __ Cmp(Operand(rax, StandardFrameConstants::kMarkerOffset),
++ Smi::FromInt(StackFrame::CONSTRUCT));
+ PrepareForBailoutBeforeSplit(TOS_REG, true, if_true, if_false);
+ Split(equal, if_true, if_false, fall_through);
+
+@@ -2362,8 +2362,8 @@
+
+ // Check if the calling frame is an arguments adaptor frame.
+ __ movq(rbx, Operand(rbp, StandardFrameConstants::kCallerFPOffset));
+- __ SmiCompare(Operand(rbx, StandardFrameConstants::kContextOffset),
+- Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR));
++ __ Cmp(Operand(rbx, StandardFrameConstants::kContextOffset),
++ Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR));
+ __ j(not_equal, &exit);
+
+ // Arguments adaptor case: Read the arguments length from the
+Only in v8/src/x64: full-codegen-x64.cc.orig
+Only in v8/src/x64: full-codegen-x64.cc.rej
+diff -ru v8.orig/src/x64/lithium-codegen-x64.cc v8/src/x64/lithium-codegen-x64.cc
+--- v8.orig/src/x64/lithium-codegen-x64.cc 2011-03-12 11:22:17.000000000 +0200
++++ v8/src/x64/lithium-codegen-x64.cc 2011-03-23 01:39:18.127345179 +0200
+@@ -786,7 +786,7 @@
+ __ j(equal, true_label);
+ __ CompareRoot(reg, Heap::kFalseValueRootIndex);
+ __ j(equal, false_label);
+- __ SmiCompare(reg, Smi::FromInt(0));
++ __ Cmp(reg, Smi::FromInt(0));
+ __ j(equal, false_label);
+ __ JumpIfSmi(reg, true_label);
+
+Only in v8/src/x64: lithium-codegen-x64.cc.orig
+Only in v8/src/x64: lithium-codegen-x64.cc.rej
+diff -ru v8.orig/src/x64/macro-assembler-x64.cc v8/src/x64/macro-assembler-x64.cc
+--- v8.orig/src/x64/macro-assembler-x64.cc 2011-03-12 11:22:17.000000000 +0200
++++ v8/src/x64/macro-assembler-x64.cc 2011-03-23 01:39:18.144950769 +0200
+@@ -109,7 +109,7 @@
+ ASSERT(!object.is(rsi) && !value.is(rsi) && !index.is(rsi));
+
+ // First, check if a write barrier is even needed. The tests below
+- // catch stores of Smis and stores into young gen.
++ // catch stores of smis and stores into young gen.
+ Label done;
+ JumpIfSmi(value, &done);
+
+@@ -138,7 +138,7 @@
+ ASSERT(!object.is(rsi) && !value.is(rsi) && !address.is(rsi));
+
+ // First, check if a write barrier is even needed. The tests below
+- // catch stores of Smis and stores into young gen.
++ // catch stores of smis and stores into young gen.
+ Label done;
+ JumpIfSmi(value, &done);
+
+@@ -820,12 +820,26 @@
+ }
+
+
+-void MacroAssembler::SmiCompare(Register dst, Register src) {
+- cmpq(dst, src);
++void MacroAssembler::SmiCompare(Register smi1, Register smi2) {
++ if (FLAG_debug_code) {
++ AbortIfNotSmi(smi1);
++ AbortIfNotSmi(smi2);
++ }
++ cmpq(smi1, smi2);
+ }
+
+
+ void MacroAssembler::SmiCompare(Register dst, Smi* src) {
++ if (FLAG_debug_code) {
++ AbortIfNotSmi(dst);
++ }
++ // Actually, knowing the register is a smi doesn't enable any optimizations
++ // with the current tagging scheme.
++ Cmp(dst, src);
++}
++
++
++void MacroAssembler::Cmp(Register dst, Smi* src) {
+ ASSERT(!dst.is(kScratchRegister));
+ if (src->value() == 0) {
+ testq(dst, dst);
+@@ -837,20 +851,41 @@
+
+
+ void MacroAssembler::SmiCompare(Register dst, const Operand& src) {
++ if (FLAG_debug_code) {
++ AbortIfNotSmi(dst);
++ AbortIfNotSmi(src);
++ }
+ cmpq(dst, src);
+ }
+
+
+ void MacroAssembler::SmiCompare(const Operand& dst, Register src) {
++ if (FLAG_debug_code) {
++ AbortIfNotSmi(dst);
++ AbortIfNotSmi(src);
++ }
+ cmpq(dst, src);
+ }
+
+
+ void MacroAssembler::SmiCompare(const Operand& dst, Smi* src) {
++ if (FLAG_debug_code) {
++ AbortIfNotSmi(dst);
++ }
+ cmpl(Operand(dst, kSmiShift / kBitsPerByte), Immediate(src->value()));
+ }
+
+
++void MacroAssembler::Cmp(const Operand& dst, Smi* src) {
++ // The Operand cannot use the smi register, since we may use the scratch
++ // register to get around the lack of 64 bit immediates in the instruction
++ // set.
++ Register smi_reg = GetSmiConstant(src);
++ ASSERT(!dst.AddressUsesRegister(smi_reg));
++ cmpq(dst, smi_reg);
++}
++
++
+ void MacroAssembler::SmiCompareInteger32(const Operand& dst, Register src) {
+ cmpl(Operand(dst, kSmiShift / kBitsPerByte), src);
+ }
+@@ -1335,7 +1370,7 @@
+
+ void MacroAssembler::Cmp(Register dst, Handle<Object> source) {
+ if (source->IsSmi()) {
+- SmiCompare(dst, Smi::cast(*source));
++ Cmp(dst, Smi::cast(*source));
+ } else {
+ Move(kScratchRegister, source);
+ cmpq(dst, kScratchRegister);
+@@ -1345,7 +1380,7 @@
+
+ void MacroAssembler::Cmp(const Operand& dst, Handle<Object> source) {
+ if (source->IsSmi()) {
+- SmiCompare(dst, Smi::cast(*source));
++ Cmp(dst, Smi::cast(*source));
+ } else {
+ ASSERT(source->IsHeapObject());
+ movq(kScratchRegister, source, RelocInfo::EMBEDDED_OBJECT);
+@@ -1692,7 +1727,12 @@
+
+
+ void MacroAssembler::AbortIfNotSmi(Register object) {
+- NearLabel ok;
++ Condition is_smi = CheckSmi(object);
++ Assert(is_smi, "Operand is not a smi");
++}
++
++
++void MacroAssembler::AbortIfNotSmi(const Operand& object) {
+ Condition is_smi = CheckSmi(object);
+ Assert(is_smi, "Operand is not a smi");
+ }
+Only in v8/src/x64: macro-assembler-x64.cc.orig
+diff -ru v8.orig/src/x64/macro-assembler-x64.h v8/src/x64/macro-assembler-x64.h
+--- v8.orig/src/x64/macro-assembler-x64.h 2011-03-12 11:22:17.000000000 +0200
++++ v8/src/x64/macro-assembler-x64.h 2011-03-23 01:39:18.158396891 +0200
+@@ -256,8 +256,9 @@
+ int power);
+
+
+- // Simple comparison of smis.
+- void SmiCompare(Register dst, Register src);
++ // Simple comparison of smis. Both sides must be known smis to use these,
++ // otherwise use Cmp.
++ void SmiCompare(Register smi1, Register smi2);
+ void SmiCompare(Register dst, Smi* src);
+ void SmiCompare(Register dst, const Operand& src);
+ void SmiCompare(const Operand& dst, Register src);
+@@ -579,6 +580,8 @@
+ void Move(const Operand& dst, Handle<Object> source);
+ void Cmp(Register dst, Handle<Object> source);
+ void Cmp(const Operand& dst, Handle<Object> source);
++ void Cmp(Register dst, Smi* src);
++ void Cmp(const Operand& dst, Smi* src);
+ void Push(Handle<Object> source);
+
+ // Emit code to discard a non-negative number of pointer-sized elements
+@@ -646,6 +649,7 @@
+
+ // Abort execution if argument is not a smi. Used in debug code.
+ void AbortIfNotSmi(Register object);
++ void AbortIfNotSmi(const Operand& object);
+
+ // Abort execution if argument is a string. Used in debug code.
+ void AbortIfNotString(Register object);
+Only in v8/src/x64: macro-assembler-x64.h.orig
diff --git a/www/chromium/files/patch-webkit__build__webkit_version.py b/www/chromium/files/patch-webkit__build__webkit_version.py
new file mode 100644
index 000000000000..1b1483363e9d
--- /dev/null
+++ b/www/chromium/files/patch-webkit__build__webkit_version.py
@@ -0,0 +1,37 @@
+--- webkit/build/webkit_version.py.orig 2011-03-15 05:46:26.000000000 +0200
++++ webkit/build/webkit_version.py 2011-03-15 05:52:33.000000000 +0200
+@@ -45,21 +45,24 @@
+
+ # "svn info" tells us what we want, but third_party/WebKit does *not*
+ # point at the upstream repo. So instead we run svn info on the directory
+- # containing the versioning file (which is some subdirectory of WebKit),
+- # then strip that path back off of the resulting URL.
++ # containing the versioning file (which is some subdirectory of WebKit).
+ version_file_dir = os.path.dirname(version_file)
+ version_info = lastchange.FetchVersionInfo(
+ default_lastchange=None,
+ directory=os.path.join(webkit_dir, version_file_dir))
+
+- # Now compute the real WebKit URL by stripping off the version file
+- # directory from the URL we get out of version_info.
+- # Further, we want to strip off the "http://svn..." from the left.
+- # This is the root URL from the repository.
+- assert version_info.url.startswith(version_info.root)
+- assert version_info.url.endswith(version_file_dir)
+- webkit_url = version_info.url[len(version_info.root):-len(version_file_dir)]
+- webkit_url = webkit_url.strip('/')
++ if (version_info.url.startswith(version_info.root) and
++ version_info.url.endswith(version_file_dir)):
++ # Now compute the real WebKit URL by stripping off the version file
++ # directory from the URL we get out of version_info.
++ # Further, we want to strip off the "http://svn..." from the left.
++ # This is the root URL from the repository.
++ webkit_url = version_info.url[len(version_info.root):-len(version_file_dir)]
++ webkit_url = webkit_url.strip('/')
++ else:
++ # The data isn't as we expect: perhaps they're using git without svn?
++ # Just dump the output directly.
++ webkit_url = version_info.url
+
+ return "%s@%s" % (webkit_url, version_info.revision)
+
diff --git a/www/chromium/files/patch-webkit__glue__webkit_glue.h b/www/chromium/files/patch-webkit__glue__webkit_glue.h
new file mode 100644
index 000000000000..45f7d5ac8380
--- /dev/null
+++ b/www/chromium/files/patch-webkit__glue__webkit_glue.h
@@ -0,0 +1,11 @@
+--- ./webkit/glue/webkit_glue.h.orig 2010-12-16 02:11:23.000000000 +0100
++++ ./webkit/glue/webkit_glue.h 2010-12-20 20:15:08.000000000 +0100
+@@ -271,7 +271,7 @@
+ // Notifies the browser that the given action has been performed.
+ void UserMetricsRecordAction(const std::string& action);
+
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ // Return a read-only file descriptor to the font which best matches the given
+ // properties or -1 on failure.
+ // charset: specifies the language(s) that the font must cover. See
diff --git a/www/chromium/files/patch-webkit__glue__webkitclient_impl.cc b/www/chromium/files/patch-webkit__glue__webkitclient_impl.cc
new file mode 100644
index 000000000000..09a36290ef26
--- /dev/null
+++ b/www/chromium/files/patch-webkit__glue__webkitclient_impl.cc
@@ -0,0 +1,20 @@
+--- 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;
diff --git a/www/chromium/files/patch-webkit__glue__webkitclient_impl.h b/www/chromium/files/patch-webkit__glue__webkitclient_impl.h
new file mode 100644
index 000000000000..dcdd332d507a
--- /dev/null
+++ b/www/chromium/files/patch-webkit__glue__webkitclient_impl.h
@@ -0,0 +1,20 @@
+--- 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
+ };
diff --git a/www/chromium/files/patch-webkit__plugins__ppapi__ppb_flash_impl.h b/www/chromium/files/patch-webkit__plugins__ppapi__ppb_flash_impl.h
new file mode 100644
index 000000000000..c5660c011755
--- /dev/null
+++ b/www/chromium/files/patch-webkit__plugins__ppapi__ppb_flash_impl.h
@@ -0,0 +1,11 @@
+--- 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; }
diff --git a/www/chromium/files/patch-webkit__support__test_webkit_client.cc b/www/chromium/files/patch-webkit__support__test_webkit_client.cc
new file mode 100644
index 000000000000..fc7d7a50eb65
--- /dev/null
+++ b/www/chromium/files/patch-webkit__support__test_webkit_client.cc
@@ -0,0 +1,11 @@
+--- 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"
diff --git a/www/chromium/files/patch-webkit__support__webkit_support_glue.cc b/www/chromium/files/patch-webkit__support__webkit_support_glue.cc
new file mode 100644
index 000000000000..1cd14c91c3fd
--- /dev/null
+++ b/www/chromium/files/patch-webkit__support__webkit_support_glue.cc
@@ -0,0 +1,11 @@
+--- ./webkit/support/webkit_support_glue.cc.orig 2010-12-16 02:11:23.000000000 +0100
++++ ./webkit/support/webkit_support_glue.cc 2010-12-20 20:15:08.000000000 +0100
+@@ -99,7 +99,7 @@
+ void UserMetricsRecordAction(const std::string& action) {
+ }
+
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ int MatchFontWithFallback(const std::string& face, bool bold,
+ bool italic, int charset) {
+ return -1;
diff --git a/www/chromium/pkg-message b/www/chromium/pkg-message
new file mode 100644
index 000000000000..7b3bc8d242ed
--- /dev/null
+++ b/www/chromium/pkg-message
@@ -0,0 +1,4 @@
+To run Chromium on your version of FreeBSD, you will need to pass the
+--single-process parameter at startup. This is a work-around for a bug under
+investigation ( http://trillian.chruetertee.ch/chromium/ticket/13 ). Some
+functionality might not be available in this mode.
diff --git a/www/chromium/pkg-plist b/www/chromium/pkg-plist
index 90afa0421848..4a54bbee2088 100644
--- a/www/chromium/pkg-plist
+++ b/www/chromium/pkg-plist
@@ -18,6 +18,7 @@ bin/chrome
%%DATADIR%%/locales/es-419.pak
%%DATADIR%%/locales/es.pak
%%DATADIR%%/locales/et.pak
+%%DATADIR%%/locales/fa.pak
%%DATADIR%%/locales/fi.pak
%%DATADIR%%/locales/fil.pak
%%DATADIR%%/locales/fr.pak
@@ -59,21 +60,6 @@ bin/chrome
%%DATADIR%%/product_logo_48.png
%%DATADIR%%/protoc
%%DATADIR%%/resources.pak
-%%DATADIR%%/resources/calendar_app/128.png
-%%DATADIR%%/resources/calendar_app/24.png
-%%DATADIR%%/resources/calendar_app/32.png
-%%DATADIR%%/resources/calendar_app/48.png
-%%DATADIR%%/resources/calendar_app/manifest.json
-%%DATADIR%%/resources/docs_app/128.png
-%%DATADIR%%/resources/docs_app/24.png
-%%DATADIR%%/resources/docs_app/32.png
-%%DATADIR%%/resources/docs_app/48.png
-%%DATADIR%%/resources/docs_app/manifest.json
-%%DATADIR%%/resources/gmail_app/128.png
-%%DATADIR%%/resources/gmail_app/24.png
-%%DATADIR%%/resources/gmail_app/32.png
-%%DATADIR%%/resources/gmail_app/48.png
-%%DATADIR%%/resources/gmail_app/manifest.json
%%DATADIR%%/resources/inspector/DevTools.js
%%DATADIR%%/resources/inspector/Images/applicationCache.png
%%DATADIR%%/resources/inspector/Images/auditsIcon.png
@@ -116,6 +102,7 @@ bin/chrome
%%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/gearButtonGlyph.png
%%DATADIR%%/resources/inspector/Images/glossyHeader.png
%%DATADIR%%/resources/inspector/Images/glossyHeaderPressed.png
@@ -124,10 +111,11 @@ bin/chrome
%%DATADIR%%/resources/inspector/Images/goArrow.png
%%DATADIR%%/resources/inspector/Images/graphLabelCalloutLeft.png
%%DATADIR%%/resources/inspector/Images/graphLabelCalloutRight.png
-%%DATADIR%%/resources/inspector/Images/grayConnectorPoint.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
@@ -153,7 +141,6 @@ bin/chrome
%%DATADIR%%/resources/inspector/Images/resourcePlainIcon.png
%%DATADIR%%/resources/inspector/Images/resourcePlainIconSmall.png
%%DATADIR%%/resources/inspector/Images/resourcesIcon.png
-%%DATADIR%%/resources/inspector/Images/resourcesSilhouette.png
%%DATADIR%%/resources/inspector/Images/resourcesSizeGraphIcon.png
%%DATADIR%%/resources/inspector/Images/resourcesTimeGraphIcon.png
%%DATADIR%%/resources/inspector/Images/scriptsIcon.png
@@ -189,7 +176,6 @@ bin/chrome
%%DATADIR%%/resources/inspector/Images/statusbarMenuButtonSelectedChromium.png
%%DATADIR%%/resources/inspector/Images/statusbarResizerHorizontal.png
%%DATADIR%%/resources/inspector/Images/statusbarResizerVertical.png
-%%DATADIR%%/resources/inspector/Images/storageIcon.png
%%DATADIR%%/resources/inspector/Images/successGreenDot.png
%%DATADIR%%/resources/inspector/Images/thumbActiveHoriz.png
%%DATADIR%%/resources/inspector/Images/thumbActiveVert.png
@@ -238,21 +224,10 @@ bin/chrome
%%DATADIR%%/resources/inspector/Images/warningMediumIcon.png
%%DATADIR%%/resources/inspector/Images/warningOrangeDot.png
%%DATADIR%%/resources/inspector/Images/warningsErrors.png
-%%DATADIR%%/resources/inspector/Images/whiteConnectorPoint.png
-%%DATADIR%%/resources/inspector/audits.css
%%DATADIR%%/resources/inspector/devTools.css
%%DATADIR%%/resources/inspector/devtools.html
-%%DATADIR%%/resources/inspector/helpScreen.css
-%%DATADIR%%/resources/inspector/inspector.css
-%%DATADIR%%/resources/inspector/inspector.html
-%%DATADIR%%/resources/inspector/inspectorSyntaxHighlight.css
-%%DATADIR%%/resources/inspector/popover.css
-%%DATADIR%%/resources/inspector/textViewer.css
%%DATADIR%%/xdg-settings
@dirrm %%DATADIR%%/locales
-@dirrm %%DATADIR%%/resources/calendar_app
-@dirrm %%DATADIR%%/resources/docs_app
-@dirrm %%DATADIR%%/resources/gmail_app
@dirrm %%DATADIR%%/resources/inspector/Images
@dirrm %%DATADIR%%/resources/inspector
@dirrm %%DATADIR%%/resources