pkgsrc-WIP-changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Update to 51.0.2704.106



Module Name:	pkgsrc-wip
Committed By:	Ryo ONODERA <ryoon%NetBSD.org@localhost>
Pushed By:	ryoon
Date:		Sun Jul 17 17:00:03 2016 +0900
Changeset:	cb8882e807e9d316350c98035ec5d0e9407c9a13

Modified Files:
	chromium-new/DESCR
	chromium-new/Makefile
	chromium-new/PLIST
	chromium-new/distinfo
Added Files:
	chromium-new/patches/patch-base_base.gyp
	chromium-new/patches/patch-base_base.gypi
	chromium-new/patches/patch-base_debug_debugger__posix.cc
	chromium-new/patches/patch-base_debug_stack__trace__posix.cc
	chromium-new/patches/patch-base_files_file__path__watcher__kqueue.cc
	chromium-new/patches/patch-base_files_file__path__watcher__kqueue.h
	chromium-new/patches/patch-base_i18n_icu__util.cc
	chromium-new/patches/patch-base_i18n_icu__util.h
	chromium-new/patches/patch-base_posix_unix__domain__socket__linux.cc
	chromium-new/patches/patch-base_posix_unix__domain__socket__linux__unittest.cc
	chromium-new/patches/patch-base_process_internal__linux.h
	chromium-new/patches/patch-base_process_launch.cc
	chromium-new/patches/patch-base_process_launch.h
	chromium-new/patches/patch-base_process_launch__posix.cc
	chromium-new/patches/patch-base_process_memory.cc
	chromium-new/patches/patch-base_process_memory.h
	chromium-new/patches/patch-base_process_memory__stubs.cc
	chromium-new/patches/patch-base_process_memory__unittest.cc
	chromium-new/patches/patch-base_process_process__info__linux.cc
	chromium-new/patches/patch-base_process_process__iterator.h
	chromium-new/patches/patch-base_process_process__iterator__freebsd.cc
	chromium-new/patches/patch-base_process_process__iterator__netbsd.cc
	chromium-new/patches/patch-base_process_process__metrics.h
	chromium-new/patches/patch-base_process_process__metrics__freebsd.cc
	chromium-new/patches/patch-base_process_process__metrics__netbsd.cc
	chromium-new/patches/patch-base_process_process__metrics__posix.cc
	chromium-new/patches/patch-base_process_process__posix.cc
	chromium-new/patches/patch-base_security__unittest.cc
	chromium-new/patches/patch-base_strings_safe__sprintf.cc
	chromium-new/patches/patch-base_sys__info__freebsd.cc
	chromium-new/patches/patch-base_sys__info__netbsd.cc
	chromium-new/patches/patch-base_sys__info__posix.cc
	chromium-new/patches/patch-base_test_launcher_test__launcher.cc
	chromium-new/patches/patch-base_threading_platform__thread__linux.cc
	chromium-new/patches/patch-base_threading_platform__thread__posix.cc
	chromium-new/patches/patch-base_trace__event_process__memory__dump.cc
	chromium-new/patches/patch-base_trace__event_process__memory__dump.h
	chromium-new/patches/patch-build_build__config.h
	chromium-new/patches/patch-build_common.gypi
	chromium-new/patches/patch-build_filename__rules.gypi
	chromium-new/patches/patch-build_linux_system.gyp
	chromium-new/patches/patch-build_linux_unbundle_libwebp.gyp
	chromium-new/patches/patch-cc_layers_scrollbar__layer__impl__base.cc
	chromium-new/patches/patch-cc_trees_property__tree.cc
	chromium-new/patches/patch-chrome_app_chrome__main__delegate.cc
	chromium-new/patches/patch-chrome_app_chrome__main__delegate.h
	chromium-new/patches/patch-chrome_app_chromium__strings.grd
	chromium-new/patches/patch-chrome_app_generated__resources.grd
	chromium-new/patches/patch-chrome_app_resources_locale__settings.grd
	chromium-new/patches/patch-chrome_browser_about__flags.cc
	chromium-new/patches/patch-chrome_browser_browser__resources.grd
	chromium-new/patches/patch-chrome_browser_chrome__browser__main.cc
	chromium-new/patches/patch-chrome_browser_chrome__browser__main__linux.cc
	chromium-new/patches/patch-chrome_browser_chrome__browser__main__posix.cc
	chromium-new/patches/patch-chrome_browser_chrome__content__browser__client.cc
	chromium-new/patches/patch-chrome_browser_chrome__content__browser__client.h
	chromium-new/patches/patch-chrome_browser_defaults.cc
	chromium-new/patches/patch-chrome_browser_diagnostics_diagnostics__writer.cc
	chromium-new/patches/patch-chrome_browser_diagnostics_diagnostics__writer.h
	chromium-new/patches/patch-chrome_browser_download_chrome__download__manager__delegate.cc
	chromium-new/patches/patch-chrome_browser_download_download__commands.cc
	chromium-new/patches/patch-chrome_browser_download_download__commands.h
	chromium-new/patches/patch-chrome_browser_download_download__prefs.cc
	chromium-new/patches/patch-chrome_browser_download_download__prefs.h
	chromium-new/patches/patch-chrome_browser_download_download__query.cc
	chromium-new/patches/patch-chrome_browser_download_download__shelf__context__menu.cc
	chromium-new/patches/patch-chrome_browser_extensions_activity__log_activity__log.cc
	chromium-new/patches/patch-chrome_browser_extensions_api_image__writer__private_image__writer__private__api.cc
	chromium-new/patches/patch-chrome_browser_extensions_api_input__ime_input__ime__api.h
	chromium-new/patches/patch-chrome_browser_extensions_api_messaging_message__service.cc
	chromium-new/patches/patch-chrome_browser_extensions_api_music__manager__private_device__id__linux.cc
	chromium-new/patches/patch-chrome_browser_extensions_browser__context__keyed__service__factories.cc
	chromium-new/patches/patch-chrome_browser_extensions_external__provider__impl.cc
	chromium-new/patches/patch-chrome_browser_extensions_window__open__apitest.cc
	chromium-new/patches/patch-chrome_browser_gpu_gl__string__manager.cc
	chromium-new/patches/patch-chrome_browser_gpu_gpu__feature__checker.cc
	chromium-new/patches/patch-chrome_browser_interstitials_chrome__controller__client.cc
	chromium-new/patches/patch-chrome_browser_media__galleries_fileapi_mtp__device__map__service.cc
	chromium-new/patches/patch-chrome_browser_media__galleries_media__file__system__registry.cc
	chromium-new/patches/patch-chrome_browser_media_webrtc__log__uploader.cc
	chromium-new/patches/patch-chrome_browser_memory__details.cc
	chromium-new/patches/patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.cc
	chromium-new/patches/patch-chrome_browser_notifications_message__center__notification__manager.cc
	chromium-new/patches/patch-chrome_browser_password__manager_chrome__password__manager__client.cc
	chromium-new/patches/patch-chrome_browser_plugins_plugins__resource__service.cc
	chromium-new/patches/patch-chrome_browser_policy_policy__prefs__browsertest.cc
	chromium-new/patches/patch-chrome_browser_process__singleton__posix.cc
	chromium-new/patches/patch-chrome_browser_renderer__preferences__util.cc
	chromium-new/patches/patch-chrome_browser_safe__browsing_incident__reporting_incident__handler__util.cc
	chromium-new/patches/patch-chrome_browser_search_local__files__ntp__source.cc
	chromium-new/patches/patch-chrome_browser_sync_chrome__sync__client.cc
	chromium-new/patches/patch-chrome_browser_tracing_crash__service__uploader.cc
	chromium-new/patches/patch-chrome_browser_ui_browser__command__controller.cc
	chromium-new/patches/patch-chrome_browser_ui_browser__view__prefs.cc
	chromium-new/patches/patch-chrome_browser_ui_exclusive__access_exclusive__access__bubble.cc
	chromium-new/patches/patch-chrome_browser_ui_input__method_input__method__engine__base.cc
	chromium-new/patches/patch-chrome_browser_ui_panels_panel__manager.cc
	chromium-new/patches/patch-chrome_browser_ui_startup_startup__browser__creator.cc
	chromium-new/patches/patch-chrome_browser_ui_toolbar_app__menu__model.cc
	chromium-new/patches/patch-chrome_browser_ui_views_apps_chrome__native__app__window__views__aura.cc
	chromium-new/patches/patch-chrome_browser_ui_views_chrome__views__delegate.cc
	chromium-new/patches/patch-chrome_browser_ui_views_chrome__views__delegate.h
	chromium-new/patches/patch-chrome_browser_ui_views_first__run__dialog.cc
	chromium-new/patches/patch-chrome_browser_ui_views_frame_browser__frame.cc
	chromium-new/patches/patch-chrome_browser_ui_views_frame_browser__root__view.cc
	chromium-new/patches/patch-chrome_browser_ui_views_frame_browser__view.cc
	chromium-new/patches/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view.cc
	chromium-new/patches/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view__layout.cc
	chromium-new/patches/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view__platform__specific.cc
	chromium-new/patches/patch-chrome_browser_ui_views_frame_system__menu__model__builder.cc
	chromium-new/patches/patch-chrome_browser_ui_views_message__center_message__center__frame__view.cc
	chromium-new/patches/patch-chrome_browser_ui_views_panels_panel__frame__view.cc
	chromium-new/patches/patch-chrome_browser_ui_views_tabs_tab__drag__controller.cc
	chromium-new/patches/patch-chrome_browser_ui_views_tabs_tab__strip.cc
	chromium-new/patches/patch-chrome_browser_ui_webui_about__ui.cc
	chromium-new/patches/patch-chrome_browser_ui_webui_chrome__web__ui__controller__factory.cc
	chromium-new/patches/patch-chrome_browser_ui_webui_extensions_extension__loader__handler.cc
	chromium-new/patches/patch-chrome_browser_ui_webui_options_browser__options__handler.cc
	chromium-new/patches/patch-chrome_browser_ui_webui_options_browser__options__handler.h
	chromium-new/patches/patch-chrome_browser_web__applications_web__app.cc
	chromium-new/patches/patch-chrome_browser_web__applications_web__app.h
	chromium-new/patches/patch-chrome_chrome__browser.gypi
	chromium-new/patches/patch-chrome_chrome__browser__extensions.gypi
	chromium-new/patches/patch-chrome_chrome__browser__ui.gypi
	chromium-new/patches/patch-chrome_chrome__common.gypi
	chromium-new/patches/patch-chrome_chrome__exe.gypi
	chromium-new/patches/patch-chrome_common_channel__info__posix.cc
	chromium-new/patches/patch-chrome_common_chrome__paths.cc
	chromium-new/patches/patch-chrome_common_chrome__paths.h
	chromium-new/patches/patch-chrome_common_chrome__paths__internal.h
	chromium-new/patches/patch-chrome_common_chrome__switches.cc
	chromium-new/patches/patch-chrome_common_chrome__switches.h
	chromium-new/patches/patch-chrome_common_component__flash__hint__file__linux.h
	chromium-new/patches/patch-chrome_common_extensions_api_schemas.gypi
	chromium-new/patches/patch-chrome_common_extensions_command.cc
	chromium-new/patches/patch-chrome_common_pref__names.cc
	chromium-new/patches/patch-chrome_common_pref__names.h
	chromium-new/patches/patch-chrome_common_variations_fieldtrial__testing__config.gyp
	chromium-new/patches/patch-chrome_renderer_pepper_pepper__flash__font__file__host.cc
	chromium-new/patches/patch-chrome_renderer_pepper_pepper__flash__font__file__host.h
	chromium-new/patches/patch-chrome_test_base_in__process__browser__test.cc
	chromium-new/patches/patch-chrome_test_base_testing__browser__process.h
	chromium-new/patches/patch-chrome_test_chromedriver_chrome_chrome__finder.cc
	chromium-new/patches/patch-components_autofill_content_renderer_password__form__conversion__utils.cc
	chromium-new/patches/patch-components_autofill_core_browser_form__structure.cc
	chromium-new/patches/patch-components_cookie__config_cookie__store__util.cc
	chromium-new/patches/patch-components_dom__distiller_core_page__features.cc
	chromium-new/patches/patch-components_drive_drive__api__util.cc
	chromium-new/patches/patch-components_feedback_anonymizer__tool.cc
	chromium-new/patches/patch-components_flags__ui_flags__state.cc
	chromium-new/patches/patch-components_json__schema_json__schema__validator.cc
	chromium-new/patches/patch-components_keyed__service_core_dependency__graph__unittest.cc
	chromium-new/patches/patch-components_metrics_drive__metrics__provider__linux.cc
	chromium-new/patches/patch-components_metrics_system__memory__stats__recorder__linux.cc
	chromium-new/patches/patch-components_neterror_resources_neterror.js
	chromium-new/patches/patch-components_password__manager_core_browser_import_csv__reader.cc
	chromium-new/patches/patch-components_plugins_renderer_plugin__placeholder.cc
	chromium-new/patches/patch-components_policy_core_common_schema.cc
	chromium-new/patches/patch-components_policy_resources_policy__templates.json
	chromium-new/patches/patch-components_policy_tools_generate__policy__source.py
	chromium-new/patches/patch-components_storage__monitor.gypi
	chromium-new/patches/patch-components_storage__monitor_storage__monitor.cc
	chromium-new/patches/patch-components_storage__monitor_storage__monitor__freebsd.cc
	chromium-new/patches/patch-components_storage__monitor_storage__monitor__freebsd.h
	chromium-new/patches/patch-components_update__client_update__query__params.cc
	chromium-new/patches/patch-components_url__matcher_regex__set__matcher.cc
	chromium-new/patches/patch-components_url__matcher_url__matcher__factory.cc
	chromium-new/patches/patch-components_webcrypto_algorithms_test__helpers.cc
	chromium-new/patches/patch-content_app_content__main__runner.cc
	chromium-new/patches/patch-content_browser_accessibility_browser__accessibility.h
	chromium-new/patches/patch-content_browser_accessibility_browser__accessibility__manager.h
	chromium-new/patches/patch-content_browser_browser__main__loop.cc
	chromium-new/patches/patch-content_browser_browser__shutdown__profile__dumper.cc
	chromium-new/patches/patch-content_browser_child__process__launcher.cc
	chromium-new/patches/patch-content_browser_download_base__file.cc
	chromium-new/patches/patch-content_browser_download_base__file__linux.cc
	chromium-new/patches/patch-content_browser_geolocation_location__arbitrator__impl.cc
	chromium-new/patches/patch-content_browser_geolocation_wifi__data__provider__freebsd.cc
	chromium-new/patches/patch-content_browser_geolocation_wifi__data__provider__freebsd.h
	chromium-new/patches/patch-content_browser_gpu_gpu__data__manager__impl__private.cc
	chromium-new/patches/patch-content_browser_gpu_gpu__internals__ui.cc
	chromium-new/patches/patch-content_browser_indexed__db_indexed__db__backing__store.cc
	chromium-new/patches/patch-content_browser_ppapi__plugin__process__host.cc
	chromium-new/patches/patch-content_browser_renderer__host_render__process__host__impl.cc
	chromium-new/patches/patch-content_browser_renderer__host_render__widget__host__view__aura.cc
	chromium-new/patches/patch-content_browser_time__zone__monitor.cc
	chromium-new/patches/patch-content_browser_time__zone__monitor__linux.cc
	chromium-new/patches/patch-content_browser_utility__process__host__impl.cc
	chromium-new/patches/patch-content_browser_web__contents_web__contents__impl.cc
	chromium-new/patches/patch-content_common_sandbox__linux_sandbox__debug__handling__linux.cc
	chromium-new/patches/patch-content_common_set__process__title__linux.cc
	chromium-new/patches/patch-content_common_set__process__title__linux.h
	chromium-new/patches/patch-content_content__browser.gypi
	chromium-new/patches/patch-content_content__common.gypi
	chromium-new/patches/patch-content_content__tests.gypi
	chromium-new/patches/patch-content_gpu_gpu__child__thread.cc
	chromium-new/patches/patch-content_gpu_gpu__main.cc
	chromium-new/patches/patch-content_public_common_child__process__sandbox__support__linux.h
	chromium-new/patches/patch-content_public_common_content__switches.cc
	chromium-new/patches/patch-content_public_common_content__switches.h
	chromium-new/patches/patch-content_public_test_browser__test__base.cc
	chromium-new/patches/patch-content_renderer_devtools_v8__sampling__profiler.cc
	chromium-new/patches/patch-content_renderer_media_webrtc__audio__capturer.cc
	chromium-new/patches/patch-content_renderer_render__thread__impl.cc
	chromium-new/patches/patch-content_renderer_renderer__blink__platform__impl.cc
	chromium-new/patches/patch-content_renderer_renderer__blink__platform__impl.h
	chromium-new/patches/patch-content_renderer_renderer__main__platform__delegate__linux.cc
	chromium-new/patches/patch-content_renderer_webscrollbarbehavior__impl__gtkoraura.cc
	chromium-new/patches/patch-content_shell_browser_shell__browser__context.cc
	chromium-new/patches/patch-content_shell_browser_shell__browser__main__parts.cc
	chromium-new/patches/patch-crypto_nss__util.cc
	chromium-new/patches/patch-device_hid_hid.gyp
	chromium-new/patches/patch-device_serial_serial.gyp
	chromium-new/patches/patch-device_serial_serial__io__handler__posix.cc
	chromium-new/patches/patch-device_serial_serial__service__impl.cc
	chromium-new/patches/patch-device_usb_usb.gyp
	chromium-new/patches/patch-device_usb_usb__context.cc
	chromium-new/patches/patch-device_usb_usb__context__unittest.cc
	chromium-new/patches/patch-device_usb_usb__device__handle__impl.cc
	chromium-new/patches/patch-device_usb_usb__device__handle__impl.h
	chromium-new/patches/patch-device_usb_usb__device__impl.cc
	chromium-new/patches/patch-device_usb_usb__error.cc
	chromium-new/patches/patch-device_usb_usb__service__impl.cc
	chromium-new/patches/patch-device_usb_usb__service__impl.h
	chromium-new/patches/patch-extensions_browser_api_declarative__webrequest_webrequest__action.cc
	chromium-new/patches/patch-extensions_browser_api_serial_serial__api.cc
	chromium-new/patches/patch-extensions_browser_api_web__request_form__data__parser.cc
	chromium-new/patches/patch-extensions_common_image__util.cc
	chromium-new/patches/patch-extensions_common_stack__frame.cc
	chromium-new/patches/patch-gpu_command__buffer_service_error__state.cc
	chromium-new/patches/patch-gpu_command__buffer_service_program__manager.cc
	chromium-new/patches/patch-gpu_config_gpu__control__list.cc
	chromium-new/patches/patch-gpu_config_gpu__control__list__unittest.cc
	chromium-new/patches/patch-gpu_config_gpu__info__collector.cc
	chromium-new/patches/patch-gpu_config_gpu__test__config.cc
	chromium-new/patches/patch-gpu_gpu__config.gypi
	chromium-new/patches/patch-gpu_gpu__ipc__service.gypi
	chromium-new/patches/patch-ipc_ipc__message__utils.cc
	chromium-new/patches/patch-ipc_ipc__message__utils.h
	chromium-new/patches/patch-ipc_unix__domain__socket__util.cc
	chromium-new/patches/patch-media_audio_alsa_audio__manager__alsa.cc
	chromium-new/patches/patch-media_audio_audio__manager.cc
	chromium-new/patches/patch-media_audio_audio__manager.h
	chromium-new/patches/patch-media_audio_audio__output__device.cc
	chromium-new/patches/patch-media_audio_audio__output__stream__sink.cc
	chromium-new/patches/patch-media_base_audio__renderer__mixer.cc
	chromium-new/patches/patch-media_base_audio__renderer__mixer__input.cc
	chromium-new/patches/patch-media_base_audio__splicer.cc
	chromium-new/patches/patch-media_capture_video_fake__video__capture__device__factory.cc
	chromium-new/patches/patch-media_capture_video_file__video__capture__device__factory.cc
	chromium-new/patches/patch-media_capture_video_linux_v4l2__capture__delegate.cc
	chromium-new/patches/patch-media_capture_video_linux_v4l2__capture__delegate.h
	chromium-new/patches/patch-media_capture_video_linux_video__capture__device__factory__linux.cc
	chromium-new/patches/patch-media_capture_video_linux_video__capture__device__linux.cc
	chromium-new/patches/patch-media_capture_video_video__capture__device.cc
	chromium-new/patches/patch-media_capture_video_video__capture__device.h
	chromium-new/patches/patch-media_capture_video_video__capture__device__factory.cc
	chromium-new/patches/patch-media_filters_audio__clock.cc
	chromium-new/patches/patch-media_filters_audio__clock.h
	chromium-new/patches/patch-media_filters_decrypting__audio__decoder.cc
	chromium-new/patches/patch-media_filters_file__data__source.h
	chromium-new/patches/patch-media_filters_vp9__parser.h
	chromium-new/patches/patch-media_formats_common_offset__byte__queue.cc
	chromium-new/patches/patch-media_formats_common_offset__byte__queue.h
	chromium-new/patches/patch-media_formats_mp2t_es__parser__adts.cc
	chromium-new/patches/patch-media_formats_mp2t_es__parser__mpeg1audio.cc
	chromium-new/patches/patch-media_media.gyp
	chromium-new/patches/patch-mojo_shell_public_cpp_initialize__base__and__icu.cc
	chromium-new/patches/patch-mojo_shell_runner_init.cc
	chromium-new/patches/patch-native__client_build_common.gypi
	chromium-new/patches/patch-native__client_src_shared_platform_platform.gyp
	chromium-new/patches/patch-net_base_address__tracker__linux.cc
	chromium-new/patches/patch-net_base_address__tracker__linux.h
	chromium-new/patches/patch-net_base_address__tracker__linux__unittest.cc
	chromium-new/patches/patch-net_base_mime__util__unittest.cc
	chromium-new/patches/patch-net_base_network__change__notifier.cc
	chromium-new/patches/patch-net_base_network__interfaces__linux.cc
	chromium-new/patches/patch-net_base_network__interfaces__posix.cc
	chromium-new/patches/patch-net_dns_address__sorter__posix.cc
	chromium-new/patches/patch-net_dns_dns__config__service__posix__unittest.cc
	chromium-new/patches/patch-net_dns_dns__reloader.cc
	chromium-new/patches/patch-net_dns_dns__session.cc
	chromium-new/patches/patch-net_http_http__auth__gssapi__posix.cc
	chromium-new/patches/patch-net_net.gyp
	chromium-new/patches/patch-net_net.gypi
	chromium-new/patches/patch-net_net__common.gypi
	chromium-new/patches/patch-net_proxy_proxy__config__service__linux.cc
	chromium-new/patches/patch-net_proxy_proxy__service.cc
	chromium-new/patches/patch-net_quic_congestion__control_rtt__stats.cc
	chromium-new/patches/patch-net_socket_socks5__client__socket.cc
	chromium-new/patches/patch-net_udp_udp__socket__posix.cc
	chromium-new/patches/patch-net_udp_udp__socket__unittest.cc
	chromium-new/patches/patch-pdf_pdfium_pdfium__engine.cc
	chromium-new/patches/patch-ppapi_proxy_file__io__resource.cc
	chromium-new/patches/patch-ppapi_shared__impl_private_net__address__private__impl.cc
	chromium-new/patches/patch-printing_printing.gyp
	chromium-new/patches/patch-remoting_remoting__host.gypi
	chromium-new/patches/patch-skia_ext_SkMemory__new__handler.cpp
	chromium-new/patches/patch-skia_ext_platform__canvas.h
	chromium-new/patches/patch-skia_skia__chrome.gypi
	chromium-new/patches/patch-skia_skia__common.gypi
	chromium-new/patches/patch-sync_util_get__session__name.cc
	chromium-new/patches/patch-sync_util_get__session__name__linux.cc
	chromium-new/patches/patch-testing_gtest_src_gtest.cc
	chromium-new/patches/patch-testing_perf_perf__test.cc
	chromium-new/patches/patch-third__party_WebKit_Source_bindings_core_v8_V8ScriptRunner.cpp
	chromium-new/patches/patch-third__party_WebKit_Source_core_core.gyp
	chromium-new/patches/patch-third__party_WebKit_Source_modules_battery_battery__status.h
	chromium-new/patches/patch-third__party_WebKit_Source_platform_blink__platform.gyp
	chromium-new/patches/patch-third__party_WebKit_Source_platform_fonts_FontCache.cpp
	chromium-new/patches/patch-third__party_WebKit_Source_platform_fonts_FontCache.h
	chromium-new/patches/patch-third__party_WebKit_Source_platform_fonts_FontPlatformData.cpp
	chromium-new/patches/patch-third__party_WebKit_Source_platform_fonts_skia_FontCacheSkia.cpp
	chromium-new/patches/patch-third__party_WebKit_Source_platform_heap_GCInfo.cpp
	chromium-new/patches/patch-third__party_WebKit_Source_platform_heap_StackFrameDepth.cpp
	chromium-new/patches/patch-third__party_WebKit_Source_platform_image-decoders_png_PNGImageDecoder.cpp
	chromium-new/patches/patch-third__party_WebKit_Source_platform_text_Character.cpp
	chromium-new/patches/patch-third__party_WebKit_Source_platform_text_CharacterPropertyDataGenerator.cpp
	chromium-new/patches/patch-third__party_WebKit_Source_web_web.gyp
	chromium-new/patches/patch-third__party_WebKit_Source_wtf_ByteSwap.h
	chromium-new/patches/patch-third__party_WebKit_Source_wtf_wtf.gyp
	chromium-new/patches/patch-third__party_boringssl_src_crypto_bio_internal.h
	chromium-new/patches/patch-third__party_boringssl_src_crypto_cipher_e__chacha20poly1305.c
	chromium-new/patches/patch-third__party_boringssl_src_crypto_internal.h
	chromium-new/patches/patch-third__party_boringssl_src_crypto_poly1305_poly1305__vec.c
	chromium-new/patches/patch-third__party_boringssl_src_include_openssl_thread.h
	chromium-new/patches/patch-third__party_cacheinvalidation_src_google_cacheinvalidation_include_types.h
	chromium-new/patches/patch-third__party_ffmpeg_chromium_scripts_generate__gyp.py
	chromium-new/patches/patch-third__party_ffmpeg_ffmpeg.gyp
	chromium-new/patches/patch-third__party_ffmpeg_ffmpeg__generated.gni
	chromium-new/patches/patch-third__party_ffmpeg_ffmpeg__generated.gypi
	chromium-new/patches/patch-third__party_ffmpeg_libavutil_autorename__libavutil__cpu.c
	chromium-new/patches/patch-third__party_ffmpeg_libavutil_cpu.c
	chromium-new/patches/patch-third__party_ffmpeg_libavutil_mem.c
	chromium-new/patches/patch-third__party_khronos_khronos.gyp
	chromium-new/patches/patch-third__party_leveldatabase_env__chromium.cc
	chromium-new/patches/patch-third__party_libXNVCtrl_libXNVCtrl.gyp
	chromium-new/patches/patch-third__party_libjingle_libjingle.gyp
	chromium-new/patches/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_memory_singleton.h
	chromium-new/patches/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_synchronization_lock.h
	chromium-new/patches/patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_thread__checker.h
	chromium-new/patches/patch-third__party_libphonenumber_libphonenumber.gyp
	chromium-new/patches/patch-third__party_libpng_libpng.gyp
	chromium-new/patches/patch-third__party_libyuv_include_libyuv_row.h
	chromium-new/patches/patch-third__party_libyuv_source_mjpeg__decoder.cc
	chromium-new/patches/patch-third__party_ots_include_opentype-sanitiser.h
	chromium-new/patches/patch-third__party_pdfium_build_standalone.gypi
	chromium-new/patches/patch-third__party_pdfium_core_fxcrt_include_fx__system.h
	chromium-new/patches/patch-third__party_pdfium_fpdfsdk_javascript_JS__Value.cpp
	chromium-new/patches/patch-third__party_pdfium_fpdfsdk_javascript_PublicMethods.cpp
	chromium-new/patches/patch-third__party_pdfium_pdfium.gyp
	chromium-new/patches/patch-third__party_pdfium_third__party_base_logging.h
	chromium-new/patches/patch-third__party_sfntly_sfntly.gyp
	chromium-new/patches/patch-third__party_skia_src_gpu_GrAutoLocaleSetter.h
	chromium-new/patches/patch-third__party_sqlite_sqlite.gyp
	chromium-new/patches/patch-third__party_usrsctp_usrsctp.gyp
	chromium-new/patches/patch-third__party_webrtc_base_httpcommon.cc
	chromium-new/patches/patch-third__party_webrtc_base_ifaddrs__converter.h
	chromium-new/patches/patch-third__party_webrtc_base_ipaddress.h
	chromium-new/patches/patch-third__party_webrtc_base_linux.cc
	chromium-new/patches/patch-third__party_webrtc_base_linux.h
	chromium-new/patches/patch-third__party_webrtc_base_network.cc
	chromium-new/patches/patch-third__party_webrtc_base_network.h
	chromium-new/patches/patch-third__party_webrtc_base_physicalsocketserver.cc
	chromium-new/patches/patch-third__party_webrtc_base_platform__thread.cc
	chromium-new/patches/patch-third__party_webrtc_base_stringutils.h
	chromium-new/patches/patch-third__party_webrtc_base_systeminfo.cc
	chromium-new/patches/patch-third__party_webrtc_build_common.gypi
	chromium-new/patches/patch-third__party_webrtc_common__audio_wav__file.h
	chromium-new/patches/patch-third__party_webrtc_modules_audio__device_audio__device.gypi
	chromium-new/patches/patch-third__party_webrtc_modules_desktop__capture_desktop__capture.gypi
	chromium-new/patches/patch-third__party_webrtc_modules_remote__bitrate__estimator_overuse__detector.cc
	chromium-new/patches/patch-third__party_webrtc_modules_rtp__rtcp_source_forward__error__correction.cc
	chromium-new/patches/patch-third__party_webrtc_modules_video__coding_receiver.cc
	chromium-new/patches/patch-third__party_webrtc_system__wrappers_source_atomic32__posix.cc
	chromium-new/patches/patch-third__party_webrtc_voice__engine_voice__engine__defines.h
	chromium-new/patches/patch-tools_gyp_pylib_gyp_generator_make.py
	chromium-new/patches/patch-tools_gyp_test_additional-targets_src_dir1_actions.gyp
	chromium-new/patches/patch-tools_gyp_test_library_src_library.gyp
	chromium-new/patches/patch-ui_accessibility_accessibility.gyp
	chromium-new/patches/patch-ui_accessibility_platform_ax__platform__node.h
	chromium-new/patches/patch-ui_app__list_app__list__constants.cc
	chromium-new/patches/patch-ui_app__list_app__list__constants.h
	chromium-new/patches/patch-ui_app__list_app__list__menu.cc
	chromium-new/patches/patch-ui_app__list_views_app__list__view.cc
	chromium-new/patches/patch-ui_base_BUILD.gn
	chromium-new/patches/patch-ui_base_ime_ime__engine__handler__interface.h
	chromium-new/patches/patch-ui_base_ime_input__method__factory.cc
	chromium-new/patches/patch-ui_base_ime_input__method__initializer.cc
	chromium-new/patches/patch-ui_base_resource_resource__bundle.cc
	chromium-new/patches/patch-ui_base_ui__base.gyp
	chromium-new/patches/patch-ui_base_webui_web__ui__util.cc
	chromium-new/patches/patch-ui_events_event__switches.cc
	chromium-new/patches/patch-ui_events_event__switches.h
	chromium-new/patches/patch-ui_events_keycodes_dom_keycode__converter.cc
	chromium-new/patches/patch-ui_gfx_canvas__skia.cc
	chromium-new/patches/patch-ui_gfx_codec_jpeg__codec.cc
	chromium-new/patches/patch-ui_gfx_color__utils.cc
	chromium-new/patches/patch-ui_gfx_font__fallback__linux.cc
	chromium-new/patches/patch-ui_gfx_font__render__params.h
	chromium-new/patches/patch-ui_gfx_render__text.cc
	chromium-new/patches/patch-ui_gl_gl.gyp
	chromium-new/patches/patch-ui_gl_gl__surface__glx.cc
	chromium-new/patches/patch-ui_gl_sync__control__vsync__provider.cc
	chromium-new/patches/patch-ui_message__center_message__center__style.h
	chromium-new/patches/patch-ui_message__center_views_message__center__button__bar.cc
	chromium-new/patches/patch-ui_message__center_views_message__center__button__bar.h
	chromium-new/patches/patch-ui_message__center_views_message__center__view.cc
	chromium-new/patches/patch-ui_message__center_views_notification__view.cc
	chromium-new/patches/patch-ui_resources_ui__resources.grd
	chromium-new/patches/patch-ui_views_accessibility_native__view__accessibility.h
	chromium-new/patches/patch-ui_views_bubble_bubble__delegate.cc
	chromium-new/patches/patch-ui_views_controls_button_label__button.cc
	chromium-new/patches/patch-ui_views_controls_scrollbar_base__scroll__bar.cc
	chromium-new/patches/patch-ui_views_controls_textfield_textfield.cc
	chromium-new/patches/patch-ui_views_controls_webview_webview.gyp
	chromium-new/patches/patch-ui_views_examples_widget__example.cc
	chromium-new/patches/patch-ui_views_style_platform__style.cc
	chromium-new/patches/patch-ui_views_views.gyp
	chromium-new/patches/patch-ui_views_views__delegate.cc
	chromium-new/patches/patch-ui_views_views__delegate.h
	chromium-new/patches/patch-ui_views_views__switches.cc
	chromium-new/patches/patch-ui_views_window_custom__frame__view.cc
	chromium-new/patches/patch-ui_views_window_dialog__delegate.cc
	chromium-new/patches/patch-ui_webui_resources_js_cr.js
	chromium-new/patches/patch-ui_webui_resources_js_util.js
	chromium-new/patches/patch-v8_src_base_platform_platform-posix.cc
	chromium-new/patches/patch-v8_src_base_platform_platform.h
	chromium-new/patches/patch-v8_src_compiler_graph-visualizer.cc
	chromium-new/patches/patch-v8_src_compiler_graph-visualizer.h
	chromium-new/patches/patch-v8_src_log-utils.h
	chromium-new/patches/patch-v8_tools_run-llprof.sh
Removed Files:
	chromium-new/options.mk
	chromium-new/patches/patch-apps_apps_gypi
	chromium-new/patches/patch-apps_ui_views_app_window_frame_view_cc
	chromium-new/patches/patch-ash_display_mirror_window_controller_cc
	chromium-new/patches/patch-base_atomicops_h
	chromium-new/patches/patch-base_base_gypi
	chromium-new/patches/patch-base_debug_debugger_posix_cc
	chromium-new/patches/patch-base_debug_stack_trace_h
	chromium-new/patches/patch-base_debug_stack_trace_posix_cc
	chromium-new/patches/patch-base_message_loop_message_loop_cc
	chromium-new/patches/patch-base_posix_unix_domain_socket_linux_cc
	chromium-new/patches/patch-base_process_launch_h
	chromium-new/patches/patch-base_process_memory_cc
	chromium-new/patches/patch-base_process_process_handle_openbsd_cc
	chromium-new/patches/patch-base_process_process_iterator_openbsd_cc
	chromium-new/patches/patch-base_process_process_metrics_h
	chromium-new/patches/patch-base_process_process_metrics_openbsd_cc
	chromium-new/patches/patch-base_process_process_posix_cc
	chromium-new/patches/patch-base_strings_safe_sprintf_cc
	chromium-new/patches/patch-base_sys_info_openbsd_cc
	chromium-new/patches/patch-base_sys_info_posix_cc
	chromium-new/patches/patch-base_threading_platform_thread_linux_cc
	chromium-new/patches/patch-base_trace_event_process_memory_dump_h
	chromium-new/patches/patch-build_all_gyp
	chromium-new/patches/patch-build_common_gypi
	chromium-new/patches/patch-build_filename_rules_gypi
	chromium-new/patches/patch-chrome_app_chrome_main_delegate_cc
	chromium-new/patches/patch-chrome_app_chrome_main_delegate_h
	chromium-new/patches/patch-chrome_app_chromium_strings_grd
	chromium-new/patches/patch-chrome_app_google_chrome_strings_grd
	chromium-new/patches/patch-chrome_app_resources_locale_settings_grd
	chromium-new/patches/patch-chrome_app_theme_theme_resources_grd
	chromium-new/patches/patch-chrome_browser_about_flags_cc
	chromium-new/patches/patch-chrome_browser_after_startup_task_utils_cc
	chromium-new/patches/patch-chrome_browser_browser_resources_grd
	chromium-new/patches/patch-chrome_browser_chrome_browser_main_cc
	chromium-new/patches/patch-chrome_browser_chrome_browser_main_linux_cc
	chromium-new/patches/patch-chrome_browser_chrome_browser_main_posix_cc
	chromium-new/patches/patch-chrome_browser_chrome_content_browser_client_cc
	chromium-new/patches/patch-chrome_browser_chrome_content_browser_client_h
	chromium-new/patches/patch-chrome_browser_custom_handlers_protocol_handler_registry_cc
	chromium-new/patches/patch-chrome_browser_defaults_cc
	chromium-new/patches/patch-chrome_browser_download_chrome_download_manager_delegate_cc
	chromium-new/patches/patch-chrome_browser_download_download_commands_cc
	chromium-new/patches/patch-chrome_browser_download_download_commands_h
	chromium-new/patches/patch-chrome_browser_download_download_prefs_cc
	chromium-new/patches/patch-chrome_browser_download_download_prefs_h
	chromium-new/patches/patch-chrome_browser_download_download_shelf_context_menu_cc
	chromium-new/patches/patch-chrome_browser_download_download_status_updater_cc
	chromium-new/patches/patch-chrome_browser_extensions_api_image_writer_private_image_writer_private_api_cc
	chromium-new/patches/patch-chrome_browser_extensions_api_messaging_message_service_cc
	chromium-new/patches/patch-chrome_browser_extensions_api_music_manager_private_device_id_linux_cc
	chromium-new/patches/patch-chrome_browser_extensions_api_omnibox_omnibox_api_cc
	chromium-new/patches/patch-chrome_browser_extensions_bookmark_app_helper_cc
	chromium-new/patches/patch-chrome_browser_first_run_first_run_internal_posix_cc
	chromium-new/patches/patch-chrome_browser_gpu_gl_string_manager_cc
	chromium-new/patches/patch-chrome_browser_gpu_gpu_feature_checker_cc
	chromium-new/patches/patch-chrome_browser_media_galleries_fileapi_mtp_device_map_service_cc
	chromium-new/patches/patch-chrome_browser_media_galleries_media_file_system_registry_cc
	chromium-new/patches/patch-chrome_browser_media_galleries_media_folder_finder_cc
	chromium-new/patches/patch-chrome_browser_memory_details_cc
	chromium-new/patches/patch-chrome_browser_metrics_chrome_browser_main_extra_parts_metrics_cc
	chromium-new/patches/patch-chrome_browser_net_async_dns_field_trial_cc
	chromium-new/patches/patch-chrome_browser_notifications_message_center_notification_manager_cc
	chromium-new/patches/patch-chrome_browser_platform_util_linux_cc
	chromium-new/patches/patch-chrome_browser_process_singleton_posix_cc
	chromium-new/patches/patch-chrome_browser_renderer_preferences_util_cc
	chromium-new/patches/patch-chrome_browser_resources_plugin_metadata_plugins_linux_json
	chromium-new/patches/patch-chrome_browser_safe_browsing_incident_reporting_incident_reporting_service_cc
	chromium-new/patches/patch-chrome_browser_speech_tts_controller_impl_cc
	chromium-new/patches/patch-chrome_browser_ssl_bad_clock_blocking_page_cc
	chromium-new/patches/patch-chrome_browser_sync_profile_sync_components_factory_impl_cc
	chromium-new/patches/patch-chrome_browser_task_manager_task_manager_cc
	chromium-new/patches/patch-chrome_browser_tracing_crash_service_uploader_cc
	chromium-new/patches/patch-chrome_browser_ui_app_list_app_list_service_cc
	chromium-new/patches/patch-chrome_browser_ui_ash_system_tray_delegate_common_cc
	chromium-new/patches/patch-chrome_browser_ui_aura_chrome_browser_main_extra_parts_aura_cc
	chromium-new/patches/patch-chrome_browser_ui_aura_chrome_browser_main_extra_parts_aura_h
	chromium-new/patches/patch-chrome_browser_ui_browser_command_controller_cc
	chromium-new/patches/patch-chrome_browser_ui_browser_view_prefs_cc
	chromium-new/patches/patch-chrome_browser_ui_exclusive_access_exclusive_access_bubble_cc
	chromium-new/patches/patch-chrome_browser_ui_panels_panel_manager_cc
	chromium-new/patches/patch-chrome_browser_ui_startup_bad_flags_prompt_cc
	chromium-new/patches/patch-chrome_browser_ui_startup_startup_browser_creator_cc
	chromium-new/patches/patch-chrome_browser_ui_toolbar_app_menu_model_cc
	chromium-new/patches/patch-chrome_browser_ui_views_accelerator_table_cc
	chromium-new/patches/patch-chrome_browser_ui_views_app_list_linux_app_list_linux_cc
	chromium-new/patches/patch-chrome_browser_ui_views_apps_chrome_native_app_window_views_aura_cc
	chromium-new/patches/patch-chrome_browser_ui_views_ash_chrome_browser_main_extra_parts_ash_cc
	chromium-new/patches/patch-chrome_browser_ui_views_chrome_views_delegate_cc
	chromium-new/patches/patch-chrome_browser_ui_views_chrome_views_delegate_h
	chromium-new/patches/patch-chrome_browser_ui_views_exclusive_access_bubble_views_cc
	chromium-new/patches/patch-chrome_browser_ui_views_first_run_dialog_cc
	chromium-new/patches/patch-chrome_browser_ui_views_frame_browser_frame_cc
	chromium-new/patches/patch-chrome_browser_ui_views_frame_opaque_browser_frame_view_cc
	chromium-new/patches/patch-chrome_browser_ui_views_frame_opaque_browser_frame_view_layout_cc
	chromium-new/patches/patch-chrome_browser_ui_views_frame_opaque_browser_frame_view_platform_specific_cc
	chromium-new/patches/patch-chrome_browser_ui_views_frame_system_menu_model_builder_cc
	chromium-new/patches/patch-chrome_browser_ui_views_message_center_message_center_frame_view_cc
	chromium-new/patches/patch-chrome_browser_ui_views_panels_panel_frame_view_cc
	chromium-new/patches/patch-chrome_browser_ui_views_tabs_tab_drag_controller_cc
	chromium-new/patches/patch-chrome_browser_ui_views_tabs_tab_strip_cc
	chromium-new/patches/patch-chrome_browser_ui_views_task_manager_view_cc
	chromium-new/patches/patch-chrome_browser_ui_webui_about_ui_cc
	chromium-new/patches/patch-chrome_browser_ui_webui_chrome_web_ui_controller_factory_cc
	chromium-new/patches/patch-chrome_browser_ui_webui_options_browser_options_handler_cc
	chromium-new/patches/patch-chrome_browser_ui_webui_options_browser_options_handler_h
	chromium-new/patches/patch-chrome_browser_web_applications_web_app_cc
	chromium-new/patches/patch-chrome_browser_web_applications_web_app_h
	chromium-new/patches/patch-chrome_chrome_browser_extensions_gypi
	chromium-new/patches/patch-chrome_chrome_browser_gypi
	chromium-new/patches/patch-chrome_chrome_browser_ui_gypi
	chromium-new/patches/patch-chrome_chrome_common_gypi
	chromium-new/patches/patch-chrome_chrome_exe_gypi
	chromium-new/patches/patch-chrome_chrome_utility_gypi
	chromium-new/patches/patch-chrome_common_chrome_paths_cc
	chromium-new/patches/patch-chrome_common_chrome_paths_h
	chromium-new/patches/patch-chrome_common_chrome_paths_internal_h
	chromium-new/patches/patch-chrome_common_chrome_switches_cc
	chromium-new/patches/patch-chrome_common_chrome_switches_h
	chromium-new/patches/patch-chrome_common_extensions_api_schemas_gypi
	chromium-new/patches/patch-chrome_common_extensions_command_cc
	chromium-new/patches/patch-chrome_common_pref_names_cc
	chromium-new/patches/patch-chrome_common_pref_names_h
	chromium-new/patches/patch-chrome_common_url_constants_cc
	chromium-new/patches/patch-chrome_common_url_constants_h
	chromium-new/patches/patch-chrome_common_variations_fieldtrial_testing_config_gyp
	chromium-new/patches/patch-chrome_policy_templates_gypi
	chromium-new/patches/patch-chrome_renderer_resources_neterror_js
	chromium-new/patches/patch-chrome_utility_media_galleries_image_metadata_extractor_cc
	chromium-new/patches/patch-chromecast_browser_cast_browser_main_parts_cc
	chromium-new/patches/patch-components_audio_modem_modem_impl_cc
	chromium-new/patches/patch-components_cookie_config_cookie_store_util_cc
	chromium-new/patches/patch-components_html_viewer_blink_settings_impl_cc
	chromium-new/patches/patch-components_metrics_drive_metrics_provider_linux_cc
	chromium-new/patches/patch-components_metrics_gypi
	chromium-new/patches/patch-components_omnibox_browser_omnibox_field_trial_cc
	chromium-new/patches/patch-components_policy_resources_policy_templates_json
	chromium-new/patches/patch-components_policy_tools_generate_policy_source_py
	chromium-new/patches/patch-components_printing_renderer_print_web_view_helper_h
	chromium-new/patches/patch-components_storage_monitor_gypi
	chromium-new/patches/patch-components_storage_monitor_storage_monitor_openbsd_cc
	chromium-new/patches/patch-components_storage_monitor_storage_monitor_openbsd_h
	chromium-new/patches/patch-content_app_content_main_runner_cc
	chromium-new/patches/patch-content_browser_accessibility_browser_accessibility_h
	chromium-new/patches/patch-content_browser_accessibility_browser_accessibility_manager_h
	chromium-new/patches/patch-content_browser_browser_main_loop_cc
	chromium-new/patches/patch-content_browser_child_process_launcher_cc
	chromium-new/patches/patch-content_browser_devtools_protocol_color_picker_cc
	chromium-new/patches/patch-content_browser_download_base_file_cc
	chromium-new/patches/patch-content_browser_download_base_file_linux_cc
	chromium-new/patches/patch-content_browser_gamepad_gamepad_provider_cc
	chromium-new/patches/patch-content_browser_geolocation_location_arbitrator_impl_cc
	chromium-new/patches/patch-content_browser_gpu_gpu_data_manager_impl_private_cc
	chromium-new/patches/patch-content_browser_gpu_gpu_internals_ui_cc
	chromium-new/patches/patch-content_browser_power_usage_monitor_impl_cc
	chromium-new/patches/patch-content_browser_renderer_host_p2p_socket_dispatcher_host_h
	chromium-new/patches/patch-content_browser_renderer_host_render_widget_host_impl_cc
	chromium-new/patches/patch-content_browser_renderer_host_render_widget_host_view_aura_cc
	chromium-new/patches/patch-content_browser_time_zone_monitor_cc
	chromium-new/patches/patch-content_common_gpu_gpu_memory_manager_h
	chromium-new/patches/patch-content_common_sandbox_init_openbsd_cc
	chromium-new/patches/patch-content_common_sandbox_init_openbsd_h
	chromium-new/patches/patch-content_common_set_process_title_linux_cc
	chromium-new/patches/patch-content_common_set_process_title_linux_h
	chromium-new/patches/patch-content_content_browser_gypi
	chromium-new/patches/patch-content_content_common_gypi
	chromium-new/patches/patch-content_content_renderer_gypi
	chromium-new/patches/patch-content_gpu_gpu_main_cc
	chromium-new/patches/patch-content_ppapi_plugin_ppapi_plugin_main_cc
	chromium-new/patches/patch-content_public_common_content_switches_cc
	chromium-new/patches/patch-content_public_common_content_switches_h
	chromium-new/patches/patch-content_renderer_devtools_v8_sampling_profiler_cc
	chromium-new/patches/patch-content_renderer_render_thread_impl_cc
	chromium-new/patches/patch-content_renderer_renderer_main_cc
	chromium-new/patches/patch-content_renderer_renderer_main_platform_delegate_linux_cc
	chromium-new/patches/patch-content_renderer_webscrollbarbehavior_impl_gtkoraura_cc
	chromium-new/patches/patch-content_utility_utility_main_cc
	chromium-new/patches/patch-dbus_property_cc
	chromium-new/patches/patch-device_battery_battery_gyp
	chromium-new/patches/patch-device_hid_hid_gyp
	chromium-new/patches/patch-device_serial_serial_gyp
	chromium-new/patches/patch-device_serial_serial_io_handler_posix_cc
	chromium-new/patches/patch-device_serial_serial_service_impl_cc
	chromium-new/patches/patch-extensions_browser_api_serial_serial_api_cc
	chromium-new/patches/patch-gpu_config_gpu_info_collector_linux_cc
	chromium-new/patches/patch-gpu_config_gpu_info_collector_linux_h
	chromium-new/patches/patch-gpu_config_gpu_info_collector_x11_cc
	chromium-new/patches/patch-gpu_gles2_conform_support_gles2_conform_support_gyp
	chromium-new/patches/patch-gpu_gpu_config_gypi
	chromium-new/patches/patch-gpu_tools_tools_gyp
	chromium-new/patches/patch-media_audio_audio_input_controller_cc
	chromium-new/patches/patch-media_audio_audio_manager_cc
	chromium-new/patches/patch-media_audio_audio_manager_h
	chromium-new/patches/patch-media_capture_video_fake_video_capture_device_factory_cc
	chromium-new/patches/patch-media_capture_video_file_video_capture_device_factory_cc
	chromium-new/patches/patch-media_capture_video_video_capture_device_cc
	chromium-new/patches/patch-media_capture_video_video_capture_device_factory_cc
	chromium-new/patches/patch-media_capture_video_video_capture_device_h
	chromium-new/patches/patch-media_media_gyp
	chromium-new/patches/patch-native_client_build_compiler_version_py
	chromium-new/patches/patch-net_base_address_tracker_linux_h
	chromium-new/patches/patch-net_base_net_util_cc
	chromium-new/patches/patch-net_base_network_change_notifier_cc
	chromium-new/patches/patch-net_base_network_interfaces_posix_cc
	chromium-new/patches/patch-net_disk_cache_blockfile_disk_format_h
	chromium-new/patches/patch-net_dns_address_sorter_posix_cc
	chromium-new/patches/patch-net_dns_host_resolver_proc_cc
	chromium-new/patches/patch-net_http_http_network_session_cc
	chromium-new/patches/patch-net_net_common_gypi
	chromium-new/patches/patch-net_net_gypi
	chromium-new/patches/patch-net_proxy_proxy_config_service_linux_cc
	chromium-new/patches/patch-net_proxy_proxy_service_cc
	chromium-new/patches/patch-net_socket_socks5_client_socket_cc
	chromium-new/patches/patch-net_tools_get_server_time_get_server_time_cc
	chromium-new/patches/patch-net_udp_udp_socket_posix_cc
	chromium-new/patches/patch-net_url_request_url_request_context_builder_cc
	chromium-new/patches/patch-pdf_pdfium_pdfium_engine_cc
	chromium-new/patches/patch-ppapi_shared_impl_private_net_address_private_impl_cc
	chromium-new/patches/patch-printing_backend_cups_helper_cc
	chromium-new/patches/patch-printing_printing_gyp
	chromium-new/patches/patch-remoting_remoting_all_gyp
	chromium-new/patches/patch-remoting_remoting_host_gypi
	chromium-new/patches/patch-skia_ext_SkMemory_new_handler_cpp
	chromium-new/patches/patch-skia_skia_chrome_gypi
	chromium-new/patches/patch-skia_skia_common_gypi
	chromium-new/patches/patch-sync_util_get_session_name_cc
	chromium-new/patches/patch-sync_util_get_session_name_linux_cc
	chromium-new/patches/patch-third_party_WebKit_Source_bindings_core_v8_V8ScriptRunner_cpp
	chromium-new/patches/patch-third_party_WebKit_Source_core_core_gyp
	chromium-new/patches/patch-third_party_WebKit_Source_platform_blink_platform_gyp
	chromium-new/patches/patch-third_party_WebKit_Source_platform_fonts_SimpleFontData_cpp
	chromium-new/patches/patch-third_party_WebKit_Source_platform_heap_StackFrameDepth_cpp
	chromium-new/patches/patch-third_party_WebKit_Source_platform_heap_ThreadState_cpp
	chromium-new/patches/patch-third_party_WebKit_Source_platform_heap_ThreadState_h
	chromium-new/patches/patch-third_party_WebKit_Source_web_PopupMenuImpl_cpp
	chromium-new/patches/patch-third_party_WebKit_Source_web_web_gyp
	chromium-new/patches/patch-third_party_WebKit_Source_wtf_MathExtras_h
	chromium-new/patches/patch-third_party_boringssl_src_crypto_bn_generic_c
	chromium-new/patches/patch-third_party_ffmpeg_chromium_config_Chrome_openbsd_ia32_config_asm
	chromium-new/patches/patch-third_party_ffmpeg_chromium_config_Chrome_openbsd_ia32_config_h
	chromium-new/patches/patch-third_party_ffmpeg_chromium_config_Chrome_openbsd_x64_config_asm
	chromium-new/patches/patch-third_party_ffmpeg_chromium_config_Chrome_openbsd_x64_config_h
	chromium-new/patches/patch-third_party_ffmpeg_ffmpeg_generated_gypi
	chromium-new/patches/patch-third_party_ffmpeg_libavcodec_x86_cabac_h
	chromium-new/patches/patch-third_party_ffmpeg_libavutil_autorename_libavutil_cpu_c
	chromium-new/patches/patch-third_party_ffmpeg_libavutil_cpu_c
	chromium-new/patches/patch-third_party_ffmpeg_libavutil_mem_c
	chromium-new/patches/patch-third_party_iccjpeg_iccjpeg_gyp
	chromium-new/patches/patch-third_party_libXNVCtrl_NVCtrl_c
	chromium-new/patches/patch-third_party_libXNVCtrl_libXNVCtrl_gyp
	chromium-new/patches/patch-third_party_libjingle_libjingle_gyp
	chromium-new/patches/patch-third_party_libjpeg_turbo_libjpeg_gyp
	chromium-new/patches/patch-third_party_libusb_libusb_gyp
	chromium-new/patches/patch-third_party_libusb_src_libusb_core_c
	chromium-new/patches/patch-third_party_libyuv_libyuv_gyp
	chromium-new/patches/patch-third_party_pdfium_build_standalone_gypi
	chromium-new/patches/patch-third_party_pdfium_core_include_fxcrt_fx_system_h
	chromium-new/patches/patch-third_party_pdfium_core_src_fxge_ge_fx_ge_linux_cpp
	chromium-new/patches/patch-third_party_pdfium_fpdfsdk_src_javascript_JS_Value_cpp
	chromium-new/patches/patch-third_party_pdfium_pdfium_gyp
	chromium-new/patches/patch-third_party_pdfium_third_party_libopenjpeg20_opj_malloc_h
	chromium-new/patches/patch-third_party_protobuf_src_google_protobuf_stubs_atomicops_h
	chromium-new/patches/patch-third_party_protobuf_src_google_protobuf_stubs_strutil_h
	chromium-new/patches/patch-third_party_skia_gyp_ports_gyp
	chromium-new/patches/patch-third_party_skia_src_core_SkVarAlloc_cpp
	chromium-new/patches/patch-third_party_skia_src_gpu_GrAutoLocaleSetter_h
	chromium-new/patches/patch-third_party_webrtc_base_base_gyp
	chromium-new/patches/patch-third_party_webrtc_base_httpcommon_cc
	chromium-new/patches/patch-third_party_webrtc_base_network_cc
	chromium-new/patches/patch-third_party_webrtc_base_physicalsocketserver_cc
	chromium-new/patches/patch-third_party_webrtc_base_platform_thread_cc
	chromium-new/patches/patch-third_party_webrtc_base_stringutils_h
	chromium-new/patches/patch-third_party_webrtc_build_common_gypi
	chromium-new/patches/patch-third_party_webrtc_system_wrappers_source_atomic32_posix_cc
	chromium-new/patches/patch-third_party_webrtc_system_wrappers_source_condition_variable_cc
	chromium-new/patches/patch-third_party_webrtc_system_wrappers_source_thread_posix_cc
	chromium-new/patches/patch-third_party_webrtc_system_wrappers_source_timestamp_extrapolator_cc
	chromium-new/patches/patch-third_party_yasm_source_config_openbsd_config_h
	chromium-new/patches/patch-third_party_yasm_source_config_openbsd_libyasm-stdint_h
	chromium-new/patches/patch-tools_gyp_pylib_gyp_generator_make_py
	chromium-new/patches/patch-tools_gyp_pylib_gyp_generator_ninja_py
	chromium-new/patches/patch-ui_accessibility_accessibility_gyp
	chromium-new/patches/patch-ui_accessibility_platform_ax_platform_node_cc
	chromium-new/patches/patch-ui_app_list_app_list_constants_cc
	chromium-new/patches/patch-ui_app_list_app_list_constants_h
	chromium-new/patches/patch-ui_app_list_app_list_menu_cc
	chromium-new/patches/patch-ui_app_list_views_app_list_item_view_cc
	chromium-new/patches/patch-ui_app_list_views_app_list_view_cc
	chromium-new/patches/patch-ui_base_ime_input_method_factory_cc
	chromium-new/patches/patch-ui_base_resource_resource_bundle_cc
	chromium-new/patches/patch-ui_base_ui_base_gyp
	chromium-new/patches/patch-ui_base_user_activity_user_activity_detector_cc
	chromium-new/patches/patch-ui_base_webui_web_ui_util_cc
	chromium-new/patches/patch-ui_events_devices_x11_device_data_manager_x11_cc
	chromium-new/patches/patch-ui_events_event_switches_cc
	chromium-new/patches/patch-ui_events_event_switches_h
	chromium-new/patches/patch-ui_events_keycodes_dom_keycode_converter_cc
	chromium-new/patches/patch-ui_events_x_keysym_to_unicode_h
	chromium-new/patches/patch-ui_gfx_canvas_skia_cc
	chromium-new/patches/patch-ui_gfx_codec_png_codec_cc
	chromium-new/patches/patch-ui_gfx_gfx_gyp
	chromium-new/patches/patch-ui_gl_generate_bindings_py
	chromium-new/patches/patch-ui_gl_gl_bindings_api_autogen_glx_h
	chromium-new/patches/patch-ui_gl_gl_bindings_autogen_glx_cc
	chromium-new/patches/patch-ui_gl_gl_bindings_autogen_glx_h
	chromium-new/patches/patch-ui_gl_gl_gyp
	chromium-new/patches/patch-ui_gl_gl_surface_glx_cc
	chromium-new/patches/patch-ui_gl_sync_control_vsync_provider_cc
	chromium-new/patches/patch-ui_message_center_message_center_style_h
	chromium-new/patches/patch-ui_message_center_views_message_center_button_bar_cc
	chromium-new/patches/patch-ui_message_center_views_message_center_button_bar_h
	chromium-new/patches/patch-ui_message_center_views_message_center_view_cc
	chromium-new/patches/patch-ui_message_center_views_notification_view_cc
	chromium-new/patches/patch-ui_resources_ui_resources_grd
	chromium-new/patches/patch-ui_shell_dialogs_select_file_dialog_cc
	chromium-new/patches/patch-ui_touch_selection_ui_touch_selection_gyp
	chromium-new/patches/patch-ui_views_accessibility_native_view_accessibility_cc
	chromium-new/patches/patch-ui_views_bubble_bubble_delegate_cc
	chromium-new/patches/patch-ui_views_controls_button_label_button_cc
	chromium-new/patches/patch-ui_views_controls_combobox_combobox_cc
	chromium-new/patches/patch-ui_views_controls_scrollbar_base_scroll_bar_cc
	chromium-new/patches/patch-ui_views_controls_textfield_textfield_cc
	chromium-new/patches/patch-ui_views_controls_webview_webview_gyp
	chromium-new/patches/patch-ui_views_views_delegate_cc
	chromium-new/patches/patch-ui_views_views_delegate_h
	chromium-new/patches/patch-ui_views_views_gyp
	chromium-new/patches/patch-ui_views_views_switches_cc
	chromium-new/patches/patch-ui_views_window_custom_frame_view_cc
	chromium-new/patches/patch-ui_views_window_dialog_delegate_cc
	chromium-new/patches/patch-ui_webui_resources_js_cr_js
	chromium-new/patches/patch-ui_webui_resources_js_util_js
	chromium-new/patches/patch-v8_src_base_platform_platform-openbsd_cc
	chromium-new/patches/patch-v8_src_base_platform_platform-posix_cc
	chromium-new/patches/patch-v8_src_globals_h
	chromium-new/patches/patch-v8_src_log-utils_h

Log Message:
Update to 51.0.2704.106

* Based on FreeBSD  Ports' patches
* Take MAINTAINERship
* Some NetBSD specific functions are not writen yet
  (process metrics and iterator etc.)
* Some undefined references remain

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=cb8882e807e9d316350c98035ec5d0e9407c9a13

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffstat:
 chromium-new/DESCR                                 |    6 +-
 chromium-new/Makefile                              |  359 ++--
 chromium-new/PLIST                                 |  217 ---
 chromium-new/distinfo                              |  775 ++++----
 chromium-new/options.mk                            |   42 -
 chromium-new/patches/patch-apps_apps_gypi          |   11 -
 .../patch-apps_ui_views_app_window_frame_view_cc   |   12 -
 .../patch-ash_display_mirror_window_controller_cc  |   15 -
 chromium-new/patches/patch-base_atomicops_h        |   15 -
 chromium-new/patches/patch-base_base.gyp           |   25 +
 chromium-new/patches/patch-base_base.gypi          |   57 +
 chromium-new/patches/patch-base_base_gypi          |   22 -
 .../patches/patch-base_debug_debugger__posix.cc    |   62 +
 .../patches/patch-base_debug_debugger_posix_cc     |   62 -
 .../patch-base_debug_stack__trace__posix.cc        |   23 +
 .../patches/patch-base_debug_stack_trace_h         |   11 -
 .../patches/patch-base_debug_stack_trace_posix_cc  |   30 -
 ...patch-base_files_file__path__watcher__kqueue.cc |   19 +
 .../patch-base_files_file__path__watcher__kqueue.h |   17 +
 chromium-new/patches/patch-base_i18n_icu__util.cc  |   15 +
 chromium-new/patches/patch-base_i18n_icu__util.h   |   15 +
 .../patch-base_message_loop_message_loop_cc        |   12 -
 ...patch-base_posix_unix__domain__socket__linux.cc |   46 +
 ..._posix_unix__domain__socket__linux__unittest.cc |   20 +
 .../patch-base_posix_unix_domain_socket_linux_cc   |   38 -
 .../patches/patch-base_process_internal__linux.h   |   13 +
 chromium-new/patches/patch-base_process_launch.cc  |   18 +
 chromium-new/patches/patch-base_process_launch.h   |   22 +
 .../patches/patch-base_process_launch__posix.cc    |   13 +
 chromium-new/patches/patch-base_process_launch_h   |   12 -
 chromium-new/patches/patch-base_process_memory.cc  |   50 +
 chromium-new/patches/patch-base_process_memory.h   |   12 +
 .../patches/patch-base_process_memory__stubs.cc    |   20 +
 .../patches/patch-base_process_memory__unittest.cc |   25 +
 chromium-new/patches/patch-base_process_memory_cc  |   12 -
 .../patch-base_process_process__info__linux.cc     |   71 +
 .../patches/patch-base_process_process__iterator.h |   23 +
 ...atch-base_process_process__iterator__freebsd.cc |   38 +
 ...patch-base_process_process__iterator__netbsd.cc |  151 ++
 .../patches/patch-base_process_process__metrics.h  |   36 +
 ...patch-base_process_process__metrics__freebsd.cc |   38 +
 .../patch-base_process_process__metrics__netbsd.cc |  173 ++
 .../patch-base_process_process__metrics__posix.cc  |   13 +
 .../patches/patch-base_process_process__posix.cc   |  109 ++
 .../patch-base_process_process_handle_openbsd_cc   |   92 -
 .../patch-base_process_process_iterator_openbsd_cc |   13 -
 .../patches/patch-base_process_process_metrics_h   |   12 -
 .../patch-base_process_process_metrics_openbsd_cc  |  130 --
 .../patches/patch-base_process_process_posix_cc    |   64 -
 .../patches/patch-base_security__unittest.cc       |   13 +
 .../patches/patch-base_strings_safe__sprintf.cc    |   18 +
 .../patches/patch-base_strings_safe_sprintf_cc     |   12 -
 .../patches/patch-base_sys__info__freebsd.cc       |   69 +
 .../patches/patch-base_sys__info__netbsd.cc        |   83 +
 .../patches/patch-base_sys__info__posix.cc         |   13 +
 .../patches/patch-base_sys_info_openbsd_cc         |   29 -
 chromium-new/patches/patch-base_sys_info_posix_cc  |   21 -
 .../patch-base_test_launcher_test__launcher.cc     |   15 +
 ...patch-base_threading_platform__thread__linux.cc |   23 +
 ...patch-base_threading_platform__thread__posix.cc |   13 +
 .../patch-base_threading_platform_thread_linux_cc  |   22 -
 ...atch-base_trace__event_process__memory__dump.cc |   13 +
 ...patch-base_trace__event_process__memory__dump.h |   13 +
 .../patch-base_trace_event_process_memory_dump_h   |   12 -
 chromium-new/patches/patch-build_all_gyp           |   11 -
 chromium-new/patches/patch-build_build__config.h   |   31 +
 chromium-new/patches/patch-build_common.gypi       |  142 ++
 chromium-new/patches/patch-build_common_gypi       |  106 -
 .../patches/patch-build_filename__rules.gypi       |   22 +
 .../patches/patch-build_filename_rules_gypi        |   12 -
 chromium-new/patches/patch-build_linux_system.gyp  |   18 +
 .../patches/patch-build_linux_unbundle_libwebp.gyp |   19 +
 ...patch-cc_layers_scrollbar__layer__impl__base.cc |   15 +
 .../patches/patch-cc_trees_property__tree.cc       |   22 +
 .../patch-chrome_app_chrome__main__delegate.cc     |   67 +
 .../patch-chrome_app_chrome__main__delegate.h      |   13 +
 .../patch-chrome_app_chrome_main_delegate_cc       |   84 -
 .../patch-chrome_app_chrome_main_delegate_h        |   12 -
 .../patches/patch-chrome_app_chromium__strings.grd |   13 +
 .../patches/patch-chrome_app_chromium_strings_grd  |   12 -
 .../patch-chrome_app_generated__resources.grd      |   47 +
 .../patch-chrome_app_google_chrome_strings_grd     |   12 -
 ...patch-chrome_app_resources_locale__settings.grd |   13 +
 .../patch-chrome_app_resources_locale_settings_grd |   12 -
 .../patch-chrome_app_theme_theme_resources_grd     |   12 -
 .../patches/patch-chrome_browser_about__flags.cc   |   22 +
 .../patches/patch-chrome_browser_about_flags_cc    |   21 -
 ...atch-chrome_browser_after_startup_task_utils_cc |   12 -
 .../patch-chrome_browser_browser__resources.grd    |   13 +
 .../patch-chrome_browser_browser_resources_grd     |   12 -
 .../patch-chrome_browser_chrome__browser__main.cc  |   27 +
 ...-chrome_browser_chrome__browser__main__linux.cc |   29 +
 ...-chrome_browser_chrome__browser__main__posix.cc |   26 +
 ...ome_browser_chrome__content__browser__client.cc |   76 +
 ...rome_browser_chrome__content__browser__client.h |   13 +
 .../patch-chrome_browser_chrome_browser_main_cc    |   30 -
 ...tch-chrome_browser_chrome_browser_main_linux_cc |   28 -
 ...tch-chrome_browser_chrome_browser_main_posix_cc |   23 -
 ...chrome_browser_chrome_content_browser_client_cc |   57 -
 ...-chrome_browser_chrome_content_browser_client_h |   12 -
 ...er_custom_handlers_protocol_handler_registry_cc |   12 -
 .../patches/patch-chrome_browser_defaults.cc       |   13 +
 .../patches/patch-chrome_browser_defaults_cc       |   12 -
 ...rome_browser_diagnostics_diagnostics__writer.cc |   13 +
 ...hrome_browser_diagnostics_diagnostics__writer.h |   13 +
 ...download_chrome__download__manager__delegate.cc |   22 +
 ...er_download_chrome_download_manager_delegate_cc |   12 -
 ...h-chrome_browser_download_download__commands.cc |   40 +
 ...ch-chrome_browser_download_download__commands.h |   14 +
 ...atch-chrome_browser_download_download__prefs.cc |   67 +
 ...patch-chrome_browser_download_download__prefs.h |   22 +
 ...atch-chrome_browser_download_download__query.cc |   16 +
 ...wser_download_download__shelf__context__menu.cc |   13 +
 ...ch-chrome_browser_download_download_commands_cc |   39 -
 ...tch-chrome_browser_download_download_commands_h |   12 -
 ...patch-chrome_browser_download_download_prefs_cc |   66 -
 .../patch-chrome_browser_download_download_prefs_h |   21 -
 ...browser_download_download_shelf_context_menu_cc |   12 -
 ...ome_browser_download_download_status_updater_cc |   21 -
 ...owser_extensions_activity__log_activity__log.cc |   16 +
 ..._writer__private_image__writer__private__api.cc |   17 +
 ...mage_writer_private_image_writer_private_api_cc |   16 -
 ...ser_extensions_api_input__ime_input__ime__api.h |   13 +
 ...er_extensions_api_messaging_message__service.cc |   22 +
 ...ser_extensions_api_messaging_message_service_cc |   21 -
 ...pi_music__manager__private_device__id__linux.cc |   68 +
 ...ns_api_music_manager_private_device_id_linux_cc |   67 -
 ...e_browser_extensions_api_omnibox_omnibox_api_cc |   12 -
 ...hrome_browser_extensions_bookmark_app_helper_cc |   12 -
 ..._browser__context__keyed__service__factories.cc |   22 +
 ..._browser_extensions_external__provider__impl.cc |   22 +
 ...ome_browser_extensions_window__open__apitest.cc |   13 +
 ...e_browser_first_run_first_run_internal_posix_cc |   12 -
 ...patch-chrome_browser_gpu_gl__string__manager.cc |   13 +
 .../patch-chrome_browser_gpu_gl_string_manager_cc  |   12 -
 ...tch-chrome_browser_gpu_gpu__feature__checker.cc |   13 +
 ...patch-chrome_browser_gpu_gpu_feature_checker_cc |   12 -
 ...ser_interstitials_chrome__controller__client.cc |   22 +
 ..._galleries_fileapi_mtp__device__map__service.cc |   17 +
 ...dia__galleries_media__file__system__registry.cc |   16 +
 ...dia_galleries_fileapi_mtp_device_map_service_cc |   16 -
 ...r_media_galleries_media_file_system_registry_cc |   17 -
 ..._browser_media_galleries_media_folder_finder_cc |   16 -
 ...h-chrome_browser_media_webrtc__log__uploader.cc |   13 +
 .../patch-chrome_browser_memory__details.cc        |   22 +
 .../patches/patch-chrome_browser_memory_details_cc |   30 -
 ...chrome__browser__main__extra__parts__metrics.cc |   20 +
 ...rics_chrome_browser_main_extra_parts_metrics_cc |   15 -
 ...tch-chrome_browser_net_async_dns_field_trial_cc |   12 -
 ...tions_message__center__notification__manager.cc |   13 +
 ...ications_message_center_notification_manager_cc |   12 -
 ...d__manager_chrome__password__manager__client.cc |   16 +
 .../patch-chrome_browser_platform_util_linux_cc    |   13 -
 ...e_browser_plugins_plugins__resource__service.cc |   13 +
 ...me_browser_policy_policy__prefs__browsertest.cc |   13 +
 ...tch-chrome_browser_process__singleton__posix.cc |   36 +
 ...patch-chrome_browser_process_singleton_posix_cc |   35 -
 ...h-chrome_browser_renderer__preferences__util.cc |   40 +
 ...tch-chrome_browser_renderer_preferences_util_cc |   39 -
 ...er_resources_plugin_metadata_plugins_linux_json |   32 -
 ..._incident__reporting_incident__handler__util.cc |   17 +
 ...ncident_reporting_incident_reporting_service_cc |   12 -
 ...ome_browser_search_local__files__ntp__source.cc |   18 +
 ...ch-chrome_browser_speech_tts_controller_impl_cc |   17 -
 ...h-chrome_browser_ssl_bad_clock_blocking_page_cc |   12 -
 ...tch-chrome_browser_sync_chrome__sync__client.cc |   13 +
 ...er_sync_profile_sync_components_factory_impl_cc |   12 -
 ...tch-chrome_browser_task_manager_task_manager_cc |   12 -
 ...ome_browser_tracing_crash__service__uploader.cc |   15 +
 ...hrome_browser_tracing_crash_service_uploader_cc |   12 -
 ...-chrome_browser_ui_app_list_app_list_service_cc |   12 -
 ...e_browser_ui_ash_system_tray_delegate_common_cc |   12 -
 ...ui_aura_chrome_browser_main_extra_parts_aura_cc |   39 -
 ..._ui_aura_chrome_browser_main_extra_parts_aura_h |   12 -
 ...rome_browser_ui_browser__command__controller.cc |   40 +
 ...patch-chrome_browser_ui_browser__view__prefs.cc |   22 +
 ...chrome_browser_ui_browser_command_controller_cc |   39 -
 .../patch-chrome_browser_ui_browser_view_prefs_cc  |   21 -
 ..._exclusive__access_exclusive__access__bubble.cc |   13 +
 ..._ui_exclusive_access_exclusive_access_bubble_cc |   12 -
 ...ui_input__method_input__method__engine__base.cc |   13 +
 ...atch-chrome_browser_ui_panels_panel__manager.cc |   13 +
 ...patch-chrome_browser_ui_panels_panel_manager_cc |   12 -
 ...h-chrome_browser_ui_startup_bad_flags_prompt_cc |   12 -
 ...browser_ui_startup_startup__browser__creator.cc |   13 +
 ...e_browser_ui_startup_startup_browser_creator_cc |   14 -
 ...h-chrome_browser_ui_toolbar_app__menu__model.cc |   13 +
 ...tch-chrome_browser_ui_toolbar_app_menu_model_cc |   12 -
 ...ch-chrome_browser_ui_views_accelerator_table_cc |   30 -
 ...owser_ui_views_app_list_linux_app_list_linux_cc |   12 -
 ...pps_chrome__native__app__window__views__aura.cc |   22 +
 ...ews_apps_chrome_native_app_window_views_aura_cc |   21 -
 ...iews_ash_chrome_browser_main_extra_parts_ash_cc |   12 -
 ...ome_browser_ui_views_chrome__views__delegate.cc |   31 +
 ...rome_browser_ui_views_chrome__views__delegate.h |   22 +
 ...hrome_browser_ui_views_chrome_views_delegate_cc |   30 -
 ...chrome_browser_ui_views_chrome_views_delegate_h |   21 -
 ...owser_ui_views_exclusive_access_bubble_views_cc |   12 -
 ...h-chrome_browser_ui_views_first__run__dialog.cc |   22 +
 ...tch-chrome_browser_ui_views_first_run_dialog_cc |   20 -
 ...chrome_browser_ui_views_frame_browser__frame.cc |   22 +
 ...e_browser_ui_views_frame_browser__root__view.cc |   17 +
 ...-chrome_browser_ui_views_frame_browser__view.cc |   22 +
 ...-chrome_browser_ui_views_frame_browser_frame_cc |   21 -
 ..._ui_views_frame_opaque__browser__frame__view.cc |   22 +
 ...s_frame_opaque__browser__frame__view__layout.cc |   13 +
 ...ue__browser__frame__view__platform__specific.cc |   13 +
 ...ser_ui_views_frame_opaque_browser_frame_view_cc |   21 -
 ...views_frame_opaque_browser_frame_view_layout_cc |   12 -
 ..._opaque_browser_frame_view_platform_specific_cc |   12 -
 ..._ui_views_frame_system__menu__model__builder.cc |   22 +
 ...ser_ui_views_frame_system_menu_model_builder_cc |   21 -
 ...message__center_message__center__frame__view.cc |   13 +
 ...ews_message_center_message_center_frame_view_cc |   12 -
 ...e_browser_ui_views_panels_panel__frame__view.cc |   13 +
 ...ome_browser_ui_views_panels_panel_frame_view_cc |   12 -
 ..._browser_ui_views_tabs_tab__drag__controller.cc |   31 +
 ...atch-chrome_browser_ui_views_tabs_tab__strip.cc |   13 +
 ...me_browser_ui_views_tabs_tab_drag_controller_cc |   30 -
 ...patch-chrome_browser_ui_views_tabs_tab_strip_cc |   12 -
 ...ch-chrome_browser_ui_views_task_manager_view_cc |   12 -
 .../patch-chrome_browser_ui_webui_about__ui.cc     |   56 +
 .../patch-chrome_browser_ui_webui_about_ui_cc      |   55 -
 ...i_webui_chrome__web__ui__controller__factory.cc |   13 +
 ...er_ui_webui_chrome_web_ui_controller_factory_cc |   12 -
 ..._webui_extensions_extension__loader__handler.cc |   16 +
 ...r_ui_webui_options_browser__options__handler.cc |   47 +
 ...er_ui_webui_options_browser__options__handler.h |   13 +
 ...ser_ui_webui_options_browser_options_handler_cc |   39 -
 ...wser_ui_webui_options_browser_options_handler_h |   13 -
 ...ch-chrome_browser_web__applications_web__app.cc |   13 +
 ...tch-chrome_browser_web__applications_web__app.h |   13 +
 ...atch-chrome_browser_web_applications_web_app_cc |   21 -
 ...patch-chrome_browser_web_applications_web_app_h |   12 -
 .../patches/patch-chrome_chrome__browser.gypi      |   53 +
 .../patch-chrome_chrome__browser__extensions.gypi  |   25 +
 .../patches/patch-chrome_chrome__browser__ui.gypi  |   22 +
 .../patches/patch-chrome_chrome__common.gypi       |   24 +
 chromium-new/patches/patch-chrome_chrome__exe.gypi |   13 +
 .../patch-chrome_chrome_browser_extensions_gypi    |   24 -
 .../patches/patch-chrome_chrome_browser_gypi       |   43 -
 .../patches/patch-chrome_chrome_browser_ui_gypi    |   34 -
 .../patches/patch-chrome_chrome_common_gypi        |   23 -
 chromium-new/patches/patch-chrome_chrome_exe_gypi  |   12 -
 .../patches/patch-chrome_chrome_utility_gypi       |   11 -
 .../patch-chrome_common_channel__info__posix.cc    |   13 +
 .../patches/patch-chrome_common_chrome__paths.cc   |   55 +
 .../patches/patch-chrome_common_chrome__paths.h    |   31 +
 .../patch-chrome_common_chrome__paths__internal.h  |   13 +
 .../patch-chrome_common_chrome__switches.cc        |   13 +
 .../patches/patch-chrome_common_chrome__switches.h |   13 +
 .../patches/patch-chrome_common_chrome_paths_cc    |   30 -
 .../patches/patch-chrome_common_chrome_paths_h     |   39 -
 .../patch-chrome_common_chrome_paths_internal_h    |   12 -
 .../patches/patch-chrome_common_chrome_switches_cc |   12 -
 .../patches/patch-chrome_common_chrome_switches_h  |   12 -
 ...me_common_component__flash__hint__file__linux.h |   16 +
 ...patch-chrome_common_extensions_api_schemas.gypi |   13 +
 ...patch-chrome_common_extensions_api_schemas_gypi |   15 -
 .../patch-chrome_common_extensions_command.cc      |   13 +
 .../patch-chrome_common_extensions_command_cc      |   12 -
 .../patches/patch-chrome_common_pref__names.cc     |   22 +
 .../patches/patch-chrome_common_pref__names.h      |   22 +
 .../patches/patch-chrome_common_pref_names_cc      |   21 -
 .../patches/patch-chrome_common_pref_names_h       |   21 -
 .../patches/patch-chrome_common_url_constants_cc   |   21 -
 .../patches/patch-chrome_common_url_constants_h    |   21 -
 ...mmon_variations_fieldtrial__testing__config.gyp |   13 +
 ...common_variations_fieldtrial_testing_config_gyp |   12 -
 .../patches/patch-chrome_policy_templates_gypi     |   12 -
 ...derer_pepper_pepper__flash__font__file__host.cc |   40 +
 ...nderer_pepper_pepper__flash__font__file__host.h |   22 +
 .../patch-chrome_renderer_resources_neterror_js    |   12 -
 ...-chrome_test_base_in__process__browser__test.cc |   15 +
 ...ch-chrome_test_base_testing__browser__process.h |   15 +
 ...rome_test_chromedriver_chrome_chrome__finder.cc |   22 +
 ...ity_media_galleries_image_metadata_extractor_cc |   12 -
 ...h-chromecast_browser_cast_browser_main_parts_cc |   30 -
 .../patch-components_audio_modem_modem_impl_cc     |   12 -
 ...t_renderer_password__form__conversion__utils.cc |   16 +
 ...onents_autofill_core_browser_form__structure.cc |   17 +
 ...omponents_cookie__config_cookie__store__util.cc |   26 +
 ...h-components_cookie_config_cookie_store_util_cc |   12 -
 ...omponents_dom__distiller_core_page__features.cc |   17 +
 .../patch-components_drive_drive__api__util.cc     |   16 +
 .../patch-components_feedback_anonymizer__tool.cc  |   16 +
 .../patch-components_flags__ui_flags__state.cc     |   13 +
 ...h-components_html_viewer_blink_settings_impl_cc |   21 -
 ...ponents_json__schema_json__schema__validator.cc |   16 +
 ...ed__service_core_dependency__graph__unittest.cc |   16 +
 ...ents_metrics_drive__metrics__provider__linux.cc |   18 +
 ...ponents_metrics_drive_metrics_provider_linux_cc |   17 -
 chromium-new/patches/patch-components_metrics_gypi |   11 -
 ...trics_system__memory__stats__recorder__linux.cc |   20 +
 ...patch-components_neterror_resources_neterror.js |   13 +
 ...mponents_omnibox_browser_omnibox_field_trial_cc |   12 -
 ...ord__manager_core_browser_import_csv__reader.cc |   16 +
 ...ponents_plugins_renderer_plugin__placeholder.cc |   16 +
 .../patch-components_policy_core_common_schema.cc  |   16 +
 ...ponents_policy_resources_policy__templates.json |   31 +
 ...mponents_policy_resources_policy_templates_json |   30 -
 ...onents_policy_tools_generate__policy__source.py |   13 +
 ...mponents_policy_tools_generate_policy_source_py |   12 -
 ...nents_printing_renderer_print_web_view_helper_h |   12 -
 .../patches/patch-components_storage__monitor.gypi |   31 +
 ...components_storage__monitor_storage__monitor.cc |   20 +
 ...s_storage__monitor_storage__monitor__freebsd.cc |  106 +
 ...ts_storage__monitor_storage__monitor__freebsd.h |   51 +
 .../patches/patch-components_storage_monitor_gypi  |   26 -
 ...ents_storage_monitor_storage_monitor_openbsd_cc |   59 -
 ...nents_storage_monitor_storage_monitor_openbsd_h |   51 -
 ...ponents_update__client_update__query__params.cc |   15 +
 ...-components_url__matcher_regex__set__matcher.cc |   18 +
 ...omponents_url__matcher_url__matcher__factory.cc |   16 +
 ...omponents_webcrypto_algorithms_test__helpers.cc |   16 +
 .../patch-content_app_content__main__runner.cc     |   44 +
 .../patch-content_app_content_main_runner_cc       |   47 -
 ..._browser_accessibility_browser__accessibility.h |   22 +
 ...accessibility_browser__accessibility__manager.h |   22 +
 ...t_browser_accessibility_browser_accessibility_h |   30 -
 ...r_accessibility_browser_accessibility_manager_h |   21 -
 .../patch-content_browser_browser__main__loop.cc   |   22 +
 ...t_browser_browser__shutdown__profile__dumper.cc |   13 +
 .../patch-content_browser_browser_main_loop_cc     |   49 -
 ...tch-content_browser_child__process__launcher.cc |   40 +
 ...patch-content_browser_child_process_launcher_cc |   51 -
 ...ntent_browser_devtools_protocol_color_picker_cc |   12 -
 .../patch-content_browser_download_base__file.cc   |   14 +
 ...h-content_browser_download_base__file__linux.cc |   14 +
 .../patch-content_browser_download_base_file_cc    |   12 -
 ...tch-content_browser_download_base_file_linux_cc |   13 -
 ...tch-content_browser_gamepad_gamepad_provider_cc |   12 -
 ...owser_geolocation_location__arbitrator__impl.cc |   13 +
 ...browser_geolocation_location_arbitrator_impl_cc |   12 -
 ...er_geolocation_wifi__data__provider__freebsd.cc |  206 ++
 ...ser_geolocation_wifi__data__provider__freebsd.h |   35 +
 ...rowser_gpu_gpu__data__manager__impl__private.cc |   38 +
 ...patch-content_browser_gpu_gpu__internals__ui.cc |   31 +
 ...nt_browser_gpu_gpu_data_manager_impl_private_cc |   12 -
 .../patch-content_browser_gpu_gpu_internals_ui_cc  |   30 -
 ...wser_indexed__db_indexed__db__backing__store.cc |   13 +
 ...tch-content_browser_power_usage_monitor_impl_cc |   12 -
 ...content_browser_ppapi__plugin__process__host.cc |   31 +
 ...r_renderer__host_render__process__host__impl.cc |   31 +
 ...derer__host_render__widget__host__view__aura.cc |   40 +
 ...wser_renderer_host_p2p_socket_dispatcher_host_h |   24 -
 ...rowser_renderer_host_render_widget_host_impl_cc |   12 -
 ...r_renderer_host_render_widget_host_view_aura_cc |   30 -
 .../patch-content_browser_time__zone__monitor.cc   |   13 +
 ...h-content_browser_time__zone__monitor__linux.cc |   24 +
 .../patch-content_browser_time_zone_monitor_cc     |   12 -
 ...content_browser_utility__process__host__impl.cc |   58 +
 ...nt_browser_web__contents_web__contents__impl.cc |   13 +
 .../patch-content_common_gpu_gpu_memory_manager_h  |   12 -
 ...ndbox__linux_sandbox__debug__handling__linux.cc |   31 +
 .../patch-content_common_sandbox_init_openbsd_cc   |   80 -
 .../patch-content_common_sandbox_init_openbsd_h    |   32 -
 ...ch-content_common_set__process__title__linux.cc |   21 +
 ...tch-content_common_set__process__title__linux.h |   22 +
 ...patch-content_common_set_process_title_linux_cc |   20 -
 .../patch-content_common_set_process_title_linux_h |   21 -
 .../patches/patch-content_content__browser.gypi    |   84 +
 .../patches/patch-content_content__common.gypi     |   26 +
 .../patches/patch-content_content__tests.gypi      |   20 +
 .../patches/patch-content_content_browser_gypi     |   67 -
 .../patches/patch-content_content_common_gypi      |   47 -
 .../patches/patch-content_content_renderer_gypi    |   11 -
 .../patch-content_gpu_gpu__child__thread.cc        |   20 +
 .../patches/patch-content_gpu_gpu__main.cc         |   47 +
 chromium-new/patches/patch-content_gpu_gpu_main_cc |  114 --
 ...patch-content_ppapi_plugin_ppapi_plugin_main_cc |   23 -
 ...ommon_child__process__sandbox__support__linux.h |   12 +
 ...atch-content_public_common_content__switches.cc |   13 +
 ...patch-content_public_common_content__switches.h |   13 +
 ...patch-content_public_common_content_switches_cc |   12 -
 .../patch-content_public_common_content_switches_h |   12 -
 ...atch-content_public_test_browser__test__base.cc |   15 +
 ...ent_renderer_devtools_v8__sampling__profiler.cc |   19 +
 ...ntent_renderer_devtools_v8_sampling_profiler_cc |   39 -
 ...ntent_renderer_media_webrtc__audio__capturer.cc |   15 +
 .../patch-content_renderer_render__thread__impl.cc |   13 +
 .../patch-content_renderer_render_thread_impl_cc   |   12 -
 ...ent_renderer_renderer__blink__platform__impl.cc |   58 +
 ...tent_renderer_renderer__blink__platform__impl.h |   13 +
 ...er_renderer__main__platform__delegate__linux.cc |   21 +
 .../patch-content_renderer_renderer_main_cc        |   47 -
 ...nderer_renderer_main_platform_delegate_linux_cc |   33 -
 ...nderer_webscrollbarbehavior__impl__gtkoraura.cc |   22 +
 ...renderer_webscrollbarbehavior_impl_gtkoraura_cc |   21 -
 ...ontent_shell_browser_shell__browser__context.cc |   22 +
 ...nt_shell_browser_shell__browser__main__parts.cc |   22 +
 .../patches/patch-content_utility_utility_main_cc  |   20 -
 chromium-new/patches/patch-crypto_nss__util.cc     |   39 +
 chromium-new/patches/patch-dbus_property_cc        |   29 -
 .../patches/patch-device_battery_battery_gyp       |   12 -
 chromium-new/patches/patch-device_hid_hid.gyp      |   23 +
 chromium-new/patches/patch-device_hid_hid_gyp      |   22 -
 .../patches/patch-device_serial_serial.gyp         |   17 +
 ...tch-device_serial_serial__io__handler__posix.cc |   13 +
 .../patch-device_serial_serial__service__impl.cc   |   19 +
 .../patches/patch-device_serial_serial_gyp         |   16 -
 .../patch-device_serial_serial_io_handler_posix_cc |   12 -
 .../patch-device_serial_serial_service_impl_cc     |   18 -
 chromium-new/patches/patch-device_usb_usb.gyp      |   21 +
 .../patches/patch-device_usb_usb__context.cc       |   28 +
 .../patch-device_usb_usb__context__unittest.cc     |   16 +
 .../patch-device_usb_usb__device__handle__impl.cc  |   17 +
 .../patch-device_usb_usb__device__handle__impl.h   |   17 +
 .../patches/patch-device_usb_usb__device__impl.cc  |   16 +
 .../patches/patch-device_usb_usb__error.cc         |   16 +
 .../patches/patch-device_usb_usb__service__impl.cc |   62 +
 .../patches/patch-device_usb_usb__service__impl.h  |   42 +
 ...i_declarative__webrequest_webrequest__action.cc |   16 +
 ...ch-extensions_browser_api_serial_serial__api.cc |   18 +
 ...tch-extensions_browser_api_serial_serial_api_cc |   17 -
 ..._browser_api_web__request_form__data__parser.cc |   16 +
 .../patches/patch-extensions_common_image__util.cc |   16 +
 .../patch-extensions_common_stack__frame.cc        |   16 +
 ...tch-gpu_command__buffer_service_error__state.cc |   32 +
 ...gpu_command__buffer_service_program__manager.cc |   16 +
 .../patches/patch-gpu_config_gpu__control__list.cc |   16 +
 ...atch-gpu_config_gpu__control__list__unittest.cc |   14 +
 .../patch-gpu_config_gpu__info__collector.cc       |   15 +
 .../patches/patch-gpu_config_gpu__test__config.cc  |   32 +
 .../patch-gpu_config_gpu_info_collector_linux_cc   |   14 -
 .../patch-gpu_config_gpu_info_collector_linux_h    |   18 -
 .../patch-gpu_config_gpu_info_collector_x11_cc     |   64 -
 ...gles2_conform_support_gles2_conform_support_gyp |   12 -
 chromium-new/patches/patch-gpu_gpu__config.gypi    |   25 +
 .../patches/patch-gpu_gpu__ipc__service.gypi       |   13 +
 chromium-new/patches/patch-gpu_gpu_config_gypi     |   18 -
 chromium-new/patches/patch-gpu_tools_tools_gyp     |   20 -
 .../patches/patch-ipc_ipc__message__utils.cc       |   13 +
 .../patches/patch-ipc_ipc__message__utils.h        |   13 +
 .../patch-ipc_unix__domain__socket__util.cc        |   13 +
 .../patch-media_audio_alsa_audio__manager__alsa.cc |   56 +
 .../patches/patch-media_audio_audio__manager.cc    |   31 +
 .../patches/patch-media_audio_audio__manager.h     |   13 +
 .../patch-media_audio_audio__output__device.cc     |   13 +
 ...atch-media_audio_audio__output__stream__sink.cc |   13 +
 .../patch-media_audio_audio_input_controller_cc    |   12 -
 .../patches/patch-media_audio_audio_manager_cc     |   30 -
 .../patches/patch-media_audio_audio_manager_h      |   12 -
 .../patch-media_base_audio__renderer__mixer.cc     |   13 +
 ...tch-media_base_audio__renderer__mixer__input.cc |   13 +
 .../patches/patch-media_base_audio__splicer.cc     |   22 +
 ..._video_fake__video__capture__device__factory.cc |   13 +
 ...ture_video_fake_video_capture_device_factory_cc |   12 -
 ..._video_file__video__capture__device__factory.cc |   13 +
 ...ture_video_file_video_capture_device_factory_cc |   12 -
 ..._capture_video_linux_v4l2__capture__delegate.cc |   20 +
 ...a_capture_video_linux_v4l2__capture__delegate.h |   13 +
 ...linux_video__capture__device__factory__linux.cc |   47 +
 ...re_video_linux_video__capture__device__linux.cc |   88 +
 ...h-media_capture_video_video__capture__device.cc |   33 +
 ...ch-media_capture_video_video__capture__device.h |   40 +
 ...apture_video_video__capture__device__factory.cc |   23 +
 ...tch-media_capture_video_video_capture_device_cc |   30 -
 ...a_capture_video_video_capture_device_factory_cc |   22 -
 ...atch-media_capture_video_video_capture_device_h |   39 -
 .../patches/patch-media_filters_audio__clock.cc    |   13 +
 .../patches/patch-media_filters_audio__clock.h     |   18 +
 ...tch-media_filters_decrypting__audio__decoder.cc |   13 +
 .../patch-media_filters_file__data__source.h       |   12 +
 .../patches/patch-media_filters_vp9__parser.h      |   12 +
 ...tch-media_formats_common_offset__byte__queue.cc |   22 +
 ...atch-media_formats_common_offset__byte__queue.h |   24 +
 .../patch-media_formats_mp2t_es__parser__adts.cc   |   28 +
 ...ch-media_formats_mp2t_es__parser__mpeg1audio.cc |   28 +
 chromium-new/patches/patch-media_media.gyp         |   28 +
 chromium-new/patches/patch-media_media_gyp         |   71 -
 ..._shell_public_cpp_initialize__base__and__icu.cc |   18 +
 .../patches/patch-mojo_shell_runner_init.cc        |   21 +
 .../patches/patch-native__client_build_common.gypi |   13 +
 ...native__client_src_shared_platform_platform.gyp |   13 +
 .../patch-native_client_build_compiler_version_py  |   12 -
 .../patch-net_base_address__tracker__linux.cc      |   96 +
 .../patch-net_base_address__tracker__linux.h       |   30 +
 ...h-net_base_address__tracker__linux__unittest.cc |   16 +
 .../patches/patch-net_base_address_tracker_linux_h |   13 -
 .../patches/patch-net_base_mime__util__unittest.cc |   13 +
 chromium-new/patches/patch-net_base_net_util_cc    |   11 -
 .../patch-net_base_network__change__notifier.cc    |   12 +
 .../patch-net_base_network__interfaces__linux.cc   |  107 +
 .../patch-net_base_network__interfaces__posix.cc   |   20 +
 .../patch-net_base_network_change_notifier_cc      |   11 -
 .../patch-net_base_network_interfaces_posix_cc     |   21 -
 .../patch-net_disk_cache_blockfile_disk_format_h   |   13 -
 .../patch-net_dns_address__sorter__posix.cc        |   14 +
 .../patches/patch-net_dns_address_sorter_posix_cc  |   11 -
 ...et_dns_dns__config__service__posix__unittest.cc |   13 +
 .../patches/patch-net_dns_dns__reloader.cc         |   15 +
 chromium-new/patches/patch-net_dns_dns__session.cc |   13 +
 .../patches/patch-net_dns_host_resolver_proc_cc    |   14 -
 .../patch-net_http_http__auth__gssapi__posix.cc    |   15 +
 .../patches/patch-net_http_http_network_session_cc |   13 -
 chromium-new/patches/patch-net_net.gyp             |   25 +
 chromium-new/patches/patch-net_net.gypi            |   24 +
 chromium-new/patches/patch-net_net__common.gypi    |   16 +
 chromium-new/patches/patch-net_net_common_gypi     |   11 -
 chromium-new/patches/patch-net_net_gypi            |   20 -
 ...atch-net_proxy_proxy__config__service__linux.cc |  147 ++
 .../patches/patch-net_proxy_proxy__service.cc      |   22 +
 .../patch-net_proxy_proxy_config_service_linux_cc  |   40 -
 .../patches/patch-net_proxy_proxy_service_cc       |   21 -
 ...atch-net_quic_congestion__control_rtt__stats.cc |   31 +
 .../patch-net_socket_socks5__client__socket.cc     |   15 +
 .../patch-net_socket_socks5_client_socket_cc       |   13 -
 ...ch-net_tools_get_server_time_get_server_time_cc |   21 -
 .../patches/patch-net_udp_udp__socket__posix.cc    |   31 +
 .../patches/patch-net_udp_udp__socket__unittest.cc |   13 +
 .../patches/patch-net_udp_udp_socket_posix_cc      |   30 -
 ...-net_url_request_url_request_context_builder_cc |   12 -
 .../patches/patch-pdf_pdfium_pdfium__engine.cc     |   58 +
 .../patches/patch-pdf_pdfium_pdfium_engine_cc      |   48 -
 .../patch-ppapi_proxy_file__io__resource.cc        |   50 +
 ...ed__impl_private_net__address__private__impl.cc |   18 +
 ...shared_impl_private_net_address_private_impl_cc |   15 -
 .../patches/patch-printing_backend_cups_helper_cc  |   15 -
 chromium-new/patches/patch-printing_printing.gyp   |   13 +
 chromium-new/patches/patch-printing_printing_gyp   |   25 -
 .../patches/patch-remoting_remoting__host.gypi     |   31 +
 .../patches/patch-remoting_remoting_all_gyp        |   11 -
 .../patches/patch-remoting_remoting_host_gypi      |   30 -
 .../patch-skia_ext_SkMemory__new__handler.cpp      |   22 +
 .../patch-skia_ext_SkMemory_new_handler_cpp        |   12 -
 .../patches/patch-skia_ext_platform__canvas.h      |   13 +
 chromium-new/patches/patch-skia_skia__chrome.gypi  |   16 +
 chromium-new/patches/patch-skia_skia__common.gypi  |   13 +
 chromium-new/patches/patch-skia_skia_chrome_gypi   |   15 -
 chromium-new/patches/patch-skia_skia_common_gypi   |   12 -
 .../patches/patch-sync_util_get__session__name.cc  |   22 +
 .../patch-sync_util_get__session__name__linux.cc   |   16 +
 .../patches/patch-sync_util_get_session_name_cc    |   21 -
 .../patch-sync_util_get_session_name_linux_cc      |   15 -
 .../patches/patch-testing_gtest_src_gtest.cc       |   24 +
 .../patches/patch-testing_perf_perf__test.cc       |   17 +
 ...bKit_Source_bindings_core_v8_V8ScriptRunner.cpp |   13 +
 .../patch-third__party_WebKit_Source_core_core.gyp |   22 +
 ...WebKit_Source_modules_battery_battery__status.h |   13 +
 ...arty_WebKit_Source_platform_blink__platform.gyp |   44 +
 ...arty_WebKit_Source_platform_fonts_FontCache.cpp |   20 +
 ..._party_WebKit_Source_platform_fonts_FontCache.h |   13 +
 ...bKit_Source_platform_fonts_FontPlatformData.cpp |   13 +
 ...it_Source_platform_fonts_skia_FontCacheSkia.cpp |   31 +
 ...d__party_WebKit_Source_platform_heap_GCInfo.cpp |   13 +
 ...WebKit_Source_platform_heap_StackFrameDepth.cpp |   33 +
 ...platform_image-decoders_png_PNGImageDecoder.cpp |   13 +
 ...party_WebKit_Source_platform_text_Character.cpp |   24 +
 ...latform_text_CharacterPropertyDataGenerator.cpp |   19 +
 .../patch-third__party_WebKit_Source_web_web.gyp   |   13 +
 ...patch-third__party_WebKit_Source_wtf_ByteSwap.h |   20 +
 .../patch-third__party_WebKit_Source_wtf_wtf.gyp   |   13 +
 ...hird__party_boringssl_src_crypto_bio_internal.h |   15 +
 ...ringssl_src_crypto_cipher_e__chacha20poly1305.c |   40 +
 ...ch-third__party_boringssl_src_crypto_internal.h |   15 +
 ...y_boringssl_src_crypto_poly1305_poly1305__vec.c |   30 +
 ...d__party_boringssl_src_include_openssl_thread.h |   14 +
 ...on_src_google_cacheinvalidation_include_types.h |   13 +
 ..._party_ffmpeg_chromium_scripts_generate__gyp.py |   22 +
 .../patches/patch-third__party_ffmpeg_ffmpeg.gyp   |   20 +
 ...patch-third__party_ffmpeg_ffmpeg__generated.gni |  321 +++
 ...atch-third__party_ffmpeg_ffmpeg__generated.gypi |  397 ++++
 ...y_ffmpeg_libavutil_autorename__libavutil__cpu.c |   25 +
 .../patch-third__party_ffmpeg_libavutil_cpu.c      |   14 +
 .../patch-third__party_ffmpeg_libavutil_mem.c      |   13 +
 .../patches/patch-third__party_khronos_khronos.gyp |   12 +
 ...tch-third__party_leveldatabase_env__chromium.cc |   16 +
 .../patch-third__party_libXNVCtrl_libXNVCtrl.gyp   |   14 +
 .../patch-third__party_libjingle_libjingle.gyp     |   22 +
 ...st_cpp_src_phonenumbers_base_memory_singleton.h |   13 +
 ...pp_src_phonenumbers_base_synchronization_lock.h |   13 +
 ...ist_cpp_src_phonenumbers_base_thread__checker.h |   21 +
 ...-third__party_libphonenumber_libphonenumber.gyp |   12 +
 .../patches/patch-third__party_libpng_libpng.gyp   |  120 ++
 .../patch-third__party_libyuv_include_libyuv_row.h |   59 +
 ...ch-third__party_libyuv_source_mjpeg__decoder.cc |   12 +
 ...h-third__party_ots_include_opentype-sanitiser.h |   12 +
 ...patch-third__party_pdfium_build_standalone.gypi |   31 +
 ...d__party_pdfium_core_fxcrt_include_fx__system.h |   13 +
 ...__party_pdfium_fpdfsdk_javascript_JS__Value.cpp |   30 +
 ...rty_pdfium_fpdfsdk_javascript_PublicMethods.cpp |  108 ++
 .../patches/patch-third__party_pdfium_pdfium.gyp   |   13 +
 ...third__party_pdfium_third__party_base_logging.h |   13 +
 .../patches/patch-third__party_sfntly_sfntly.gyp   |   12 +
 ...-third__party_skia_src_gpu_GrAutoLocaleSetter.h |   13 +
 .../patches/patch-third__party_sqlite_sqlite.gyp   |   13 +
 .../patches/patch-third__party_usrsctp_usrsctp.gyp |   19 +
 .../patch-third__party_webrtc_base_httpcommon.cc   |   13 +
 ...h-third__party_webrtc_base_ifaddrs__converter.h |   13 +
 .../patch-third__party_webrtc_base_ipaddress.h     |   15 +
 .../patch-third__party_webrtc_base_linux.cc        |   19 +
 .../patches/patch-third__party_webrtc_base_linux.h |   20 +
 .../patch-third__party_webrtc_base_network.cc      |   31 +
 .../patch-third__party_webrtc_base_network.h       |   15 +
 ...hird__party_webrtc_base_physicalsocketserver.cc |   35 +
 ...ch-third__party_webrtc_base_platform__thread.cc |   50 +
 .../patch-third__party_webrtc_base_stringutils.h   |   19 +
 .../patch-third__party_webrtc_base_systeminfo.cc   |   42 +
 .../patch-third__party_webrtc_build_common.gypi    |   27 +
 ...h-third__party_webrtc_common__audio_wav__file.h |   12 +
 ...webrtc_modules_audio__device_audio__device.gypi |   22 +
 ..._modules_desktop__capture_desktop__capture.gypi |   16 +
 ...remote__bitrate__estimator_overuse__detector.cc |   12 +
 ..._rtp__rtcp_source_forward__error__correction.cc |   12 +
 ..._party_webrtc_modules_video__coding_receiver.cc |   15 +
 ...brtc_system__wrappers_source_atomic32__posix.cc |   16 +
 ...y_webrtc_voice__engine_voice__engine__defines.h |   13 +
 ...bKit_Source_bindings_core_v8_V8ScriptRunner_cpp |   12 -
 .../patch-third_party_WebKit_Source_core_core_gyp  |   35 -
 ...party_WebKit_Source_platform_blink_platform_gyp |   39 -
 ...WebKit_Source_platform_fonts_SimpleFontData_cpp |   30 -
 ...WebKit_Source_platform_heap_StackFrameDepth_cpp |   43 -
 ...rty_WebKit_Source_platform_heap_ThreadState_cpp |   12 -
 ...party_WebKit_Source_platform_heap_ThreadState_h |   12 -
 ...third_party_WebKit_Source_web_PopupMenuImpl_cpp |   12 -
 .../patch-third_party_WebKit_Source_web_web_gyp    |   12 -
 ...atch-third_party_WebKit_Source_wtf_MathExtras_h |   13 -
 ...h-third_party_boringssl_src_crypto_bn_generic_c |   13 -
 ..._chromium_config_Chrome_openbsd_ia32_config_asm | 2021 -------------------
 ...eg_chromium_config_Chrome_openbsd_ia32_config_h | 2038 --------------------
 ...g_chromium_config_Chrome_openbsd_x64_config_asm | 2021 -------------------
 ...peg_chromium_config_Chrome_openbsd_x64_config_h | 2038 --------------------
 .../patch-third_party_ffmpeg_ffmpeg_generated_gypi |  376 ----
 ...patch-third_party_ffmpeg_libavcodec_x86_cabac_h |   12 -
 ...rty_ffmpeg_libavutil_autorename_libavutil_cpu_c |   11 -
 .../patch-third_party_ffmpeg_libavutil_cpu_c       |   15 -
 .../patch-third_party_ffmpeg_libavutil_mem_c       |   13 -
 .../patches/patch-third_party_iccjpeg_iccjpeg_gyp  |   17 -
 .../patches/patch-third_party_libXNVCtrl_NVCtrl_c  |   26 -
 .../patch-third_party_libXNVCtrl_libXNVCtrl_gyp    |   13 -
 .../patch-third_party_libjingle_libjingle_gyp      |   12 -
 .../patch-third_party_libjpeg_turbo_libjpeg_gyp    |   12 -
 .../patches/patch-third_party_libusb_libusb_gyp    |   28 -
 .../patch-third_party_libusb_src_libusb_core_c     |   12 -
 .../patches/patch-third_party_libyuv_libyuv_gyp    |   19 -
 .../patch-third_party_pdfium_build_standalone_gypi |   21 -
 ...ird_party_pdfium_core_include_fxcrt_fx_system_h |   12 -
 ...d_party_pdfium_core_src_fxge_ge_fx_ge_linux_cpp |   15 -
 ...arty_pdfium_fpdfsdk_src_javascript_JS_Value_cpp |   16 -
 .../patches/patch-third_party_pdfium_pdfium_gyp    |   21 -
 ...y_pdfium_third_party_libopenjpeg20_opj_malloc_h |   12 -
 ..._protobuf_src_google_protobuf_stubs_atomicops_h |   15 -
 ...ty_protobuf_src_google_protobuf_stubs_strutil_h |   19 -
 .../patches/patch-third_party_skia_gyp_ports_gyp   |   11 -
 .../patch-third_party_skia_src_core_SkVarAlloc_cpp |   13 -
 ...h-third_party_skia_src_gpu_GrAutoLocaleSetter_h |   30 -
 .../patches/patch-third_party_webrtc_base_base_gyp |   12 -
 .../patch-third_party_webrtc_base_httpcommon_cc    |   12 -
 .../patch-third_party_webrtc_base_network_cc       |   30 -
 ...third_party_webrtc_base_physicalsocketserver_cc |   34 -
 ...atch-third_party_webrtc_base_platform_thread_cc |   43 -
 .../patch-third_party_webrtc_base_stringutils_h    |   22 -
 .../patch-third_party_webrtc_build_common_gypi     |   17 -
 ...webrtc_system_wrappers_source_atomic32_posix_cc |   12 -
 ...tc_system_wrappers_source_condition_variable_cc |   12 -
 ...y_webrtc_system_wrappers_source_thread_posix_cc |   13 -
 ...ystem_wrappers_source_timestamp_extrapolator_cc |   12 -
 ...third_party_yasm_source_config_openbsd_config_h |   18 -
 ...rty_yasm_source_config_openbsd_libyasm-stdint_h |   12 -
 .../patch-tools_gyp_pylib_gyp_generator_make.py    |   43 +
 .../patch-tools_gyp_pylib_gyp_generator_make_py    |   36 -
 .../patch-tools_gyp_pylib_gyp_generator_ninja_py   |   21 -
 ...yp_test_additional-targets_src_dir1_actions.gyp |   13 +
 .../patch-tools_gyp_test_library_src_library.gyp   |   13 +
 .../patch-ui_accessibility_accessibility.gyp       |   22 +
 .../patch-ui_accessibility_accessibility_gyp       |   21 -
 ...-ui_accessibility_platform_ax__platform__node.h |   13 +
 ...h-ui_accessibility_platform_ax_platform_node_cc |   12 -
 .../patch-ui_app__list_app__list__constants.cc     |   13 +
 .../patch-ui_app__list_app__list__constants.h      |   15 +
 .../patches/patch-ui_app__list_app__list__menu.cc  |   13 +
 .../patch-ui_app__list_views_app__list__view.cc    |   22 +
 .../patch-ui_app_list_app_list_constants_cc        |   12 -
 .../patches/patch-ui_app_list_app_list_constants_h |   12 -
 .../patches/patch-ui_app_list_app_list_menu_cc     |   12 -
 .../patch-ui_app_list_views_app_list_item_view_cc  |   12 -
 .../patch-ui_app_list_views_app_list_view_cc       |   21 -
 chromium-new/patches/patch-ui_base_BUILD.gn        |   13 +
 ...h-ui_base_ime_ime__engine__handler__interface.h |   13 +
 .../patch-ui_base_ime_input__method__factory.cc    |   22 +
 ...patch-ui_base_ime_input__method__initializer.cc |   39 +
 .../patch-ui_base_ime_input_method_factory_cc      |   21 -
 .../patch-ui_base_resource_resource__bundle.cc     |   22 +
 .../patch-ui_base_resource_resource_bundle_cc      |   12 -
 chromium-new/patches/patch-ui_base_ui__base.gyp    |   31 +
 chromium-new/patches/patch-ui_base_ui_base_gyp     |   21 -
 ...ui_base_user_activity_user_activity_detector_cc |   21 -
 .../patches/patch-ui_base_webui_web__ui__util.cc   |   13 +
 .../patches/patch-ui_base_webui_web_ui_util_cc     |   12 -
 ...i_events_devices_x11_device_data_manager_x11_cc |   20 -
 .../patches/patch-ui_events_event__switches.cc     |   13 +
 .../patches/patch-ui_events_event__switches.h      |   13 +
 .../patches/patch-ui_events_event_switches_cc      |   12 -
 .../patches/patch-ui_events_event_switches_h       |   12 -
 ...ch-ui_events_keycodes_dom_keycode__converter.cc |   13 +
 ...tch-ui_events_keycodes_dom_keycode_converter_cc |   12 -
 .../patches/patch-ui_events_x_keysym_to_unicode_h  |   12 -
 chromium-new/patches/patch-ui_gfx_canvas__skia.cc  |   13 +
 chromium-new/patches/patch-ui_gfx_canvas_skia_cc   |   12 -
 .../patches/patch-ui_gfx_codec_jpeg__codec.cc      |   12 +
 .../patches/patch-ui_gfx_codec_png_codec_cc        |   12 -
 chromium-new/patches/patch-ui_gfx_color__utils.cc  |   50 +
 .../patches/patch-ui_gfx_font__fallback__linux.cc  |   15 +
 .../patches/patch-ui_gfx_font__render__params.h    |   20 +
 chromium-new/patches/patch-ui_gfx_gfx_gyp          |   21 -
 chromium-new/patches/patch-ui_gfx_render__text.cc  |   48 +
 .../patches/patch-ui_gl_generate_bindings_py       |   13 -
 chromium-new/patches/patch-ui_gl_gl.gyp            |   22 +
 .../patches/patch-ui_gl_gl__surface__glx.cc        |   13 +
 .../patch-ui_gl_gl_bindings_api_autogen_glx_h      |   11 -
 .../patches/patch-ui_gl_gl_bindings_autogen_glx_cc |  184 --
 .../patches/patch-ui_gl_gl_bindings_autogen_glx_h  |   45 -
 chromium-new/patches/patch-ui_gl_gl_gyp            |   21 -
 chromium-new/patches/patch-ui_gl_gl_surface_glx_cc |   12 -
 .../patch-ui_gl_sync__control__vsync__provider.cc  |   31 +
 .../patch-ui_gl_sync_control_vsync_provider_cc     |   21 -
 ...tch-ui_message__center_message__center__style.h |   13 +
 ...e__center_views_message__center__button__bar.cc |   49 +
 ...ge__center_views_message__center__button__bar.h |   13 +
 ..._message__center_views_message__center__view.cc |   22 +
 ...-ui_message__center_views_notification__view.cc |   13 +
 .../patch-ui_message_center_message_center_style_h |   12 -
 ...ssage_center_views_message_center_button_bar_cc |   48 -
 ...essage_center_views_message_center_button_bar_h |   12 -
 ...-ui_message_center_views_message_center_view_cc |   21 -
 ...ch-ui_message_center_views_notification_view_cc |   12 -
 .../patches/patch-ui_resources_ui__resources.grd   |   13 +
 .../patches/patch-ui_resources_ui_resources_grd    |   12 -
 .../patch-ui_shell_dialogs_select_file_dialog_cc   |   21 -
 ...patch-ui_touch_selection_ui_touch_selection_gyp |   11 -
 ...ews_accessibility_native__view__accessibility.h |   13 +
 ...iews_accessibility_native_view_accessibility_cc |   12 -
 .../patch-ui_views_bubble_bubble__delegate.cc      |   13 +
 .../patch-ui_views_bubble_bubble_delegate_cc       |   12 -
 ...patch-ui_views_controls_button_label__button.cc |   22 +
 .../patch-ui_views_controls_button_label_button_cc |   21 -
 .../patch-ui_views_controls_combobox_combobox_cc   |   12 -
 ...i_views_controls_scrollbar_base__scroll__bar.cc |   13 +
 ...-ui_views_controls_scrollbar_base_scroll_bar_cc |   12 -
 .../patch-ui_views_controls_textfield_textfield.cc |   85 +
 .../patch-ui_views_controls_textfield_textfield_cc |   84 -
 .../patch-ui_views_controls_webview_webview.gyp    |   13 +
 .../patch-ui_views_controls_webview_webview_gyp    |   12 -
 .../patch-ui_views_examples_widget__example.cc     |   13 +
 .../patch-ui_views_style_platform__style.cc        |   13 +
 chromium-new/patches/patch-ui_views_views.gyp      |   28 +
 .../patches/patch-ui_views_views__delegate.cc      |   13 +
 .../patches/patch-ui_views_views__delegate.h       |   13 +
 .../patches/patch-ui_views_views__switches.cc      |   13 +
 .../patches/patch-ui_views_views_delegate_cc       |   12 -
 .../patches/patch-ui_views_views_delegate_h        |   12 -
 chromium-new/patches/patch-ui_views_views_gyp      |   27 -
 .../patches/patch-ui_views_views_switches_cc       |   12 -
 .../patch-ui_views_window_custom__frame__view.cc   |   13 +
 .../patch-ui_views_window_custom_frame_view_cc     |   12 -
 .../patch-ui_views_window_dialog__delegate.cc      |   13 +
 .../patch-ui_views_window_dialog_delegate_cc       |   12 -
 .../patches/patch-ui_webui_resources_js_cr.js      |   16 +
 .../patches/patch-ui_webui_resources_js_cr_js      |   15 -
 .../patches/patch-ui_webui_resources_js_util.js    |   13 +
 .../patches/patch-ui_webui_resources_js_util_js    |   12 -
 .../patch-v8_src_base_platform_platform-openbsd_cc |  309 ---
 .../patch-v8_src_base_platform_platform-posix.cc   |   55 +
 .../patch-v8_src_base_platform_platform-posix_cc   |   12 -
 .../patches/patch-v8_src_base_platform_platform.h  |   12 +
 .../patch-v8_src_compiler_graph-visualizer.cc      |   21 +
 .../patch-v8_src_compiler_graph-visualizer.h       |   22 +
 chromium-new/patches/patch-v8_src_globals_h        |   18 -
 chromium-new/patches/patch-v8_src_log-utils.h      |   14 +
 chromium-new/patches/patch-v8_src_log-utils_h      |   12 -
 chromium-new/patches/patch-v8_tools_run-llprof.sh  |   13 +
 772 files changed, 12146 insertions(+), 16753 deletions(-)

diffs:
diff --git a/chromium-new/DESCR b/chromium-new/DESCR
index bd9f12e..2a86084 100644
--- a/chromium-new/DESCR
+++ b/chromium-new/DESCR
@@ -1,3 +1,3 @@
-Chromium is an open-source browser project that aims
-to build a safer, faster, and more stable way for all
-Internet users to experience the web.
+Chromium is an open-source browser project that aims to build a
+safer, faster, and more stable way for all Internet users to
+experience the web.
diff --git a/chromium-new/Makefile b/chromium-new/Makefile
index 2f640e3..3cfb226 100644
--- a/chromium-new/Makefile
+++ b/chromium-new/Makefile
@@ -1,62 +1,28 @@
 # $NetBSD: Makefile,v 1.14 2012/09/24 18:26:53 asau Exp $
 
-DISTNAME=	chromium-48.0.2564.116
+DISTNAME=	chromium-51.0.2704.106
 CATEGORIES=	www
 MASTER_SITES=	http://commondatastorage.googleapis.com/chromium-browser-official/
 EXTRACT_SUFX=	.tar.xz
 
-MAINTAINER=	rxg%NetBSD.org@localhost
-HOMEPAGE=	http://dev.chromium.org/Home
-COMMENT=	Open-source browser project
-LICENSE=	modified-bsd
+MAINTAINER=	ryoon%NetBSD.org@localhost
+HOMEPAGE=	http://www.chromium.org/Home
+COMMENT=	Chromium web browser
+LICENSE=	modified-bsd AND gnu-lgpl-v3 AND mpl-2.0
 
 USE_TOOLS+=	bash bison flex:pkgsrc gmake pax perl pkg-config
+TOOLS_PLATFORM.flex=   # override the platform definition to use pkgsrc's flex.
 USE_LANGUAGES=	c c++
 
 BUILD_DEPENDS+=	gperf>=3.0.1:../../devel/gperf
-BUILD_DEPENDS+=	yasm>=0:../../devel/yasm
-
-ONLY_FOR_PLATFORM=	*-*-arm *-*-i386 *-*-x86_64
-TOOLS_PLATFORM.flex=	# override the platform definition to use pkgsrc's flex.
-
-DATADIR=	${DESTDIR}${PREFIX}/share/chromium
+BUILD_DEPENDS+=	yasm-[0-9]*:../../devel/yasm
+BUILD_DEPENDS+=	ninja-build-[0-9]*:../../devel/ninja-build
+BUILD_DEPENDS+=	${PYPKGPREFIX}-html5lib-[0-9]*:../../textproc/py-html5lib
 
 .include "../../mk/bsd.prefs.mk"
+.include "../../mk/compiler.mk"
 
-.if ${OPSYS} == "Linux" || ${OPSYS} == "DragonFly" || ${OPSYS} == "FreeBSD"
-.include "../../audio/alsa-lib/buildlink3.mk"
-.endif
-
-GNU_CONFIGURE=	yes
-
-FFMPEG_ARGS+=	--disable-everything
-FFMPEG_ARGS+=	--disable-network
-FFMPEG_ARGS+=	--disable-bzlib
-FFMPEG_ARGS+=	--disable-zlib
-FFMPEG_ARGS+=	--disable-swscale
-FFMPEG_ARGS+=	--disable-amd3dnow
-FFMPEG_ARGS+=	--disable-amd3dnowext
-FFMPEG_ARGS+=	--enable-shared
-FFMPEG_ARGS+=	--enable-libvpx
-FFMPEG_ARGS+=	--enable-encoder=libvpx
-
-.include "options.mk"
-
-BUILD_DIRS=	.
-MAKE_ENV+=	BUILDTYPE=${BUILDTYPE}
-#MAKE_ENV+=	CC.host=${CC:Q}
-MAKE_ENV+=	CFLAGS.host=${CFLAGS:M*:Q}
-MAKE_ENV+=	CXX.host=${CXX:Q}
-MAKE_ENV+=	CXXFLAGS.host=${CXXFLAGS:M*:Q}
-MAKE_ENV+=	LINK.host=${CXX:Q}
-MAKE_ENV+=	LDFLAGS.host=${LDFLAGS:M*:Q}
-MAKE_ENV+=	AR.host=${AR:Q}
-.if ${OPSYS} != "Linux"
-# Override the LINK variable for the platforms which do not have flock(1).
-MAKE_ENV+=	LINK=${CXX:Q}
-.endif
-
-BUILDDIR=	${WRKSRC}/out # /${BUILDTYPE}
+ONLY_FOR_PLATFORM=	*-*-arm *-*-i386 *-*-x86_64
 
 SUBST_CLASSES+=		bash
 SUBST_MESSAGE.bash=	Fixing bash path
@@ -69,6 +35,7 @@ SUBST_SED.bash=		-e 's:/bin/bash:${BASH}:'
 SUBST_CLASSES+=		path
 SUBST_MESSAGE.path=	Fixing pkg path
 SUBST_STAGE.path=	post-patch
+SUBST_FILES.path+=	base/base.gyp
 SUBST_FILES.path+=	base/base_paths_linux.cc
 SUBST_FILES.path+=	base/process_util_openbsd.cc
 SUBST_FILES.path+=	build/common.gypi
@@ -77,16 +44,89 @@ SUBST_SED.path+=	-e 's:/usr/local/:${PREFIX}/:'
 SUBST_SED.path+=	-e 's:/usr/lib/:${BUILDLINK_DIR}/lib/:'
 SUBST_SED.path+=	-e 's:/usr/include/:${BUILDLINK_DIR}/include/:'
 
-BUILDTYPE=		Release
-MAKE_ENV+=		BUILDTYPE=${BUILDTYPE}
+CONFIGURE_ENV+=		CC=${CC:Q}
+CONFIGURE_ENV+=		CXX=${CXX:Q}
+CONFIGURE_ENV+=		GYP_GENERATORS=ninja
+CONFIGURE_ENV+=		GYP_DEFINES="${GYP_DEFINES}"
 
-do-configure:
-	set -e \
-	${PYTHONBIN} ${WRKSRC}/bootstrap/bootstrap.py -s
-	# phajdan-jr: list of things *not* to remove, so maybe the script
-	#             should be called "keep_bundled_libraries.py"
-	cd ${WRKSRC} && ${PYTHON_CMD} \
-		./build/linux/unbundle/remove_bundled_libraries.py \
+CFLAGS+=		-fno-stack-protector
+
+BUILDTYPE=	Release
+MAKE_ENV+=	BUILDTYPE=${BUILDTYPE}
+MAKE_ENV+=	GPERF=${PREFIX}/bin/gperf
+
+# Proprietary codecs are enabled.
+GYP_DEFINES+=	proprietary_codecs=1
+GYP_DEFINES+=	ffmpeg_branding=Chrome
+
+# Some gyp or gn files may be broken for NetBSD...
+GYP_DEFINES+=	desktop_linux=1
+
+GYP_DEFINES+=	use_gconf=0
+GYP_DEFINES+=	use_pulseaudio=1
+GYP_DEFINES+=	gcc_version=${CC_VERSION:S/gcc-//}
+GYP_DEFINES+=	use_kerberos=0
+GYP_DEFINES+=	linux_breakpad=0
+GYP_DEFINES+=	linux_use_heapchecker=0
+GYP_DEFINES+=	linux_strip_binary=1
+GYP_DEFINES+=	use_aura=1
+GYP_DEFINES+=	test_isolation_mode=noop
+GYP_DEFINES+=	disable_nacl=1
+GYP_DEFINES+=	enable_extensions=1
+GYP_DEFINES+=	enable_one_click_signin=1
+GYP_DEFINES+=	enable_webrtc=0
+GYP_DEFINES+=	enable_web_speech=0
+GYP_DEFINES+=	enable_service_discovery=1
+GYP_DEFINES+=	werror=
+GYP_DEFINES+=	no_gc_sections=1
+GYP_DEFINES+=	OS=${LOWER_OPSYS}
+GYP_DEFINES+=	os_ver=${OS_VERSION}
+GYP_DEFINES+=	prefix_dir=${PREFIX}
+GYP_DEFINES+=	python_ver=${PYVERSSUFFIX}
+GYP_DEFINES+=	use_allocator=none
+GYP_DEFINES+=	use_cups=1
+GYP_DEFINES+=	linux_link_gsettings=1
+GYP_DEFINES+=	linux_link_libpci=1
+GYP_DEFINES+=	linux_link_libspeechd=0
+GYP_DEFINES+=	want_separate_host_toolset=0
+GYP_DEFINES+=	use_system_bzip2=1
+GYP_DEFINES+=	use_system_flac=1
+GYP_DEFINES+=	use_system_ffmpeg=0
+GYP_DEFINES+=	use_system_harfbuzz=0
+GYP_DEFINES+=	use_system_icu=0
+GYP_DEFINES+=	use_system_jsoncpp=1
+GYP_DEFINES+=	use_system_libevent=1
+GYP_DEFINES+=	use_system_libexif=1
+GYP_DEFINES+=	use_system_libjpeg=1
+GYP_DEFINES+=	use_system_libpng=1
+GYP_DEFINES+=	use_system_libusb=1
+GYP_DEFINES+=	use_system_libwebp=1
+GYP_DEFINES+=	use_system_libxml=1
+GYP_DEFINES+=	use_system_libxslt=1
+GYP_DEFINES+=	use_system_nspr=1
+GYP_DEFINES+=	use_system_protobuf=0
+GYP_DEFINES+=	use_system_re2=1
+GYP_DEFINES+=	use_system_snappy=1
+GYP_DEFINES+=	use_system_speex=1
+GYP_DEFINES+=	use_system_xdg_utils=1
+GYP_DEFINES+=	use_system_yasm=1
+GYP_DEFINES+=	v8_use_external_startup_data=0
+GYP_DEFINES+=	flapper_version_h_file='${WRKSRC}/flapper_version.h'
+GYP_DEFINES+=	usb_ids_path=${PREFIX}/share/usbids/usb.ids
+
+# API key and OAuth credential for Google.
+# This is pkgsrc use only.
+GYP_DEFINES+=	google_api_key=AIzaSyAT_3ogzNMKbBMFk3xQ6T35fg52Y9GrFBg
+GYP_DEFINES+=	google_default_client_id=74061691103-faqqnan75j2s8ej3p7lh2k98dhkee816.apps.googleusercontent.com
+GYP_DEFINES+=	google_default_client_secret=3R9TyUv14OXgzJnZi6Ismela
+
+pre-patch:
+	${RM} ${WRKSRC}/third_party/skia/tests/ImageFilterTest.cpp.*
+
+pre-configure:
+# Preserve third party source tree with remove_bundled_libraries.py script.
+	cd ${WRKSRC} && \
+	${PYTHONBIN} ./build/linux/unbundle/remove_bundled_libraries.py \
 		'base/third_party/dmg_fp' \
 		'base/third_party/dynamic_annotations' \
 		'base/third_party/icu' \
@@ -126,23 +166,26 @@ do-configure:
 		'third_party/ffmpeg' \
 		'third_party/gardiner_mod' \
 		'third_party/fips181' \
+		'third_party/flac' \
 		'third_party/flot' \
 		'third_party/google_input_tools' \
 		'third_party/google_input_tools/third_party/closure_library' \
 		'third_party/google_input_tools/third_party/closure_library/third_party/closure' \
+		'third_party/harfbuzz-ng' \
 		'third_party/hunspell' \
 		'third_party/iccjpeg' \
-		'third_party/icu/icu.isolate' \
+		'third_party/icu' \
 		'third_party/jinja2' \
 		'third_party/jstemplate' \
 		'third_party/khronos' \
 		'third_party/leveldatabase' \
 		'third_party/libaddressinput' \
-		'third_party/libjingle' \
 		'third_party/libphonenumber' \
+		'third_party/libjingle' \
 		'third_party/libsrtp' \
-		'third_party/libvpx_new' \
-		'third_party/libvpx_new/source/libvpx/third_party/x86inc' \
+		'third_party/libusb' \
+		'third_party/libvpx' \
+		'third_party/libvpx/source/libvpx/third_party/x86inc' \
 		'third_party/libwebm' \
 		'third_party/libxml/chromium' \
 		'third_party/libXNVCtrl' \
@@ -151,10 +194,9 @@ do-configure:
 		'third_party/lzma_sdk' \
 		'third_party/markupsafe' \
 		'third_party/mesa' \
-		'third_party/mojo' \
 		'third_party/modp_b64' \
 		'third_party/mt19937ar' \
-		'third_party/npapi' \
+		'third_party/openh264' \
 		'third_party/openmax_dl' \
 		'third_party/opus' \
 		'third_party/ots' \
@@ -170,6 +212,7 @@ do-configure:
 		'third_party/sinonjs' \
 		'third_party/skia' \
 		'third_party/smhasher' \
+		'third_party/speech-dispatcher' \
 		'third_party/sqlite' \
 		'third_party/tcmalloc' \
 		'third_party/tlslite' \
@@ -178,88 +221,156 @@ do-configure:
 		'third_party/webdriver' \
 		'third_party/webrtc' \
 		'third_party/widevine' \
+		'third_party/woff2' \
 		'third_party/x86inc' \
 		'third_party/yasm' \
 		'third_party/zlib' \
 		'url/third_party/mozilla' \
 		'v8/src/third_party/valgrind' \
 		'v8/src/third_party/fdlibm' \
-		--do-remove || ${FALSE}
-	cd ${WRKSRC} && ${PYTHON_CMD} \
-		./build/linux/unbundle/replace_gyp_files.py \
-		${GYP_DEFINES:C/^/-D/} || ${FALSE}
-	# allow removal of third_party/adobe
-	${ECHO_CMD} > ${WRKSRC}/flapper_version.h
-	# missing file: file is in -testdata only, but configure stage
-	# will fail if it's not there. do not break TESTS build while
-	# allowing regular build without pulling in -testdata.
+		--do-remove
+	cd ${WRKSRC} && \
+	${PYTHONBIN} ./build/linux/unbundle/replace_gyp_files.py \
+		${GYP_DEFINES:C/^/-D/}
+# allow removal of third_party/adobe
+	${TOUCH} ${WRKSRC}/flapper_version.h
+# missing file: file is in -testdata only, but configure stage
+# will fail if it's not there. do not break TESTS build while
+# allowing regular build without pulling in -testdata.
 	${TOUCH} ${WRKSRC}/chrome/test/data/webui/i18n_process_css_test.html
 
-do-install:
-	@${MKDIR} ${STAGEDIR}${DATADIR}
-	${INSTALL_MAN} ${WRKSRC}/out/${BUILDTYPE}/chrome.1 ${STAGEDIR}${MANPREFIX}/man/man1
-.for s in 22 24 48 64 128 256
-	@${MKDIR} ${STAGEDIR}${PREFIX}/share/icons/hicolor/${s}x${s}/apps
-	${INSTALL_DATA} ${WRKSRC}/chrome/app/theme/chromium/product_logo_${s}.png \
-		${STAGEDIR}${PREFIX}/share/icons/hicolor/${s}x${s}/apps/chrome.png
-.endfor
-	${INSTALL_SCRIPT} ${WRKSRC}/chrome/tools/build/linux/chrome-wrapper \
-		${STAGEDIR}${DATADIR}
-.for p in chrome_100_percent content_resources keyboard_resources resources
-	${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/${p}.pak \
-		${STAGEDIR}${DATADIR}
-.endfor
-	${INSTALL_PROGRAM} ${WRKSRC}/out/${BUILDTYPE}/chrome \
-		${STAGEDIR}${DATADIR}
-	cd ${WRKSRC}/out && \
-		${COPYTREE_SHARE} "locales resources" ${STAGEDIR}${DATADIR}
-	@${MKDIR} ${STAGEDIR}${DESKTOPDIR}
-	${INSTALL_DATA} ${WRKDIR}/chromium-browser.desktop \
-		${STAGEDIR}${DESKTOPDIR}
-	${INSTALL_SCRIPT} ${WRKDIR}/chrome ${STAGEDIR}${PREFIX}/bin
-	${INSTALL_PROGRAM} ${WRKSRC}/out/${BUILDTYPE}/mksnapshot \
-		${STAGEDIR}${DATADIR}
-# END OF THINGS FROM FREEBSD PORTS
-	${INSTALL_DATA_DIR} ${PREFIX}/chrome
-	${INSTALL_PROGRAM} ${BUILDDIR}/chrome ${PREFIX}/chrome
-	${SUBST_PROGRAM} ${FILESDIR}/chrome ${PREFIX}/bin/chrome
-	${INSTALL_MAN} ${BUILDDIR}/chrome.1 ${PREFIX}/man/man1
+do-configure:
+	cd ${WRKSRC} && \
+	${SETENV} ${CONFIGURE_ENV} \
+	${PYTHONBIN} ./build/gyp_chromium chrome/chrome.gyp --depth . \
+		${GYP_DEFINES:C/^/-D/}
 
-	${INSTALL_DATA} ${BUILDDIR}/*.pak ${PREFIX}/chrome
+# From OpenBSD Ports www/chromium
+NINJA_BUILD_TARGETS+=	generate_version_info
+NINJA_BUILD_TARGETS+=	cloud_policy_proto
+NINJA_BUILD_TARGETS+=	net_interfaces
+NINJA_BUILD_TARGETS+=	suggestions
+NINJA_BUILD_TARGETS+=	cacheinvalidation
+NINJA_BUILD_TARGETS+=	cacheinvalidation_proto_cpp
+NINJA_BUILD_TARGETS+=	gfx_vector_icons
+NINJA_BUILD_TARGETS+=	data_reduction_proxy_proto
+NINJA_BUILD_TARGETS+=	cloud_policy_code_generate
+NINJA_BUILD_TARGETS+=	common_constants
+NINJA_BUILD_TARGETS+=	profile_reset_report_proto
+NINJA_BUILD_TARGETS+=	autofill_server_proto
+NINJA_BUILD_TARGETS+=	ipc_mojo
+# Below is generated from ninja -t targets.
+NINJA_BUILD_TARGETS+=	app_list_resources
+NINJA_BUILD_TARGETS+=	app_shell_resources
+NINJA_BUILD_TARGETS+=	ash_resources
+NINJA_BUILD_TARGETS+=	blink_devtools_frontend_resources
+NINJA_BUILD_TARGETS+=	blink_image_resources
+NINJA_BUILD_TARGETS+=	blink_resources
+NINJA_BUILD_TARGETS+=	chrome_extra_resources
+NINJA_BUILD_TARGETS+=	chrome_resources
+NINJA_BUILD_TARGETS+=	chrome_unscaled_resources
+NINJA_BUILD_TARGETS+=	common_mojo_bindings
+NINJA_BUILD_TARGETS+=	components_resources
+NINJA_BUILD_TARGETS+=	content_common_mojo_bindings
+NINJA_BUILD_TARGETS+=	content_common_mojo_bindings_mojom
+NINJA_BUILD_TARGETS+=	content_resources
+NINJA_BUILD_TARGETS+=	content_shell_mojo_bindings
+NINJA_BUILD_TARGETS+=	content_shell_mojo_bindings_mojom
+NINJA_BUILD_TARGETS+=	content_shell_resources
+NINJA_BUILD_TARGETS+=	contextual_search_mojo_bindings
+NINJA_BUILD_TARGETS+=	device_battery_mojo_bindings
+NINJA_BUILD_TARGETS+=	device_usb_mojo_bindings
+NINJA_BUILD_TARGETS+=	device_vibration_mojo_bindings
+NINJA_BUILD_TARGETS+=	devtools_frontend_resources
+NINJA_BUILD_TARGETS+=	devtools_resources
+NINJA_BUILD_TARGETS+=	dom_distiller_mojo_bindings
+NINJA_BUILD_TARGETS+=	extensions_resources
+NINJA_BUILD_TARGETS+=	filesystem_bindings_mojom
+NINJA_BUILD_TARGETS+=	keyboard_resources
+NINJA_BUILD_TARGETS+=	leveldb_bindings_mojom
+NINJA_BUILD_TARGETS+=	mojo_application_bindings_mojom
+NINJA_BUILD_TARGETS+=	mojo_bindings
+NINJA_BUILD_TARGETS+=	mojo_bindings_mojom
+NINJA_BUILD_TARGETS+=	mojo_geometry_bindings_mojom
+NINJA_BUILD_TARGETS+=	mojo_interface_bindings_mojom
+NINJA_BUILD_TARGETS+=	net_resources
+NINJA_BUILD_TARGETS+=	packed_extra_resources
+NINJA_BUILD_TARGETS+=	packed_resources
+NINJA_BUILD_TARGETS+=	platform_verification_mojo_bindings
+NINJA_BUILD_TARGETS+=	profile_service_bindings_mojom
+NINJA_BUILD_TARGETS+=	provision_fetcher_mojo_bindings
+NINJA_BUILD_TARGETS+=	remoting_resources
+NINJA_BUILD_TARGETS+=	resources
+NINJA_BUILD_TARGETS+=	theme_resources
+NINJA_BUILD_TARGETS+=	tracing_resources
+NINJA_BUILD_TARGETS+=	tracing_service_bindings_mojom
+NINJA_BUILD_TARGETS+=	ui_resources
+NINJA_BUILD_TARGETS+=	views_resources
+NINJA_BUILD_TARGETS+=	web_cache_mojo_bindings
+NINJA_BUILD_TARGETS+=	web_ui_mojo_bindings
+NINJA_BUILD_TARGETS+=	widevinecdmadapter_resources
+NINJA_BUILD_TARGETS+=	browser_extensions
+NINJA_BUILD_TARGETS+=	chrome_strings
+# Real target
+NINJA_BUILD_TARGETS+=	chrome
 
-	${INSTALL_DATA_DIR} ${PREFIX}/chrome/locales
-	${INSTALL_DATA} ${BUILDDIR}/locales/* ${PREFIX}/chrome/locales
-	${INSTALL_DATA} ${BUILDDIR}/*.png ${PREFIX}/chrome
-	${INSTALL_DATA_DIR} ${PREFIX}/chrome/resources
-	@cp -Rp ${BUILDDIR}/resources/* ${PREFIX}/chrome/resources
-	@chown -R ${SHAREOWN}:${SHAREGRP} ${PREFIX}/chrome/resources
-.for f in libexif.so protoc icudtl.dat mksnapshot
-	${INSTALL_DATA} ${BUILDDIR}/${f} ${PREFIX}/chrome
+do-build:
+.for target in ${NINJA_BUILD_TARGETS}
+	${ECHO} TARGET is ${target} && \
+	cd ${WRKSRC} && \
+	${SETENV} ${MAKE_ENV} \
+	ninja -C out/${BUILDTYPE} ${target}
 .endfor
-.for s in 22 24 48 64 128 256
-	${INSTALL_DATA_DIR} ${PREFIX}/share/icons/hicolor/${s}x${s}/apps
-	${INSTALL_DATA} ${WRKSRC}/chrome/app/theme/chromium/product_logo_${s}.png \
-		${PREFIX}/share/icons/hicolor/${s}x${s}/apps/chrome.png
-.endfor
-	${INSTALL_DATA_DIR} ${PREFIX}/share/applications
-	${INSTALL_DATA} ${FILESDIR}/chromium-browser.desktop \
-		${PREFIX}/share/applications/chromium-browser.desktop
 
-.include "../../security/libgnome-keyring/buildlink3.mk"
-.include "../../graphics/libexif/buildlink3.mk"
 .include "../../audio/pulseaudio/buildlink3.mk"
-.include "../../sysutils/pciutils/buildlink3.mk"
-.include "../../devel/GConf/buildlink3.mk"
-.include "../../devel/gettext-lib/buildlink3.mk"
+.include "../../audio/alsa-lib/buildlink3.mk"
+.include "../../graphics/cairo/buildlink3.mk"
+.include "../../print/cups/buildlink3.mk"
+.include "../../sysutils/dbus/buildlink3.mk"
+.include "../../sysutils/dbus-glib/buildlink3.mk"
+.include "../../x11/libdrm/buildlink3.mk"
+.include "../../textproc/expat/buildlink3.mk"
+.include "../../audio/flac/buildlink3.mk"
+.include "../../graphics/freetype2/buildlink3.mk"
+.include "../../security/libgnome-keyring/buildlink3.mk"
+#.include "../../fonts/harfbuzz/buildlink3.mk"
 .include "../../devel/libevent/buildlink3.mk"
+.include "../../graphics/libexif/buildlink3.mk"
+.include "../../fonts/fontconfig/buildlink3.mk"
+.include "../../security/libgcrypt/buildlink3.mk"
+.include "../../textproc/jsoncpp/buildlink3.mk"
+.include "../../devel/nspr/buildlink3.mk"
 .include "../../devel/nss/buildlink3.mk"
-.include "../../devel/zlib/buildlink3.mk"
+.include "../../sysutils/pciutils/buildlink3.mk"
+# Use -lpciutils instead of -lpci under NetBSD.
+BUILDLINK_TRANSFORM.NetBSD+=	opt:-lpci:-lpciutils
 .include "../../graphics/png/buildlink3.mk"
-.include "../../lang/python/pyversion.mk"
-.include "../../mk/jpeg.buildlink3.mk"
-.include "../../multimedia/libvpx/buildlink3.mk"
+.include "../../devel/re2/buildlink3.mk"
+.include "../../devel/snappy/buildlink3.mk"
+.include "../../audio/speex/buildlink3.mk"
+.include "../../graphics/libwebp/buildlink3.mk"
+.include "../../textproc/libxml2/buildlink3.mk"
 .include "../../textproc/libxslt/buildlink3.mk"
+.include "../../devel/dconf/buildlink3.mk"
 .include "../../x11/gtk2/buildlink3.mk"
+.include "../../x11/scrnsaverproto/buildlink3.mk"
+.include "../../x11/libX11/buildlink3.mk"
+.include "../../x11/libXcomposite/buildlink3.mk"
+.include "../../x11/xcursor/buildlink3.mk"
+.include "../../x11/libXext/buildlink3.mk"
+.include "../../x11/libXdamage/buildlink3.mk"
+.include "../../x11/libXfixes/buildlink3.mk"
+.include "../../x11/libXi/buildlink3.mk"
+.include "../../x11/xproto/buildlink3.mk"
+.include "../../x11/libXrandr/buildlink3.mk"
+.include "../../x11/libXrender/buildlink3.mk"
 .include "../../x11/libXScrnSaver/buildlink3.mk"
 .include "../../x11/libXtst/buildlink3.mk"
+.include "../../archivers/bzip2/buildlink3.mk"
+.include "../../mk/jpeg.buildlink3.mk"
+.include "../../devel/libusb1/buildlink3.mk"
+.include "../../misc/usbids/buildlink3.mk"
+#.include "../../textproc/icu/buildlink3.mk"
+
+.include "../../lang/python/tool.mk"
 .include "../../mk/bsd.pkg.mk"
diff --git a/chromium-new/PLIST b/chromium-new/PLIST
index 15a2a5f..e69de29 100644
--- a/chromium-new/PLIST
+++ b/chromium-new/PLIST
@@ -1,217 +0,0 @@
-@comment $OpenBSD: PLIST,v 1.56 2016/02/06 18:02:18 robert Exp $
-@pkgpath www/chromium,proprietary
-bin/chrome
-chrome/
-@bin chrome/chrome
-chrome/chrome_100_percent.pak
-chrome/chrome_200_percent.pak
-chrome/chrome_material_100_percent.pak
-chrome/chrome_material_200_percent.pak
-chrome/content_resources.pak
-chrome/icudtl.dat
-chrome/keyboard_resources.pak
-chrome/libexif.so
-chrome/locales/
-chrome/locales/am.pak
-chrome/locales/ar.pak
-chrome/locales/bg.pak
-chrome/locales/bn.pak
-chrome/locales/ca.pak
-chrome/locales/cs.pak
-chrome/locales/da.pak
-chrome/locales/de.pak
-chrome/locales/el.pak
-chrome/locales/en-GB.pak
-chrome/locales/en-US.pak
-chrome/locales/es-419.pak
-chrome/locales/es.pak
-chrome/locales/et.pak
-chrome/locales/fa.pak
-chrome/locales/fi.pak
-chrome/locales/fil.pak
-chrome/locales/fr.pak
-chrome/locales/gu.pak
-chrome/locales/he.pak
-chrome/locales/hi.pak
-chrome/locales/hr.pak
-chrome/locales/hu.pak
-chrome/locales/id.pak
-chrome/locales/it.pak
-chrome/locales/ja.pak
-chrome/locales/kn.pak
-chrome/locales/ko.pak
-chrome/locales/lt.pak
-chrome/locales/lv.pak
-chrome/locales/ml.pak
-chrome/locales/mr.pak
-chrome/locales/ms.pak
-chrome/locales/nb.pak
-chrome/locales/nl.pak
-chrome/locales/pl.pak
-chrome/locales/pt-BR.pak
-chrome/locales/pt-PT.pak
-chrome/locales/ro.pak
-chrome/locales/ru.pak
-chrome/locales/sk.pak
-chrome/locales/sl.pak
-chrome/locales/sr.pak
-chrome/locales/sv.pak
-chrome/locales/sw.pak
-chrome/locales/ta.pak
-chrome/locales/te.pak
-chrome/locales/th.pak
-chrome/locales/tr.pak
-chrome/locales/uk.pak
-chrome/locales/vi.pak
-chrome/locales/zh-CN.pak
-chrome/locales/zh-TW.pak
-chrome/mksnapshot
-chrome/product_logo_48.png
-chrome/protoc
-chrome/resources/
-chrome/resources.pak
-chrome/resources/extension/
-chrome/resources/extension/demo/
-chrome/resources/extension/demo/library.js
-chrome/resources/inspector/
-chrome/resources/inspector/Images/
-chrome/resources/inspector/Images/applicationCache.png
-chrome/resources/inspector/Images/breakpoint.png
-chrome/resources/inspector/Images/breakpointConditional.png
-chrome/resources/inspector/Images/breakpointConditional_2x.png
-chrome/resources/inspector/Images/breakpoint_2x.png
-chrome/resources/inspector/Images/checker.png
-chrome/resources/inspector/Images/chromeDisabledSelect.png
-chrome/resources/inspector/Images/chromeDisabledSelect_2x.png
-chrome/resources/inspector/Images/chromeLeft.png
-chrome/resources/inspector/Images/chromeMiddle.png
-chrome/resources/inspector/Images/chromeRight.png
-chrome/resources/inspector/Images/chromeSelect.png
-chrome/resources/inspector/Images/chromeSelect_2x.png
-chrome/resources/inspector/Images/cookie.png
-chrome/resources/inspector/Images/database.png
-chrome/resources/inspector/Images/databaseTable.png
-chrome/resources/inspector/Images/deleteIcon.png
-chrome/resources/inspector/Images/domain.png
-chrome/resources/inspector/Images/errorWave.png
-chrome/resources/inspector/Images/errorWave_2x.png
-chrome/resources/inspector/Images/fileSystem.png
-chrome/resources/inspector/Images/forward.png
-chrome/resources/inspector/Images/frame.png
-chrome/resources/inspector/Images/graphLabelCalloutLeft.png
-chrome/resources/inspector/Images/graphLabelCalloutRight.png
-chrome/resources/inspector/Images/indexedDB.png
-chrome/resources/inspector/Images/indexedDBIndex.png
-chrome/resources/inspector/Images/indexedDBObjectStore.png
-chrome/resources/inspector/Images/localStorage.png
-chrome/resources/inspector/Images/navigationControls.png
-chrome/resources/inspector/Images/navigationControls_2x.png
-chrome/resources/inspector/Images/notifications.svg
-chrome/resources/inspector/Images/paneAddButtons.png
-chrome/resources/inspector/Images/paneFilterButtons.png
-chrome/resources/inspector/Images/paneRefreshButtons.png
-chrome/resources/inspector/Images/popoverArrows.png
-chrome/resources/inspector/Images/profileGroupIcon.png
-chrome/resources/inspector/Images/profileIcon.png
-chrome/resources/inspector/Images/profileSmallIcon.png
-chrome/resources/inspector/Images/radioDot.png
-chrome/resources/inspector/Images/resourceCSSIcon.png
-chrome/resources/inspector/Images/resourceDocumentIcon.png
-chrome/resources/inspector/Images/resourceDocumentIconSmall.png
-chrome/resources/inspector/Images/resourceJSIcon.png
-chrome/resources/inspector/Images/resourcePlainIcon.png
-chrome/resources/inspector/Images/resourcePlainIconSmall.png
-chrome/resources/inspector/Images/resourcesTimeGraphIcon.png
-chrome/resources/inspector/Images/responsiveDesign.png
-chrome/resources/inspector/Images/responsiveDesign_2x.png
-chrome/resources/inspector/Images/searchNext.png
-chrome/resources/inspector/Images/searchPrev.png
-chrome/resources/inspector/Images/securityPropertyInfo.svg
-chrome/resources/inspector/Images/securityPropertyInsecure.svg
-chrome/resources/inspector/Images/securityPropertySecure.svg
-chrome/resources/inspector/Images/securityPropertyUnknown.svg
-chrome/resources/inspector/Images/securityPropertyWarning.svg
-chrome/resources/inspector/Images/securityStateInsecure.svg
-chrome/resources/inspector/Images/securityStateNeutral.svg
-chrome/resources/inspector/Images/securityStateSecure.svg
-chrome/resources/inspector/Images/serviceWorker.svg
-chrome/resources/inspector/Images/sessionStorage.png
-chrome/resources/inspector/Images/settingsListRemove.png
-chrome/resources/inspector/Images/settingsListRemove_2x.png
-chrome/resources/inspector/Images/speech.png
-chrome/resources/inspector/Images/thumbActiveHoriz.png
-chrome/resources/inspector/Images/thumbActiveVert.png
-chrome/resources/inspector/Images/thumbHoriz.png
-chrome/resources/inspector/Images/thumbHoverHoriz.png
-chrome/resources/inspector/Images/thumbHoverVert.png
-chrome/resources/inspector/Images/thumbVert.png
-chrome/resources/inspector/Images/toolbarButtonGlyphs.png
-chrome/resources/inspector/Images/toolbarButtonGlyphs_2x.png
-chrome/resources/inspector/Images/toolbarItemSelected.png
-chrome/resources/inspector/Images/toolbarResizerHorizontal.png
-chrome/resources/inspector/Images/toolbarResizerVertical.png
-chrome/resources/inspector/Images/touchCursor.png
-chrome/resources/inspector/Images/touchCursor_2x.png
-chrome/resources/inspector/Images/updateServiceWorker.svg
-chrome/resources/inspector/InspectorBackendCommands.js
-chrome/resources/inspector/SupportedCSSProperties.js
-chrome/resources/inspector/accessibility_module.js
-chrome/resources/inspector/animation_module.js
-chrome/resources/inspector/audits_module.js
-chrome/resources/inspector/cm_modes_module.js
-chrome/resources/inspector/components_lazy_module.js
-chrome/resources/inspector/console_module.js
-chrome/resources/inspector/devices_module.js
-chrome/resources/inspector/devtools.js
-chrome/resources/inspector/devtools_extension_api.js
-chrome/resources/inspector/diff_module.js
-chrome/resources/inspector/elements_module.js
-chrome/resources/inspector/emulated_devices/
-chrome/resources/inspector/emulated_devices/google-nexus-5-horizontal-default-1x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5-horizontal-default-2x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5-horizontal-keyboard-1x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5-horizontal-keyboard-2x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5-horizontal-navigation-1x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5-horizontal-navigation-2x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5-vertical-default-1x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5-vertical-default-2x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5-vertical-keyboard-1x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5-vertical-keyboard-2x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5-vertical-navigation-1x.png
-chrome/resources/inspector/emulated_devices/google-nexus-5-vertical-navigation-2x.png
-chrome/resources/inspector/emulated_devices_module.js
-chrome/resources/inspector/heap_snapshot_worker_module.js
-chrome/resources/inspector/inspector.css
-chrome/resources/inspector/inspector.html
-chrome/resources/inspector/inspector.js
-chrome/resources/inspector/layers_module.js
-chrome/resources/inspector/network_module.js
-chrome/resources/inspector/profiler_module.js
-chrome/resources/inspector/promises_module.js
-chrome/resources/inspector/resources_module.js
-chrome/resources/inspector/screencast_module.js
-chrome/resources/inspector/script_formatter_worker_module.js
-chrome/resources/inspector/security_module.js
-chrome/resources/inspector/settings_module.js
-chrome/resources/inspector/snippets_module.js
-chrome/resources/inspector/source_frame_module.js
-chrome/resources/inspector/sources_module.js
-chrome/resources/inspector/temp_storage_shared_worker_module.js
-chrome/resources/inspector/timeline_module.js
-chrome/resources/inspector/toolbox.css
-chrome/resources/inspector/toolbox.html
-chrome/resources/inspector/toolbox.js
-chrome/resources/inspector/ui_lazy_module.js
-chrome/shell_resources.pak
-@man man/man1/chrome.1
-share/applications/chromium-browser.desktop
-share/icons/hicolor/128x128/apps/chrome.png
-share/icons/hicolor/22x22/apps/chrome.png
-share/icons/hicolor/24x24/apps/chrome.png
-share/icons/hicolor/256x256/apps/chrome.png
-share/icons/hicolor/48x48/apps/chrome.png
-share/icons/hicolor/64x64/apps/chrome.png
-@exec %D/bin/update-desktop-database
-@unexec-delete %D/bin/update-desktop-database
-@exec %D/bin/gtk-update-icon-cache -q -t %D/share/icons/hicolor
-@unexec-delete %D/bin/gtk-update-icon-cache -q -t %D/share/icons/hicolor
diff --git a/chromium-new/distinfo b/chromium-new/distinfo
index 031bf4f..1c02f89 100644
--- a/chromium-new/distinfo
+++ b/chromium-new/distinfo
@@ -1,341 +1,438 @@
 $NetBSD$
 
-SHA1 (chromium-48.0.2564.116.tar.xz) = 8c3bc85212c20ce70af4972cd7e9f8e9dcb3d1dc
-RMD160 (chromium-48.0.2564.116.tar.xz) = 99f0b5df7a57a1b87949b83dacd8b3a798f88fc4
-SHA512 (chromium-48.0.2564.116.tar.xz) = 22c653580c1320b00e56a8b055e215b0292518af52e2d7e24b0610950ef1457a03dcec62b5417dd2e1021a2cf42b06d38b2249ee39d97aa662728f4972c54fc6
-Size (chromium-48.0.2564.116.tar.xz) = 432321192 bytes
-SHA1 (patch-apps_apps_gypi) = a2a98273aab4671b2b74ff8922c45ec62a22fb7b
-SHA1 (patch-apps_ui_views_app_window_frame_view_cc) = 386b9d23ec5fdd08d6ea6747bac223ef8321db4c
-SHA1 (patch-ash_display_mirror_window_controller_cc) = 128a1739fe4ea0148f90f6d5ded09d4c9221fd93
-SHA1 (patch-base_atomicops_h) = a95b474ad136469fd522460797f422a36ef4e8e5
-SHA1 (patch-base_base_gypi) = 5f488c63f4c9e01be1fbd36946b7a87947806167
-SHA1 (patch-base_debug_debugger_posix_cc) = dfea1c31173c28ffb0cac670720edc1a11f63195
-SHA1 (patch-base_debug_stack_trace_h) = 8bd629190af965378acb59c46649e3c162e22f7b
-SHA1 (patch-base_debug_stack_trace_posix_cc) = 129684c79897c1036d0329a04fc8a9bd5c512042
-SHA1 (patch-base_message_loop_message_loop_cc) = ea6629ca45948dec699637587093587ee06364cd
-SHA1 (patch-base_posix_unix_domain_socket_linux_cc) = 7cc07d0a8f2cfa2c9b006ee90d55501971e92c69
-SHA1 (patch-base_process_launch_h) = eec2f80f196e1b6c1dda8305a4e2cfc41b679b20
-SHA1 (patch-base_process_memory_cc) = 1569da95cc971e68bf65608c2bdf62e4a37871d3
-SHA1 (patch-base_process_process_handle_openbsd_cc) = b7f62b81693f96d26fe5fdde9361db9a3ef1dcf2
-SHA1 (patch-base_process_process_iterator_openbsd_cc) = a96daafd4bd1f8591d91505d04c03bb1da08ccb9
-SHA1 (patch-base_process_process_metrics_h) = 6d22d7916d970ef238b1e0cbc4c9476a1ed6387b
-SHA1 (patch-base_process_process_metrics_openbsd_cc) = 5b53c2ef4caa8eeb3d8f31d9ddac160208bbf2ae
-SHA1 (patch-base_process_process_posix_cc) = 73ccef51f5cf5bdff58c6a92d96e26d744b3388f
-SHA1 (patch-base_strings_safe_sprintf_cc) = 647d3590d48538c8a7d08bf8254cd5d26c210daf
-SHA1 (patch-base_sys_info_openbsd_cc) = f42764b21b5f571d28d8a60f3ec847b6e6da7790
-SHA1 (patch-base_sys_info_posix_cc) = e99a7f198d73ec109b9e30b7a05dbf6477eb5c81
-SHA1 (patch-base_threading_platform_thread_linux_cc) = b1900ffe36115fc10bb2393622418a3b7e09a10f
-SHA1 (patch-base_trace_event_process_memory_dump_h) = c25bf2b4766241b9d3b72aa02c5330611c639709
-SHA1 (patch-build_all_gyp) = d7b61631af9a53c6d24a3df6ded17a03ec892225
-SHA1 (patch-build_common_gypi) = 95c83d49b5f3f58e335f896788423264a45985bb
-SHA1 (patch-build_filename_rules_gypi) = ef7a1358d688102fd04316f64ab1c6e6830ccc79
-SHA1 (patch-chrome_app_chrome_main_delegate_cc) = a723ba5e58fd389bcca47127f4f52938c6cf0599
-SHA1 (patch-chrome_app_chrome_main_delegate_h) = 842efc5f8daba0f26232d328a28fcc8383c942a0
-SHA1 (patch-chrome_app_chromium_strings_grd) = a0f3f2c26209b4ce76f3c799e170de2dd986fbc6
-SHA1 (patch-chrome_app_google_chrome_strings_grd) = 66bd086b555a23c553e9e41113610d7dcb87d53b
-SHA1 (patch-chrome_app_resources_locale_settings_grd) = 88df92705bf1a4cae2dbf3486af4310e9c1982eb
-SHA1 (patch-chrome_app_theme_theme_resources_grd) = e7e0a7a431685bab4301b103708d601d2b74fa3c
-SHA1 (patch-chrome_browser_about_flags_cc) = 6544fb5fb33e7b22d40127e9965defbc548242ad
-SHA1 (patch-chrome_browser_after_startup_task_utils_cc) = 249f38a8c528aa03e81e43b31d8dd9af0581e7ac
-SHA1 (patch-chrome_browser_browser_resources_grd) = 9f96c4055acb702720d7f4a76cc9723796f50eee
-SHA1 (patch-chrome_browser_chrome_browser_main_cc) = 15988cdb15189da5c6cdbb9a9b5bd47252d4c30a
-SHA1 (patch-chrome_browser_chrome_browser_main_linux_cc) = 9794f5d40ec15c542307fce00cb8156237ceb682
-SHA1 (patch-chrome_browser_chrome_browser_main_posix_cc) = 94c84b9d4b9331e68129ebb9fdcf97234759267f
-SHA1 (patch-chrome_browser_chrome_content_browser_client_cc) = db49f002ae589ce6c985c5716d5efc8f2fc7e3a8
-SHA1 (patch-chrome_browser_chrome_content_browser_client_h) = 929531a9c853bba300c3071b7b91ff90035d7fd6
-SHA1 (patch-chrome_browser_custom_handlers_protocol_handler_registry_cc) = 2e7c5566c3b2676811b7b588d490fdefb76df225
-SHA1 (patch-chrome_browser_defaults_cc) = 54ba1666204b4cb89acdf5193ed93ad95f549086
-SHA1 (patch-chrome_browser_download_chrome_download_manager_delegate_cc) = 52edf1123472881e375611afe48080cf77685530
-SHA1 (patch-chrome_browser_download_download_commands_cc) = d565f1ba0ff877eefddd0e966827c1f34aeb9d91
-SHA1 (patch-chrome_browser_download_download_commands_h) = 919cc0243e25cecc9b94b45ac2603854d6c184c3
-SHA1 (patch-chrome_browser_download_download_prefs_cc) = 301caa8f50155158bbf9ae5ba5e7ebb8cbfcb97f
-SHA1 (patch-chrome_browser_download_download_prefs_h) = 68f31416f4f39375d19fb52ddea60ad37d18088b
-SHA1 (patch-chrome_browser_download_download_shelf_context_menu_cc) = f6be15cce64f5c8f830139c7e09bf8770c55183a
-SHA1 (patch-chrome_browser_download_download_status_updater_cc) = f5ed58eef48a5d23273103458a41d8c197424dd5
-SHA1 (patch-chrome_browser_extensions_api_image_writer_private_image_writer_private_api_cc) = ce19fe5ec52b3f9aa4f0caba6d73bb46ad818888
-SHA1 (patch-chrome_browser_extensions_api_messaging_message_service_cc) = 6945e0a6db9b1ea8600050643916066f3fc700c3
-SHA1 (patch-chrome_browser_extensions_api_music_manager_private_device_id_linux_cc) = ace5e5e9d6bd58dea0b24e3391c66b99a98df0e9
-SHA1 (patch-chrome_browser_extensions_api_omnibox_omnibox_api_cc) = 24588da152d8e56b3c682187bcf6a3e089498dbf
-SHA1 (patch-chrome_browser_extensions_bookmark_app_helper_cc) = 1e8fcddfed455060a0e85cd793e8798bfc55d900
-SHA1 (patch-chrome_browser_first_run_first_run_internal_posix_cc) = 07100d1900fab27ec9b1a9dd17c83435aa290478
-SHA1 (patch-chrome_browser_gpu_gl_string_manager_cc) = 366aa95789d5bc43557f1717c93c69a3d5648e5d
-SHA1 (patch-chrome_browser_gpu_gpu_feature_checker_cc) = 4b36b99308cb87c238741e4c08fc572257dfc4d7
-SHA1 (patch-chrome_browser_media_galleries_fileapi_mtp_device_map_service_cc) = a435be26cb1a0813df616534c81f5b9da49acb27
-SHA1 (patch-chrome_browser_media_galleries_media_file_system_registry_cc) = 9388124d1be0eee59e65bab1982d4693fcbf0e7c
-SHA1 (patch-chrome_browser_media_galleries_media_folder_finder_cc) = 7e519cbe2a88cf6eb00b53d0e9b9c8e17aecc98e
-SHA1 (patch-chrome_browser_memory_details_cc) = 16405983aff970bed7561fca09616a4e6d5ad2fd
-SHA1 (patch-chrome_browser_metrics_chrome_browser_main_extra_parts_metrics_cc) = 18dbe9a320d54a2d417df9b119163323cb446791
-SHA1 (patch-chrome_browser_net_async_dns_field_trial_cc) = 02625e9d3dd78358a9719946bacd680d36473dfa
-SHA1 (patch-chrome_browser_notifications_message_center_notification_manager_cc) = 47be0f255a274e01480f2eb58e0d5d5e1e23d113
-SHA1 (patch-chrome_browser_platform_util_linux_cc) = 2e4a82b894d5bdd59e561ab0a6e4ef3956e4075e
-SHA1 (patch-chrome_browser_process_singleton_posix_cc) = 6540c6a31467df1b46e720893d78e9457b36c67a
-SHA1 (patch-chrome_browser_renderer_preferences_util_cc) = 787374606febee3fe99ddeba4c18d94f84a041f5
-SHA1 (patch-chrome_browser_resources_plugin_metadata_plugins_linux_json) = 8a1bf3ac7c7a25b50f1aeefbf8f28c186bce3266
-SHA1 (patch-chrome_browser_safe_browsing_incident_reporting_incident_reporting_service_cc) = eb682caa650e52ecea26afd94069862b641fd98d
-SHA1 (patch-chrome_browser_speech_tts_controller_impl_cc) = f4bdbb9b2b0a76e1b24dee56ba0cb6d6a238e739
-SHA1 (patch-chrome_browser_ssl_bad_clock_blocking_page_cc) = 5181ca0f231758e1989be75cd5384d21fa182cad
-SHA1 (patch-chrome_browser_sync_profile_sync_components_factory_impl_cc) = 4af8b20eda0523f3dde34da75c7c399f54383324
-SHA1 (patch-chrome_browser_task_manager_task_manager_cc) = 4898ab4417febb854a23fcdbf8650c3f06392ada
-SHA1 (patch-chrome_browser_tracing_crash_service_uploader_cc) = 88a67080eafa8fa391d6067a0a2260fe1ac26ab5
-SHA1 (patch-chrome_browser_ui_app_list_app_list_service_cc) = ad91dbf0ce8833159e2df86b28cefd74adee58a0
-SHA1 (patch-chrome_browser_ui_ash_system_tray_delegate_common_cc) = 6231200d136312702f4d98222dc02ab99e3cf963
-SHA1 (patch-chrome_browser_ui_aura_chrome_browser_main_extra_parts_aura_cc) = c870fc0454f60fefcbade4d4082e1150f6625538
-SHA1 (patch-chrome_browser_ui_aura_chrome_browser_main_extra_parts_aura_h) = 2ad86cdd720b1c547b1ebe549b6b14db9f3a9ddf
-SHA1 (patch-chrome_browser_ui_browser_command_controller_cc) = 07e43d5545cc5f33b0c79d7e8fede393b95ddaf4
-SHA1 (patch-chrome_browser_ui_browser_view_prefs_cc) = 14538a9b467c81251e8b22a4b31df3f613d44f8b
-SHA1 (patch-chrome_browser_ui_exclusive_access_exclusive_access_bubble_cc) = 375bbfbd7980ca5c9c10f2dbd96da9abc5afaade
-SHA1 (patch-chrome_browser_ui_panels_panel_manager_cc) = 50c199ce6540c26d4a19079b9523533c22175e4d
-SHA1 (patch-chrome_browser_ui_startup_bad_flags_prompt_cc) = 165b7df74d654274a793b7e3669ae3c780ea79ff
-SHA1 (patch-chrome_browser_ui_startup_startup_browser_creator_cc) = 903ec4cf3da37e15d80178fea7c12ba56d43bf7f
-SHA1 (patch-chrome_browser_ui_toolbar_app_menu_model_cc) = 39ed45cb82dd2493841b2343c49a6cb9e1111ba4
-SHA1 (patch-chrome_browser_ui_views_accelerator_table_cc) = d1b3a09efa0974652e1de3d15e7d0c14e217bea1
-SHA1 (patch-chrome_browser_ui_views_app_list_linux_app_list_linux_cc) = cee38e0121a8531e005754d86bbf753e71c03713
-SHA1 (patch-chrome_browser_ui_views_apps_chrome_native_app_window_views_aura_cc) = c618db278e8a1605abe124b63ae3c9b4bac871a9
-SHA1 (patch-chrome_browser_ui_views_ash_chrome_browser_main_extra_parts_ash_cc) = 80b2031d9da0cea968c7c6a998cf4eca41bff38a
-SHA1 (patch-chrome_browser_ui_views_chrome_views_delegate_cc) = eb776e45fcd640bce49d35f27ac5e4de294b107d
-SHA1 (patch-chrome_browser_ui_views_chrome_views_delegate_h) = 7700432094ce1a37785ab981162e9f5d5f688052
-SHA1 (patch-chrome_browser_ui_views_exclusive_access_bubble_views_cc) = 33415e9e2f848e9d40ec8ace871085c67a65c7d4
-SHA1 (patch-chrome_browser_ui_views_first_run_dialog_cc) = 1f43f3ce85eaaf5892bdc23798b8348299325ca6
-SHA1 (patch-chrome_browser_ui_views_frame_browser_frame_cc) = 14e526301bc3ef67b72ae7a8b05e836ecfdd1b5f
-SHA1 (patch-chrome_browser_ui_views_frame_opaque_browser_frame_view_cc) = b14074dc8b7855ba9f73463234dbf2e0e77ca2f5
-SHA1 (patch-chrome_browser_ui_views_frame_opaque_browser_frame_view_layout_cc) = a11e78ce31bb493832a7bde80843b7d4caf55108
-SHA1 (patch-chrome_browser_ui_views_frame_opaque_browser_frame_view_platform_specific_cc) = 3291d608f3ca994ab893c1751af6220c36a4be44
-SHA1 (patch-chrome_browser_ui_views_frame_system_menu_model_builder_cc) = 24c5cd9b35956347f025f4ac6e2e767d4e08f543
-SHA1 (patch-chrome_browser_ui_views_message_center_message_center_frame_view_cc) = 50d434e4a174e78b8ad801830326fa72dcfb4965
-SHA1 (patch-chrome_browser_ui_views_panels_panel_frame_view_cc) = ab00646fc5baf11d6020ceadd5c82b5e2e5054e2
-SHA1 (patch-chrome_browser_ui_views_tabs_tab_drag_controller_cc) = 4fc6856ac80ad8d28964174b42a9e317f0411bfc
-SHA1 (patch-chrome_browser_ui_views_tabs_tab_strip_cc) = 0249994c09d2d2e1b3289f08afc715c41f9e7992
-SHA1 (patch-chrome_browser_ui_views_task_manager_view_cc) = 6c89c828db2b4d3c557788961847e0b4818ec384
-SHA1 (patch-chrome_browser_ui_webui_about_ui_cc) = f570261e0753d7257a979a2f222339a9746d78d8
-SHA1 (patch-chrome_browser_ui_webui_chrome_web_ui_controller_factory_cc) = 5e3d8b26b2bcfb8cc5369a267443dac16dabe3df
-SHA1 (patch-chrome_browser_ui_webui_options_browser_options_handler_cc) = 5fe653d1d1840f17c03d191608bfdb824628365c
-SHA1 (patch-chrome_browser_ui_webui_options_browser_options_handler_h) = 427d1c0d6ee8ee2c5bc887fd68bb315a67f98308
-SHA1 (patch-chrome_browser_web_applications_web_app_cc) = 6e2a887cc9c624dc03fd7d04dc7f87070870c441
-SHA1 (patch-chrome_browser_web_applications_web_app_h) = 2e29d2fc4a43c323d19340ecb7e058ab56605bff
-SHA1 (patch-chrome_chrome_browser_extensions_gypi) = abe0edac09db893522f6f4a395832e551e80e708
-SHA1 (patch-chrome_chrome_browser_gypi) = 0e7094e853ab946f42697d032a239d3a7c7c6bc4
-SHA1 (patch-chrome_chrome_browser_ui_gypi) = a13ba112e481d781b4a2c13a3c7bc2801fc039f0
-SHA1 (patch-chrome_chrome_common_gypi) = 4c468049a0e87bc0fa26bcbc139b50129260583b
-SHA1 (patch-chrome_chrome_exe_gypi) = 63e7250528190df07baeaa1ea68c2b44bf9ca13c
-SHA1 (patch-chrome_chrome_utility_gypi) = c57ee47a9a3f1c75e90f3bf0281601f56e758786
-SHA1 (patch-chrome_common_chrome_paths_cc) = b142a2b8cd957d649375bed511ecf60d6fc8efd7
-SHA1 (patch-chrome_common_chrome_paths_h) = f2f81cdae75d284f03031506d2c2445c98a7a9ce
-SHA1 (patch-chrome_common_chrome_paths_internal_h) = f3affe09f488a9b338de64a514abe29596388b4b
-SHA1 (patch-chrome_common_chrome_switches_cc) = 1554430d18baba0dfdbba85e5ef89f25c224e9ea
-SHA1 (patch-chrome_common_chrome_switches_h) = eba8d6990e30876ff53322cd67c73b6112b8b5ac
-SHA1 (patch-chrome_common_extensions_api_schemas_gypi) = b0f1a619beaea53f36ec5bb23d80c00330cc8af2
-SHA1 (patch-chrome_common_extensions_command_cc) = 60c213e0d19e15e818dc6d4bd943bc1aa36b73fc
-SHA1 (patch-chrome_common_pref_names_cc) = 760e48ae960879ad84de6fcd839371267cee97ab
-SHA1 (patch-chrome_common_pref_names_h) = d80fa77ecc5f52950a812ce5d94d883f8feac751
-SHA1 (patch-chrome_common_url_constants_cc) = 5fab96137e9fd2225c3cc6f4d2d341ad07149696
-SHA1 (patch-chrome_common_url_constants_h) = 870a3fc989ce959ed652fd6d8967d897c2c54c47
-SHA1 (patch-chrome_common_variations_fieldtrial_testing_config_gyp) = 99cd9876a16562438ef8b1654cc83b87dc9ad961
-SHA1 (patch-chrome_policy_templates_gypi) = f9522beb6273bbcd8b94703ae7687a7133d05925
-SHA1 (patch-chrome_renderer_resources_neterror_js) = e8ee00fece51cbd0b3385cb615bb76b30b7e4ecf
-SHA1 (patch-chrome_utility_media_galleries_image_metadata_extractor_cc) = 228a256a739959df3f86d9ba540db9264363511c
-SHA1 (patch-chromecast_browser_cast_browser_main_parts_cc) = 1274481d5299facf03b75c1e5c66ea72cd97062a
-SHA1 (patch-components_audio_modem_modem_impl_cc) = a596a19ed3cdd176f81d587d8949bfda6e8dced8
-SHA1 (patch-components_cookie_config_cookie_store_util_cc) = 84fe0a3c9aa58e1f0da459b417f53e13a9c654bd
-SHA1 (patch-components_html_viewer_blink_settings_impl_cc) = 1f8248a563661fd271711b3d33f12be67c548df3
-SHA1 (patch-components_metrics_drive_metrics_provider_linux_cc) = f73d6b75ddf545564d711d788d9860d9194e0065
-SHA1 (patch-components_metrics_gypi) = 5932c1821a0e77ffddb9e9a603f1da50a5d198ae
-SHA1 (patch-components_omnibox_browser_omnibox_field_trial_cc) = 62abbe18985df360dd151096cab81280c38ff706
-SHA1 (patch-components_policy_resources_policy_templates_json) = 55cc8085d972225d6403b8cbf84c4b5c393c72ca
-SHA1 (patch-components_policy_tools_generate_policy_source_py) = 97b27e9cb765b5d970ccaa1e2979e77f2c7b3da6
-SHA1 (patch-components_printing_renderer_print_web_view_helper_h) = 77954534b06a685ad08ee458177bf167a31c95c3
-SHA1 (patch-components_storage_monitor_gypi) = 52bd6e07a286b8d086cca167dd71448a21a11085
-SHA1 (patch-components_storage_monitor_storage_monitor_openbsd_cc) = 574ee9b66c47e69476ecea9b60403195760157e1
-SHA1 (patch-components_storage_monitor_storage_monitor_openbsd_h) = 75c718e1b535ae2cfedce3be7d1fcfa7db83b0eb
-SHA1 (patch-content_app_content_main_runner_cc) = 2f6d10b06e1a4734e5dd87a2c144c1e13baf6ca2
-SHA1 (patch-content_browser_accessibility_browser_accessibility_h) = 26e317a61531a01a795a7fc4094b3968accd6c4c
-SHA1 (patch-content_browser_accessibility_browser_accessibility_manager_h) = 4d81d67df5b7b945ff553efa2c82510cc032cb48
-SHA1 (patch-content_browser_browser_main_loop_cc) = e4a5ae6cb29cf55ef7dfd83254745b88b7805549
-SHA1 (patch-content_browser_child_process_launcher_cc) = 44a9c8c5ee0cffc88df3e5c0e9b2dd1fb444ef00
-SHA1 (patch-content_browser_devtools_protocol_color_picker_cc) = 0bc57382c9b4156e2a8f24c4ff7911637a7bb408
-SHA1 (patch-content_browser_download_base_file_cc) = c3341c718ba069ff704db8b6a4e7032d3ea350bb
-SHA1 (patch-content_browser_download_base_file_linux_cc) = eaa7a2700bc957aed8db9ece2db04d12d52b789a
-SHA1 (patch-content_browser_gamepad_gamepad_provider_cc) = 976512b93af553a3643f81ac64cb5041bb94a9d7
-SHA1 (patch-content_browser_geolocation_location_arbitrator_impl_cc) = d666c91a784213695b93313773136892e5de7d2b
-SHA1 (patch-content_browser_gpu_gpu_data_manager_impl_private_cc) = 32c1dcf88bc928d59d2bf2fdf752fbf13095da37
-SHA1 (patch-content_browser_gpu_gpu_internals_ui_cc) = a9a5bb55779543496b895171e8ad2ac8d5ffc9c5
-SHA1 (patch-content_browser_power_usage_monitor_impl_cc) = d99b6d741efede2803b33a9d42bb8e63679afafb
-SHA1 (patch-content_browser_renderer_host_p2p_socket_dispatcher_host_h) = 9ade8cdd86d0072195418f87e70a85ebd5b8a267
-SHA1 (patch-content_browser_renderer_host_render_widget_host_impl_cc) = 08fd30e3be2745a1469aa1eb9e88403ceb784c3d
-SHA1 (patch-content_browser_renderer_host_render_widget_host_view_aura_cc) = cd2add3c89e865bfb364720288df1e220b2a59fb
-SHA1 (patch-content_browser_time_zone_monitor_cc) = dfd1abe62286c835d5bab1b55cfeebdda6a24ee7
-SHA1 (patch-content_common_gpu_gpu_memory_manager_h) = 55bc32d264cf39152656cb9b477277b0ffc5e9d3
-SHA1 (patch-content_common_sandbox_init_openbsd_cc) = 9ce35cf6d87308c441c53f85fd5815436a0fe098
-SHA1 (patch-content_common_sandbox_init_openbsd_h) = 2a7dea923f5fe36f21a6ae7d4daa50a437582051
-SHA1 (patch-content_common_set_process_title_linux_cc) = cad168cb2b93975428326cb4169777121336541b
-SHA1 (patch-content_common_set_process_title_linux_h) = a1f32b0983e76d022381c96b14af8ed95932590a
-SHA1 (patch-content_content_browser_gypi) = 41c356f642cd4c0ef78a1cda95535bb90288bc86
-SHA1 (patch-content_content_common_gypi) = 103e6a27ecd6d4d66beda0bd82f2d8770fcbfa5a
-SHA1 (patch-content_content_renderer_gypi) = da0e3e9e3fda00ce139ded758e7121891b904f76
-SHA1 (patch-content_gpu_gpu_main_cc) = 6bedfde52607e6452618f586cf9fe9b48fcb6704
-SHA1 (patch-content_ppapi_plugin_ppapi_plugin_main_cc) = 974cdaa3eac0ddfbee4e589275dae6255fb99df7
-SHA1 (patch-content_public_common_content_switches_cc) = cd28ee3320461272323196774ca9efef1700f2af
-SHA1 (patch-content_public_common_content_switches_h) = 1cca9d47e5ac4b847833ac38d33a449e0bba985a
-SHA1 (patch-content_renderer_devtools_v8_sampling_profiler_cc) = 913ff39dd25715ca41598579df859c4e0b8ce0f9
-SHA1 (patch-content_renderer_render_thread_impl_cc) = 571fe2ea03a0708e4b6c85ea3fa8cdac8c4f91ca
-SHA1 (patch-content_renderer_renderer_main_cc) = ae78f5433fce13aa6e410df597ec0e472b581ef2
-SHA1 (patch-content_renderer_renderer_main_platform_delegate_linux_cc) = daeaed28ed165249850cc6a2d31fcebca7d7fefd
-SHA1 (patch-content_renderer_webscrollbarbehavior_impl_gtkoraura_cc) = e8ed3e9b04ed45573774be67fddbfa595c35ec89
-SHA1 (patch-content_utility_utility_main_cc) = 535d865a3382f1bd6b1fe1ff720fd80965a4a7d9
-SHA1 (patch-dbus_property_cc) = aac8dbac19c35ef061597d51c92f1c9cd832cc14
-SHA1 (patch-device_battery_battery_gyp) = 2d823bf51903e728e7cdf336ac414a19b0cca62c
-SHA1 (patch-device_hid_hid_gyp) = 125418900118b96cda93e7b96ab02b898f6b26d1
-SHA1 (patch-device_serial_serial_gyp) = ef5a088281067304832941d1758084354b018a44
-SHA1 (patch-device_serial_serial_io_handler_posix_cc) = 92c4adea51a2384a762caa990e84d458aa0d473c
-SHA1 (patch-device_serial_serial_service_impl_cc) = fe22628a2018968343dadb16bd118977a08cfe81
-SHA1 (patch-extensions_browser_api_serial_serial_api_cc) = babb21fd791e98dda90706777e3fe39b4a2007c0
-SHA1 (patch-gpu_config_gpu_info_collector_linux_cc) = 6da163f3fdfcf3d3ff5ada94e204628d32717196
-SHA1 (patch-gpu_config_gpu_info_collector_linux_h) = 860ab6bf517529d362b191d8f07d1a763b338e3b
-SHA1 (patch-gpu_config_gpu_info_collector_x11_cc) = 2480f4516aaee3fe9260667c9f8b69bbe6d8bd93
-SHA1 (patch-gpu_gles2_conform_support_gles2_conform_support_gyp) = e8652f8073d21556e6516db06bb9c57dcd3f685e
-SHA1 (patch-gpu_gpu_config_gypi) = 6b5814c1ae639e8e116d875c38dc1eee2b74a741
-SHA1 (patch-gpu_tools_tools_gyp) = 130d03ff0912edbaeed39b04951eea56f07c27e8
-SHA1 (patch-media_audio_audio_input_controller_cc) = d377f5dae9e4909c05c05a5b74775a03afe12edb
-SHA1 (patch-media_audio_audio_manager_cc) = 40b99c7a90351f6c6f1b7bbed4db4376632c81c1
-SHA1 (patch-media_audio_audio_manager_h) = 335ea70acacc4090d481cd00458c793c0984672d
-SHA1 (patch-media_capture_video_fake_video_capture_device_factory_cc) = 0eb2fd38903b9f391125b050601795e880260f0c
-SHA1 (patch-media_capture_video_file_video_capture_device_factory_cc) = f3d13efd4052b2763290c7685e50d4fc2e7ce09d
-SHA1 (patch-media_capture_video_video_capture_device_cc) = 4f92b89b1c5105adc7aaae3cd9a63cd55176552f
-SHA1 (patch-media_capture_video_video_capture_device_factory_cc) = f9892013e921a76e8c2b2ef28e4d3e423821526e
-SHA1 (patch-media_capture_video_video_capture_device_h) = 22bc674aa3ca1f8d9bd226e012240de5787955be
-SHA1 (patch-media_media_gyp) = 9d1b5376dd145f4d0d151080922ce0cfda48ad53
-SHA1 (patch-native_client_build_compiler_version_py) = 36a1702f0519c2b6574825cf6c84e2e32c8467a1
-SHA1 (patch-net_base_address_tracker_linux_h) = e0b778ee12b5113d59497bc2652f361a2cdde3ec
-SHA1 (patch-net_base_net_util_cc) = f5addb2332f7a45388848197c3116a2b01dd51b1
-SHA1 (patch-net_base_network_change_notifier_cc) = f0bb4b1d4a4df338174cff9d287af74d8f4c5da0
-SHA1 (patch-net_base_network_interfaces_posix_cc) = 2c548950da9bb9c5bebc27060bb3e6896c7209e7
-SHA1 (patch-net_disk_cache_blockfile_disk_format_h) = a85434714e2898a1a308b930e1ea9562acd37f10
-SHA1 (patch-net_dns_address_sorter_posix_cc) = 94f9b8472e05413f6eb10d93b0ab5f5a06f8ef7b
-SHA1 (patch-net_dns_host_resolver_proc_cc) = ac8cb0a8b8a71b0b67695e69e6ceeeb47a6e4585
-SHA1 (patch-net_http_http_network_session_cc) = 904ddea534197a0328ebb24ed2ab353420af28d0
-SHA1 (patch-net_net_common_gypi) = 8b0ff4c411e4df8d6233562aa0a5d1579feaaaf4
-SHA1 (patch-net_net_gypi) = 4b71b17cc2f804202535d79e38603d2a3a91e248
-SHA1 (patch-net_proxy_proxy_config_service_linux_cc) = 496d53b18e03b505e3dfc4aadf287e6d8ffc40ce
-SHA1 (patch-net_proxy_proxy_service_cc) = 8cae0017fd9471d18c9c8e46e04d3e1a1d19d1d8
-SHA1 (patch-net_socket_socks5_client_socket_cc) = 2e0c6ceb0904f778964913d033d9c394b476c561
-SHA1 (patch-net_tools_get_server_time_get_server_time_cc) = d0ab552e74a23e3d6c58b03e33d14b6580644fbd
-SHA1 (patch-net_udp_udp_socket_posix_cc) = 2857e597555618cdf1b865b8de5d20f6def5aaf6
-SHA1 (patch-net_url_request_url_request_context_builder_cc) = 9fc8cabeb96f9d56cf32cbd8878d3a5329d2838f
-SHA1 (patch-pdf_pdfium_pdfium_engine_cc) = e872b2a97b03b5524683b2168c97d67675db3301
-SHA1 (patch-ppapi_shared_impl_private_net_address_private_impl_cc) = 11a1cb636c4066aeff9a27d30e4456a479a87962
-SHA1 (patch-printing_backend_cups_helper_cc) = a3cd4669bcd0784640625ee192acb3efef4ef8fa
-SHA1 (patch-printing_printing_gyp) = c7dadc5469c1932f81442e8e9e2d2dcfe0fb3822
-SHA1 (patch-remoting_remoting_all_gyp) = e69a348f56c158f2a49b8ac7b1a23a0b23fc39b3
-SHA1 (patch-remoting_remoting_host_gypi) = 3a457fee325d254ac3932f600636f905b2bcb9d2
-SHA1 (patch-skia_ext_SkMemory_new_handler_cpp) = e1748ede734f05ac5081f14e9ed2a75334dc940e
-SHA1 (patch-skia_skia_chrome_gypi) = e9bc20864bdaf0a5514715ba8a917f8c85846843
-SHA1 (patch-skia_skia_common_gypi) = 2b40cfcfe9875f13350062e5f7031bd306725493
-SHA1 (patch-sync_util_get_session_name_cc) = c4509dc7f0b07ca236dcc20c53c12b7c8ec447ff
-SHA1 (patch-sync_util_get_session_name_linux_cc) = 4e7379a42804000888295d23309c4e4fa2e7e034
-SHA1 (patch-third_party_WebKit_Source_bindings_core_v8_V8ScriptRunner_cpp) = 4f3278861f6203a7d141209f470b8db7f96668eb
-SHA1 (patch-third_party_WebKit_Source_core_core_gyp) = edb3d1209b2fcf9655b91bc0e44069e1cc61e9d3
-SHA1 (patch-third_party_WebKit_Source_platform_blink_platform_gyp) = 290089a150d9f7fd760e4e5a26d4dc747927cdc9
-SHA1 (patch-third_party_WebKit_Source_platform_fonts_SimpleFontData_cpp) = 09e6e4089edd9bbcae5456788d6694f4ce3f6142
-SHA1 (patch-third_party_WebKit_Source_platform_heap_StackFrameDepth_cpp) = cfd3f5b45e675f661a70a7b71922cb062ceeca43
-SHA1 (patch-third_party_WebKit_Source_platform_heap_ThreadState_cpp) = ac019ce7c4b4b4bc7908d9d06aaeeb318eb62cb8
-SHA1 (patch-third_party_WebKit_Source_platform_heap_ThreadState_h) = 539acfa00e976ab7b673ede198a9be6bb235a798
-SHA1 (patch-third_party_WebKit_Source_web_PopupMenuImpl_cpp) = 1b4c3f7dd8ecdf197c3ed68afd04601cfa3a1b70
-SHA1 (patch-third_party_WebKit_Source_web_web_gyp) = 06407978dde3db75315106edbfc7bb1af2b9749b
-SHA1 (patch-third_party_WebKit_Source_wtf_MathExtras_h) = daca99eb6a0927cbb725ab29d39a4983942f01ee
-SHA1 (patch-third_party_boringssl_src_crypto_bn_generic_c) = 9c28b4dcae207c01f3d872317c55ca716ed0a8ae
-SHA1 (patch-third_party_ffmpeg_chromium_config_Chrome_openbsd_ia32_config_asm) = 2c01287cb6458a46212fda061bb52940926ff5bc
-SHA1 (patch-third_party_ffmpeg_chromium_config_Chrome_openbsd_ia32_config_h) = 08006e02acc835c245da640591b8216033dd7740
-SHA1 (patch-third_party_ffmpeg_chromium_config_Chrome_openbsd_x64_config_asm) = cf2e69f5a2946e9b56bbd3040dd403c2a1b9d279
-SHA1 (patch-third_party_ffmpeg_chromium_config_Chrome_openbsd_x64_config_h) = 9c4493e198414e6ae0e423b87068f342b5ea5325
-SHA1 (patch-third_party_ffmpeg_ffmpeg_generated_gypi) = 15175c2de1838c5641dd00081bd894246e7c7a0c
-SHA1 (patch-third_party_ffmpeg_libavcodec_x86_cabac_h) = cb1528d562192adaa530e88cf03dc2d6dc8a0ba1
-SHA1 (patch-third_party_ffmpeg_libavutil_autorename_libavutil_cpu_c) = 68f65b3f79d0b29c6afcbac83460a0cc78e79547
-SHA1 (patch-third_party_ffmpeg_libavutil_cpu_c) = 3a63686ab9832ad4e5a61d800e4e977d3e17c4e8
-SHA1 (patch-third_party_ffmpeg_libavutil_mem_c) = de0fcf05784ad1c7f0893180857e1301fdb8f556
-SHA1 (patch-third_party_iccjpeg_iccjpeg_gyp) = bbdf151689b866987604145f803290be06fe2504
-SHA1 (patch-third_party_libXNVCtrl_NVCtrl_c) = c16a2df29a1a6e387d9f843346f00b1d5cdcf443
-SHA1 (patch-third_party_libXNVCtrl_libXNVCtrl_gyp) = a66bc420b99ccf700cfa4d7b11d6aabd25ef2210
-SHA1 (patch-third_party_libjingle_libjingle_gyp) = 74afffc19a27c9da965bff5da9ee7e48ff0fb7ad
-SHA1 (patch-third_party_libjpeg_turbo_libjpeg_gyp) = 5e6dc6e2fcc40d2cf287f2babcb2855154e6725e
-SHA1 (patch-third_party_libusb_libusb_gyp) = 0c56206c9319442a09b2a2cb851dacf69347c704
-SHA1 (patch-third_party_libusb_src_libusb_core_c) = bbec3ef05c3926e4e8498db5e649542347d30338
-SHA1 (patch-third_party_libyuv_libyuv_gyp) = 748687e20b3b1f9a7f13895c24ef2048d6dda635
-SHA1 (patch-third_party_pdfium_build_standalone_gypi) = 75fb884511e6df5c663cbc4eee5b4b0bb36f8e93
-SHA1 (patch-third_party_pdfium_core_include_fxcrt_fx_system_h) = 1492e01427a18f9a4c0a1fd9ed5cfc999ec0bf0c
-SHA1 (patch-third_party_pdfium_core_src_fxge_ge_fx_ge_linux_cpp) = c0c1f003f188eb0e81aa4c04d4fa436d30381653
-SHA1 (patch-third_party_pdfium_fpdfsdk_src_javascript_JS_Value_cpp) = 5a3dfd92c99f2558cfb2bf21252a5a68d5f814db
-SHA1 (patch-third_party_pdfium_pdfium_gyp) = dacdbd0cf4feb0151fd2026fca64c4a20997be27
-SHA1 (patch-third_party_pdfium_third_party_libopenjpeg20_opj_malloc_h) = 6dd75272092cf514797cd3b6effd45c4b15fa792
-SHA1 (patch-third_party_protobuf_src_google_protobuf_stubs_atomicops_h) = ae498290d29142ca009470a280e6b39277dfa42a
-SHA1 (patch-third_party_protobuf_src_google_protobuf_stubs_strutil_h) = c22a732020f9961e8f46ed9f2f3cd2d248b75a12
-SHA1 (patch-third_party_skia_gyp_ports_gyp) = ea0f2bf37ac2bd88ab508bd5cd96f1cb28a2c2fa
-SHA1 (patch-third_party_skia_src_core_SkVarAlloc_cpp) = b15e8168fca2b5661ffb9ed20ec21014dd0a6d63
-SHA1 (patch-third_party_skia_src_gpu_GrAutoLocaleSetter_h) = 8d422e4f6d54375f098a17413e193771abda56bb
-SHA1 (patch-third_party_webrtc_base_base_gyp) = 982281cc8b3b3c02980e5d40a87a1f33a2cd2069
-SHA1 (patch-third_party_webrtc_base_httpcommon_cc) = 987aa71231c9285d4cbbebc5d1e6cba841d373cb
-SHA1 (patch-third_party_webrtc_base_network_cc) = ceea6a76d7d3079a0bba27648d04a1111320286b
-SHA1 (patch-third_party_webrtc_base_physicalsocketserver_cc) = 4301cea4cb10623b414407ed45d1b77b7d877e55
-SHA1 (patch-third_party_webrtc_base_platform_thread_cc) = 0c7ba73e78d85ca5ef3f0b795f3feb8b3defc93c
-SHA1 (patch-third_party_webrtc_base_stringutils_h) = 3dbf9b71f3fd08d07c8d5716b8405bc210d9c603
-SHA1 (patch-third_party_webrtc_build_common_gypi) = 87211788de131393f021a17f936bc7ded7aa8397
-SHA1 (patch-third_party_webrtc_system_wrappers_source_atomic32_posix_cc) = a26c68ee817cb909626054d7b175157e7a76e51c
-SHA1 (patch-third_party_webrtc_system_wrappers_source_condition_variable_cc) = 5de636543871e7772bf07d2d1b730c42cb01e91a
-SHA1 (patch-third_party_webrtc_system_wrappers_source_thread_posix_cc) = 545f642dff52aa509fc05e579269ece41ffaa6da
-SHA1 (patch-third_party_webrtc_system_wrappers_source_timestamp_extrapolator_cc) = 7c34e6f62d21b360918e1a5d0d0194c9bb64a08f
-SHA1 (patch-third_party_yasm_source_config_openbsd_config_h) = 7e9adef1ffaa8602359e80717eae307bb2ce5934
-SHA1 (patch-third_party_yasm_source_config_openbsd_libyasm-stdint_h) = fb026c462e3446645a8425d340da6d573df08a1c
-SHA1 (patch-tools_gyp_pylib_gyp_generator_make_py) = b771c9f8a023cec99fb6241ac3de196554c14e34
-SHA1 (patch-tools_gyp_pylib_gyp_generator_ninja_py) = d216a6ec667cf9d609c0ebea13dfff363d53d905
-SHA1 (patch-ui_accessibility_accessibility_gyp) = c7082c5f84dcd479c2d6359b6267e56d30924c68
-SHA1 (patch-ui_accessibility_platform_ax_platform_node_cc) = c298673c5043b2ce2cc578ef4570bac1c7c04572
-SHA1 (patch-ui_app_list_app_list_constants_cc) = 2ba236a14421ca87ea551d50a94f98a7bc337338
-SHA1 (patch-ui_app_list_app_list_constants_h) = c6973d6e5841a5e65f84b835991acddcd36cbc2d
-SHA1 (patch-ui_app_list_app_list_menu_cc) = e829349500bdc25eae7eee9f9360edbf49bb462f
-SHA1 (patch-ui_app_list_views_app_list_item_view_cc) = 568d04350ebdd4f544929c878ea9b35517b62494
-SHA1 (patch-ui_app_list_views_app_list_view_cc) = b6ede81be2dbbd79a50adfcd19c2e6ce3780a602
-SHA1 (patch-ui_base_ime_input_method_factory_cc) = fefd16eae7f8cd4ead2ade4ccfb9d056df338e30
-SHA1 (patch-ui_base_resource_resource_bundle_cc) = c1290d6f6f2e3f573e4c79f114f40020261c2529
-SHA1 (patch-ui_base_ui_base_gyp) = 2d264f38d26697da1e762a9ba5fc3932d287106a
-SHA1 (patch-ui_base_user_activity_user_activity_detector_cc) = 8dd555d51d38e366a7b9b67bfc9a03eff0bd53e3
-SHA1 (patch-ui_base_webui_web_ui_util_cc) = a132558563ec216b99b9cad0568b8f637293feb5
-SHA1 (patch-ui_events_devices_x11_device_data_manager_x11_cc) = 0421727d06c693d8c12803d3c0ba2c8a9d862927
-SHA1 (patch-ui_events_event_switches_cc) = 00558ffbeda919cc9ca9749d6c018a934daeac25
-SHA1 (patch-ui_events_event_switches_h) = 349428f29fa9f8d27033cd58ff36b4d49414cfc4
-SHA1 (patch-ui_events_keycodes_dom_keycode_converter_cc) = 17dcf8067a36bf596aaafd45666c46a0d6b38ea9
-SHA1 (patch-ui_events_x_keysym_to_unicode_h) = 917ff528fd8b5203cfb282ff8e024c7b1b3a7180
-SHA1 (patch-ui_gfx_canvas_skia_cc) = 155bef7b2bd2b57d60175fc96013fc67305749ce
-SHA1 (patch-ui_gfx_codec_png_codec_cc) = 0bd53edfcc3970a3f6abbc1b1fac5317f30d1549
-SHA1 (patch-ui_gfx_gfx_gyp) = 81f037af6264bbd9f5eee42bec4a4586126ff5fa
-SHA1 (patch-ui_gl_generate_bindings_py) = d366d93a465742c3e3186b89c52433f38ac9185f
-SHA1 (patch-ui_gl_gl_bindings_api_autogen_glx_h) = d39b93af51bc9db2bd644d29ed22451d09d25f4f
-SHA1 (patch-ui_gl_gl_bindings_autogen_glx_cc) = d08bc04feaf7e5355636c75bd547cfa58297932e
-SHA1 (patch-ui_gl_gl_bindings_autogen_glx_h) = c6050abbd54ee8968e224a0afad651b6bc77bf06
-SHA1 (patch-ui_gl_gl_gyp) = bbabb14ab15f7093bea363744cebe036ce6c4ebc
-SHA1 (patch-ui_gl_gl_surface_glx_cc) = ac4b8e96a7bd87269dbd0b230a89145bdda257ab
-SHA1 (patch-ui_gl_sync_control_vsync_provider_cc) = eef88aa6b872e439abf53f788669db76d7505caf
-SHA1 (patch-ui_message_center_message_center_style_h) = 0b720748fe6e43a606f564bf295d2c23e4f6b507
-SHA1 (patch-ui_message_center_views_message_center_button_bar_cc) = 5343cfe7bbb7685a969c37104f5a9a1ed7c8bb57
-SHA1 (patch-ui_message_center_views_message_center_button_bar_h) = 98d0bb2a3767c431adb841177054478fc5681179
-SHA1 (patch-ui_message_center_views_message_center_view_cc) = bda5720ff379ce81ac4da65bde5395280389758c
-SHA1 (patch-ui_message_center_views_notification_view_cc) = a8aa0654d97df87eb0ca3d64f1c5555cf13578b9
-SHA1 (patch-ui_resources_ui_resources_grd) = e6a3913a75ce643d11f27ffcb3230d61b29b2dc2
-SHA1 (patch-ui_shell_dialogs_select_file_dialog_cc) = 4dcbf7c0a81159b3fc0c8c714111012d2ea20d72
-SHA1 (patch-ui_touch_selection_ui_touch_selection_gyp) = bb8350c679a442bd695cbd4050e9b5a86652d305
-SHA1 (patch-ui_views_accessibility_native_view_accessibility_cc) = 6e020ca60188f6de769421fe6b87d334fce08521
-SHA1 (patch-ui_views_bubble_bubble_delegate_cc) = 5a9438c53dacf12e9f0f87aa357c76a9496a8674
-SHA1 (patch-ui_views_controls_button_label_button_cc) = 354c3e821e3cbe0c1ab5bbe81d336d598080a864
-SHA1 (patch-ui_views_controls_combobox_combobox_cc) = 338d11d433422d26b7cdb5e6f6417387912a5e32
-SHA1 (patch-ui_views_controls_scrollbar_base_scroll_bar_cc) = c9c43d95fc167b77c1800025bcef072bea382051
-SHA1 (patch-ui_views_controls_textfield_textfield_cc) = 2e7e71cd41b276f54e2d37a8f905ec19b1c1e768
-SHA1 (patch-ui_views_controls_webview_webview_gyp) = 959443af686b1bb88ac581d9114e700d3cfb8042
-SHA1 (patch-ui_views_views_delegate_cc) = 8b862fc9cd4c6907150ef60f502e46a583bfb9ec
-SHA1 (patch-ui_views_views_delegate_h) = 75294f0dc80772e1ca0c0c2cf37e04ae9151f7ac
-SHA1 (patch-ui_views_views_gyp) = 0e59654149b5425c622e572624b90b0f50725638
-SHA1 (patch-ui_views_views_switches_cc) = 4c6f396375e8de277aa4183e6cde098914518bfa
-SHA1 (patch-ui_views_window_custom_frame_view_cc) = 0ac8793cbf21c9e3fad016bebcef5746738349b6
-SHA1 (patch-ui_views_window_dialog_delegate_cc) = a34e24a0f48662f7ee38f165b944ad6110f65abd
-SHA1 (patch-ui_webui_resources_js_cr_js) = e7e4e8d2d221a2e0299bbb515be5a87b0c31920e
-SHA1 (patch-ui_webui_resources_js_util_js) = d72f6a9562c5884bf3a05a67b408991ad32d2f20
-SHA1 (patch-v8_src_base_platform_platform-openbsd_cc) = cd35ecef3a85828e819d1bd7b3c12015b4c19954
-SHA1 (patch-v8_src_base_platform_platform-posix_cc) = 107630bc69fbce716bbc23c71f6732baf3783d00
-SHA1 (patch-v8_src_globals_h) = 01a239efe9f5ea559d196ca0d34f10364c91587a
-SHA1 (patch-v8_src_log-utils_h) = 40ae4cfa4abf9e31a6b11f958725a489bc53f29a
+SHA1 (chromium-51.0.2704.106.tar.xz) = 5212b0f96be80c0146f7caf0883cfb39a3827177
+RMD160 (chromium-51.0.2704.106.tar.xz) = 7de0ee47b71dbd8e39f4259590e04e5c10ac7c6f
+SHA512 (chromium-51.0.2704.106.tar.xz) = 2afd73ae6942f7d3092e54d2f24bf251baa28bd40b66604fab7a5f854ccfc55b839f7860b2c2c09e35174da66f24e0fef2cb1f6d2e1733ad8da1f6cdb4a4e308
+Size (chromium-51.0.2704.106.tar.xz) = 448656636 bytes
+SHA1 (patch-base_base.gyp) = 8bcdefdacfc1cb979c6330eecbe3a4ee33c0aff8
+SHA1 (patch-base_base.gypi) = b0900d5b87964590f83c53cf1901c902120540b0
+SHA1 (patch-base_debug_debugger__posix.cc) = b1983a4bb3a9429394b5bc0665eb66b14f228204
+SHA1 (patch-base_debug_stack__trace__posix.cc) = 08dc7ad292480c3a07787df7e837266c730c10fb
+SHA1 (patch-base_files_file__path__watcher__kqueue.cc) = d1b16fb59a737f60f61bbcb938848df024bd4248
+SHA1 (patch-base_files_file__path__watcher__kqueue.h) = fef4498a2495ed08e1986910d0872abe5889b2b6
+SHA1 (patch-base_i18n_icu__util.cc) = 29b269d1491a0d59436d14354358646f10193393
+SHA1 (patch-base_i18n_icu__util.h) = e6dfc47010581c67d60e80a36e422cda1a33d5ba
+SHA1 (patch-base_posix_unix__domain__socket__linux.cc) = b4d5cd2d70ee8b3021a2e4859af457dd62abb244
+SHA1 (patch-base_posix_unix__domain__socket__linux__unittest.cc) = 94f59b1609a950884cc461ea96350a04df09052b
+SHA1 (patch-base_process_internal__linux.h) = dec9c9f6c7509288a6574072391f77f9ae4c2316
+SHA1 (patch-base_process_launch.cc) = 6bb7c00ba79ab785e2640934a2274db8959ce02c
+SHA1 (patch-base_process_launch.h) = bfad5e02d9576e6dc9ee0410f8a0b9a99933369d
+SHA1 (patch-base_process_launch__posix.cc) = 243d3de308f1a3cf7cb063c78f238f7a00ccb78c
+SHA1 (patch-base_process_memory.cc) = cad48073d6cc898872c99c13a862694c0ce92269
+SHA1 (patch-base_process_memory.h) = 089a781ab84221113c130c44d2e77446cc6f1240
+SHA1 (patch-base_process_memory__stubs.cc) = 35909eff800e990b4275f27cf7c6d5d349828542
+SHA1 (patch-base_process_memory__unittest.cc) = cda374fec64d4ed8da56fd2468ce332fb961f575
+SHA1 (patch-base_process_process__info__linux.cc) = 943fdb9b1e3810d51c1a8692d60f83ba6b9d6e0e
+SHA1 (patch-base_process_process__iterator.h) = 8de7e317b4c95308ac689e2191074fc8ada3e27a
+SHA1 (patch-base_process_process__iterator__freebsd.cc) = b24cf46d4b59e9f4dd4336d9288a6ba75bf55e4f
+SHA1 (patch-base_process_process__iterator__netbsd.cc) = 3883cb0e2b8a88bd0ad14930e512928dcc844055
+SHA1 (patch-base_process_process__metrics.h) = 6f5b1dabf7d717527ffbe2bb03d915b2d7cc2335
+SHA1 (patch-base_process_process__metrics__freebsd.cc) = 652ce63118ef23d96fde23746d05a2d8472b09eb
+SHA1 (patch-base_process_process__metrics__netbsd.cc) = d15b5d980182e8b436f6bcf562bae2ec38a5629e
+SHA1 (patch-base_process_process__metrics__posix.cc) = 79d1d0c17a1044f4247b88eead9a902061ef1c3f
+SHA1 (patch-base_process_process__posix.cc) = d78ca399d2b3b8ff1eb8f221d9a191c076cf4180
+SHA1 (patch-base_security__unittest.cc) = f4d2004a5c218d428307283251824755be84c179
+SHA1 (patch-base_strings_safe__sprintf.cc) = 9b258ad5ac5bae6ee7e2ac9dcb256ba981a78df7
+SHA1 (patch-base_sys__info__freebsd.cc) = 1a6cd2157c1b0c9e747d1bc536913f177deb7738
+SHA1 (patch-base_sys__info__netbsd.cc) = 0f546a6b29855e1f6ccfe4c85d1b3a58479ed2c4
+SHA1 (patch-base_sys__info__posix.cc) = 96941a91abfc6a9fce620925081a8cb67e0b37b4
+SHA1 (patch-base_test_launcher_test__launcher.cc) = 80c81da421acd2b919f636dac92171b1f3ad259e
+SHA1 (patch-base_threading_platform__thread__linux.cc) = e503ec65860c76e983a74615bc5dc79a16a32a33
+SHA1 (patch-base_threading_platform__thread__posix.cc) = 2e6b12e2b5af5e01efacd34f023beb8e1fc61e1c
+SHA1 (patch-base_trace__event_process__memory__dump.cc) = 7c28a6ac88c6b812dab3c79e26bc8bc7f83678a1
+SHA1 (patch-base_trace__event_process__memory__dump.h) = 8f9fea6a2a271482a6e5290a8e768372683fe2de
+SHA1 (patch-build_build__config.h) = f6c09cbcf5d917da3104842ce307d60303707401
+SHA1 (patch-build_common.gypi) = 3ab9dc8b10debb863190e2b017528a123af68cc9
+SHA1 (patch-build_filename__rules.gypi) = 0c1a9ee4423933ac149c029d7b3fdc9bc7867e2d
+SHA1 (patch-build_linux_system.gyp) = c1b58d24d653be2926d47340304647faedc9c935
+SHA1 (patch-build_linux_unbundle_libwebp.gyp) = 05e963f78891c2954b5cdc4fb5f644135ad96b10
+SHA1 (patch-cc_layers_scrollbar__layer__impl__base.cc) = 294c29df3025d921482e7cdfa4b3351b6f2ab584
+SHA1 (patch-cc_trees_property__tree.cc) = 23a1a7d81e3244131856156ab6804786a9c74afd
+SHA1 (patch-chrome_app_chrome__main__delegate.cc) = be4ab117d7863f0c1eb9cd3f4d371c621c6d3619
+SHA1 (patch-chrome_app_chrome__main__delegate.h) = c77f0308ebe2ebb1387546c56dcbf4795b6d420d
+SHA1 (patch-chrome_app_chromium__strings.grd) = 8f3366066d34bfb962f67051ec2ac9bbe9b99018
+SHA1 (patch-chrome_app_generated__resources.grd) = c188fa5341e08104d0b6e554dd1db01b7277872d
+SHA1 (patch-chrome_app_resources_locale__settings.grd) = e3ed8bfd4b7710f7db5a520d290069145cc9ac16
+SHA1 (patch-chrome_browser_about__flags.cc) = 76ac78bc9e7f10a15ca4371a64a03a2124b51714
+SHA1 (patch-chrome_browser_browser__resources.grd) = 4f9c0100f67346c9dd5cdb8aac6796656340f01a
+SHA1 (patch-chrome_browser_chrome__browser__main.cc) = a65d7e33c9e0e6805dfa76f3e21ee2d911a73c83
+SHA1 (patch-chrome_browser_chrome__browser__main__linux.cc) = 1cc1c770e66218cfa78f647adb513326e475aaf2
+SHA1 (patch-chrome_browser_chrome__browser__main__posix.cc) = 01c77fce6837a9fc0db67c513b5af6e94d6d96e7
+SHA1 (patch-chrome_browser_chrome__content__browser__client.cc) = 809d14065a644abd31627dba613970daefb46c40
+SHA1 (patch-chrome_browser_chrome__content__browser__client.h) = eb0f643ac57ef93bfe3157648b840615b3268c8a
+SHA1 (patch-chrome_browser_defaults.cc) = 9e2700ed67c33295d411825914ed0c100d9a55e2
+SHA1 (patch-chrome_browser_diagnostics_diagnostics__writer.cc) = b3f4a473b73dd913e4728a2c35b132da16b11998
+SHA1 (patch-chrome_browser_diagnostics_diagnostics__writer.h) = 707a042df241f0213777021c144df4c1a80311ab
+SHA1 (patch-chrome_browser_download_chrome__download__manager__delegate.cc) = f78a966f29ff38028cc7bda6ce31aada673d9dc7
+SHA1 (patch-chrome_browser_download_download__commands.cc) = 9aad34dadfe72da3e1e6c9fcbc42aa0ca1554e29
+SHA1 (patch-chrome_browser_download_download__commands.h) = 956b6c87edd6415cf170d87716c43f5af0917343
+SHA1 (patch-chrome_browser_download_download__prefs.cc) = b315cf3f49e4699344e962cb09fef9b76db8dd47
+SHA1 (patch-chrome_browser_download_download__prefs.h) = 84cd1f4f8b0e1d34fc703d9fe304ecfad042d437
+SHA1 (patch-chrome_browser_download_download__query.cc) = ec7dab730d873f48b1fb5665076ab340fca86130
+SHA1 (patch-chrome_browser_download_download__shelf__context__menu.cc) = dada990d0acb5b9857feda8f2919e367588aab10
+SHA1 (patch-chrome_browser_extensions_activity__log_activity__log.cc) = 30ba8f4e19d79133b6aeebf11a3121b7c305a085
+SHA1 (patch-chrome_browser_extensions_api_image__writer__private_image__writer__private__api.cc) = c2fb46cc8fa4c5b433f024221ddc5d861702cb9c
+SHA1 (patch-chrome_browser_extensions_api_input__ime_input__ime__api.h) = e14719f5f2739f99cde3e5d0c4133a366b47bb27
+SHA1 (patch-chrome_browser_extensions_api_messaging_message__service.cc) = 6e7e9a67d508fdfafe09096dd4e2d01058b67825
+SHA1 (patch-chrome_browser_extensions_api_music__manager__private_device__id__linux.cc) = 55ce1f5d5b31f323455c28c5d74cc7ab5f6db3b7
+SHA1 (patch-chrome_browser_extensions_browser__context__keyed__service__factories.cc) = e8bca7a09ebda74d96d6d0187bb1df89d2eda029
+SHA1 (patch-chrome_browser_extensions_external__provider__impl.cc) = 613f6df298e2c7f81523aaf065fe78c16ef97bce
+SHA1 (patch-chrome_browser_extensions_window__open__apitest.cc) = a4db9bfcc8e7469cb7905b6feb9074524ce85d36
+SHA1 (patch-chrome_browser_gpu_gl__string__manager.cc) = f781e59274036acd5fcb92196a472f9c50019482
+SHA1 (patch-chrome_browser_gpu_gpu__feature__checker.cc) = 76090a3a033989c9cab91a25bfc9e46e8d28cd05
+SHA1 (patch-chrome_browser_interstitials_chrome__controller__client.cc) = d75a44a1522de433ec009d2254d278d3cdcab9a3
+SHA1 (patch-chrome_browser_media__galleries_fileapi_mtp__device__map__service.cc) = 63283052ae0a2c332458879078dcfa791eb0687c
+SHA1 (patch-chrome_browser_media__galleries_media__file__system__registry.cc) = 9685c93bf96b71e2abb5547fda2d077beac1f08a
+SHA1 (patch-chrome_browser_media_webrtc__log__uploader.cc) = 5a027f227257a5dded15c10a615c83f07edba11f
+SHA1 (patch-chrome_browser_memory__details.cc) = f28539c8c3474b98bdafa3e69c461d191fa29f9c
+SHA1 (patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.cc) = a56fb1f82abfb635f609d0c00480c422671845d2
+SHA1 (patch-chrome_browser_notifications_message__center__notification__manager.cc) = 363b48d2297998d08bcd864a6e2176766893e7be
+SHA1 (patch-chrome_browser_password__manager_chrome__password__manager__client.cc) = 6319ad5080b2945adacdcd74f1e9b79ad1d42f45
+SHA1 (patch-chrome_browser_plugins_plugins__resource__service.cc) = 299f9b210c8298a218fd14ab0a25cea027b7877c
+SHA1 (patch-chrome_browser_policy_policy__prefs__browsertest.cc) = 9870501ddc52ce6ce0b968497045b0a48caaeb48
+SHA1 (patch-chrome_browser_process__singleton__posix.cc) = 1b124cd631c52ab0138ea00e2dead805e2680302
+SHA1 (patch-chrome_browser_renderer__preferences__util.cc) = f51aae55d16f6779d00e56c943cffdf6c135bb7b
+SHA1 (patch-chrome_browser_safe__browsing_incident__reporting_incident__handler__util.cc) = cb916cc9cf09e0738b5466f88099cd3f34a02757
+SHA1 (patch-chrome_browser_search_local__files__ntp__source.cc) = bbebccfd637e738e1ce3c5dcd3fc5e8d361c23e5
+SHA1 (patch-chrome_browser_sync_chrome__sync__client.cc) = 4ade6fef16366aff828bd6059945e7de7cf3db04
+SHA1 (patch-chrome_browser_tracing_crash__service__uploader.cc) = ed3a9ae92855487d2026ea7a9088450755c5018c
+SHA1 (patch-chrome_browser_ui_browser__command__controller.cc) = 982195b9fd3f225a49faaa00aee040588e0d55a5
+SHA1 (patch-chrome_browser_ui_browser__view__prefs.cc) = 185e85c25de4f92d7b46978889ef756e5b0e3efc
+SHA1 (patch-chrome_browser_ui_exclusive__access_exclusive__access__bubble.cc) = c5f6bd04b62ee6c2a939d4ab1447c2693a28a88a
+SHA1 (patch-chrome_browser_ui_input__method_input__method__engine__base.cc) = 24201e7237c33c2e2e09b49678dd41b81b7c2feb
+SHA1 (patch-chrome_browser_ui_panels_panel__manager.cc) = 510a2289c49891dc6de447d9d5ef69608835e0cb
+SHA1 (patch-chrome_browser_ui_startup_startup__browser__creator.cc) = d31c7cd68d39ffe01afdee27ea17ac0527fe57be
+SHA1 (patch-chrome_browser_ui_toolbar_app__menu__model.cc) = 2d6728bd402bbb1a353dff11c7b4e009d5e9b751
+SHA1 (patch-chrome_browser_ui_views_apps_chrome__native__app__window__views__aura.cc) = be683a43a946a94a14e5d3f58523dceee13066b1
+SHA1 (patch-chrome_browser_ui_views_chrome__views__delegate.cc) = f2d0c44554206ab0566a1ec97cb4aa1e7eea7c05
+SHA1 (patch-chrome_browser_ui_views_chrome__views__delegate.h) = 1f6f272e0248aa27fa88e73e771dd10dfe0ff75e
+SHA1 (patch-chrome_browser_ui_views_first__run__dialog.cc) = 24f5890e1b35b4da7dcf54d7cd6d84e0f7ae609e
+SHA1 (patch-chrome_browser_ui_views_frame_browser__frame.cc) = 46bd39d7ec5b57ac12e8f4b0ff4e4d83d9eff296
+SHA1 (patch-chrome_browser_ui_views_frame_browser__root__view.cc) = 2ec5044b879aff539bbf1030b44857a37c5b2217
+SHA1 (patch-chrome_browser_ui_views_frame_browser__view.cc) = a3ee8ab565b7e14bbba8791e8be3e9dca97ba72f
+SHA1 (patch-chrome_browser_ui_views_frame_opaque__browser__frame__view.cc) = 4f1715427b1094992c96003a447565418352a3a9
+SHA1 (patch-chrome_browser_ui_views_frame_opaque__browser__frame__view__layout.cc) = 374008b6584529c97b9b7c4c04b32f3e0fd4b23d
+SHA1 (patch-chrome_browser_ui_views_frame_opaque__browser__frame__view__platform__specific.cc) = f959d815ca92e3eff5233f206a533e93f302a482
+SHA1 (patch-chrome_browser_ui_views_frame_system__menu__model__builder.cc) = 05b00fd7b25228ffd16d2cb02fad87131d5d3b1f
+SHA1 (patch-chrome_browser_ui_views_message__center_message__center__frame__view.cc) = d4e1f043878b383250c415300fc553cc1be878fb
+SHA1 (patch-chrome_browser_ui_views_panels_panel__frame__view.cc) = dece37969cf7373e259da07fcd1aa69100ee69c8
+SHA1 (patch-chrome_browser_ui_views_tabs_tab__drag__controller.cc) = ea789d7bc26772b62f822a0cfdfcf5090a8ed684
+SHA1 (patch-chrome_browser_ui_views_tabs_tab__strip.cc) = dee6b63de6a1ff511b9f47e3eff1017c258e3dfd
+SHA1 (patch-chrome_browser_ui_webui_about__ui.cc) = 9858056446456ebf6dcc62e8238fc790e0021235
+SHA1 (patch-chrome_browser_ui_webui_chrome__web__ui__controller__factory.cc) = f39a6e6c164beb10f8815afa8bbde4c46518ef03
+SHA1 (patch-chrome_browser_ui_webui_extensions_extension__loader__handler.cc) = 6c72ee6cd3fecd6a663b3cb74125a36e0550852d
+SHA1 (patch-chrome_browser_ui_webui_options_browser__options__handler.cc) = c42a7914bce67ca2b79e9e7e7662285dd4c4555c
+SHA1 (patch-chrome_browser_ui_webui_options_browser__options__handler.h) = 92743ac921516594d260982a478232cfba898cf6
+SHA1 (patch-chrome_browser_web__applications_web__app.cc) = a8a32925302e3b78a56d4ded06260a7751fd7817
+SHA1 (patch-chrome_browser_web__applications_web__app.h) = eadb5a3cab8faaeb0315fdc97c26ac0d87ebb308
+SHA1 (patch-chrome_chrome__browser.gypi) = 6fba5113b1087ea93919675f4f184fd433878545
+SHA1 (patch-chrome_chrome__browser__extensions.gypi) = 99603a44a8dbaeccf07889f1ae794b05aea6a07a
+SHA1 (patch-chrome_chrome__browser__ui.gypi) = 4604e001fb4db1b02799fad126a6e012e91845fc
+SHA1 (patch-chrome_chrome__common.gypi) = f5baf8d4e1ef51c581c23750927a14ef83ccae6c
+SHA1 (patch-chrome_chrome__exe.gypi) = d86975910a43e442264596b1c85493cc21038107
+SHA1 (patch-chrome_common_channel__info__posix.cc) = 885d9a24b7f785dc76ca41b0205e876ca61bb4f9
+SHA1 (patch-chrome_common_chrome__paths.cc) = 290323247aed25b5f37772e17fda7de6af75317f
+SHA1 (patch-chrome_common_chrome__paths.h) = dc9e1bdba1227ad168bfe07cd94a11e1eae21e60
+SHA1 (patch-chrome_common_chrome__paths__internal.h) = d74708185471657d4669188aa87fdf792386c0d4
+SHA1 (patch-chrome_common_chrome__switches.cc) = 706791fb96cf2b4b45e9bf9c4a42021f713db06f
+SHA1 (patch-chrome_common_chrome__switches.h) = 673b303c472d81eb9a315d1da31a4aefa9c71b2a
+SHA1 (patch-chrome_common_component__flash__hint__file__linux.h) = cea4506709805f5df78691452ec78efe32f9b5c2
+SHA1 (patch-chrome_common_extensions_api_schemas.gypi) = a4d80f6ed15560588af2e96dc0a17a6314a44b47
+SHA1 (patch-chrome_common_extensions_command.cc) = ba68c59f2fc656557537d9a31668d970f21d73b4
+SHA1 (patch-chrome_common_pref__names.cc) = 2fd5847175c4a68aa602080bce81c7e2f6e4ebff
+SHA1 (patch-chrome_common_pref__names.h) = 5e35b356023b4522973d91d423cfa6bc3a442882
+SHA1 (patch-chrome_common_variations_fieldtrial__testing__config.gyp) = 95d88ca0632379bd677fc8bac32a5d3e0bf85083
+SHA1 (patch-chrome_renderer_pepper_pepper__flash__font__file__host.cc) = f6a7beadcb3c93a08b58bdeb6e027b49bd9f8eb2
+SHA1 (patch-chrome_renderer_pepper_pepper__flash__font__file__host.h) = 14915951af481f028b735cdecfc167c93c57d0cf
+SHA1 (patch-chrome_test_base_in__process__browser__test.cc) = 993ab9a519a5a790ce750488107c597fa17c0da3
+SHA1 (patch-chrome_test_base_testing__browser__process.h) = 97edb39a86dcb45d2d9bee82f5d59d968d034f53
+SHA1 (patch-chrome_test_chromedriver_chrome_chrome__finder.cc) = 138f13a54c73c86266d72bb74eb819579f1ce9eb
+SHA1 (patch-components_autofill_content_renderer_password__form__conversion__utils.cc) = 9fd2106bfb684d39a4a6428701ed9e5ac6ac4c14
+SHA1 (patch-components_autofill_core_browser_form__structure.cc) = 9898db2c3b826074f4a660735fcdc8530d3b96c8
+SHA1 (patch-components_cookie__config_cookie__store__util.cc) = 5d5eba63f6fdbb410736899cfd63aa9a9c705cd3
+SHA1 (patch-components_dom__distiller_core_page__features.cc) = 53126900cef2bb693ec61a4da17534355dfeb2d5
+SHA1 (patch-components_drive_drive__api__util.cc) = 5a0af11ada1e51acfce1e784e824090a52fc995b
+SHA1 (patch-components_feedback_anonymizer__tool.cc) = 3628c519c93390b86b106a35f0c75714d691191b
+SHA1 (patch-components_flags__ui_flags__state.cc) = 3658b2d4e8347306b5b00081c54229ddab75becc
+SHA1 (patch-components_json__schema_json__schema__validator.cc) = 9fb8260357307ed19a978b810b5c81c3f62a9a5e
+SHA1 (patch-components_keyed__service_core_dependency__graph__unittest.cc) = 01f6cc0966f84fd9826cf01553d7e041f2297087
+SHA1 (patch-components_metrics_drive__metrics__provider__linux.cc) = 9ab9ac170bdfe688b242a4eb467dba6a90792fb4
+SHA1 (patch-components_metrics_system__memory__stats__recorder__linux.cc) = fac6d38fb31d61f5c9eccee82b6cccf4c5a1dd9b
+SHA1 (patch-components_neterror_resources_neterror.js) = b03a2a0e80fa689b2ac5a1bb056d211d2cfc398c
+SHA1 (patch-components_password__manager_core_browser_import_csv__reader.cc) = d297dc883579567d60d502bb0effc3e68676de88
+SHA1 (patch-components_plugins_renderer_plugin__placeholder.cc) = 2a8950604b5290e5f5a317cef5709f30dd862faf
+SHA1 (patch-components_policy_core_common_schema.cc) = d65e18664ec9ccef8fb44115b3a83b02ad981c68
+SHA1 (patch-components_policy_resources_policy__templates.json) = 3e4bec6af1387f1594558bee3f46ade6d4b1ef25
+SHA1 (patch-components_policy_tools_generate__policy__source.py) = 273c04aee70c0a46197b035bebd418601761fff7
+SHA1 (patch-components_storage__monitor.gypi) = b177b9b508ccc7165f06287f2c61d64cf6545112
+SHA1 (patch-components_storage__monitor_storage__monitor.cc) = aada15e6539c05b3fbf841e773e9115e5ec51259
+SHA1 (patch-components_storage__monitor_storage__monitor__freebsd.cc) = 9bebfeb7afd90e8843ba145f57d78867c738fcf3
+SHA1 (patch-components_storage__monitor_storage__monitor__freebsd.h) = d2f27f3680a1dd21ce66116f5020fa48dce9759c
+SHA1 (patch-components_update__client_update__query__params.cc) = 325905ac49c992252bd9a55b6f9c62feefcbe3c6
+SHA1 (patch-components_url__matcher_regex__set__matcher.cc) = 7c475fac8617e2b618bf1580e582fd8f75242922
+SHA1 (patch-components_url__matcher_url__matcher__factory.cc) = 6c254c711dafc0ee32b3547233c58a4132e3697c
+SHA1 (patch-components_webcrypto_algorithms_test__helpers.cc) = 27e64c94915b31308cde409da826e338b94ce494
+SHA1 (patch-content_app_content__main__runner.cc) = 5e6c13989662382db47116e8c4754ac03367d09f
+SHA1 (patch-content_browser_accessibility_browser__accessibility.h) = 6dc8e2df85b287734bc8cbf392eaed28485c7fe5
+SHA1 (patch-content_browser_accessibility_browser__accessibility__manager.h) = b21fe70979e66a91ef6fa3a242d5d2b71df1c573
+SHA1 (patch-content_browser_browser__main__loop.cc) = da4849a32483b7561774fa2ae92f48c651a412b7
+SHA1 (patch-content_browser_browser__shutdown__profile__dumper.cc) = 740c8f81986e04093830e5e8522d2ad2e409d47d
+SHA1 (patch-content_browser_child__process__launcher.cc) = 4a2b8ea55678943c8761ec32c3cee85712f5c2ca
+SHA1 (patch-content_browser_download_base__file.cc) = 7c1d4b33444ebb2168225c2c4bbabde10972d58a
+SHA1 (patch-content_browser_download_base__file__linux.cc) = 9786621267f4dddae701752fd56e0f73f1757435
+SHA1 (patch-content_browser_geolocation_location__arbitrator__impl.cc) = 77df1602ebd8d4675c297a83b19e38fb46c3e4ee
+SHA1 (patch-content_browser_geolocation_wifi__data__provider__freebsd.cc) = 67a1e76bfe8bcb85e5681775c73aca1217969b09
+SHA1 (patch-content_browser_geolocation_wifi__data__provider__freebsd.h) = 9793189a5768521f25ae856497a3c1f6fc25b263
+SHA1 (patch-content_browser_gpu_gpu__data__manager__impl__private.cc) = 5601b3af11f4f71a86c57ca76b69b54354ca768b
+SHA1 (patch-content_browser_gpu_gpu__internals__ui.cc) = 933f9b1a6bbe02af85e2850078be00289ffa3767
+SHA1 (patch-content_browser_indexed__db_indexed__db__backing__store.cc) = dff03cc4a5695d1cdce72618e957b2bc9d90795f
+SHA1 (patch-content_browser_ppapi__plugin__process__host.cc) = 443a9cdd207fa2020d61fbc28f9736af24acca86
+SHA1 (patch-content_browser_renderer__host_render__process__host__impl.cc) = 2cc5cae1eb1297f35010ba053cfc7772fe4c5dbf
+SHA1 (patch-content_browser_renderer__host_render__widget__host__view__aura.cc) = 78c9585d6ba432d92dff09f6f14c4025f396dc6a
+SHA1 (patch-content_browser_time__zone__monitor.cc) = e977b9d11189b94b2fa67aac38758fe59d4ab55e
+SHA1 (patch-content_browser_time__zone__monitor__linux.cc) = b9756e90acc45a38f4d8572b06e71186c8b07738
+SHA1 (patch-content_browser_utility__process__host__impl.cc) = 824fb5b378e38b8b4cee4fe5498f2c217a7419f7
+SHA1 (patch-content_browser_web__contents_web__contents__impl.cc) = 790a03da00a81a7fa9ef286270607fd7c7c117b2
+SHA1 (patch-content_common_sandbox__linux_sandbox__debug__handling__linux.cc) = ab11c3f59baf528bb1837fee533898eb761fbefd
+SHA1 (patch-content_common_set__process__title__linux.cc) = 270992c0fa160e0019f4048fdf5cfea431551408
+SHA1 (patch-content_common_set__process__title__linux.h) = 7ecf5cee9081e08dcdb3a41a2468181fe9110fae
+SHA1 (patch-content_content__browser.gypi) = 44e4beb899932c9c0c6a9dd47357011a88a45701
+SHA1 (patch-content_content__common.gypi) = 21eb4ac13752c21aa6e05fc26eee0cd87fd53033
+SHA1 (patch-content_content__tests.gypi) = fdc4b3044405439cd6df5e8815cf02a7e644fbf0
+SHA1 (patch-content_gpu_gpu__child__thread.cc) = f50c4319d9f866eca3379ad97344b525a5bb254e
+SHA1 (patch-content_gpu_gpu__main.cc) = f96d1fbdf3ab38ac27ded2b3d6274c58b1cdf453
+SHA1 (patch-content_public_common_child__process__sandbox__support__linux.h) = 9da0022b5e38da5cf831f5cfbb391203e7f391f7
+SHA1 (patch-content_public_common_content__switches.cc) = 173d63de3032c81889e8d00f17ed76eecd61d776
+SHA1 (patch-content_public_common_content__switches.h) = 01a8b3b6da6ec5b8219c7484ce6ad0426eab5217
+SHA1 (patch-content_public_test_browser__test__base.cc) = 6119634c1654894a51084a604d177ea382928774
+SHA1 (patch-content_renderer_devtools_v8__sampling__profiler.cc) = d8b00b5bc11ab180796fe40171b9d9c63b866b50
+SHA1 (patch-content_renderer_media_webrtc__audio__capturer.cc) = d5a36183186f6557e781c28496ee23d51c7f8bce
+SHA1 (patch-content_renderer_render__thread__impl.cc) = 840d846d4594e1676785538d8371ec42d6abaf74
+SHA1 (patch-content_renderer_renderer__blink__platform__impl.cc) = e6cb875083c8216e16e55ab563b6a3e81fd5412b
+SHA1 (patch-content_renderer_renderer__blink__platform__impl.h) = 5fbfdb3cbc03c15062472ae811f9762d82a31fd6
+SHA1 (patch-content_renderer_renderer__main__platform__delegate__linux.cc) = 0064211b5989584132276c4691d26debdd887aea
+SHA1 (patch-content_renderer_webscrollbarbehavior__impl__gtkoraura.cc) = f73e19b4bcfc8d3d14de51e13feb3a33d23e7b78
+SHA1 (patch-content_shell_browser_shell__browser__context.cc) = f065c2127d3c1bf85ed72ec532f03308d374074e
+SHA1 (patch-content_shell_browser_shell__browser__main__parts.cc) = 9412a5bb158957b36bf5a1290dbfb4a33b6eef7a
+SHA1 (patch-crypto_nss__util.cc) = 0116654d4651403368982d728664c1d7731382a2
+SHA1 (patch-device_hid_hid.gyp) = 24fa0c9bdc8ab6b816c92a82cd436890b92e793a
+SHA1 (patch-device_serial_serial.gyp) = 268500902b76e35fdf2dd4edbc42b818716da22e
+SHA1 (patch-device_serial_serial__io__handler__posix.cc) = 870a2294803fe0050b9aaec77520cc9f3ff6e721
+SHA1 (patch-device_serial_serial__service__impl.cc) = b333ce59b50fc75065399095fd845467a0163fcf
+SHA1 (patch-device_usb_usb.gyp) = 7a394e58fcbd5013bda3ccf80acf290f8a535089
+SHA1 (patch-device_usb_usb__context.cc) = f8d41fa61fc915210aad16a307f35ed4118ff075
+SHA1 (patch-device_usb_usb__context__unittest.cc) = d4fc5f7bb435edb320e1fffbbab3211a6ee1d489
+SHA1 (patch-device_usb_usb__device__handle__impl.cc) = 50ae886cd27b2e29465cae9545646dc238c38052
+SHA1 (patch-device_usb_usb__device__handle__impl.h) = 5b27e6116e7e7a79e429933b63dc429d2cfca61c
+SHA1 (patch-device_usb_usb__device__impl.cc) = 17763991c89f52e0239362f693dd3f47f4507126
+SHA1 (patch-device_usb_usb__error.cc) = 22d0bd44fc4dec37b98be3f2216b143c04c8109e
+SHA1 (patch-device_usb_usb__service__impl.cc) = 50ea01a78a721a143246ec72a2e0e817f164e9a0
+SHA1 (patch-device_usb_usb__service__impl.h) = 743f67bb9733e83e2ae4ba4b17324e5fc7bd3359
+SHA1 (patch-extensions_browser_api_declarative__webrequest_webrequest__action.cc) = 9e71f4e67c5cf4d24b5100d1b1fa1189bb017ece
+SHA1 (patch-extensions_browser_api_serial_serial__api.cc) = d50e063e8b13065531ca27825567ab7681ab850e
+SHA1 (patch-extensions_browser_api_web__request_form__data__parser.cc) = 59c4650dc04f0a02b20aa01761d8e575016bc5ed
+SHA1 (patch-extensions_common_image__util.cc) = 4f31dc3bfc97b420c0c3f8dec9eb3caa4e954e91
+SHA1 (patch-extensions_common_stack__frame.cc) = e37852553ce351b542fdf0d6ba8b5158ce83faf0
+SHA1 (patch-gpu_command__buffer_service_error__state.cc) = 914899d0e65a538149aa59e6214f63836ba306bc
+SHA1 (patch-gpu_command__buffer_service_program__manager.cc) = eb9eceb480a7ef425429da3235ce805222b4812c
+SHA1 (patch-gpu_config_gpu__control__list.cc) = aceee4b14794e4abd57aa799118f3614f3733328
+SHA1 (patch-gpu_config_gpu__control__list__unittest.cc) = 1dc39dd8eae36ba712c463e906e65edc424ac106
+SHA1 (patch-gpu_config_gpu__info__collector.cc) = 92d7fda12a8b96845ad65000b44c91d848a95534
+SHA1 (patch-gpu_config_gpu__test__config.cc) = eb98373b4c8de199ef4d4b322c043d9a0b2ce8d4
+SHA1 (patch-gpu_gpu__config.gypi) = b59f936ff3afbee6a00e5bd3198757ff271508ca
+SHA1 (patch-gpu_gpu__ipc__service.gypi) = d4d0b83627209973042ddb45a985d70051c5d4fa
+SHA1 (patch-ipc_ipc__message__utils.cc) = 9a760657d56b8bcef50efa0436631bf7aa88982e
+SHA1 (patch-ipc_ipc__message__utils.h) = b94c384757d86a715b2f47c7fc93dc4cbc547390
+SHA1 (patch-ipc_unix__domain__socket__util.cc) = bac45fcea21208513b537482c7164174bb2901aa
+SHA1 (patch-media_audio_alsa_audio__manager__alsa.cc) = 2bf9b8e35375ba0aa3b0dda5cc4d75e4a504cca0
+SHA1 (patch-media_audio_audio__manager.cc) = ed727c0fa37bd202e99e9c6a8513967f176282a0
+SHA1 (patch-media_audio_audio__manager.h) = 213f448784c3581c1e0c3d748aa80104b29d97ff
+SHA1 (patch-media_audio_audio__output__device.cc) = 772bab5d9dc41a636385aae2c2dd2c24e2ccff4c
+SHA1 (patch-media_audio_audio__output__stream__sink.cc) = 7ed5d82fee81140ea77d9d03f5813a9eeb9541fb
+SHA1 (patch-media_base_audio__renderer__mixer.cc) = 8b9dc8b6d9d729a78bab74165fc7809ac269fb6c
+SHA1 (patch-media_base_audio__renderer__mixer__input.cc) = 9ca52f1c20865ffe652f7d7f0c9b9afd63d22ff7
+SHA1 (patch-media_base_audio__splicer.cc) = 2b06e584c69ef01987a9e6af1915d422609d133b
+SHA1 (patch-media_capture_video_fake__video__capture__device__factory.cc) = 3a8c75cc152affb1cf1daea0909d02b6c623b1b1
+SHA1 (patch-media_capture_video_file__video__capture__device__factory.cc) = c642799a88a1aab174c62a9590e05f12fef734ca
+SHA1 (patch-media_capture_video_linux_v4l2__capture__delegate.cc) = 1e77cf642f1347342c14be7609cdf9e82fb7831f
+SHA1 (patch-media_capture_video_linux_v4l2__capture__delegate.h) = c46a7f5df441d9b34f43da15dadced2f9215a847
+SHA1 (patch-media_capture_video_linux_video__capture__device__factory__linux.cc) = 7c871657759b704375cfb3b3bb0a49e9d9c1eb22
+SHA1 (patch-media_capture_video_linux_video__capture__device__linux.cc) = dc93f97fa1527274c85bd847d452221b6f7773d2
+SHA1 (patch-media_capture_video_video__capture__device.cc) = 9c0fdd226fae83af6411091f0f1f5ef38305c87e
+SHA1 (patch-media_capture_video_video__capture__device.h) = 329255d129ce55cbecb1ab5a36c315cf5b411d59
+SHA1 (patch-media_capture_video_video__capture__device__factory.cc) = 3dac01c0940527e5e47c9f4ef4ff0b17cc279233
+SHA1 (patch-media_filters_audio__clock.cc) = 66c71a29516281b51091e266872c8188e84a28da
+SHA1 (patch-media_filters_audio__clock.h) = 75eeb45406f67fc4a40037dde4caf1513f7ad639
+SHA1 (patch-media_filters_decrypting__audio__decoder.cc) = ed67a788f51159514bf00f48548bf07d3731726a
+SHA1 (patch-media_filters_file__data__source.h) = afa2e7069c95569c7bdaeaf2052b6b04990ddfd4
+SHA1 (patch-media_filters_vp9__parser.h) = 691fc57506d981a88e1a1d30825ccb8bbf0565c6
+SHA1 (patch-media_formats_common_offset__byte__queue.cc) = cee32d0d078fab29d17f4d8f91fea52e53569bb3
+SHA1 (patch-media_formats_common_offset__byte__queue.h) = 509edb4b37a3c7a81a1fbe8c49d25ecb345df898
+SHA1 (patch-media_formats_mp2t_es__parser__adts.cc) = b4d6ecbd50bfbd3277ca8c09f376d3f8052ceed0
+SHA1 (patch-media_formats_mp2t_es__parser__mpeg1audio.cc) = 223ccaea008974a0d8cf2a95f9c006b253bb9730
+SHA1 (patch-media_media.gyp) = 9874140db5de5891d78ad05144927bd518155959
+SHA1 (patch-mojo_shell_public_cpp_initialize__base__and__icu.cc) = e9711afa39b5da6e8d944ab0020e07daeba3696e
+SHA1 (patch-mojo_shell_runner_init.cc) = 7c4ad68a8f9c8d0d5cbc31466ad4c8805f1e8c12
+SHA1 (patch-native__client_build_common.gypi) = d2ef7004310c4d4d834859da5acfcae74f3d13a0
+SHA1 (patch-native__client_src_shared_platform_platform.gyp) = 4ad4b033e4ee73129c7a4913b92207f2bccf23a6
+SHA1 (patch-net_base_address__tracker__linux.cc) = 1c8a510770c07b6f7f05c1b33d44f630ce279f12
+SHA1 (patch-net_base_address__tracker__linux.h) = 1446515b89c58953c51590177a384275c829fc55
+SHA1 (patch-net_base_address__tracker__linux__unittest.cc) = 18c1df2ef8e0283829ee7615ed3e52764329f8af
+SHA1 (patch-net_base_mime__util__unittest.cc) = 797faae8f0e5065e6809eb486e0fa1c1ed8acc79
+SHA1 (patch-net_base_network__change__notifier.cc) = d996973c3de09b13fc68a463a2e184636bbdab21
+SHA1 (patch-net_base_network__interfaces__linux.cc) = ebfd5456cdb2c390dd4515b0da0618306a151db5
+SHA1 (patch-net_base_network__interfaces__posix.cc) = c5f78b08eb510a852027de528dd94a9c3eaa58a5
+SHA1 (patch-net_dns_address__sorter__posix.cc) = 32b384221def41cabe9ea046fac51ccc5f86afa9
+SHA1 (patch-net_dns_dns__config__service__posix__unittest.cc) = baeed691d202f2ffcae8c6f82fb75c4d463d35b0
+SHA1 (patch-net_dns_dns__reloader.cc) = a1eba257e4d4b0f07dd11719431c9ebc91198b55
+SHA1 (patch-net_dns_dns__session.cc) = cdca6c5c401e212b8836966fd8cd35bf35deaa9a
+SHA1 (patch-net_http_http__auth__gssapi__posix.cc) = 13e95a22dc48ffd846c6e2096aac7a5481b36b00
+SHA1 (patch-net_net.gyp) = c5346350f93e397f9f4e37f41e019acf001ddffd
+SHA1 (patch-net_net.gypi) = 235320c7324f7008d44cd1631dd5c4bf80172778
+SHA1 (patch-net_net__common.gypi) = bd06e71c6b9427e55ed8c78373c201135a1892a9
+SHA1 (patch-net_proxy_proxy__config__service__linux.cc) = dc1cdd16ca4a7823ae3cd91bfbb63b0459dfd402
+SHA1 (patch-net_proxy_proxy__service.cc) = 4a21aac68dac50cc0e91032d682122511b963b75
+SHA1 (patch-net_quic_congestion__control_rtt__stats.cc) = 69aee874c92310ef5c438a0f8fa4062cb72145db
+SHA1 (patch-net_socket_socks5__client__socket.cc) = ba7a30df1d1902ae79a70f22fc507b782d985ba8
+SHA1 (patch-net_udp_udp__socket__posix.cc) = f574e4cae83f7142e0e01e8c7d81b1c0e0b01613
+SHA1 (patch-net_udp_udp__socket__unittest.cc) = 34bfda9eedc1c3692f5c5570d978c78b502bf83c
+SHA1 (patch-pdf_pdfium_pdfium__engine.cc) = 84a82bc48321dc356c399c00000c102a4ca4f14e
+SHA1 (patch-ppapi_proxy_file__io__resource.cc) = ca72374b45f3089d6a3023050af673f67a383eb3
+SHA1 (patch-ppapi_shared__impl_private_net__address__private__impl.cc) = ef8614cd6ed300f5beb085821f2c834c41d6bae7
+SHA1 (patch-printing_printing.gyp) = b3afa69f376a9eff48632bc278c76c09a302a65f
+SHA1 (patch-remoting_remoting__host.gypi) = c3a0d3f2cb16f73bac3473a07bab7c4bbdf874b0
+SHA1 (patch-skia_ext_SkMemory__new__handler.cpp) = 982b8c3095d28d67fa9e508cf1d444930d4d2bb3
+SHA1 (patch-skia_ext_platform__canvas.h) = 6b8d0db489e45152c059bd33d408eea80ca0957c
+SHA1 (patch-skia_skia__chrome.gypi) = a9624317cf02fe9f9e63bcfa910638e6f3cce18b
+SHA1 (patch-skia_skia__common.gypi) = 4d66a38b5f53c3881ff7bc5277c6027e29a500c7
+SHA1 (patch-sync_util_get__session__name.cc) = b0f1cf325bb487c6a69dbc0d3961553a3bb53960
+SHA1 (patch-sync_util_get__session__name__linux.cc) = eb40d32d068e43be940f66c125d87963633ffe55
+SHA1 (patch-testing_gtest_src_gtest.cc) = 7acd56029a8e84b17a68146c30fce89c209306c8
+SHA1 (patch-testing_perf_perf__test.cc) = 1b85a7ba592bff275fade32dd72bfd2fcd46ddbe
+SHA1 (patch-third__party_WebKit_Source_bindings_core_v8_V8ScriptRunner.cpp) = 647833307c4914a3722990254408c44ba26cc420
+SHA1 (patch-third__party_WebKit_Source_core_core.gyp) = c607ec13a7c1d60a0560c31d3659c519ad9525b2
+SHA1 (patch-third__party_WebKit_Source_modules_battery_battery__status.h) = bce38e1b755472b30fab97e0293028b1f2eed1c5
+SHA1 (patch-third__party_WebKit_Source_platform_blink__platform.gyp) = ac8571d3dfffd0154cacfb29137185937422d0d5
+SHA1 (patch-third__party_WebKit_Source_platform_fonts_FontCache.cpp) = e90bbc8452042f3c4c11e419eff46b6bb65524a4
+SHA1 (patch-third__party_WebKit_Source_platform_fonts_FontCache.h) = ef15cd605fa141492762d3dcc0c4b1847fdd3921
+SHA1 (patch-third__party_WebKit_Source_platform_fonts_FontPlatformData.cpp) = 2ed983f2da7e211b592d159187bae3957fcc2f49
+SHA1 (patch-third__party_WebKit_Source_platform_fonts_skia_FontCacheSkia.cpp) = 339177c2b9148e05e7f4317b89c036346accf372
+SHA1 (patch-third__party_WebKit_Source_platform_heap_GCInfo.cpp) = 7a31ec129c091b8f41b9da784a08f56aab8f0661
+SHA1 (patch-third__party_WebKit_Source_platform_heap_StackFrameDepth.cpp) = 016a0e412d4585cce56d1f28859a3f7e4a80f0fd
+SHA1 (patch-third__party_WebKit_Source_platform_image-decoders_png_PNGImageDecoder.cpp) = d376a3feb69c8c96b470f15e0267d0f82a6d5d4e
+SHA1 (patch-third__party_WebKit_Source_platform_text_Character.cpp) = b9a22bfce843ecaddaac1355282de66ed95cf628
+SHA1 (patch-third__party_WebKit_Source_platform_text_CharacterPropertyDataGenerator.cpp) = ac56b7fdf9ea2f7b599fedfb95ad440d244bbe91
+SHA1 (patch-third__party_WebKit_Source_web_web.gyp) = 97ecd2f854fef924d39a8ed6b3293fbda6c98483
+SHA1 (patch-third__party_WebKit_Source_wtf_ByteSwap.h) = e897f1b616c3555f5018a4b9651b94fa8e4e55ef
+SHA1 (patch-third__party_WebKit_Source_wtf_wtf.gyp) = 45c99e43a4eff4f8f2832f69ba1f456bda1c9608
+SHA1 (patch-third__party_boringssl_src_crypto_bio_internal.h) = 00248db6f46bb2f9a91dcde84b66c2edba993633
+SHA1 (patch-third__party_boringssl_src_crypto_cipher_e__chacha20poly1305.c) = bae5467338d80d37df92c2f1e68bf5ff66eb9945
+SHA1 (patch-third__party_boringssl_src_crypto_internal.h) = de5d860caba670377bdb1e5509a6fa7e60b30407
+SHA1 (patch-third__party_boringssl_src_crypto_poly1305_poly1305__vec.c) = c608103866a8b67171685488e577be2cadd752ec
+SHA1 (patch-third__party_boringssl_src_include_openssl_thread.h) = ed473d18dce684f7ab276f8be7dd0e6218406a0f
+SHA1 (patch-third__party_cacheinvalidation_src_google_cacheinvalidation_include_types.h) = 47b3e2b5ca8f6693ae7c8f6a6d1e76f32a46d743
+SHA1 (patch-third__party_ffmpeg_chromium_scripts_generate__gyp.py) = a9b905314e894ebabc182ce7d0881c61e9bfb1e1
+SHA1 (patch-third__party_ffmpeg_ffmpeg.gyp) = 360823abde996e0b446e161cdd230f397e502a9a
+SHA1 (patch-third__party_ffmpeg_ffmpeg__generated.gni) = d7e0dd66320aeca62e19a0b248d41487775d7387
+SHA1 (patch-third__party_ffmpeg_ffmpeg__generated.gypi) = 52bfee1cf1ddbe5f83545f87776c3b07c7e85825
+SHA1 (patch-third__party_ffmpeg_libavutil_autorename__libavutil__cpu.c) = 40f95b2d87d64d91b50dde4f88526fa943acc6ae
+SHA1 (patch-third__party_ffmpeg_libavutil_cpu.c) = f86d34335c39ff65dd514e1fd8a3c67f7f31be7e
+SHA1 (patch-third__party_ffmpeg_libavutil_mem.c) = 449a8436a16da1d203d29331ba9dc3c57b80a6a1
+SHA1 (patch-third__party_khronos_khronos.gyp) = 45cf37c0ff57ba0f57e11f011f3a1752653ceba8
+SHA1 (patch-third__party_leveldatabase_env__chromium.cc) = 3158d0e38298ee69f9706099487c119af0e6859e
+SHA1 (patch-third__party_libXNVCtrl_libXNVCtrl.gyp) = 8ee955cb03b5be8d6ebf64d5f521e50a629ae842
+SHA1 (patch-third__party_libjingle_libjingle.gyp) = b1fe592197c12145a975037433d273ada7f42e10
+SHA1 (patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_memory_singleton.h) = e1622f4206fe5a76fbc82e5fa75bf36f60001ec2
+SHA1 (patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_synchronization_lock.h) = 98fb2dae47efa5512bd77615ed8fb6e7ba76a8d1
+SHA1 (patch-third__party_libphonenumber_dist_cpp_src_phonenumbers_base_thread__checker.h) = 75d7d42a2b7d42a3656276ef3dff2c9f782c1a5a
+SHA1 (patch-third__party_libphonenumber_libphonenumber.gyp) = f1635609f27a322aa2834b4e70a58324dd02bb92
+SHA1 (patch-third__party_libpng_libpng.gyp) = 2790ee87c4b275e327971f9bad59ff25b6bbacdc
+SHA1 (patch-third__party_libyuv_include_libyuv_row.h) = 46cafafca01293312b42f74d806aa00a40763292
+SHA1 (patch-third__party_libyuv_source_mjpeg__decoder.cc) = 1725db3056678b07a1af2d8b06bbd4ebdea24bb7
+SHA1 (patch-third__party_ots_include_opentype-sanitiser.h) = b2b6fbfef584873ba1b0a3ba736fb12474c6184b
+SHA1 (patch-third__party_pdfium_build_standalone.gypi) = 3d691565bd70ce0e931cfe79ce4250f5a1e5c9cc
+SHA1 (patch-third__party_pdfium_core_fxcrt_include_fx__system.h) = d5ae1d0a53f6e67f64ad2a563a86b32be8bab509
+SHA1 (patch-third__party_pdfium_fpdfsdk_javascript_JS__Value.cpp) = 7230499110cd4f53edf491331eae8e69620c6af5
+SHA1 (patch-third__party_pdfium_fpdfsdk_javascript_PublicMethods.cpp) = 83c076852c8a9cf37a412154b420ff7311d373d8
+SHA1 (patch-third__party_pdfium_pdfium.gyp) = f3f5bf710c5fb56719af695302b18c77e1268807
+SHA1 (patch-third__party_pdfium_third__party_base_logging.h) = 6759e9fe5b8efd6e6543fc3ef977cc620fd6614f
+SHA1 (patch-third__party_sfntly_sfntly.gyp) = 978d2c752f4fbd443c56a2a1bd73f8f75a0cb6eb
+SHA1 (patch-third__party_skia_src_gpu_GrAutoLocaleSetter.h) = c252bdf64e321f4a89a026e585aaa6c6453c78b7
+SHA1 (patch-third__party_sqlite_sqlite.gyp) = ee002a6e98560e320cbebe7dfa8442ac11a51bd0
+SHA1 (patch-third__party_usrsctp_usrsctp.gyp) = 59234d9cc931d64b863b0a2c9a8e49518d3465dc
+SHA1 (patch-third__party_webrtc_base_httpcommon.cc) = 8a401944650f8f6b2de0fedf36bdf2c96b9689f5
+SHA1 (patch-third__party_webrtc_base_ifaddrs__converter.h) = e97d01a7b101841d365ea1a489598c368838cbd6
+SHA1 (patch-third__party_webrtc_base_ipaddress.h) = b10d7264cb4e3a21fc2c8dad74f43ac5aec71111
+SHA1 (patch-third__party_webrtc_base_linux.cc) = 338254dff5ce3caee6f0a4b0448f38f791918453
+SHA1 (patch-third__party_webrtc_base_linux.h) = 3c55c880de6d70cd5a03ec17684d264f76f50d18
+SHA1 (patch-third__party_webrtc_base_network.cc) = e7ad4db9700c55322efb38bfb9d3e40cd8dd2f18
+SHA1 (patch-third__party_webrtc_base_network.h) = fc96cd60f45dadecf5c8184469f0ddfb4154b87f
+SHA1 (patch-third__party_webrtc_base_physicalsocketserver.cc) = 3689da057c25f9d4c002dd8d7882a894c6cea981
+SHA1 (patch-third__party_webrtc_base_platform__thread.cc) = c802f78aaa1357a9a7e17806d04f67f7180a07a6
+SHA1 (patch-third__party_webrtc_base_stringutils.h) = c38b8da3d6cdead712c0285ec534ad257a75f929
+SHA1 (patch-third__party_webrtc_base_systeminfo.cc) = 310973dadacc5fd40027fe731357cc5f28393fc5
+SHA1 (patch-third__party_webrtc_build_common.gypi) = d151874d308c8e1975f543286156a46d2aca114e
+SHA1 (patch-third__party_webrtc_common__audio_wav__file.h) = a4504eb48feb91905a4d7cd4d0954e3cfdec87d1
+SHA1 (patch-third__party_webrtc_modules_audio__device_audio__device.gypi) = 2e20956177eb63a86fa4d937895172318537bfa0
+SHA1 (patch-third__party_webrtc_modules_desktop__capture_desktop__capture.gypi) = 8781f9104c3565000bac3401d757f270fb097812
+SHA1 (patch-third__party_webrtc_modules_remote__bitrate__estimator_overuse__detector.cc) = abec02bb6331d61c5ea02edb12c5f0bf59b9ac9d
+SHA1 (patch-third__party_webrtc_modules_rtp__rtcp_source_forward__error__correction.cc) = e4890ac3ae76965be82f24ed7791a9bd9f2b8268
+SHA1 (patch-third__party_webrtc_modules_video__coding_receiver.cc) = a33f4db4328877145cb6b8d8ae13d6d459e9f8a1
+SHA1 (patch-third__party_webrtc_system__wrappers_source_atomic32__posix.cc) = 97b95ba185dcea126bd417d8ea26d1944fd4c1f4
+SHA1 (patch-third__party_webrtc_voice__engine_voice__engine__defines.h) = 15d02a424e749dbd898d9bc4b5fb5c60fbd5834b
+SHA1 (patch-tools_gyp_pylib_gyp_generator_make.py) = 66a01120de5e0a5b5222909f752ed10bce771632
+SHA1 (patch-tools_gyp_test_additional-targets_src_dir1_actions.gyp) = 2dd205b6cb852b557da1c646411dc8ea9d6fc0bb
+SHA1 (patch-tools_gyp_test_library_src_library.gyp) = 724088b57399edf538030fc5617a6f93d49fa2ec
+SHA1 (patch-ui_accessibility_accessibility.gyp) = d21725b73fedd7b9b3ef6e03c4f0311d3441680f
+SHA1 (patch-ui_accessibility_platform_ax__platform__node.h) = e92ab1e287111ba2147eb54e9dff00d0bac109b9
+SHA1 (patch-ui_app__list_app__list__constants.cc) = 1a43fde16d4552196efa0e074f9a925c2011cd4d
+SHA1 (patch-ui_app__list_app__list__constants.h) = e5276dd6872710edc63577830e256547f597072e
+SHA1 (patch-ui_app__list_app__list__menu.cc) = 96ce9cb6956f81a3630433ad7512c14c82876bf8
+SHA1 (patch-ui_app__list_views_app__list__view.cc) = 8f99e3a71d461bc2d0118f5a3a8aa85959facf81
+SHA1 (patch-ui_base_BUILD.gn) = 5aaa7f5fbc6db98c04d75c1cb3c5a188aa859ee2
+SHA1 (patch-ui_base_ime_ime__engine__handler__interface.h) = a0de58507d0cc31850d94017f146e518c9842343
+SHA1 (patch-ui_base_ime_input__method__factory.cc) = fb5161669cd4a23f89ddc02f60ea8f9d73ec369f
+SHA1 (patch-ui_base_ime_input__method__initializer.cc) = a938d8b3ff60c2ba52dd2112f7a65ebcfde4f46c
+SHA1 (patch-ui_base_resource_resource__bundle.cc) = 9569893620e50adebd08742b48e45ca4258c7154
+SHA1 (patch-ui_base_ui__base.gyp) = 96b8dfd1e8b9728f1a2181cbf29156b15f9c9b3f
+SHA1 (patch-ui_base_webui_web__ui__util.cc) = 52961b24befe71c3a417443074b2982c49f98335
+SHA1 (patch-ui_events_event__switches.cc) = 06360138428a2e2efcf7ec3915e354b7114a742d
+SHA1 (patch-ui_events_event__switches.h) = e5fa884d20d8ef273d0af03b1fa6be1535304d6b
+SHA1 (patch-ui_events_keycodes_dom_keycode__converter.cc) = 63357fdbeee4fe53b2999c848a2cd5b39afd5af1
+SHA1 (patch-ui_gfx_canvas__skia.cc) = fc1152ff43efc5c1afe83c1a4bdf2f603fc238dc
+SHA1 (patch-ui_gfx_codec_jpeg__codec.cc) = 53b0e31443a19a7587a8b34074767137dcc9dd01
+SHA1 (patch-ui_gfx_color__utils.cc) = 13c78463244a6020445be05441a3693566d69987
+SHA1 (patch-ui_gfx_font__fallback__linux.cc) = 6eb56aa2bb1838a8a55f0a8298026ca579a57bd9
+SHA1 (patch-ui_gfx_font__render__params.h) = b3da6ca2f475ab3da509745ee21291ef85657567
+SHA1 (patch-ui_gfx_render__text.cc) = a3ad95b6eac82d1b73cd35e9cc918ca1e6d79648
+SHA1 (patch-ui_gl_gl.gyp) = 5af6259f55e23b6a8299d514df1bf5c3e592d9c7
+SHA1 (patch-ui_gl_gl__surface__glx.cc) = e507b6bb50b5439f335a1469bf6d16ec7931ac21
+SHA1 (patch-ui_gl_sync__control__vsync__provider.cc) = eb8aa4e9170c315c35be8bbc33e583e81e94892e
+SHA1 (patch-ui_message__center_message__center__style.h) = 825b969362b1b270d98567dd57c76b567c2687ca
+SHA1 (patch-ui_message__center_views_message__center__button__bar.cc) = dea34a9976799ed26b8949ad3745e873817f8b70
+SHA1 (patch-ui_message__center_views_message__center__button__bar.h) = 07e7628962739e7c8c25a760460a6719b261b02e
+SHA1 (patch-ui_message__center_views_message__center__view.cc) = 99a7d5f22de9a2c5727aea17034cf5c6e9f67576
+SHA1 (patch-ui_message__center_views_notification__view.cc) = de23fcae0d16d8c06e1ef57de0b9fe9f80c2b369
+SHA1 (patch-ui_resources_ui__resources.grd) = f66b9f00a4beca2b851411d04021a8413817bc72
+SHA1 (patch-ui_views_accessibility_native__view__accessibility.h) = 27a1b85d07ce4d8a67e8fe6df3661dd6f594e1dd
+SHA1 (patch-ui_views_bubble_bubble__delegate.cc) = d7294dc3b9d1fd363c1de6810d11058b929e23ce
+SHA1 (patch-ui_views_controls_button_label__button.cc) = ac17a941a529ad1229253b1356d7225cfd5ccf01
+SHA1 (patch-ui_views_controls_scrollbar_base__scroll__bar.cc) = d7e1cf16400382e979f205fd17b47d99d418e35d
+SHA1 (patch-ui_views_controls_textfield_textfield.cc) = 20b0ab4a7055a3bf12946021bb580e4b78a1b8ea
+SHA1 (patch-ui_views_controls_webview_webview.gyp) = 4cce31bcb3415791f2299037a80ad4cae0550e03
+SHA1 (patch-ui_views_examples_widget__example.cc) = d47000a9e093f1c64fece0c1814784d8c720cbb6
+SHA1 (patch-ui_views_style_platform__style.cc) = 772082e1fad011f3285d35ce444cc6d27b04d6c4
+SHA1 (patch-ui_views_views.gyp) = 7d6cd1f7015dee5daa1338c8ac4985150560d3b5
+SHA1 (patch-ui_views_views__delegate.cc) = 05d85365819f8725fbd3fe075cfc15865c3019d2
+SHA1 (patch-ui_views_views__delegate.h) = d6d67a475a0ccf2c5adbcd27536204c52314d069
+SHA1 (patch-ui_views_views__switches.cc) = 2b9240be3b40c9dca92f4b1a1983fe60ad1baeb0
+SHA1 (patch-ui_views_window_custom__frame__view.cc) = a2702abf0065fc883365d91aa6964bfb0755556a
+SHA1 (patch-ui_views_window_dialog__delegate.cc) = 5280a17cab34a0283b44321abdc7d0f58499a746
+SHA1 (patch-ui_webui_resources_js_cr.js) = 99b20d1ffe0def888925fd1548367366ca3b2bcc
+SHA1 (patch-ui_webui_resources_js_util.js) = 6ea6f332c90d11187ea0bcd721544030111829ae
+SHA1 (patch-v8_src_base_platform_platform-posix.cc) = 9dc731ef47c6b08144d60e23272c3724c10d3814
+SHA1 (patch-v8_src_base_platform_platform.h) = 060af9f5718e01229c1615cd434d082b0f298928
+SHA1 (patch-v8_src_compiler_graph-visualizer.cc) = 32dc07220c8331afc57a82fb0ae3617daafece84
+SHA1 (patch-v8_src_compiler_graph-visualizer.h) = bedd9de6a55a93b81d1c3195b87a8062bda8bb39
+SHA1 (patch-v8_src_log-utils.h) = 580de9075b088e9f1cc8a1fa0dd13445a0d1d11f
+SHA1 (patch-v8_tools_run-llprof.sh) = 192a5de99a045fbfe12c8589b6d6d5d05633ea46
diff --git a/chromium-new/options.mk b/chromium-new/options.mk
deleted file mode 100644
index 7d2bacf..0000000
--- a/chromium-new/options.mk
+++ /dev/null
@@ -1,42 +0,0 @@
-# $NetBSD: options.mk,v 1.3 2011/05/27 13:23:09 rxg Exp $
-
-PKG_OPTIONS_VAR=	PKG_OPTIONS.chromium
-.if ${MACHINE_ARCH} != "arm"
-PKG_SUPPORTED_OPTIONS=	cups
-.endif
-PKG_SUPPORTED_OPTIONS+=	codecs debug gnome-keyring
-PKG_SUGGESTED_OPTIONS=	# empty
-
-.include "../../mk/bsd.options.mk"
-
-.if !empty(PKG_OPTIONS:Mcups)
-GYP_DEFINES+=	use_cups=1
-.  include "../../print/cups/buildlink3.mk"
-.else
-GYP_DEFINES+=	use_cups=0
-.endif
-
-.if !empty(PKG_OPTIONS:Mcodecs)
-FFMPEG_CODECS=	Chrome
-FFMPEG_ARGS+=	--enable-decoder='theora,vorbis,libvpx,pcm_u8,pcm_s16le,pcm_f32le,aac,h264,mp3'
-FFMPEG_ARGS+=	--enable-demuxer='ogg,matroska,wav,mp3,mov'
-FFMPEG_ARGS+=	--enable-parser=mpegaudio
-.else
-FFMPEG_CODECS=	Chromium
-FFMPEG_ARGS+=	--enable-decoder='theora,vorbis,libvpx,pcm_u8,pcm_s16le,pcm_f32le'
-FFMPEG_ARGS+=	--enable-demuxer='ogg,matroska,wav'
-.endif
-
-.if !empty(PKG_OPTIONS:Mdebug)
-BUILDTYPE=	Debug
-.else
-BUILDTYPE=	Release
-.endif
-
-.if !empty(PKG_OPTIONS:Mgnome-keyring)
-GYP_DEFINES+=	linux_link_gnome_keyring=1
-GYP_DEFINES+=	use_gnome_keyring=1
-.  include "../../security/libgnome-keyring/buildlink3.mk"
-.else
-GYP_DEFINES+=	use_gnome_keyring=0
-.endif
diff --git a/chromium-new/patches/patch-apps_apps_gypi b/chromium-new/patches/patch-apps_apps_gypi
deleted file mode 100644
index 69b1178..0000000
--- a/chromium-new/patches/patch-apps_apps_gypi
+++ /dev/null
@@ -1,11 +0,0 @@
-$OpenBSD: patch-apps_apps_gypi,v 1.2 2014/11/19 21:27:32 robert Exp $
---- apps/apps.gypi.orig.port	Wed Nov 19 06:13:07 2014
-+++ apps/apps.gypi	Wed Nov 19 08:38:24 2014
-@@ -19,6 +19,7 @@
-         'chrome_resources.gyp:theme_resources',
-         'common/extensions/api/api.gyp:chrome_api',
-         '../skia/skia.gyp:skia',
-+        'chrome_resources.gyp:theme_resources',
-       ],
-       'include_dirs': [
-         '<(INTERMEDIATE_DIR)',
diff --git a/chromium-new/patches/patch-apps_ui_views_app_window_frame_view_cc b/chromium-new/patches/patch-apps_ui_views_app_window_frame_view_cc
deleted file mode 100644
index 2b21e25..0000000
--- a/chromium-new/patches/patch-apps_ui_views_app_window_frame_view_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-apps_ui_views_app_window_frame_view_cc,v 1.2 2015/09/05 16:06:50 robert Exp $
---- apps/ui/views/app_window_frame_view.cc.orig.port	Sat Aug 22 21:01:50 2015
-+++ apps/ui/views/app_window_frame_view.cc	Wed Sep  2 07:31:54 2015
-@@ -132,7 +132,7 @@ gfx::Rect AppWindowFrameView::GetBoundsForClientView()
- gfx::Rect AppWindowFrameView::GetWindowBoundsForClientBounds(
-     const gfx::Rect& client_bounds) const {
-   gfx::Rect window_bounds = client_bounds;
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
-   // Get the difference between the widget's client area bounds and window
-   // bounds, and grow |window_bounds| by that amount.
-   gfx::Insets native_frame_insets =
diff --git a/chromium-new/patches/patch-ash_display_mirror_window_controller_cc b/chromium-new/patches/patch-ash_display_mirror_window_controller_cc
deleted file mode 100644
index 4578eb1..0000000
--- a/chromium-new/patches/patch-ash_display_mirror_window_controller_cc
+++ /dev/null
@@ -1,15 +0,0 @@
-$OpenBSD: patch-ash_display_mirror_window_controller_cc,v 1.4 2015/10/14 16:42:07 robert Exp $
---- ash/display/mirror_window_controller.cc.orig.port	Wed Oct  7 04:42:06 2015
-+++ ash/display/mirror_window_controller.cc	Wed Oct 14 07:41:12 2015
-@@ -256,7 +256,11 @@ void MirrorWindowController::UpdateWindow(
-                          return info.id() == iter->first;
-                        }) == display_info_list.end()) {
-         CloseAndDeleteHost(iter->second, true);
-+#if defined(__llvm__)
-+        mirroring_host_info_map_.erase(iter++);
-+#else
-         iter = mirroring_host_info_map_.erase(iter);
-+#endif
-       } else {
-         ++iter;
-       }
diff --git a/chromium-new/patches/patch-base_atomicops_h b/chromium-new/patches/patch-base_atomicops_h
deleted file mode 100644
index 8608ab1..0000000
--- a/chromium-new/patches/patch-base_atomicops_h
+++ /dev/null
@@ -1,15 +0,0 @@
-$OpenBSD: patch-base_atomicops_h,v 1.15 2015/04/27 16:38:25 robert Exp $
---- base/atomicops.h.orig.port	Wed Apr 15 00:18:48 2015
-+++ base/atomicops.h	Wed Apr 15 08:32:49 2015
-@@ -66,7 +66,11 @@ typedef intptr_t Atomic64;
- 
- // Use AtomicWord for a machine-sized pointer.  It will use the Atomic32 or
- // Atomic64 routines below, depending on your architecture.
-+//#if defined(OS_OPENBSD) && defined(__i386__)
-+//typedef Atomic32 AtomicWord;
-+//#else
- typedef intptr_t AtomicWord;
-+//#endif
- 
- // Atomically execute:
- //      result = *ptr;
diff --git a/chromium-new/patches/patch-base_base.gyp b/chromium-new/patches/patch-base_base.gyp
new file mode 100644
index 0000000..473b273
--- /dev/null
+++ b/chromium-new/patches/patch-base_base.gyp
@@ -0,0 +1,25 @@
+$NetBSD$
+
+--- base/base.gyp.orig	2016-06-24 01:02:08.000000000 +0000
++++ base/base.gyp
+@@ -114,7 +114,7 @@
+           ],
+           'link_settings': {
+             'libraries': [
+-              '-L/usr/local/lib -lexecinfo',
++              '-L/usr/local/lib -lexecinfo -lkvm',
+             ],
+           },
+         }],
+@@ -763,6 +763,11 @@
+             'sync_socket_unittest.cc',
+           ],
+         }],
++        ['OS == "freebsd"', {
++          'sources!': [
++            'debug/proc_maps_linux_unittest.cc',
++          ],
++        }],
+       ],  # target_conditions
+     },
+     {
diff --git a/chromium-new/patches/patch-base_base.gypi b/chromium-new/patches/patch-base_base.gypi
new file mode 100644
index 0000000..6aa17fc
--- /dev/null
+++ b/chromium-new/patches/patch-base_base.gypi
@@ -0,0 +1,57 @@
+$NetBSD$
+
+--- base/base.gypi.orig	2016-06-24 01:02:08.000000000 +0000
++++ base/base.gypi
+@@ -514,6 +514,7 @@
+           'process/process_iterator_freebsd.cc',
+           'process/process_iterator_linux.cc',
+           'process/process_iterator_mac.cc',
++          'process/process_iterator_netbsd.cc',
+           'process/process_iterator_openbsd.cc',
+           'process/process_iterator_win.cc',
+           'process/process_linux.cc',
+@@ -524,6 +525,7 @@
+           'process/process_metrics_linux.cc',
+           'process/process_metrics_mac.cc',
+           'process/process_metrics_nacl.cc',
++          'process/process_metrics_netbsd.cc',
+           'process/process_metrics_openbsd.cc',
+           'process/process_metrics_posix.cc',
+           'process/process_metrics_win.cc',
+@@ -627,6 +629,7 @@
+           'sys_info_ios.mm',
+           'sys_info_linux.cc',
+           'sys_info_mac.mm',
++          'sys_info_netbsd.cc',
+           'sys_info_openbsd.cc',
+           'sys_info_posix.cc',
+           'sys_info_win.cc',
+@@ -971,6 +974,10 @@
+               'sources/': [ ['exclude', '_openbsd\\.cc$'] ],
+             },
+           ],
++          ['OS != "netbsd" or >(nacl_untrusted_build)==1', {
++              'sources/': [ ['exclude', '_netbsd\\.cc$'] ],
++            },
++          ],
+           ['OS == "win" and >(nacl_untrusted_build)==0', {
+             'include_dirs': [
+               '<(DEPTH)/third_party/wtl/include',
+@@ -1021,11 +1028,16 @@
+               'process/memory_stubs.cc',
+             ],
+             'sources/': [
++              ['exclude', '^debug/proc_maps_linux\\.cc$'],
+               ['exclude', '^files/file_path_watcher_linux\\.cc$'],
+-              ['exclude', '^files/file_path_watcher_stub\\.cc$'],
+               ['exclude', '^files/file_util_linux\\.cc$'],
++              ['exclude', '^process/memory_linux\\.cc$'],
+               ['exclude', '^process/process_linux\\.cc$'],
+               ['exclude', '^sys_info_linux\\.cc$'],
++              ['exclude', '^process/process_iterator_linux\\.cc$'],
++              ['exclude', '^process/process_metrics_linux\\.cc$'],
++              ['exclude', '^files/file_path_watcher_fsevents\\.cc$'],
++              ['exclude', '^files/file_path_watcher_fsevents\\.h$'],
+             ],
+           }],
+           # Remove all unnecessary files for build_nexe.py to avoid exceeding
diff --git a/chromium-new/patches/patch-base_base_gypi b/chromium-new/patches/patch-base_base_gypi
deleted file mode 100644
index 63f167b..0000000
--- a/chromium-new/patches/patch-base_base_gypi
+++ /dev/null
@@ -1,22 +0,0 @@
-$OpenBSD: patch-base_base_gypi,v 1.39 2016/01/23 18:49:31 robert Exp $
---- base/base.gypi.orig.port	Wed Jan 20 21:01:18 2016
-+++ base/base.gypi	Fri Jan 22 19:58:58 2016
-@@ -990,11 +990,17 @@
-               'process/memory_stubs.cc',
-             ],
-             'sources/': [
-+              ['exclude', '^debug/proc_maps_linux\\.cc$'],
-               ['exclude', '^files/file_path_watcher_linux\\.cc$'],
--              ['exclude', '^files/file_path_watcher_stub\\.cc$'],
-+              ['exclude', '^files/file_path_watcher_kqueue\\.cc$'],
-               ['exclude', '^files/file_util_linux\\.cc$'],
-+              ['exclude', '^process/memory_linux\\.cc$'],
-               ['exclude', '^process/process_linux\\.cc$'],
-               ['exclude', '^sys_info_linux\\.cc$'],
-+              ['exclude', '^process/process_iterator_linux\\.cc$'],
-+              ['exclude', '^process/process_metrics_linux\\.cc$'],
-+              ['exclude', '^files/file_path_watcher_fsevents\\.cc$'],
-+              ['exclude', '^files/file_path_watcher_fsevents\\.h$'],
-             ],
-           }],
-           # Remove all unnecessary files for build_nexe.py to avoid exceeding
diff --git a/chromium-new/patches/patch-base_debug_debugger__posix.cc b/chromium-new/patches/patch-base_debug_debugger__posix.cc
new file mode 100644
index 0000000..2b3818f
--- /dev/null
+++ b/chromium-new/patches/patch-base_debug_debugger__posix.cc
@@ -0,0 +1,62 @@
+$NetBSD$
+
+--- base/debug/debugger_posix.cc.orig	2016-06-24 01:02:08.000000000 +0000
++++ base/debug/debugger_posix.cc
+@@ -54,8 +54,48 @@
+ namespace base {
+ namespace debug {
+ 
+-#if defined(OS_MACOSX) || defined(OS_BSD)
++#if defined(OS_NETBSD)
++bool BeingDebugged() {
++  static bool is_set = false;
++  static bool being_debugged = false;
++  int ret;
++
++  if (is_set)
++    return being_debugged;
++
++  int mib[6];
++  size_t size;
++  struct kinfo_proc2 kproc;
++
++  mib[0] = CTL_KERN;
++  mib[1] = KERN_PROC2;
++  mib[2] = KERN_PROC_PID;
++  mib[3] = getpid();
++  mib[4] = sizeof(kinfo_proc2);
++  mib[5] = 1;
++
++  ret = sysctl((int *)mib, 6, NULL, &size, NULL, 0);
++  if (ret == -1) {
++    return -1;
++  }
++
++  mib[5] = (size / sizeof(kinfo_proc2));
+ 
++  ret = sysctl((int *)mib, 6, &kproc, &size, NULL, 0);
++  if (ret == -1) {
++    return -1;
++    is_set = true;
++    being_debugged = false;
++    return being_debugged;
++  }
++  
++  is_set = true;
++  being_debugged = (kproc.p_flag & P_TRACED) != 0;
++  return being_debugged;
++
++}
++#else
++#if defined(OS_MACOSX) || defined(OS_BSD)
+ // Based on Apple's recommended method as described in
+ // http://developer.apple.com/qa/qa2004/qa1361.html
+ bool BeingDebugged() {
+@@ -167,6 +207,7 @@ bool BeingDebugged() {
+ }
+ 
+ #endif
++#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/chromium-new/patches/patch-base_debug_debugger_posix_cc b/chromium-new/patches/patch-base_debug_debugger_posix_cc
deleted file mode 100644
index 38593c4..0000000
--- a/chromium-new/patches/patch-base_debug_debugger_posix_cc
+++ /dev/null
@@ -1,62 +0,0 @@
-$OpenBSD: patch-base_debug_debugger_posix_cc,v 1.17 2015/10/14 16:42:07 robert Exp $
---- base/debug/debugger_posix.cc.orig.port	Wed Oct  7 04:42:06 2015
-+++ base/debug/debugger_posix.cc	Wed Oct 14 07:41:12 2015
-@@ -28,6 +28,10 @@
- #include <sys/sysctl.h>
- #endif
- 
-+#if defined(OS_OPENBSD)
-+#include <sys/proc.h>
-+#endif
-+
- #if defined(OS_FREEBSD)
- #include <sys/user.h>
- #endif
-@@ -88,33 +92,38 @@ bool BeingDebugged() {
- 
-   // Caution: struct kinfo_proc is marked __APPLE_API_UNSTABLE.  The source and
-   // binary interfaces may change.
--  struct kinfo_proc info;
--  size_t info_size = sizeof(info);
-+  struct kinfo_proc *info;
-+  size_t info_size;
- 
--#if defined(OS_OPENBSD)
-   if (sysctl(mib, arraysize(mib), NULL, &info_size, NULL, 0) < 0)
-     return -1;
- 
-+  info = (struct kinfo_proc *)malloc(info_size);
-+
-   mib[5] = (info_size / sizeof(struct kinfo_proc));
--#endif
- 
--  int sysctl_result = sysctl(mib, arraysize(mib), &info, &info_size, NULL, 0);
-+  int sysctl_result = sysctl(mib, arraysize(mib), info, &info_size, NULL, 0);
-   DCHECK_EQ(sysctl_result, 0);
-   if (sysctl_result != 0) {
-     is_set = true;
-     being_debugged = false;
--    return being_debugged;
-+    goto out;
-   }
- 
-   // 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;
-+  being_debugged = (info->ki_flag & P_TRACED) != 0;
-+#elif defined(OS_OPENBSD) && !defined(_P_TRACED)
-+  being_debugged = (info->p_psflags & PS_TRACED) != 0;
- #elif defined(OS_BSD)
--  being_debugged = (info.p_flag & P_TRACED) != 0;
-+  being_debugged = (info->p_flag & P_TRACED) != 0;
- #else
--  being_debugged = (info.kp_proc.p_flag & P_TRACED) != 0;
-+  being_debugged = (info->kp_proc.p_flag & P_TRACED) != 0;
- #endif
-+
-+out:
-+  free(info);
-   return being_debugged;
- }
- 
diff --git a/chromium-new/patches/patch-base_debug_stack__trace__posix.cc b/chromium-new/patches/patch-base_debug_stack__trace__posix.cc
new file mode 100644
index 0000000..499c88d
--- /dev/null
+++ b/chromium-new/patches/patch-base_debug_stack__trace__posix.cc
@@ -0,0 +1,23 @@
+$NetBSD$
+
+--- base/debug/stack_trace_posix.cc.orig	2016-06-24 01:02:08.000000000 +0000
++++ base/debug/stack_trace_posix.cc
+@@ -572,6 +572,10 @@ class SandboxSymbolizeHelper {
+   // for the modules that are loaded in the current process.
+   // Returns true on success.
+   bool CacheMemoryRegions() {
++#if defined(OS_FREEBSD) || defined(OS_NETBSD)
++    // TODO (rene) avoid link error, implement something?
++    return false;
++#else
+     // Reads /proc/self/maps.
+     std::string contents;
+     if (!ReadProcMaps(&contents)) {
+@@ -587,6 +591,7 @@ class SandboxSymbolizeHelper {
+ 
+     is_initialized_ = true;
+     return true;
++#endif
+   }
+ 
+   // Opens all object files and caches their file descriptors.
diff --git a/chromium-new/patches/patch-base_debug_stack_trace_h b/chromium-new/patches/patch-base_debug_stack_trace_h
deleted file mode 100644
index 9851da5..0000000
--- a/chromium-new/patches/patch-base_debug_stack_trace_h
+++ /dev/null
@@ -1,11 +0,0 @@
-$OpenBSD: patch-base_debug_stack_trace_h,v 1.2 2013/04/03 08:19:10 robert Exp $
---- base/debug/stack_trace.h.orig.port	Fri Mar 22 02:13:43 2013
-+++ base/debug/stack_trace.h	Tue Apr  2 21:05:17 2013
-@@ -12,6 +12,7 @@
- #include "build/build_config.h"
- 
- #if defined(OS_POSIX)
-+#include <sys/stdint.h>
- #include <unistd.h>
- #endif
- 
diff --git a/chromium-new/patches/patch-base_debug_stack_trace_posix_cc b/chromium-new/patches/patch-base_debug_stack_trace_posix_cc
deleted file mode 100644
index 5dd5309..0000000
--- a/chromium-new/patches/patch-base_debug_stack_trace_posix_cc
+++ /dev/null
@@ -1,30 +0,0 @@
-$OpenBSD: patch-base_debug_stack_trace_posix_cc,v 1.19 2016/01/23 18:49:31 robert Exp $
---- base/debug/stack_trace_posix.cc.orig.port	Wed Jan 20 21:01:18 2016
-+++ base/debug/stack_trace_posix.cc	Fri Jan 22 19:58:58 2016
-@@ -567,6 +567,9 @@ class SandboxSymbolizeHelper {
-   // for the modules that are loaded in the current process.
-   // Returns true on success.
-   bool CacheMemoryRegions() {
-+#if defined(OS_OPENBSD)
-+    return false;
-+#else
-     // Reads /proc/self/maps.
-     std::string contents;
-     if (!ReadProcMaps(&contents)) {
-@@ -582,6 +585,7 @@ class SandboxSymbolizeHelper {
- 
-     is_initialized_ = true;
-     return true;
-+#endif
-   }
- 
-   // Opens all object files and caches their file descriptors.
-@@ -712,7 +716,7 @@ StackTrace::StackTrace() {
-   // NOTE: This code MUST be async-signal safe (it's used by in-process
-   // stack dumping signal handler). NO malloc or stdio is allowed here.
- 
--#if !defined(__UCLIBC__)
-+#if !defined(__UCLIBC__) && !defined(OS_BSD)
-   // Though the backtrace API man page does not list any possible negative
-   // return values, we take no chance.
-   count_ = base::saturated_cast<size_t>(backtrace(trace_, arraysize(trace_)));
diff --git a/chromium-new/patches/patch-base_files_file__path__watcher__kqueue.cc b/chromium-new/patches/patch-base_files_file__path__watcher__kqueue.cc
new file mode 100644
index 0000000..cd0f47b
--- /dev/null
+++ b/chromium-new/patches/patch-base_files_file__path__watcher__kqueue.cc
@@ -0,0 +1,19 @@
+$NetBSD$
+
+--- base/files/file_path_watcher_kqueue.cc.orig	2016-06-24 01:02:08.000000000 +0000
++++ base/files/file_path_watcher_kqueue.cc
+@@ -71,7 +71,13 @@ int FilePathWatcherKQueue::EventsForPath
+     struct kevent event;
+     EV_SET(&event, fd, EVFILT_VNODE, (EV_ADD | EV_CLEAR | EV_RECEIPT),
+            (NOTE_DELETE | NOTE_WRITE | NOTE_ATTRIB |
+-            NOTE_RENAME | NOTE_REVOKE | NOTE_EXTEND), 0, data);
++            NOTE_RENAME | NOTE_REVOKE | NOTE_EXTEND), 0,
++#if defined(__NetBSD__)
++            reinterpret_cast<intptr_t>(data));
++#else
++            data);
++#endif
++
+     events->push_back(event);
+   }
+   return last_existing_entry;
diff --git a/chromium-new/patches/patch-base_files_file__path__watcher__kqueue.h b/chromium-new/patches/patch-base_files_file__path__watcher__kqueue.h
new file mode 100644
index 0000000..b7f902f
--- /dev/null
+++ b/chromium-new/patches/patch-base_files_file__path__watcher__kqueue.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+--- base/files/file_path_watcher_kqueue.h.orig	2016-06-24 01:02:08.000000000 +0000
++++ base/files/file_path_watcher_kqueue.h
+@@ -5,7 +5,12 @@
+ #ifndef BASE_FILES_FILE_PATH_WATCHER_KQUEUE_H_
+ #define BASE_FILES_FILE_PATH_WATCHER_KQUEUE_H_
+ 
++#ifdef __FreeBSD__
++#include <sys/stdint.h>
++#include <sys/types.h>
++#endif
+ #include <sys/event.h>
++#include <sys/time.h>
+ #include <vector>
+ 
+ #include "base/files/file_path.h"
diff --git a/chromium-new/patches/patch-base_i18n_icu__util.cc b/chromium-new/patches/patch-base_i18n_icu__util.cc
new file mode 100644
index 0000000..be28516
--- /dev/null
+++ b/chromium-new/patches/patch-base_i18n_icu__util.cc
@@ -0,0 +1,15 @@
+$NetBSD$
+
+--- base/i18n/icu_util.cc.orig	2016-06-24 01:02:08.000000000 +0000
++++ base/i18n/icu_util.cc
+@@ -36,10 +36,6 @@
+ #include "base/mac/foundation_util.h"
+ #endif
+ 
+-#define ICU_UTIL_DATA_FILE   0
+-#define ICU_UTIL_DATA_SHARED 1
+-#define ICU_UTIL_DATA_STATIC 2
+-
+ namespace base {
+ namespace i18n {
+ 
diff --git a/chromium-new/patches/patch-base_i18n_icu__util.h b/chromium-new/patches/patch-base_i18n_icu__util.h
new file mode 100644
index 0000000..0bb4833
--- /dev/null
+++ b/chromium-new/patches/patch-base_i18n_icu__util.h
@@ -0,0 +1,15 @@
+$NetBSD$
+
+--- base/i18n/icu_util.h.orig	2016-06-24 01:02:08.000000000 +0000
++++ base/i18n/icu_util.h
+@@ -11,6 +11,10 @@
+ #include "base/i18n/base_i18n_export.h"
+ #include "build/build_config.h"
+ 
++#define ICU_UTIL_DATA_FILE   0
++#define ICU_UTIL_DATA_SHARED 1
++#define ICU_UTIL_DATA_STATIC 2
++
+ namespace base {
+ namespace i18n {
+ 
diff --git a/chromium-new/patches/patch-base_message_loop_message_loop_cc b/chromium-new/patches/patch-base_message_loop_message_loop_cc
deleted file mode 100644
index 60e5215..0000000
--- a/chromium-new/patches/patch-base_message_loop_message_loop_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-base_message_loop_message_loop_cc,v 1.5 2015/10/14 16:42:07 robert Exp $
---- base/message_loop/message_loop.cc.orig.port	Tue Oct 13 21:04:30 2015
-+++ base/message_loop/message_loop.cc	Wed Oct 14 07:41:12 2015
-@@ -205,7 +205,7 @@ scoped_ptr<MessagePump> MessageLoop::CreateMessagePump
- // TODO(rvargas): Get rid of the OS guards.
- #if defined(USE_GLIB) && !defined(OS_NACL)
-   typedef MessagePumpGlib MessagePumpForUI;
--#elif defined(OS_LINUX) && !defined(OS_NACL)
-+#elif defined(OS_BSD) && !defined(OS_NACL)
-   typedef MessagePumpLibevent MessagePumpForUI;
- #endif
- 
diff --git a/chromium-new/patches/patch-base_posix_unix__domain__socket__linux.cc b/chromium-new/patches/patch-base_posix_unix__domain__socket__linux.cc
new file mode 100644
index 0000000..4227ecc
--- /dev/null
+++ b/chromium-new/patches/patch-base_posix_unix__domain__socket__linux.cc
@@ -0,0 +1,46 @@
+$NetBSD$
+
+--- base/posix/unix_domain_socket_linux.cc.orig	2016-06-24 01:02:08.000000000 +0000
++++ base/posix/unix_domain_socket_linux.cc
+@@ -23,6 +23,15 @@
+ 
+ namespace base {
+ 
++#if defined(__FreeBSD__) || defined(__NetBSD__)
++// Port over Linux ucred structure
++struct ucred {
++  pid_t pid; // process ID of the sending process
++  uid_t uid; // user ID of the sending process
++  gid_t gid; // group ID of the sending process
++};
++#endif
++
+ const size_t UnixDomainSocket::kMaxFileDescriptors = 16;
+ 
+ #if !defined(OS_NACL_NONSFI)
+@@ -41,7 +50,13 @@ static bool CreateSocketPair(ScopedFD* o
+ // static
+ bool UnixDomainSocket::EnableReceiveProcessId(int fd) {
+   const int enable = 1;
++#if defined(__FreeBSD__) || defined(__NetBSD__)
++  // XXX(rene) do this? :
++  // taken from dbus, Academic Free License 2.1 / GPL 2+
++  return 0; // fake OK
++#else
+   return setsockopt(fd, SOL_SOCKET, SO_PASSCRED, &enable, sizeof(enable)) == 0;
++#endif
+ }
+ #endif  // !defined(OS_NACL_NONSFI)
+ 
+@@ -147,7 +162,11 @@ ssize_t UnixDomainSocket::RecvMsgWithFla
+       // The PNaCl toolchain for Non-SFI binary build does not support
+       // SCM_CREDENTIALS.
+       if (cmsg->cmsg_level == SOL_SOCKET &&
++#if defined(__FreeBSD__) || defined(__NetBSD__)
++        1) { // XXX(rene) carpet getting full ...
++#else
+           cmsg->cmsg_type == SCM_CREDENTIALS) {
++#endif
+         DCHECK_EQ(payload_len, sizeof(struct ucred));
+         DCHECK_EQ(pid, -1);
+         pid = reinterpret_cast<struct ucred*>(CMSG_DATA(cmsg))->pid;
diff --git a/chromium-new/patches/patch-base_posix_unix__domain__socket__linux__unittest.cc b/chromium-new/patches/patch-base_posix_unix__domain__socket__linux__unittest.cc
new file mode 100644
index 0000000..b284a64
--- /dev/null
+++ b/chromium-new/patches/patch-base_posix_unix__domain__socket__linux__unittest.cc
@@ -0,0 +1,20 @@
+$NetBSD$
+
+--- base/posix/unix_domain_socket_linux_unittest.cc.orig	2016-06-24 01:02:08.000000000 +0000
++++ base/posix/unix_domain_socket_linux_unittest.cc
+@@ -2,10 +2,15 @@
+ // 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 <stddef.h>
+ #include <stdint.h>
+ #include <sys/socket.h>
+ #include <sys/types.h>
++#if defined(OS_BSD)
++#include <signal.h>
++#endif
+ #include <unistd.h>
+ 
+ #include "base/bind.h"
diff --git a/chromium-new/patches/patch-base_posix_unix_domain_socket_linux_cc b/chromium-new/patches/patch-base_posix_unix_domain_socket_linux_cc
deleted file mode 100644
index ecc2d09..0000000
--- a/chromium-new/patches/patch-base_posix_unix_domain_socket_linux_cc
+++ /dev/null
@@ -1,38 +0,0 @@
-$OpenBSD: patch-base_posix_unix_domain_socket_linux_cc,v 1.5 2015/09/05 16:06:50 robert Exp $
---- base/posix/unix_domain_socket_linux.cc.orig.port	Sat Aug 22 21:01:50 2015
-+++ base/posix/unix_domain_socket_linux.cc	Wed Sep  2 07:31:54 2015
-@@ -5,7 +5,10 @@
- #include "base/posix/unix_domain_socket_linux.h"
- 
- #include <errno.h>
-+#include <sys/types.h>
-+#include <sys/param.h>
- #include <sys/socket.h>
-+#include <sys/ucred.h>
- #include <unistd.h>
- 
- #include <vector>
-@@ -25,6 +28,14 @@ namespace base {
- 
- const size_t UnixDomainSocket::kMaxFileDescriptors = 16;
- 
-+#ifndef SCM_CREDENTIALS
-+#  define SCM_CREDENTIALS      0x9001
-+#endif
-+
-+#ifndef SO_PASSCRED
-+#  define SO_PASSCRED  0x9002
-+#endif
-+
- #if !defined(OS_NACL_NONSFI)
- // Creates a connected pair of UNIX-domain SOCK_SEQPACKET sockets, and passes
- // ownership of the newly allocated file descriptors to |one| and |two|.
-@@ -150,7 +161,7 @@ ssize_t UnixDomainSocket::RecvMsgWithFlags(int fd,
-           cmsg->cmsg_type == SCM_CREDENTIALS) {
-         DCHECK_EQ(payload_len, sizeof(struct ucred));
-         DCHECK_EQ(pid, -1);
--        pid = reinterpret_cast<struct ucred*>(CMSG_DATA(cmsg))->pid;
-+        pid = getpid();
-       }
- #endif
-     }
diff --git a/chromium-new/patches/patch-base_process_internal__linux.h b/chromium-new/patches/patch-base_process_internal__linux.h
new file mode 100644
index 0000000..407145c
--- /dev/null
+++ b/chromium-new/patches/patch-base_process_internal__linux.h
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- base/process/internal_linux.h.orig	2016-06-24 01:02:08.000000000 +0000
++++ base/process/internal_linux.h
+@@ -14,6 +14,8 @@
+ 
+ #include "base/files/file_path.h"
+ 
++#include <unistd.h> /* pid_t */
++
+ namespace base {
+ 
+ class Time;
diff --git a/chromium-new/patches/patch-base_process_launch.cc b/chromium-new/patches/patch-base_process_launch.cc
new file mode 100644
index 0000000..f1ae3f5
--- /dev/null
+++ b/chromium-new/patches/patch-base_process_launch.cc
@@ -0,0 +1,18 @@
+$NetBSD$
+
+--- base/process/launch.cc.orig	2016-06-24 01:02:08.000000000 +0000
++++ base/process/launch.cc
+@@ -25,11 +25,11 @@ LaunchOptions::LaunchOptions()
+       fds_to_remap(NULL),
+       maximize_rlimits(NULL),
+       new_process_group(false)
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD) || defined(OS_NETBSD)
+       , clone_flags(0)
+       , allow_new_privs(false)
+       , kill_on_parent_death(false)
+-#endif  // OS_LINUX
++#endif  // OS_LINUX || OS_FREEBSD || OS_NETBSD
+ #if defined(OS_POSIX)
+       , pre_exec_delegate(NULL)
+ #endif  // OS_POSIX
diff --git a/chromium-new/patches/patch-base_process_launch.h b/chromium-new/patches/patch-base_process_launch.h
new file mode 100644
index 0000000..6020405
--- /dev/null
+++ b/chromium-new/patches/patch-base_process_launch.h
@@ -0,0 +1,22 @@
+$NetBSD$
+
+--- base/process/launch.h.orig	2016-06-24 01:02:08.000000000 +0000
++++ base/process/launch.h
+@@ -138,7 +138,7 @@ struct BASE_EXPORT LaunchOptions {
+   // will be the same as its pid.
+   bool new_process_group;
+ 
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD) || defined(OS_NETBSD)
+   // If non-zero, start the process using clone(), using flags as provided.
+   // Unlike in clone, clone_flags may not contain a custom termination signal
+   // that is sent to the parent when the child dies. The termination signal will
+@@ -151,7 +151,7 @@ struct BASE_EXPORT LaunchOptions {
+ 
+   // Sets parent process death signal to SIGKILL.
+   bool kill_on_parent_death;
+-#endif  // defined(OS_LINUX)
++#endif  // defined(OS_LINUX) || defined(OS_FREEBSD) || defined(OS_NETBSD)
+ 
+ #if defined(OS_POSIX)
+   // If non-null, a delegate to be run immediately prior to executing the new
diff --git a/chromium-new/patches/patch-base_process_launch__posix.cc b/chromium-new/patches/patch-base_process_launch__posix.cc
new file mode 100644
index 0000000..f6ff373
--- /dev/null
+++ b/chromium-new/patches/patch-base_process_launch__posix.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- base/process/launch_posix.cc.orig	2016-06-24 01:02:08.000000000 +0000
++++ base/process/launch_posix.cc
+@@ -214,6 +214,8 @@ static const char kFDDir[] = "/dev/fd";
+ static const char kFDDir[] = "/dev/fd";
+ #elif defined(OS_OPENBSD)
+ static const char kFDDir[] = "/dev/fd";
++#elif defined(OS_NETBSD)
++static const char kFDDir[] = "/dev/fd";
+ #elif defined(OS_ANDROID)
+ static const char kFDDir[] = "/proc/self/fd";
+ #endif
diff --git a/chromium-new/patches/patch-base_process_launch_h b/chromium-new/patches/patch-base_process_launch_h
deleted file mode 100644
index 0a2dbf2..0000000
--- a/chromium-new/patches/patch-base_process_launch_h
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-base_process_launch_h,v 1.2 2015/04/27 16:38:25 robert Exp $
---- base/process/launch.h.orig.port	Wed Apr 15 00:31:20 2015
-+++ base/process/launch.h	Wed Apr 15 08:32:50 2015
-@@ -131,7 +131,7 @@ struct BASE_EXPORT LaunchOptions {
-   // will be the same as its pid.
-   bool new_process_group;
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   // If non-zero, start the process using clone(), using flags as provided.
-   // Unlike in clone, clone_flags may not contain a custom termination signal
-   // that is sent to the parent when the child dies. The termination signal will
diff --git a/chromium-new/patches/patch-base_process_memory.cc b/chromium-new/patches/patch-base_process_memory.cc
new file mode 100644
index 0000000..41a920a
--- /dev/null
+++ b/chromium-new/patches/patch-base_process_memory.cc
@@ -0,0 +1,50 @@
+$NetBSD$
+
+--- base/process/memory.cc.orig	2016-06-24 01:02:08.000000000 +0000
++++ base/process/memory.cc
+@@ -26,7 +26,7 @@ void TerminateBecauseOutOfMemory(size_t 
+ }
+ 
+ // Defined in memory_mac.mm for Mac.
+-#if !defined(OS_MACOSX)
++#if !defined(OS_MACOSX) && defined(OS_FREEBSD)
+ 
+ bool UncheckedCalloc(size_t num_items, size_t size, void** result) {
+   const size_t alloc_size = num_items * size;
+@@ -46,4 +46,36 @@ bool UncheckedCalloc(size_t num_items, s
+ 
+ #endif
+ 
++#if defined(OS_FREEBSD)
++
++#if defined(USE_TCMALLOC)
++// Used by UncheckedMalloc. If tcmalloc is linked to the executable
++// this will be replaced by a strong symbol that actually implement
++// the semantics and don't call new handler in case the allocation fails.
++extern "C" {
++      
++__attribute__((weak, visibility("default")))
++void* tc_malloc_skip_new_handler_weak(size_t size);
++
++void* tc_malloc_skip_new_handler_weak(size_t size) {
++  return malloc(size);
++}
++
++}
++#endif
++
++bool UncheckedMalloc(size_t size, void** result) {
++#if defined(MEMORY_TOOL_REPLACES_ALLOCATOR) || \ 
++    (!defined(LIBC_GLIBC) && !defined(USE_TCMALLOC))
++  *result = malloc(size);
++#elif defined(LIBC_GLIBC) && !defined(USE_TCMALLOC)
++  *result = __libc_malloc(size);
++#elif defined(USE_TCMALLOC)
++  *result = tc_malloc_skip_new_handler_weak(size);
++#endif
++  return *result != NULL;
++}
++
++#endif // defined(OS_FREEBSD)
++
+ }  // namespace base
diff --git a/chromium-new/patches/patch-base_process_memory.h b/chromium-new/patches/patch-base_process_memory.h
new file mode 100644
index 0000000..90a0631
--- /dev/null
+++ b/chromium-new/patches/patch-base_process_memory.h
@@ -0,0 +1,12 @@
+$NetBSD$
+
+--- base/process/memory.h.orig	2016-06-24 01:02:08.000000000 +0000
++++ base/process/memory.h
+@@ -6,6 +6,7 @@
+ #define BASE_PROCESS_MEMORY_H_
+ 
+ #include <stddef.h>
++#include <stdlib.h>
+ 
+ #include "base/base_export.h"
+ #include "base/process/process_handle.h"
diff --git a/chromium-new/patches/patch-base_process_memory__stubs.cc b/chromium-new/patches/patch-base_process_memory__stubs.cc
new file mode 100644
index 0000000..53c4b9e
--- /dev/null
+++ b/chromium-new/patches/patch-base_process_memory__stubs.cc
@@ -0,0 +1,20 @@
+$NetBSD$
+
+--- base/process/memory_stubs.cc.orig	2016-06-24 01:02:08.000000000 +0000
++++ base/process/memory_stubs.cc
+@@ -27,6 +27,8 @@ bool AdjustOOMScore(ProcessId process, i
+ // their respective stdlib function since those functions will return null on a
+ // failure to allocate.
+ 
++#if !defined(OS_FREEBSD)
++// FreeBSD brings it's own implementation in memory.cc -- cmt
+ bool UncheckedMalloc(size_t size, void** result) {
+   *result = malloc(size);
+   return *result != nullptr;
+@@ -36,5 +38,6 @@ bool UncheckedCalloc(size_t num_items, s
+   *result = calloc(num_items, size);
+   return *result != nullptr;
+ }
++#endif
+ 
+ }  // namespace base
diff --git a/chromium-new/patches/patch-base_process_memory__unittest.cc b/chromium-new/patches/patch-base_process_memory__unittest.cc
new file mode 100644
index 0000000..2267359
--- /dev/null
+++ b/chromium-new/patches/patch-base_process_memory__unittest.cc
@@ -0,0 +1,25 @@
+$NetBSD$
+
+--- base/process/memory_unittest.cc.orig	2016-06-24 01:02:08.000000000 +0000
++++ base/process/memory_unittest.cc
+@@ -83,11 +83,11 @@ TEST(MemoryTest, AllocatorShimWorking) {
+ }
+ 
+ // Android doesn't implement set_new_handler, so we can't use the
+-// OutOfMemoryTest cases. OpenBSD does not support these tests either.
++// OutOfMemoryTest cases. OpenBSD, FreeBSD and NetBSD do not support these tests either.
+ // Don't test these on ASan/TSan/MSan configurations: only test the real
+ // allocator.
+ // Windows only supports these tests with the allocator shim in place.
+-#if !defined(OS_ANDROID) && !defined(OS_OPENBSD) &&   \
++#if !defined(OS_ANDROID) && !defined(OS_BSD) &&   \
+     !(defined(OS_WIN) && !defined(ALLOCATOR_SHIM)) && \
+     !defined(MEMORY_TOOL_REPLACES_ALLOCATOR)
+ 
+@@ -451,5 +451,5 @@ TEST_F(OutOfMemoryHandledTest, Unchecked
+   EXPECT_TRUE(value_ == NULL);
+ }
+ #endif  // !defined(MEMORY_TOOL_REPLACES_ALLOCATOR)
+-#endif  // !defined(OS_ANDROID) && !defined(OS_OPENBSD) && !(defined(OS_WIN) &&
++#endif  // !defined(OS_ANDROID) && !defined(OS_BSD) && !(defined(OS_WIN) &&
+         // !defined(ALLOCATOR_SHIM)) && !defined(MEMORY_TOOL_REPLACES_ALLOCATOR)
diff --git a/chromium-new/patches/patch-base_process_memory_cc b/chromium-new/patches/patch-base_process_memory_cc
deleted file mode 100644
index e10ae02..0000000
--- a/chromium-new/patches/patch-base_process_memory_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-base_process_memory_cc,v 1.3 2016/01/23 18:49:31 robert Exp $
---- base/process/memory.cc.orig.port	Sat Jan 23 10:35:17 2016
-+++ base/process/memory.cc	Sat Jan 23 10:35:24 2016
-@@ -25,7 +25,7 @@ void TerminateBecauseOutOfMemory(size_t size) {
- }
- 
- // Defined in memory_mac.mm for Mac.
--#if !defined(OS_MACOSX)
-+#if !defined(OS_MACOSX) && !defined(OS_BSD)
- 
- bool UncheckedCalloc(size_t num_items, size_t size, void** result) {
-   const size_t alloc_size = num_items * size;
diff --git a/chromium-new/patches/patch-base_process_process__info__linux.cc b/chromium-new/patches/patch-base_process_process__info__linux.cc
new file mode 100644
index 0000000..62b95b7
--- /dev/null
+++ b/chromium-new/patches/patch-base_process_process__info__linux.cc
@@ -0,0 +1,71 @@
+$NetBSD$
+
+--- base/process/process_info_linux.cc.orig	2016-06-24 01:02:08.000000000 +0000
++++ base/process/process_info_linux.cc
+@@ -11,10 +11,58 @@
+ #include "base/process/process_handle.h"
+ #include "base/time/time.h"
+ 
++#if defined(__FreeBSD__) || defined(__DragonFly__)
++#include <sys/types.h>
++#include <sys/sysctl.h>
++#include <sys/user.h>
++#endif
++
+ namespace base {
+ 
+ // static
+ const Time CurrentProcessInfo::CreationTime() {
++#if defined(__FreeBSD__) || defined(__DragonFly__)
++  int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid() };
++  struct kinfo_proc proc;
++  size_t len = sizeof(struct kinfo_proc);
++  if (sysctl(mib, arraysize(mib), &proc, &len, NULL, 0) < 0)
++    return Time();
++#if defined(__DragonFly__)
++  return Time::FromTimeVal(proc.kp_start);
++#else
++  return Time::FromTimeVal(proc.ki_start);
++#endif
++#if defined(__NetBSD__)
++  struct kinfo_proc2 kproc;
++  size_t esize = sizeof(kinfo_proc2);
++  int st;
++  int mib[6];
++  struct timeval tv;
++
++  mib[0] = CTL_KERN;
++  mib[1] = KERN_PROC2;
++  mib[2] = KERN_PROC_PID;
++  mib[3] = getpid();
++  mib[4] = esize;
++  mib[5] = 0;
++
++  st = sysctl(mib, 6, NULL, &size, NULL, (size_t)0);
++  if (st == -1) {
++	return NULL;
++  }
++
++  mib[5] = (int)(size / esize);
++  st = sysctl(mib, 6, &kproc, &size, NULL, (size_t)0);
++  if (st == -1) {
++    return NULL;
++  }
++
++  tv.tv_sec = kproc.p_ustart_sec;
++  tv.tv_usec = kproc.p_ustart_usec;
++
++  return Time::FromTimeVal(tv);
++#endif
++#else
+   ProcessHandle pid = GetCurrentProcessHandle();
+   int64_t start_ticks =
+       internal::ReadProcStatsAndGetFieldAsInt64(pid, internal::VM_STARTTIME);
+@@ -23,6 +71,7 @@ const Time CurrentProcessInfo::CreationT
+   Time boot_time = internal::GetBootTime();
+   DCHECK(!boot_time.is_null());
+   return Time(boot_time + start_offset);
++#endif
+ }
+ 
+ }  // namespace base
diff --git a/chromium-new/patches/patch-base_process_process__iterator.h b/chromium-new/patches/patch-base_process_process__iterator.h
new file mode 100644
index 0000000..f3aa824
--- /dev/null
+++ b/chromium-new/patches/patch-base_process_process__iterator.h
@@ -0,0 +1,23 @@
+$NetBSD$
+
+--- base/process/process_iterator.h.orig	2016-06-24 01:02:08.000000000 +0000
++++ base/process/process_iterator.h
+@@ -22,7 +22,7 @@
+ #if defined(OS_WIN)
+ #include <windows.h>
+ #include <tlhelp32.h>
+-#elif defined(OS_MACOSX) || defined(OS_OPENBSD)
++#elif defined(OS_MACOSX) || defined(OS_OPENBSD) || defined(OS_NETBSD)
+ #include <sys/sysctl.h>
+ #elif defined(OS_FREEBSD)
+ #include <sys/user.h>
+@@ -109,6 +109,9 @@ class BASE_EXPORT ProcessIterator {
+ #if defined(OS_WIN)
+   HANDLE snapshot_;
+   bool started_iteration_;
++#elif defined(OS_NETBSD)
++  std::vector<kinfo_proc2> kinfo_procs_;
++  size_t index_of_kinfo_proc_;
+ #elif defined(OS_MACOSX) || defined(OS_BSD)
+   std::vector<kinfo_proc> kinfo_procs_;
+   size_t index_of_kinfo_proc_;
diff --git a/chromium-new/patches/patch-base_process_process__iterator__freebsd.cc b/chromium-new/patches/patch-base_process_process__iterator__freebsd.cc
new file mode 100644
index 0000000..313e431
--- /dev/null
+++ b/chromium-new/patches/patch-base_process_process__iterator__freebsd.cc
@@ -0,0 +1,38 @@
+$NetBSD$
+
+--- base/process/process_iterator_freebsd.cc.orig	2016-06-24 01:02:08.000000000 +0000
++++ base/process/process_iterator_freebsd.cc
+@@ -10,6 +10,10 @@
+ #include <sys/sysctl.h>
+ #include <unistd.h>
+ 
++/* getuid() */
++#include <unistd.h>
++#include <sys/types.h>
++
+ #include "base/logging.h"
+ #include "base/macros.h"
+ #include "base/strings/string_split.h"
+@@ -72,19 +76,13 @@ bool ProcessIterator::CheckForNextProces
+   for (; index_of_kinfo_proc_ < kinfo_procs_.size(); ++index_of_kinfo_proc_) {
+     size_t length;
+     struct kinfo_proc kinfo = kinfo_procs_[index_of_kinfo_proc_];
+-    int mib[] = { CTL_KERN, KERN_PROC_ARGS, kinfo.ki_pid };
++    int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_ARGS, kinfo.ki_pid };
+ 
+     if ((kinfo.ki_pid > 0) && (kinfo.ki_stat == SZOMB))
+       continue;
+ 
+-    length = 0;
+-    if (sysctl(mib, arraysize(mib), NULL, &length, NULL, 0) < 0) {
+-      LOG(ERROR) << "failed to figure out the buffer size for a command line";
+-      continue;
+-    }
+-
+-    data.resize(length);
+-
++    data.resize(ARG_MAX);
++    length = ARG_MAX;
+     if (sysctl(mib, arraysize(mib), &data[0], &length, NULL, 0) < 0) {
+       LOG(ERROR) << "failed to fetch a commandline";
+       continue;
diff --git a/chromium-new/patches/patch-base_process_process__iterator__netbsd.cc b/chromium-new/patches/patch-base_process_process__iterator__netbsd.cc
new file mode 100644
index 0000000..f90b218
--- /dev/null
+++ b/chromium-new/patches/patch-base_process_process__iterator__netbsd.cc
@@ -0,0 +1,151 @@
+$NetBSD$
+
+--- base/process/process_iterator_netbsd.cc.orig	2016-07-11 13:58:09.568323557 +0000
++++ base/process/process_iterator_netbsd.cc
+@@ -0,0 +1,146 @@
++// Copyright (c) 2013 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/process_iterator.h"
++
++#include <errno.h>
++#include <sys/types.h>
++#include <stddef.h>
++#include <sys/sysctl.h>
++#include <unistd.h>
++
++/* getuid() */
++#include <unistd.h>
++#include <sys/types.h>
++
++#include "base/logging.h"
++#include "base/macros.h"
++#include "base/strings/string_split.h"
++#include "base/strings/string_util.h"
++
++namespace base {
++
++ProcessIterator::ProcessIterator(const ProcessFilter* filter)
++  : index_of_kinfo_proc_(),
++  filter_(filter) {
++
++  int mib[6];
++
++  printf("%s\n", __PRETTY_FUNCTION__);
++
++  mib[0] = CTL_KERN;
++  mib[1] = KERN_PROC;
++  mib[2] = KERN_PROC_UID;
++  mib[3] = getuid();
++  mib[4] = sizeof(struct kinfo_proc2);
++  mib[5] = 0;
++
++  bool done = false;
++  int try_num = 1;
++  const int max_tries = 10;
++
++  do {
++    size_t len = 0;
++    if (sysctl(mib, 6, 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_proc2);
++      // 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_proc2);
++      if (sysctl(mib, 6, &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_proc2);
++        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;
++
++  printf("%s\n", __PRETTY_FUNCTION__);
++
++  for (; index_of_kinfo_proc_ < kinfo_procs_.size(); ++ index_of_kinfo_proc_) {
++    int mib[3];
++    size_t len;
++    struct kinfo_proc2 kinfo = kinfo_procs_[index_of_kinfo_proc_];
++
++    if ((kinfo.p_pid > 0) && (kinfo.p_stat == SZOMB))
++      continue;
++
++    mib[0] = CTL_KERN;
++    mib[1] = KERN_PROC_ARGS;
++    mib[2] = kinfo.p_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.p_pid;
++    entry_.ppid_ = kinfo.p_ppid;
++    entry_.gid_ = kinfo.p__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() {
++  return (executable_name_ == entry().exe_file() &&
++                            ProcessIterator::IncludeEntry());
++}
++
++}  // namespace base
diff --git a/chromium-new/patches/patch-base_process_process__metrics.h b/chromium-new/patches/patch-base_process_process__metrics.h
new file mode 100644
index 0000000..b8834ac
--- /dev/null
+++ b/chromium-new/patches/patch-base_process_process__metrics.h
@@ -0,0 +1,36 @@
+$NetBSD$
+
+--- base/process/process_metrics.h.orig	2016-06-24 01:02:08.000000000 +0000
++++ base/process/process_metrics.h
+@@ -21,6 +21,13 @@
+ #include "base/values.h"
+ #include "build/build_config.h"
+ 
++#if defined(OS_BSD)
++#include <kvm.h>
++#include <sys/param.h>
++#include <sys/sysctl.h>
++#include <sys/user.h>
++#endif
++
+ #if defined(OS_MACOSX)
+ #include <mach/mach.h>
+ #include "base/process/port_provider_mac.h"
+@@ -317,13 +324,17 @@ BASE_EXPORT bool GetSystemMemoryInfo(Sys
+ // CPU-related ticks.  Returns -1 on parse error.
+ // Exposed for testing.
+ BASE_EXPORT int ParseProcStatCPU(const std::string& input);
++#endif
+ 
++#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FREEBSD) || defined(OS_NETBSD)
+ // Get the number of threads of |process| as available in /proc/<pid>/stat.
+ // This should be used with care as no synchronization with running threads is
+ // done. This is mostly useful to guarantee being single-threaded.
+ // Returns 0 on failure.
+ BASE_EXPORT int GetNumberOfThreads(ProcessHandle process);
++#endif
+ 
++#if defined(OS_LINUX) || defined(OS_ANDROID)
+ // /proc/self/exe refers to the current executable.
+ BASE_EXPORT extern const char kProcSelfExe[];
+ 
diff --git a/chromium-new/patches/patch-base_process_process__metrics__freebsd.cc b/chromium-new/patches/patch-base_process_process__metrics__freebsd.cc
new file mode 100644
index 0000000..336ed02
--- /dev/null
+++ b/chromium-new/patches/patch-base_process_process__metrics__freebsd.cc
@@ -0,0 +1,38 @@
+$NetBSD$
+
+--- base/process/process_metrics_freebsd.cc.orig	2016-06-24 01:02:08.000000000 +0000
++++ base/process/process_metrics_freebsd.cc
+@@ -12,6 +12,9 @@
+ #include "base/macros.h"
+ #include "base/sys_info.h"
+ 
++#include <unistd.h> /* getpagesize() */
++#include <fcntl.h>  /* O_RDONLY */
++
+ namespace base {
+ 
+ ProcessMetrics::ProcessMetrics(ProcessHandle process)
+@@ -121,4 +124,23 @@ size_t GetSystemCommitCharge() {
+   return mem_total - (mem_free*pagesize) - (mem_inactive*pagesize);
+ }
+ 
++int GetNumberOfThreads(ProcessHandle process) {
++  // Taken from FreeBSD top (usr.bin/top/machine.c)
++
++  kvm_t* kd = kvm_open(NULL, "/dev/null", NULL, O_RDONLY, "kvm_open");
++  if (kd == NULL)
++    return 0;
++
++  struct kinfo_proc* pbase;
++  int nproc;
++  pbase = kvm_getprocs(kd, KERN_PROC_PID, process, &nproc);
++  if (pbase == NULL)
++    return 0;
++
++  if (kvm_close(kd) == -1)
++    return 0;
++
++  return nproc;
++}
++
+ }  // namespace base
diff --git a/chromium-new/patches/patch-base_process_process__metrics__netbsd.cc b/chromium-new/patches/patch-base_process_process__metrics__netbsd.cc
new file mode 100644
index 0000000..b46c82e
--- /dev/null
+++ b/chromium-new/patches/patch-base_process_process__metrics__netbsd.cc
@@ -0,0 +1,173 @@
+$NetBSD$
+
+--- base/process/process_metrics_netbsd.cc.orig	2016-07-17 06:54:36.941244815 +0000
++++ base/process/process_metrics_netbsd.cc
+@@ -0,0 +1,168 @@
++// Copyright (c) 2013 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/process_metrics.h"
++
++#include <stddef.h>
++#include <sys/sysctl.h>
++#include <sys/user.h>
++#include <unistd.h>
++
++#include "base/macros.h"
++#include "base/sys_info.h"
++
++#include <unistd.h> /* getpagesize() */
++#include <fcntl.h>  /* O_RDONLY */
++
++namespace base {
++
++ProcessMetrics::ProcessMetrics(ProcessHandle process)
++    : process_(process),
++      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_proc2 info;
++  int mib[6];
++  size_t info_size = sizeof(info);
++
++  mib[0] = CTL_KERN;
++  mib[1] = KERN_PROC;
++  mib[2] = KERN_PROC_PID;
++  mib[3] = process_;
++  mib[4] = info_size;
++  mib[5] = 400; /* XXX */
++
++  if (sysctl(mib, 6, &info, &info_size, NULL, 0) < 0)
++    return 0;
++
++  return (info.p_vm_tsize + info.p_vm_dsize + info.p_vm_ssize);
++}
++
++size_t ProcessMetrics::GetPeakPagefileUsage() const {
++        printf("%s\n", __PRETTY_FUNCTION__);
++
++  return 0;
++}
++
++size_t ProcessMetrics::GetWorkingSetSize() const {
++  struct kinfo_proc2 info;
++  int mib[6];
++  size_t info_size = sizeof(info);
++
++  mib[0] = CTL_KERN;
++  mib[1] = KERN_PROC;
++  mib[2] = KERN_PROC_PID;
++  mib[3] = process_;
++  mib[4] = info_size;
++  mib[5] = 400; /* XXX */
++
++  if (sysctl(mib, 6, &info, &info_size, NULL, 0) < 0)
++    return 0;
++
++  return info.p_vm_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;
++}
++
++double ProcessMetrics::GetCPUUsage() {
++  struct kinfo_proc2 info;
++  int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, process_ };
++  size_t length = sizeof(info);
++
++  if (sysctl(mib, arraysize(mib), &info, &length, NULL, 0) < 0)
++    return 0;
++
++  return (info.p_pctcpu / FSCALE) * 100.0;
++}
++
++bool ProcessMetrics::GetIOCounters(IoCounters* io_counters) const {
++  return false;
++}
++
++size_t GetSystemCommitCharge() {
++  int mib[2], pagesize;
++  struct vmtotal vmtotal;
++  unsigned long mem_total, mem_free, mem_inactive;
++  size_t len = sizeof(vmtotal);
++
++  printf("%s\n", __PRETTY_FUNCTION__);
++
++  mib[0] = CTL_VM;
++  mib[1] = VM_METER;
++
++  if (sysctl(mib, 2, &vmtotal, &len, NULL, 0) < 0)
++    return 0;
++
++  mem_total = vmtotal.t_vm;
++  mem_free = vmtotal.t_free;
++  mem_inactive = vmtotal.t_vm - vmtotal.t_avm;
++
++  pagesize = getpagesize();
++
++  return mem_total - (mem_free*pagesize) - (mem_inactive*pagesize);
++}
++
++int GetNumberOfThreads(ProcessHandle process) {
++  int ret;
++  int mib[6];
++  size_t size = sizeof(struct kinfo_proc2);
++  struct kinfo_proc2 kproc;
++
++  mib[0] = CTL_KERN;
++  mib[1] = KERN_PROC2;
++  mib[2] = KERN_PROC_PID;
++  mib[3] = process;
++  mib[4] = size;
++  mib[5] = 1;
++
++  ret = sysctl((int *)mib, 6, &kproc, &size, NULL, 0);
++  if (ret == -1) {
++    return 0;
++  }
++
++  if (size == 0) {
++    return 0;
++  }
++
++  return kproc.p_nlwps;
++}
++
++}  // namespace base
diff --git a/chromium-new/patches/patch-base_process_process__metrics__posix.cc b/chromium-new/patches/patch-base_process_process__metrics__posix.cc
new file mode 100644
index 0000000..41a2e17
--- /dev/null
+++ b/chromium-new/patches/patch-base_process_process__metrics__posix.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- base/process/process_metrics_posix.cc.orig	2016-06-24 01:02:08.000000000 +0000
++++ base/process/process_metrics_posix.cc
+@@ -35,6 +35,8 @@ static const rlim_t kSystemDefaultMaxFds
+ static const rlim_t kSystemDefaultMaxFds = 8192;
+ #elif defined(OS_OPENBSD)
+ static const rlim_t kSystemDefaultMaxFds = 256;
++#elif defined(OS_NETBSD)
++static const rlim_t kSystemDefaultMaxFds = 1024;
+ #elif defined(OS_ANDROID)
+ static const rlim_t kSystemDefaultMaxFds = 1024;
+ #endif
diff --git a/chromium-new/patches/patch-base_process_process__posix.cc b/chromium-new/patches/patch-base_process_process__posix.cc
new file mode 100644
index 0000000..5232c8e
--- /dev/null
+++ b/chromium-new/patches/patch-base_process_process__posix.cc
@@ -0,0 +1,109 @@
+$NetBSD$
+
+--- base/process/process_posix.cc.orig	2016-06-24 01:02:08.000000000 +0000
++++ base/process/process_posix.cc
+@@ -20,8 +20,18 @@
+ #include <sys/event.h>
+ #endif
+ 
++#if defined(OS_BSD)
++#include <signal.h>
++#include <sys/types.h>
++#include <sys/event.h>
++#include <sys/time.h>
++#endif
++
+ namespace {
+ 
++const int kBackgroundPriority = 5;
++const int kForegroundPriority = 0;
++
+ #if !defined(OS_NACL_NONSFI)
+ 
+ bool WaitpidWithTimeout(base::ProcessHandle handle,
+@@ -86,7 +96,7 @@ bool WaitpidWithTimeout(base::ProcessHan
+   return ret_pid > 0;
+ }
+ 
+-#if defined(OS_MACOSX)
++#if defined(OS_MACOSX) || defined(OS_BSD)
+ // Using kqueue on Mac so that we can wait on non-child processes.
+ // We can't use kqueues on child processes because we need to reap
+ // our own children using wait.
+@@ -175,7 +185,7 @@ static bool WaitForSingleNonChildProcess
+ 
+   return true;
+ }
+-#endif  // OS_MACOSX
++#endif  // OS_MACOSX || OS_BSD
+ 
+ bool WaitForExitWithTimeoutImpl(base::ProcessHandle handle,
+                                 int* exit_code,
+@@ -183,13 +193,13 @@ bool WaitForExitWithTimeoutImpl(base::Pr
+   base::ProcessHandle parent_pid = base::GetParentProcessId(handle);
+   base::ProcessHandle our_pid = base::GetCurrentProcessHandle();
+   if (parent_pid != our_pid) {
+-#if defined(OS_MACOSX)
++#if defined(OS_MACOSX) || defined(OS_BSD)
+     // On Mac we can wait on non child processes.
+     return WaitForSingleNonChildProcess(handle, timeout);
+ #else
+     // Currently on Linux we can't handle non child processes.
+     NOTIMPLEMENTED();
+-#endif  // OS_MACOSX
++#endif  // OS_MACOSX || OS_BSD
+   }
+ 
+   int status;
+@@ -256,12 +266,16 @@ Process Process::DeprecatedGetProcessFro
+   return Process(handle);
+ }
+ 
+-#if !defined(OS_LINUX)
++#if !defined(OS_LINUX) && !defined(OS_FREEBSD)
+ // static
+ bool Process::CanBackgroundProcesses() {
+   return false;
+ }
+-#endif  // !defined(OS_LINUX)
++#elif defined(OS_FREEBSD)
++bool Process::CanBackgroundProcesses() {
++  return true;
++}
++#endif  // !defined(OS_LINUX) && !defined(OS_FREEBSD)
+ 
+ bool Process::IsValid() const {
+   return process_ != kNullProcessHandle;
+@@ -361,15 +375,32 @@ bool Process::WaitForExitWithTimeout(Tim
+ bool Process::IsProcessBackgrounded() const {
+   // See SetProcessBackgrounded().
+   DCHECK(IsValid());
++#if defined(OS_FREEBSD)
++  return true;
++#else
+   return false;
++#endif
+ }
+ 
+ bool Process::SetProcessBackgrounded(bool value) {
++#if !defined(OS_FREEBSD) && !defined(OS_NETBSD)
+   // Not implemented for POSIX systems other than Linux. With POSIX, if we were
+   // to lower the process priority we wouldn't be able to raise it back to its
+   // initial priority.
+   NOTIMPLEMENTED();
+   return false;
++#else
++  DCHECK(IsValid());
++
++  if (!CanBackgroundProcesses())
++    return false;
++
++  int priority = value ? kBackgroundPriority : kForegroundPriority;
++  int result   = setpriority(PRIO_PROCESS, process_, priority);
++
++  DPCHECK(result == 0);
++  return result == 0;
++#endif // !defined(OS_FREEBSD) && !defined(OS_NETBSD)
+ }
+ #endif  // !defined(OS_LINUX)
+ 
diff --git a/chromium-new/patches/patch-base_process_process_handle_openbsd_cc b/chromium-new/patches/patch-base_process_process_handle_openbsd_cc
deleted file mode 100644
index cc8adaf..0000000
--- a/chromium-new/patches/patch-base_process_process_handle_openbsd_cc
+++ /dev/null
@@ -1,92 +0,0 @@
-$OpenBSD: patch-base_process_process_handle_openbsd_cc,v 1.1 2013/10/29 06:51:34 robert Exp $
---- base/process/process_handle_openbsd.cc.orig.port	Fri Oct 18 20:52:30 2013
-+++ base/process/process_handle_openbsd.cc	Fri Oct 18 23:28:42 2013
-@@ -4,6 +4,8 @@
- 
- #include "base/process/process_handle.h"
- 
-+#include <sys/param.h>
-+#include <sys/proc.h>
- #include <sys/sysctl.h>
- #include <sys/types.h>
- #include <unistd.h>
-@@ -11,39 +13,64 @@
- namespace base {
- 
- ProcessId GetParentProcessId(ProcessHandle process) {
--  struct kinfo_proc info;
-+  struct kinfo_proc *info;
-   size_t length;
-+  pid_t ppid;
-   int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, process,
-                 sizeof(struct kinfo_proc), 0 };
- 
-   if (sysctl(mib, arraysize(mib), NULL, &length, NULL, 0) < 0)
-     return -1;
- 
--  mib[5] = (length / sizeof(struct kinfo_proc));
-+  info = (struct kinfo_proc *)malloc(length);
- 
--  if (sysctl(mib, arraysize(mib), &info, &length, NULL, 0) < 0)
-+  if (sysctl(mib, arraysize(mib), NULL, &length, NULL, 0) < 0)
-     return -1;
- 
--  return info.p_ppid;
-+  info = (struct kinfo_proc *)malloc(length);
-+
-+  mib[5] = (length / sizeof(struct kinfo_proc));
-+
-+  if (sysctl(mib, arraysize(mib), info, &length, NULL, 0) < 0) {
-+    ppid = -1;
-+    goto out;
-+  }
-+
-+  ppid = info->p_ppid;
-+
-+out:
-+  free(info);
-+  return ppid;
- }
- 
- FilePath GetProcessExecutablePath(ProcessHandle process) {
--  struct kinfo_proc kp;
--  size_t len;
-+  struct kinfo_proc *info;
-+  size_t length;
-+  char *path = NULL;
-   int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, process,
-                 sizeof(struct kinfo_proc), 0 };
- 
--  if (sysctl(mib, arraysize(mib), NULL, &len, NULL, 0) == -1)
-+  if (sysctl(mib, arraysize(mib), NULL, &length, NULL, 0) == -1)
-     return FilePath();
--  mib[5] = (len / sizeof(struct kinfo_proc));
--  if (sysctl(mib, arraysize(mib), &kp, &len, NULL, 0) < 0)
--    return FilePath();
--  if ((kp.p_flag & P_SYSTEM) != 0)
--    return FilePath();
--  if (strcmp(kp.p_comm, "chrome") == 0)
--    return FilePath(kp.p_comm);
- 
--  return FilePath();
-+  info = (struct kinfo_proc *)malloc(length);
-+
-+  mib[5] = (length / sizeof(struct kinfo_proc));
-+
-+  if (sysctl(mib, arraysize(mib), info, &length, NULL, 0) < 0)
-+    goto out;
-+
-+  if ((info->p_flag & P_SYSTEM) != 0)
-+    goto out;
-+
-+  if (strcmp(info->p_comm, "chrome") == 0) {
-+    path = info->p_comm;
-+    goto out;
-+  }
-+
-+out:
-+  free(info);
-+  return FilePath(path);
- }
- 
- }  // namespace base
diff --git a/chromium-new/patches/patch-base_process_process_iterator_openbsd_cc b/chromium-new/patches/patch-base_process_process_iterator_openbsd_cc
deleted file mode 100644
index dfc329a..0000000
--- a/chromium-new/patches/patch-base_process_process_iterator_openbsd_cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$OpenBSD: patch-base_process_process_iterator_openbsd_cc,v 1.1 2013/09/29 19:04:00 robert Exp $
---- base/process/process_iterator_openbsd.cc.orig.port	Sat Sep 28 19:45:12 2013
-+++ base/process/process_iterator_openbsd.cc	Sat Sep 28 19:46:09 2013
-@@ -5,6 +5,9 @@
- #include "base/process/process_iterator.h"
- 
- #include <errno.h>
-+#include <unistd.h>
-+#include <sys/param.h>
-+#include <sys/proc.h>
- #include <sys/sysctl.h>
- 
- #include "base/logging.h"
diff --git a/chromium-new/patches/patch-base_process_process_metrics_h b/chromium-new/patches/patch-base_process_process_metrics_h
deleted file mode 100644
index 9ae1220..0000000
--- a/chromium-new/patches/patch-base_process_process_metrics_h
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-base_process_process_metrics_h,v 1.2 2016/01/23 18:49:31 robert Exp $
---- base/process/process_metrics.h.orig.port	Wed Jan 20 21:01:18 2016
-+++ base/process/process_metrics.h	Fri Jan 22 19:58:58 2016
-@@ -240,7 +240,7 @@ BASE_EXPORT void SetFdLimit(unsigned int max_descripto
- #endif  // defined(OS_POSIX)
- 
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
--    defined(OS_ANDROID)
-+    defined(OS_ANDROID) || defined(OS_BSD)
- // Data about system-wide memory consumption. Values are in KB. Available on
- // Windows, Mac, Linux, Android and Chrome OS.
- //
diff --git a/chromium-new/patches/patch-base_process_process_metrics_openbsd_cc b/chromium-new/patches/patch-base_process_process_metrics_openbsd_cc
deleted file mode 100644
index 6c8b28b..0000000
--- a/chromium-new/patches/patch-base_process_process_metrics_openbsd_cc
+++ /dev/null
@@ -1,130 +0,0 @@
-$OpenBSD: patch-base_process_process_metrics_openbsd_cc,v 1.5 2015/01/22 11:16:40 robert Exp $
---- base/process/process_metrics_openbsd.cc.orig.port	Wed Dec  3 03:13:19 2014
-+++ base/process/process_metrics_openbsd.cc	Sat Dec  6 12:13:17 2014
-@@ -4,8 +4,19 @@
- 
- #include "base/process/process_metrics.h"
- 
-+#include "base/files/file_util.h"
-+#include "base/logging.h"
-+#include "base/process/internal_linux.h"
-+#include "base/strings/string_number_conversions.h"
-+#include "base/strings/string_split.h"
-+#include "base/strings/string_tokenizer.h"
-+#include "base/strings/string_util.h"
-+#include "base/sys_info.h"
-+#include "base/threading/thread_restrictions.h"
-+
- #include <sys/param.h>
- #include <sys/sysctl.h>
-+#include <sys/vmmeter.h>
- 
- namespace base {
- 
-@@ -15,20 +26,27 @@ ProcessMetrics* ProcessMetrics::CreateProcessMetrics(P
- }
- 
- size_t ProcessMetrics::GetPagefileUsage() const {
--  struct kinfo_proc info;
--  size_t length;
-+  struct kinfo_proc *info;
-+  size_t length, pfu;
-   int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, process_,
-                 sizeof(struct kinfo_proc), 0 };
- 
-   if (sysctl(mib, arraysize(mib), NULL, &length, NULL, 0) < 0)
-     return -1;
- 
-+  info = (struct kinfo_proc *)malloc(length);
-+
-   mib[5] = (length / sizeof(struct kinfo_proc));
- 
--  if (sysctl(mib, arraysize(mib), &info, &length, NULL, 0) < 0)
--    return -1;
-+  if (sysctl(mib, arraysize(mib), info, &length, NULL, 0) < 0) {
-+    pfu = -1;
-+    goto out;
-+  }
-+  pfu = (info->p_vm_tsize + info->p_vm_dsize + info->p_vm_ssize);
- 
--  return (info.p_vm_tsize + info.p_vm_dsize + info.p_vm_ssize);
-+out:
-+  free(info);
-+  return pfu;
- }
- 
- size_t ProcessMetrics::GetPeakPagefileUsage() const {
-@@ -36,20 +54,28 @@ size_t ProcessMetrics::GetPeakPagefileUsage() const {
- }
- 
- size_t ProcessMetrics::GetWorkingSetSize() const {
--  struct kinfo_proc info;
--  size_t length;
-+  struct kinfo_proc *info;
-+  size_t length, wss;
-   int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, process_,
-                 sizeof(struct kinfo_proc), 0 };
- 
-   if (sysctl(mib, arraysize(mib), NULL, &length, NULL, 0) < 0)
-     return -1;
- 
-+  info = (struct kinfo_proc *)malloc(length);
-+
-   mib[5] = (length / sizeof(struct kinfo_proc));
- 
--  if (sysctl(mib, arraysize(mib), &info, &length, NULL, 0) < 0)
--    return -1;
-+  if (sysctl(mib, arraysize(mib), info, &length, NULL, 0) < 0) {
-+    wss = -1;
-+    goto out;
-+  }
- 
--  return info.p_vm_rssize * getpagesize();
-+  wss = (info->p_vm_rssize * getpagesize());
-+
-+out:
-+  free(info);
-+  return wss;
- }
- 
- size_t ProcessMetrics::GetPeakWorkingSetSize() const {
-@@ -89,20 +115,27 @@ bool ProcessMetrics::GetIOCounters(IoCounters* io_coun
- }
- 
- static int GetProcessCPU(pid_t pid) {
--  struct kinfo_proc info;
-+  struct kinfo_proc *info;
-   size_t length;
-+  int pctcpu = 0;
-   int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, pid,
-                 sizeof(struct kinfo_proc), 0 };
- 
-   if (sysctl(mib, arraysize(mib), NULL, &length, NULL, 0) < 0)
-     return -1;
- 
-+  info = (struct kinfo_proc *)malloc(length);
-+
-   mib[5] = (length / sizeof(struct kinfo_proc));
- 
--  if (sysctl(mib, arraysize(mib), &info, &length, NULL, 0) < 0)
--    return 0;
-+  if (sysctl(mib, arraysize(mib), info, &length, NULL, 0) < 0)
-+    goto out;
- 
--  return info.p_pctcpu;
-+  pctcpu = info->p_pctcpu;
-+
-+out:
-+  free(info);
-+  return pctcpu;
- }
- 
- double ProcessMetrics::GetCPUUsage() {
-@@ -116,7 +149,6 @@ double ProcessMetrics::GetCPUUsage() {
-   }
- 
-   int64 time_delta = (time - last_cpu_time_).InMicroseconds();
--  DCHECK_NE(time_delta, 0);
- 
-   if (time_delta == 0)
-     return 0;
diff --git a/chromium-new/patches/patch-base_process_process_posix_cc b/chromium-new/patches/patch-base_process_process_posix_cc
deleted file mode 100644
index 8b98291..0000000
--- a/chromium-new/patches/patch-base_process_process_posix_cc
+++ /dev/null
@@ -1,64 +0,0 @@
-$OpenBSD: patch-base_process_process_posix_cc,v 1.5 2016/01/23 18:49:31 robert Exp $
---- base/process/process_posix.cc.orig.port	Wed Jan 20 21:01:18 2016
-+++ base/process/process_posix.cc	Fri Jan 22 19:58:58 2016
-@@ -17,9 +17,13 @@
- #if defined(OS_MACOSX)
- #include <sys/event.h>
- #endif
-+#include <signal.h>
- 
- namespace {
- 
-+const int kBackgroundPriority = 5;
-+const int kForegroundPriority = 0;
-+
- #if !defined(OS_NACL_NONSFI)
- 
- bool WaitpidWithTimeout(base::ProcessHandle handle,
-@@ -256,12 +260,10 @@ Process Process::DeprecatedGetProcessFromHandle(Proces
-   return Process(handle);
- }
- 
--#if !defined(OS_LINUX)
- // static
- bool Process::CanBackgroundProcesses() {
--  return false;
-+  return true;
- }
--#endif  // !defined(OS_LINUX)
- 
- bool Process::IsValid() const {
-   return process_ != kNullProcessHandle;
-@@ -357,21 +359,23 @@ bool Process::WaitForExitWithTimeout(TimeDelta timeout
-   return WaitForExitWithTimeoutImpl(Handle(), exit_code, timeout);
- }
- 
--#if !defined(OS_LINUX)
- bool Process::IsProcessBackgrounded() const {
-   // See SetProcessBackgrounded().
-   DCHECK(IsValid());
--  return false;
-+  return GetPriority() == kBackgroundPriority;
- }
- 
--bool Process::SetProcessBackgrounded(bool value) {
--  // Not implemented for POSIX systems other than Linux. With POSIX, if we were
--  // to lower the process priority we wouldn't be able to raise it back to its
--  // initial priority.
--  NOTIMPLEMENTED();
--  return false;
-+bool Process::SetProcessBackgrounded(bool background) {
-+  DCHECK(IsValid());
-+
-+  if (!CanBackgroundProcesses())
-+    return false;
-+
-+  int priority = background ? kBackgroundPriority : kForegroundPriority;
-+  int result = setpriority(PRIO_PROCESS, process_, priority);
-+  DPCHECK(result == 0);
-+  return result == 0;
- }
--#endif  // !defined(OS_LINUX)
- 
- int Process::GetPriority() const {
-   DCHECK(IsValid());
diff --git a/chromium-new/patches/patch-base_security__unittest.cc b/chromium-new/patches/patch-base_security__unittest.cc
new file mode 100644
index 0000000..9d32f31
--- /dev/null
+++ b/chromium-new/patches/patch-base_security__unittest.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- base/security_unittest.cc.orig	2016-06-24 01:02:08.000000000 +0000
++++ base/security_unittest.cc
+@@ -74,7 +74,7 @@ bool IsTcMallocBypassed() {
+ // FAILS_ is too clunky.
+ void OverflowTestsSoftExpectTrue(bool overflow_detected) {
+   if (!overflow_detected) {
+-#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_MACOSX)
++#if defined(OS_POSIX) && !defined(OS_NACL)
+     // Sadly, on Linux, Android, and OSX we don't have a good story yet. Don't
+     // fail the test, but report.
+     printf("Platform has overflow: %s\n",
diff --git a/chromium-new/patches/patch-base_strings_safe__sprintf.cc b/chromium-new/patches/patch-base_strings_safe__sprintf.cc
new file mode 100644
index 0000000..e77848b
--- /dev/null
+++ b/chromium-new/patches/patch-base_strings_safe__sprintf.cc
@@ -0,0 +1,18 @@
+$NetBSD$
+
+--- base/strings/safe_sprintf.cc.orig	2016-06-24 01:02:08.000000000 +0000
++++ base/strings/safe_sprintf.cc
+@@ -115,8 +115,11 @@ class Buffer {
+         count_(0) {
+ // MSVS2013's standard library doesn't mark max() as constexpr yet. cl.exe
+ // supports static_cast but doesn't really implement constexpr yet so it doesn't
+-// complain, but clang does.
+-#if __cplusplus >= 201103 && !(defined(__clang__) && defined(OS_WIN))
++// complain, but clang does. Older FreeBSD (<10) use libstdc++4.2, which
++// doesn't mark numeric_limits::max() as constexp.
++#if __cplusplus >= 201103 && \
++	!(defined(OS_FREEBSD) && __FreeBSD_version > 1000054) && \
++	!(defined(__clang__) && defined(OS_WIN))
+     static_assert(kSSizeMaxConst ==
+                       static_cast<size_t>(std::numeric_limits<ssize_t>::max()),
+                   "kSSizeMaxConst should be the max value of an ssize_t");
diff --git a/chromium-new/patches/patch-base_strings_safe_sprintf_cc b/chromium-new/patches/patch-base_strings_safe_sprintf_cc
deleted file mode 100644
index 8778b11..0000000
--- a/chromium-new/patches/patch-base_strings_safe_sprintf_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-base_strings_safe_sprintf_cc,v 1.3 2016/01/23 18:49:31 robert Exp $
---- base/strings/safe_sprintf.cc.orig.port	Wed Jan 20 21:01:18 2016
-+++ base/strings/safe_sprintf.cc	Fri Jan 22 19:58:58 2016
-@@ -118,7 +118,7 @@ class Buffer {
- // doesn't really implement constexpr yet so it doesn't complain, but clang
- // does.
- #if __cplusplus >= 201103 && !defined(OS_ANDROID) && !defined(OS_MACOSX) && \
--    !defined(OS_IOS) && !(defined(__clang__) && defined(OS_WIN))
-+    !defined(OS_IOS) && !(defined(__clang__) && defined(OS_WIN)) && !defined(OS_BSD)
-     COMPILE_ASSERT(kSSizeMaxConst == \
-                    static_cast<size_t>(std::numeric_limits<ssize_t>::max()),
-                    kSSizeMax_is_the_max_value_of_an_ssize_t);
diff --git a/chromium-new/patches/patch-base_sys__info__freebsd.cc b/chromium-new/patches/patch-base_sys__info__freebsd.cc
new file mode 100644
index 0000000..402e5da
--- /dev/null
+++ b/chromium-new/patches/patch-base_sys__info__freebsd.cc
@@ -0,0 +1,69 @@
+$NetBSD$
+
+--- base/sys_info_freebsd.cc.orig	2016-06-24 01:02:08.000000000 +0000
++++ base/sys_info_freebsd.cc
+@@ -12,12 +12,34 @@
+ 
+ namespace base {
+ 
++int64_t SysInfo::AmountOfAvailablePhysicalMemory() {
++  int page_size, r = 0;
++  unsigned pgfree, pginact, pgcache;
++  size_t size = sizeof(page_size);
++  size_t szpg = sizeof(pgfree);
++  if(r == 0)
++    r = sysctlbyname("vm.stats.vm.v_page_size", &page_size, &size, NULL, 0);
++  if(r == 0)
++    r = sysctlbyname("vm.stats.vm.v_free_count", &pgfree, &szpg, NULL, 0);
++  if(r == 0)
++    r = sysctlbyname("vm.stats.vm.v_inactive_count", &pginact, &szpg, NULL, 0);
++  if(r == 0)
++    r = sysctlbyname("vm.stats.vm.v_cache_count", &pgcache, &szpg, NULL, 0);
++  if (r == -1) {
++    NOTREACHED();
++    return 0;
++  }
++  return static_cast<int64_t>((pgfree + pginact + pgcache) * page_size);
++}
++
+ int64_t SysInfo::AmountOfPhysicalMemory() {
+-  int pages, page_size;
++  int pages, page_size, r = 0;
+   size_t size = sizeof(pages);
+-  sysctlbyname("vm.stats.vm.v_page_count", &pages, &size, NULL, 0);
+-  sysctlbyname("vm.stats.vm.v_page_size", &page_size, &size, NULL, 0);
+-  if (pages == -1 || page_size == -1) {
++  if(r == 0)
++    r = sysctlbyname("vm.stats.vm.v_page_count", &pages, &size, NULL, 0);
++  if(r == 0)
++    r = sysctlbyname("vm.stats.vm.v_page_size", &page_size, &size, NULL, 0);
++  if (r == -1) {
+     NOTREACHED();
+     return 0;
+   }
+@@ -35,4 +57,25 @@ uint64_t SysInfo::MaxSharedMemorySize() 
+   return static_cast<uint64_t>(limit);
+ }
+ 
++// static
++std::string SysInfo::CPUModelName() {
++  int mib[] = { CTL_HW, HW_MODEL };
++  char name[256];
++  size_t size = arraysize(name);
++  if (sysctl(mib, arraysize(mib), &name, &size, NULL, 0) == 0)
++    return name;
++  return std::string();
++}
++
++int SysInfo::NumberOfProcessors() {
++  int mib[] = { CTL_HW, HW_NCPU };
++  int ncpu;
++  size_t size = sizeof(ncpu);
++  if (sysctl(mib, arraysize(mib), &ncpu, &size, NULL, 0) == -1) {
++    NOTREACHED();
++    return 1;
++  }
++  return ncpu;
++}
++
+ }  // namespace base
diff --git a/chromium-new/patches/patch-base_sys__info__netbsd.cc b/chromium-new/patches/patch-base_sys__info__netbsd.cc
new file mode 100644
index 0000000..686f5f5
--- /dev/null
+++ b/chromium-new/patches/patch-base_sys__info__netbsd.cc
@@ -0,0 +1,83 @@
+$NetBSD$
+
+--- base/sys_info_netbsd.cc.orig	2016-07-11 14:49:52.785554196 +0000
++++ base/sys_info_netbsd.cc
+@@ -0,0 +1,78 @@
++// Copyright (c) 2011 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "base/sys_info.h"
++
++#include <stddef.h>
++#include <stdint.h>
++#include <sys/param.h>
++#include <sys/shm.h>
++#include <sys/sysctl.h>
++
++#include "base/logging.h"
++#include "base/macros.h"
++
++namespace {
++
++int64_t AmountOfMemory(int pages_name) {
++  long pages = sysconf(pages_name);
++  long page_size = sysconf(_SC_PAGESIZE);
++  if (pages == -1 || page_size == -1) {
++    NOTREACHED();
++    return 0;
++  }
++  return static_cast<int64_t>(pages) * page_size;
++}
++
++}  // namespace
++
++namespace base {
++
++// static
++int SysInfo::NumberOfProcessors() {
++  int mib[] = { CTL_HW, HW_NCPU };
++  int ncpu;
++  size_t size = sizeof(ncpu);
++  if (sysctl(mib, arraysize(mib), &ncpu, &size, NULL, 0) < 0) {
++    NOTREACHED();
++    return 1;
++  }
++  return ncpu;
++}
++
++// static
++int64_t SysInfo::AmountOfPhysicalMemory() {
++  return AmountOfMemory(_SC_PHYS_PAGES);
++}
++
++// static
++int64_t SysInfo::AmountOfAvailablePhysicalMemory() {
++  return AmountOfMemory(_SC_AVPHYS_PAGES);
++}
++
++// static
++uint64_t SysInfo::MaxSharedMemorySize() {
++  int mib[] = { CTL_KERN, KERN_SHMINFO, KERN_SHMINFO_SHMMAX };
++  size_t limit;
++  size_t size = sizeof(limit);
++  if (sysctl(mib, arraysize(mib), &limit, &size, NULL, 0) < 0) {
++    NOTREACHED();
++    return 0;
++  }
++  return static_cast<uint64_t>(limit);
++}
++
++// static
++std::string SysInfo::CPUModelName() {
++  int mib[] = { CTL_HW, HW_MODEL };
++  char name[256];
++  size_t len = arraysize(name);
++  if (sysctl(mib, arraysize(mib), name, &len, NULL, 0) < 0) {
++    NOTREACHED();
++    return std::string();
++  }
++  return name;
++}
++
++}  // namespace base
diff --git a/chromium-new/patches/patch-base_sys__info__posix.cc b/chromium-new/patches/patch-base_sys__info__posix.cc
new file mode 100644
index 0000000..a04906a
--- /dev/null
+++ b/chromium-new/patches/patch-base_sys__info__posix.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- base/sys_info_posix.cc.orig	2016-06-24 01:02:08.000000000 +0000
++++ base/sys_info_posix.cc
+@@ -77,7 +77,7 @@ base::LazyInstance<
+ 
+ namespace base {
+ 
+-#if !defined(OS_OPENBSD)
++#if !defined(OS_OPENBSD) && !defined(OS_FREEBSD) && !defined(OS_NETBSD)
+ int SysInfo::NumberOfProcessors() {
+   return g_lazy_number_of_processors.Get().value();
+ }
diff --git a/chromium-new/patches/patch-base_sys_info_openbsd_cc b/chromium-new/patches/patch-base_sys_info_openbsd_cc
deleted file mode 100644
index a88b13f..0000000
--- a/chromium-new/patches/patch-base_sys_info_openbsd_cc
+++ /dev/null
@@ -1,29 +0,0 @@
-$OpenBSD: patch-base_sys_info_openbsd_cc,v 1.8 2016/01/06 21:46:44 robert Exp $
---- base/sys_info_openbsd.cc.orig.port	Tue Dec 15 21:05:04 2015
-+++ base/sys_info_openbsd.cc	Sun Jan  3 22:19:58 2016
-@@ -26,6 +26,8 @@ int64 AmountOfMemory(int pages_name) {
- 
- namespace base {
- 
-+int64 aofpmem = 0;
-+
- // static
- int SysInfo::NumberOfProcessors() {
-   int mib[] = { CTL_HW, HW_NCPU };
-@@ -40,12 +42,11 @@ int SysInfo::NumberOfProcessors() {
- 
- // static
- int64 SysInfo::AmountOfPhysicalMemory() {
--  return AmountOfMemory(_SC_PHYS_PAGES);
--}
-+  // pledge(2)
-+  if (!aofpmem)
-+    aofpmem = AmountOfMemory(_SC_PHYS_PAGES);
- 
--// static
--int64 SysInfo::AmountOfAvailablePhysicalMemory() {
--  return AmountOfMemory(_SC_AVPHYS_PAGES);
-+  return aofpmem;
- }
- 
- // static
diff --git a/chromium-new/patches/patch-base_sys_info_posix_cc b/chromium-new/patches/patch-base_sys_info_posix_cc
deleted file mode 100644
index 4d91066..0000000
--- a/chromium-new/patches/patch-base_sys_info_posix_cc
+++ /dev/null
@@ -1,21 +0,0 @@
-$OpenBSD: patch-base_sys_info_posix_cc,v 1.5 2014/11/19 21:27:32 robert Exp $
---- base/sys_info_posix.cc.orig.port	Wed Nov 19 05:52:58 2014
-+++ base/sys_info_posix.cc	Wed Nov 19 08:38:24 2014
-@@ -87,6 +87,17 @@ int64 SysInfo::AmountOfVirtualMemory() {
- }
- 
- // static
-+int64 SysInfo::AmountOfAvailablePhysicalMemory() {
-+  long available_pages = sysconf(_SC_AVPHYS_PAGES);
-+  long page_size = sysconf(_SC_PAGE_SIZE);
-+  if (available_pages == -1 || page_size == -1) {
-+    NOTREACHED();
-+    return 0;
-+  }
-+  return static_cast<int64>(available_pages) * page_size;
-+}
-+
-+// static
- int64 SysInfo::AmountOfFreeDiskSpace(const FilePath& path) {
-   base::ThreadRestrictions::AssertIOAllowed();
- 
diff --git a/chromium-new/patches/patch-base_test_launcher_test__launcher.cc b/chromium-new/patches/patch-base_test_launcher_test__launcher.cc
new file mode 100644
index 0000000..2b93299
--- /dev/null
+++ b/chromium-new/patches/patch-base_test_launcher_test__launcher.cc
@@ -0,0 +1,15 @@
+$NetBSD$
+
+--- base/test/launcher/test_launcher.cc.orig	2016-06-24 01:02:08.000000000 +0000
++++ base/test/launcher/test_launcher.cc
+@@ -53,6 +53,10 @@
+ #include "base/win/windows_version.h"
+ #endif
+ 
++#if defined(OS_FREEBSD)
++#include <signal.h>
++#endif
++
+ namespace base {
+ 
+ // See https://groups.google.com/a/chromium.org/d/msg/chromium-dev/nkdTP7sstSc/uT3FaE_sgkAJ .
diff --git a/chromium-new/patches/patch-base_threading_platform__thread__linux.cc b/chromium-new/patches/patch-base_threading_platform__thread__linux.cc
new file mode 100644
index 0000000..3899f5e
--- /dev/null
+++ b/chromium-new/patches/patch-base_threading_platform__thread__linux.cc
@@ -0,0 +1,23 @@
+$NetBSD$
+
+--- base/threading/platform_thread_linux.cc.orig	2016-06-24 01:02:08.000000000 +0000
++++ base/threading/platform_thread_linux.cc
+@@ -17,7 +17,9 @@
+ 
+ #if !defined(OS_NACL)
+ #include <pthread.h>
++#if !defined(OS_BSD)
+ #include <sys/prctl.h>
++#endif
+ #include <sys/types.h>
+ #include <unistd.h>
+ #endif
+@@ -70,7 +72,7 @@ void PlatformThread::SetName(const std::
+   ThreadIdNameManager::GetInstance()->SetName(CurrentId(), name);
+   tracked_objects::ThreadData::InitializeThreadContext(name);
+ 
+-#if !defined(OS_NACL)
++#if !defined(OS_NACL) && !defined(OS_BSD)
+   // On linux we can get the thread names to show up in the debugger by setting
+   // the process name for the LWP.  We don't want to do this for the main
+   // thread because that would rename the process, causing tools like killall
diff --git a/chromium-new/patches/patch-base_threading_platform__thread__posix.cc b/chromium-new/patches/patch-base_threading_platform__thread__posix.cc
new file mode 100644
index 0000000..bb86881
--- /dev/null
+++ b/chromium-new/patches/patch-base_threading_platform__thread__posix.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- base/threading/platform_thread_posix.cc.orig	2016-06-24 01:02:08.000000000 +0000
++++ base/threading/platform_thread_posix.cc
+@@ -55,7 +55,7 @@ void* ThreadFunc(void* params) {
+     if (!thread_params->joinable)
+       base::ThreadRestrictions::SetSingletonAllowed(false);
+ 
+-#if !defined(OS_NACL)
++#if !defined(OS_NACL) && !defined(OS_BSD)
+     // Threads on linux/android may inherit their priority from the thread
+     // where they were created. This explicitly sets the priority of all new
+     // threads.
diff --git a/chromium-new/patches/patch-base_threading_platform_thread_linux_cc b/chromium-new/patches/patch-base_threading_platform_thread_linux_cc
deleted file mode 100644
index e5e5af2..0000000
--- a/chromium-new/patches/patch-base_threading_platform_thread_linux_cc
+++ /dev/null
@@ -1,22 +0,0 @@
-$OpenBSD: patch-base_threading_platform_thread_linux_cc,v 1.8 2015/10/14 16:42:07 robert Exp $
---- base/threading/platform_thread_linux.cc.orig.port	Wed Oct  7 04:42:07 2015
-+++ base/threading/platform_thread_linux.cc	Wed Oct 14 07:41:12 2015
-@@ -15,7 +15,9 @@
- 
- #if !defined(OS_NACL)
- #include <pthread.h>
-+#if !defined(OS_BSD)
- #include <sys/prctl.h>
-+#endif
- #include <sys/types.h>
- #include <unistd.h>
- #endif
-@@ -79,7 +81,7 @@ void PlatformThread::SetName(const std::string& name) 
-   ThreadIdNameManager::GetInstance()->SetName(CurrentId(), name);
-   tracked_objects::ThreadData::InitializeThreadContext(name);
- 
--#if !defined(OS_NACL)
-+#if !defined(OS_NACL) && !defined(OS_BSD)
-   // On linux we can get the thread names to show up in the debugger by setting
-   // the process name for the LWP.  We don't want to do this for the main
-   // thread because that would rename the process, causing tools like killall
diff --git a/chromium-new/patches/patch-base_trace__event_process__memory__dump.cc b/chromium-new/patches/patch-base_trace__event_process__memory__dump.cc
new file mode 100644
index 0000000..fd76600
--- /dev/null
+++ b/chromium-new/patches/patch-base_trace__event_process__memory__dump.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- base/trace_event/process_memory_dump.cc.orig	2016-06-24 01:02:08.000000000 +0000
++++ base/trace_event/process_memory_dump.cc
+@@ -83,7 +83,7 @@ size_t ProcessMemoryDump::CountResidentB
+   const size_t kMaxChunkSize = 8 * 1024 * 1024;
+   size_t max_vec_size =
+       GetSystemPageCount(std::min(mapped_size, kMaxChunkSize), page_size);
+-#if defined(OS_MACOSX) || defined(OS_IOS)
++#if defined(OS_MACOSX) || defined(OS_IOS) || defined(OS_BSD)
+   std::unique_ptr<char[]> vec(new char[max_vec_size]);
+ #elif defined(OS_WIN)
+   std::unique_ptr<PSAPI_WORKING_SET_EX_INFORMATION[]> vec(
diff --git a/chromium-new/patches/patch-base_trace__event_process__memory__dump.h b/chromium-new/patches/patch-base_trace__event_process__memory__dump.h
new file mode 100644
index 0000000..480bda4
--- /dev/null
+++ b/chromium-new/patches/patch-base_trace__event_process__memory__dump.h
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- base/trace_event/process_memory_dump.h.orig	2016-06-24 01:02:08.000000000 +0000
++++ base/trace_event/process_memory_dump.h
+@@ -23,7 +23,7 @@
+ 
+ // Define COUNT_RESIDENT_BYTES_SUPPORTED if platform supports counting of the
+ // resident memory.
+-#if (defined(OS_POSIX) && !defined(OS_NACL)) || defined(OS_WIN)
++#if (defined(OS_POSIX) && !defined(OS_NACL) && !defined(OS_BSD)) || defined(OS_WIN)
+ #define COUNT_RESIDENT_BYTES_SUPPORTED
+ #endif
+ 
diff --git a/chromium-new/patches/patch-base_trace_event_process_memory_dump_h b/chromium-new/patches/patch-base_trace_event_process_memory_dump_h
deleted file mode 100644
index 3627171..0000000
--- a/chromium-new/patches/patch-base_trace_event_process_memory_dump_h
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-base_trace_event_process_memory_dump_h,v 1.1 2016/01/23 18:49:31 robert Exp $
---- base/trace_event/process_memory_dump.h.orig.port	Fri Jan 22 23:16:20 2016
-+++ base/trace_event/process_memory_dump.h	Fri Jan 22 23:16:29 2016
-@@ -22,7 +22,7 @@
- // resident memory.
- // TODO(crbug.com/542671): COUNT_RESIDENT_BYTES_SUPPORTED is disabled on iOS
- // as it cause memory corruption on iOS 9.0+ devices.
--#if defined(OS_POSIX) && !defined(OS_NACL) && !defined(OS_IOS)
-+#if defined(OS_POSIX) && !defined(OS_NACL) && !defined(OS_IOS) && !defined(OS_BSD)
- #define COUNT_RESIDENT_BYTES_SUPPORTED
- #endif
- 
diff --git a/chromium-new/patches/patch-build_all_gyp b/chromium-new/patches/patch-build_all_gyp
deleted file mode 100644
index de4f0ce..0000000
--- a/chromium-new/patches/patch-build_all_gyp
+++ /dev/null
@@ -1,11 +0,0 @@
-$OpenBSD: patch-build_all_gyp,v 1.28 2016/01/23 18:49:31 robert Exp $
---- build/all.gyp.orig.port	Wed Jan 20 21:01:18 2016
-+++ build/all.gyp	Fri Jan 22 19:58:58 2016
-@@ -352,7 +352,6 @@
-             '../media/midi/midi.gyp:midi_unittests',
-             '../mojo/mojo.gyp:mojo',
-             '../ppapi/ppapi_internal.gyp:ppapi_unittests',
--            '../remoting/remoting.gyp:remoting_unittests',
-             '../third_party/WebKit/public/all.gyp:all_blink',
-             '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_unittests',
-             '../third_party/leveldatabase/leveldatabase.gyp:env_chromium_unittests',
diff --git a/chromium-new/patches/patch-build_build__config.h b/chromium-new/patches/patch-build_build__config.h
new file mode 100644
index 0000000..c0deb2e
--- /dev/null
+++ b/chromium-new/patches/patch-build_build__config.h
@@ -0,0 +1,31 @@
+$NetBSD$
+
+--- build/build_config.h.orig	2016-06-24 01:02:09.000000000 +0000
++++ build/build_config.h
+@@ -53,6 +53,8 @@
+ #define OS_FREEBSD 1
+ #elif defined(__OpenBSD__)
+ #define OS_OPENBSD 1
++#elif defined(__NetBSD__)
++#define OS_NETBSD 1
+ #elif defined(__sun)
+ #define OS_SOLARIS 1
+ #elif defined(__QNXNTO__)
+@@ -67,7 +69,7 @@
+ 
+ // For access to standard BSD features, use OS_BSD instead of a
+ // more specific macro.
+-#if defined(OS_FREEBSD) || defined(OS_OPENBSD)
++#if defined(OS_FREEBSD) || defined(OS_OPENBSD) || defined(OS_NETBSD)
+ #define OS_BSD 1
+ #endif
+ 
+@@ -75,7 +77,7 @@
+ // more specific macro.
+ #if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_FREEBSD) ||     \
+     defined(OS_OPENBSD) || defined(OS_SOLARIS) || defined(OS_ANDROID) ||  \
+-    defined(OS_NACL) || defined(OS_QNX)
++    defined(OS_NACL) || defined(OS_QNX) || defined(OS_NETBSD)
+ #define OS_POSIX 1
+ #endif
+ 
diff --git a/chromium-new/patches/patch-build_common.gypi b/chromium-new/patches/patch-build_common.gypi
new file mode 100644
index 0000000..27cfa78
--- /dev/null
+++ b/chromium-new/patches/patch-build_common.gypi
@@ -0,0 +1,142 @@
+$NetBSD$
+
+--- build/common.gypi.orig	2016-06-24 01:02:09.000000000 +0000
++++ build/common.gypi
+@@ -113,7 +113,7 @@
+ 
+           'conditions': [
+             # Windows and Linux use Aura, but not Ash.
+-            ['OS=="win" or OS=="linux"', {
++            ['OS=="win" or OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd"', {
+               'use_aura%': 1,
+             }],
+ 
+@@ -138,7 +138,7 @@
+             }],
+ 
+             # Whether we're a traditional desktop unix.
+-            ['(OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris") and chromeos==0', {
++            ['(OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd" or OS=="solaris") and chromeos==0', {
+               'desktop_linux%': 1,
+             }, {
+               'desktop_linux%': 0,
+@@ -255,13 +255,13 @@
+           }],
+ 
+           # Enable HiDPI on Mac OS, Windows and Linux (including Chrome OS).
+-          ['OS=="mac" or OS=="win" or OS=="linux"', {
++          ['OS=="mac" or OS=="win" or OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd"', {
+             'enable_hidpi%': 1,
+           }],
+ 
+           # Enable Top Chrome Material Design on Chrome OS, Windows, and Linux,
+           # and Mac.
+-          ['chromeos==1 or OS=="win" or OS=="linux" or OS=="mac"', {
++          ['chromeos==1 or OS=="win" or OS=="linux" or OS=="mac" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd"', {
+             'enable_topchrome_md%': 1,
+           }],
+ 
+@@ -730,14 +730,20 @@
+         }],
+ 
+         # A flag for BSD platforms
+-        ['OS=="freebsd" or OS=="openbsd"', {
++        ['OS=="freebsd" or OS=="openbsd" or OS=="netbsd"', {
+           'os_bsd%': 1,
+         }, {
+           'os_bsd%': 0,
+         }],
+ 
++        ['OS=="freebsd" or OS=="openbsd" or OS=="netbsd"', {
++            'icu_use_data_file_flag%': 0,
++        }, {
++            'icu_use_data_file_flag%': 1,
++        }],
++
+         # NSS usage.
+-        ['(OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris")', {
++        ['(OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd" or OS=="solaris")', {
+           'use_nss_certs%': 1,
+         }, {
+           'use_nss_certs%': 0,
+@@ -746,7 +752,7 @@
+         # NSS verifier usage.
+         # On non-OpenSSL iOS configurations, certificates use the operating
+         # system library, but the verifier uses the bundled copy of NSS.
+-        ['(OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris") or (OS=="ios" and use_openssl==0)', {
++        ['(OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd" or OS=="solaris") or (OS=="ios" and use_openssl==0)', {
+           'use_nss_verifier%': 1,
+         }, {
+           'use_nss_verifier%': 0,
+@@ -790,7 +796,7 @@
+         }],
+ 
+         # DBus usage.
+-        ['OS=="linux" and embedded==0', {
++        ['(OS=="linux" or OS=="freebsd" or OS=="netbsd") and embedded==0', {
+           'use_dbus%': 1,
+         }, {
+           'use_dbus%': 0,
+@@ -892,7 +898,7 @@
+ 
+         # Use GPU accelerated cross process image transport by default
+         # on linux builds with the Aura window manager
+-        ['use_aura==1 and OS=="linux"', {
++        ['use_aura==1 and (OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd")', {
+           'ui_compositor_image_transport%': 1,
+         }, {
+           'ui_compositor_image_transport%': 0,
+@@ -1021,7 +1027,7 @@
+         }, {
+           'use_openmax_dl_fft%': 0,
+         }],
+-        ['OS=="win" or OS=="linux"', {
++        ['OS=="win" or OS=="linux" or OS=="freebsd"', {
+           'enable_mdns%' : 1,
+         }],
+ 
+@@ -1321,6 +1327,10 @@
+     # able to turn it off for various reasons.
+     'linux_disable_pie%': 0,
+ 
++    # XXX(rene) More options, keep them?
++    'os_ver%': 0,
++    'use_system_libjpeg%': 0,
++
+     # The release channel that this build targets. This is used to restrict
+     # channel-specific build options, like which installer packages to create.
+     # The default is 'all', which does no channel-specific filtering.
+@@ -4724,6 +4734,24 @@
+         'ldflags': [
+           '-Wl,--no-keep-memory',
+         ],
++        'ldflags!': [
++          '-ldl',
++          '-pie'
++        ],
++        'libraries!': [
++          '-ldl',
++        ],
++      },
++    }],
++    # NetBSD
++    ['OS=="netbsd"', {
++      'target_defaults': {
++        'ldflags!': [
++          '-ldl',
++        ],
++        'libraries!': [
++          '-ldl',
++        ],
+       },
+     }],
+     # Android-specific options; note that most are set above with Linux.
+@@ -5240,7 +5268,7 @@
+           # 2. Further down, library_dirs is set to
+           #    third_party/libc++-static, which contains a static
+           #    libc++.a library.  The linker then links against that instead
+-          #    of against /usr/lib/libc++.dylib when it sees the -lc++ flag
++          #    of against /usr/tmp/pkgsrc/wip/chromium-new/work/.buildlink/lib/libc++.dylib when it sees the -lc++ flag
+           #    added by the driver.
+           #
+           # In component builds, just link to the system libc++.  This has
diff --git a/chromium-new/patches/patch-build_common_gypi b/chromium-new/patches/patch-build_common_gypi
deleted file mode 100644
index a213fb9..0000000
--- a/chromium-new/patches/patch-build_common_gypi
+++ /dev/null
@@ -1,106 +0,0 @@
-$OpenBSD: patch-build_common_gypi,v 1.42 2016/01/23 18:49:31 robert Exp $
---- build/common.gypi.orig.port	Wed Jan 20 21:01:18 2016
-+++ build/common.gypi	Fri Jan 22 19:58:58 2016
-@@ -105,7 +105,7 @@
- 
-           'conditions': [
-             # Windows and Linux (including Chrome OS) use Aura and Ash.
--            ['OS=="win" or OS=="linux"', {
-+            ['OS=="win" or OS=="linux" or OS=="openbsd"', {
-               'use_ash%': 1,
-               'use_aura%': 1,
-             }],
-@@ -229,12 +229,12 @@
-           }],
- 
-           # Enable HiDPI on Mac OS, Windows and Linux (including Chrome OS).
--          ['OS=="mac" or OS=="win" or OS=="linux"', {
-+          ['OS=="mac" or OS=="win" or OS=="linux" or OS=="openbsd"', {
-             'enable_hidpi%': 1,
-           }],
- 
-           # Enable Top Chrome Material Design on Chrome OS, Windows, and Linux.
--          ['chromeos==1 or OS=="win" or OS=="linux"', {
-+          ['chromeos==1 or OS=="win" or OS=="linux" or OS=="openbsd"', {
-             'enable_topchrome_md%': 1,
-           }],
- 
-@@ -761,7 +761,7 @@
-         }],
- 
-         # DBus usage.
--        ['OS=="linux" and embedded==0', {
-+        ['(OS=="linux" or OS=="openbsd") and embedded==0', {
-           'use_dbus%': 1,
-         }, {
-           'use_dbus%': 0,
-@@ -868,7 +868,7 @@
- 
-         # Use GPU accelerated cross process image transport by default
-         # on linux builds with the Aura window manager
--        ['use_aura==1 and OS=="linux"', {
-+        ['use_aura==1 and (OS=="linux" or OS=="openbsd")', {
-           'ui_compositor_image_transport%': 1,
-         }, {
-           'ui_compositor_image_transport%': 0,
-@@ -974,7 +974,7 @@
-         # --help for more information. Meant to be overriden with GYP_DEFINES.
-         # TODO(maruel): Remove the conditions as more configurations are
-         # supported.
--        ['OS!="ios" and OS!="android" and chromeos==0', {
-+        ['OS!="ios" and OS!="android" and chromeos==0 and OS!="openbsd"', {
-           'test_isolation_mode%': 'check',
-         }, {
-           'test_isolation_mode%': 'noop',
-@@ -990,7 +990,7 @@
-         }, {
-           'use_openmax_dl_fft%': 0,
-         }],
--        ['OS=="win" or OS=="linux"', {
-+        ['OS=="win" or OS=="linux" or OS=="openbsd"', {
-             'enable_mdns%' : 1,
-         }],
- 
-@@ -1617,7 +1617,7 @@
-       ['OS=="win"', {
-         'windows_driver_kit_path%': '$(WDK_DIR)',
-       }],
--      ['os_posix==1 and OS!="mac" and OS!="ios"', {
-+      ['os_posix==1 and OS!="mac" and OS!="ios" and OS!="openbsd"', {
-         'conditions': [
-           ['target_arch=="mipsel" or target_arch=="mips64el"', {
-             'werror%': '',
-@@ -3609,6 +3609,13 @@
-     },
-   },
-   'conditions': [
-+    ['OS=="openbsd"', {
-+      'target_defaults': {
-+        'cflags': [
-+          '-Wno-unknown-warning-option',
-+        ],
-+      },
-+    }],
-     ['os_posix==1', {
-       'target_defaults': {
-         'ldflags': [
-@@ -4695,7 +4702,7 @@
-     }],
-     # FreeBSD-specific options; note that most FreeBSD options are set above,
-     # with Linux.
--    ['OS=="freebsd"', {
-+    ['OS=="openbsd"', {
-       'target_defaults': {
-         'ldflags': [
-           '-Wl,--no-keep-memory',
-@@ -5980,8 +5987,8 @@
-     ['clang==1 and ((OS!="mac" and OS!="ios") or clang_xcode==0) '
-         'and OS!="win"', {
-       'make_global_settings': [
--        ['CC', '<(make_clang_dir)/bin/clang'],
--        ['CXX', '<(make_clang_dir)/bin/clang++'],
-+        ['CC', '/usr/local/bin/clang'],
-+        ['CXX', '/usr/local/bin/clang++'],
-         ['CC.host', '$(CC)'],
-         ['CXX.host', '$(CXX)'],
-       ],
diff --git a/chromium-new/patches/patch-build_filename__rules.gypi b/chromium-new/patches/patch-build_filename__rules.gypi
new file mode 100644
index 0000000..176520f
--- /dev/null
+++ b/chromium-new/patches/patch-build_filename__rules.gypi
@@ -0,0 +1,22 @@
+$NetBSD$
+
+--- build/filename_rules.gypi.orig	2016-06-24 01:02:09.000000000 +0000
++++ build/filename_rules.gypi
+@@ -29,7 +29,7 @@
+     # In case a file is not needed, it is going to be excluded later on.
+     # TODO(evan): the above is not correct; we shouldn't build _linux
+     # files on non-linux.
+-    ['OS!="linux" and OS!="openbsd" and OS!="freebsd" or >(nacl_untrusted_build)==1', {
++    ['OS!="linux" and OS!="openbsd" and OS!="freebsd" and OS!="netbsd" or >(nacl_untrusted_build)==1', {
+       'sources/': [
+         ['exclude', '_linux(_unittest|_test)?\\.(h|cc)$'],
+         ['exclude', '(^|/)linux/'],
+@@ -89,7 +89,7 @@
+                     ['exclude', '_ashwin\\.(h|cc)$']
+       ]
+     }],
+-    ['<(use_aura)==0 or OS!="linux" or >(nacl_untrusted_build)==1', {
++    ['<(use_aura)==0 or (OS!="linux" and OS!="openbsd" and OS!="freebsd") or >(nacl_untrusted_build)==1', {
+       'sources/': [ ['exclude', '_auralinux\\.(h|cc)$'] ]
+     }],
+     ['<(use_ozone)==0 or >(nacl_untrusted_build)==1', {
diff --git a/chromium-new/patches/patch-build_filename_rules_gypi b/chromium-new/patches/patch-build_filename_rules_gypi
deleted file mode 100644
index 2e96153..0000000
--- a/chromium-new/patches/patch-build_filename_rules_gypi
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-build_filename_rules_gypi,v 1.1 2014/07/20 17:22:33 robert Exp $
---- build/filename_rules.gypi.orig.port	Fri Jul 18 23:35:30 2014
-+++ build/filename_rules.gypi	Fri Jul 18 23:41:13 2014
-@@ -85,7 +85,7 @@
-     ['<(use_aura)==0 or OS!="win" or >(nacl_untrusted_build)==1', {
-       'sources/': [ ['exclude', '_aurawin\\.(h|cc)$'] ]
-     }],
--    ['<(use_aura)==0 or OS!="linux" or >(nacl_untrusted_build)==1', {
-+    ['<(use_aura)==0 or (OS!="linux" and OS!="openbsd") or >(nacl_untrusted_build)==1', {
-       'sources/': [ ['exclude', '_auralinux\\.(h|cc)$'] ]
-     }],
-     ['<(use_ash)==0 or >(nacl_untrusted_build)==1', {
diff --git a/chromium-new/patches/patch-build_linux_system.gyp b/chromium-new/patches/patch-build_linux_system.gyp
new file mode 100644
index 0000000..62d6703
--- /dev/null
+++ b/chromium-new/patches/patch-build_linux_system.gyp
@@ -0,0 +1,18 @@
+$NetBSD$
+
+--- build/linux/system.gyp.orig	2016-06-24 01:02:09.000000000 +0000
++++ build/linux/system.gyp
+@@ -1051,6 +1051,13 @@
+       'include_dirs': [
+         '../..',
+       ],
++      'conditions' : [
++        ['OS=="freebsd" or OS=="netbsd"', {
++          'include_dirs': [
++            '<(prefix_dir)/include',
++          ],
++        }],
++      ],
+       'hard_dependency': 1,
+       'actions': [
+         {
diff --git a/chromium-new/patches/patch-build_linux_unbundle_libwebp.gyp b/chromium-new/patches/patch-build_linux_unbundle_libwebp.gyp
new file mode 100644
index 0000000..74d8f6c
--- /dev/null
+++ b/chromium-new/patches/patch-build_linux_unbundle_libwebp.gyp
@@ -0,0 +1,19 @@
+$NetBSD$
+
+--- build/linux/unbundle/libwebp.gyp.orig	2016-06-24 01:02:09.000000000 +0000
++++ build/linux/unbundle/libwebp.gyp
+@@ -14,13 +14,7 @@
+       },
+       'link_settings': {
+         'libraries': [
+-          # Check for presence of webpdemux library, use it if present.
+-          '<!(python <(DEPTH)/tools/compile_test/compile_test.py '
+-          '--code "int main() { return 0; }" '
+-          '--run-linker '
+-          '--on-success "-lwebp -lwebpdemux" '
+-          '--on-failure "-lwebp" '
+-          '-- -lwebpdemux)',
++          '-lwebp -lwebpdemux',
+         ],
+       },
+     }
diff --git a/chromium-new/patches/patch-cc_layers_scrollbar__layer__impl__base.cc b/chromium-new/patches/patch-cc_layers_scrollbar__layer__impl__base.cc
new file mode 100644
index 0000000..c825417
--- /dev/null
+++ b/chromium-new/patches/patch-cc_layers_scrollbar__layer__impl__base.cc
@@ -0,0 +1,15 @@
+$NetBSD$
+
+--- cc/layers/scrollbar_layer_impl_base.cc.orig	2016-06-24 01:02:09.000000000 +0000
++++ cc/layers/scrollbar_layer_impl_base.cc
+@@ -181,8 +181,8 @@ gfx::Rect ScrollbarLayerImplBase::Comput
+   int thumb_offset = TrackStart();
+   if (maximum > 0) {
+     float ratio = clamped_current_pos / maximum;
+-    float max_offset = track_length - thumb_length;
+-    thumb_offset += static_cast<int>(ratio * max_offset);
++    float _max_offset = track_length - thumb_length;
++    thumb_offset += static_cast<int>(ratio * _max_offset);
+   }
+ 
+   float thumb_thickness_adjustment =
diff --git a/chromium-new/patches/patch-cc_trees_property__tree.cc b/chromium-new/patches/patch-cc_trees_property__tree.cc
new file mode 100644
index 0000000..44a07ce
--- /dev/null
+++ b/chromium-new/patches/patch-cc_trees_property__tree.cc
@@ -0,0 +1,22 @@
+$NetBSD$
+
+--- cc/trees/property_tree.cc.orig	2016-06-24 01:02:09.000000000 +0000
++++ cc/trees/property_tree.cc
+@@ -1488,13 +1488,13 @@ gfx::ScrollOffset ScrollTree::MaxScrollO
+ 
+   gfx::Size clip_layer_bounds = scroll_clip_layer_bounds(scroll_node->id);
+ 
+-  gfx::ScrollOffset max_offset(
++  gfx::ScrollOffset _max_offset(
+       scaled_scroll_bounds.width() - clip_layer_bounds.width(),
+       scaled_scroll_bounds.height() - clip_layer_bounds.height());
+ 
+-  max_offset.Scale(1 / scale_factor);
+-  max_offset.SetToMax(gfx::ScrollOffset());
+-  return max_offset;
++  _max_offset.Scale(1 / scale_factor);
++  _max_offset.SetToMax(gfx::ScrollOffset());
++  return _max_offset;
+ }
+ 
+ gfx::Size ScrollTree::scroll_clip_layer_bounds(int scroll_node_id) const {
diff --git a/chromium-new/patches/patch-chrome_app_chrome__main__delegate.cc b/chromium-new/patches/patch-chrome_app_chrome__main__delegate.cc
new file mode 100644
index 0000000..d0d19d8
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_app_chrome__main__delegate.cc
@@ -0,0 +1,67 @@
+$NetBSD$
+
+--- chrome/app/chrome_main_delegate.cc.orig	2016-06-24 01:02:10.000000000 +0000
++++ chrome/app/chrome_main_delegate.cc
+@@ -111,7 +111,7 @@
+ #include "ui/base/x/x11_util.h"
+ #endif
+ 
+-#if defined(OS_POSIX) && !defined(OS_MACOSX)
++#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_BSD)
+ #include "components/crash/content/app/breakpad_linux.h"
+ #endif
+ 
+@@ -543,7 +543,7 @@ bool ChromeMainDelegate::BasicStartupCom
+       std::string format_str =
+           command_line.GetSwitchValueASCII(switches::kDiagnosticsFormat);
+       if (format_str == "machine") {
+-        format = diagnostics::DiagnosticsWriter::MACHINE;
++        format = diagnostics::DiagnosticsWriter::THEMACHINE;
+       } else if (format_str == "log") {
+         format = diagnostics::DiagnosticsWriter::LOG;
+       } else {
+@@ -593,7 +593,7 @@ bool ChromeMainDelegate::BasicStartupCom
+       std::string format_str =
+           command_line.GetSwitchValueASCII(switches::kDiagnosticsFormat);
+       if (format_str == "machine") {
+-        format = diagnostics::DiagnosticsWriter::MACHINE;
++        format = diagnostics::DiagnosticsWriter::THEMACHINE;
+       } else if (format_str == "human") {
+         format = diagnostics::DiagnosticsWriter::HUMAN;
+       } else {
+@@ -684,7 +684,7 @@ void ChromeMainDelegate::PreSandboxStart
+   std::string process_type =
+       command_line.GetSwitchValueASCII(switches::kProcessType);
+ 
+-#if defined(OS_POSIX)
++#if defined(OS_POSIX) && !defined(OS_BSD)
+   crash_reporter::SetCrashReporterClient(g_chrome_crash_client.Pointer());
+ #endif
+ 
+@@ -805,7 +805,7 @@ void ChromeMainDelegate::PreSandboxStart
+   chrome::InitializePDF();
+ #endif
+ 
+-#if defined(OS_POSIX) && !defined(OS_MACOSX)
++#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_BSD)
+   // Zygote needs to call InitCrashReporter() in RunZygote().
+   if (process_type != switches::kZygoteProcess) {
+ #if defined(OS_ANDROID)
+@@ -823,7 +823,7 @@ void ChromeMainDelegate::PreSandboxStart
+     breakpad::InitCrashReporter(process_type);
+ #endif  // defined(OS_ANDROID)
+   }
+-#endif  // defined(OS_POSIX) && !defined(OS_MACOSX)
++#endif  // defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_BSD)
+ 
+   // After all the platform Breakpads have been initialized, store the command
+   // line for crash reporting.
+@@ -933,7 +933,7 @@ bool ChromeMainDelegate::DelaySandboxIni
+ #endif
+   return process_type == switches::kRelauncherProcess;
+ }
+-#elif defined(OS_POSIX) && !defined(OS_ANDROID)
++#elif defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_BSD)
+ void ChromeMainDelegate::ZygoteStarting(
+     ScopedVector<content::ZygoteForkDelegate>* delegates) {
+ #if defined(OS_CHROMEOS)
diff --git a/chromium-new/patches/patch-chrome_app_chrome__main__delegate.h b/chromium-new/patches/patch-chrome_app_chrome__main__delegate.h
new file mode 100644
index 0000000..0255462
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_app_chrome__main__delegate.h
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- chrome/app/chrome_main_delegate.h.orig	2016-06-24 01:02:10.000000000 +0000
++++ chrome/app/chrome_main_delegate.h
+@@ -38,7 +38,7 @@ class ChromeMainDelegate : public conten
+       const std::string& process_type) override;
+   bool ShouldSendMachPort(const std::string& process_type) override;
+   bool DelaySandboxInitialization(const std::string& process_type) override;
+-#elif defined(OS_POSIX) && !defined(OS_ANDROID)
++#elif defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_BSD)
+   void ZygoteStarting(
+       ScopedVector<content::ZygoteForkDelegate>* delegates) override;
+   void ZygoteForked() override;
diff --git a/chromium-new/patches/patch-chrome_app_chrome_main_delegate_cc b/chromium-new/patches/patch-chrome_app_chrome_main_delegate_cc
deleted file mode 100644
index 90dbbaa..0000000
--- a/chromium-new/patches/patch-chrome_app_chrome_main_delegate_cc
+++ /dev/null
@@ -1,84 +0,0 @@
-$OpenBSD: patch-chrome_app_chrome_main_delegate_cc,v 1.27 2016/01/23 18:49:31 robert Exp $
---- chrome/app/chrome_main_delegate.cc.orig.port	Wed Jan 20 21:01:18 2016
-+++ chrome/app/chrome_main_delegate.cc	Fri Jan 22 19:58:58 2016
-@@ -76,7 +76,7 @@
- #include "components/crash/content/app/crash_reporter_client.h"
- #endif
- 
--#if !defined(DISABLE_NACL) && defined(OS_LINUX)
-+#if !defined(DISABLE_NACL) && defined(OS_LINUX) && !defined(OS_BSD)
- #include "components/nacl/common/nacl_paths.h"
- #include "components/nacl/zygote/nacl_fork_delegate_linux.h"
- #endif
-@@ -107,7 +107,7 @@
- #include "components/crash/content/app/breakpad_linux.h"
- #endif
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- #include "base/environment.h"
- #endif
- 
-@@ -145,7 +145,7 @@ base::LazyInstance<ChromeContentBrowserClient> g_chrom
-     LAZY_INSTANCE_INITIALIZER;
- #endif
- 
--#if defined(OS_POSIX)
-+#if defined(OS_POSIX) && !defined(OS_BSD)
- base::LazyInstance<ChromeCrashReporterClient>::Leaky g_chrome_crash_client =
-     LAZY_INSTANCE_INITIALIZER;
- #endif
-@@ -252,7 +252,7 @@ bool SubprocessNeedsResourceBundle(const std::string& 
-       // Mac needs them for the plugin process name.
-       process_type == switches::kPluginProcess ||
- #endif
--#if defined(OS_POSIX) && !defined(OS_MACOSX)
-+#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_BSD)
-       // The zygote process opens the resources for the renderers.
-       process_type == switches::kZygoteProcess ||
- #endif
-@@ -304,7 +304,7 @@ void HandleHelpSwitches(const base::CommandLine& comma
- }
- #endif
- 
--#if !defined(OS_MACOSX) && !defined(OS_ANDROID)
-+#if !defined(OS_MACOSX) && !defined(OS_ANDROID) && !defined(OS_BSD)
- void SIGTERMProfilingShutdown(int signal) {
-   Profiling::Stop();
-   struct sigaction sigact;
-@@ -338,7 +338,7 @@ void InitializeUserDataDir() {
-   std::string process_type =
-       command_line->GetSwitchValueASCII(switches::kProcessType);
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   // On Linux, Chrome does not support running multiple copies under different
-   // DISPLAYs, so the profile directory can be specified in the environment to
-   // support the virtual desktop use-case.
-@@ -665,7 +665,7 @@ void ChromeMainDelegate::PreSandboxStartup() {
-   std::string process_type =
-       command_line.GetSwitchValueASCII(switches::kProcessType);
- 
--#if defined(OS_POSIX)
-+#if defined(OS_POSIX) && !defined(OS_BSD)
-   crash_reporter::SetCrashReporterClient(g_chrome_crash_client.Pointer());
- #endif
- 
-@@ -786,7 +786,7 @@ void ChromeMainDelegate::PreSandboxStartup() {
-   chrome::InitializePDF();
- #endif
- 
--#if defined(OS_POSIX) && !defined(OS_MACOSX)
-+#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_BSD)
-   // Zygote needs to call InitCrashReporter() in RunZygote().
-   if (process_type != switches::kZygoteProcess) {
- #if defined(OS_ANDROID)
-@@ -910,7 +910,7 @@ bool ChromeMainDelegate::DelaySandboxInitialization(
- #endif
-   return process_type == switches::kRelauncherProcess;
- }
--#elif defined(OS_POSIX) && !defined(OS_ANDROID)
-+#elif defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_BSD)
- void ChromeMainDelegate::ZygoteStarting(
-     ScopedVector<content::ZygoteForkDelegate>* delegates) {
- #if !defined(DISABLE_NACL)
diff --git a/chromium-new/patches/patch-chrome_app_chrome_main_delegate_h b/chromium-new/patches/patch-chrome_app_chrome_main_delegate_h
deleted file mode 100644
index 2e771d3..0000000
--- a/chromium-new/patches/patch-chrome_app_chrome_main_delegate_h
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_app_chrome_main_delegate_h,v 1.5 2015/04/27 16:38:25 robert Exp $
---- chrome/app/chrome_main_delegate.h.orig.port	Wed Apr 15 00:31:21 2015
-+++ chrome/app/chrome_main_delegate.h	Wed Apr 15 08:32:50 2015
-@@ -36,7 +36,7 @@ class ChromeMainDelegate : public content::ContentMain
-       const std::string& process_type) override;
-   bool ShouldSendMachPort(const std::string& process_type) override;
-   bool DelaySandboxInitialization(const std::string& process_type) override;
--#elif defined(OS_POSIX) && !defined(OS_ANDROID)
-+#elif defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_BSD)
-   void ZygoteStarting(
-       ScopedVector<content::ZygoteForkDelegate>* delegates) override;
-   void ZygoteForked() override;
diff --git a/chromium-new/patches/patch-chrome_app_chromium__strings.grd b/chromium-new/patches/patch-chrome_app_chromium__strings.grd
new file mode 100644
index 0000000..e2c474b
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_app_chromium__strings.grd
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- chrome/app/chromium_strings.grd.orig	2016-06-24 01:02:10.000000000 +0000
++++ chrome/app/chromium_strings.grd
+@@ -937,7 +937,7 @@ Signing in anyway will merge Chromium in
+       </message>
+ 
+       <!-- ProcessSingleton -->
+-      <if expr="is_linux or is_macosx">
++      <if expr="is_linux or is_macosx or is_bsd">
+         <message name="IDS_PROFILE_IN_USE_POSIX" desc="Message shown when the browser cannot start because the profile is in use on a different host.">
+           The profile appears to be in use by another Chromium process (<ph name="PROCESS_ID">$1<ex>12345</ex></ph>) on another computer (<ph name="HOST_NAME">$2<ex>example.com</ex></ph>). Chromium has locked the profile so that it doesn't get corrupted. If you are sure no other processes are using this profile, you can unlock the profile and relaunch Chromium.
+         </message>
diff --git a/chromium-new/patches/patch-chrome_app_chromium_strings_grd b/chromium-new/patches/patch-chrome_app_chromium_strings_grd
deleted file mode 100644
index bf07652..0000000
--- a/chromium-new/patches/patch-chrome_app_chromium_strings_grd
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_app_chromium_strings_grd,v 1.13 2016/01/23 18:49:31 robert Exp $
---- chrome/app/chromium_strings.grd.orig.port	Wed Jan 20 21:01:18 2016
-+++ chrome/app/chromium_strings.grd	Fri Jan 22 19:58:58 2016
-@@ -1014,7 +1014,7 @@ Signing in anyway will merge Chromium information like
-       </message>
- 
-       <!-- ProcessSingleton -->
--      <if expr="is_linux or is_macosx">
-+      <if expr="is_linux or is_macosx or is_bsd">
-         <message name="IDS_PROFILE_IN_USE_POSIX" desc="Message shown when the browser cannot start because the profile is in use on a different host.">
-           The profile appears to be in use by another Chromium process (<ph name="PROCESS_ID">$1<ex>12345</ex></ph>) on another computer (<ph name="HOST_NAME">$2<ex>example.com</ex></ph>). Chromium has locked the profile so that it doesn't get corrupted. If you are sure no other processes are using this profile, you can unlock the profile and relaunch Chromium.
-         </message>
diff --git a/chromium-new/patches/patch-chrome_app_generated__resources.grd b/chromium-new/patches/patch-chrome_app_generated__resources.grd
new file mode 100644
index 0000000..360fc0d
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_app_generated__resources.grd
@@ -0,0 +1,47 @@
+$NetBSD$
+
+* These conditional does not seems to work properly
+
+--- chrome/app/generated_resources.grd.orig	2016-06-24 01:02:11.000000000 +0000
++++ chrome/app/generated_resources.grd
+@@ -3590,11 +3590,11 @@ Even if you have downloaded files from t
+           PWG Raster Convertor
+         </message>
+       </if>
+-      <if expr="enable_service_discovery">
++<!--      <if expr="enable_service_discovery"> -->
+         <message name="IDS_UTILITY_PROCESS_SERVICE_DISCOVERY_HANDLER_NAME" desc="The name of the utility process used for handling service discovery.">
+           Service Discovery Handler
+         </message>
+-      </if>
++<!--      </if> -->
+ 
+       <!-- Theme preview info bar -->
+       <message name="IDS_THEME_INSTALL_INFOBAR_LABEL" desc="Text displayed on an infobar when a theme has been installed.">
+@@ -6595,7 +6595,7 @@ Keep your key file in a safe place. You 
+       <message name="IDS_FLAGS_FORCE_UI_DIRECTION_RTL" desc="Name for the option to force right-to-left UI direction mode.">
+           Right-to-left
+       </message>
+-      <if expr="is_win or is_linux">
++      <if expr="is_win or is_linux or is_posix">
+         <message name="IDS_FLAGS_ENABLE_INPUT_IME_API_NAME" desc="Name of the flag to enable che chrome.input.ime API.">
+           Enable Input IME API
+         </message>
+@@ -13546,7 +13546,7 @@ Please check your email at <ph name="ACC
+       </message>
+ 
+       <!-- Local Device Discovery display strings -->
+-      <if expr="enable_service_discovery">
++<!--      <if expr="enable_service_discovery"> -->
+         <message name="IDS_LOCAL_DISCOVERY_SERVICE_REGISTER" desc="Name for button to register device in the Cloud">
+           Register
+         </message>
+@@ -13671,7 +13671,7 @@ Please check your email at <ph name="ACC
+         <message name="IDS_LOCAL_DISCOVERY_NOTIFICATIONS_DISABLE_BUTTON_LABEL" desc="Label for button disabling local device notifications">
+           Don't show this again
+         </message>
+-      </if>
++<!--      </if> -->
+       <!-- People search strings -->
+       <message name="IDS_PEOPLE_SEARCH_ACTION_EMAIL_TOOLTIP" desc="Tooltip text for sending an email to the person in the result">
+         Email this person
diff --git a/chromium-new/patches/patch-chrome_app_google_chrome_strings_grd b/chromium-new/patches/patch-chrome_app_google_chrome_strings_grd
deleted file mode 100644
index bbe82a6..0000000
--- a/chromium-new/patches/patch-chrome_app_google_chrome_strings_grd
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_app_google_chrome_strings_grd,v 1.12 2016/01/23 18:49:31 robert Exp $
---- chrome/app/google_chrome_strings.grd.orig.port	Wed Jan 20 21:01:18 2016
-+++ chrome/app/google_chrome_strings.grd	Fri Jan 22 19:58:58 2016
-@@ -1015,7 +1015,7 @@ Signing in anyway will merge Chrome information like b
-       </message>
- 
-       <!-- ProcessSingleton -->
--      <if expr="is_linux or is_macosx">
-+      <if expr="is_linux or is_macosx or is_bsd">
-         <message name="IDS_PROFILE_IN_USE_POSIX" desc="Message shown when the browser cannot start because the profile is in use on a different host.">
-           The profile appears to be in use by another Google Chrome process (<ph name="PROCESS_ID">$1<ex>12345</ex></ph>) on another computer (<ph name="HOST_NAME">$2<ex>example.com</ex></ph>).  Chrome has locked the profile so that it doesn't get corrupted.  If you are sure no other processes are using this profile, you can unlock the profile and relaunch Chrome.
-         </message>
diff --git a/chromium-new/patches/patch-chrome_app_resources_locale__settings.grd b/chromium-new/patches/patch-chrome_app_resources_locale__settings.grd
new file mode 100644
index 0000000..cbb25ec
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_app_resources_locale__settings.grd
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- chrome/app/resources/locale_settings.grd.orig	2016-06-24 01:02:11.000000000 +0000
++++ chrome/app/resources/locale_settings.grd
+@@ -156,7 +156,7 @@
+         55
+       </message>
+ 
+-      <if expr="is_win or is_linux or chromeos">
++      <if expr="is_win or is_linux or chromeos or is_bsd">
+         <!-- The width of the ash/ChromeOS system tray menu in pixels. -->
+         <message name="IDS_SYSTEM_TRAY_MENU_BUBBLE_WIDTH_PIXELS" use_name_for_id="true">
+           300
diff --git a/chromium-new/patches/patch-chrome_app_resources_locale_settings_grd b/chromium-new/patches/patch-chrome_app_resources_locale_settings_grd
deleted file mode 100644
index 747c0ea..0000000
--- a/chromium-new/patches/patch-chrome_app_resources_locale_settings_grd
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_app_resources_locale_settings_grd,v 1.2 2015/10/14 16:42:07 robert Exp $
---- chrome/app/resources/locale_settings.grd.orig.port	Wed Oct  7 04:42:07 2015
-+++ chrome/app/resources/locale_settings.grd	Wed Oct 14 07:41:13 2015
-@@ -234,7 +234,7 @@
-         55
-       </message>
- 
--      <if expr="is_win or is_linux or chromeos">
-+      <if expr="is_win or is_linux or chromeos or is_bsd">
-         <!-- The width of the ash/ChromeOS system tray menu in pixels. -->
-         <message name="IDS_SYSTEM_TRAY_MENU_BUBBLE_WIDTH_PIXELS" use_name_for_id="true">
-           300
diff --git a/chromium-new/patches/patch-chrome_app_theme_theme_resources_grd b/chromium-new/patches/patch-chrome_app_theme_theme_resources_grd
deleted file mode 100644
index 5d40e2a..0000000
--- a/chromium-new/patches/patch-chrome_app_theme_theme_resources_grd
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_app_theme_theme_resources_grd,v 1.19 2016/01/23 18:49:31 robert Exp $
---- chrome/app/theme/theme_resources.grd.orig.port	Wed Jan 20 21:01:19 2016
-+++ chrome/app/theme/theme_resources.grd	Fri Jan 22 19:58:58 2016
-@@ -472,7 +472,7 @@
-         <structure type="chrome_scaled_image" name="IDR_NOTIFICATION_PERIPHERAL_BATTERY_LOW" file="cros/notification_peripheral_battery_low.png" />
-         <structure type="chrome_scaled_image" name="IDR_PORTAL_DETECTION_ALERT" file="cros/captive_portal_icon.png" />
-       </if>
--      <if expr="is_win or desktop_linux">
-+      <if expr="is_win or desktop_linux or is_posix">
-         <structure type="chrome_scaled_image" name="IDR_NOTIFICATION_TRAY_DO_NOT_DISTURB_ATTENTION" file="common/notification_tray_do_not_disturb_attention.png" />
-         <structure type="chrome_scaled_image" name="IDR_NOTIFICATION_TRAY_DO_NOT_DISTURB_EMPTY" file="common/notification_tray_do_not_disturb_empty.png" />
-         <structure type="chrome_scaled_image" name="IDR_NOTIFICATION_TRAY_ATTENTION" file="common/notification_tray_attention.png" />
diff --git a/chromium-new/patches/patch-chrome_browser_about__flags.cc b/chromium-new/patches/patch-chrome_browser_about__flags.cc
new file mode 100644
index 0000000..e8395df
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_about__flags.cc
@@ -0,0 +1,22 @@
+$NetBSD$
+
+--- chrome/browser/about_flags.cc.orig	2016-06-24 01:02:12.000000000 +0000
++++ chrome/browser/about_flags.cc
+@@ -651,7 +651,7 @@ const FeatureEntry kFeatureEntries[] = {
+      kOsLinux | kOsCrOS | kOsWin | kOsAndroid,
+      ENABLE_DISABLE_VALUE_TYPE(switches::kEnableSmoothScrolling,
+                                switches::kDisableSmoothScrolling)},
+-#if defined(USE_AURA) || defined(OS_LINUX)
++#if defined(USE_AURA) || defined(OS_LINUX) || defined(OS_BSD)
+     {"overlay-scrollbars", IDS_FLAGS_OVERLAY_SCROLLBARS_NAME,
+      IDS_FLAGS_OVERLAY_SCROLLBARS_DESCRIPTION,
+      // Uses the system preference on Mac (a different implementation).
+@@ -1691,7 +1691,7 @@ const FeatureEntry kFeatureEntries[] = {
+      IDS_FLAGS_ENABLE_MATERIAL_DESIGN_EXTENSIONS_DESCRIPTION, kOsDesktop,
+      SINGLE_VALUE_TYPE(switches::kEnableMaterialDesignExtensions)},
+ #endif
+-#if defined(OS_WIN) || defined(OS_LINUX)
++#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD)
+     {"enable-input-ime-api", IDS_FLAGS_ENABLE_INPUT_IME_API_NAME,
+      IDS_FLAGS_ENABLE_INPUT_IME_API_DESCRIPTION, kOsWin | kOsLinux,
+      ENABLE_DISABLE_VALUE_TYPE(switches::kEnableInputImeAPI,
diff --git a/chromium-new/patches/patch-chrome_browser_about_flags_cc b/chromium-new/patches/patch-chrome_browser_about_flags_cc
deleted file mode 100644
index 7215914..0000000
--- a/chromium-new/patches/patch-chrome_browser_about_flags_cc
+++ /dev/null
@@ -1,21 +0,0 @@
-$OpenBSD: patch-chrome_browser_about_flags_cc,v 1.23 2016/01/23 18:49:31 robert Exp $
---- chrome/browser/about_flags.cc.orig.port	Wed Jan 20 21:01:19 2016
-+++ chrome/browser/about_flags.cc	Fri Jan 22 19:58:58 2016
-@@ -755,7 +755,7 @@ const FeatureEntry kFeatureEntries[] = {
-      // On by default for the Mac (different implementation in WebKit).
-      kOsLinux | kOsWin,
-      SINGLE_VALUE_TYPE(switches::kEnableSmoothScrolling)},
--#if defined(USE_AURA) || defined(OS_LINUX)
-+#if defined(USE_AURA) || defined(OS_LINUX) || defined(OS_BSD)
-     {"overlay-scrollbars",
-      IDS_FLAGS_ENABLE_OVERLAY_SCROLLBARS_NAME,
-      IDS_FLAGS_ENABLE_OVERLAY_SCROLLBARS_DESCRIPTION,
-@@ -877,7 +877,7 @@ const FeatureEntry kFeatureEntries[] = {
-      SINGLE_VALUE_TYPE(switches::kEnableSpellingAutoCorrect)},
- #endif
- #if defined(ENABLE_SPELLCHECK) && \
--    (defined(OS_LINUX) || defined(OS_WIN) || defined(OS_CHROMEOS))
-+    (defined(OS_LINUX) || defined(OS_WIN) || defined(OS_CHROMEOS) || defined(OS_BSD))
-     {"enable-multilingual-spellchecker",
-      IDS_FLAGS_ENABLE_MULTILINGUAL_SPELLCHECKER_NAME,
-      IDS_FLAGS_ENABLE_MULTILINGUAL_SPELLCHECKER_DESCRIPTION,
diff --git a/chromium-new/patches/patch-chrome_browser_after_startup_task_utils_cc b/chromium-new/patches/patch-chrome_browser_after_startup_task_utils_cc
deleted file mode 100644
index 2a1e324..0000000
--- a/chromium-new/patches/patch-chrome_browser_after_startup_task_utils_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_browser_after_startup_task_utils_cc,v 1.1 2015/09/25 13:08:54 robert Exp $
---- chrome/browser/after_startup_task_utils.cc.orig.port	Thu Sep 24 12:59:35 2015
-+++ chrome/browser/after_startup_task_utils.cc	Thu Sep 24 13:01:01 2015
-@@ -89,7 +89,7 @@ void QueueTask(scoped_ptr<AfterStartupTask> queued_tas
- 
- void SetBrowserStartupIsComplete() {
-   DCHECK_CURRENTLY_ON(BrowserThread::UI);
--#if defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_LINUX)
-+#if defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD)
-   // CurrentProcessInfo::CreationTime() is not available on all platforms.
-   const base::Time process_creation_time =
-       base::CurrentProcessInfo::CreationTime();
diff --git a/chromium-new/patches/patch-chrome_browser_browser__resources.grd b/chromium-new/patches/patch-chrome_browser_browser__resources.grd
new file mode 100644
index 0000000..adc328e
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_browser__resources.grd
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- chrome/browser/browser_resources.grd.orig	2016-06-24 01:02:12.000000000 +0000
++++ chrome/browser/browser_resources.grd
+@@ -278,7 +278,7 @@
+         <include name="IDR_ABOUT_VOICESEARCH_JS" file="resources\about_voicesearch.js" type="BINDATA" />
+         <include name="IDR_PLUGIN_DB_JSON" file="resources\plugin_metadata\plugins_chromeos.json" type="BINDATA" />
+       </if>
+-      <if expr="desktop_linux or (is_android and enable_plugins)">
++      <if expr="desktop_linux or (is_android and enable_plugins) or is_posix">
+         <include name="IDR_PLUGIN_DB_JSON" file="resources\plugin_metadata\plugins_linux.json" type="BINDATA" />
+       </if>
+       <if expr="is_android">
diff --git a/chromium-new/patches/patch-chrome_browser_browser_resources_grd b/chromium-new/patches/patch-chrome_browser_browser_resources_grd
deleted file mode 100644
index 0de20e3..0000000
--- a/chromium-new/patches/patch-chrome_browser_browser_resources_grd
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_browser_browser_resources_grd,v 1.24 2016/01/23 18:49:31 robert Exp $
---- chrome/browser/browser_resources.grd.orig.port	Wed Jan 20 21:01:19 2016
-+++ chrome/browser/browser_resources.grd	Fri Jan 22 19:58:58 2016
-@@ -259,7 +259,7 @@
-         <include name="IDR_ABOUT_VOICESEARCH_JS" file="resources\about_voicesearch.js" type="BINDATA" />
-         <include name="IDR_PLUGIN_DB_JSON" file="resources\plugin_metadata\plugins_chromeos.json" type="BINDATA" />
-       </if>
--      <if expr="desktop_linux or (is_android and enable_plugins)">
-+      <if expr="desktop_linux or (is_android and enable_plugins) or is_posix">
-         <include name="IDR_PLUGIN_DB_JSON" file="resources\plugin_metadata\plugins_linux.json" type="BINDATA" />
-       </if>
-       <if expr="is_android">
diff --git a/chromium-new/patches/patch-chrome_browser_chrome__browser__main.cc b/chromium-new/patches/patch-chrome_browser_chrome__browser__main.cc
new file mode 100644
index 0000000..9dbc61c
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_chrome__browser__main.cc
@@ -0,0 +1,27 @@
+$NetBSD$
+
+--- chrome/browser/chrome_browser_main.cc.orig	2016-06-24 01:02:12.000000000 +0000
++++ chrome/browser/chrome_browser_main.cc
+@@ -173,7 +173,7 @@
+ #include "chrome/browser/feedback/feedback_profile_observer.h"
+ #endif  // defined(OS_ANDROID)
+ 
+-#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
++#if (defined(OS_BSD) || defined(OS_LINUX)) && !defined(OS_CHROMEOS)
+ #include "chrome/browser/first_run/upgrade_util_linux.h"
+ #endif  // defined(OS_LINUX) && !defined(OS_CHROMEOS)
+ 
+@@ -1109,11 +1109,11 @@ int ChromeBrowserMainParts::PreCreateThr
+   }
+ #endif  // !defined(OS_ANDROID) && !defined(OS_CHROMEOS)
+ 
+-#if defined(OS_LINUX) || defined(OS_OPENBSD)
++#if defined(OS_LINUX) || defined(OS_BSD)
+   // Set the product channel for crash reports.
+   base::debug::SetCrashKeyValue(crash_keys::kChannel,
+                                 chrome::GetChannelString());
+-#endif  // defined(OS_LINUX) || defined(OS_OPENBSD)
++#endif  // defined(OS_LINUX) || defined(OS_BSD)
+ 
+   // Initialize tracking synchronizer system.
+   tracking_synchronizer_ = new metrics::TrackingSynchronizer(
diff --git a/chromium-new/patches/patch-chrome_browser_chrome__browser__main__linux.cc b/chromium-new/patches/patch-chrome_browser_chrome__browser__main__linux.cc
new file mode 100644
index 0000000..e827f94
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_chrome__browser__main__linux.cc
@@ -0,0 +1,29 @@
+$NetBSD$
+
+--- chrome/browser/chrome_browser_main_linux.cc.orig	2016-06-24 01:02:12.000000000 +0000
++++ chrome/browser/chrome_browser_main_linux.cc
+@@ -57,12 +57,14 @@ void ChromeBrowserMainPartsLinux::PrePro
+ void ChromeBrowserMainPartsLinux::PostProfileInit() {
+   ChromeBrowserMainPartsPosix::PostProfileInit();
+ 
++#if !defined(OS_BSD)
+   g_browser_process->metrics_service()->RecordBreakpadRegistration(
+       breakpad::IsCrashReporterEnabled());
++#endif
+ }
+ 
+ void ChromeBrowserMainPartsLinux::PostMainMessageLoopStart() {
+-#if !defined(OS_CHROMEOS)
++#if !defined(OS_CHROMEOS) && !defined(OS_BSD)
+   bluez::DBusThreadManagerLinux::Initialize();
+   bluez::BluezDBusManager::Initialize(
+       bluez::DBusThreadManagerLinux::Get()->GetSystemBus(), false);
+@@ -72,7 +74,7 @@ void ChromeBrowserMainPartsLinux::PostMa
+ }
+ 
+ void ChromeBrowserMainPartsLinux::PostDestroyThreads() {
+-#if !defined(OS_CHROMEOS)
++#if !defined(OS_CHROMEOS) && !defined(OS_BSD)
+   bluez::BluezDBusManager::Shutdown();
+   bluez::DBusThreadManagerLinux::Shutdown();
+ #endif
diff --git a/chromium-new/patches/patch-chrome_browser_chrome__browser__main__posix.cc b/chromium-new/patches/patch-chrome_browser_chrome__browser__main__posix.cc
new file mode 100644
index 0000000..0ca9069
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_chrome__browser__main__posix.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+--- chrome/browser/chrome_browser_main_posix.cc.orig	2016-06-24 01:02:12.000000000 +0000
++++ chrome/browser/chrome_browser_main_posix.cc
+@@ -274,6 +274,13 @@ void ChromeBrowserMainPartsPosix::PostMa
+     g_pipe_pid = getpid();
+     g_shutdown_pipe_read_fd = pipefd[0];
+     g_shutdown_pipe_write_fd = pipefd[1];
++#if defined(OS_FREEBSD)
++    // PTHREAD_STACK_MIN causes chromium to crash under FreeBSD,
++    // we request the default pthread stack size by specifying 0 here.
++    const size_t kShutdownDetectorThreadStackSize = 0;
++#elif defined(__NetBSD__)
++    const size_t kShutdownDetectorThreadStackSize = sysconf(_SC_THREAD_STACK_MIN) * 2;
++#else
+ #if !defined(ADDRESS_SANITIZER) && !defined(KEEP_SHADOW_STACKS)
+     const size_t kShutdownDetectorThreadStackSize = PTHREAD_STACK_MIN * 2;
+ #else
+@@ -282,6 +289,7 @@ void ChromeBrowserMainPartsPosix::PostMa
+     // size to avoid hitting the guard page.
+     const size_t kShutdownDetectorThreadStackSize = PTHREAD_STACK_MIN * 4;
+ #endif
++#endif // OS_FREEBSD
+     // TODO(viettrungluu,willchan): crbug.com/29675 - This currently leaks, so
+     // if you change this, you'll probably need to change the suppression.
+     if (!base::PlatformThread::CreateNonJoinable(
diff --git a/chromium-new/patches/patch-chrome_browser_chrome__content__browser__client.cc b/chromium-new/patches/patch-chrome_browser_chrome__content__browser__client.cc
new file mode 100644
index 0000000..71e5523
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_chrome__content__browser__client.cc
@@ -0,0 +1,76 @@
+$NetBSD$
+
+--- chrome/browser/chrome_content_browser_client.cc.orig	2016-06-24 01:02:12.000000000 +0000
++++ chrome/browser/chrome_content_browser_client.cc
+@@ -196,7 +196,7 @@
+ #include "chrome/browser/chromeos/system/input_device_settings.h"
+ #include "chromeos/chromeos_switches.h"
+ #include "components/user_manager/user_manager.h"
+-#elif defined(OS_LINUX)
++#elif defined(OS_LINUX) || defined(OS_BSD)
+ #include "chrome/browser/chrome_browser_main_linux.h"
+ #elif defined(OS_ANDROID)
+ #include "chrome/browser/chrome_browser_main_android.h"
+@@ -209,7 +209,7 @@
+ #include "chrome/browser/chrome_browser_main_posix.h"
+ #endif
+ 
+-#if defined(OS_POSIX) && !defined(OS_MACOSX)
++#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_BSD)
+ #include "base/debug/leak_annotations.h"
+ #include "components/crash/content/app/breakpad_linux.h"
+ #include "components/crash/content/browser/crash_handler_host_linux.h"
+@@ -231,7 +231,7 @@
+ #include "chrome/browser/ui/views/chrome_browser_main_extra_parts_views.h"
+ #endif
+ 
+-#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
++#if (defined(OS_BSD) || defined(OS_LINUX)) && !defined(OS_CHROMEOS)
+ #include "chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.h"
+ #endif
+ 
+@@ -508,7 +508,7 @@ bool CertMatchesFilter(const net::X509Ce
+   return false;
+ }
+ 
+-#if defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_MACOSX)
++#if defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_MACOSX) && !defined(OS_BSD)
+ breakpad::CrashHandlerHostLinux* CreateCrashHandlerHost(
+     const std::string& process_type) {
+   base::FilePath dumps_path;
+@@ -779,7 +779,7 @@ content::BrowserMainParts* ChromeContent
+   main_parts = new ChromeBrowserMainPartsMac(parameters);
+ #elif defined(OS_CHROMEOS)
+   main_parts = new chromeos::ChromeBrowserMainPartsChromeos(parameters);
+-#elif defined(OS_LINUX)
++#elif defined(OS_LINUX) || defined(OS_BSD)
+   main_parts = new ChromeBrowserMainPartsLinux(parameters);
+ #elif defined(OS_ANDROID)
+   main_parts = new ChromeBrowserMainPartsAndroid(parameters);
+@@ -795,7 +795,7 @@ content::BrowserMainParts* ChromeContent
+   // Construct additional browser parts. Stages are called in the order in
+   // which they are added.
+ #if defined(TOOLKIT_VIEWS)
+-#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
++#if (defined(OS_BSD) || defined(OS_LINUX)) && !defined(OS_CHROMEOS)
+   main_parts->AddParts(new ChromeBrowserMainExtraPartsViewsLinux());
+ #else
+   main_parts->AddParts(new ChromeBrowserMainExtraPartsViews());
+@@ -1407,7 +1407,7 @@ void ChromeContentBrowserClient::AppendE
+     command_line->AppendSwitchASCII(switches::kMetricsClientID,
+                                     client_info->client_id);
+   }
+-#elif defined(OS_POSIX)
++#elif defined(OS_POSIX) && !defined(OS_BSD)
+   if (breakpad::IsCrashReporterEnabled()) {
+     std::string switch_value;
+     scoped_ptr<metrics::ClientInfo> client_info =
+@@ -2604,7 +2604,7 @@ void ChromeContentBrowserClient::GetAddi
+   PathService::Get(base::DIR_ANDROID_APP_DATA, &app_data_path);
+   DCHECK(!app_data_path.empty());
+ }
+-#elif defined(OS_POSIX) && !defined(OS_MACOSX)
++#elif defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_BSD)
+ void ChromeContentBrowserClient::GetAdditionalMappedFilesForChildProcess(
+     const base::CommandLine& command_line,
+     int child_process_id,
diff --git a/chromium-new/patches/patch-chrome_browser_chrome__content__browser__client.h b/chromium-new/patches/patch-chrome_browser_chrome__content__browser__client.h
new file mode 100644
index 0000000..c9aba56
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_chrome__content__browser__client.h
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- chrome/browser/chrome_content_browser_client.h.orig	2016-06-24 01:02:12.000000000 +0000
++++ chrome/browser/chrome_content_browser_client.h
+@@ -256,7 +256,7 @@ class ChromeContentBrowserClient : publi
+       int child_process_id,
+       content::FileDescriptorInfo* mappings,
+       std::map<int, base::MemoryMappedFile::Region>* regions) override;
+-#elif defined(OS_POSIX) && !defined(OS_MACOSX)
++#elif defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_BSD)
+   void GetAdditionalMappedFilesForChildProcess(
+       const base::CommandLine& command_line,
+       int child_process_id,
diff --git a/chromium-new/patches/patch-chrome_browser_chrome_browser_main_cc b/chromium-new/patches/patch-chrome_browser_chrome_browser_main_cc
deleted file mode 100644
index 67b60a9..0000000
--- a/chromium-new/patches/patch-chrome_browser_chrome_browser_main_cc
+++ /dev/null
@@ -1,30 +0,0 @@
-$OpenBSD: patch-chrome_browser_chrome_browser_main_cc,v 1.4 2016/01/23 18:49:31 robert Exp $
---- chrome/browser/chrome_browser_main.cc.orig.port	Wed Jan 20 21:01:19 2016
-+++ chrome/browser/chrome_browser_main.cc	Fri Jan 22 19:58:58 2016
-@@ -161,7 +161,7 @@
- #include "chrome/browser/feedback/feedback_profile_observer.h"
- #endif  // defined(OS_ANDROID)
- 
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_BSD) || defined(OS_LINUX)) && !defined(OS_CHROMEOS)
- #include "chrome/browser/first_run/upgrade_util_linux.h"
- #include "chrome/browser/sxs_linux.h"
- #endif  // defined(OS_LINUX) && !defined(OS_CHROMEOS)
-@@ -1050,7 +1050,7 @@ int ChromeBrowserMainParts::PreCreateThreadsImpl() {
-   }
- #endif  // !defined(OS_ANDROID) && !defined(OS_CHROMEOS)
- 
--#if defined(OS_LINUX) || defined(OS_OPENBSD) || defined(OS_MACOSX)
-+#if defined(OS_LINUX) || defined(OS_MACOSX)
-   // Set the product channel for crash reports.
-   base::debug::SetCrashKeyValue(crash_keys::kChannel,
-                                 chrome::GetChannelString());
-@@ -1402,7 +1402,7 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl(
-     return chrome::RESULT_CODE_MACHINE_LEVEL_INSTALL_EXISTS;
- #endif  // defined(OS_WIN)
- 
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_BSD) || defined(OS_LINUX)) && !defined(OS_CHROMEOS)
-   if (sxs_linux::ShouldMigrateUserDataDir())
-     return sxs_linux::MigrateUserDataDir();
- #endif  // defined(OS_LINUX) && !defined(OS_CHROMEOS)
diff --git a/chromium-new/patches/patch-chrome_browser_chrome_browser_main_linux_cc b/chromium-new/patches/patch-chrome_browser_chrome_browser_main_linux_cc
deleted file mode 100644
index 604936d..0000000
--- a/chromium-new/patches/patch-chrome_browser_chrome_browser_main_linux_cc
+++ /dev/null
@@ -1,28 +0,0 @@
-$OpenBSD: patch-chrome_browser_chrome_browser_main_linux_cc,v 1.1 2016/01/31 16:49:31 robert Exp $
---- chrome/browser/chrome_browser_main_linux.cc.orig.port	Sun Jan 31 17:46:49 2016
-+++ chrome/browser/chrome_browser_main_linux.cc	Sat Jan 30 18:45:46 2016
-@@ -61,12 +61,14 @@ void ChromeBrowserMainPartsLinux::PreProfileInit() {
- void ChromeBrowserMainPartsLinux::PostProfileInit() {
-   ChromeBrowserMainPartsPosix::PostProfileInit();
- 
-+#if !defined(OS_BSD)
-   g_browser_process->metrics_service()->RecordBreakpadRegistration(
-       breakpad::IsCrashReporterEnabled());
-+#endif
- }
- 
- void ChromeBrowserMainPartsLinux::PostMainMessageLoopStart() {
--#if !defined(OS_CHROMEOS)
-+#if !defined(OS_CHROMEOS) && !defined(OS_BSD)
-   bluez::DBusThreadManagerLinux::Initialize();
-   bluez::BluezDBusManager::Initialize(
-       bluez::DBusThreadManagerLinux::Get()->GetSystemBus(), false);
-@@ -76,7 +78,7 @@ void ChromeBrowserMainPartsLinux::PostMainMessageLoopS
- }
- 
- void ChromeBrowserMainPartsLinux::PostDestroyThreads() {
--#if !defined(OS_CHROMEOS)
-+#if !defined(OS_CHROMEOS) && !defined(OS_BSD)
-   bluez::BluezDBusManager::Shutdown();
-   bluez::DBusThreadManagerLinux::Shutdown();
- #endif
diff --git a/chromium-new/patches/patch-chrome_browser_chrome_browser_main_posix_cc b/chromium-new/patches/patch-chrome_browser_chrome_browser_main_posix_cc
deleted file mode 100644
index 3040d01..0000000
--- a/chromium-new/patches/patch-chrome_browser_chrome_browser_main_posix_cc
+++ /dev/null
@@ -1,23 +0,0 @@
-$OpenBSD: patch-chrome_browser_chrome_browser_main_posix_cc,v 1.10 2014/09/11 19:04:52 robert Exp $
---- chrome/browser/chrome_browser_main_posix.cc.orig.port	Wed Sep 10 22:14:04 2014
-+++ chrome/browser/chrome_browser_main_posix.cc	Wed Sep 10 22:14:59 2014
-@@ -270,6 +270,11 @@ void ChromeBrowserMainPartsPosix::PostMainMessageLoopS
-     g_pipe_pid = getpid();
-     g_shutdown_pipe_read_fd = pipefd[0];
-     g_shutdown_pipe_write_fd = pipefd[1];
-+#if defined(OS_OPENBSD)
-+    // PTHREAD_STACK_MIN causes chromium to crash under FreeBSD,
-+    // we request the default pthread stack size by specifying 0 here.
-+    const size_t kShutdownDetectorThreadStackSize = 0;
-+#else
- #if !defined(ADDRESS_SANITIZER) && !defined(KEEP_SHADOW_STACKS)
-     const size_t kShutdownDetectorThreadStackSize = PTHREAD_STACK_MIN * 2;
- #else
-@@ -277,6 +282,7 @@ void ChromeBrowserMainPartsPosix::PostMainMessageLoopS
-     // shadow stacks) bloat the stack frames, so we need to increase the stack
-     // size to avoid hitting the guard page.
-     const size_t kShutdownDetectorThreadStackSize = PTHREAD_STACK_MIN * 4;
-+#endif
- #endif
-     // TODO(viettrungluu,willchan): crbug.com/29675 - This currently leaks, so
-     // if you change this, you'll probably need to change the suppression.
diff --git a/chromium-new/patches/patch-chrome_browser_chrome_content_browser_client_cc b/chromium-new/patches/patch-chrome_browser_chrome_content_browser_client_cc
deleted file mode 100644
index da2e82e..0000000
--- a/chromium-new/patches/patch-chrome_browser_chrome_content_browser_client_cc
+++ /dev/null
@@ -1,57 +0,0 @@
-$OpenBSD: patch-chrome_browser_chrome_content_browser_client_cc,v 1.25 2016/01/29 16:56:10 robert Exp $
---- chrome/browser/chrome_content_browser_client.cc.orig.port	Wed Jan 27 18:00:44 2016
-+++ chrome/browser/chrome_content_browser_client.cc	Fri Jan 29 17:39:15 2016
-@@ -178,7 +178,7 @@
- #include "chrome/browser/chromeos/system/input_device_settings.h"
- #include "chromeos/chromeos_switches.h"
- #include "components/user_manager/user_manager.h"
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
- #include "chrome/browser/chrome_browser_main_linux.h"
- #elif defined(OS_ANDROID)
- #include "chrome/browser/android/new_tab_page_url_handler.h"
-@@ -193,7 +193,7 @@
- #include "chrome/browser/chrome_browser_main_posix.h"
- #endif
- 
--#if defined(OS_POSIX) && !defined(OS_MACOSX)
-+#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_BSD)
- #include "base/debug/leak_annotations.h"
- #include "components/crash/content/app/breakpad_linux.h"
- #include "components/crash/content/browser/crash_handler_host_linux.h"
-@@ -464,7 +464,7 @@ bool CertMatchesFilter(const net::X509Certificate& cer
-   return false;
- }
- 
--#if defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_MACOSX)
-+#if defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_MACOSX) && !defined(OS_BSD)
- breakpad::CrashHandlerHostLinux* CreateCrashHandlerHost(
-     const std::string& process_type) {
-   base::FilePath dumps_path;
-@@ -721,7 +721,7 @@ content::BrowserMainParts* ChromeContentBrowserClient:
-   main_parts = new ChromeBrowserMainPartsMac(parameters);
- #elif defined(OS_CHROMEOS)
-   main_parts = new chromeos::ChromeBrowserMainPartsChromeos(parameters);
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
-   main_parts = new ChromeBrowserMainPartsLinux(parameters);
- #elif defined(OS_ANDROID)
-   main_parts = new ChromeBrowserMainPartsAndroid(parameters);
-@@ -1371,7 +1371,7 @@ void ChromeContentBrowserClient::AppendExtraCommandLin
-     command_line->AppendSwitchASCII(switches::kMetricsClientID,
-                                     client_info->client_id);
-   }
--#elif defined(OS_POSIX)
-+#elif defined(OS_POSIX) && !defined(OS_BSD)
-   if (breakpad::IsCrashReporterEnabled()) {
-     scoped_ptr<metrics::ClientInfo> client_info =
-         GoogleUpdateSettings::LoadMetricsClientInfo();
-@@ -2498,7 +2498,7 @@ void ChromeContentBrowserClient::GetAdditionalMappedFi
-   PathService::Get(base::DIR_ANDROID_APP_DATA, &app_data_path);
-   DCHECK(!app_data_path.empty());
- }
--#elif defined(OS_POSIX) && !defined(OS_MACOSX)
-+#elif defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_BSD)
- void ChromeContentBrowserClient::GetAdditionalMappedFilesForChildProcess(
-     const base::CommandLine& command_line,
-     int child_process_id,
diff --git a/chromium-new/patches/patch-chrome_browser_chrome_content_browser_client_h b/chromium-new/patches/patch-chrome_browser_chrome_content_browser_client_h
deleted file mode 100644
index d23e2b0..0000000
--- a/chromium-new/patches/patch-chrome_browser_chrome_content_browser_client_h
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_browser_chrome_content_browser_client_h,v 1.17 2016/01/23 18:49:31 robert Exp $
---- chrome/browser/chrome_content_browser_client.h.orig.port	Wed Jan 20 21:01:19 2016
-+++ chrome/browser/chrome_content_browser_client.h	Fri Jan 22 19:58:58 2016
-@@ -264,7 +264,7 @@ class ChromeContentBrowserClient : public content::Con
-       int child_process_id,
-       content::FileDescriptorInfo* mappings,
-       std::map<int, base::MemoryMappedFile::Region>* regions) override;
--#elif defined(OS_POSIX) && !defined(OS_MACOSX)
-+#elif defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_BSD)
-   void GetAdditionalMappedFilesForChildProcess(
-       const base::CommandLine& command_line,
-       int child_process_id,
diff --git a/chromium-new/patches/patch-chrome_browser_custom_handlers_protocol_handler_registry_cc b/chromium-new/patches/patch-chrome_browser_custom_handlers_protocol_handler_registry_cc
deleted file mode 100644
index f7f5207..0000000
--- a/chromium-new/patches/patch-chrome_browser_custom_handlers_protocol_handler_registry_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_browser_custom_handlers_protocol_handler_registry_cc,v 1.3 2015/12/05 16:13:32 robert Exp $
---- chrome/browser/custom_handlers/protocol_handler_registry.cc.orig.port	Fri Nov 13 12:04:14 2015
-+++ chrome/browser/custom_handlers/protocol_handler_registry.cc	Wed Dec  2 08:18:32 2015
-@@ -42,7 +42,7 @@ const ProtocolHandler& LookupHandler(
- // If true default protocol handlers will be removed if the OS level
- // registration for a protocol is no longer Chrome.
- bool ShouldRemoveHandlersNotInOS() {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   // We don't do this on Linux as the OS registration there is not reliable,
-   // and Chrome OS doesn't have any notion of OS registration.
-   // TODO(benwells): When Linux support is more reliable remove this
diff --git a/chromium-new/patches/patch-chrome_browser_defaults.cc b/chromium-new/patches/patch-chrome_browser_defaults.cc
new file mode 100644
index 0000000..0a93f46
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_defaults.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- chrome/browser/defaults.cc.orig	2016-06-24 01:02:12.000000000 +0000
++++ chrome/browser/defaults.cc
+@@ -44,7 +44,7 @@ const bool kSyncAutoStarts = true;
+ const bool kSyncAutoStarts = false;
+ #endif
+ 
+-#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
++#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ const bool kScrollEventChangesTab = true;
+ #else
+ const bool kScrollEventChangesTab = false;
diff --git a/chromium-new/patches/patch-chrome_browser_defaults_cc b/chromium-new/patches/patch-chrome_browser_defaults_cc
deleted file mode 100644
index 3c37f29..0000000
--- a/chromium-new/patches/patch-chrome_browser_defaults_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_browser_defaults_cc,v 1.6 2015/12/05 16:13:32 robert Exp $
---- chrome/browser/defaults.cc.orig.port	Fri Nov 13 12:04:14 2015
-+++ chrome/browser/defaults.cc	Wed Dec  2 08:18:32 2015
-@@ -45,7 +45,7 @@ const bool kSyncAutoStarts = false;
- const bool kShowOtherBrowsersInAboutMemory = true;
- #endif
- 
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- const bool kScrollEventChangesTab = true;
- #else
- const bool kScrollEventChangesTab = false;
diff --git a/chromium-new/patches/patch-chrome_browser_diagnostics_diagnostics__writer.cc b/chromium-new/patches/patch-chrome_browser_diagnostics_diagnostics__writer.cc
new file mode 100644
index 0000000..d95e3d0
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_diagnostics_diagnostics__writer.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- chrome/browser/diagnostics/diagnostics_writer.cc.orig	2016-06-24 01:02:12.000000000 +0000
++++ chrome/browser/diagnostics/diagnostics_writer.cc
+@@ -263,7 +263,7 @@ bool DiagnosticsWriter::WriteResult(bool
+       console_->SetColor(color);
+       console_->Write(base::ASCIIToUTF16(result));
+     }
+-    if (format_ == MACHINE) {
++    if (format_ == THEMACHINE) {
+       return WriteInfoLine(base::StringPrintf(
+           "%03d %s (%s)", outcome_code, id.c_str(), extra.c_str()));
+     } else {
diff --git a/chromium-new/patches/patch-chrome_browser_diagnostics_diagnostics__writer.h b/chromium-new/patches/patch-chrome_browser_diagnostics_diagnostics__writer.h
new file mode 100644
index 0000000..6fe73a6
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_diagnostics_diagnostics__writer.h
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- chrome/browser/diagnostics/diagnostics_writer.h.orig	2016-06-24 01:02:12.000000000 +0000
++++ chrome/browser/diagnostics/diagnostics_writer.h
+@@ -18,7 +18,7 @@ class DiagnosticsWriter : public Diagnos
+  public:
+   // The type of formatting done by this writer.
+   enum FormatType {
+-    MACHINE,
++    THEMACHINE,
+     LOG,
+     HUMAN
+   };
diff --git a/chromium-new/patches/patch-chrome_browser_download_chrome__download__manager__delegate.cc b/chromium-new/patches/patch-chrome_browser_download_chrome__download__manager__delegate.cc
new file mode 100644
index 0000000..c0e450d
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_download_chrome__download__manager__delegate.cc
@@ -0,0 +1,22 @@
+$NetBSD$
+
+--- chrome/browser/download/chrome_download_manager_delegate.cc.orig	2016-06-24 01:02:12.000000000 +0000
++++ chrome/browser/download/chrome_download_manager_delegate.cc
+@@ -736,7 +736,7 @@ void ChromeDownloadManagerDelegate::OnDo
+         target_info->is_filetype_handled_safely)
+       DownloadItemModel(item).SetShouldPreferOpeningInBrowser(true);
+ 
+-#if defined(OS_LINUX) || defined(OS_CHROMEOS)
++#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
+     if (item->GetOriginalMimeType() == "application/x-x509-user-cert")
+       DownloadItemModel(item).SetShouldPreferOpeningInBrowser(true);
+ #endif
+@@ -751,7 +751,7 @@ void ChromeDownloadManagerDelegate::OnDo
+ 
+ bool ChromeDownloadManagerDelegate::IsOpenInBrowserPreferreredForFile(
+     const base::FilePath& path) {
+-#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
++#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+   if (path.MatchesExtension(FILE_PATH_LITERAL(".pdf"))) {
+     return !download_prefs_->ShouldOpenPdfInSystemReader();
+   }
diff --git a/chromium-new/patches/patch-chrome_browser_download_chrome_download_manager_delegate_cc b/chromium-new/patches/patch-chrome_browser_download_chrome_download_manager_delegate_cc
deleted file mode 100644
index b2f2373..0000000
--- a/chromium-new/patches/patch-chrome_browser_download_chrome_download_manager_delegate_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_browser_download_chrome_download_manager_delegate_cc,v 1.4 2016/01/23 18:49:31 robert Exp $
---- chrome/browser/download/chrome_download_manager_delegate.cc.orig.port	Wed Jan 20 21:01:19 2016
-+++ chrome/browser/download/chrome_download_manager_delegate.cc	Fri Jan 22 19:58:58 2016
-@@ -740,7 +740,7 @@ void ChromeDownloadManagerDelegate::OnDownloadTargetDe
- 
- bool ChromeDownloadManagerDelegate::IsOpenInBrowserPreferreredForFile(
-     const base::FilePath& path) {
--#if defined(OS_WIN) || defined(OS_LINUX) || \
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD) || \
-     (defined(OS_MACOSX) && !defined(OS_IOS))
-   if (path.MatchesExtension(FILE_PATH_LITERAL(".pdf"))) {
-     return !download_prefs_->ShouldOpenPdfInSystemReader();
diff --git a/chromium-new/patches/patch-chrome_browser_download_download__commands.cc b/chromium-new/patches/patch-chrome_browser_download_download__commands.cc
new file mode 100644
index 0000000..d21327e
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_download_download__commands.cc
@@ -0,0 +1,40 @@
+$NetBSD$
+
+--- chrome/browser/download/download_commands.cc.orig	2016-06-24 01:02:12.000000000 +0000
++++ chrome/browser/download/download_commands.cc
+@@ -211,7 +211,7 @@ bool DownloadCommands::IsCommandChecked(
+       return download_item_->GetOpenWhenComplete() ||
+              download_crx_util::IsExtensionDownload(*download_item_);
+     case ALWAYS_OPEN_TYPE:
+-#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
++#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+       if (CanOpenPdfInSystemViewer()) {
+         DownloadPrefs* prefs = DownloadPrefs::FromBrowserContext(
+             download_item_->GetBrowserContext());
+@@ -254,7 +254,7 @@ void DownloadCommands::ExecuteCommand(Co
+       bool is_checked = IsCommandChecked(ALWAYS_OPEN_TYPE);
+       DownloadPrefs* prefs = DownloadPrefs::FromBrowserContext(
+           download_item_->GetBrowserContext());
+-#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
++#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+       if (CanOpenPdfInSystemViewer()) {
+         prefs->SetShouldOpenPdfInSystemReader(!is_checked);
+         DownloadItemModel(download_item_)
+@@ -352,7 +352,7 @@ Browser* DownloadCommands::GetBrowser() 
+   return browser_displayer.browser();
+ }
+ 
+-#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
++#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
+ bool DownloadCommands::IsDownloadPdf() const {
+   base::FilePath path = download_item_->GetTargetFilePath();
+   return path.MatchesExtension(FILE_PATH_LITERAL(".pdf"));
+@@ -369,7 +369,7 @@ bool DownloadCommands::CanOpenPdfInSyste
+   return IsDownloadPdf() &&
+          (IsAdobeReaderDefaultPDFViewer() ? is_adobe_pdf_reader_up_to_date
+                                           : true);
+-#elif defined(OS_MACOSX) || defined(OS_LINUX)
++#elif defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
+   return IsDownloadPdf();
+ #endif
+ }
diff --git a/chromium-new/patches/patch-chrome_browser_download_download__commands.h b/chromium-new/patches/patch-chrome_browser_download_download__commands.h
new file mode 100644
index 0000000..e57b5e0
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_download_download__commands.h
@@ -0,0 +1,14 @@
+$NetBSD$
+
+--- chrome/browser/download/download_commands.h.orig	2016-06-24 01:02:12.000000000 +0000
++++ chrome/browser/download/download_commands.h
+@@ -42,7 +42,8 @@ class DownloadCommands {
+   void ExecuteCommand(Command command);
+ 
+ #if defined(OS_WIN) || defined(OS_LINUX) || \
+-    (defined(OS_MACOSX) && !defined(OS_IOS))
++    defined(OS_BSD) || (defined(OS_MACOSX) && \
++    !defined(OS_IOS))
+   bool IsDownloadPdf() const;
+   bool CanOpenPdfInSystemViewer() const;
+ #endif
diff --git a/chromium-new/patches/patch-chrome_browser_download_download__prefs.cc b/chromium-new/patches/patch-chrome_browser_download_download__prefs.cc
new file mode 100644
index 0000000..b1b6558
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_download_download__prefs.cc
@@ -0,0 +1,67 @@
+$NetBSD$
+
+--- chrome/browser/download/download_prefs.cc.orig	2016-06-24 01:02:12.000000000 +0000
++++ chrome/browser/download/download_prefs.cc
+@@ -55,7 +55,7 @@ namespace {
+ // Consider downloads 'dangerous' if they go to the home directory on Linux and
+ // to the desktop on any platform.
+ bool DownloadPathIsDangerous(const base::FilePath& download_path) {
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_BSD)
+   base::FilePath home_dir = base::GetHomeDir();
+   if (download_path == home_dir) {
+     return true;
+@@ -135,7 +135,7 @@ DownloadPrefs::DownloadPrefs(Profile* pr
+                  GetDefaultDownloadDirectoryForProfile()));
+ #endif  // defined(OS_CHROMEOS)
+ 
+-#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
++#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+   should_open_pdf_in_system_reader_ =
+       prefs->GetBoolean(prefs::kOpenPdfDownloadInSystemReader);
+ #endif
+@@ -211,7 +211,7 @@ void DownloadPrefs::RegisterProfilePrefs
+                                  default_download_path);
+   registry->RegisterFilePathPref(prefs::kSaveFileDefaultDirectory,
+                                  default_download_path);
+-#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
++#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+   registry->RegisterBooleanPref(prefs::kOpenPdfDownloadInSystemReader, false);
+ #endif
+ }
+@@ -288,7 +288,7 @@ bool DownloadPrefs::IsDownloadPathManage
+ }
+ 
+ bool DownloadPrefs::IsAutoOpenUsed() const {
+-#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
++#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+   if (ShouldOpenPdfInSystemReader())
+     return true;
+ #endif
+@@ -302,7 +302,7 @@ bool DownloadPrefs::IsAutoOpenEnabledBas
+     return false;
+   DCHECK(extension[0] == base::FilePath::kExtensionSeparator);
+   extension.erase(0, 1);
+-#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
++#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+   if (extension == FILE_PATH_LITERAL("pdf") && ShouldOpenPdfInSystemReader())
+     return true;
+ #endif
+@@ -335,7 +335,7 @@ void DownloadPrefs::DisableAutoOpenBased
+   SaveAutoOpenState();
+ }
+ 
+-#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
++#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+ void DownloadPrefs::SetShouldOpenPdfInSystemReader(bool should_open) {
+   if (should_open_pdf_in_system_reader_ == should_open)
+     return;
+@@ -356,7 +356,7 @@ bool DownloadPrefs::ShouldOpenPdfInSyste
+ #endif
+ 
+ void DownloadPrefs::ResetAutoOpen() {
+-#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
++#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+   SetShouldOpenPdfInSystemReader(false);
+ #endif
+   auto_open_.clear();
diff --git a/chromium-new/patches/patch-chrome_browser_download_download__prefs.h b/chromium-new/patches/patch-chrome_browser_download_download__prefs.h
new file mode 100644
index 0000000..1aeb1d8
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_download_download__prefs.h
@@ -0,0 +1,22 @@
+$NetBSD$
+
+--- chrome/browser/download/download_prefs.h.orig	2016-06-24 01:02:12.000000000 +0000
++++ chrome/browser/download/download_prefs.h
+@@ -79,7 +79,7 @@ class DownloadPrefs {
+   // Disables auto-open based on file extension.
+   void DisableAutoOpenBasedOnExtension(const base::FilePath& file_name);
+ 
+-#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
++#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+   // Store the user preference to disk. If |should_open| is true, also disable
+   // the built-in PDF plugin. If |should_open| is false, enable the PDF plugin.
+   void SetShouldOpenPdfInSystemReader(bool should_open);
+@@ -110,7 +110,7 @@ class DownloadPrefs {
+                    AutoOpenCompareFunctor> AutoOpenSet;
+   AutoOpenSet auto_open_;
+ 
+-#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
++#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+   bool should_open_pdf_in_system_reader_;
+ #endif
+ 
diff --git a/chromium-new/patches/patch-chrome_browser_download_download__query.cc b/chromium-new/patches/patch-chrome_browser_download_download__query.cc
new file mode 100644
index 0000000..04daadc
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_download_download__query.cc
@@ -0,0 +1,16 @@
+$NetBSD$
+
+--- chrome/browser/download/download_query.cc.orig	2016-06-24 01:02:12.000000000 +0000
++++ chrome/browser/download/download_query.cc
+@@ -28,7 +28,11 @@
+ #include "components/url_formatter/url_formatter.h"
+ #include "content/public/browser/content_browser_client.h"
+ #include "content/public/browser/download_item.h"
++#if defined(OS_BSD)
++#include <re2/re2.h>
++#else
+ #include "third_party/re2/src/re2/re2.h"
++#endif
+ #include "url/gurl.h"
+ 
+ using content::DownloadDangerType;
diff --git a/chromium-new/patches/patch-chrome_browser_download_download__shelf__context__menu.cc b/chromium-new/patches/patch-chrome_browser_download_download__shelf__context__menu.cc
new file mode 100644
index 0000000..53b6105
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_download_download__shelf__context__menu.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- chrome/browser/download/download_shelf_context_menu.cc.orig	2016-06-24 01:02:12.000000000 +0000
++++ chrome/browser/download/download_shelf_context_menu.cc
+@@ -142,7 +142,7 @@ base::string16 DownloadShelfContextMenu:
+                    : IDS_DOWNLOAD_MENU_PLATFORM_OPEN_ALWAYS;
+           break;
+         }
+-#elif defined(OS_MACOSX) || defined(OS_LINUX)
++#elif defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
+         if (can_open_pdf_in_system_viewer) {
+           id = IDS_DOWNLOAD_MENU_PLATFORM_OPEN_ALWAYS;
+           break;
diff --git a/chromium-new/patches/patch-chrome_browser_download_download_commands_cc b/chromium-new/patches/patch-chrome_browser_download_download_commands_cc
deleted file mode 100644
index a3cd2b7..0000000
--- a/chromium-new/patches/patch-chrome_browser_download_download_commands_cc
+++ /dev/null
@@ -1,39 +0,0 @@
-$OpenBSD: patch-chrome_browser_download_download_commands_cc,v 1.4 2015/10/14 16:42:07 robert Exp $
---- chrome/browser/download/download_commands.cc.orig.port	Wed Oct  7 04:42:08 2015
-+++ chrome/browser/download/download_commands.cc	Wed Oct 14 07:41:13 2015
-@@ -115,7 +115,7 @@ bool DownloadCommands::IsCommandChecked(Command comman
-              download_crx_util::IsExtensionDownload(*download_item_);
-     case ALWAYS_OPEN_TYPE:
- #if defined(OS_WIN) || defined(OS_LINUX) || \
--    (defined(OS_MACOSX) && !defined(OS_IOS))
-+    (defined(OS_MACOSX) && !defined(OS_IOS)) || defined(OS_BSD)
-       if (CanOpenPdfInSystemViewer()) {
-         DownloadPrefs* prefs = DownloadPrefs::FromBrowserContext(
-             download_item_->GetBrowserContext());
-@@ -158,7 +158,7 @@ void DownloadCommands::ExecuteCommand(Command command)
-       DownloadPrefs* prefs = DownloadPrefs::FromBrowserContext(
-           download_item_->GetBrowserContext());
- #if defined(OS_WIN) || defined(OS_LINUX) || \
--    (defined(OS_MACOSX) && !defined(OS_IOS))
-+    (defined(OS_MACOSX) && !defined(OS_IOS)) || defined(OS_BSD)
-       if (CanOpenPdfInSystemViewer()) {
-         prefs->SetShouldOpenPdfInSystemReader(!is_checked);
-         DownloadItemModel(download_item_)
-@@ -225,7 +225,7 @@ Browser* DownloadCommands::GetBrowser() const {
-   return browser_displayer.browser();
- }
- 
--#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
- bool DownloadCommands::IsDownloadPdf() const {
-   base::FilePath path = download_item_->GetTargetFilePath();
-   return path.MatchesExtension(FILE_PATH_LITERAL(".pdf"));
-@@ -242,7 +242,7 @@ bool DownloadCommands::CanOpenPdfInSystemViewer() cons
-   return IsDownloadPdf() &&
-          (IsAdobeReaderDefaultPDFViewer() ? is_adobe_pdf_reader_up_to_date
-                                           : true);
--#elif defined(OS_MACOSX) || defined(OS_LINUX)
-+#elif defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
-   return IsDownloadPdf();
- #endif
- }
diff --git a/chromium-new/patches/patch-chrome_browser_download_download_commands_h b/chromium-new/patches/patch-chrome_browser_download_download_commands_h
deleted file mode 100644
index ef16075..0000000
--- a/chromium-new/patches/patch-chrome_browser_download_download_commands_h
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_browser_download_download_commands_h,v 1.2 2015/07/23 13:44:04 robert Exp $
---- chrome/browser/download/download_commands.h.orig.port	Wed Jul 15 22:29:57 2015
-+++ chrome/browser/download/download_commands.h	Wed Jul 22 08:37:29 2015
-@@ -40,7 +40,7 @@ class DownloadCommands {
-   void ExecuteCommand(Command command);
- 
- #if defined(OS_WIN) || defined(OS_LINUX) || \
--    (defined(OS_MACOSX) && !defined(OS_IOS))
-+    (defined(OS_MACOSX) && !defined(OS_IOS)) || defined(OS_BSD)
-   bool IsDownloadPdf() const;
-   bool CanOpenPdfInSystemViewer() const;
- #endif
diff --git a/chromium-new/patches/patch-chrome_browser_download_download_prefs_cc b/chromium-new/patches/patch-chrome_browser_download_download_prefs_cc
deleted file mode 100644
index 6862d48..0000000
--- a/chromium-new/patches/patch-chrome_browser_download_download_prefs_cc
+++ /dev/null
@@ -1,66 +0,0 @@
-$OpenBSD: patch-chrome_browser_download_download_prefs_cc,v 1.2 2015/07/23 13:44:04 robert Exp $
---- chrome/browser/download/download_prefs.cc.orig.port	Wed Jul 22 08:42:28 2015
-+++ chrome/browser/download/download_prefs.cc	Wed Jul 22 08:43:46 2015
-@@ -51,7 +51,7 @@ namespace {
- // Consider downloads 'dangerous' if they go to the home directory on Linux and
- // to the desktop on any platform.
- bool DownloadPathIsDangerous(const base::FilePath& download_path) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   base::FilePath home_dir = base::GetHomeDir();
-   if (download_path == home_dir) {
-     return true;
-@@ -131,7 +131,7 @@ DownloadPrefs::DownloadPrefs(Profile* profile) : profi
-                  GetDefaultDownloadDirectoryForProfile()));
- #endif  // defined(OS_CHROMEOS)
- 
--#if defined(OS_WIN) || defined(OS_LINUX) || \
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD) || \
-     (defined(OS_MACOSX) && !defined(OS_IOS))
-   should_open_pdf_in_system_reader_ =
-       prefs->GetBoolean(prefs::kOpenPdfDownloadInSystemReader);
-@@ -208,7 +208,7 @@ void DownloadPrefs::RegisterProfilePrefs(
-                                  default_download_path);
-   registry->RegisterFilePathPref(prefs::kSaveFileDefaultDirectory,
-                                  default_download_path);
--#if defined(OS_WIN) || defined(OS_LINUX) || \
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD) || \
-     (defined(OS_MACOSX) && !defined(OS_IOS))
-   registry->RegisterBooleanPref(prefs::kOpenPdfDownloadInSystemReader, false);
- #endif
-@@ -286,7 +286,7 @@ bool DownloadPrefs::IsDownloadPathManaged() const {
- }
- 
- bool DownloadPrefs::IsAutoOpenUsed() const {
--#if defined(OS_WIN) || defined(OS_LINUX) || \
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD) || \
-       (defined(OS_MACOSX) && !defined(OS_IOS))
-   if (ShouldOpenPdfInSystemReader())
-     return true;
-@@ -301,7 +301,7 @@ bool DownloadPrefs::IsAutoOpenEnabledBasedOnExtension(
-     return false;
-   DCHECK(extension[0] == base::FilePath::kExtensionSeparator);
-   extension.erase(0, 1);
--#if defined(OS_WIN) || defined(OS_LINUX) || \
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD) || \
-     (defined(OS_MACOSX) && !defined(OS_IOS))
-   if (extension == FILE_PATH_LITERAL("pdf") && ShouldOpenPdfInSystemReader())
-     return true;
-@@ -335,7 +335,7 @@ void DownloadPrefs::DisableAutoOpenBasedOnExtension(
-   SaveAutoOpenState();
- }
- 
--#if defined(OS_WIN) || defined(OS_LINUX) || \
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD) || \
-     (defined(OS_MACOSX) && !defined(OS_IOS))
- void DownloadPrefs::SetShouldOpenPdfInSystemReader(bool should_open) {
-   if (should_open_pdf_in_system_reader_ == should_open)
-@@ -357,7 +357,7 @@ bool DownloadPrefs::ShouldOpenPdfInSystemReader() cons
- #endif
- 
- void DownloadPrefs::ResetAutoOpen() {
--#if defined(OS_WIN) || defined(OS_LINUX) || \
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD) || \
-     (defined(OS_MACOSX) && !defined(OS_IOS))
-   SetShouldOpenPdfInSystemReader(false);
- #endif
diff --git a/chromium-new/patches/patch-chrome_browser_download_download_prefs_h b/chromium-new/patches/patch-chrome_browser_download_download_prefs_h
deleted file mode 100644
index 7b022f7..0000000
--- a/chromium-new/patches/patch-chrome_browser_download_download_prefs_h
+++ /dev/null
@@ -1,21 +0,0 @@
-$OpenBSD: patch-chrome_browser_download_download_prefs_h,v 1.2 2015/07/23 13:44:04 robert Exp $
---- chrome/browser/download/download_prefs.h.orig.port	Wed Jul 15 22:29:57 2015
-+++ chrome/browser/download/download_prefs.h	Wed Jul 22 08:37:29 2015
-@@ -77,7 +77,7 @@ class DownloadPrefs {
-   // Disables auto-open based on file extension.
-   void DisableAutoOpenBasedOnExtension(const base::FilePath& file_name);
- 
--#if defined(OS_WIN) || defined(OS_LINUX) || \
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD) || \
-     (defined(OS_MACOSX) && !defined(OS_IOS))
-   // Store the user preference to disk. If |should_open| is true, also disable
-   // the built-in PDF plugin. If |should_open| is false, enable the PDF plugin.
-@@ -109,7 +109,7 @@ class DownloadPrefs {
-                    AutoOpenCompareFunctor> AutoOpenSet;
-   AutoOpenSet auto_open_;
- 
--#if defined(OS_WIN) || defined(OS_LINUX) || \
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD) || \
-     (defined(OS_MACOSX) && !defined(OS_IOS))
-   bool should_open_pdf_in_system_reader_;
- #endif
diff --git a/chromium-new/patches/patch-chrome_browser_download_download_shelf_context_menu_cc b/chromium-new/patches/patch-chrome_browser_download_download_shelf_context_menu_cc
deleted file mode 100644
index 47c37dd..0000000
--- a/chromium-new/patches/patch-chrome_browser_download_download_shelf_context_menu_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_browser_download_download_shelf_context_menu_cc,v 1.3 2015/05/24 15:51:53 robert Exp $
---- chrome/browser/download/download_shelf_context_menu.cc.orig.port	Wed May 20 10:02:47 2015
-+++ chrome/browser/download/download_shelf_context_menu.cc	Wed May 20 10:03:00 2015
-@@ -143,7 +143,7 @@ base::string16 DownloadShelfContextMenu::GetLabelForCo
-                    : IDS_DOWNLOAD_MENU_PLATFORM_OPEN_ALWAYS;
-           break;
-         }
--#elif defined(OS_MACOSX) || defined(OS_LINUX)
-+#elif defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
-         if (can_open_pdf_in_system_viewer) {
-           id = IDS_DOWNLOAD_MENU_PLATFORM_OPEN_ALWAYS;
-           break;
diff --git a/chromium-new/patches/patch-chrome_browser_download_download_status_updater_cc b/chromium-new/patches/patch-chrome_browser_download_download_status_updater_cc
deleted file mode 100644
index 5425879..0000000
--- a/chromium-new/patches/patch-chrome_browser_download_download_status_updater_cc
+++ /dev/null
@@ -1,21 +0,0 @@
-$OpenBSD: patch-chrome_browser_download_download_status_updater_cc,v 1.1 2014/07/20 17:22:33 robert Exp $
---- chrome/browser/download/download_status_updater.cc.orig.port	Sat Jul 19 03:32:36 2014
-+++ chrome/browser/download/download_status_updater.cc	Sat Jul 19 03:33:37 2014
-@@ -9,7 +9,7 @@
- #include "base/logging.h"
- #include "base/stl_util.h"
- 
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- #include "ui/views/linux_ui/linux_ui.h"
- #endif
- 
-@@ -136,7 +136,7 @@ void DownloadStatusUpdater::OnDownloadUpdated(
- #if defined(OS_ANDROID) || (defined(USE_AURA) && !defined(OS_WIN))
- void DownloadStatusUpdater::UpdateAppIconDownloadProgress(
-     content::DownloadItem* download) {
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
-   const views::LinuxUI* linux_ui = views::LinuxUI::instance();
-   if (linux_ui) {
-     float progress = 0;
diff --git a/chromium-new/patches/patch-chrome_browser_extensions_activity__log_activity__log.cc b/chromium-new/patches/patch-chrome_browser_extensions_activity__log_activity__log.cc
new file mode 100644
index 0000000..edf2086
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_extensions_activity__log_activity__log.cc
@@ -0,0 +1,16 @@
+$NetBSD$
+
+--- chrome/browser/extensions/activity_log/activity_log.cc.orig	2016-06-24 01:02:12.000000000 +0000
++++ chrome/browser/extensions/activity_log/activity_log.cc
+@@ -39,7 +39,11 @@
+ #include "extensions/browser/extensions_browser_client.h"
+ #include "extensions/common/extension.h"
+ #include "extensions/common/one_shot_event.h"
++#if defined(OS_BSD)
++#include <re2/re2.h>
++#else
+ #include "third_party/re2/src/re2/re2.h"
++#endif
+ #include "url/gurl.h"
+ 
+ namespace constants = activity_log_constants;
diff --git a/chromium-new/patches/patch-chrome_browser_extensions_api_image__writer__private_image__writer__private__api.cc b/chromium-new/patches/patch-chrome_browser_extensions_api_image__writer__private_image__writer__private__api.cc
new file mode 100644
index 0000000..7674312
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_extensions_api_image__writer__private_image__writer__private__api.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+--- chrome/browser/extensions/api/image_writer_private/image_writer_private_api.cc.orig	2016-06-24 01:02:12.000000000 +0000
++++ chrome/browser/extensions/api/image_writer_private/image_writer_private_api.cc
+@@ -166,10 +166,12 @@ ImageWriterPrivateListRemovableStorageDe
+ }
+ 
+ bool ImageWriterPrivateListRemovableStorageDevicesFunction::RunAsync() {
++#if !defined(OS_FREEBSD)
+   RemovableStorageProvider::GetAllDevices(
+     base::Bind(
+       &ImageWriterPrivateListRemovableStorageDevicesFunction::OnDeviceListReady,
+       this));
++#endif
+   return true;
+ }
+ 
diff --git a/chromium-new/patches/patch-chrome_browser_extensions_api_image_writer_private_image_writer_private_api_cc b/chromium-new/patches/patch-chrome_browser_extensions_api_image_writer_private_image_writer_private_api_cc
deleted file mode 100644
index db2862a..0000000
--- a/chromium-new/patches/patch-chrome_browser_extensions_api_image_writer_private_image_writer_private_api_cc
+++ /dev/null
@@ -1,16 +0,0 @@
-$OpenBSD: patch-chrome_browser_extensions_api_image_writer_private_image_writer_private_api_cc,v 1.7 2015/09/05 16:06:50 robert Exp $
---- chrome/browser/extensions/api/image_writer_private/image_writer_private_api.cc.orig.port	Sat Aug 22 21:01:52 2015
-+++ chrome/browser/extensions/api/image_writer_private/image_writer_private_api.cc	Wed Sep  2 07:31:55 2015
-@@ -166,10 +166,12 @@ ImageWriterPrivateListRemovableStorageDevicesFunction:
- }
- 
- bool ImageWriterPrivateListRemovableStorageDevicesFunction::RunAsync() {
-+#if !defined(OS_BSD)
-   RemovableStorageProvider::GetAllDevices(
-     base::Bind(
-       &ImageWriterPrivateListRemovableStorageDevicesFunction::OnDeviceListReady,
-       this));
-+#endif
-   return true;
- }
- 
diff --git a/chromium-new/patches/patch-chrome_browser_extensions_api_input__ime_input__ime__api.h b/chromium-new/patches/patch-chrome_browser_extensions_api_input__ime_input__ime__api.h
new file mode 100644
index 0000000..df7b854
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_extensions_api_input__ime_input__ime__api.h
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- chrome/browser/extensions/api/input_ime/input_ime_api.h.orig	2016-06-24 01:02:12.000000000 +0000
++++ chrome/browser/extensions/api/input_ime/input_ime_api.h
+@@ -28,7 +28,7 @@
+ 
+ #if defined(OS_CHROMEOS)
+ #include "chrome/browser/extensions/api/input_ime/input_ime_api_chromeos.h"
+-#elif defined(OS_LINUX) || defined(OS_WIN)
++#elif defined(OS_LINUX) || defined(OS_WIN) || defined(OS_BSD)
+ #include "chrome/browser/extensions/api/input_ime/input_ime_api_nonchromeos.h"
+ #endif  // defined(OS_CHROMEOS)
+ 
diff --git a/chromium-new/patches/patch-chrome_browser_extensions_api_messaging_message__service.cc b/chromium-new/patches/patch-chrome_browser_extensions_api_messaging_message__service.cc
new file mode 100644
index 0000000..99eeceb
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_extensions_api_messaging_message__service.cc
@@ -0,0 +1,22 @@
+$NetBSD$
+
+--- chrome/browser/extensions/api/messaging/message_service.cc.orig	2016-06-24 01:02:12.000000000 +0000
++++ chrome/browser/extensions/api/messaging/message_service.cc
+@@ -118,7 +118,7 @@ MessageService::PolicyPermission Message
+ 
+ const char kReceivingEndDoesntExistError[] =
+     "Could not establish connection. Receiving end does not exist.";
+-#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
++#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
+ const char kMissingPermissionError[] =
+     "Access to native messaging requires nativeMessaging permission.";
+ const char kProhibitedByPoliciesError[] =
+@@ -415,7 +415,7 @@ void MessageService::OpenChannelToNative
+   if (!source)
+     return;
+ 
+-#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
++#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
+   Profile* profile =
+       Profile::FromBrowserContext(source->GetProcess()->GetBrowserContext());
+   ExtensionService* extension_service =
diff --git a/chromium-new/patches/patch-chrome_browser_extensions_api_messaging_message_service_cc b/chromium-new/patches/patch-chrome_browser_extensions_api_messaging_message_service_cc
deleted file mode 100644
index 5bcd0bf..0000000
--- a/chromium-new/patches/patch-chrome_browser_extensions_api_messaging_message_service_cc
+++ /dev/null
@@ -1,21 +0,0 @@
-$OpenBSD: patch-chrome_browser_extensions_api_messaging_message_service_cc,v 1.5 2015/12/05 16:13:32 robert Exp $
---- chrome/browser/extensions/api/messaging/message_service.cc.orig.port	Fri Nov 13 12:04:14 2015
-+++ chrome/browser/extensions/api/messaging/message_service.cc	Wed Dec  2 08:18:32 2015
-@@ -113,7 +113,7 @@ MessageService::PolicyPermission MessageService::IsNat
- 
- const char kReceivingEndDoesntExistError[] =
-     "Could not establish connection. Receiving end does not exist.";
--#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
- const char kMissingPermissionError[] =
-     "Access to native messaging requires nativeMessaging permission.";
- const char kProhibitedByPoliciesError[] =
-@@ -422,7 +422,7 @@ void MessageService::OpenChannelToNativeApp(
-   if (!source)
-     return;
- 
--#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
-   Profile* profile = Profile::FromBrowserContext(source->GetBrowserContext());
-   ExtensionService* extension_service =
-       ExtensionSystem::Get(profile)->extension_service();
diff --git a/chromium-new/patches/patch-chrome_browser_extensions_api_music__manager__private_device__id__linux.cc b/chromium-new/patches/patch-chrome_browser_extensions_api_music__manager__private_device__id__linux.cc
new file mode 100644
index 0000000..3d2e032
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_extensions_api_music__manager__private_device__id__linux.cc
@@ -0,0 +1,68 @@
+$NetBSD$
+
+--- chrome/browser/extensions/api/music_manager_private/device_id_linux.cc.orig	2016-06-24 01:02:12.000000000 +0000
++++ chrome/browser/extensions/api/music_manager_private/device_id_linux.cc
+@@ -4,6 +4,10 @@
+ 
+ #include "chrome/browser/extensions/api/music_manager_private/device_id.h"
+ 
++#if defined(OS_FREEBSD) || defined(OS_NETBSD)
++#include <sys/types.h>
++#include <net/if_dl.h>
++#endif
+ #include <ifaddrs.h>
+ #include <net/if.h>
+ #include <stddef.h>
+@@ -105,11 +109,33 @@ class MacAddressProcessor {
+                         const char* const prefixes[],
+                         size_t prefixes_count) {
+     const int MAC_LENGTH = 6;
++#if defined(OS_FREEBSD) || defined(OS_NETBSD)
++    struct ifaddrs *ifap, *ifinfo;
++#else
+     struct ifreq ifinfo;
++#endif
+ 
+     memset(&ifinfo, 0, sizeof(ifinfo));
+-    strncpy(ifinfo.ifr_name, ifaddr->ifa_name, sizeof(ifinfo.ifr_name) - 1);
+ 
++#if defined(OS_FREEBSD) || defined(OS_NETBSD)
++    int result = getifaddrs(&ifap);
++    if (result != 0)
++      return true;
++    result = 1; // no MAC found yet
++    for (ifinfo = ifap; ifinfo != NULL; ifinfo = ifinfo->ifa_next) {
++      struct sockaddr* sa = ifinfo->ifa_addr;
++      if (sa->sa_family == AF_LINK &&
++        !strncmp(ifinfo->ifa_name, ifaddr->ifa_name,
++        sizeof(ifinfo->ifa_name) - 1)) { 
++          result = 0;
++	  break;
++      }
++    }
++
++    char mac_address[6];
++    strncpy(mac_address, (const char*)LLADDR((struct sockaddr_dl*)ifinfo->ifa_addr), sizeof(mac_address));
++#else
++    strncpy(ifinfo.ifr_name, ifaddr->ifa_name, sizeof(ifinfo.ifr_name) - 1);
+     int sd = socket(AF_INET, SOCK_DGRAM, 0);
+     int result = ioctl(sd, SIOCGIFHWADDR, &ifinfo);
+     close(sd);
+@@ -119,11 +145,17 @@ class MacAddressProcessor {
+ 
+     const char* mac_address =
+         static_cast<const char*>(ifinfo.ifr_hwaddr.sa_data);
++#endif
+     if (!is_valid_mac_address_.Run(mac_address, MAC_LENGTH))
+       return true;
+ 
++#if defined(OS_FREEBSD) || defined(OS_NETBSD)
++    if (!IsValidPrefix(ifinfo->ifa_name, prefixes, prefixes_count))
++      return true;
++#else
+     if (!IsValidPrefix(ifinfo.ifr_name, prefixes, prefixes_count))
+       return true;
++#endif
+ 
+     // Got one!
+     found_mac_address_ =
diff --git a/chromium-new/patches/patch-chrome_browser_extensions_api_music_manager_private_device_id_linux_cc b/chromium-new/patches/patch-chrome_browser_extensions_api_music_manager_private_device_id_linux_cc
deleted file mode 100644
index 8e59720..0000000
--- a/chromium-new/patches/patch-chrome_browser_extensions_api_music_manager_private_device_id_linux_cc
+++ /dev/null
@@ -1,67 +0,0 @@
-$OpenBSD: patch-chrome_browser_extensions_api_music_manager_private_device_id_linux_cc,v 1.3 2015/01/22 11:16:40 robert Exp $
---- chrome/browser/extensions/api/music_manager_private/device_id_linux.cc.orig.port	Wed Dec  3 03:13:20 2014
-+++ chrome/browser/extensions/api/music_manager_private/device_id_linux.cc	Sat Dec  6 11:34:25 2014
-@@ -4,6 +4,10 @@
- 
- #include "chrome/browser/extensions/api/music_manager_private/device_id.h"
- 
-+#if defined(OS_BSD)
-+#include <sys/types.h>
-+#include <net/if_dl.h>
-+#endif
- #include <sys/socket.h>  // Must be included before ifaddrs.h.
- #include <ifaddrs.h>
- #include <net/if.h>
-@@ -102,11 +106,33 @@ class MacAddressProcessor {
-                         const char* const prefixes[],
-                         size_t prefixes_count) {
-     const int MAC_LENGTH = 6;
-+#if defined(OS_BSD)
-+    struct ifaddrs *ifap, *ifinfo;
-+#else
-     struct ifreq ifinfo;
-+#endif
- 
-     memset(&ifinfo, 0, sizeof(ifinfo));
--    strncpy(ifinfo.ifr_name, ifaddr->ifa_name, sizeof(ifinfo.ifr_name) - 1);
- 
-+#if defined(OS_BSD)
-+    int result = getifaddrs(&ifap);
-+    if (result != 0)
-+      return true;
-+    result = 1; // no MAC found yet
-+    for (ifinfo = ifap; ifinfo != NULL; ifinfo = ifinfo->ifa_next) {
-+      struct sockaddr* sa = ifinfo->ifa_addr;
-+      if (sa->sa_family == AF_LINK &&
-+        !strncmp(ifinfo->ifa_name, ifaddr->ifa_name,
-+        sizeof(ifinfo->ifa_name) - 1)) { 
-+          result = 0;
-+	  break;
-+      }
-+    }
-+
-+    char mac_address[6];
-+    strncpy(mac_address, (const char*)LLADDR((struct sockaddr_dl*)ifinfo->ifa_addr), sizeof(mac_address));
-+#else
-+    strncpy(ifinfo.ifr_name, ifaddr->ifa_name, sizeof(ifinfo.ifr_name) - 1);
-     int sd = socket(AF_INET, SOCK_DGRAM, 0);
-     int result = ioctl(sd, SIOCGIFHWADDR, &ifinfo);
-     close(sd);
-@@ -116,11 +142,17 @@ class MacAddressProcessor {
- 
-     const char* mac_address =
-         static_cast<const char*>(ifinfo.ifr_hwaddr.sa_data);
-+#endif
-     if (!is_valid_mac_address_.Run(mac_address, MAC_LENGTH))
-       return true;
- 
-+#if defined(OS_BSD)
-+    if (!IsValidPrefix(ifinfo->ifa_name, prefixes, prefixes_count))
-+      return true;
-+#else
-     if (!IsValidPrefix(ifinfo.ifr_name, prefixes, prefixes_count))
-       return true;
-+#endif
- 
-     // Got one!
-     found_mac_address_ =
diff --git a/chromium-new/patches/patch-chrome_browser_extensions_api_omnibox_omnibox_api_cc b/chromium-new/patches/patch-chrome_browser_extensions_api_omnibox_omnibox_api_cc
deleted file mode 100644
index 8202d98..0000000
--- a/chromium-new/patches/patch-chrome_browser_extensions_api_omnibox_omnibox_api_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_browser_extensions_api_omnibox_omnibox_api_cc,v 1.1 2014/07/20 17:22:33 robert Exp $
---- chrome/browser/extensions/api/omnibox/omnibox_api.cc.orig.port	Sat Jul 19 11:17:49 2014
-+++ chrome/browser/extensions/api/omnibox/omnibox_api.cc	Sat Jul 19 11:28:45 2014
-@@ -39,7 +39,7 @@ const char kBackgroundTabDisposition[] = "newBackgroun
- // Pref key for omnibox.setDefaultSuggestion.
- const char kOmniboxDefaultSuggestion[] = "omnibox_default_suggestion";
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- static const int kOmniboxIconPaddingLeft = 2;
- static const int kOmniboxIconPaddingRight = 2;
- #elif defined(OS_MACOSX)
diff --git a/chromium-new/patches/patch-chrome_browser_extensions_bookmark_app_helper_cc b/chromium-new/patches/patch-chrome_browser_extensions_bookmark_app_helper_cc
deleted file mode 100644
index bf0959a..0000000
--- a/chromium-new/patches/patch-chrome_browser_extensions_bookmark_app_helper_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_browser_extensions_bookmark_app_helper_cc,v 1.7 2016/01/23 18:49:31 robert Exp $
---- chrome/browser/extensions/bookmark_app_helper.cc.orig.port	Wed Jan 20 21:01:19 2016
-+++ chrome/browser/extensions/bookmark_app_helper.cc	Fri Jan 22 19:58:58 2016
-@@ -697,7 +697,7 @@ void BookmarkAppHelper::FinishInstallation(const Exten
-   chrome::HostDesktopType desktop = browser->host_desktop_type();
-   if (desktop != chrome::HOST_DESKTOP_TYPE_ASH) {
-     web_app::ShortcutLocations creation_locations;
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-     creation_locations.on_desktop = true;
- #elif defined(OS_WIN)
-     // Create the shortcut on the desktop if it's not possible to pin to the
diff --git a/chromium-new/patches/patch-chrome_browser_extensions_browser__context__keyed__service__factories.cc b/chromium-new/patches/patch-chrome_browser_extensions_browser__context__keyed__service__factories.cc
new file mode 100644
index 0000000..08d7ad9
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_extensions_browser__context__keyed__service__factories.cc
@@ -0,0 +1,22 @@
+$NetBSD$
+
+--- chrome/browser/extensions/browser_context_keyed_service_factories.cc.orig	2016-06-24 01:02:12.000000000 +0000
++++ chrome/browser/extensions/browser_context_keyed_service_factories.cc
+@@ -63,7 +63,7 @@
+ #include "chrome/browser/chromeos/extensions/media_player_api.h"
+ #include "chrome/browser/extensions/api/input_ime/input_ime_api.h"
+ #include "chrome/browser/extensions/api/log_private/log_private_api.h"
+-#elif defined(OS_LINUX) || defined(OS_WIN)
++#elif defined(OS_LINUX) || defined(OS_WIN) || defined(OS_BSD)
+ #include "chrome/browser/extensions/api/input_ime/input_ime_api.h"
+ #endif
+ 
+@@ -104,7 +104,7 @@ void EnsureBrowserContextKeyedServiceFac
+ #if defined(OS_CHROMEOS)
+   extensions::InputImeAPI::GetFactoryInstance();
+   extensions::InputMethodAPI::GetFactoryInstance();
+-#elif defined(OS_LINUX) || defined(OS_WIN)
++#elif defined(OS_LINUX) || defined(OS_WIN) || defined(OS_BSD)
+   extensions::InputImeAPI::GetFactoryInstance();
+ #endif
+   extensions::LanguageSettingsPrivateDelegateFactory::GetInstance();
diff --git a/chromium-new/patches/patch-chrome_browser_extensions_external__provider__impl.cc b/chromium-new/patches/patch-chrome_browser_extensions_external__provider__impl.cc
new file mode 100644
index 0000000..1026629
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_extensions_external__provider__impl.cc
@@ -0,0 +1,22 @@
+$NetBSD$
+
+--- chrome/browser/extensions/external_provider_impl.cc.orig	2016-06-24 01:02:12.000000000 +0000
++++ chrome/browser/extensions/external_provider_impl.cc
+@@ -646,7 +646,7 @@ void ExternalProviderImpl::CreateExterna
+                                  Manifest::EXTERNAL_PREF_DOWNLOAD,
+                                  oem_extension_creation_flags)));
+   }
+-#elif defined(OS_LINUX)
++#elif defined(OS_LINUX) || defined(OS_BSD)
+   if (!profile->IsLegacySupervised()) {
+     provider_list->push_back(
+         linked_ptr<ExternalProviderInterface>(
+@@ -688,7 +688,7 @@ void ExternalProviderImpl::CreateExterna
+                 bundled_extension_creation_flags)));
+ 
+     // Define a per-user source of external extensions.
+-#if defined(OS_MACOSX) || (defined(OS_LINUX) && defined(CHROMIUM_BUILD))
++#if defined(OS_MACOSX) || ((defined(OS_LINUX) || defined(OS_BSD)) && defined(CHROMIUM_BUILD))
+     provider_list->push_back(
+         linked_ptr<ExternalProviderInterface>(
+             new ExternalProviderImpl(
diff --git a/chromium-new/patches/patch-chrome_browser_extensions_window__open__apitest.cc b/chromium-new/patches/patch-chrome_browser_extensions_window__open__apitest.cc
new file mode 100644
index 0000000..45d1144
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_extensions_window__open__apitest.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- chrome/browser/extensions/window_open_apitest.cc.orig	2016-06-24 01:02:12.000000000 +0000
++++ chrome/browser/extensions/window_open_apitest.cc
+@@ -294,7 +294,7 @@ IN_PROC_BROWSER_TEST_F(WindowOpenPanelDi
+       << message_;
+ }
+ 
+-#if defined(USE_ASH_PANELS) || defined(OS_LINUX)
++#if defined(USE_ASH_PANELS) || defined(OS_LINUX) || defined(OS_FREEBSD)
+ // On Ash, this currently fails because we're currently opening new panel
+ // windows as popup windows instead.
+ // We're also failing on Linux-aura due to the panel is not opened in the
diff --git a/chromium-new/patches/patch-chrome_browser_first_run_first_run_internal_posix_cc b/chromium-new/patches/patch-chrome_browser_first_run_first_run_internal_posix_cc
deleted file mode 100644
index 4b82b20..0000000
--- a/chromium-new/patches/patch-chrome_browser_first_run_first_run_internal_posix_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_browser_first_run_first_run_internal_posix_cc,v 1.1 2014/07/20 17:22:33 robert Exp $
---- chrome/browser/first_run/first_run_internal_posix.cc.orig.port	Sat Jul 19 00:27:56 2014
-+++ chrome/browser/first_run/first_run_internal_posix.cc	Sat Jul 19 00:28:02 2014
-@@ -22,7 +22,7 @@ namespace first_run {
- namespace internal {
- 
- void DoPostImportPlatformSpecificTasks(Profile* profile) {
--#if !defined(OS_CHROMEOS)
-+#if !defined(OS_CHROMEOS) && !defined(OS_BSD)
-   base::FilePath local_state_path;
-   PathService::Get(chrome::FILE_LOCAL_STATE, &local_state_path);
-   bool local_state_file_exists = base::PathExists(local_state_path);
diff --git a/chromium-new/patches/patch-chrome_browser_gpu_gl__string__manager.cc b/chromium-new/patches/patch-chrome_browser_gpu_gl__string__manager.cc
new file mode 100644
index 0000000..8a2a036
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_gpu_gl__string__manager.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- chrome/browser/gpu/gl_string_manager.cc.orig	2016-06-24 01:02:12.000000000 +0000
++++ chrome/browser/gpu/gl_string_manager.cc
+@@ -28,7 +28,7 @@ GLStringManager::~GLStringManager() {
+ 
+ void GLStringManager::Initialize() {
+   // On MacOSX or Windows, preliminary GPUInfo is enough.
+-#if defined(OS_LINUX)
++#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID)
+   // We never remove this observer from GpuDataManager.
+   content::GpuDataManager::GetInstance()->AddObserver(this);
+ 
diff --git a/chromium-new/patches/patch-chrome_browser_gpu_gl_string_manager_cc b/chromium-new/patches/patch-chrome_browser_gpu_gl_string_manager_cc
deleted file mode 100644
index 2edd6c8..0000000
--- a/chromium-new/patches/patch-chrome_browser_gpu_gl_string_manager_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_browser_gpu_gl_string_manager_cc,v 1.1 2013/10/29 06:51:34 robert Exp $
---- chrome/browser/gpu/gl_string_manager.cc.orig.port	Sun Oct 20 17:01:50 2013
-+++ chrome/browser/gpu/gl_string_manager.cc	Sun Oct 20 17:02:02 2013
-@@ -25,7 +25,7 @@ GLStringManager::~GLStringManager() {
- 
- void GLStringManager::Initialize() {
-   // On MacOSX or Windows, preliminary GPUInfo is enough.
--#if defined(OS_LINUX)
-+#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID)
-   // We never remove this observer from GpuDataManager.
-   content::GpuDataManager::GetInstance()->AddObserver(this);
- 
diff --git a/chromium-new/patches/patch-chrome_browser_gpu_gpu__feature__checker.cc b/chromium-new/patches/patch-chrome_browser_gpu_gpu__feature__checker.cc
new file mode 100644
index 0000000..cbe2a1c
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_gpu_gpu__feature__checker.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- chrome/browser/gpu/gpu_feature_checker.cc.orig	2016-06-24 01:02:12.000000000 +0000
++++ chrome/browser/gpu/gpu_feature_checker.cc
+@@ -34,7 +34,7 @@ void GPUFeatureChecker::CheckGPUFeatureA
+   CHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
+ 
+   bool finalized = true;
+-#if defined(OS_LINUX)
++#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID)
+   // On Windows and Mac, so far we can always make the final WebGL blacklisting
+   // decision based on partial GPU info; on Linux, we need to launch the GPU
+   // process to collect full GPU info and make the final decision.
diff --git a/chromium-new/patches/patch-chrome_browser_gpu_gpu_feature_checker_cc b/chromium-new/patches/patch-chrome_browser_gpu_gpu_feature_checker_cc
deleted file mode 100644
index 52434d7..0000000
--- a/chromium-new/patches/patch-chrome_browser_gpu_gpu_feature_checker_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_browser_gpu_gpu_feature_checker_cc,v 1.1 2013/10/29 06:51:34 robert Exp $
---- chrome/browser/gpu/gpu_feature_checker.cc.orig.port	Sun Oct 20 17:02:12 2013
-+++ chrome/browser/gpu/gpu_feature_checker.cc	Sun Oct 20 17:02:21 2013
-@@ -33,7 +33,7 @@ void GPUFeatureChecker::CheckGPUFeatureAvailability() 
-   CHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
- 
-   bool finalized = true;
--#if defined(OS_LINUX)
-+#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID)
-   // On Windows and Mac, so far we can always make the final WebGL blacklisting
-   // decision based on partial GPU info; on Linux, we need to launch the GPU
-   // process to collect full GPU info and make the final decision.
diff --git a/chromium-new/patches/patch-chrome_browser_interstitials_chrome__controller__client.cc b/chromium-new/patches/patch-chrome_browser_interstitials_chrome__controller__client.cc
new file mode 100644
index 0000000..65d741f
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_interstitials_chrome__controller__client.cc
@@ -0,0 +1,22 @@
+$NetBSD$
+
+--- chrome/browser/interstitials/chrome_controller_client.cc.orig	2016-06-24 01:02:12.000000000 +0000
++++ chrome/browser/interstitials/chrome_controller_client.cc
+@@ -55,7 +55,7 @@ void LaunchDateAndTimeSettingsOnFile() {
+   chrome::ShowSettingsSubPageForProfile(ProfileManager::GetActiveUserProfile(),
+                                         sub_page);
+ 
+-#elif defined(OS_LINUX)
++#elif defined(OS_LINUX) || defined(OS_BSD)
+   struct ClockCommand {
+     const char* pathname;
+     const char* argument;
+@@ -138,7 +138,7 @@ void ChromeControllerClient::set_interst
+ 
+ bool ChromeControllerClient::CanLaunchDateAndTimeSettings() {
+ #if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(OS_LINUX) || \
+-    defined(OS_MACOSX) || defined(OS_WIN)
++    defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_BSD)
+   return true;
+ #else
+   return false;
diff --git a/chromium-new/patches/patch-chrome_browser_media__galleries_fileapi_mtp__device__map__service.cc b/chromium-new/patches/patch-chrome_browser_media__galleries_fileapi_mtp__device__map__service.cc
new file mode 100644
index 0000000..69ef2b7
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_media__galleries_fileapi_mtp__device__map__service.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+--- chrome/browser/media_galleries/fileapi/mtp_device_map_service.cc.orig	2016-06-24 01:02:12.000000000 +0000
++++ chrome/browser/media_galleries/fileapi/mtp_device_map_service.cc
+@@ -37,10 +37,12 @@ void MTPDeviceMapService::RegisterMTPFil
+     // Note that this initializes the delegate asynchronously, but since
+     // the delegate will only be used from the IO thread, it is guaranteed
+     // to be created before use of it expects it to be there.
++#if !defined(OS_FREEBSD) && !defined(OS_NETBSD)
+     CreateMTPDeviceAsyncDelegate(
+         device_location, read_only,
+         base::Bind(&MTPDeviceMapService::AddAsyncDelegate,
+                    base::Unretained(this), device_location, read_only));
++#endif
+     mtp_device_usage_map_[key] = 0;
+   }
+ 
diff --git a/chromium-new/patches/patch-chrome_browser_media__galleries_media__file__system__registry.cc b/chromium-new/patches/patch-chrome_browser_media__galleries_media__file__system__registry.cc
new file mode 100644
index 0000000..68ecb18
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_media__galleries_media__file__system__registry.cc
@@ -0,0 +1,16 @@
+$NetBSD$
+
+--- chrome/browser/media_galleries/media_file_system_registry.cc.orig	2016-06-24 01:02:12.000000000 +0000
++++ chrome/browser/media_galleries/media_file_system_registry.cc
+@@ -757,7 +757,10 @@ class MediaFileSystemRegistry::MediaFile
+ // Constructor in 'private' section because depends on private class definition.
+ MediaFileSystemRegistry::MediaFileSystemRegistry()
+     : file_system_context_(new MediaFileSystemContextImpl) {
+-  StorageMonitor::GetInstance()->AddObserver(this);
++  // This conditional is needed for shutdown.  Destructors
++  // try to get the media file system registry.
++  if (StorageMonitor::GetInstance())
++    StorageMonitor::GetInstance()->AddObserver(this);
+ }
+ 
+ MediaFileSystemRegistry::~MediaFileSystemRegistry() {
diff --git a/chromium-new/patches/patch-chrome_browser_media_galleries_fileapi_mtp_device_map_service_cc b/chromium-new/patches/patch-chrome_browser_media_galleries_fileapi_mtp_device_map_service_cc
deleted file mode 100644
index 51767a9..0000000
--- a/chromium-new/patches/patch-chrome_browser_media_galleries_fileapi_mtp_device_map_service_cc
+++ /dev/null
@@ -1,16 +0,0 @@
-$OpenBSD: patch-chrome_browser_media_galleries_fileapi_mtp_device_map_service_cc,v 1.2 2015/05/24 15:51:53 robert Exp $
---- chrome/browser/media_galleries/fileapi/mtp_device_map_service.cc.orig.port	Wed May 20 10:03:54 2015
-+++ chrome/browser/media_galleries/fileapi/mtp_device_map_service.cc	Wed May 20 10:04:12 2015
-@@ -37,10 +37,12 @@ void MTPDeviceMapService::RegisterMTPFileSystem(
-     // Note that this initializes the delegate asynchronously, but since
-     // the delegate will only be used from the IO thread, it is guaranteed
-     // to be created before use of it expects it to be there.
-+#if !defined(OS_BSD)
-     CreateMTPDeviceAsyncDelegate(
-         device_location, read_only,
-         base::Bind(&MTPDeviceMapService::AddAsyncDelegate,
-                    base::Unretained(this), device_location, read_only));
-+#endif
-     mtp_device_usage_map_[key] = 0;
-   }
- 
diff --git a/chromium-new/patches/patch-chrome_browser_media_galleries_media_file_system_registry_cc b/chromium-new/patches/patch-chrome_browser_media_galleries_media_file_system_registry_cc
deleted file mode 100644
index 4940229..0000000
--- a/chromium-new/patches/patch-chrome_browser_media_galleries_media_file_system_registry_cc
+++ /dev/null
@@ -1,17 +0,0 @@
-$OpenBSD: patch-chrome_browser_media_galleries_media_file_system_registry_cc,v 1.13 2015/09/05 16:06:50 robert Exp $
---- chrome/browser/media_galleries/media_file_system_registry.cc.orig.port	Sat Aug 22 21:01:52 2015
-+++ chrome/browser/media_galleries/media_file_system_registry.cc	Wed Sep  2 07:31:55 2015
-@@ -764,7 +764,12 @@ class MediaFileSystemRegistry::MediaFileSystemContextI
- // Constructor in 'private' section because depends on private class definition.
- MediaFileSystemRegistry::MediaFileSystemRegistry()
-     : file_system_context_(new MediaFileSystemContextImpl) {
--  StorageMonitor::GetInstance()->AddObserver(this);
-+  /*
-+   * This conditional is needed for shutdown.  Destructors
-+   * try to get the media file system registry.
-+   */
-+  if (StorageMonitor::GetInstance())
-+    StorageMonitor::GetInstance()->AddObserver(this);
- }
- 
- MediaFileSystemRegistry::~MediaFileSystemRegistry() {
diff --git a/chromium-new/patches/patch-chrome_browser_media_galleries_media_folder_finder_cc b/chromium-new/patches/patch-chrome_browser_media_galleries_media_folder_finder_cc
deleted file mode 100644
index 945e02e..0000000
--- a/chromium-new/patches/patch-chrome_browser_media_galleries_media_folder_finder_cc
+++ /dev/null
@@ -1,16 +0,0 @@
-$OpenBSD: patch-chrome_browser_media_galleries_media_folder_finder_cc,v 1.2 2015/05/24 15:51:53 robert Exp $
---- chrome/browser/media_galleries/media_folder_finder.cc.orig.port	Thu May 14 00:23:03 2015
-+++ chrome/browser/media_galleries/media_folder_finder.cc	Sat May 23 18:32:06 2015
-@@ -50,10 +50,10 @@ const int kPrunedPaths[] = {
-   chrome::DIR_USER_APPLICATIONS,
-   chrome::DIR_USER_LIBRARY,
- #endif
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   base::DIR_CACHE,
- #endif
--#if defined(OS_WIN) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD)
-   base::DIR_TEMP,
- #endif
- };
diff --git a/chromium-new/patches/patch-chrome_browser_media_webrtc__log__uploader.cc b/chromium-new/patches/patch-chrome_browser_media_webrtc__log__uploader.cc
new file mode 100644
index 0000000..fecef2c
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_media_webrtc__log__uploader.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- chrome/browser/media/webrtc_log_uploader.cc.orig	2016-06-24 01:02:12.000000000 +0000
++++ chrome/browser/media/webrtc_log_uploader.cc
+@@ -344,6 +344,8 @@ void WebRtcLogUploader::SetupMultipart(
+   const char product[] = "Chrome_Android";
+ #elif defined(OS_CHROMEOS)
+   const char product[] = "Chrome_ChromeOS";
++#elif defined(OS_FREEBSD)
++  const char product[] = "Chrome_FreeBSD";
+ #else
+ #error Platform not supported.
+ #endif
diff --git a/chromium-new/patches/patch-chrome_browser_memory__details.cc b/chromium-new/patches/patch-chrome_browser_memory__details.cc
new file mode 100644
index 0000000..e37acdd
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_memory__details.cc
@@ -0,0 +1,22 @@
+$NetBSD$
+
+--- chrome/browser/memory_details.cc.orig	2016-06-24 01:02:12.000000000 +0000
++++ chrome/browser/memory_details.cc
+@@ -32,7 +32,7 @@
+ #include "content/public/common/content_constants.h"
+ #include "ui/base/l10n/l10n_util.h"
+ 
+-#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID)
++#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) && !defined(OS_BSD)
+ #include "content/public/browser/zygote_host_linux.h"
+ #endif
+ 
+@@ -334,7 +334,7 @@ void MemoryDetails::CollectChildInfoOnUI
+       process.titles.push_back(title);
+     }
+ 
+-#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID)
++#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) && !defined(OS_BSD)
+     if (content::ZygoteHost::GetInstance()->IsZygotePid(process.pid)) {
+       process.process_type = content::PROCESS_TYPE_ZYGOTE;
+     }
diff --git a/chromium-new/patches/patch-chrome_browser_memory_details_cc b/chromium-new/patches/patch-chrome_browser_memory_details_cc
deleted file mode 100644
index 8023df9..0000000
--- a/chromium-new/patches/patch-chrome_browser_memory_details_cc
+++ /dev/null
@@ -1,30 +0,0 @@
-$OpenBSD: patch-chrome_browser_memory_details_cc,v 1.29 2016/01/23 18:49:31 robert Exp $
---- chrome/browser/memory_details.cc.orig.port	Wed Jan 20 21:01:19 2016
-+++ chrome/browser/memory_details.cc	Fri Jan 22 19:58:58 2016
-@@ -31,7 +31,7 @@
- #include "content/public/common/content_constants.h"
- #include "ui/base/l10n/l10n_util.h"
- 
--#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID)
-+#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) && !defined(OS_BSD)
- #include "content/public/browser/zygote_host_linux.h"
- #endif
- 
-@@ -211,7 +211,7 @@ void MemoryDetails::CollectChildInfoOnIOThread(Collect
- void MemoryDetails::CollectChildInfoOnUIThread() {
-   DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
- 
--#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID)
-+#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) && !defined(OS_BSD)
-   const pid_t zygote_pid = content::ZygoteHost::GetInstance()->GetPid();
- #endif
- 
-@@ -365,7 +365,7 @@ void MemoryDetails::CollectChildInfoOnUIThread() {
-       }
-     }
- 
--#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID)
-+#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) && !defined(OS_BSD)
-     if (process.pid == zygote_pid) {
-       process.process_type = content::PROCESS_TYPE_ZYGOTE;
-     }
diff --git a/chromium-new/patches/patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.cc b/chromium-new/patches/patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.cc
new file mode 100644
index 0000000..2b3e6f2
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.cc
@@ -0,0 +1,20 @@
+$NetBSD$
+
+--- chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc.orig	2016-06-24 01:02:12.000000000 +0000
++++ chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc
+@@ -38,12 +38,14 @@
+ 
+ #if defined(OS_LINUX) && !defined(OS_CHROMEOS)
+ #include <gnu/libc-version.h>
++#endif
+ 
++#if (defined(OS_LINUX) && !defined(OS_CHROMEOS)) || defined(OS_BSD)
+ #include "base/version.h"
+ #if defined(USE_X11)
+ #include "ui/base/x/x11_util.h"
+ #endif
+-#endif  // defined(OS_LINUX) && !defined(OS_CHROMEOS)
++#endif
+ 
+ #if defined(USE_OZONE) || defined(USE_X11)
+ #include "ui/events/devices/device_data_manager.h"
diff --git a/chromium-new/patches/patch-chrome_browser_metrics_chrome_browser_main_extra_parts_metrics_cc b/chromium-new/patches/patch-chrome_browser_metrics_chrome_browser_main_extra_parts_metrics_cc
deleted file mode 100644
index 6e77bb3..0000000
--- a/chromium-new/patches/patch-chrome_browser_metrics_chrome_browser_main_extra_parts_metrics_cc
+++ /dev/null
@@ -1,15 +0,0 @@
-$OpenBSD: patch-chrome_browser_metrics_chrome_browser_main_extra_parts_metrics_cc,v 1.3 2015/07/23 13:44:04 robert Exp $
---- chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc.orig.port	Wed Jul 15 22:29:58 2015
-+++ chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc	Wed Jul 22 08:37:29 2015
-@@ -30,8 +30,10 @@
- #include <cpu-features.h>
- #endif  // defined(OS_ANDROID) && defined(__arm__)
- 
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_BSD) || defined(OS_LINUX)) && !defined(OS_CHROMEOS)
-+#if !defined(OS_BSD)
- #include <gnu/libc-version.h>
-+#endif
- 
- #include "base/version.h"
- #if defined(USE_X11)
diff --git a/chromium-new/patches/patch-chrome_browser_net_async_dns_field_trial_cc b/chromium-new/patches/patch-chrome_browser_net_async_dns_field_trial_cc
deleted file mode 100644
index f527368..0000000
--- a/chromium-new/patches/patch-chrome_browser_net_async_dns_field_trial_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_browser_net_async_dns_field_trial_cc,v 1.3 2015/05/24 15:51:53 robert Exp $
---- chrome/browser/net/async_dns_field_trial.cc.orig.port	Wed May 20 10:04:19 2015
-+++ chrome/browser/net/async_dns_field_trial.cc	Wed May 20 10:08:14 2015
-@@ -67,7 +67,7 @@ bool ConfigureAsyncDnsFieldTrial() {
-   return false;
- #endif
- 
--#if defined(OS_CHROMEOS) || defined(OS_MACOSX)
-+#if defined(OS_CHROMEOS) || defined(OS_MACOSX) || defined(OS_BSD)
-   const bool kDefault = true;
- #else
-   const bool kDefault = false;
diff --git a/chromium-new/patches/patch-chrome_browser_notifications_message__center__notification__manager.cc b/chromium-new/patches/patch-chrome_browser_notifications_message__center__notification__manager.cc
new file mode 100644
index 0000000..9b405a7
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_notifications_message__center__notification__manager.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- chrome/browser/notifications/message_center_notification_manager.cc.orig	2016-06-24 01:02:12.000000000 +0000
++++ chrome/browser/notifications/message_center_notification_manager.cc
+@@ -75,7 +75,7 @@ MessageCenterNotificationManager::Messag
+       new FullscreenNotificationBlocker(message_center)));
+ 
+ #if defined(OS_WIN) || defined(OS_MACOSX) \
+-  || (defined(OS_LINUX) && !defined(OS_CHROMEOS))
++  || (defined(OS_LINUX) && !defined(OS_CHROMEOS)) || defined(OS_BSD)
+   // On Windows, Linux and Mac, the notification manager owns the tray icon and
+   // views.Other platforms have global ownership and Create will return NULL.
+   tray_.reset(message_center::CreateMessageCenterTray());
diff --git a/chromium-new/patches/patch-chrome_browser_notifications_message_center_notification_manager_cc b/chromium-new/patches/patch-chrome_browser_notifications_message_center_notification_manager_cc
deleted file mode 100644
index bb776bc..0000000
--- a/chromium-new/patches/patch-chrome_browser_notifications_message_center_notification_manager_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_browser_notifications_message_center_notification_manager_cc,v 1.6 2016/01/23 18:49:31 robert Exp $
---- chrome/browser/notifications/message_center_notification_manager.cc.orig.port	Wed Jan 20 21:01:19 2016
-+++ chrome/browser/notifications/message_center_notification_manager.cc	Fri Jan 22 19:58:58 2016
-@@ -62,7 +62,7 @@ MessageCenterNotificationManager::MessageCenterNotific
-   blockers_.push_back(make_scoped_ptr(
-       new FullscreenNotificationBlocker(message_center)));
- 
--#if defined(OS_WIN) || defined(OS_MACOSX) \
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_BSD) \
-   || (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-   // On Windows, Linux and Mac, the notification manager owns the tray icon and
-   // views.Other platforms have global ownership and Create will return NULL.
diff --git a/chromium-new/patches/patch-chrome_browser_password__manager_chrome__password__manager__client.cc b/chromium-new/patches/patch-chrome_browser_password__manager_chrome__password__manager__client.cc
new file mode 100644
index 0000000..e9c67cf
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_password__manager_chrome__password__manager__client.cc
@@ -0,0 +1,16 @@
+$NetBSD$
+
+--- chrome/browser/password_manager/chrome_password_manager_client.cc.orig	2016-06-24 01:02:12.000000000 +0000
++++ chrome/browser/password_manager/chrome_password_manager_client.cc
+@@ -55,7 +55,11 @@
+ #include "content/public/browser/web_contents.h"
+ #include "google_apis/gaia/gaia_urls.h"
+ #include "net/base/url_util.h"
++#if defined(OS_BSD)
++#include <re2/re2.h>
++#else
+ #include "third_party/re2/src/re2/re2.h"
++#endif
+ 
+ #if defined(OS_MACOSX) || BUILDFLAG(ANDROID_JAVA_UI)
+ #include "chrome/browser/password_manager/save_password_infobar_delegate.h"
diff --git a/chromium-new/patches/patch-chrome_browser_platform_util_linux_cc b/chromium-new/patches/patch-chrome_browser_platform_util_linux_cc
deleted file mode 100644
index a559da4..0000000
--- a/chromium-new/patches/patch-chrome_browser_platform_util_linux_cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$OpenBSD: patch-chrome_browser_platform_util_linux_cc,v 1.2 2015/04/27 16:38:25 robert Exp $
---- chrome/browser/platform_util_linux.cc.orig.port	Wed Apr 15 09:25:47 2015
-+++ chrome/browser/platform_util_linux.cc	Wed Apr 15 09:25:58 2015
-@@ -28,7 +28,9 @@ void XDGUtil(const std::string& util,
- 
-   base::LaunchOptions options;
-   options.current_directory = working_directory;
-+#if !defined(OS_BSD)
-   options.allow_new_privs = true;
-+#endif
-   // xdg-open can fall back on mailcap which eventually might plumb through
-   // to a command that needs a terminal.  Set the environment variable telling
-   // it that we definitely don't have a terminal available and that it should
diff --git a/chromium-new/patches/patch-chrome_browser_plugins_plugins__resource__service.cc b/chromium-new/patches/patch-chrome_browser_plugins_plugins__resource__service.cc
new file mode 100644
index 0000000..bfcc78a
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_plugins_plugins__resource__service.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- chrome/browser/plugins/plugins_resource_service.cc.orig	2016-06-24 01:02:12.000000000 +0000
++++ chrome/browser/plugins/plugins_resource_service.cc
+@@ -31,7 +31,7 @@ GURL GetPluginsServerURL() {
+   std::string filename;
+ #if defined(OS_WIN)
+   filename = "plugins_win.json";
+-#elif defined(OS_LINUX)
++#elif defined(OS_LINUX) || defined(OS_BSD)
+   filename = "plugins_linux.json";
+ #elif defined(OS_MACOSX)
+   filename = "plugins_mac.json";
diff --git a/chromium-new/patches/patch-chrome_browser_policy_policy__prefs__browsertest.cc b/chromium-new/patches/patch-chrome_browser_policy_policy__prefs__browsertest.cc
new file mode 100644
index 0000000..56230ec
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_policy_policy__prefs__browsertest.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- chrome/browser/policy/policy_prefs_browsertest.cc.orig	2016-06-24 01:02:13.000000000 +0000
++++ chrome/browser/policy/policy_prefs_browsertest.cc
+@@ -174,6 +174,8 @@ class PolicyTestCase {
+     const std::string os("chromeos");
+ #elif defined(OS_LINUX)
+     const std::string os("linux");
++#elif defined(OS_FREEBSD)
++    const std::string os("freebsd");
+ #else
+ #error "Unknown platform"
+ #endif
diff --git a/chromium-new/patches/patch-chrome_browser_process__singleton__posix.cc b/chromium-new/patches/patch-chrome_browser_process__singleton__posix.cc
new file mode 100644
index 0000000..668b5c5
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_process__singleton__posix.cc
@@ -0,0 +1,36 @@
+$NetBSD$
+
+--- chrome/browser/process_singleton_posix.cc.orig	2016-06-24 01:02:13.000000000 +0000
++++ chrome/browser/process_singleton_posix.cc
+@@ -87,11 +87,11 @@
+ #include "net/base/network_interfaces.h"
+ #include "ui/base/l10n/l10n_util.h"
+ 
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_BSD)
+ #include "chrome/browser/ui/process_singleton_dialog_linux.h"
+ #endif
+ 
+-#if defined(TOOLKIT_VIEWS) && defined(OS_LINUX) && !defined(OS_CHROMEOS)
++#if defined(TOOLKIT_VIEWS) && (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ #include "ui/views/linux_ui/linux_ui.h"
+ #endif
+ 
+@@ -315,7 +315,7 @@ bool DisplayProfileInUseError(const base
+   if (g_disable_prompt)
+     return false;
+ 
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_BSD)
+   base::string16 relaunch_button_text = l10n_util::GetStringUTF16(
+       IDS_PROFILE_IN_USE_LINUX_RELAUNCH);
+   return ShowProcessSingletonDialog(error, relaunch_button_text);
+@@ -869,7 +869,7 @@ ProcessSingleton::NotifyResult ProcessSi
+     // The other process is shutting down, it's safe to start a new process.
+     return PROCESS_NONE;
+   } else if (strncmp(buf, kACKToken, arraysize(kACKToken) - 1) == 0) {
+-#if defined(TOOLKIT_VIEWS) && defined(OS_LINUX) && !defined(OS_CHROMEOS)
++#if defined(TOOLKIT_VIEWS) && (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+     // Likely NULL in unit tests.
+     views::LinuxUI* linux_ui = views::LinuxUI::instance();
+     if (linux_ui)
diff --git a/chromium-new/patches/patch-chrome_browser_process_singleton_posix_cc b/chromium-new/patches/patch-chrome_browser_process_singleton_posix_cc
deleted file mode 100644
index 213f975..0000000
--- a/chromium-new/patches/patch-chrome_browser_process_singleton_posix_cc
+++ /dev/null
@@ -1,35 +0,0 @@
-$OpenBSD: patch-chrome_browser_process_singleton_posix_cc,v 1.5 2015/12/05 16:13:32 robert Exp $
---- chrome/browser/process_singleton_posix.cc.orig.port	Fri Nov 13 12:04:14 2015
-+++ chrome/browser/process_singleton_posix.cc	Wed Dec  2 08:18:32 2015
-@@ -84,11 +84,11 @@
- #include "net/base/net_util.h"
- #include "ui/base/l10n/l10n_util.h"
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- #include "chrome/browser/ui/process_singleton_dialog_linux.h"
- #endif
- 
--#if defined(TOOLKIT_VIEWS) && defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if defined(TOOLKIT_VIEWS) && (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- #include "ui/views/linux_ui/linux_ui.h"
- #endif
- 
-@@ -313,7 +313,7 @@ bool DisplayProfileInUseError(const base::FilePath& lo
-   if (g_disable_prompt)
-     return false;
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   base::string16 relaunch_button_text = l10n_util::GetStringUTF16(
-       IDS_PROFILE_IN_USE_LINUX_RELAUNCH);
-   return ShowProcessSingletonDialog(error, relaunch_button_text);
-@@ -867,7 +867,7 @@ ProcessSingleton::NotifyResult ProcessSingleton::Notif
-     // The other process is shutting down, it's safe to start a new process.
-     return PROCESS_NONE;
-   } else if (strncmp(buf, kACKToken, arraysize(kACKToken) - 1) == 0) {
--#if defined(TOOLKIT_VIEWS) && defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if defined(TOOLKIT_VIEWS) && (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
-     // Likely NULL in unit tests.
-     views::LinuxUI* linux_ui = views::LinuxUI::instance();
-     if (linux_ui)
diff --git a/chromium-new/patches/patch-chrome_browser_renderer__preferences__util.cc b/chromium-new/patches/patch-chrome_browser_renderer__preferences__util.cc
new file mode 100644
index 0000000..269a56c
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_renderer__preferences__util.cc
@@ -0,0 +1,40 @@
+$NetBSD$
+
+--- chrome/browser/renderer_preferences_util.cc.orig	2016-06-24 01:02:13.000000000 +0000
++++ chrome/browser/renderer_preferences_util.cc
+@@ -15,7 +15,7 @@
+ #include "content/public/common/webrtc_ip_handling_policy.h"
+ #include "third_party/skia/include/core/SkColor.h"
+ 
+-#if defined(OS_LINUX) || defined(OS_ANDROID)
++#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
+ #include "ui/gfx/font_render_params.h"
+ #endif
+ 
+@@ -27,7 +27,7 @@
+ #include "ui/views/controls/textfield/textfield.h"
+ #endif
+ 
+-#if defined(USE_AURA) && defined(OS_LINUX) && !defined(OS_CHROMEOS)
++#if defined(USE_AURA) && (defined(OS_BSD) || defined(OS_LINUX)) && !defined(OS_CHROMEOS)
+ #include "chrome/browser/themes/theme_service.h"
+ #include "chrome/browser/themes/theme_service_factory.h"
+ #include "ui/views/linux_ui/linux_ui.h"
+@@ -95,7 +95,7 @@ void UpdateFromSystemSettings(content::R
+   prefs->caret_blink_interval = views::Textfield::GetCaretBlinkMs() / 1000.0;
+ #endif
+ 
+-#if defined(USE_AURA) && defined(OS_LINUX) && !defined(OS_CHROMEOS)
++#if defined(USE_AURA) && (defined(OS_BSD) || defined(OS_LINUX)) && !defined(OS_CHROMEOS)
+   views::LinuxUI* linux_ui = views::LinuxUI::instance();
+   if (linux_ui) {
+     if (ThemeServiceFactory::GetForProfile(profile)->UsingSystemTheme()) {
+@@ -117,7 +117,7 @@ void UpdateFromSystemSettings(content::R
+   }
+ #endif
+ 
+-#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_WIN)
++#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_WIN) || defined(OS_BSD)
+   CR_DEFINE_STATIC_LOCAL(const gfx::FontRenderParams, params,
+       (gfx::GetFontRenderParams(gfx::FontRenderParamsQuery(), NULL)));
+   prefs->should_antialias_text = params.antialiasing;
diff --git a/chromium-new/patches/patch-chrome_browser_renderer_preferences_util_cc b/chromium-new/patches/patch-chrome_browser_renderer_preferences_util_cc
deleted file mode 100644
index f5a0fbc..0000000
--- a/chromium-new/patches/patch-chrome_browser_renderer_preferences_util_cc
+++ /dev/null
@@ -1,39 +0,0 @@
-$OpenBSD: patch-chrome_browser_renderer_preferences_util_cc,v 1.13 2016/01/23 18:49:31 robert Exp $
---- chrome/browser/renderer_preferences_util.cc.orig.port	Wed Jan 20 21:01:19 2016
-+++ chrome/browser/renderer_preferences_util.cc	Fri Jan 22 19:58:58 2016
-@@ -14,7 +14,7 @@
- #include "content/public/common/webrtc_ip_handling_policy.h"
- #include "third_party/skia/include/core/SkColor.h"
- 
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
- #include "ui/gfx/font_render_params.h"
- #endif
- 
-@@ -26,7 +26,7 @@
- #include "ui/views/controls/textfield/textfield.h"
- #endif
- 
--#if defined(USE_AURA) && defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if defined(USE_AURA) && (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- #include "chrome/browser/themes/theme_service.h"
- #include "chrome/browser/themes/theme_service_factory.h"
- #include "ui/views/linux_ui/linux_ui.h"
-@@ -94,7 +94,7 @@ void UpdateFromSystemSettings(content::RendererPrefere
-   prefs->caret_blink_interval = views::Textfield::GetCaretBlinkMs() / 1000.0;
- #endif
- 
--#if defined(USE_AURA) && defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if defined(USE_AURA) && (defined(OS_BSD) || defined(OS_LINUX)) && !defined(OS_CHROMEOS)
-   views::LinuxUI* linux_ui = views::LinuxUI::instance();
-   if (linux_ui) {
-     if (ThemeServiceFactory::GetForProfile(profile)->UsingSystemTheme()) {
-@@ -116,7 +116,7 @@ void UpdateFromSystemSettings(content::RendererPrefere
-   }
- #endif
- 
--#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_WIN)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_WIN) || defined(OS_BSD)
-   CR_DEFINE_STATIC_LOCAL(const gfx::FontRenderParams, params,
-       (gfx::GetFontRenderParams(gfx::FontRenderParamsQuery(), NULL)));
-   prefs->should_antialias_text = params.antialiasing;
diff --git a/chromium-new/patches/patch-chrome_browser_resources_plugin_metadata_plugins_linux_json b/chromium-new/patches/patch-chrome_browser_resources_plugin_metadata_plugins_linux_json
deleted file mode 100644
index 88593cb..0000000
--- a/chromium-new/patches/patch-chrome_browser_resources_plugin_metadata_plugins_linux_json
+++ /dev/null
@@ -1,32 +0,0 @@
-$OpenBSD: patch-chrome_browser_resources_plugin_metadata_plugins_linux_json,v 1.5 2016/01/23 18:49:31 robert Exp $
---- chrome/browser/resources/plugin_metadata/plugins_linux.json.orig.port	Fri Jan 22 22:02:41 2016
-+++ chrome/browser/resources/plugin_metadata/plugins_linux.json	Fri Jan 22 22:02:59 2016
-@@ -70,28 +70,6 @@
-     "displayurl": true,
-     "group_name_matcher": "Java*"
-   },
--  "adobe-flash-player": {
--    "mime_types": [
--      "application/futuresplash",
--      "application/x-shockwave-flash"
--    ],
--    "matching_mime_types": [
--      "application/futuresplash"
--    ],
--    "versions": [
--      {
--        "version": "20.0.0.267",
--        "status": "up_to_date",
--        "reference": "https://helpx.adobe.com/security/products/flash-player/apsb16-01.html";
--      }
--    ],
--    "lang": "en-US",
--    "name": "Adobe Flash Player",
--    "help_url": "https://support.google.com/chrome/?p=plugin_flash";,
--    "url": "https://support.google.com/chrome/answer/6258784";,
--    "displayurl": true,
--    "group_name_matcher": "*Shockwave Flash*"
--  },
-   "lightspark": {
-     "mime_types": [
-       "application/x-lightspark"
diff --git a/chromium-new/patches/patch-chrome_browser_safe__browsing_incident__reporting_incident__handler__util.cc b/chromium-new/patches/patch-chrome_browser_safe__browsing_incident__reporting_incident__handler__util.cc
new file mode 100644
index 0000000..e683736
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_safe__browsing_incident__reporting_incident__handler__util.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+--- chrome/browser/safe_browsing/incident_reporting/incident_handler_util.cc.orig	2016-06-24 01:02:13.000000000 +0000
++++ chrome/browser/safe_browsing/incident_reporting/incident_handler_util.cc
+@@ -8,7 +8,12 @@
+ 
+ #include "base/hash.h"
+ #include "base/logging.h"
++//XXX(rene) needs shim headers?
++#if defined(USE_SYSTEM_PROTOBUF)
++#include <google/protobuf/message_lite.h>
++#else
+ #include "third_party/protobuf/src/google/protobuf/message_lite.h"
++#endif
+ 
+ namespace safe_browsing {
+ 
diff --git a/chromium-new/patches/patch-chrome_browser_safe_browsing_incident_reporting_incident_reporting_service_cc b/chromium-new/patches/patch-chrome_browser_safe_browsing_incident_reporting_incident_reporting_service_cc
deleted file mode 100644
index 5c61194..0000000
--- a/chromium-new/patches/patch-chrome_browser_safe_browsing_incident_reporting_incident_reporting_service_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_browser_safe_browsing_incident_reporting_incident_reporting_service_cc,v 1.4 2016/01/23 18:49:31 robert Exp $
---- chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc.orig.port	Wed Jan 20 21:01:19 2016
-+++ chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc	Fri Jan 22 19:58:58 2016
-@@ -730,7 +730,7 @@ void IncidentReportingService::OnEnvironmentDataCollec
-   environment_collection_pending_ = false;
- 
- // CurrentProcessInfo::CreationTime() is missing on some platforms.
--#if defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_LINUX)
-+#if defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD)
-   base::TimeDelta uptime =
-       first_incident_time_ - base::CurrentProcessInfo::CreationTime();
-   environment_data->mutable_process()->set_uptime_msec(uptime.InMilliseconds());
diff --git a/chromium-new/patches/patch-chrome_browser_search_local__files__ntp__source.cc b/chromium-new/patches/patch-chrome_browser_search_local__files__ntp__source.cc
new file mode 100644
index 0000000..9f9dde0
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_search_local__files__ntp__source.cc
@@ -0,0 +1,18 @@
+$NetBSD$
+
+--- chrome/browser/search/local_files_ntp_source.cc.orig	2016-06-24 01:02:13.000000000 +0000
++++ chrome/browser/search/local_files_ntp_source.cc
+@@ -19,8 +19,13 @@
+ #include "chrome/common/url_constants.h"
+ #include "content/public/browser/browser_thread.h"
+ #include "content/public/browser/url_data_source.h"
++#if defined(OS_BSD)
++#include <re2/re2.h>
++#include <re2/stringpiece.h>
++#else
+ #include "third_party/re2/src/re2/re2.h"
+ #include "third_party/re2/src/re2/stringpiece.h"
++#endif
+ 
+ namespace {
+ 
diff --git a/chromium-new/patches/patch-chrome_browser_speech_tts_controller_impl_cc b/chromium-new/patches/patch-chrome_browser_speech_tts_controller_impl_cc
deleted file mode 100644
index 3dcfb05..0000000
--- a/chromium-new/patches/patch-chrome_browser_speech_tts_controller_impl_cc
+++ /dev/null
@@ -1,17 +0,0 @@
-$OpenBSD: patch-chrome_browser_speech_tts_controller_impl_cc,v 1.4 2015/07/23 13:44:04 robert Exp $
---- chrome/browser/speech/tts_controller_impl.cc.orig.port	Wed Jul 15 22:29:58 2015
-+++ chrome/browser/speech/tts_controller_impl.cc	Wed Jul 22 08:37:29 2015
-@@ -364,9 +364,13 @@ int TtsControllerImpl::QueueSize() {
- }
- 
- TtsPlatformImpl* TtsControllerImpl::GetPlatformImpl() {
-+#if defined(OS_BSD)
-+  return NULL;
-+#else
-   if (!platform_impl_)
-     platform_impl_ = TtsPlatformImpl::GetInstance();
-   return platform_impl_;
-+#endif
- }
- 
- int TtsControllerImpl::GetMatchingVoice(
diff --git a/chromium-new/patches/patch-chrome_browser_ssl_bad_clock_blocking_page_cc b/chromium-new/patches/patch-chrome_browser_ssl_bad_clock_blocking_page_cc
deleted file mode 100644
index b13f3cc..0000000
--- a/chromium-new/patches/patch-chrome_browser_ssl_bad_clock_blocking_page_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_browser_ssl_bad_clock_blocking_page_cc,v 1.2 2016/01/23 18:49:31 robert Exp $
---- chrome/browser/ssl/bad_clock_blocking_page.cc.orig.port	Wed Jan 20 21:01:19 2016
-+++ chrome/browser/ssl/bad_clock_blocking_page.cc	Fri Jan 22 19:58:58 2016
-@@ -95,7 +95,7 @@ void LaunchDateAndTimeSettings() {
-   // iOS does not have a way to launch the date and time settings.
-   NOTREACHED();
- 
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
-   struct ClockCommand {
-     const char* pathname;
-     const char* argument;
diff --git a/chromium-new/patches/patch-chrome_browser_sync_chrome__sync__client.cc b/chromium-new/patches/patch-chrome_browser_sync_chrome__sync__client.cc
new file mode 100644
index 0000000..c090f9d
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_sync_chrome__sync__client.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- chrome/browser/sync/chrome_sync_client.cc.orig	2016-06-24 01:02:13.000000000 +0000
++++ chrome/browser/sync/chrome_sync_client.cc
+@@ -577,7 +577,7 @@ void ChromeSyncClient::RegisterDesktopDa
+   }
+ #endif
+ 
+-#if defined(OS_LINUX) || defined(OS_WIN) || defined(OS_CHROMEOS)
++#if defined(OS_LINUX) || defined(OS_WIN) || defined(OS_CHROMEOS) || defined(OS_BSD)
+   // Dictionary sync is enabled by default.
+   if (!disabled_types.Has(syncer::DICTIONARY)) {
+     sync_service->RegisterDataTypeController(new UIDataTypeController(
diff --git a/chromium-new/patches/patch-chrome_browser_sync_profile_sync_components_factory_impl_cc b/chromium-new/patches/patch-chrome_browser_sync_profile_sync_components_factory_impl_cc
deleted file mode 100644
index 2cc1e4b..0000000
--- a/chromium-new/patches/patch-chrome_browser_sync_profile_sync_components_factory_impl_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_browser_sync_profile_sync_components_factory_impl_cc,v 1.17 2016/01/23 18:49:31 robert Exp $
---- chrome/browser/sync/profile_sync_components_factory_impl.cc.orig.port	Wed Jan 20 21:01:19 2016
-+++ chrome/browser/sync/profile_sync_components_factory_impl.cc	Fri Jan 22 19:58:58 2016
-@@ -360,7 +360,7 @@ void ProfileSyncComponentsFactoryImpl::RegisterDesktop
-   }
- #endif
- 
--#if defined(OS_LINUX) || defined(OS_WIN) || defined(OS_CHROMEOS)
-+#if defined(OS_LINUX) || defined(OS_WIN) || defined(OS_CHROMEOS) || defined(OS_BSD)
-   // Dictionary sync is enabled by default.
-   if (!disabled_types.Has(syncer::DICTIONARY)) {
-     sync_service->RegisterDataTypeController(new UIDataTypeController(
diff --git a/chromium-new/patches/patch-chrome_browser_task_manager_task_manager_cc b/chromium-new/patches/patch-chrome_browser_task_manager_task_manager_cc
deleted file mode 100644
index 7561127..0000000
--- a/chromium-new/patches/patch-chrome_browser_task_manager_task_manager_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_browser_task_manager_task_manager_cc,v 1.3 2016/01/23 18:49:31 robert Exp $
---- chrome/browser/task_manager/task_manager.cc.orig.port	Wed Jan 20 21:01:19 2016
-+++ chrome/browser/task_manager/task_manager.cc	Fri Jan 22 19:58:58 2016
-@@ -1203,7 +1203,7 @@ void TaskManagerModel::Refresh() {
-       values.is_cpu_usage_valid = true;
-       values.cpu_usage = metrics_iter->second->GetCPUUsage();
-     }
--#if defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
-     // TODO(port): Implement GetIdleWakeupsPerSecond() on other platforms,
-     // crbug.com/120488
-     if (!values.is_idle_wakeups_valid) {
diff --git a/chromium-new/patches/patch-chrome_browser_tracing_crash__service__uploader.cc b/chromium-new/patches/patch-chrome_browser_tracing_crash__service__uploader.cc
new file mode 100644
index 0000000..6b58401
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_tracing_crash__service__uploader.cc
@@ -0,0 +1,15 @@
+$NetBSD$
+
+--- chrome/browser/tracing/crash_service_uploader.cc.orig	2016-06-24 01:02:13.000000000 +0000
++++ chrome/browser/tracing/crash_service_uploader.cc
+@@ -150,6 +150,10 @@ void TraceCrashServiceUploader::DoUpload
+   const char product[] = "Chrome_Android";
+ #elif defined(OS_CHROMEOS)
+   const char product[] = "Chrome_ChromeOS";
++#elif defined(OS_FREEBSD)
++  const char product[] = "Chrome_FreeBSD";
++#elif defined(OS_NETBSD)
++  const char product[] = "Chrome_NetBSD";
+ #else
+ #error Platform not supported.
+ #endif
diff --git a/chromium-new/patches/patch-chrome_browser_tracing_crash_service_uploader_cc b/chromium-new/patches/patch-chrome_browser_tracing_crash_service_uploader_cc
deleted file mode 100644
index d909fcd..0000000
--- a/chromium-new/patches/patch-chrome_browser_tracing_crash_service_uploader_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_browser_tracing_crash_service_uploader_cc,v 1.4 2015/12/05 16:13:32 robert Exp $
---- chrome/browser/tracing/crash_service_uploader.cc.orig.port	Tue Nov 24 21:00:54 2015
-+++ chrome/browser/tracing/crash_service_uploader.cc	Wed Dec  2 08:18:32 2015
-@@ -147,6 +147,8 @@ void TraceCrashServiceUploader::DoUploadOnFileThread(
-   const char product[] = "Chrome_Android";
- #elif defined(OS_CHROMEOS)
-   const char product[] = "Chrome_ChromeOS";
-+#elif defined(OS_OPENBSD)
-+  const char product[] = "Chrome_OpenBSD";
- #else
- #error Platform not supported.
- #endif
diff --git a/chromium-new/patches/patch-chrome_browser_ui_app_list_app_list_service_cc b/chromium-new/patches/patch-chrome_browser_ui_app_list_app_list_service_cc
deleted file mode 100644
index 9a3e54f..0000000
--- a/chromium-new/patches/patch-chrome_browser_ui_app_list_app_list_service_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_browser_ui_app_list_app_list_service_cc,v 1.1 2015/09/25 13:08:54 robert Exp $
---- chrome/browser/ui/app_list/app_list_service.cc.orig.port	Thu Sep 24 12:59:35 2015
-+++ chrome/browser/ui/app_list/app_list_service.cc	Thu Sep 24 13:05:18 2015
-@@ -42,7 +42,7 @@ base::Time GetOriginalProcessStartTime(const base::Com
- 
- // base::CurrentProcessInfo::CreationTime() is only defined on some
- // platforms.
--#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
-   return base::CurrentProcessInfo::CreationTime();
- #else
-   return base::Time();
diff --git a/chromium-new/patches/patch-chrome_browser_ui_ash_system_tray_delegate_common_cc b/chromium-new/patches/patch-chrome_browser_ui_ash_system_tray_delegate_common_cc
deleted file mode 100644
index 09e2e85..0000000
--- a/chromium-new/patches/patch-chrome_browser_ui_ash_system_tray_delegate_common_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_browser_ui_ash_system_tray_delegate_common_cc,v 1.3 2015/04/27 16:38:25 robert Exp $
---- chrome/browser/ui/ash/system_tray_delegate_common.cc.orig.port	Wed Apr 15 00:18:50 2015
-+++ chrome/browser/ui/ash/system_tray_delegate_common.cc	Wed Apr 15 08:32:50 2015
-@@ -79,7 +79,7 @@ base::HourClockType SystemTrayDelegateCommon::GetHourC
- }
- 
- void SystemTrayDelegateCommon::ShowChromeSlow() {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   chrome::ScopedTabbedBrowserDisplayer displayer(
-       ProfileManager::GetPrimaryUserProfile(), chrome::HOST_DESKTOP_TYPE_ASH);
-   chrome::ShowSlow(displayer.browser());
diff --git a/chromium-new/patches/patch-chrome_browser_ui_aura_chrome_browser_main_extra_parts_aura_cc b/chromium-new/patches/patch-chrome_browser_ui_aura_chrome_browser_main_extra_parts_aura_cc
deleted file mode 100644
index 025a16b..0000000
--- a/chromium-new/patches/patch-chrome_browser_ui_aura_chrome_browser_main_extra_parts_aura_cc
+++ /dev/null
@@ -1,39 +0,0 @@
-$OpenBSD: patch-chrome_browser_ui_aura_chrome_browser_main_extra_parts_aura_cc,v 1.7 2016/01/23 18:49:31 robert Exp $
---- chrome/browser/ui/aura/chrome_browser_main_extra_parts_aura.cc.orig.port	Wed Jan 20 21:01:19 2016
-+++ chrome/browser/ui/aura/chrome_browser_main_extra_parts_aura.cc	Fri Jan 22 19:58:58 2016
-@@ -19,7 +19,7 @@
- #include "ui/gfx/screen.h"
- #include "ui/views/widget/native_widget_aura.h"
- 
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_BSD) || defined(OS_LINUX)) && !defined(OS_CHROMEOS)
- #include "base/prefs/pref_service.h"
- #include "chrome/browser/profiles/profile.h"
- #include "chrome/common/pref_names.h"
-@@ -73,7 +73,7 @@ chrome::HostDesktopType GetInitialDesktop() {
-       command_line->HasSwitch(switches::kViewerLaunchViaAppId)) {
-     return chrome::HOST_DESKTOP_TYPE_ASH;
-   }
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
-   const base::CommandLine* command_line =
-       base::CommandLine::ForCurrentProcess();
-   if (command_line->HasSwitch(switches::kOpenAsh))
-@@ -140,7 +140,7 @@ void ChromeBrowserMainExtraPartsAura::PreCreateThreads
- }
- 
- void ChromeBrowserMainExtraPartsAura::PreProfileInit() {
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
-   // Now that we have some minimal ui initialized, check to see if we're
-   // running as root and bail if we are.
-   DetectRunningAsRoot();
-@@ -154,7 +154,7 @@ void ChromeBrowserMainExtraPartsAura::PostMainMessageL
-   // after the metrics service is deleted.
- }
- 
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- void ChromeBrowserMainExtraPartsAura::DetectRunningAsRoot() {
-   if (getuid() == 0) {
-     const base::CommandLine& command_line =
diff --git a/chromium-new/patches/patch-chrome_browser_ui_aura_chrome_browser_main_extra_parts_aura_h b/chromium-new/patches/patch-chrome_browser_ui_aura_chrome_browser_main_extra_parts_aura_h
deleted file mode 100644
index df771b8..0000000
--- a/chromium-new/patches/patch-chrome_browser_ui_aura_chrome_browser_main_extra_parts_aura_h
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_browser_ui_aura_chrome_browser_main_extra_parts_aura_h,v 1.2 2015/01/22 11:16:40 robert Exp $
---- chrome/browser/ui/aura/chrome_browser_main_extra_parts_aura.h.orig.port	Wed Dec  3 03:13:21 2014
-+++ chrome/browser/ui/aura/chrome_browser_main_extra_parts_aura.h	Sat Dec  6 11:34:25 2014
-@@ -25,7 +25,7 @@ class ChromeBrowserMainExtraPartsAura : public ChromeB
-   void PostMainMessageLoopRun() override;
- 
-  private:
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
-   // On the Linux desktop, we want to prevent the user from logging in as root,
-   // so that we don't destroy the profile.
-   void DetectRunningAsRoot();
diff --git a/chromium-new/patches/patch-chrome_browser_ui_browser__command__controller.cc b/chromium-new/patches/patch-chrome_browser_ui_browser__command__controller.cc
new file mode 100644
index 0000000..edafe4d
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_ui_browser__command__controller.cc
@@ -0,0 +1,40 @@
+$NetBSD$
+
+--- chrome/browser/ui/browser_command_controller.cc.orig	2016-06-24 01:02:14.000000000 +0000
++++ chrome/browser/ui/browser_command_controller.cc
+@@ -77,7 +77,7 @@
+ #include "chrome/browser/ui/browser_commands_chromeos.h"
+ #endif
+ 
+-#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
++#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+ #include "ui/events/linux/text_edit_key_bindings_delegate_auralinux.h"
+ #endif
+ 
+@@ -217,7 +217,7 @@ bool BrowserCommandController::IsReserve
+   if (window()->IsFullscreen() && command_id == IDC_FULLSCREEN)
+     return true;
+ 
+-#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
++#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+   // If this key was registered by the user as a content editing hotkey, then
+   // it is not reserved.
+   ui::TextEditKeyBindingsDelegateAuraLinux* delegate =
+@@ -410,7 +410,7 @@ void BrowserCommandController::ExecuteCo
+       break;
+ #endif
+ 
+-#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
++#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+     case IDC_USE_SYSTEM_TITLE_BAR: {
+       PrefService* prefs = browser_->profile()->GetPrefs();
+       prefs->SetBoolean(prefs::kUseCustomChromeFrame,
+@@ -806,7 +806,7 @@ void BrowserCommandController::InitComma
+   command_updater_.UpdateCommandEnabled(IDC_VISIT_DESKTOP_OF_LRU_USER_2, true);
+   command_updater_.UpdateCommandEnabled(IDC_VISIT_DESKTOP_OF_LRU_USER_3, true);
+ #endif
+-#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
++#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+   command_updater_.UpdateCommandEnabled(IDC_USE_SYSTEM_TITLE_BAR, true);
+ #endif
+ 
diff --git a/chromium-new/patches/patch-chrome_browser_ui_browser__view__prefs.cc b/chromium-new/patches/patch-chrome_browser_ui_browser__view__prefs.cc
new file mode 100644
index 0000000..168056e
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_ui_browser__view__prefs.cc
@@ -0,0 +1,22 @@
+$NetBSD$
+
+--- chrome/browser/ui/browser_view_prefs.cc.orig	2016-06-24 01:02:14.000000000 +0000
++++ chrome/browser/ui/browser_view_prefs.cc
+@@ -10,7 +10,7 @@
+ #include "components/prefs/pref_registry_simple.h"
+ #include "components/prefs/pref_service.h"
+ 
+-#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
++#if defined(OS_LINUX) && !defined(OS_CHROMEOS)  || defined(OS_BSD)
+ #include "ui/base/x/x11_util.h"
+ #endif
+ 
+@@ -33,7 +33,7 @@ void RegisterBrowserViewLocalPrefs(PrefR
+ void RegisterBrowserViewProfilePrefs(
+     user_prefs::PrefRegistrySyncable* registry) {
+   bool custom_frame_default = false;
+-#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
++#if defined(OS_LINUX) && !defined(OS_CHROMEOS)  || defined(OS_BSD)
+   custom_frame_default = ui::GetCustomFramePrefDefault();
+ #endif
+ 
diff --git a/chromium-new/patches/patch-chrome_browser_ui_browser_command_controller_cc b/chromium-new/patches/patch-chrome_browser_ui_browser_command_controller_cc
deleted file mode 100644
index e19732b..0000000
--- a/chromium-new/patches/patch-chrome_browser_ui_browser_command_controller_cc
+++ /dev/null
@@ -1,39 +0,0 @@
-$OpenBSD: patch-chrome_browser_ui_browser_command_controller_cc,v 1.11 2016/01/23 18:49:31 robert Exp $
---- chrome/browser/ui/browser_command_controller.cc.orig.port	Wed Jan 20 21:01:19 2016
-+++ chrome/browser/ui/browser_command_controller.cc	Fri Jan 22 19:58:58 2016
-@@ -71,7 +71,7 @@
- #include "chrome/browser/ui/browser_commands_chromeos.h"
- #endif
- 
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- #include "ui/events/linux/text_edit_key_bindings_delegate_auralinux.h"
- #endif
- 
-@@ -283,7 +283,7 @@ bool BrowserCommandController::IsReservedCommandOrKey(
-   if (window()->IsFullscreen() && command_id == IDC_FULLSCREEN)
-     return true;
- 
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
-   // If this key was registered by the user as a content editing hotkey, then
-   // it is not reserved.
-   ui::TextEditKeyBindingsDelegateAuraLinux* delegate =
-@@ -476,7 +476,7 @@ void BrowserCommandController::ExecuteCommandWithDispo
-       break;
- #endif
- 
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
-     case IDC_USE_SYSTEM_TITLE_BAR: {
-       PrefService* prefs = browser_->profile()->GetPrefs();
-       prefs->SetBoolean(prefs::kUseCustomChromeFrame,
-@@ -914,7 +914,7 @@ void BrowserCommandController::InitCommandState() {
-   command_updater_.UpdateCommandEnabled(IDC_VISIT_DESKTOP_OF_LRU_USER_2, true);
-   command_updater_.UpdateCommandEnabled(IDC_VISIT_DESKTOP_OF_LRU_USER_3, true);
- #endif
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
-   command_updater_.UpdateCommandEnabled(IDC_USE_SYSTEM_TITLE_BAR, true);
- #endif
- 
diff --git a/chromium-new/patches/patch-chrome_browser_ui_browser_view_prefs_cc b/chromium-new/patches/patch-chrome_browser_ui_browser_view_prefs_cc
deleted file mode 100644
index 134a47b..0000000
--- a/chromium-new/patches/patch-chrome_browser_ui_browser_view_prefs_cc
+++ /dev/null
@@ -1,21 +0,0 @@
-$OpenBSD: patch-chrome_browser_ui_browser_view_prefs_cc,v 1.2 2014/09/11 19:04:52 robert Exp $
---- chrome/browser/ui/browser_view_prefs.cc.orig.port	Wed Sep 10 01:29:19 2014
-+++ chrome/browser/ui/browser_view_prefs.cc	Wed Sep 10 22:05:40 2014
-@@ -9,7 +9,7 @@
- #include "chrome/common/pref_names.h"
- #include "components/pref_registry/pref_registry_syncable.h"
- 
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- #include "ui/base/x/x11_util.h"
- #endif
- 
-@@ -42,7 +42,7 @@ void RegisterBrowserViewLocalPrefs(PrefRegistrySimple*
- void RegisterBrowserViewProfilePrefs(
-     user_prefs::PrefRegistrySyncable* registry) {
-   bool custom_frame_default = false;
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
-   custom_frame_default = ui::GetCustomFramePrefDefault();
- #endif
- 
diff --git a/chromium-new/patches/patch-chrome_browser_ui_exclusive__access_exclusive__access__bubble.cc b/chromium-new/patches/patch-chrome_browser_ui_exclusive__access_exclusive__access__bubble.cc
new file mode 100644
index 0000000..8db7b17
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_ui_exclusive__access_exclusive__access__bubble.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- chrome/browser/ui/exclusive_access/exclusive_access_bubble.cc.orig	2016-06-24 01:02:14.000000000 +0000
++++ chrome/browser/ui/exclusive_access/exclusive_access_bubble.cc
+@@ -19,7 +19,7 @@
+ 
+ // NOTE(koz): Linux doesn't use the thick shadowed border, so we add padding
+ // here.
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_BSD)
+ const int ExclusiveAccessBubble::kPaddingPx = 8;
+ #else
+ const int ExclusiveAccessBubble::kPaddingPx = 15;
diff --git a/chromium-new/patches/patch-chrome_browser_ui_exclusive_access_exclusive_access_bubble_cc b/chromium-new/patches/patch-chrome_browser_ui_exclusive_access_exclusive_access_bubble_cc
deleted file mode 100644
index 61d532e..0000000
--- a/chromium-new/patches/patch-chrome_browser_ui_exclusive_access_exclusive_access_bubble_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_browser_ui_exclusive_access_exclusive_access_bubble_cc,v 1.1 2015/03/18 19:26:29 robert Exp $
---- chrome/browser/ui/exclusive_access/exclusive_access_bubble.cc.orig.port	Wed Mar 11 07:33:06 2015
-+++ chrome/browser/ui/exclusive_access/exclusive_access_bubble.cc	Wed Mar 11 07:33:16 2015
-@@ -18,7 +18,7 @@
- 
- // NOTE(koz): Linux doesn't use the thick shadowed border, so we add padding
- // here.
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- const int ExclusiveAccessBubble::kPaddingPx = 8;
- #else
- const int ExclusiveAccessBubble::kPaddingPx = 15;
diff --git a/chromium-new/patches/patch-chrome_browser_ui_input__method_input__method__engine__base.cc b/chromium-new/patches/patch-chrome_browser_ui_input__method_input__method__engine__base.cc
new file mode 100644
index 0000000..0310d8d
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_ui_input__method_input__method__engine__base.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- chrome/browser/ui/input_method/input_method_engine_base.cc.orig	2016-06-24 01:02:14.000000000 +0000
++++ chrome/browser/ui/input_method/input_method_engine_base.cc
+@@ -37,7 +37,7 @@
+ #elif defined(OS_WIN)
+ #include "ui/events/keycodes/dom/keycode_converter.h"
+ #include "ui/events/keycodes/keyboard_codes_win.h"
+-#elif defined(OS_LINUX)
++#elif defined(OS_LINUX) || defined(OS_BSD)
+ #include "ui/events/keycodes/dom/keycode_converter.h"
+ #include "ui/events/keycodes/keyboard_codes_posix.h"
+ #endif
diff --git a/chromium-new/patches/patch-chrome_browser_ui_panels_panel__manager.cc b/chromium-new/patches/patch-chrome_browser_ui_panels_panel__manager.cc
new file mode 100644
index 0000000..beab1e3
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_ui_panels_panel__manager.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- chrome/browser/ui/panels/panel_manager.cc.orig	2016-06-24 01:02:14.000000000 +0000
++++ chrome/browser/ui/panels/panel_manager.cc
+@@ -143,7 +143,7 @@ bool PanelManager::ShouldUsePanels(const
+ // static
+ bool PanelManager::IsPanelStackingEnabled() {
+   // Stacked panel mode is not supported in linux-aura.
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+   return false;
+ #else
+   return true;
diff --git a/chromium-new/patches/patch-chrome_browser_ui_panels_panel_manager_cc b/chromium-new/patches/patch-chrome_browser_ui_panels_panel_manager_cc
deleted file mode 100644
index 2a14bdf..0000000
--- a/chromium-new/patches/patch-chrome_browser_ui_panels_panel_manager_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_browser_ui_panels_panel_manager_cc,v 1.5 2015/12/05 16:13:32 robert Exp $
---- chrome/browser/ui/panels/panel_manager.cc.orig.port	Fri Nov 13 12:04:15 2015
-+++ chrome/browser/ui/panels/panel_manager.cc	Wed Dec  2 08:18:32 2015
-@@ -136,7 +136,7 @@ bool PanelManager::ShouldUsePanels(const std::string& 
- // static
- bool PanelManager::IsPanelStackingEnabled() {
-   // Stacked panel mode is not supported in linux-aura.
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   return false;
- #else
-   return true;
diff --git a/chromium-new/patches/patch-chrome_browser_ui_startup_bad_flags_prompt_cc b/chromium-new/patches/patch-chrome_browser_ui_startup_bad_flags_prompt_cc
deleted file mode 100644
index 3214226..0000000
--- a/chromium-new/patches/patch-chrome_browser_ui_startup_bad_flags_prompt_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_browser_ui_startup_bad_flags_prompt_cc,v 1.4 2016/01/23 18:49:31 robert Exp $
---- chrome/browser/ui/startup/bad_flags_prompt.cc.orig.port	Wed Jan 20 21:01:20 2016
-+++ chrome/browser/ui/startup/bad_flags_prompt.cc	Fri Jan 22 19:58:58 2016
-@@ -71,7 +71,7 @@ void ShowBadFlagsPrompt(Browser* browser) {
-     // This flag gives extensions more powers.
-     extensions::switches::kExtensionsOnChromeURLs,
- 
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_BSD) || defined(OS_LINUX)) && !defined(OS_CHROMEOS)
-     // Speech dispatcher is buggy, it can crash and it can make Chrome freeze.
-     // http://crbug.com/327295
-     switches::kEnableSpeechDispatcher,
diff --git a/chromium-new/patches/patch-chrome_browser_ui_startup_startup__browser__creator.cc b/chromium-new/patches/patch-chrome_browser_ui_startup_startup__browser__creator.cc
new file mode 100644
index 0000000..4d05201
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_ui_startup_startup__browser__creator.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- chrome/browser/ui/startup/startup_browser_creator.cc.orig	2016-06-24 01:02:14.000000000 +0000
++++ chrome/browser/ui/startup/startup_browser_creator.cc
+@@ -91,7 +91,7 @@
+ #include "components/user_manager/user_manager.h"
+ #endif
+ 
+-#if defined(TOOLKIT_VIEWS) && defined(OS_LINUX)
++#if defined(TOOLKIT_VIEWS) && (defined(OS_LINUX) || defined(OS_FREEBSD) || defined(OS_NETBSD))
+ #include "ui/events/devices/x11/touch_factory_x11.h"
+ #endif
+ 
diff --git a/chromium-new/patches/patch-chrome_browser_ui_startup_startup_browser_creator_cc b/chromium-new/patches/patch-chrome_browser_ui_startup_startup_browser_creator_cc
deleted file mode 100644
index abe744e..0000000
--- a/chromium-new/patches/patch-chrome_browser_ui_startup_startup_browser_creator_cc
+++ /dev/null
@@ -1,14 +0,0 @@
-$OpenBSD: patch-chrome_browser_ui_startup_startup_browser_creator_cc,v 1.13 2015/12/05 16:13:32 robert Exp $
---- chrome/browser/ui/startup/startup_browser_creator.cc.orig.port	Tue Nov 24 21:00:54 2015
-+++ chrome/browser/ui/startup/startup_browser_creator.cc	Wed Dec  2 08:18:32 2015
-@@ -657,8 +657,10 @@ bool StartupBrowserCreator::ProcessCmdLineImpl(
-   }
- #endif  // OS_CHROMEOS
- 
-+#if 0 /* XXX */
- #if defined(TOOLKIT_VIEWS) && defined(USE_X11)
-   ui::TouchFactory::SetTouchDeviceListFromCommandLine();
-+#endif
- #endif
- 
- #if defined(OS_MACOSX)
diff --git a/chromium-new/patches/patch-chrome_browser_ui_toolbar_app__menu__model.cc b/chromium-new/patches/patch-chrome_browser_ui_toolbar_app__menu__model.cc
new file mode 100644
index 0000000..cef3821
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_ui_toolbar_app__menu__model.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- chrome/browser/ui/toolbar/app_menu_model.cc.orig	2016-06-24 01:02:14.000000000 +0000
++++ chrome/browser/ui/toolbar/app_menu_model.cc
+@@ -711,7 +711,7 @@ bool AppMenuModel::IsCommandIdVisible(in
+     case IDC_UPGRADE_DIALOG:
+       return browser_defaults::kShowUpgradeMenuItem &&
+           UpgradeDetector::GetInstance()->notify_upgrade();
+-#if !defined(OS_LINUX) || defined(USE_AURA)
++#if (!defined(OS_LINUX) && !defined(OS_BSD)) || defined(USE_AURA)
+     case IDC_BOOKMARK_PAGE:
+       return !chrome::ShouldRemoveBookmarkThisPageUI(browser_->profile());
+     case IDC_BOOKMARK_ALL_TABS:
diff --git a/chromium-new/patches/patch-chrome_browser_ui_toolbar_app_menu_model_cc b/chromium-new/patches/patch-chrome_browser_ui_toolbar_app_menu_model_cc
deleted file mode 100644
index e31780e..0000000
--- a/chromium-new/patches/patch-chrome_browser_ui_toolbar_app_menu_model_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_browser_ui_toolbar_app_menu_model_cc,v 1.1 2016/01/23 18:49:31 robert Exp $
---- chrome/browser/ui/toolbar/app_menu_model.cc.orig.port	Fri Jan 22 22:04:59 2016
-+++ chrome/browser/ui/toolbar/app_menu_model.cc	Fri Jan 22 22:05:17 2016
-@@ -779,7 +779,7 @@ bool AppMenuModel::IsCommandIdVisible(int command_id) 
-     case IDC_UPGRADE_DIALOG:
-       return browser_defaults::kShowUpgradeMenuItem &&
-           UpgradeDetector::GetInstance()->notify_upgrade();
--#if !defined(OS_LINUX) || defined(USE_AURA)
-+#if (!defined(OS_BSD) && !defined(OS_LINUX)) || defined(USE_AURA)
-     case IDC_BOOKMARK_PAGE:
-       return !chrome::ShouldRemoveBookmarkThisPageUI(browser_->profile());
-     case IDC_BOOKMARK_ALL_TABS:
diff --git a/chromium-new/patches/patch-chrome_browser_ui_views_accelerator_table_cc b/chromium-new/patches/patch-chrome_browser_ui_views_accelerator_table_cc
deleted file mode 100644
index f5dd80d..0000000
--- a/chromium-new/patches/patch-chrome_browser_ui_views_accelerator_table_cc
+++ /dev/null
@@ -1,30 +0,0 @@
-$OpenBSD: patch-chrome_browser_ui_views_accelerator_table_cc,v 1.5 2016/01/23 18:49:31 robert Exp $
---- chrome/browser/ui/views/accelerator_table.cc.orig.port	Wed Jan 20 21:01:20 2016
-+++ chrome/browser/ui/views/accelerator_table.cc	Fri Jan 22 19:58:58 2016
-@@ -68,7 +68,7 @@ const AcceleratorMapping kAcceleratorMap[] = {
-   { ui::VKEY_S, ui::EF_CONTROL_DOWN, IDC_SAVE_PAGE },
-   { ui::VKEY_9, kPlatformModifier, IDC_SELECT_LAST_TAB },
-   { ui::VKEY_NUMPAD9, kPlatformModifier, IDC_SELECT_LAST_TAB },
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
-   { ui::VKEY_9, ui::EF_ALT_DOWN, IDC_SELECT_LAST_TAB },
-   { ui::VKEY_NUMPAD9, ui::EF_ALT_DOWN, IDC_SELECT_LAST_TAB },
-   { ui::VKEY_NEXT, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN, IDC_MOVE_TAB_NEXT },
-@@ -96,7 +96,7 @@ const AcceleratorMapping kAcceleratorMap[] = {
-   { ui::VKEY_NUMPAD7, kPlatformModifier, IDC_SELECT_TAB_6 },
-   { ui::VKEY_8, kPlatformModifier, IDC_SELECT_TAB_7 },
-   { ui::VKEY_NUMPAD8, kPlatformModifier, IDC_SELECT_TAB_7 },
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
-   { ui::VKEY_1, ui::EF_ALT_DOWN, IDC_SELECT_TAB_0 },
-   { ui::VKEY_NUMPAD1, ui::EF_ALT_DOWN, IDC_SELECT_TAB_0 },
-   { ui::VKEY_2, ui::EF_ALT_DOWN, IDC_SELECT_TAB_1 },
-@@ -145,7 +145,7 @@ const AcceleratorMapping kAcceleratorMap[] = {
-   { ui::VKEY_F11, ui::EF_NONE, IDC_FULLSCREEN },
- 
-   // Platform-specific key maps.
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   { ui::VKEY_BROWSER_BACK, ui::EF_NONE, IDC_BACK },
-   { ui::VKEY_BROWSER_FORWARD, ui::EF_NONE, IDC_FORWARD },
-   { ui::VKEY_BROWSER_HOME, ui::EF_NONE, IDC_HOME },
diff --git a/chromium-new/patches/patch-chrome_browser_ui_views_app_list_linux_app_list_linux_cc b/chromium-new/patches/patch-chrome_browser_ui_views_app_list_linux_app_list_linux_cc
deleted file mode 100644
index 402149e..0000000
--- a/chromium-new/patches/patch-chrome_browser_ui_views_app_list_linux_app_list_linux_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_browser_ui_views_app_list_linux_app_list_linux_cc,v 1.1 2015/01/22 11:16:40 robert Exp $
---- chrome/browser/ui/views/app_list/linux/app_list_linux.cc.orig.port	Sat Dec 27 12:59:28 2014
-+++ chrome/browser/ui/views/app_list/linux/app_list_linux.cc	Sat Dec 27 13:07:15 2014
-@@ -91,7 +91,7 @@ void AppListLinux::MoveNearCursor(app_list::AppListVie
-   view->SetBubbleArrow(views::BubbleBorder::FLOAT);
- 
-   AppListPositioner::ScreenEdge edge;
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
-   // In the Unity desktop environment, special case SCREEN_EDGE_LEFT. It is
-   // always on the left side in Unity, but ShelfLocationInDisplay will not
-   // detect this if the shelf is hidden.
diff --git a/chromium-new/patches/patch-chrome_browser_ui_views_apps_chrome__native__app__window__views__aura.cc b/chromium-new/patches/patch-chrome_browser_ui_views_apps_chrome__native__app__window__views__aura.cc
new file mode 100644
index 0000000..efbfbac
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_ui_views_apps_chrome__native__app__window__views__aura.cc
@@ -0,0 +1,22 @@
+$NetBSD$
+
+--- chrome/browser/ui/views/apps/chrome_native_app_window_views_aura.cc.orig	2016-06-24 01:02:14.000000000 +0000
++++ chrome/browser/ui/views/apps/chrome_native_app_window_views_aura.cc
+@@ -19,7 +19,7 @@
+ #include "ui/gfx/image/image_skia.h"
+ #include "ui/views/widget/widget.h"
+ 
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_BSD)
+ #include "chrome/browser/shell_integration_linux.h"
+ #endif
+ 
+@@ -57,7 +57,7 @@ void ChromeNativeAppWindowViewsAura::OnB
+     const AppWindow::CreateParams& create_params,
+     views::Widget::InitParams* init_params,
+     views::Widget* widget) {
+-#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
++#if defined(OS_LINUX) && !defined(OS_CHROMEOS) || defined(OS_BSD)
+   std::string app_name = web_app::GenerateApplicationNameFromExtensionId(
+       app_window()->extension_id());
+   // Set up a custom WM_CLASS for app windows. This allows task switchers in
diff --git a/chromium-new/patches/patch-chrome_browser_ui_views_apps_chrome_native_app_window_views_aura_cc b/chromium-new/patches/patch-chrome_browser_ui_views_apps_chrome_native_app_window_views_aura_cc
deleted file mode 100644
index a3c945f..0000000
--- a/chromium-new/patches/patch-chrome_browser_ui_views_apps_chrome_native_app_window_views_aura_cc
+++ /dev/null
@@ -1,21 +0,0 @@
-$OpenBSD: patch-chrome_browser_ui_views_apps_chrome_native_app_window_views_aura_cc,v 1.3 2015/09/05 16:06:50 robert Exp $
---- chrome/browser/ui/views/apps/chrome_native_app_window_views_aura.cc.orig.port	Sat Aug 22 21:01:52 2015
-+++ chrome/browser/ui/views/apps/chrome_native_app_window_views_aura.cc	Wed Sep  2 07:31:55 2015
-@@ -34,7 +34,7 @@
- #include "ash/shell_window_ids.h"
- #endif
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- #include "chrome/browser/shell_integration_linux.h"
- #endif
- 
-@@ -141,7 +141,7 @@ void ChromeNativeAppWindowViewsAura::OnBeforeWidgetIni
-     const AppWindow::CreateParams& create_params,
-     views::Widget::InitParams* init_params,
-     views::Widget* widget) {
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_BSD) || defined(OS_LINUX)) && !defined(OS_CHROMEOS)
-   std::string app_name = web_app::GenerateApplicationNameFromExtensionId(
-       app_window()->extension_id());
-   // Set up a custom WM_CLASS for app windows. This allows task switchers in
diff --git a/chromium-new/patches/patch-chrome_browser_ui_views_ash_chrome_browser_main_extra_parts_ash_cc b/chromium-new/patches/patch-chrome_browser_ui_views_ash_chrome_browser_main_extra_parts_ash_cc
deleted file mode 100644
index ea4cda2..0000000
--- a/chromium-new/patches/patch-chrome_browser_ui_views_ash_chrome_browser_main_extra_parts_ash_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_browser_ui_views_ash_chrome_browser_main_extra_parts_ash_cc,v 1.1 2015/01/22 11:16:40 robert Exp $
---- chrome/browser/ui/views/ash/chrome_browser_main_extra_parts_ash.cc.orig.port	Sat Dec 27 12:59:28 2014
-+++ chrome/browser/ui/views/ash/chrome_browser_main_extra_parts_ash.cc	Sat Dec 27 13:07:28 2014
-@@ -75,7 +75,7 @@ void ChromeBrowserMainExtraPartsAsh::PreProfileInit() 
-   if (chrome::ShouldOpenAshOnStartup()) {
-     chrome::OpenAsh(gfx::kNullAcceleratedWidget);
- 
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
-   ash::Shell::GetInstance()->CreateShelf();
-   ash::Shell::GetInstance()->ShowShelf();
- #endif
diff --git a/chromium-new/patches/patch-chrome_browser_ui_views_chrome__views__delegate.cc b/chromium-new/patches/patch-chrome_browser_ui_views_chrome__views__delegate.cc
new file mode 100644
index 0000000..1d7160b
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_ui_views_chrome__views__delegate.cc
@@ -0,0 +1,31 @@
+$NetBSD$
+
+--- chrome/browser/ui/views/chrome_views_delegate.cc.orig	2016-06-24 01:02:14.000000000 +0000
++++ chrome/browser/ui/views/chrome_views_delegate.cc
+@@ -51,7 +51,7 @@
+ #include "ui/views/widget/native_widget_aura.h"
+ #endif
+ 
+-#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
++#if defined(OS_LINUX) && !defined(OS_CHROMEOS) || defined(OS_BSD)
+ #include "ui/views/linux_ui/linux_ui.h"
+ #endif
+ 
+@@ -294,7 +294,7 @@ HICON ChromeViewsDelegate::GetSmallWindo
+   return GetSmallAppIcon();
+ }
+ 
+-#elif defined(OS_LINUX) && !defined(OS_CHROMEOS)
++#elif defined(OS_LINUX) && !defined(OS_CHROMEOS) || defined(OS_BSD)
+ gfx::ImageSkia* ChromeViewsDelegate::GetDefaultWindowIcon() const {
+   ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
+   return rb.GetImageSkiaNamed(IDR_PRODUCT_LOGO_64);
+@@ -426,7 +426,7 @@ void ChromeViewsDelegate::OnBeforeWidget
+ #endif
+ }
+ 
+-#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
++#if defined(OS_LINUX) && !defined(OS_CHROMEOS)  || defined(OS_BSD)
+ bool ChromeViewsDelegate::WindowManagerProvidesTitleBar(bool maximized) {
+   // On Ubuntu Unity, the system always provides a title bar for maximized
+   // windows.
diff --git a/chromium-new/patches/patch-chrome_browser_ui_views_chrome__views__delegate.h b/chromium-new/patches/patch-chrome_browser_ui_views_chrome__views__delegate.h
new file mode 100644
index 0000000..7f5213c
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_ui_views_chrome__views__delegate.h
@@ -0,0 +1,22 @@
+$NetBSD$
+
+--- chrome/browser/ui/views/chrome_views_delegate.h.orig	2016-06-24 01:02:14.000000000 +0000
++++ chrome/browser/ui/views/chrome_views_delegate.h
+@@ -37,7 +37,7 @@ class ChromeViewsDelegate : public views
+ #if defined(OS_WIN)
+   HICON GetDefaultWindowIcon() const override;
+   HICON GetSmallWindowIcon() const override;
+-#elif defined(OS_LINUX) && !defined(OS_CHROMEOS)
++#elif (defined(OS_LINUX) && !defined(OS_CHROMEOS)) || defined(OS_BSD)
+   gfx::ImageSkia* GetDefaultWindowIcon() const override;
+ #endif
+ 
+@@ -50,7 +50,7 @@ class ChromeViewsDelegate : public views
+   void OnBeforeWidgetInit(
+       views::Widget::InitParams* params,
+       views::internal::NativeWidgetDelegate* delegate) override;
+-#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
++#if (defined(OS_LINUX) && !defined(OS_CHROMEOS)) || defined(OS_BSD)
+   bool WindowManagerProvidesTitleBar(bool maximized) override;
+ #endif
+   ui::ContextFactory* GetContextFactory() override;
diff --git a/chromium-new/patches/patch-chrome_browser_ui_views_chrome_views_delegate_cc b/chromium-new/patches/patch-chrome_browser_ui_views_chrome_views_delegate_cc
deleted file mode 100644
index a6fc8a3..0000000
--- a/chromium-new/patches/patch-chrome_browser_ui_views_chrome_views_delegate_cc
+++ /dev/null
@@ -1,30 +0,0 @@
-$OpenBSD: patch-chrome_browser_ui_views_chrome_views_delegate_cc,v 1.12 2015/12/05 16:13:32 robert Exp $
---- chrome/browser/ui/views/chrome_views_delegate.cc.orig.port	Tue Nov 24 21:00:54 2015
-+++ chrome/browser/ui/views/chrome_views_delegate.cc	Wed Dec  2 08:18:32 2015
-@@ -48,7 +48,7 @@
- #include "ui/views/widget/native_widget_aura.h"
- #endif
- 
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_BSD) || defined(OS_LINUX)) && !defined(OS_CHROMEOS)
- #include "ui/views/linux_ui/linux_ui.h"
- #endif
- 
-@@ -271,7 +271,7 @@ bool ChromeViewsDelegate::IsWindowInMetro(gfx::NativeW
-   return chrome::IsNativeViewInAsh(window);
- }
- 
--#elif defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#elif (defined(OS_BSD) || defined(OS_LINUX)) && !defined(OS_CHROMEOS)
- gfx::ImageSkia* ChromeViewsDelegate::GetDefaultWindowIcon() const {
-   ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
-   return rb.GetImageSkiaNamed(IDR_PRODUCT_LOGO_64);
-@@ -410,7 +410,7 @@ void ChromeViewsDelegate::OnBeforeWidgetInit(
- #endif
- }
- 
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_BSD) || defined(OS_LINUX)) && !defined(OS_CHROMEOS)
- bool ChromeViewsDelegate::WindowManagerProvidesTitleBar(bool maximized) {
-   // On Ubuntu Unity, the system always provides a title bar for maximized
-   // windows.
diff --git a/chromium-new/patches/patch-chrome_browser_ui_views_chrome_views_delegate_h b/chromium-new/patches/patch-chrome_browser_ui_views_chrome_views_delegate_h
deleted file mode 100644
index c2b9efd..0000000
--- a/chromium-new/patches/patch-chrome_browser_ui_views_chrome_views_delegate_h
+++ /dev/null
@@ -1,21 +0,0 @@
-$OpenBSD: patch-chrome_browser_ui_views_chrome_views_delegate_h,v 1.9 2015/12/05 16:13:32 robert Exp $
---- chrome/browser/ui/views/chrome_views_delegate.h.orig.port	Fri Nov 13 12:04:15 2015
-+++ chrome/browser/ui/views/chrome_views_delegate.h	Wed Dec  2 08:18:32 2015
-@@ -36,7 +36,7 @@ class ChromeViewsDelegate : public views::ViewsDelegat
-   HICON GetDefaultWindowIcon() const override;
-   HICON GetSmallWindowIcon() const override;
-   bool IsWindowInMetro(gfx::NativeWindow window) const override;
--#elif defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#elif (defined(OS_BSD) || defined(OS_LINUX)) && !defined(OS_CHROMEOS)
-   gfx::ImageSkia* GetDefaultWindowIcon() const override;
- #endif
- 
-@@ -49,7 +49,7 @@ class ChromeViewsDelegate : public views::ViewsDelegat
-   void OnBeforeWidgetInit(
-       views::Widget::InitParams* params,
-       views::internal::NativeWidgetDelegate* delegate) override;
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_BSD) || defined(OS_LINUX)) && !defined(OS_CHROMEOS)
-   bool WindowManagerProvidesTitleBar(bool maximized) override;
- #endif
-   ui::ContextFactory* GetContextFactory() override;
diff --git a/chromium-new/patches/patch-chrome_browser_ui_views_exclusive_access_bubble_views_cc b/chromium-new/patches/patch-chrome_browser_ui_views_exclusive_access_bubble_views_cc
deleted file mode 100644
index b7d306f..0000000
--- a/chromium-new/patches/patch-chrome_browser_ui_views_exclusive_access_bubble_views_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_browser_ui_views_exclusive_access_bubble_views_cc,v 1.2 2016/01/23 18:49:31 robert Exp $
---- chrome/browser/ui/views/exclusive_access_bubble_views.cc.orig.port	Wed Jan 20 21:01:20 2016
-+++ chrome/browser/ui/views/exclusive_access_bubble_views.cc	Fri Jan 22 19:58:58 2016
-@@ -204,7 +204,7 @@ ExclusiveAccessBubbleViews::ExclusiveAccessView::Exclu
-       exit_instruction_(nullptr),
-       browser_fullscreen_exit_accelerator_(accelerator) {
-   views::BubbleBorder::Shadow shadow_type = views::BubbleBorder::BIG_SHADOW;
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   // Use a smaller shadow on Linux (including ChromeOS) as the shadow assets can
-   // overlap each other in a fullscreen notification bubble.
-   // See http://crbug.com/462983.
diff --git a/chromium-new/patches/patch-chrome_browser_ui_views_first__run__dialog.cc b/chromium-new/patches/patch-chrome_browser_ui_views_first__run__dialog.cc
new file mode 100644
index 0000000..72b6db0
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_ui_views_first__run__dialog.cc
@@ -0,0 +1,22 @@
+$NetBSD$
+
+--- chrome/browser/ui/views/first_run_dialog.cc.orig	2016-06-24 01:02:14.000000000 +0000
++++ chrome/browser/ui/views/first_run_dialog.cc
+@@ -116,12 +116,16 @@ views::View* FirstRunDialog::CreateExtra
+ bool FirstRunDialog::Accept() {
+   GetWidget()->Hide();
+ 
++#if !defined(OS_BSD)
+   if (report_crashes_ && report_crashes_->checked()) {
+     if (GoogleUpdateSettings::SetCollectStatsConsent(true))
+       breakpad::InitCrashReporter(std::string());
+-  } else {
++  } else
++#else
++  {
+     GoogleUpdateSettings::SetCollectStatsConsent(false);
+   }
++#endif
+ 
+   if (make_default_ && make_default_->checked())
+     shell_integration::SetAsDefaultBrowser();
diff --git a/chromium-new/patches/patch-chrome_browser_ui_views_first_run_dialog_cc b/chromium-new/patches/patch-chrome_browser_ui_views_first_run_dialog_cc
deleted file mode 100644
index 79b332f..0000000
--- a/chromium-new/patches/patch-chrome_browser_ui_views_first_run_dialog_cc
+++ /dev/null
@@ -1,20 +0,0 @@
-$OpenBSD: patch-chrome_browser_ui_views_first_run_dialog_cc,v 1.3 2016/01/23 18:49:31 robert Exp $
---- chrome/browser/ui/views/first_run_dialog.cc.orig.port	Thu Jan 14 02:49:22 2016
-+++ chrome/browser/ui/views/first_run_dialog.cc	Fri Jan 22 19:58:58 2016
-@@ -119,12 +119,16 @@ void FirstRunDialog::OnClosed() {
- bool FirstRunDialog::Accept() {
-   GetWidget()->Hide();
- 
-+#if !defined(OS_BSD)
-   if (report_crashes_ && report_crashes_->checked()) {
-     if (GoogleUpdateSettings::SetCollectStatsConsent(true))
-       breakpad::InitCrashReporter(std::string());
-   } else {
-     GoogleUpdateSettings::SetCollectStatsConsent(false);
-   }
-+#else
-+  GoogleUpdateSettings::SetCollectStatsConsent(false);
-+#endif
- 
-   if (make_default_ && make_default_->checked())
-     ShellIntegration::SetAsDefaultBrowser();
diff --git a/chromium-new/patches/patch-chrome_browser_ui_views_frame_browser__frame.cc b/chromium-new/patches/patch-chrome_browser_ui_views_frame_browser__frame.cc
new file mode 100644
index 0000000..767a8d0
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_ui_views_frame_browser__frame.cc
@@ -0,0 +1,22 @@
+$NetBSD$
+
+--- chrome/browser/ui/views/frame/browser_frame.cc.orig	2016-06-24 01:02:14.000000000 +0000
++++ chrome/browser/ui/views/frame/browser_frame.cc
+@@ -36,7 +36,7 @@
+ #include "ui/native_theme/native_theme_dark_aura.h"
+ #endif
+ 
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_BSD)
+ #include "chrome/browser/ui/views/frame/browser_command_handler_linux.h"
+ #endif
+ 
+@@ -88,7 +88,7 @@ void BrowserFrame::InitBrowserFrame() {
+     non_client_view()->set_context_menu_controller(this);
+   }
+ 
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_BSD)
+   browser_command_handler_.reset(new BrowserCommandHandlerLinux(browser_view_));
+ #endif
+ }
diff --git a/chromium-new/patches/patch-chrome_browser_ui_views_frame_browser__root__view.cc b/chromium-new/patches/patch-chrome_browser_ui_views_frame_browser__root__view.cc
new file mode 100644
index 0000000..812e1e5
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_ui_views_frame_browser__root__view.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+--- chrome/browser/ui/views/frame/browser_root_view.cc.orig	2016-06-24 01:02:14.000000000 +0000
++++ chrome/browser/ui/views/frame/browser_root_view.cc
+@@ -139,10 +139,10 @@ bool BrowserRootView::OnMouseWheel(const
+ 
+       // Number of integer scroll events that have passed in each direction.
+       int whole_scroll_amount_x =
+-          std::lround(static_cast<double>(scroll_remainder_x_) /
++          lround(static_cast<double>(scroll_remainder_x_) /
+                       ui::MouseWheelEvent::kWheelDelta);
+       int whole_scroll_amount_y =
+-          std::lround(static_cast<double>(scroll_remainder_y_) /
++          lround(static_cast<double>(scroll_remainder_y_) /
+                       ui::MouseWheelEvent::kWheelDelta);
+ 
+       // Adjust the remainder such that any whole scrolls we have taken action
diff --git a/chromium-new/patches/patch-chrome_browser_ui_views_frame_browser__view.cc b/chromium-new/patches/patch-chrome_browser_ui_views_frame_browser__view.cc
new file mode 100644
index 0000000..aab8508
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_ui_views_frame_browser__view.cc
@@ -0,0 +1,22 @@
+$NetBSD$
+
+--- chrome/browser/ui/views/frame/browser_view.cc.orig	2016-06-24 01:02:14.000000000 +0000
++++ chrome/browser/ui/views/frame/browser_view.cc
+@@ -187,7 +187,7 @@
+ #include "content/public/common/mojo_shell_connection.h"
+ #endif
+ 
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_BSD)
+ #include "ui/native_theme/native_theme_dark_aura.h"
+ #endif
+ 
+@@ -1977,7 +1977,7 @@ void BrowserView::OnThemeChanged() {
+ #if defined(OS_WIN)
+     ui::NativeThemeDarkWin::instance()->NotifyObservers();
+     ui::NativeThemeWin::instance()->NotifyObservers();
+-#elif defined(OS_LINUX)
++#elif defined(OS_LINUX) || defined(OS_BSD)
+     ui::NativeThemeDarkAura::instance()->NotifyObservers();
+     ui::NativeThemeAura::instance()->NotifyObservers();
+ #endif
diff --git a/chromium-new/patches/patch-chrome_browser_ui_views_frame_browser_frame_cc b/chromium-new/patches/patch-chrome_browser_ui_views_frame_browser_frame_cc
deleted file mode 100644
index e7abb10..0000000
--- a/chromium-new/patches/patch-chrome_browser_ui_views_frame_browser_frame_cc
+++ /dev/null
@@ -1,21 +0,0 @@
-$OpenBSD: patch-chrome_browser_ui_views_frame_browser_frame_cc,v 1.6 2015/05/24 15:51:53 robert Exp $
---- chrome/browser/ui/views/frame/browser_frame.cc.orig.port	Sat May 23 00:59:48 2015
-+++ chrome/browser/ui/views/frame/browser_frame.cc	Sat May 23 01:05:57 2015
-@@ -33,7 +33,7 @@
- #include "ash/shell.h"
- #endif
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- #include "chrome/browser/ui/views/frame/browser_command_handler_linux.h"
- #endif
- 
-@@ -82,7 +82,7 @@ void BrowserFrame::InitBrowserFrame() {
-     non_client_view()->set_context_menu_controller(this);
-   }
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   browser_command_handler_.reset(new BrowserCommandHandlerLinux(browser_view_));
- #endif
- }
diff --git a/chromium-new/patches/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view.cc b/chromium-new/patches/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view.cc
new file mode 100644
index 0000000..71ecf65
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view.cc
@@ -0,0 +1,22 @@
+$NetBSD$
+
+--- chrome/browser/ui/views/frame/opaque_browser_frame_view.cc.orig	2016-06-24 01:02:14.000000000 +0000
++++ chrome/browser/ui/views/frame/opaque_browser_frame_view.cc
+@@ -53,7 +53,7 @@
+ #include "ui/views/window/frame_background.h"
+ #include "ui/views/window/window_shape.h"
+ 
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_BSD)
+ #include "ui/views/controls/menu/menu_runner.h"
+ #endif
+ 
+@@ -309,7 +309,7 @@ void OpaqueBrowserFrameView::ButtonPress
+ void OpaqueBrowserFrameView::OnMenuButtonClicked(views::MenuButton* source,
+                                                  const gfx::Point& point,
+                                                  const ui::Event* event) {
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_BSD)
+   views::MenuRunner menu_runner(frame()->GetSystemMenuModel(),
+                                 views::MenuRunner::HAS_MNEMONICS);
+   ignore_result(menu_runner.RunMenuAt(browser_view()->GetWidget(),
diff --git a/chromium-new/patches/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view__layout.cc b/chromium-new/patches/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view__layout.cc
new file mode 100644
index 0000000..fb5a118
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view__layout.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- chrome/browser/ui/views/frame/opaque_browser_frame_view_layout.cc.orig	2016-06-24 01:02:14.000000000 +0000
++++ chrome/browser/ui/views/frame/opaque_browser_frame_view_layout.cc
+@@ -20,7 +20,7 @@ namespace {
+ 
+ const int kCaptionButtonHeight = 18;
+ 
+-#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
++#if defined(OS_LINUX) && !defined(OS_CHROMEOS) || defined(OS_BSD)
+ // Default extra space between the top of the frame and the top of the window
+ // caption buttons.
+ const int kExtraCaption = 2;
diff --git a/chromium-new/patches/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view__platform__specific.cc b/chromium-new/patches/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view__platform__specific.cc
new file mode 100644
index 0000000..9716a6d
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_ui_views_frame_opaque__browser__frame__view__platform__specific.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- chrome/browser/ui/views/frame/opaque_browser_frame_view_platform_specific.cc.orig	2016-06-24 01:02:14.000000000 +0000
++++ chrome/browser/ui/views/frame/opaque_browser_frame_view_platform_specific.cc
+@@ -10,7 +10,7 @@ bool OpaqueBrowserFrameViewPlatformSpeci
+   return false;
+ }
+ 
+-#if !defined(OS_LINUX)
++#if !defined(OS_LINUX) && !defined(OS_FREEBSD)
+ 
+ // static
+ OpaqueBrowserFrameViewPlatformSpecific*
diff --git a/chromium-new/patches/patch-chrome_browser_ui_views_frame_opaque_browser_frame_view_cc b/chromium-new/patches/patch-chrome_browser_ui_views_frame_opaque_browser_frame_view_cc
deleted file mode 100644
index 226c2bb..0000000
--- a/chromium-new/patches/patch-chrome_browser_ui_views_frame_opaque_browser_frame_view_cc
+++ /dev/null
@@ -1,21 +0,0 @@
-$OpenBSD: patch-chrome_browser_ui_views_frame_opaque_browser_frame_view_cc,v 1.16 2016/01/23 18:49:31 robert Exp $
---- chrome/browser/ui/views/frame/opaque_browser_frame_view.cc.orig.port	Fri Jan 22 22:05:32 2016
-+++ chrome/browser/ui/views/frame/opaque_browser_frame_view.cc	Fri Jan 22 22:05:50 2016
-@@ -55,7 +55,7 @@
- #include "chrome/browser/ui/views/profiles/supervised_user_avatar_label.h"
- #endif
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- #include "ui/views/controls/menu/menu_runner.h"
- #endif
- 
-@@ -336,7 +336,7 @@ void OpaqueBrowserFrameView::ButtonPressed(views::Butt
- 
- void OpaqueBrowserFrameView::OnMenuButtonClicked(views::View* source,
-                                                  const gfx::Point& point) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   views::MenuRunner menu_runner(frame()->GetSystemMenuModel(),
-                                 views::MenuRunner::HAS_MNEMONICS);
-   ignore_result(menu_runner.RunMenuAt(browser_view()->GetWidget(),
diff --git a/chromium-new/patches/patch-chrome_browser_ui_views_frame_opaque_browser_frame_view_layout_cc b/chromium-new/patches/patch-chrome_browser_ui_views_frame_opaque_browser_frame_view_layout_cc
deleted file mode 100644
index c9d027e..0000000
--- a/chromium-new/patches/patch-chrome_browser_ui_views_frame_opaque_browser_frame_view_layout_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_browser_ui_views_frame_opaque_browser_frame_view_layout_cc,v 1.3 2015/01/22 11:16:41 robert Exp $
---- chrome/browser/ui/views/frame/opaque_browser_frame_view_layout.cc.orig.port	Wed Dec  3 03:32:11 2014
-+++ chrome/browser/ui/views/frame/opaque_browser_frame_view_layout.cc	Sat Dec  6 11:34:25 2014
-@@ -87,7 +87,7 @@ const int kTabstripTopShadowThickness = 3;
- // is no avatar icon.
- const int kTabStripIndent = -6;
- 
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- // Default extra space between the top of the frame and the top of the window
- // caption buttons.
- const int kExtraCaption = 2;
diff --git a/chromium-new/patches/patch-chrome_browser_ui_views_frame_opaque_browser_frame_view_platform_specific_cc b/chromium-new/patches/patch-chrome_browser_ui_views_frame_opaque_browser_frame_view_platform_specific_cc
deleted file mode 100644
index 4c68bb1..0000000
--- a/chromium-new/patches/patch-chrome_browser_ui_views_frame_opaque_browser_frame_view_platform_specific_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_browser_ui_views_frame_opaque_browser_frame_view_platform_specific_cc,v 1.1 2015/05/24 15:51:53 robert Exp $
---- chrome/browser/ui/views/frame/opaque_browser_frame_view_platform_specific.cc.orig.port	Sat May 23 00:59:48 2015
-+++ chrome/browser/ui/views/frame/opaque_browser_frame_view_platform_specific.cc	Sat May 23 01:06:09 2015
-@@ -10,7 +10,7 @@ bool OpaqueBrowserFrameViewPlatformSpecific::IsUsingSy
-   return false;
- }
- 
--#if !defined(OS_LINUX)
-+#if !defined(OS_LINUX) && !defined(OS_BSD)
- 
- // static
- OpaqueBrowserFrameViewPlatformSpecific*
diff --git a/chromium-new/patches/patch-chrome_browser_ui_views_frame_system__menu__model__builder.cc b/chromium-new/patches/patch-chrome_browser_ui_views_frame_system__menu__model__builder.cc
new file mode 100644
index 0000000..58890f8
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_ui_views_frame_system__menu__model__builder.cc
@@ -0,0 +1,22 @@
+$NetBSD$
+
+--- chrome/browser/ui/views/frame/system_menu_model_builder.cc.orig	2016-06-24 01:02:14.000000000 +0000
++++ chrome/browser/ui/views/frame/system_menu_model_builder.cc
+@@ -85,7 +85,7 @@ void SystemMenuModelBuilder::BuildSystem
+     model->AddSeparator(ui::NORMAL_SEPARATOR);
+     model->AddItemWithStringId(IDC_TASK_MANAGER, IDS_TASK_MANAGER);
+   }
+-#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
++#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+   model->AddSeparator(ui::NORMAL_SEPARATOR);
+   model->AddCheckItemWithStringId(IDC_USE_SYSTEM_TITLE_BAR,
+                                   IDS_SHOW_WINDOW_DECORATIONS_MENU);
+@@ -123,7 +123,7 @@ void SystemMenuModelBuilder::BuildSystem
+     model->AddSeparator(ui::NORMAL_SEPARATOR);
+     model->AddItemWithStringId(IDC_TASK_MANAGER, IDS_TASK_MANAGER);
+   }
+-#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
++#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+   model->AddSeparator(ui::NORMAL_SEPARATOR);
+   model->AddItemWithStringId(IDC_CLOSE_WINDOW, IDS_CLOSE);
+ #endif
diff --git a/chromium-new/patches/patch-chrome_browser_ui_views_frame_system_menu_model_builder_cc b/chromium-new/patches/patch-chrome_browser_ui_views_frame_system_menu_model_builder_cc
deleted file mode 100644
index f1be0ee..0000000
--- a/chromium-new/patches/patch-chrome_browser_ui_views_frame_system_menu_model_builder_cc
+++ /dev/null
@@ -1,21 +0,0 @@
-$OpenBSD: patch-chrome_browser_ui_views_frame_system_menu_model_builder_cc,v 1.3 2016/01/23 18:49:31 robert Exp $
---- chrome/browser/ui/views/frame/system_menu_model_builder.cc.orig.port	Wed Jan 20 21:01:20 2016
-+++ chrome/browser/ui/views/frame/system_menu_model_builder.cc	Fri Jan 22 19:58:58 2016
-@@ -86,7 +86,7 @@ void SystemMenuModelBuilder::BuildSystemMenuForBrowser
-     model->AddSeparator(ui::NORMAL_SEPARATOR);
-     model->AddItemWithStringId(IDC_TASK_MANAGER, IDS_TASK_MANAGER);
-   }
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
-   model->AddSeparator(ui::NORMAL_SEPARATOR);
-   model->AddCheckItemWithStringId(IDC_USE_SYSTEM_TITLE_BAR,
-                                   IDS_SHOW_WINDOW_DECORATIONS_MENU);
-@@ -124,7 +124,7 @@ void SystemMenuModelBuilder::BuildSystemMenuForAppOrPo
-     model->AddSeparator(ui::NORMAL_SEPARATOR);
-     model->AddItemWithStringId(IDC_TASK_MANAGER, IDS_TASK_MANAGER);
-   }
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
-   model->AddSeparator(ui::NORMAL_SEPARATOR);
-   model->AddItemWithStringId(IDC_CLOSE_WINDOW, IDS_CLOSE);
- #endif
diff --git a/chromium-new/patches/patch-chrome_browser_ui_views_message__center_message__center__frame__view.cc b/chromium-new/patches/patch-chrome_browser_ui_views_message__center_message__center__frame__view.cc
new file mode 100644
index 0000000..7990fe8
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_ui_views_message__center_message__center__frame__view.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- chrome/browser/ui/views/message_center/message_center_frame_view.cc.orig	2016-06-24 01:02:14.000000000 +0000
++++ chrome/browser/ui/views/message_center/message_center_frame_view.cc
+@@ -15,7 +15,7 @@
+ namespace message_center {
+ 
+ MessageCenterFrameView::MessageCenterFrameView() {
+-#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
++#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+   const int kBorderWidth = 1;
+   SetBorder(views::Border::CreateSolidBorder(
+       kBorderWidth, message_center::kMessageCenterBorderColor));
diff --git a/chromium-new/patches/patch-chrome_browser_ui_views_message_center_message_center_frame_view_cc b/chromium-new/patches/patch-chrome_browser_ui_views_message_center_message_center_frame_view_cc
deleted file mode 100644
index d0dcbee..0000000
--- a/chromium-new/patches/patch-chrome_browser_ui_views_message_center_message_center_frame_view_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_browser_ui_views_message_center_message_center_frame_view_cc,v 1.3 2015/05/24 15:51:53 robert Exp $
---- chrome/browser/ui/views/message_center/message_center_frame_view.cc.orig.port	Thu May 14 00:23:04 2015
-+++ chrome/browser/ui/views/message_center/message_center_frame_view.cc	Wed May 20 08:34:56 2015
-@@ -14,7 +14,7 @@
- namespace message_center {
- 
- MessageCenterFrameView::MessageCenterFrameView() {
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
-   const int kBorderWidth = 1;
-   SetBorder(views::Border::CreateSolidBorder(
-       kBorderWidth, message_center::kMessageCenterBorderColor));
diff --git a/chromium-new/patches/patch-chrome_browser_ui_views_panels_panel__frame__view.cc b/chromium-new/patches/patch-chrome_browser_ui_views_panels_panel__frame__view.cc
new file mode 100644
index 0000000..5fe2878
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_ui_views_panels_panel__frame__view.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- chrome/browser/ui/views/panels/panel_frame_view.cc.orig	2016-06-24 01:02:14.000000000 +0000
++++ chrome/browser/ui/views/panels/panel_frame_view.cc
+@@ -588,7 +588,7 @@ bool PanelFrameView::OnMousePressed(cons
+ }
+ 
+ bool PanelFrameView::OnMouseDragged(const ui::MouseEvent& event) {
+-#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
++#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+   // Converting the mouse location to screen coordinates returns an incorrect
+   // location while the panel is moving. See crbug.com/353393 for more details.
+   // TODO(pkotwicz): Fix conversion to screen coordinates
diff --git a/chromium-new/patches/patch-chrome_browser_ui_views_panels_panel_frame_view_cc b/chromium-new/patches/patch-chrome_browser_ui_views_panels_panel_frame_view_cc
deleted file mode 100644
index a0abacd..0000000
--- a/chromium-new/patches/patch-chrome_browser_ui_views_panels_panel_frame_view_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_browser_ui_views_panels_panel_frame_view_cc,v 1.5 2015/09/05 16:06:50 robert Exp $
---- chrome/browser/ui/views/panels/panel_frame_view.cc.orig.port	Sat Aug 22 21:01:52 2015
-+++ chrome/browser/ui/views/panels/panel_frame_view.cc	Wed Sep  2 07:31:55 2015
-@@ -587,7 +587,7 @@ bool PanelFrameView::OnMousePressed(const ui::MouseEve
- }
- 
- bool PanelFrameView::OnMouseDragged(const ui::MouseEvent& event) {
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
-   // Converting the mouse location to screen coordinates returns an incorrect
-   // location while the panel is moving. See crbug.com/353393 for more details.
-   // TODO(pkotwicz): Fix conversion to screen coordinates
diff --git a/chromium-new/patches/patch-chrome_browser_ui_views_tabs_tab__drag__controller.cc b/chromium-new/patches/patch-chrome_browser_ui_views_tabs_tab__drag__controller.cc
new file mode 100644
index 0000000..24ec4de
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_ui_views_tabs_tab__drag__controller.cc
@@ -0,0 +1,31 @@
+$NetBSD$
+
+--- chrome/browser/ui/views/tabs/tab_drag_controller.cc.orig	2016-06-24 01:02:14.000000000 +0000
++++ chrome/browser/ui/views/tabs/tab_drag_controller.cc
+@@ -269,7 +269,7 @@ void TabDragController::Init(
+   //     synchronous on desktop Linux, so use that.
+   // - Ash
+   //     Releasing capture on Ash cancels gestures so avoid it.
+-#if defined(OS_LINUX) || defined(USE_ASH)
++#if defined(OS_LINUX) || defined(OS_BSD) || defined(USE_ASH)
+   can_release_capture_ = false;
+ #endif
+   start_point_in_screen_ = gfx::Point(source_tab_offset, mouse_offset.y());
+@@ -627,7 +627,7 @@ TabDragController::DragBrowserToNewTabSt
+     // that to effect the position of any windows.
+     SetWindowPositionManaged(browser_widget->GetNativeWindow(), false);
+ 
+-#if !defined(OS_LINUX) || defined(OS_CHROMEOS)
++#if (!defined(OS_LINUX) && !defined(OS_BSD)) || defined(OS_CHROMEOS)
+     // EndMoveLoop is going to snap the window back to its original location.
+     // Hide it so users don't see this. Hiding a window in Linux aura causes
+     // it to lose capture so skip it.
+@@ -1817,7 +1817,7 @@ TabDragController::Liveness TabDragContr
+     if (dragged_window)
+       exclude.insert(dragged_window);
+   }
+-#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
++#if (defined(OS_LINUX) && !defined(OS_CHROMEOS)) || defined(OS_BSD)
+   // Exclude windows which are pending deletion via Browser::TabStripEmpty().
+   // These windows can be returned in the Linux Aura port because the browser
+   // window which was used for dragging is not hidden once all of its tabs are
diff --git a/chromium-new/patches/patch-chrome_browser_ui_views_tabs_tab__strip.cc b/chromium-new/patches/patch-chrome_browser_ui_views_tabs_tab__strip.cc
new file mode 100644
index 0000000..15435a6
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_ui_views_tabs_tab__strip.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- chrome/browser/ui/views/tabs/tab_strip.cc.orig	2016-07-10 13:24:50.509360795 +0000
++++ chrome/browser/ui/views/tabs/tab_strip.cc
+@@ -331,7 +331,7 @@ NewTabButton::NewTabButton(TabStrip* tab
+     : views::ImageButton(listener),
+       tab_strip_(tab_strip),
+       destroyed_(NULL) {
+-#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
++#if defined(OS_LINUX) && !defined(OS_CHROMEOS) || defined(OS_BSD)
+   set_triggerable_event_flags(triggerable_event_flags() |
+                               ui::EF_MIDDLE_MOUSE_BUTTON);
+ #endif
diff --git a/chromium-new/patches/patch-chrome_browser_ui_views_tabs_tab_drag_controller_cc b/chromium-new/patches/patch-chrome_browser_ui_views_tabs_tab_drag_controller_cc
deleted file mode 100644
index 2c2ca1f..0000000
--- a/chromium-new/patches/patch-chrome_browser_ui_views_tabs_tab_drag_controller_cc
+++ /dev/null
@@ -1,30 +0,0 @@
-$OpenBSD: patch-chrome_browser_ui_views_tabs_tab_drag_controller_cc,v 1.9 2016/01/23 18:49:31 robert Exp $
---- chrome/browser/ui/views/tabs/tab_drag_controller.cc.orig.port	Fri Jan 22 22:07:37 2016
-+++ chrome/browser/ui/views/tabs/tab_drag_controller.cc	Fri Jan 22 22:08:15 2016
-@@ -272,7 +272,7 @@ void TabDragController::Init(
-   //     synchronous on desktop Linux, so use that.
-   // - Ash
-   //     Releasing capture on Ash cancels gestures so avoid it.
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   can_release_capture_ = false;
- #else
-   can_release_capture_ =
-@@ -624,7 +624,7 @@ TabDragController::DragBrowserToNewTabStrip(
-     // that to effect the position of any windows.
-     SetWindowPositionManaged(browser_widget->GetNativeWindow(), false);
- 
--#if !defined(OS_LINUX) || defined(OS_CHROMEOS)
-+#if (!defined(OS_BSD) && !defined(OS_LINUX)) || defined(OS_CHROMEOS)
-     // EndMoveLoop is going to snap the window back to its original location.
-     // Hide it so users don't see this. Hiding a window in Linux aura causes
-     // it to lose capture so skip it.
-@@ -1799,7 +1799,7 @@ gfx::NativeWindow TabDragController::GetLocalProcessWi
-       attached_tabstrip_->GetWidget()->GetNativeWindow();
-   if (exclude_dragged_view && dragged_window)
-     exclude.insert(dragged_window);
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_BSD) || defined(OS_LINUX)) && !defined(OS_CHROMEOS)
-   // Exclude windows which are pending deletion via Browser::TabStripEmpty().
-   // These windows can be returned in the Linux Aura port because the browser
-   // window which was used for dragging is not hidden once all of its tabs are
diff --git a/chromium-new/patches/patch-chrome_browser_ui_views_tabs_tab_strip_cc b/chromium-new/patches/patch-chrome_browser_ui_views_tabs_tab_strip_cc
deleted file mode 100644
index 6fe7977..0000000
--- a/chromium-new/patches/patch-chrome_browser_ui_views_tabs_tab_strip_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_browser_ui_views_tabs_tab_strip_cc,v 1.14 2016/01/23 18:49:31 robert Exp $
---- chrome/browser/ui/views/tabs/tab_strip.cc.orig.port	Wed Jan 20 21:01:20 2016
-+++ chrome/browser/ui/views/tabs/tab_strip.cc	Fri Jan 22 19:58:58 2016
-@@ -290,7 +290,7 @@ NewTabButton::NewTabButton(TabStrip* tab_strip, views:
-     : views::ImageButton(listener),
-       tab_strip_(tab_strip),
-       destroyed_(NULL) {
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
-   set_triggerable_event_flags(triggerable_event_flags() |
-                               ui::EF_MIDDLE_MOUSE_BUTTON);
- #endif
diff --git a/chromium-new/patches/patch-chrome_browser_ui_views_task_manager_view_cc b/chromium-new/patches/patch-chrome_browser_ui_views_task_manager_view_cc
deleted file mode 100644
index 69cf704..0000000
--- a/chromium-new/patches/patch-chrome_browser_ui_views_task_manager_view_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_browser_ui_views_task_manager_view_cc,v 1.3 2015/10/14 16:42:07 robert Exp $
---- chrome/browser/ui/views/task_manager_view.cc.orig.port	Wed Oct  7 04:42:09 2015
-+++ chrome/browser/ui/views/task_manager_view.cc	Wed Oct 14 07:41:13 2015
-@@ -341,7 +341,7 @@ void TaskManagerView::Init() {
-   columns_.back().sortable = true;
-   columns_.back().initial_sort_is_ascending = false;
-   // TODO(port) http://crbug.com/120488 for non-Linux.
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   columns_.push_back(ui::TableColumn(IDS_TASK_MANAGER_IDLE_WAKEUPS_COLUMN,
-                                      ui::TableColumn::RIGHT, -1, 0));
-   columns_.back().sortable = true;
diff --git a/chromium-new/patches/patch-chrome_browser_ui_webui_about__ui.cc b/chromium-new/patches/patch-chrome_browser_ui_webui_about__ui.cc
new file mode 100644
index 0000000..9cb7846
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_ui_webui_about__ui.cc
@@ -0,0 +1,56 @@
+$NetBSD$
+
+--- chrome/browser/ui/webui/about_ui.cc.orig	2016-06-24 01:02:14.000000000 +0000
++++ chrome/browser/ui/webui/about_ui.cc
+@@ -73,7 +73,7 @@
+ #include "chrome/browser/ui/webui/theme_source.h"
+ #endif
+ 
+-#if defined(OS_LINUX) || defined(OS_OPENBSD)
++#if defined(OS_LINUX) || defined(OS_BSD)
+ #include "content/public/browser/zygote_host_linux.h"
+ #include "content/public/common/sandbox_linux.h"
+ #endif
+@@ -642,7 +642,7 @@ class AboutDnsHandler : public base::Ref
+   DISALLOW_COPY_AND_ASSIGN(AboutDnsHandler);
+ };
+ 
+-#if defined(OS_LINUX) || defined(OS_OPENBSD)
++#if defined(OS_LINUX) || defined(OS_BSD)
+ std::string AboutLinuxProxyConfig() {
+   std::string data;
+   AppendHeader(&data, 0,
+@@ -658,6 +658,7 @@ std::string AboutLinuxProxyConfig() {
+   return data;
+ }
+ 
++#if !defined(OS_BSD)
+ void AboutSandboxRow(std::string* data, int name_id, bool good) {
+   data->append("<tr><td>");
+   data->append(l10n_util::GetStringUTF8(name_id));
+@@ -759,6 +760,7 @@ void AboutUIHTMLSource::StartDataRequest
+     else if (path == kKeyboardUtilsPath)
+       idr = IDR_KEYBOARD_UTILS_JS;
+ #endif
++#endif
+ 
+     response = ResourceBundle::GetSharedInstance().GetRawDataResource(
+         idr).as_string();
+@@ -769,7 +771,7 @@ void AboutUIHTMLSource::StartDataRequest
+   } else if (source_name_ == chrome::kChromeUIDNSHost) {
+     AboutDnsHandler::Start(profile(), callback);
+     return;
+-#if defined(OS_LINUX) || defined(OS_OPENBSD)
++#if defined(OS_LINUX) || defined(OS_BSD)
+   } else if (source_name_ == chrome::kChromeUILinuxProxyConfigHost) {
+     response = AboutLinuxProxyConfig();
+ #endif
+@@ -778,7 +780,7 @@ void AboutUIHTMLSource::StartDataRequest
+     ChromeOSCreditsHandler::Start(path, callback);
+     return;
+ #endif
+-#if defined(OS_LINUX) || defined(OS_OPENBSD)
++#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_FREEBSD) && !defined(OS_NETBSD)
+   } else if (source_name_ == chrome::kChromeUISandboxHost) {
+     response = AboutSandbox();
+ #endif
diff --git a/chromium-new/patches/patch-chrome_browser_ui_webui_about_ui_cc b/chromium-new/patches/patch-chrome_browser_ui_webui_about_ui_cc
deleted file mode 100644
index dd007a8..0000000
--- a/chromium-new/patches/patch-chrome_browser_ui_webui_about_ui_cc
+++ /dev/null
@@ -1,55 +0,0 @@
-$OpenBSD: patch-chrome_browser_ui_webui_about_ui_cc,v 1.31 2015/12/05 16:13:32 robert Exp $
---- chrome/browser/ui/webui/about_ui.cc.orig.port	Fri Nov 13 12:04:15 2015
-+++ chrome/browser/ui/webui/about_ui.cc	Wed Dec  2 08:18:32 2015
-@@ -68,7 +68,7 @@
- #include "chrome/browser/ui/webui/theme_source.h"
- #endif
- 
--#if defined(OS_LINUX) || defined(OS_OPENBSD)
-+#if defined(OS_LINUX)
- #include "content/public/browser/zygote_host_linux.h"
- #include "content/public/common/sandbox_linux.h"
- #endif
-@@ -701,7 +701,7 @@ void FinishMemoryDataRequest(
-   }
- }
- 
--#if defined(OS_LINUX) || defined(OS_OPENBSD)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- std::string AboutLinuxProxyConfig() {
-   std::string data;
-   AppendHeader(&data, 0,
-@@ -717,6 +717,7 @@ std::string AboutLinuxProxyConfig() {
-   return data;
- }
- 
-+#if !defined(OS_BSD)
- void AboutSandboxRow(std::string* data, int name_id, bool good) {
-   data->append("<tr><td>");
-   data->append(l10n_util::GetStringUTF8(name_id));
-@@ -784,6 +785,7 @@ std::string AboutSandbox() {
-   return data;
- }
- #endif
-+#endif
- 
- // AboutMemoryHandler ----------------------------------------------------------
- 
-@@ -956,7 +958,7 @@ void AboutUIHTMLSource::StartDataRequest(
-   } else if (source_name_ == chrome::kChromeUIDNSHost) {
-     AboutDnsHandler::Start(profile(), callback);
-     return;
--#if defined(OS_LINUX) || defined(OS_OPENBSD)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   } else if (source_name_ == chrome::kChromeUILinuxProxyConfigHost) {
-     response = AboutLinuxProxyConfig();
- #endif
-@@ -970,7 +972,7 @@ void AboutUIHTMLSource::StartDataRequest(
-     ChromeOSCreditsHandler::Start(path, callback);
-     return;
- #endif
--#if defined(OS_LINUX) || defined(OS_OPENBSD)
-+#if defined(OS_LINUX)
-   } else if (source_name_ == chrome::kChromeUISandboxHost) {
-     response = AboutSandbox();
- #endif
diff --git a/chromium-new/patches/patch-chrome_browser_ui_webui_chrome__web__ui__controller__factory.cc b/chromium-new/patches/patch-chrome_browser_ui_webui_chrome__web__ui__controller__factory.cc
new file mode 100644
index 0000000..7592531
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_ui_webui_chrome__web__ui__controller__factory.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc.orig	2016-06-24 01:02:14.000000000 +0000
++++ chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
+@@ -269,7 +269,7 @@ bool IsAboutUI(const GURL& url) {
+ #if !defined(OS_ANDROID)
+           || url.host() == chrome::kChromeUITermsHost
+ #endif
+-#if defined(OS_LINUX) || defined(OS_OPENBSD)
++#if defined(OS_LINUX) || defined(OS_BSD)
+           || url.host() == chrome::kChromeUILinuxProxyConfigHost ||
+           url.host() == chrome::kChromeUISandboxHost
+ #endif
diff --git a/chromium-new/patches/patch-chrome_browser_ui_webui_chrome_web_ui_controller_factory_cc b/chromium-new/patches/patch-chrome_browser_ui_webui_chrome_web_ui_controller_factory_cc
deleted file mode 100644
index 921004d..0000000
--- a/chromium-new/patches/patch-chrome_browser_ui_webui_chrome_web_ui_controller_factory_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_browser_ui_webui_chrome_web_ui_controller_factory_cc,v 1.9 2016/01/23 18:49:31 robert Exp $
---- chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc.orig.port	Wed Jan 20 21:01:20 2016
-+++ chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc	Fri Jan 22 19:58:58 2016
-@@ -527,7 +527,7 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* we
-   if (url.host() == chrome::kChromeUINaClHost)
-     return &NewWebUI<NaClUI>;
- #endif
--#if (defined(OS_LINUX) && defined(TOOLKIT_VIEWS)) || defined(USE_AURA)
-+#if ((defined(OS_LINUX) || defined(OS_BSD)) && defined(TOOLKIT_VIEWS)) || defined(USE_AURA)
-   if (url.host() == chrome::kChromeUITabModalConfirmDialogHost) {
-     return &NewWebUI<ConstrainedWebDialogUI>;
-   }
diff --git a/chromium-new/patches/patch-chrome_browser_ui_webui_extensions_extension__loader__handler.cc b/chromium-new/patches/patch-chrome_browser_ui_webui_extensions_extension__loader__handler.cc
new file mode 100644
index 0000000..9dc4ce1
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_ui_webui_extensions_extension__loader__handler.cc
@@ -0,0 +1,16 @@
+$NetBSD$
+
+--- chrome/browser/ui/webui/extensions/extension_loader_handler.cc.orig	2016-06-24 01:02:14.000000000 +0000
++++ chrome/browser/ui/webui/extensions/extension_loader_handler.cc
+@@ -25,7 +25,11 @@
+ #include "extensions/common/constants.h"
+ #include "extensions/common/extension.h"
+ #include "extensions/common/manifest_constants.h"
++#if defined(OS_BSD)
++#include <re2/re2.h>
++#else
+ #include "third_party/re2/src/re2/re2.h"
++#endif
+ #include "ui/base/l10n/l10n_util.h"
+ 
+ namespace extensions {
diff --git a/chromium-new/patches/patch-chrome_browser_ui_webui_options_browser__options__handler.cc b/chromium-new/patches/patch-chrome_browser_ui_webui_options_browser__options__handler.cc
new file mode 100644
index 0000000..65a70a9
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_ui_webui_options_browser__options__handler.cc
@@ -0,0 +1,47 @@
+$NetBSD$
+
+--- chrome/browser/ui/webui/options/browser_options_handler.cc.orig	2016-06-24 01:02:14.000000000 +0000
++++ chrome/browser/ui/webui/options/browser_options_handler.cc
+@@ -507,13 +507,13 @@ void BrowserOptionsHandler::GetLocalized
+     { "syncButtonTextStart", IDS_SYNC_SETUP_BUTTON_LABEL },
+ #endif  // defined(OS_CHROMEOS)
+ 
+-#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
++#if defined(OS_POSIX) && !defined(OS_CHROMEOS)
+     { "showWindowDecorations", IDS_SHOW_WINDOW_DECORATIONS },
+     { "themesNativeButton", IDS_THEMES_GTK_BUTTON },
+     { "themesSetClassic", IDS_THEMES_SET_CLASSIC },
+ #else
+     { "themes", IDS_THEMES_GROUP_NAME },
+-#endif  // defined(OS_LINUX) && !defined(OS_CHROMEOS)
++#endif  // defined(OS_POSIX) && !defined(OS_CHROMEOS)
+ 
+ #if defined(OS_CHROMEOS) && defined(USE_ASH)
+     { "setWallpaper", IDS_SET_WALLPAPER_BUTTON },
+@@ -754,7 +754,7 @@ void BrowserOptionsHandler::RegisterMess
+       "requestProfilesInfo",
+       base::Bind(&BrowserOptionsHandler::HandleRequestProfilesInfo,
+                  base::Unretained(this)));
+-#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
++#if defined(OS_POSIX) && !defined(OS_CHROMEOS)
+   web_ui()->RegisterMessageCallback(
+       "themesSetNative",
+       base::Bind(&BrowserOptionsHandler::ThemesSetNative,
+@@ -1391,7 +1391,7 @@ void BrowserOptionsHandler::ObserveTheme
+   ThemeService* theme_service = ThemeServiceFactory::GetForProfile(profile);
+   bool is_system_theme = false;
+ 
+-#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
++#if defined(OS_POSIX) && !defined(OS_CHROMEOS)
+   bool profile_is_supervised = profile->IsSupervised();
+   is_system_theme = theme_service->UsingSystemTheme();
+   base::FundamentalValue native_theme_enabled(!is_system_theme &&
+@@ -1413,7 +1413,7 @@ void BrowserOptionsHandler::ThemesReset(
+   ThemeServiceFactory::GetForProfile(profile)->UseDefaultTheme();
+ }
+ 
+-#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
++#if defined(OS_POSIX) && !defined(OS_CHROMEOS)
+ void BrowserOptionsHandler::ThemesSetNative(const base::ListValue* args) {
+   content::RecordAction(UserMetricsAction("Options_GtkThemeSet"));
+   Profile* profile = Profile::FromWebUI(web_ui());
diff --git a/chromium-new/patches/patch-chrome_browser_ui_webui_options_browser__options__handler.h b/chromium-new/patches/patch-chrome_browser_ui_webui_options_browser__options__handler.h
new file mode 100644
index 0000000..ac61312
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_ui_webui_options_browser__options__handler.h
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- chrome/browser/ui/webui/options/browser_options_handler.h.orig	2016-06-24 01:02:14.000000000 +0000
++++ chrome/browser/ui/webui/options/browser_options_handler.h
+@@ -203,7 +203,7 @@ class BrowserOptionsHandler
+ 
+   void ObserveThemeChanged();
+   void ThemesReset(const base::ListValue* args);
+-#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
++#if defined(OS_POSIX) && !defined(OS_CHROMEOS)
+   void ThemesSetNative(const base::ListValue* args);
+ #endif
+ 
diff --git a/chromium-new/patches/patch-chrome_browser_ui_webui_options_browser_options_handler_cc b/chromium-new/patches/patch-chrome_browser_ui_webui_options_browser_options_handler_cc
deleted file mode 100644
index 37da631..0000000
--- a/chromium-new/patches/patch-chrome_browser_ui_webui_options_browser_options_handler_cc
+++ /dev/null
@@ -1,39 +0,0 @@
-$OpenBSD: patch-chrome_browser_ui_webui_options_browser_options_handler_cc,v 1.19 2016/01/23 18:49:31 robert Exp $
---- chrome/browser/ui/webui/options/browser_options_handler.cc.orig.port	Wed Jan 20 21:01:20 2016
-+++ chrome/browser/ui/webui/options/browser_options_handler.cc	Fri Jan 22 19:58:58 2016
-@@ -478,7 +478,7 @@ void BrowserOptionsHandler::GetLocalizedValues(base::D
-     { "syncButtonTextStart", IDS_SYNC_SETUP_BUTTON_LABEL },
- #endif  // defined(OS_CHROMEOS)
- 
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if defined(OS_POSIX) && !defined(OS_CHROMEOS)
-     { "showWindowDecorations", IDS_SHOW_WINDOW_DECORATIONS },
-     { "themesNativeButton", IDS_THEMES_GTK_BUTTON },
-     { "themesSetClassic", IDS_THEMES_SET_CLASSIC },
-@@ -725,7 +725,7 @@ void BrowserOptionsHandler::RegisterMessages() {
-       "requestProfilesInfo",
-       base::Bind(&BrowserOptionsHandler::HandleRequestProfilesInfo,
-                  base::Unretained(this)));
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if defined(OS_POSIX) && !defined(OS_CHROMEOS)
-   web_ui()->RegisterMessageCallback(
-       "themesSetNative",
-       base::Bind(&BrowserOptionsHandler::ThemesSetNative,
-@@ -1348,7 +1348,7 @@ void BrowserOptionsHandler::ObserveThemeChanged() {
-   ThemeService* theme_service = ThemeServiceFactory::GetForProfile(profile);
-   bool is_system_theme = false;
- 
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if defined(OS_POSIX) && !defined(OS_CHROMEOS)
-   bool profile_is_supervised = profile->IsSupervised();
-   is_system_theme = theme_service->UsingSystemTheme();
-   base::FundamentalValue native_theme_enabled(!is_system_theme &&
-@@ -1370,7 +1370,7 @@ void BrowserOptionsHandler::ThemesReset(const base::Li
-   ThemeServiceFactory::GetForProfile(profile)->UseDefaultTheme();
- }
- 
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if defined(OS_POSIX) && !defined(OS_CHROMEOS)
- void BrowserOptionsHandler::ThemesSetNative(const base::ListValue* args) {
-   content::RecordAction(UserMetricsAction("Options_GtkThemeSet"));
-   Profile* profile = Profile::FromWebUI(web_ui());
diff --git a/chromium-new/patches/patch-chrome_browser_ui_webui_options_browser_options_handler_h b/chromium-new/patches/patch-chrome_browser_ui_webui_options_browser_options_handler_h
deleted file mode 100644
index 681b0bc..0000000
--- a/chromium-new/patches/patch-chrome_browser_ui_webui_options_browser_options_handler_h
+++ /dev/null
@@ -1,13 +0,0 @@
-$OpenBSD: patch-chrome_browser_ui_webui_options_browser_options_handler_h,v 1.11 2016/01/23 18:49:31 robert Exp $
---- chrome/browser/ui/webui/options/browser_options_handler.h.orig.port	Wed Jan 20 21:01:20 2016
-+++ chrome/browser/ui/webui/options/browser_options_handler.h	Fri Jan 22 19:58:58 2016
-@@ -204,7 +204,8 @@ class BrowserOptionsHandler
- 
-   void ObserveThemeChanged();
-   void ThemesReset(const base::ListValue* args);
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if defined(OS_POSIX) && !defined(OS_CHROMEOS) && !defined(OS_MACOSX) && \
-+    !defined(OS_ANDROID)
-   void ThemesSetNative(const base::ListValue* args);
- #endif
- 
diff --git a/chromium-new/patches/patch-chrome_browser_web__applications_web__app.cc b/chromium-new/patches/patch-chrome_browser_web__applications_web__app.cc
new file mode 100644
index 0000000..cbc1a01
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_web__applications_web__app.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- chrome/browser/web_applications/web_app.cc.orig	2016-06-24 01:02:14.000000000 +0000
++++ chrome/browser/web_applications/web_app.cc
+@@ -514,7 +514,7 @@ void GetIconsInfo(const WebApplicationIn
+ }
+ #endif
+ 
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD) || defined(OS_NETBSD)
+ std::string GetWMClassFromAppName(std::string app_name) {
+   base::i18n::ReplaceIllegalCharactersInPath(&app_name, '_');
+   base::TrimString(app_name, "_", &app_name);
diff --git a/chromium-new/patches/patch-chrome_browser_web__applications_web__app.h b/chromium-new/patches/patch-chrome_browser_web__applications_web__app.h
new file mode 100644
index 0000000..7fcb2e4
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_browser_web__applications_web__app.h
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- chrome/browser/web_applications/web_app.h.orig	2016-06-24 01:02:14.000000000 +0000
++++ chrome/browser/web_applications/web_app.h
+@@ -227,7 +227,7 @@ typedef std::vector<WebApplicationInfo::
+ void GetIconsInfo(const WebApplicationInfo& app_info, IconInfoList* icons);
+ #endif
+ 
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD) || defined(OS_NETBSD)
+ // Windows that correspond to web apps need to have a deterministic (and
+ // different) WMClass than normal chrome windows so the window manager groups
+ // them as a separate application.
diff --git a/chromium-new/patches/patch-chrome_browser_web_applications_web_app_cc b/chromium-new/patches/patch-chrome_browser_web_applications_web_app_cc
deleted file mode 100644
index 52e8e94..0000000
--- a/chromium-new/patches/patch-chrome_browser_web_applications_web_app_cc
+++ /dev/null
@@ -1,21 +0,0 @@
-$OpenBSD: patch-chrome_browser_web_applications_web_app_cc,v 1.17 2016/01/23 18:49:31 robert Exp $
---- chrome/browser/web_applications/web_app.cc.orig.port	Wed Jan 20 21:01:20 2016
-+++ chrome/browser/web_applications/web_app.cc	Fri Jan 22 19:58:58 2016
-@@ -53,7 +53,7 @@ namespace {
- #if defined(OS_MACOSX)
- const int kDesiredSizes[] = {16, 32, 128, 256, 512};
- const size_t kNumDesiredSizes = arraysize(kDesiredSizes);
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
- // Linux supports icons of any size. FreeDesktop Icon Theme Specification states
- // that "Minimally you should install a 48x48 icon in the hicolor theme."
- const int kDesiredSizes[] = {16, 32, 48, 128, 256, 512};
-@@ -491,7 +491,7 @@ void GetIconsInfo(const WebApplicationInfo& app_info,
- }
- #endif
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- std::string GetWMClassFromAppName(std::string app_name) {
-   base::i18n::ReplaceIllegalCharactersInPath(&app_name, '_');
-   base::TrimString(app_name, "_", &app_name);
diff --git a/chromium-new/patches/patch-chrome_browser_web_applications_web_app_h b/chromium-new/patches/patch-chrome_browser_web_applications_web_app_h
deleted file mode 100644
index b738b65..0000000
--- a/chromium-new/patches/patch-chrome_browser_web_applications_web_app_h
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_browser_web_applications_web_app_h,v 1.9 2015/10/14 16:42:07 robert Exp $
---- chrome/browser/web_applications/web_app.h.orig.port	Wed Oct  7 04:42:09 2015
-+++ chrome/browser/web_applications/web_app.h	Wed Oct 14 07:41:13 2015
-@@ -223,7 +223,7 @@ typedef std::vector<WebApplicationInfo::IconInfo> Icon
- void GetIconsInfo(const WebApplicationInfo& app_info, IconInfoList* icons);
- #endif
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- // Windows that correspond to web apps need to have a deterministic (and
- // different) WMClass than normal chrome windows so the window manager groups
- // them as a separate application.
diff --git a/chromium-new/patches/patch-chrome_chrome__browser.gypi b/chromium-new/patches/patch-chrome_chrome__browser.gypi
new file mode 100644
index 0000000..ac4299f
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_chrome__browser.gypi
@@ -0,0 +1,53 @@
+$NetBSD$
+
+--- chrome/chrome_browser.gypi.orig	2016-06-24 01:02:14.000000000 +0000
++++ chrome/chrome_browser.gypi
+@@ -3590,7 +3590,7 @@
+             '../device/media_transfer_protocol/media_transfer_protocol.gyp:device_media_transfer_protocol',
+           ],
+         }],
+-        ['OS=="linux" and chromeos==0', {
++        ['(OS=="linux" and chromeos==0) or os_bsd==1', {
+           'dependencies': [
+             '../build/linux/system.gyp:libspeechd',
+           ],
+@@ -3654,7 +3654,7 @@
+         ['use_x11==1', {
+           'sources': [ '<@(chrome_browser_x11_sources)' ],
+         }],
+-        ['os_posix == 1 and OS != "mac" and OS != "ios"', {
++        ['os_posix == 1 and OS != "mac" and OS != "ios" and os_bsd != 1', {
+           'sources': [
+             'app/chrome_crash_reporter_client.cc',
+             'app/chrome_crash_reporter_client.h',
+@@ -3786,6 +3786,12 @@
+             }],
+           ],
+         }],
++        ['os_bsd==1', {
++          'sources/': [
++            ['exclude', '^browser/media_galleries/linux/'],
++            ['exclude', '^browser/memory/system_memory_stats_recorder_linux.cc'],
++          ],
++        }],
+         ['OS=="mac"', {
+           'dependencies': [
+             '../third_party/google_toolbox_for_mac/google_toolbox_for_mac.gyp:google_toolbox_for_mac',
+@@ -3902,7 +3908,7 @@
+             }],
+           ],
+         }],
+-        ['OS=="linux"', {
++        ['OS=="linux" or os_bsd==1', {
+           'conditions': [
+             ['use_aura==1', {
+               'dependencies': [
+@@ -3921,7 +3927,7 @@
+             }],
+           ],
+         }],
+-        ['OS=="linux" or OS=="win"', {
++        ['OS=="linux" or OS=="win" or os_bsd==1', {
+             'sources': [ '<@(chrome_browser_non_mac_desktop_sources)' ],
+         }],
+         ['desktop_linux==1', {
diff --git a/chromium-new/patches/patch-chrome_chrome__browser__extensions.gypi b/chromium-new/patches/patch-chrome_chrome__browser__extensions.gypi
new file mode 100644
index 0000000..508b6e3
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_chrome__browser__extensions.gypi
@@ -0,0 +1,25 @@
+$NetBSD$
+
+--- chrome/chrome_browser_extensions.gypi.orig	2016-06-24 01:02:14.000000000 +0000
++++ chrome/chrome_browser_extensions.gypi
+@@ -1019,6 +1019,11 @@
+             '<@(chrome_browser_extensions_task_manager_enabled_sources)',
+           ],
+         }],
++        ['os_bsd==1', {
++          'sources/': [
++            ['exclude', '^browser/extensions/api/image_writer_private/removable_storage_provider_linux.cc'],
++          ],
++        }],
+         ['chromeos==1', {
+           'dependencies': [
+             '../build/linux/system.gyp:dbus',
+@@ -1061,7 +1066,7 @@
+             '../ui/views/views.gyp:views',
+           ],
+         }],
+-        ['OS=="linux"', {
++        ['OS=="linux" or os_bsd==1', {
+           'conditions': [
+             ['use_aura==1', {
+               'dependencies': [
diff --git a/chromium-new/patches/patch-chrome_chrome__browser__ui.gypi b/chromium-new/patches/patch-chrome_chrome__browser__ui.gypi
new file mode 100644
index 0000000..ae80153
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_chrome__browser__ui.gypi
@@ -0,0 +1,22 @@
+$NetBSD$
+
+--- chrome/chrome_browser_ui.gypi.orig	2016-06-24 01:02:14.000000000 +0000
++++ chrome/chrome_browser_ui.gypi
+@@ -3097,7 +3097,7 @@
+             }],
+           ],
+         }],
+-        ['use_aura==1 and chromeos==0 and use_ozone==0 and OS=="linux"', {
++        ['use_aura==1 and chromeos==0 and use_ozone==0 and (OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd")', {
+           'dependencies': [
+             # gtk2 is the only component that can interact with gtk2 in our new
+             # world.
+@@ -3282,7 +3282,7 @@
+           ],
+           'sources': [ '<@(chrome_browser_ui_desktop_linux_sources)' ],
+         }],
+-        ['OS=="linux"', {  # Both desktop Linux and ChromeOS.
++        ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd"', {  # Both desktop Linux and ChromeOS.
+           'sources': [ '<@(chrome_browser_ui_linux_sources)' ],
+           'conditions': [
+             ['use_aura==1', {
diff --git a/chromium-new/patches/patch-chrome_chrome__common.gypi b/chromium-new/patches/patch-chrome_chrome__common.gypi
new file mode 100644
index 0000000..ecc0a0a
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_chrome__common.gypi
@@ -0,0 +1,24 @@
+$NetBSD$
+
+--- chrome/chrome_common.gypi.orig	2016-06-24 01:02:14.000000000 +0000
++++ chrome/chrome_common.gypi
+@@ -32,8 +32,8 @@
+       'common/common_param_traits.cc',
+       'common/common_param_traits.h',
+       'common/common_param_traits_macros.h',
+-      'common/component_flash_hint_file_linux.cc',
+-      'common/component_flash_hint_file_linux.h',
++#      'common/component_flash_hint_file_linux.cc',
++#      'common/component_flash_hint_file_linux.h',
+       'common/content_restriction.h',
+       'common/content_settings_pattern_serializer.cc',
+       'common/content_settings_pattern_serializer.h',
+@@ -382,7 +382,7 @@
+             ['chromeos==1', {
+               'sources': [ '<@(chrome_common_extensions_chromeos_sources)' ],
+             }],
+-            ['OS=="win" or OS=="linux"', {
++            ['OS=="win" or OS=="linux" or os_bsd==1', {
+               'sources': [
+                 'common/extensions/api/input_ime/input_components_handler.cc',
+                 'common/extensions/api/input_ime/input_components_handler.h',
diff --git a/chromium-new/patches/patch-chrome_chrome__exe.gypi b/chromium-new/patches/patch-chrome_chrome__exe.gypi
new file mode 100644
index 0000000..3c9db87
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_chrome__exe.gypi
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- chrome/chrome_exe.gypi.orig	2016-06-24 01:02:14.000000000 +0000
++++ chrome/chrome_exe.gypi
+@@ -182,7 +182,7 @@
+                 '../build/linux/system.gyp:xext',
+               ],
+             }],
+-            ['OS=="linux" and enable_plugins==1', {
++            ['(OS=="linux" or os_bsd==1) and enable_plugins==1', {
+               'dependencies': [
+                 '../pdf/pdf.gyp:pdf',
+               ],
diff --git a/chromium-new/patches/patch-chrome_chrome_browser_extensions_gypi b/chromium-new/patches/patch-chrome_chrome_browser_extensions_gypi
deleted file mode 100644
index a7d2895..0000000
--- a/chromium-new/patches/patch-chrome_chrome_browser_extensions_gypi
+++ /dev/null
@@ -1,24 +0,0 @@
-$OpenBSD: patch-chrome_chrome_browser_extensions_gypi,v 1.25 2016/01/23 18:49:31 robert Exp $
---- chrome/chrome_browser_extensions.gypi.orig.port	Wed Jan 20 21:01:20 2016
-+++ chrome/chrome_browser_extensions.gypi	Fri Jan 22 19:58:58 2016
-@@ -1016,6 +1016,11 @@
-         '<@(chrome_browser_extensions_enabled_sources)',
-       ],
-       'conditions': [
-+        ['os_bsd==1', {
-+          'sources/': [
-+            ['exclude', '^browser/extensions/api/image_writer_private/removable_storage_provider_linux.cc'],
-+          ],
-+        }],
-         ['chromeos==1', {
-           'dependencies': [
-             '../build/linux/system.gyp:dbus',
-@@ -1054,7 +1059,7 @@
-             '../ui/views/views.gyp:views',
-           ],
-         }],
--        ['OS=="linux"', {
-+        ['OS=="linux" or os_bsd==1', {
-           'conditions': [
-             ['use_aura==1', {
-               'dependencies': [
diff --git a/chromium-new/patches/patch-chrome_chrome_browser_gypi b/chromium-new/patches/patch-chrome_chrome_browser_gypi
deleted file mode 100644
index 5942c37..0000000
--- a/chromium-new/patches/patch-chrome_chrome_browser_gypi
+++ /dev/null
@@ -1,43 +0,0 @@
-$OpenBSD: patch-chrome_chrome_browser_gypi,v 1.43 2016/01/29 16:56:10 robert Exp $
---- chrome/chrome_browser.gypi.orig.port	Wed Jan 27 18:00:46 2016
-+++ chrome/chrome_browser.gypi	Fri Jan 29 17:31:14 2016
-@@ -3529,7 +3529,7 @@
-             '../device/media_transfer_protocol/media_transfer_protocol.gyp:device_media_transfer_protocol',
-           ],
-         }],
--        ['OS=="linux" and chromeos==0', {
-+        ['OS=="linux" and chromeos==0 or os_bsd==1', {
-           'dependencies': [
-             '../build/linux/system.gyp:libspeechd',
-           ],
-@@ -3584,7 +3584,7 @@
-         ['use_x11==1', {
-           'sources': [ '<@(chrome_browser_x11_sources)' ],
-         }],
--        ['os_posix == 1 and OS != "mac" and OS != "ios"', {
-+        ['os_posix == 1 and OS != "mac" and OS != "ios" and os_bsd != 1', {
-           'sources': [
-             'app/chrome_crash_reporter_client.cc',
-             'app/chrome_crash_reporter_client.h',
-@@ -3706,6 +3706,12 @@
-             }],
-           ],
-         }],
-+        ['os_bsd==1', {
-+          'sources/': [
-+            ['exclude', '^browser/media_galleries/linux/'],
-+            ['exclude', '^browser/memory/system_memory_stats_recorder_linux.cc'],
-+          ],
-+        }],
-         ['OS=="mac"', {
-           'dependencies': [
-             '../third_party/google_toolbox_for_mac/google_toolbox_for_mac.gyp:google_toolbox_for_mac',
-@@ -3826,7 +3832,7 @@
-             }],
-           ],
-         }],
--        ['OS=="linux"', {
-+        ['OS=="linux" or os_bsd==1', {
-           'conditions': [
-             ['use_aura==1', {
-               'dependencies': [
diff --git a/chromium-new/patches/patch-chrome_chrome_browser_ui_gypi b/chromium-new/patches/patch-chrome_chrome_browser_ui_gypi
deleted file mode 100644
index 0f73c4f..0000000
--- a/chromium-new/patches/patch-chrome_chrome_browser_ui_gypi
+++ /dev/null
@@ -1,34 +0,0 @@
-$OpenBSD: patch-chrome_chrome_browser_ui_gypi,v 1.18 2016/01/23 18:49:31 robert Exp $
---- chrome/chrome_browser_ui.gypi.orig.port	Wed Jan 20 21:01:20 2016
-+++ chrome/chrome_browser_ui.gypi	Fri Jan 22 19:58:58 2016
-@@ -2992,7 +2992,7 @@
-             }],
-           ],
-         }],
--        ['use_aura==1 and chromeos==0 and use_ozone==0 and OS=="linux"', {
-+        ['use_aura==1 and chromeos==0 and use_ozone==0 and (OS=="linux" or OS=="openbsd")', {
-           'dependencies': [
-             # gtk2 is the only component that can interact with gtk2 in our new
-             # world.
-@@ -3000,7 +3000,7 @@
-             '../build/linux/system.gyp:gio',
-           ],
-         }],
--        ['OS=="win" or OS=="mac" or desktop_linux==1', {
-+        ['OS=="win" or OS=="mac" or desktop_linux==1 or os_bsd==1', {
-           # A temporary define to make it easier to remove CrOS dependencies on
-           # avatar button code. TODO(estade): remove.
-           'defines': [ 'FRAME_AVATAR_BUTTON=1', ],
-@@ -3167,10 +3167,10 @@
-             }],
-           ],
-         }],
--        ['desktop_linux==1', {
-+        ['desktop_linux==1 or os_bsd==1', {
-           'sources': [ '<@(chrome_browser_ui_desktop_linux_sources)' ],
-         }],
--        ['OS=="linux"', {  # Both desktop Linux and ChromeOS.
-+        ['OS=="linux" or os_bsd==1', {  # Both desktop Linux and ChromeOS.
-           'sources': [ '<@(chrome_browser_ui_linux_sources)' ],
-           'conditions': [
-             ['use_aura==1', {
diff --git a/chromium-new/patches/patch-chrome_chrome_common_gypi b/chromium-new/patches/patch-chrome_chrome_common_gypi
deleted file mode 100644
index b57aeb1..0000000
--- a/chromium-new/patches/patch-chrome_chrome_common_gypi
+++ /dev/null
@@ -1,23 +0,0 @@
-$OpenBSD: patch-chrome_chrome_common_gypi,v 1.6 2016/01/23 18:49:31 robert Exp $
---- chrome/chrome_common.gypi.orig.port	Wed Jan 20 21:01:20 2016
-+++ chrome/chrome_common.gypi	Fri Jan 22 19:58:58 2016
-@@ -392,6 +392,11 @@
-           'sources': [ '<@(chrome_common_mac_sources)' ],
-           'dependencies': [ 'app_mode_app_support' ],
-         }],
-+        ['OS=="openbsd"', {
-+          'sources/': [
-+            ['exclude', '^common/component_flash_hint_file_linux.cc'],
-+          ],
-+        }],
-         ['OS != "ios"', {
-           'dependencies': [
-             'common_mojo_bindings',
-@@ -533,6 +538,7 @@
-         }],
-         ['safe_browsing==1', {
-           'sources': [ '<@(chrome_common_full_safe_browsing_sources)', ],
-+          'dependencies': [ 'safe_browsing_proto' ],
-         }],
-       ],
-       'target_conditions': [
diff --git a/chromium-new/patches/patch-chrome_chrome_exe_gypi b/chromium-new/patches/patch-chrome_chrome_exe_gypi
deleted file mode 100644
index 7af8a2b..0000000
--- a/chromium-new/patches/patch-chrome_chrome_exe_gypi
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_chrome_exe_gypi,v 1.11 2016/01/23 18:49:31 robert Exp $
---- chrome/chrome_exe.gypi.orig.port	Wed Jan 20 21:01:20 2016
-+++ chrome/chrome_exe.gypi	Fri Jan 22 19:58:58 2016
-@@ -184,7 +184,7 @@
-                 '../build/linux/system.gyp:xext',
-               ],
-             }],
--            ['OS=="linux" and enable_plugins==1', {
-+            ['(OS=="openbsd" or OS=="linux") and enable_plugins==1', {
-               'dependencies': [
-                 '../pdf/pdf.gyp:pdf',
-               ],
diff --git a/chromium-new/patches/patch-chrome_chrome_utility_gypi b/chromium-new/patches/patch-chrome_chrome_utility_gypi
deleted file mode 100644
index 3498f33..0000000
--- a/chromium-new/patches/patch-chrome_chrome_utility_gypi
+++ /dev/null
@@ -1,11 +0,0 @@
-$OpenBSD: patch-chrome_chrome_utility_gypi,v 1.4 2015/10/14 16:42:07 robert Exp $
---- chrome/chrome_utility.gypi.orig.port	Wed Oct  7 04:42:09 2015
-+++ chrome/chrome_utility.gypi	Wed Oct 14 07:41:13 2015
-@@ -115,6 +115,7 @@
-       'variables': { 'enable_wexit_time_destructors': 1, },
-       'dependencies': [
-         '../base/base.gyp:base',
-+	'../chrome/chrome.gyp:safe_browsing_proto',
-         '../components/components_strings.gyp:components_strings',
-         '../components/components.gyp:safe_json_parser_message_filter',
-         '../components/components.gyp:search_engines',
diff --git a/chromium-new/patches/patch-chrome_common_channel__info__posix.cc b/chromium-new/patches/patch-chrome_common_channel__info__posix.cc
new file mode 100644
index 0000000..81036bc
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_common_channel__info__posix.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- chrome/common/channel_info_posix.cc.orig	2016-06-24 01:02:14.000000000 +0000
++++ chrome/common/channel_info_posix.cc
+@@ -8,6 +8,8 @@
+ #include "build/build_config.h"
+ #include "components/version_info/version_info.h"
+ 
++#include <stdlib.h>
++
+ namespace chrome {
+ 
+ namespace {
diff --git a/chromium-new/patches/patch-chrome_common_chrome__paths.cc b/chromium-new/patches/patch-chrome_common_chrome__paths.cc
new file mode 100644
index 0000000..bf335ab
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_common_chrome__paths.cc
@@ -0,0 +1,55 @@
+$NetBSD$
+
+--- chrome/common/chrome_paths.cc.orig	2016-06-24 01:02:14.000000000 +0000
++++ chrome/common/chrome_paths.cc
+@@ -170,7 +170,7 @@ bool PathProvider(int key, base::FilePat
+         return false;
+       break;
+     case chrome::DIR_DEFAULT_DOWNLOADS_SAFE:
+-#if defined(OS_WIN) || defined(OS_LINUX)
++#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD)
+       if (!GetUserDownloadsDirectorySafe(&cur))
+         return false;
+       break;
+@@ -448,10 +448,12 @@ bool PathProvider(int key, base::FilePat
+       if (!base::PathExists(cur))  // We don't want to create this
+         return false;
+       break;
+-#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_OPENBSD)
++#if defined(OS_POSIX) && !defined(OS_MACOSX)
+     case chrome::DIR_POLICY_FILES: {
+ #if defined(GOOGLE_CHROME_BUILD)
+       cur = base::FilePath(FILE_PATH_LITERAL("/etc/opt/chrome/policies"));
++#elif defined(OS_BSD)
++      cur = base::FilePath(FILE_PATH_LITERAL("/usr/local/etc/chrome/policies"));
+ #else
+       cur = base::FilePath(FILE_PATH_LITERAL("/etc/chromium/policies"));
+ #endif
+@@ -502,7 +504,7 @@ bool PathProvider(int key, base::FilePat
+ #endif
+       break;
+ 
+-#if defined(OS_LINUX) || defined(OS_MACOSX)
++#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+     case chrome::DIR_NATIVE_MESSAGING:
+ #if defined(OS_MACOSX)
+ #if defined(GOOGLE_CHROME_BUILD)
+@@ -516,6 +518,9 @@ bool PathProvider(int key, base::FilePat
+ #if defined(GOOGLE_CHROME_BUILD)
+       cur = base::FilePath(FILE_PATH_LITERAL(
+           "/etc/opt/chrome/native-messaging-hosts"));
++#elif defined(OS_BSD)
++      cur = base::FilePath(FILE_PATH_LITERAL(
++          "/usr/local/etc/chrome/native-messaging-hosts"));
+ #else
+       cur = base::FilePath(FILE_PATH_LITERAL(
+           "/etc/chromium/native-messaging-hosts"));
+@@ -528,7 +533,7 @@ bool PathProvider(int key, base::FilePat
+         return false;
+       cur = cur.Append(FILE_PATH_LITERAL("NativeMessagingHosts"));
+       break;
+-#endif  // defined(OS_LINUX) || defined(OS_MACOSX)
++#endif  // defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+ #if !defined(OS_ANDROID)
+     case chrome::DIR_GLOBAL_GCM_STORE:
+       if (!PathService::Get(chrome::DIR_USER_DATA, &cur))
diff --git a/chromium-new/patches/patch-chrome_common_chrome__paths.h b/chromium-new/patches/patch-chrome_common_chrome__paths.h
new file mode 100644
index 0000000..b505713
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_common_chrome__paths.h
@@ -0,0 +1,31 @@
+$NetBSD$
+
+--- chrome/common/chrome_paths.h.orig	2016-06-24 01:02:14.000000000 +0000
++++ chrome/common/chrome_paths.h
+@@ -46,7 +46,7 @@ enum {
+                                 // to set policies for chrome. This directory
+                                 // contains subdirectories.
+ #endif
+-#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && defined(CHROMIUM_BUILD)) || \
++#if defined(OS_CHROMEOS) || ((defined(OS_LINUX) || defined(OS_BSD)) && defined(CHROMIUM_BUILD)) || \
+     defined(OS_MACOSX)
+   DIR_USER_EXTERNAL_EXTENSIONS,  // Directory for per-user external extensions
+                                  // on Chrome Mac and Chromium Linux.
+@@ -55,7 +55,7 @@ enum {
+                                  // create it.
+ #endif
+ 
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_BSD)
+   DIR_STANDALONE_EXTERNAL_EXTENSIONS,  // Directory for 'per-extension'
+                                        // definition manifest files that
+                                        // describe extensions which are to be
+@@ -109,7 +109,7 @@ enum {
+   DIR_SUPERVISED_USER_INSTALLED_WHITELISTS,  // Directory where sanitized
+                                              // supervised user whitelists are
+                                              // installed.
+-#if defined(OS_LINUX) || defined(OS_MACOSX)
++#if defined(OS_LINUX) || defined(OS_BSD) || defined(OS_MACOSX)
+   DIR_NATIVE_MESSAGING,         // System directory where native messaging host
+                                 // manifest files are stored.
+   DIR_USER_NATIVE_MESSAGING,    // Directory with Native Messaging Hosts
diff --git a/chromium-new/patches/patch-chrome_common_chrome__paths__internal.h b/chromium-new/patches/patch-chrome_common_chrome__paths__internal.h
new file mode 100644
index 0000000..97b3593
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_common_chrome__paths__internal.h
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- chrome/common/chrome_paths_internal.h.orig	2016-06-24 01:02:14.000000000 +0000
++++ chrome/common/chrome_paths_internal.h
+@@ -39,7 +39,7 @@ void GetUserCacheDirectory(const base::F
+ // Get the path to the user's documents directory.
+ bool GetUserDocumentsDirectory(base::FilePath* result);
+ 
+-#if defined(OS_WIN) || defined(OS_LINUX)
++#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD)
+ // Gets the path to a safe default download directory for a user.
+ bool GetUserDownloadsDirectorySafe(base::FilePath* result);
+ #endif
diff --git a/chromium-new/patches/patch-chrome_common_chrome__switches.cc b/chromium-new/patches/patch-chrome_common_chrome__switches.cc
new file mode 100644
index 0000000..61cd1fc
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_common_chrome__switches.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- chrome/common/chrome_switches.cc.orig	2016-06-24 01:02:14.000000000 +0000
++++ chrome/common/chrome_switches.cc
+@@ -1298,7 +1298,7 @@ const char kTabManagementExperimentTypeE
+     "tab-management-experiment-type-elderberry";
+ #endif  // defined(OS_ANDROID)
+ 
+-#if defined(OS_WIN) || defined(OS_LINUX)
++#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD)
+ extern const char kEnableInputImeAPI[] = "enable-input-ime-api";
+ extern const char kDisableInputImeAPI[] = "disable-input-ime-api";
+ #endif
diff --git a/chromium-new/patches/patch-chrome_common_chrome__switches.h b/chromium-new/patches/patch-chrome_common_chrome__switches.h
new file mode 100644
index 0000000..abc48f1
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_common_chrome__switches.h
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- chrome/common/chrome_switches.h.orig	2016-06-24 01:02:14.000000000 +0000
++++ chrome/common/chrome_switches.h
+@@ -387,7 +387,7 @@ extern const char kDisableNewTaskManager
+ extern const char kEnableWaylandServer[];
+ #endif
+ 
+-#if defined(OS_WIN) || defined(OS_LINUX)
++#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD)
+ extern const char kEnableInputImeAPI[];
+ extern const char kDisableInputImeAPI[];
+ #endif
diff --git a/chromium-new/patches/patch-chrome_common_chrome_paths_cc b/chromium-new/patches/patch-chrome_common_chrome_paths_cc
deleted file mode 100644
index d0efe3f..0000000
--- a/chromium-new/patches/patch-chrome_common_chrome_paths_cc
+++ /dev/null
@@ -1,30 +0,0 @@
-$OpenBSD: patch-chrome_common_chrome_paths_cc,v 1.31 2015/12/12 20:20:01 robert Exp $
---- chrome/common/chrome_paths.cc.orig.port	Tue Dec  8 21:02:52 2015
-+++ chrome/common/chrome_paths.cc	Sat Dec 12 11:26:09 2015
-@@ -177,7 +177,7 @@ bool PathProvider(int key, base::FilePath* result) {
-         return false;
-       break;
-     case chrome::DIR_DEFAULT_DOWNLOADS_SAFE:
--#if defined(OS_WIN) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD)
-       if (!GetUserDownloadsDirectorySafe(&cur))
-         return false;
-       break;
-@@ -419,7 +419,7 @@ bool PathProvider(int key, base::FilePath* result) {
-       break;
- #endif
- #if defined(ENABLE_SUPERVISED_USERS)
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-     case chrome::DIR_SUPERVISED_USERS_DEFAULT_APPS:
-       if (!PathService::Get(chrome::DIR_STANDALONE_EXTERNAL_EXTENSIONS, &cur))
-         return false;
-@@ -467,7 +467,7 @@ bool PathProvider(int key, base::FilePath* result) {
-       if (!base::PathExists(cur))  // We don't want to create this
-         return false;
-       break;
--#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_OPENBSD)
-+#if defined(OS_POSIX) && !defined(OS_MACOSX)
-     case chrome::DIR_POLICY_FILES: {
- #if defined(GOOGLE_CHROME_BUILD)
-       cur = base::FilePath(FILE_PATH_LITERAL("/etc/opt/chrome/policies"));
diff --git a/chromium-new/patches/patch-chrome_common_chrome_paths_h b/chromium-new/patches/patch-chrome_common_chrome_paths_h
deleted file mode 100644
index 5f01388..0000000
--- a/chromium-new/patches/patch-chrome_common_chrome_paths_h
+++ /dev/null
@@ -1,39 +0,0 @@
-$OpenBSD: patch-chrome_common_chrome_paths_h,v 1.12 2016/01/23 18:49:31 robert Exp $
---- chrome/common/chrome_paths.h.orig.port	Thu Jan 14 02:49:22 2016
-+++ chrome/common/chrome_paths.h	Fri Jan 22 19:58:58 2016
-@@ -51,7 +51,7 @@ enum {
-   DIR_USER_LIBRARY,             // ~/Library
- #endif
- #if defined(OS_CHROMEOS) || (defined(OS_LINUX) && defined(CHROMIUM_BUILD)) || \
--    (defined(OS_MACOSX) && !defined(OS_IOS))
-+    (defined(OS_MACOSX) && !defined(OS_IOS)) || defined(OS_BSD)
-   DIR_USER_EXTERNAL_EXTENSIONS,  // Directory for per-user external extensions
-                                  // on Chrome Mac and Chromium Linux.
-                                  // On Chrome OS, this path is used for OEM
-@@ -59,7 +59,7 @@ enum {
-                                  // create it.
- #endif
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   DIR_STANDALONE_EXTERNAL_EXTENSIONS,  // Directory for 'per-extension'
-                                        // definition manifest files that
-                                        // describe extensions which are to be
-@@ -117,7 +117,7 @@ enum {
-   DIR_SUPERVISED_USER_INSTALLED_WHITELISTS,  // Directory where sanitized
-                                              // supervised user whitelists are
-                                              // installed.
--#if defined(OS_LINUX) || (defined(OS_MACOSX) && !defined(OS_IOS))
-+#if defined(OS_LINUX) || (defined(OS_MACOSX) && !defined(OS_IOS)) || defined(OS_BSD)
-   DIR_NATIVE_MESSAGING,         // System directory where native messaging host
-                                 // manifest files are stored.
-   DIR_USER_NATIVE_MESSAGING,    // Directory with Native Messaging Hosts
-@@ -132,7 +132,7 @@ enum {
-   DIR_GEN_TEST_DATA,            // Directory where generated test data resides.
-   DIR_TEST_DATA,                // Directory where unit test data resides.
-   DIR_TEST_TOOLS,               // Directory where unit test tools reside.
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   FILE_COMPONENT_FLASH_HINT,    // A file in a known location that points to
-                                 // the component updated flash plugin.
- #endif // defined(OS_LINUX)
diff --git a/chromium-new/patches/patch-chrome_common_chrome_paths_internal_h b/chromium-new/patches/patch-chrome_common_chrome_paths_internal_h
deleted file mode 100644
index 46812cb..0000000
--- a/chromium-new/patches/patch-chrome_common_chrome_paths_internal_h
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_common_chrome_paths_internal_h,v 1.1 2015/05/24 15:51:53 robert Exp $
---- chrome/common/chrome_paths_internal.h.orig.port	Sat May 23 00:59:48 2015
-+++ chrome/common/chrome_paths_internal.h	Sat May 23 01:07:58 2015
-@@ -39,7 +39,7 @@ void GetUserCacheDirectory(const base::FilePath& profi
- // Get the path to the user's documents directory.
- bool GetUserDocumentsDirectory(base::FilePath* result);
- 
--#if defined(OS_WIN) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD)
- // Gets the path to a safe default download directory for a user.
- bool GetUserDownloadsDirectorySafe(base::FilePath* result);
- #endif
diff --git a/chromium-new/patches/patch-chrome_common_chrome_switches_cc b/chromium-new/patches/patch-chrome_common_chrome_switches_cc
deleted file mode 100644
index 4744d5a..0000000
--- a/chromium-new/patches/patch-chrome_common_chrome_switches_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_common_chrome_switches_cc,v 1.18 2016/01/29 16:56:10 robert Exp $
---- chrome/common/chrome_switches.cc.orig.port	Wed Jan 27 18:00:46 2016
-+++ chrome/common/chrome_switches.cc	Thu Jan 28 07:31:23 2016
-@@ -1168,7 +1168,7 @@ const char kHelpShort[]                     = "h";
- const char kPasswordStore[]                 = "password-store";
- #endif
- 
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
- // Triggers migration of user data directory to another directory
- // specified as a parameter. The migration is done under singleton lock,
- // and sanity checks are made to avoid corrupting the profile.
diff --git a/chromium-new/patches/patch-chrome_common_chrome_switches_h b/chromium-new/patches/patch-chrome_common_chrome_switches_h
deleted file mode 100644
index 673a373..0000000
--- a/chromium-new/patches/patch-chrome_common_chrome_switches_h
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_common_chrome_switches_h,v 1.24 2016/01/29 16:56:10 robert Exp $
---- chrome/common/chrome_switches.h.orig.port	Wed Jan 27 18:00:46 2016
-+++ chrome/common/chrome_switches.h	Thu Jan 28 07:31:23 2016
-@@ -329,7 +329,7 @@ extern const char kHelpShort[];
- extern const char kPasswordStore[];
- #endif
- 
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_BSD) || defined(OS_LINUX)) && !defined(OS_CHROMEOS)
- extern const char kMigrateDataDirForSxS[];
- #endif
- 
diff --git a/chromium-new/patches/patch-chrome_common_component__flash__hint__file__linux.h b/chromium-new/patches/patch-chrome_common_component__flash__hint__file__linux.h
new file mode 100644
index 0000000..3b35ac3
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_common_component__flash__hint__file__linux.h
@@ -0,0 +1,16 @@
+$NetBSD$
+
+--- chrome/common/component_flash_hint_file_linux.h.orig	2016-06-24 01:02:14.000000000 +0000
++++ chrome/common/component_flash_hint_file_linux.h
+@@ -7,9 +7,9 @@
+ 
+ #include "build/build_config.h"
+ 
+-#if !defined(OS_LINUX)
++#if !defined(OS_LINUX) && !defined(OS_FREEBSD)
+ #error "This file only applies to the Linux component update of Flash."
+-#endif  // !defined(OS_LINUX)
++#endif  // !defined(OS_LINUX) && !defined(OS_FREEBSD)
+ 
+ #include <string>
+ 
diff --git a/chromium-new/patches/patch-chrome_common_extensions_api_schemas.gypi b/chromium-new/patches/patch-chrome_common_extensions_api_schemas.gypi
new file mode 100644
index 0000000..636d44f
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_common_extensions_api_schemas.gypi
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- chrome/common/extensions/api/schemas.gypi.orig	2016-06-24 01:02:14.000000000 +0000
++++ chrome/common/extensions/api/schemas.gypi
+@@ -184,7 +184,7 @@
+         ],
+       }, { # chromeos==0
+         'conditions': [
+-          ['OS=="linux" or OS=="win"', {
++          ['OS=="linux" or OS=="win" or os_bsd==1', {
+             'schema_files': [
+               '<@(input_ime_schema_file)',
+             ],
diff --git a/chromium-new/patches/patch-chrome_common_extensions_api_schemas_gypi b/chromium-new/patches/patch-chrome_common_extensions_api_schemas_gypi
deleted file mode 100644
index fe2c434..0000000
--- a/chromium-new/patches/patch-chrome_common_extensions_api_schemas_gypi
+++ /dev/null
@@ -1,15 +0,0 @@
-$OpenBSD: patch-chrome_common_extensions_api_schemas_gypi,v 1.10 2016/01/23 18:49:31 robert Exp $
---- chrome/common/extensions/api/schemas.gypi.orig.port	Wed Jan 20 21:01:20 2016
-+++ chrome/common/extensions/api/schemas.gypi	Fri Jan 22 19:58:58 2016
-@@ -173,6 +173,11 @@
-           '<@(webrtc_schema_files)',
-         ],
-       }],
-+      ['enable_webrtc==0', {
-+        'schema_files': [
-+          'webrtc_logging_private.idl',
-+        ],
-+      }],
-     ],
-     'cc_dir': 'chrome/common/extensions/api',
-     'root_namespace': 'extensions::api::%(namespace)s',
diff --git a/chromium-new/patches/patch-chrome_common_extensions_command.cc b/chromium-new/patches/patch-chrome_common_extensions_command.cc
new file mode 100644
index 0000000..89b0448
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_common_extensions_command.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- chrome/common/extensions/command.cc.orig	2016-06-24 01:02:14.000000000 +0000
++++ chrome/common/extensions/command.cc
+@@ -306,7 +306,7 @@ std::string Command::CommandPlatform() {
+   return values::kKeybindingPlatformMac;
+ #elif defined(OS_CHROMEOS)
+   return values::kKeybindingPlatformChromeOs;
+-#elif defined(OS_LINUX)
++#elif defined(OS_LINUX) || defined(OS_BSD)
+   return values::kKeybindingPlatformLinux;
+ #else
+   return "";
diff --git a/chromium-new/patches/patch-chrome_common_extensions_command_cc b/chromium-new/patches/patch-chrome_common_extensions_command_cc
deleted file mode 100644
index a195715..0000000
--- a/chromium-new/patches/patch-chrome_common_extensions_command_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_common_extensions_command_cc,v 1.2 2015/03/18 19:26:29 robert Exp $
---- chrome/common/extensions/command.cc.orig.port	Tue Mar 10 23:29:08 2015
-+++ chrome/common/extensions/command.cc	Wed Mar 11 07:22:50 2015
-@@ -301,7 +301,7 @@ std::string Command::CommandPlatform() {
-   return values::kKeybindingPlatformMac;
- #elif defined(OS_CHROMEOS)
-   return values::kKeybindingPlatformChromeOs;
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
-   return values::kKeybindingPlatformLinux;
- #else
-   return "";
diff --git a/chromium-new/patches/patch-chrome_common_pref__names.cc b/chromium-new/patches/patch-chrome_common_pref__names.cc
new file mode 100644
index 0000000..262dcc4
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_common_pref__names.cc
@@ -0,0 +1,22 @@
+$NetBSD$
+
+--- chrome/common/pref_names.cc.orig	2016-06-24 01:02:15.000000000 +0000
++++ chrome/common/pref_names.cc
+@@ -908,7 +908,7 @@ const char kForceYouTubeSafetyMode[] = "
+ // supervised users.
+ const char kRecordHistory[] = "settings.history_recorded";
+ 
+-#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
++#if (defined(OS_LINUX) && !defined(OS_CHROMEOS)) || defined(OS_BSD)
+ // Linux specific preference on whether we should match the system theme.
+ const char kUsesSystemTheme[] = "extensions.theme.use_system";
+ #endif
+@@ -1373,7 +1373,7 @@ const char kDownloadDefaultDirectory[] =
+ // upgrade a unsafe location to a safe location.
+ const char kDownloadDirUpgraded[] = "download.directory_upgrade";
+ 
+-#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
++#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+ const char kOpenPdfDownloadInSystemReader[] =
+     "download.open_pdf_in_system_reader";
+ #endif
diff --git a/chromium-new/patches/patch-chrome_common_pref__names.h b/chromium-new/patches/patch-chrome_common_pref__names.h
new file mode 100644
index 0000000..f4371a0
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_common_pref__names.h
@@ -0,0 +1,22 @@
+$NetBSD$
+
+--- chrome/common/pref_names.h.orig	2016-06-24 01:02:15.000000000 +0000
++++ chrome/common/pref_names.h
+@@ -307,7 +307,7 @@ extern const char kRecordHistory[];
+ extern const char kDeleteTimePeriod[];
+ extern const char kLastClearBrowsingDataTime[];
+ extern const char kClearBrowsingDataHistoryNoticeShownTimes[];
+-#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
++#if (defined(OS_LINUX) && !defined(OS_CHROMEOS)) || defined(OS_BSD)
+ extern const char kUsesSystemTheme[];
+ #endif
+ extern const char kCurrentThemePackFilename[];
+@@ -477,7 +477,7 @@ extern const char kAppWindowPlacement[];
+ extern const char kDownloadDefaultDirectory[];
+ extern const char kDownloadExtensionsToOpen[];
+ extern const char kDownloadDirUpgraded[];
+-#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
++#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
+ extern const char kOpenPdfDownloadInSystemReader[];
+ #endif
+ 
diff --git a/chromium-new/patches/patch-chrome_common_pref_names_cc b/chromium-new/patches/patch-chrome_common_pref_names_cc
deleted file mode 100644
index 76b0084..0000000
--- a/chromium-new/patches/patch-chrome_common_pref_names_cc
+++ /dev/null
@@ -1,21 +0,0 @@
-$OpenBSD: patch-chrome_common_pref_names_cc,v 1.21 2016/01/23 18:49:31 robert Exp $
---- chrome/common/pref_names.cc.orig.port	Wed Jan 20 21:01:20 2016
-+++ chrome/common/pref_names.cc	Fri Jan 22 19:58:58 2016
-@@ -883,7 +883,7 @@ const char kForceYouTubeSafetyMode[] = "settings.force
- // supervised users.
- const char kRecordHistory[] = "settings.history_recorded";
- 
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) && !defined(OS_CHROMEOS)) || defined(OS_BSD)
- // Linux specific preference on whether we should match the system theme.
- const char kUsesSystemTheme[] = "extensions.theme.use_system";
- #endif
-@@ -1354,7 +1354,7 @@ const char kDownloadDefaultDirectory[] = "download.def
- // upgrade a unsafe location to a safe location.
- const char kDownloadDirUpgraded[] = "download.directory_upgrade";
- 
--#if defined(OS_WIN) || defined(OS_LINUX) || \
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD) || \
-     (defined(OS_MACOSX) && !defined(OS_IOS))
- const char kOpenPdfDownloadInSystemReader[] =
-     "download.open_pdf_in_system_reader";
diff --git a/chromium-new/patches/patch-chrome_common_pref_names_h b/chromium-new/patches/patch-chrome_common_pref_names_h
deleted file mode 100644
index f7abe97..0000000
--- a/chromium-new/patches/patch-chrome_common_pref_names_h
+++ /dev/null
@@ -1,21 +0,0 @@
-$OpenBSD: patch-chrome_common_pref_names_h,v 1.21 2016/01/23 18:49:31 robert Exp $
---- chrome/common/pref_names.h.orig.port	Wed Jan 20 21:01:20 2016
-+++ chrome/common/pref_names.h	Fri Jan 22 19:58:58 2016
-@@ -291,7 +291,7 @@ extern const char kForceYouTubeSafetyMode[];
- extern const char kRecordHistory[];
- extern const char kDeleteTimePeriod[];
- extern const char kLastClearBrowsingDataTime[];
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) && !defined(OS_CHROMEOS)) || defined(OS_BSD)
- extern const char kUsesSystemTheme[];
- #endif
- extern const char kCurrentThemePackFilename[];
-@@ -462,7 +462,7 @@ extern const char kAppWindowPlacement[];
- extern const char kDownloadDefaultDirectory[];
- extern const char kDownloadExtensionsToOpen[];
- extern const char kDownloadDirUpgraded[];
--#if defined(OS_WIN) || defined(OS_LINUX) || \
-+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD) || \
-     (defined(OS_MACOSX) && !defined(OS_IOS))
- extern const char kOpenPdfDownloadInSystemReader[];
- #endif
diff --git a/chromium-new/patches/patch-chrome_common_url_constants_cc b/chromium-new/patches/patch-chrome_common_url_constants_cc
deleted file mode 100644
index b103540..0000000
--- a/chromium-new/patches/patch-chrome_common_url_constants_cc
+++ /dev/null
@@ -1,21 +0,0 @@
-$OpenBSD: patch-chrome_common_url_constants_cc,v 1.10 2016/01/23 18:49:31 robert Exp $
---- chrome/common/url_constants.cc.orig.port	Wed Jan 20 21:01:20 2016
-+++ chrome/common/url_constants.cc	Fri Jan 22 19:58:58 2016
-@@ -130,7 +130,7 @@ const char kChromeUIGestureConfigURL[] = "chrome://ges
- const char kChromeUIGestureConfigHost[] = "gesture";
- #endif
- 
--#if (defined(OS_LINUX) && defined(TOOLKIT_VIEWS)) || defined(USE_AURA)
-+#if ((defined(OS_BSD) || defined(OS_LINUX)) && defined(TOOLKIT_VIEWS)) || defined(USE_AURA)
- const char kChromeUITabModalConfirmDialogURL[] =
-     "chrome://tab-modal-confirm-dialog/";
- #endif
-@@ -317,7 +317,7 @@ const char kChromeOSAssetPath[] = "/usr/share/chromeos
- const char kChromeUIMetroFlowHost[] = "make-metro";
- #endif
- 
--#if (defined(OS_LINUX) && defined(TOOLKIT_VIEWS)) || defined(USE_AURA)
-+#if ((defined(OS_BSD) || defined(OS_LINUX)) && defined(TOOLKIT_VIEWS)) || defined(USE_AURA)
- const char kChromeUITabModalConfirmDialogHost[] = "tab-modal-confirm-dialog";
- #endif
- 
diff --git a/chromium-new/patches/patch-chrome_common_url_constants_h b/chromium-new/patches/patch-chrome_common_url_constants_h
deleted file mode 100644
index 671536e..0000000
--- a/chromium-new/patches/patch-chrome_common_url_constants_h
+++ /dev/null
@@ -1,21 +0,0 @@
-$OpenBSD: patch-chrome_common_url_constants_h,v 1.10 2016/01/23 18:49:31 robert Exp $
---- chrome/common/url_constants.h.orig.port	Wed Jan 20 21:01:20 2016
-+++ chrome/common/url_constants.h	Fri Jan 22 19:58:58 2016
-@@ -123,7 +123,7 @@ extern const char kChromeUIGestureConfigURL[];
- extern const char kChromeUIGestureConfigHost[];
- #endif
- 
--#if (defined(OS_LINUX) && defined(TOOLKIT_VIEWS)) || defined(USE_AURA)
-+#if ((defined(OS_BSD) || defined(OS_LINUX)) && defined(TOOLKIT_VIEWS)) || defined(USE_AURA)
- extern const char kChromeUITabModalConfirmDialogURL[];
- #endif
- 
-@@ -300,7 +300,7 @@ extern const char kChromeOSAssetPath[];
- extern const char kChromeUIMetroFlowHost[];
- #endif
- 
--#if (defined(OS_LINUX) && defined(TOOLKIT_VIEWS)) || defined(USE_AURA)
-+#if ((defined(OS_BSD) || defined(OS_LINUX)) && defined(TOOLKIT_VIEWS)) || defined(USE_AURA)
- extern const char kChromeUITabModalConfirmDialogHost[];
- #endif
- 
diff --git a/chromium-new/patches/patch-chrome_common_variations_fieldtrial__testing__config.gyp b/chromium-new/patches/patch-chrome_common_variations_fieldtrial__testing__config.gyp
new file mode 100644
index 0000000..ee3ba7d
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_common_variations_fieldtrial__testing__config.gyp
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- chrome/common/variations/fieldtrial_testing_config.gyp.orig	2016-06-24 01:02:15.000000000 +0000
++++ chrome/common/variations/fieldtrial_testing_config.gyp
+@@ -19,7 +19,7 @@
+       'conditions': [
+         ['OS!="android"', {'sources/': [['exclude', '_android\\.json$']]}],
+         ['OS!="win"', {'sources/': [['exclude', '_win\\.json$']]}],
+-        ['OS!="linux" or chromeos==1', {'sources/': [['exclude', '_linux\\.json$']]}],
++        ['(OS!="linux" or chromeos==1) and os_bsd!=1', {'sources/': [['exclude', '_linux\\.json$']]}],
+         ['OS!="mac"', {'sources/': [['exclude', '_mac\\.json$']]}],
+         ['chromeos!=1', {'sources/': [['exclude', '_chromeos\\.json$']]}],
+         ['OS!="ios"', {'sources/': [['exclude', '_ios\\.json$']]}],
diff --git a/chromium-new/patches/patch-chrome_common_variations_fieldtrial_testing_config_gyp b/chromium-new/patches/patch-chrome_common_variations_fieldtrial_testing_config_gyp
deleted file mode 100644
index 4b49c65..0000000
--- a/chromium-new/patches/patch-chrome_common_variations_fieldtrial_testing_config_gyp
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_common_variations_fieldtrial_testing_config_gyp,v 1.1 2015/10/14 16:42:07 robert Exp $
---- chrome/common/variations/fieldtrial_testing_config.gyp.orig.port	Wed Oct 14 17:21:45 2015
-+++ chrome/common/variations/fieldtrial_testing_config.gyp	Wed Oct 14 17:21:57 2015
-@@ -19,7 +19,7 @@
-       'conditions': [
-         ['OS!="android"', {'sources/': [['exclude', '_android\\.json$']]}],
-         ['OS!="win"', {'sources/': [['exclude', '_win\\.json$']]}],
--        ['OS!="linux" or chromeos==1', {'sources/': [['exclude', '_linux\\.json$']]}],
-+        ['(OS!="linux" and OS!="openbsd") or chromeos==1', {'sources/': [['exclude', '_linux\\.json$']]}],
-         ['OS!="mac"', {'sources/': [['exclude', '_mac\\.json$']]}],
-         ['chromeos!=1', {'sources/': [['exclude', '_chromeos\\.json$']]}],
-         ['OS!="ios"', {'sources/': [['exclude', '_ios\\.json$']]}],
diff --git a/chromium-new/patches/patch-chrome_policy_templates_gypi b/chromium-new/patches/patch-chrome_policy_templates_gypi
deleted file mode 100644
index 5dcaebb..0000000
--- a/chromium-new/patches/patch-chrome_policy_templates_gypi
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_policy_templates_gypi,v 1.1 2015/12/12 20:20:01 robert Exp $
---- chrome/policy_templates.gypi.orig.port	Sat Dec 12 13:56:36 2015
-+++ chrome/policy_templates.gypi	Sat Dec 12 14:04:08 2015
-@@ -8,7 +8,7 @@
-       'target_name': 'pack_policy_templates',
-       'type': 'none',
-       'conditions': [
--        ['OS=="win" or OS=="mac" or OS=="linux"', {
-+        ['OS=="win" or OS=="mac" or OS=="linux" or os_bsd==1', {
-           'dependencies': [
-             '../components/components.gyp:policy_templates',
-           ],
diff --git a/chromium-new/patches/patch-chrome_renderer_pepper_pepper__flash__font__file__host.cc b/chromium-new/patches/patch-chrome_renderer_pepper_pepper__flash__font__file__host.cc
new file mode 100644
index 0000000..dc65a81
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_renderer_pepper_pepper__flash__font__file__host.cc
@@ -0,0 +1,40 @@
+$NetBSD$
+
+--- chrome/renderer/pepper/pepper_flash_font_file_host.cc.orig	2016-06-24 01:02:15.000000000 +0000
++++ chrome/renderer/pepper/pepper_flash_font_file_host.cc
+@@ -14,7 +14,7 @@
+ #include "ppapi/proxy/ppapi_messages.h"
+ #include "ppapi/proxy/serialized_structs.h"
+ 
+-#if defined(OS_LINUX) || defined(OS_OPENBSD)
++#if defined(OS_LINUX) || defined(OS_BSD)
+ #include "content/public/common/child_process_sandbox_support_linux.h"
+ #elif defined(OS_WIN)
+ #include "third_party/skia/include/ports/SkFontMgr.h"
+@@ -27,7 +27,7 @@ PepperFlashFontFileHost::PepperFlashFont
+     const ppapi::proxy::SerializedFontDescription& description,
+     PP_PrivateFontCharset charset)
+     : ResourceHost(host->GetPpapiHost(), instance, resource) {
+-#if defined(OS_LINUX) || defined(OS_OPENBSD)
++#if defined(OS_LINUX) || defined(OS_BSD)
+   fd_.reset(content::MatchFontWithFallback(
+       description.face,
+       description.weight >= PP_BROWSERFONT_TRUSTED_WEIGHT_BOLD,
+@@ -44,7 +44,7 @@ PepperFlashFontFileHost::PepperFlashFont
+   skia::RefPtr<SkFontMgr> font_mgr = skia::AdoptRef(SkFontMgr::RefDefault());
+   typeface_ = skia::AdoptRef(
+       font_mgr->matchFamilyStyle(description.face.c_str(), style));
+-#endif  // defined(OS_LINUX) || defined(OS_OPENBSD)
++#endif  // defined(OS_LINUX) || defined(OS_BSD)
+ }
+ 
+ PepperFlashFontFileHost::~PepperFlashFontFileHost() {}
+@@ -63,7 +63,7 @@ bool PepperFlashFontFileHost::GetFontDat
+                                           void* buffer,
+                                           size_t* length) {
+   bool result = false;
+-#if defined(OS_LINUX) || defined(OS_OPENBSD)
++#if defined(OS_LINUX) || defined(OS_BSD)
+   int fd = fd_.get();
+   if (fd != -1)
+     result = content::GetFontTable(fd, table, 0 /* offset */,
diff --git a/chromium-new/patches/patch-chrome_renderer_pepper_pepper__flash__font__file__host.h b/chromium-new/patches/patch-chrome_renderer_pepper_pepper__flash__font__file__host.h
new file mode 100644
index 0000000..c396b98
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_renderer_pepper_pepper__flash__font__file__host.h
@@ -0,0 +1,22 @@
+$NetBSD$
+
+--- chrome/renderer/pepper/pepper_flash_font_file_host.h.orig	2016-06-24 01:02:15.000000000 +0000
++++ chrome/renderer/pepper/pepper_flash_font_file_host.h
+@@ -14,7 +14,7 @@
+ #include "ppapi/c/private/pp_private_font_charset.h"
+ #include "ppapi/host/resource_host.h"
+ 
+-#if defined(OS_LINUX) || defined(OS_OPENBSD)
++#if defined(OS_LINUX) || defined(OS_BSD)
+ #include "base/files/scoped_file.h"
+ #elif defined(OS_WIN)
+ #include "skia/ext/refptr.h"
+@@ -50,7 +50,7 @@ class PepperFlashFontFileHost : public p
+                          uint32_t table);
+   bool GetFontData(uint32_t table, void* buffer, size_t* length);
+ 
+-#if defined(OS_LINUX) || defined(OS_OPENBSD)
++#if defined(OS_LINUX) || defined(OS_BSD)
+   base::ScopedFD fd_;
+ #elif defined(OS_WIN)
+   skia::RefPtr<SkTypeface> typeface_;
diff --git a/chromium-new/patches/patch-chrome_renderer_resources_neterror_js b/chromium-new/patches/patch-chrome_renderer_resources_neterror_js
deleted file mode 100644
index 478cbc9..0000000
--- a/chromium-new/patches/patch-chrome_renderer_resources_neterror_js
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_renderer_resources_neterror_js,v 1.3 2016/01/23 18:49:31 robert Exp $
---- chrome/renderer/resources/neterror.js.orig.port	Wed Jan 20 21:01:20 2016
-+++ chrome/renderer/resources/neterror.js	Fri Jan 22 19:58:58 2016
-@@ -153,7 +153,7 @@ function setUpCachedButton(buttonStrings) {
- }
- 
- var primaryControlOnLeft = true;
--<if expr="is_macosx or is_ios or is_linux or is_android">
-+<if expr="is_macosx or is_ios or is_linux or is_android or is_bsd">
- primaryControlOnLeft = false;
- </if>
- 
diff --git a/chromium-new/patches/patch-chrome_test_base_in__process__browser__test.cc b/chromium-new/patches/patch-chrome_test_base_in__process__browser__test.cc
new file mode 100644
index 0000000..f37f60f
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_test_base_in__process__browser__test.cc
@@ -0,0 +1,15 @@
+$NetBSD$
+
+--- chrome/test/base/in_process_browser_test.cc.orig	2016-06-24 01:02:15.000000000 +0000
++++ chrome/test/base/in_process_browser_test.cc
+@@ -89,6 +89,10 @@
+ 
+ namespace {
+ 
++#if defined(OS_FREEBSD)
++#include <signal.h>
++#endif
++
+ // Passed as value of kTestType.
+ const char kBrowserTestType[] = "browser";
+ 
diff --git a/chromium-new/patches/patch-chrome_test_base_testing__browser__process.h b/chromium-new/patches/patch-chrome_test_base_testing__browser__process.h
new file mode 100644
index 0000000..f621671
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_test_base_testing__browser__process.h
@@ -0,0 +1,15 @@
+$NetBSD$
+
+--- chrome/test/base/testing_browser_process.h.orig	2016-06-24 01:02:15.000000000 +0000
++++ chrome/test/base/testing_browser_process.h
+@@ -102,8 +102,8 @@ class TestingBrowserProcess : public Bro
+   DownloadStatusUpdater* download_status_updater() override;
+   DownloadRequestLimiter* download_request_limiter() override;
+ 
+-#if (defined(OS_WIN) || defined(OS_LINUX)) && !defined(OS_CHROMEOS)
+-  void StartAutoupdateTimer() override {}
++#if (defined(OS_WIN) || defined(OS_LINUX) || defined(OS_FREEBSD)) && !defined(OS_CHROMEOS)
++  void StartAutoupdateTimer() /*override*/ {}
+ #endif
+ 
+   net_log::ChromeNetLog* net_log() override;
diff --git a/chromium-new/patches/patch-chrome_test_chromedriver_chrome_chrome__finder.cc b/chromium-new/patches/patch-chrome_test_chromedriver_chrome_chrome__finder.cc
new file mode 100644
index 0000000..728b337
--- /dev/null
+++ b/chromium-new/patches/patch-chrome_test_chromedriver_chrome_chrome__finder.cc
@@ -0,0 +1,22 @@
+$NetBSD$
+
+--- chrome/test/chromedriver/chrome/chrome_finder.cc.orig	2016-06-24 01:02:15.000000000 +0000
++++ chrome/test/chromedriver/chrome/chrome_finder.cc
+@@ -45,7 +45,7 @@ void GetApplicationDirs(std::vector<base
+         installation_locations[i].Append(L"Chromium\\Application"));
+   }
+ }
+-#elif defined(OS_LINUX)
++#elif defined(OS_LINUX) || defined(OS_BSD)
+ void GetApplicationDirs(std::vector<base::FilePath>* locations) {
+   locations->push_back(base::FilePath("/opt/google/chrome"));
+   locations->push_back(base::FilePath("/usr/local/bin"));
+@@ -95,7 +95,7 @@ bool FindChrome(base::FilePath* browser_
+ #elif defined(OS_MACOSX)
+       base::FilePath("Google Chrome.app/Contents/MacOS/Google Chrome"),
+       base::FilePath("Chromium.app/Contents/MacOS/Chromium")
+-#elif defined(OS_LINUX)
++#elif defined(OS_LINUX) || defined(OS_BSD)
+       base::FilePath("google-chrome"),
+       base::FilePath("chrome"),
+       base::FilePath("chromium"),
diff --git a/chromium-new/patches/patch-chrome_utility_media_galleries_image_metadata_extractor_cc b/chromium-new/patches/patch-chrome_utility_media_galleries_image_metadata_extractor_cc
deleted file mode 100644
index cbf4019..0000000
--- a/chromium-new/patches/patch-chrome_utility_media_galleries_image_metadata_extractor_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-chrome_utility_media_galleries_image_metadata_extractor_cc,v 1.3 2015/12/05 16:13:32 robert Exp $
---- chrome/utility/media_galleries/image_metadata_extractor.cc.orig.port	Fri Nov 13 12:04:16 2015
-+++ chrome/utility/media_galleries/image_metadata_extractor.cc	Wed Dec  2 08:18:32 2015
-@@ -103,7 +103,7 @@ class ExifFunctions {
-     base::FilePath module_path = module_dir.AppendASCII("libexif.so");
- #else
-     // On Linux-like systems, we use the system libexif.
--    base::FilePath module_path = base::FilePath().AppendASCII("libexif.so.12");
-+    base::FilePath module_path = base::FilePath().AppendASCII("libexif.so");
- #endif
- 
-     base::NativeLibraryLoadError error;
diff --git a/chromium-new/patches/patch-chromecast_browser_cast_browser_main_parts_cc b/chromium-new/patches/patch-chromecast_browser_cast_browser_main_parts_cc
deleted file mode 100644
index 147674e..0000000
--- a/chromium-new/patches/patch-chromecast_browser_cast_browser_main_parts_cc
+++ /dev/null
@@ -1,30 +0,0 @@
-$OpenBSD: patch-chromecast_browser_cast_browser_main_parts_cc,v 1.1 2016/01/23 18:49:31 robert Exp $
---- chromecast/browser/cast_browser_main_parts.cc.orig.port	Fri Jan 22 22:20:14 2016
-+++ chromecast/browser/cast_browser_main_parts.cc	Fri Jan 22 22:20:28 2016
-@@ -9,7 +9,7 @@
- #include <signal.h>
- #include <sys/prctl.h>
- #endif
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- #include <fontconfig/fontconfig.h>
- #endif
- 
-@@ -179,7 +179,7 @@ DefaultCommandLineSwitch g_default_switches[] = {
- #if defined(DISABLE_DISPLAY)
-   { switches::kDisableGpu, "" },
- #endif
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- #if defined(ARCH_CPU_X86_FAMILY)
-   // This is needed for now to enable the egltest Ozone platform to work with
-   // current Linux/NVidia OpenGL drivers.
-@@ -259,7 +259,7 @@ void CastBrowserMainParts::PostMainMessageLoopStart() 
- }
- 
- void CastBrowserMainParts::ToolkitInitialized() {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   // Without this call, the FontConfig library gets implicitly initialized
-   // on the first call to FontConfig. Since it's not safe to initialize it
-   // concurrently from multiple threads, we explicitly initialize it here
diff --git a/chromium-new/patches/patch-components_audio_modem_modem_impl_cc b/chromium-new/patches/patch-components_audio_modem_modem_impl_cc
deleted file mode 100644
index 49b10be..0000000
--- a/chromium-new/patches/patch-components_audio_modem_modem_impl_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-components_audio_modem_modem_impl_cc,v 1.1 2015/04/27 16:38:25 robert Exp $
---- components/audio_modem/modem_impl.cc.orig.port	Wed Apr 15 15:37:11 2015
-+++ components/audio_modem/modem_impl.cc	Wed Apr 15 15:41:00 2015
-@@ -8,6 +8,8 @@
- #include <limits>
- #include <vector>
- 
-+#include <math.h>
-+
- #include "base/bind.h"
- #include "base/bind_helpers.h"
- #include "base/command_line.h"
diff --git a/chromium-new/patches/patch-components_autofill_content_renderer_password__form__conversion__utils.cc b/chromium-new/patches/patch-components_autofill_content_renderer_password__form__conversion__utils.cc
new file mode 100644
index 0000000..d22d53b
--- /dev/null
+++ b/chromium-new/patches/patch-components_autofill_content_renderer_password__form__conversion__utils.cc
@@ -0,0 +1,16 @@
+$NetBSD$
+
+--- components/autofill/content/renderer/password_form_conversion_utils.cc.orig	2016-06-24 01:02:17.000000000 +0000
++++ components/autofill/content/renderer/password_form_conversion_utils.cc
+@@ -25,7 +25,11 @@
+ #include "third_party/WebKit/public/web/WebFormControlElement.h"
+ #include "third_party/WebKit/public/web/WebFrame.h"
+ #include "third_party/WebKit/public/web/WebInputElement.h"
++#if defined(OS_BSD)
++#include <re2/re2.h>
++#else
+ #include "third_party/re2/src/re2/re2.h"
++#endif
+ 
+ using blink::WebDocument;
+ using blink::WebFormControlElement;
diff --git a/chromium-new/patches/patch-components_autofill_core_browser_form__structure.cc b/chromium-new/patches/patch-components_autofill_core_browser_form__structure.cc
new file mode 100644
index 0000000..675c296
--- /dev/null
+++ b/chromium-new/patches/patch-components_autofill_core_browser_form__structure.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+--- components/autofill/core/browser/form_structure.cc.orig	2016-06-24 01:02:17.000000000 +0000
++++ components/autofill/core/browser/form_structure.cc
+@@ -33,7 +33,11 @@
+ #include "components/autofill/core/common/form_field_data_predictions.h"
+ #include "components/rappor/rappor_service.h"
+ #include "components/rappor/rappor_utils.h"
+-#include "third_party/re2/src/re2/re2.h"
++#if defined(OS_BSD)
++#  include <re2/re2.h>
++#else
++#  include "third_party/re2/src/re2/re2.h"
++#endif
+ 
+ namespace autofill {
+ namespace {
diff --git a/chromium-new/patches/patch-components_cookie__config_cookie__store__util.cc b/chromium-new/patches/patch-components_cookie__config_cookie__store__util.cc
new file mode 100644
index 0000000..1e83c9e
--- /dev/null
+++ b/chromium-new/patches/patch-components_cookie__config_cookie__store__util.cc
@@ -0,0 +1,26 @@
+$NetBSD$
+
+--- components/cookie_config/cookie_store_util.cc.orig	2016-06-24 01:02:17.000000000 +0000
++++ components/cookie_config/cookie_store_util.cc
+@@ -11,7 +11,7 @@
+ 
+ namespace cookie_config {
+ 
+-#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
++#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
+ namespace {
+ 
+ // Use the operating system's mechanisms to encrypt cookies before writing
+@@ -63,10 +63,10 @@ base::LazyInstance<CookieOSCryptoDelegat
+ net::CookieCryptoDelegate* GetCookieCryptoDelegate() {
+   return g_cookie_crypto_delegate.Pointer();
+ }
+-#else   // defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
++#else   // defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
+ net::CookieCryptoDelegate* GetCookieCryptoDelegate() {
+   return NULL;
+ }
+-#endif  // defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
++#endif  // defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
+ 
+ }  // namespace cookie_config
diff --git a/chromium-new/patches/patch-components_cookie_config_cookie_store_util_cc b/chromium-new/patches/patch-components_cookie_config_cookie_store_util_cc
deleted file mode 100644
index 05ec49b..0000000
--- a/chromium-new/patches/patch-components_cookie_config_cookie_store_util_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-components_cookie_config_cookie_store_util_cc,v 1.1 2016/01/23 18:49:31 robert Exp $
---- components/cookie_config/cookie_store_util.cc.orig.port	Fri Jan 22 22:02:29 2016
-+++ components/cookie_config/cookie_store_util.cc	Fri Jan 22 22:02:35 2016
-@@ -10,7 +10,7 @@
- 
- namespace cookie_config {
- 
--#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
- namespace {
- 
- // Use the operating system's mechanisms to encrypt cookies before writing
diff --git a/chromium-new/patches/patch-components_dom__distiller_core_page__features.cc b/chromium-new/patches/patch-components_dom__distiller_core_page__features.cc
new file mode 100644
index 0000000..c4fca33
--- /dev/null
+++ b/chromium-new/patches/patch-components_dom__distiller_core_page__features.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+--- components/dom_distiller/core/page_features.cc.orig	2016-06-24 01:02:17.000000000 +0000
++++ components/dom_distiller/core/page_features.cc
+@@ -10,7 +10,11 @@
+ 
+ #include "base/json/json_reader.h"
+ #include "base/memory/scoped_ptr.h"
+-#include "third_party/re2/src/re2/re2.h"
++#if defined(OS_BSD)
++#  include <re2/re2.h>
++#else
++#  include "third_party/re2/src/re2/re2.h"
++#endif // defined(OS_BSD)
+ #include "url/gurl.h"
+ 
+ namespace dom_distiller {
diff --git a/chromium-new/patches/patch-components_drive_drive__api__util.cc b/chromium-new/patches/patch-components_drive_drive__api__util.cc
new file mode 100644
index 0000000..54e7868
--- /dev/null
+++ b/chromium-new/patches/patch-components_drive_drive__api__util.cc
@@ -0,0 +1,16 @@
+$NetBSD$
+
+--- components/drive/drive_api_util.cc.orig	2016-06-24 01:02:17.000000000 +0000
++++ components/drive/drive_api_util.cc
+@@ -22,7 +22,11 @@
+ #include "google_apis/drive/drive_api_parser.h"
+ #include "net/base/escape.h"
+ #include "net/base/net_errors.h"
++#if defined(OS_BSD)
++#include <re2/re2.h>
++#else
+ #include "third_party/re2/src/re2/re2.h"
++#endif
+ #include "url/gurl.h"
+ 
+ namespace drive {
diff --git a/chromium-new/patches/patch-components_feedback_anonymizer__tool.cc b/chromium-new/patches/patch-components_feedback_anonymizer__tool.cc
new file mode 100644
index 0000000..7424af5
--- /dev/null
+++ b/chromium-new/patches/patch-components_feedback_anonymizer__tool.cc
@@ -0,0 +1,16 @@
+$NetBSD$
+
+--- components/feedback/anonymizer_tool.cc.orig	2016-06-24 01:02:17.000000000 +0000
++++ components/feedback/anonymizer_tool.cc
+@@ -9,7 +9,11 @@
+ #include "base/strings/string_number_conversions.h"
+ #include "base/strings/string_util.h"
+ #include "base/strings/stringprintf.h"
++#if defined(OS_BSD)
++#include <re2/re2.h>
++#else
+ #include "third_party/re2/src/re2/re2.h"
++#endif
+ 
+ using re2::RE2;
+ 
diff --git a/chromium-new/patches/patch-components_flags__ui_flags__state.cc b/chromium-new/patches/patch-components_flags__ui_flags__state.cc
new file mode 100644
index 0000000..02e5d80
--- /dev/null
+++ b/chromium-new/patches/patch-components_flags__ui_flags__state.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- components/flags_ui/flags_state.cc.orig	2016-06-24 01:02:17.000000000 +0000
++++ components/flags_ui/flags_state.cc
+@@ -450,7 +450,7 @@ int FlagsState::GetCurrentPlatform() {
+   return kOsWin;
+ #elif defined(OS_CHROMEOS)  // Needs to be before the OS_LINUX check.
+   return kOsCrOS;
+-#elif defined(OS_LINUX) || defined(OS_OPENBSD)
++#elif defined(OS_LINUX) || defined(OS_OPENBSD) || defined(OS_FREEBSD) || defined(OS_NETBSD)
+   return kOsLinux;
+ #elif defined(OS_ANDROID)
+   return kOsAndroid;
diff --git a/chromium-new/patches/patch-components_html_viewer_blink_settings_impl_cc b/chromium-new/patches/patch-components_html_viewer_blink_settings_impl_cc
deleted file mode 100644
index c0c1070..0000000
--- a/chromium-new/patches/patch-components_html_viewer_blink_settings_impl_cc
+++ /dev/null
@@ -1,21 +0,0 @@
-$OpenBSD: patch-components_html_viewer_blink_settings_impl_cc,v 1.1 2016/01/23 18:49:31 robert Exp $
---- components/html_viewer/blink_settings_impl.cc.orig.port	Fri Jan 22 22:21:05 2016
-+++ components/html_viewer/blink_settings_impl.cc	Fri Jan 22 22:21:13 2016
-@@ -21,7 +21,7 @@
- #include "url/gurl.h"
- #endif
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- #include "third_party/WebKit/public/web/linux/WebFontRendering.h"
- #endif
- 
-@@ -384,7 +384,7 @@ void BlinkSettingsImpl::ApplySettings(blink::WebView* 
- #endif
- }
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- // TODO(rjkroege): Some of this information needs to be plumbed out of
- // mus into the html_viewer. Most of this information needs to be
- // dynamically adjustable (e.g. if I move a mandoline PlatformWindow from
diff --git a/chromium-new/patches/patch-components_json__schema_json__schema__validator.cc b/chromium-new/patches/patch-components_json__schema_json__schema__validator.cc
new file mode 100644
index 0000000..740dfa0
--- /dev/null
+++ b/chromium-new/patches/patch-components_json__schema_json__schema__validator.cc
@@ -0,0 +1,16 @@
+$NetBSD$
+
+--- components/json_schema/json_schema_validator.cc.orig	2016-06-24 01:02:18.000000000 +0000
++++ components/json_schema/json_schema_validator.cc
+@@ -20,7 +20,11 @@
+ #include "base/strings/stringprintf.h"
+ #include "base/values.h"
+ #include "components/json_schema/json_schema_constants.h"
++#if defined(OS_BSD)
++#include <re2/re2.h>
++#else
+ #include "third_party/re2/src/re2/re2.h"
++#endif
+ 
+ namespace schema = json_schema_constants;
+ 
diff --git a/chromium-new/patches/patch-components_keyed__service_core_dependency__graph__unittest.cc b/chromium-new/patches/patch-components_keyed__service_core_dependency__graph__unittest.cc
new file mode 100644
index 0000000..589d8fc
--- /dev/null
+++ b/chromium-new/patches/patch-components_keyed__service_core_dependency__graph__unittest.cc
@@ -0,0 +1,16 @@
+$NetBSD$
+
+--- components/keyed_service/core/dependency_graph_unittest.cc.orig	2016-06-24 01:02:18.000000000 +0000
++++ components/keyed_service/core/dependency_graph_unittest.cc
+@@ -9,7 +9,11 @@
+ #include "components/keyed_service/core/dependency_graph.h"
+ #include "components/keyed_service/core/dependency_node.h"
+ #include "testing/gtest/include/gtest/gtest.h"
++#if defined(OS_BSD)
++#include <re2/re2.h>
++#else
+ #include "third_party/re2/src/re2/re2.h"
++#endif
+ 
+ namespace {
+ 
diff --git a/chromium-new/patches/patch-components_metrics_drive__metrics__provider__linux.cc b/chromium-new/patches/patch-components_metrics_drive__metrics__provider__linux.cc
new file mode 100644
index 0000000..88c480e
--- /dev/null
+++ b/chromium-new/patches/patch-components_metrics_drive__metrics__provider__linux.cc
@@ -0,0 +1,18 @@
+$NetBSD$
+
+--- components/metrics/drive_metrics_provider_linux.cc.orig	2016-06-24 01:02:18.000000000 +0000
++++ components/metrics/drive_metrics_provider_linux.cc
+@@ -4,7 +4,13 @@
+ 
+ #include "components/metrics/drive_metrics_provider.h"
+ 
++#if defined(OS_BSD)
++#include <sys/types.h>
++#define MAJOR(dev) major(dev)
++#define MINOR(dev) minor(dev)
++#else
+ #include <linux/kdev_t.h>  // For MAJOR()/MINOR().
++#endif
+ #include <sys/stat.h>
+ #include <string>
+ 
diff --git a/chromium-new/patches/patch-components_metrics_drive_metrics_provider_linux_cc b/chromium-new/patches/patch-components_metrics_drive_metrics_provider_linux_cc
deleted file mode 100644
index f91fffa..0000000
--- a/chromium-new/patches/patch-components_metrics_drive_metrics_provider_linux_cc
+++ /dev/null
@@ -1,17 +0,0 @@
-$OpenBSD: patch-components_metrics_drive_metrics_provider_linux_cc,v 1.1 2015/10/14 16:42:07 robert Exp $
---- components/metrics/drive_metrics_provider_linux.cc.orig.port	Wed Oct 14 07:45:52 2015
-+++ components/metrics/drive_metrics_provider_linux.cc	Wed Oct 14 07:46:06 2015
-@@ -4,7 +4,13 @@
- 
- #include "components/metrics/drive_metrics_provider.h"
- 
-+#if defined(OS_BSD)
-+#include <sys/types.h>
-+#define MAJOR(dev) major(dev)
-+#define MINOR(dev) minor(dev)
-+#else
- #include <linux/kdev_t.h>  // For MAJOR()/MINOR().
-+#endif
- #include <sys/stat.h>
- #include <string>
- 
diff --git a/chromium-new/patches/patch-components_metrics_gypi b/chromium-new/patches/patch-components_metrics_gypi
deleted file mode 100644
index 8d540f3..0000000
--- a/chromium-new/patches/patch-components_metrics_gypi
+++ /dev/null
@@ -1,11 +0,0 @@
-$OpenBSD: patch-components_metrics_gypi,v 1.1 2015/12/05 16:13:32 robert Exp $
---- components/metrics.gypi.orig.port	Thu Dec  3 08:23:07 2015
-+++ components/metrics.gypi	Thu Dec  3 09:53:48 2015
-@@ -74,7 +74,6 @@
-         'metrics/stability_metrics_helper.cc',
-         'metrics/stability_metrics_helper.h',
-         'metrics/system_memory_stats_recorder.h',
--        'metrics/system_memory_stats_recorder_linux.cc',
-         'metrics/system_memory_stats_recorder_win.cc',
-         'metrics/url_constants.cc',
-         'metrics/url_constants.h',
diff --git a/chromium-new/patches/patch-components_metrics_system__memory__stats__recorder__linux.cc b/chromium-new/patches/patch-components_metrics_system__memory__stats__recorder__linux.cc
new file mode 100644
index 0000000..7d75a0e
--- /dev/null
+++ b/chromium-new/patches/patch-components_metrics_system__memory__stats__recorder__linux.cc
@@ -0,0 +1,20 @@
+$NetBSD$
+
+--- components/metrics/system_memory_stats_recorder_linux.cc.orig	2016-06-24 01:02:18.000000000 +0000
++++ components/metrics/system_memory_stats_recorder_linux.cc
+@@ -30,6 +30,7 @@ namespace metrics {
+   UMA_HISTOGRAM_LINEAR(name, sample, 2500, 50)
+ 
+ void RecordMemoryStats(RecordMemoryStatsType type) {
++#if !defined(OS_FREEBSD) && !defined(OS_NETBSD)
+   base::SystemMemoryInfoKB memory;
+   if (!base::GetSystemMemoryInfo(&memory))
+     return;
+@@ -93,6 +94,7 @@ void RecordMemoryStats(RecordMemoryStats
+       break;
+     }
+   }
++#endif // !defined(OS_FREEBSD) && !defined(OS_NETBSD)
+ }
+ 
+ }  // namespace metrics
diff --git a/chromium-new/patches/patch-components_neterror_resources_neterror.js b/chromium-new/patches/patch-components_neterror_resources_neterror.js
new file mode 100644
index 0000000..ed2c786
--- /dev/null
+++ b/chromium-new/patches/patch-components_neterror_resources_neterror.js
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- components/neterror/resources/neterror.js.orig	2016-06-24 01:02:18.000000000 +0000
++++ components/neterror/resources/neterror.js
+@@ -147,7 +147,7 @@ function setUpCachedButton(buttonStrings
+ }
+ 
+ var primaryControlOnLeft = true;
+-<if expr="is_macosx or is_ios or is_linux or is_android">
++<if expr="is_macosx or is_ios or is_linux or is_android or is_bsd">
+ primaryControlOnLeft = false;
+ </if>
+ 
diff --git a/chromium-new/patches/patch-components_omnibox_browser_omnibox_field_trial_cc b/chromium-new/patches/patch-components_omnibox_browser_omnibox_field_trial_cc
deleted file mode 100644
index d5f2331..0000000
--- a/chromium-new/patches/patch-components_omnibox_browser_omnibox_field_trial_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-components_omnibox_browser_omnibox_field_trial_cc,v 1.3 2015/12/05 16:13:32 robert Exp $
---- components/omnibox/browser/omnibox_field_trial.cc.orig.port	Tue Nov 24 21:00:54 2015
-+++ components/omnibox/browser/omnibox_field_trial.cc	Wed Dec  2 08:18:32 2015
-@@ -170,7 +170,7 @@ bool OmniboxFieldTrial::InZeroSuggestFieldTrial() {
-   if (variations::GetVariationParamValue(
-           kBundledExperimentFieldTrialName, kZeroSuggestRule) == "false")
-     return false;
--#if defined(OS_IOS)
-+#if defined(OS_IOS) || defined(OS_BSD)
-   return false;
- #else
-   return true;
diff --git a/chromium-new/patches/patch-components_password__manager_core_browser_import_csv__reader.cc b/chromium-new/patches/patch-components_password__manager_core_browser_import_csv__reader.cc
new file mode 100644
index 0000000..c0b7e7b
--- /dev/null
+++ b/chromium-new/patches/patch-components_password__manager_core_browser_import_csv__reader.cc
@@ -0,0 +1,16 @@
+$NetBSD$
+
+--- components/password_manager/core/browser/import/csv_reader.cc.orig	2016-06-24 01:02:18.000000000 +0000
++++ components/password_manager/core/browser/import/csv_reader.cc
+@@ -9,7 +9,11 @@
+ #include "base/logging.h"
+ #include "base/macros.h"
+ #include "base/strings/string_util.h"
++#if defined(OS_BSD)
++#include <re2/re2.h>
++#else
+ #include "third_party/re2/src/re2/re2.h"
++#endif
+ 
+ namespace {
+ 
diff --git a/chromium-new/patches/patch-components_plugins_renderer_plugin__placeholder.cc b/chromium-new/patches/patch-components_plugins_renderer_plugin__placeholder.cc
new file mode 100644
index 0000000..81b1d80
--- /dev/null
+++ b/chromium-new/patches/patch-components_plugins_renderer_plugin__placeholder.cc
@@ -0,0 +1,16 @@
+$NetBSD$
+
+--- components/plugins/renderer/plugin_placeholder.cc.orig	2016-06-24 01:02:18.000000000 +0000
++++ components/plugins/renderer/plugin_placeholder.cc
+@@ -11,7 +11,11 @@
+ #include "gin/object_template_builder.h"
+ #include "third_party/WebKit/public/web/WebElement.h"
+ #include "third_party/WebKit/public/web/WebPluginContainer.h"
++#if defined(OS_BSD)
++#include <re2/re2.h>
++#else
+ #include "third_party/re2/src/re2/re2.h"
++#endif
+ 
+ namespace plugins {
+ 
diff --git a/chromium-new/patches/patch-components_policy_core_common_schema.cc b/chromium-new/patches/patch-components_policy_core_common_schema.cc
new file mode 100644
index 0000000..6e5f7e4
--- /dev/null
+++ b/chromium-new/patches/patch-components_policy_core_common_schema.cc
@@ -0,0 +1,16 @@
+$NetBSD$
+
+--- components/policy/core/common/schema.cc.orig	2016-06-24 01:02:18.000000000 +0000
++++ components/policy/core/common/schema.cc
+@@ -21,7 +21,11 @@
+ #include "components/json_schema/json_schema_constants.h"
+ #include "components/json_schema/json_schema_validator.h"
+ #include "components/policy/core/common/schema_internal.h"
++#if defined(OS_FREEBSD) || defined(OS_NETBSD)
++#include <re2/re2.h>
++#else
+ #include "third_party/re2/src/re2/re2.h"
++#endif
+ 
+ namespace schema = json_schema_constants;
+ 
diff --git a/chromium-new/patches/patch-components_policy_resources_policy__templates.json b/chromium-new/patches/patch-components_policy_resources_policy__templates.json
new file mode 100644
index 0000000..d4a0cb0
--- /dev/null
+++ b/chromium-new/patches/patch-components_policy_resources_policy__templates.json
@@ -0,0 +1,31 @@
+$NetBSD$
+
+--- components/policy/resources/policy_templates.json.orig	2016-06-24 01:02:18.000000000 +0000
++++ components/policy/resources/policy_templates.json
+@@ -1924,7 +1924,7 @@
+           'name': 'GSSAPILibraryName',
+           'type': 'string',
+           'schema': { 'type': 'string' },
+-          'supported_on': ['chrome.linux:9-'],
++          'supported_on': ['chrome.linux:9-', 'chrome.freebsd:9-', 'chrome.netbsd:9-'],
+           'features': {
+             'dynamic_refresh': False,
+             'per_profile': False,
+@@ -4587,7 +4587,7 @@
+       'name': 'RequireOnlineRevocationChecksForLocalAnchors',
+       'type': 'main',
+       'schema': { 'type': 'boolean' },
+-      'supported_on': ['chrome_os:30-', 'chrome.linux:30-', 'chrome.win:30-'],
++      'supported_on': ['chrome_os:30-', 'chrome.linux:30-', 'chrome.freebsd:30-', 'chrome.win:30-', 'chrome.netbsd:30-'],
+       'features': {
+         'dynamic_refresh': True,
+         'per_profile': False,
+@@ -5416,7 +5416,7 @@
+       'name': 'BackgroundModeEnabled',
+       'type': 'main',
+       'schema': { 'type': 'boolean' },
+-      'supported_on': ['chrome.win:19-', 'chrome.linux:19-'],
++      'supported_on': ['chrome.win:19-', 'chrome.linux:19-', 'chrome.freebsd:19-', 'chrome.netbsd:19-'],
+       'features': {
+         'can_be_recommended': True,
+         'dynamic_refresh': True,
diff --git a/chromium-new/patches/patch-components_policy_resources_policy_templates_json b/chromium-new/patches/patch-components_policy_resources_policy_templates_json
deleted file mode 100644
index 20c4e3c..0000000
--- a/chromium-new/patches/patch-components_policy_resources_policy_templates_json
+++ /dev/null
@@ -1,30 +0,0 @@
-$OpenBSD: patch-components_policy_resources_policy_templates_json,v 1.14 2016/01/23 18:49:31 robert Exp $
---- components/policy/resources/policy_templates.json.orig.port	Wed Jan 20 21:01:20 2016
-+++ components/policy/resources/policy_templates.json	Fri Jan 22 19:58:58 2016
-@@ -1892,7 +1892,7 @@
-           'name': 'GSSAPILibraryName',
-           'type': 'string',
-           'schema': { 'type': 'string' },
--          'supported_on': ['chrome.linux:9-'],
-+          'supported_on': ['chrome.linux:9-', 'chrome.openbsd:9-'],
-           'features': {
-             'dynamic_refresh': False,
-             'per_profile': False,
-@@ -4447,7 +4447,7 @@
-       'name': 'RequireOnlineRevocationChecksForLocalAnchors',
-       'type': 'main',
-       'schema': { 'type': 'boolean' },
--      'supported_on': ['chrome_os:30-', 'chrome.linux:30-', 'chrome.win:30-'],
-+      'supported_on': ['chrome_os:30-', 'chrome.linux:30-', 'chrome.win:30-', 'chrome.openbsd:30-'],
-       'features': {
-         'dynamic_refresh': True,
-         'per_profile': False,
-@@ -5276,7 +5276,7 @@
-       'name': 'BackgroundModeEnabled',
-       'type': 'main',
-       'schema': { 'type': 'boolean' },
--      'supported_on': ['chrome.win:19-', 'chrome.linux:19-'],
-+      'supported_on': ['chrome.win:19-', 'chrome.linux:19-', 'chrome.openbsd:19-'],
-       'features': {
-         'can_be_recommended': True,
-         'dynamic_refresh': True,
diff --git a/chromium-new/patches/patch-components_policy_tools_generate__policy__source.py b/chromium-new/patches/patch-components_policy_tools_generate__policy__source.py
new file mode 100644
index 0000000..f99caa3
--- /dev/null
+++ b/chromium-new/patches/patch-components_policy_tools_generate__policy__source.py
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- components/policy/tools/generate_policy_source.py.orig	2016-06-24 01:02:19.000000000 +0000
++++ components/policy/tools/generate_policy_source.py
+@@ -102,7 +102,7 @@ class PolicyDetails:
+       if platform.startswith('chrome.'):
+         platform_sub = platform[7:]
+         if platform_sub == '*':
+-          self.platforms.extend(['win', 'mac', 'linux'])
++          self.platforms.extend(['win', 'mac', 'linux', 'freebsd', 'netbsd'])
+         else:
+           self.platforms.append(platform_sub)
+       else:
diff --git a/chromium-new/patches/patch-components_policy_tools_generate_policy_source_py b/chromium-new/patches/patch-components_policy_tools_generate_policy_source_py
deleted file mode 100644
index 99edb8f..0000000
--- a/chromium-new/patches/patch-components_policy_tools_generate_policy_source_py
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-components_policy_tools_generate_policy_source_py,v 1.8 2016/01/23 18:49:31 robert Exp $
---- components/policy/tools/generate_policy_source.py.orig.port	Wed Jan 20 21:01:21 2016
-+++ components/policy/tools/generate_policy_source.py	Fri Jan 22 19:58:58 2016
-@@ -98,7 +98,7 @@ class PolicyDetails:
-       if platform.startswith('chrome.'):
-         platform_sub = platform[7:]
-         if platform_sub == '*':
--          self.platforms.extend(['win', 'mac', 'linux'])
-+          self.platforms.extend(['win', 'mac', 'linux', 'openbsd'])
-         else:
-           self.platforms.append(platform_sub)
-       else:
diff --git a/chromium-new/patches/patch-components_printing_renderer_print_web_view_helper_h b/chromium-new/patches/patch-components_printing_renderer_print_web_view_helper_h
deleted file mode 100644
index dc12d2d..0000000
--- a/chromium-new/patches/patch-components_printing_renderer_print_web_view_helper_h
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-components_printing_renderer_print_web_view_helper_h,v 1.2 2015/07/23 13:44:04 robert Exp $
---- components/printing/renderer/print_web_view_helper.h.orig.port	Wed Jul 15 22:30:02 2015
-+++ components/printing/renderer/print_web_view_helper.h	Wed Jul 22 08:37:29 2015
-@@ -254,7 +254,7 @@ class PrintWebViewHelper
-   void FinishFramePrinting();
- 
-   // Prints the page listed in |params|.
--#if defined(OS_LINUX) || defined(OS_ANDROID)
-+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD)
-   void PrintPageInternal(const PrintMsg_PrintPage_Params& params,
-                          blink::WebFrame* frame,
-                          PdfMetafileSkia* metafile);
diff --git a/chromium-new/patches/patch-components_storage__monitor.gypi b/chromium-new/patches/patch-components_storage__monitor.gypi
new file mode 100644
index 0000000..e8d53ef
--- /dev/null
+++ b/chromium-new/patches/patch-components_storage__monitor.gypi
@@ -0,0 +1,31 @@
+$NetBSD$
+
+--- components/storage_monitor.gypi.orig	2016-06-24 01:02:19.000000000 +0000
++++ components/storage_monitor.gypi
+@@ -50,6 +50,26 @@
+         'storage_monitor/volume_mount_watcher_win.h',
+       ],
+       'conditions': [
++        ['os_bsd == 1', {
++          'sources!': [
++            'storage_monitor/media_transfer_protocol_device_observer_linux.cc',
++            'storage_monitor/media_transfer_protocol_device_observer_linux.h',
++            'storage_monitor/test_media_transfer_protocol_manager_linux.cc',
++            'storage_monitor/test_media_transfer_protocol_manager_linux.h',
++            'storage_monitor/mtab_watcher_linux.cc',
++            'storage_monitor/mtab_watcher_linux.h',
++            'storage_monitor/storage_monitor_linux.cc',
++            'storage_monitor/storage_monitor_linux.h',
++            'storage_monitor/udev_util_linux.cc',
++            'storage_monitor/udev_util_linux.h',
++          ],
++        }],
++        ['OS == "freebsd"', {
++          'sources': [
++            'storage_monitor/storage_monitor_freebsd.cc',
++            'storage_monitor/storage_monitor_freebsd.h',
++          ],
++        }],
+         ['OS == "mac"', {
+           'link_settings': {
+             'libraries': [
diff --git a/chromium-new/patches/patch-components_storage__monitor_storage__monitor.cc b/chromium-new/patches/patch-components_storage__monitor_storage__monitor.cc
new file mode 100644
index 0000000..8bbf06c
--- /dev/null
+++ b/chromium-new/patches/patch-components_storage__monitor_storage__monitor.cc
@@ -0,0 +1,20 @@
+$NetBSD$
+
+--- components/storage_monitor/storage_monitor.cc.orig	2016-06-24 01:02:19.000000000 +0000
++++ components/storage_monitor/storage_monitor.cc
+@@ -85,6 +85,7 @@ std::vector<StorageInfo> StorageMonitor:
+ 
+ void StorageMonitor::EnsureInitialized(base::Closure callback) {
+   DCHECK(thread_checker_.CalledOnValidThread());
++//#if !defined(OS_BSD) //XXX(rene) why disabled?
+   if (initialized_) {
+     if (!callback.is_null())
+       callback.Run();
+@@ -100,6 +101,7 @@ void StorageMonitor::EnsureInitialized(b
+ 
+   initializing_ = true;
+   Init();
++//#endif
+ }
+ 
+ bool StorageMonitor::IsInitialized() const {
diff --git a/chromium-new/patches/patch-components_storage__monitor_storage__monitor__freebsd.cc b/chromium-new/patches/patch-components_storage__monitor_storage__monitor__freebsd.cc
new file mode 100644
index 0000000..cc6f246
--- /dev/null
+++ b/chromium-new/patches/patch-components_storage__monitor_storage__monitor__freebsd.cc
@@ -0,0 +1,106 @@
+$NetBSD$
+
+--- components/storage_monitor/storage_monitor_freebsd.cc.orig	2016-07-10 13:25:12.307704674 +0000
++++ components/storage_monitor/storage_monitor_freebsd.cc
+@@ -0,0 +1,101 @@
++// Copyright 2014 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.
++
++// StorageMonitorFreeBSD implementation.
++
++#include "components/storage_monitor/storage_monitor_freebsd.h"
++
++#include <stdio.h>
++
++#include <list>
++
++#include "base/bind.h"
++#include "base/metrics/histogram.h"
++#include "base/process/kill.h"
++#include "base/process/launch.h"
++#include "base/stl_util.h"
++#include "base/strings/string_number_conversions.h"
++#include "base/strings/string_util.h"
++#include "base/strings/utf_string_conversions.h"
++#include "components/storage_monitor/media_storage_util.h"
++#include "components/storage_monitor/removable_device_constants.h"
++#include "components/storage_monitor/storage_info.h"
++
++using content::BrowserThread;
++
++namespace storage_monitor {
++
++namespace {
++
++// udev device property constants.
++const char kBlockSubsystemKey[] = "block";
++const char kDiskDeviceTypeKey[] = "disk";
++const char kFsUUID[] = "ID_FS_UUID";
++const char kLabel[] = "ID_FS_LABEL";
++const char kModel[] = "ID_MODEL";
++const char kModelID[] = "ID_MODEL_ID";
++const char kRemovableSysAttr[] = "removable";
++const char kSerialShort[] = "ID_SERIAL_SHORT";
++const char kSizeSysAttr[] = "size";
++const char kVendor[] = "ID_VENDOR";
++const char kVendorID[] = "ID_VENDOR_ID";
++
++StorageMonitor::EjectStatus EjectPathOnFileThread(
++    const base::FilePath& path,
++    const base::FilePath& device) {
++  DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
++
++  static const char kUmountBinary[] = "/sbin/umount";
++  std::vector<std::string> command;
++  command.push_back(kUmountBinary);
++  command.push_back(path.value());
++
++  base::LaunchOptions options;
++  base::Process process = base::LaunchProcess(command, options);
++  if (!process.IsValid())
++    return StorageMonitor::EJECT_FAILURE;
++
++  int exit_code = -1;
++  if (!process.WaitForExitWithTimeout(base::TimeDelta::FromMilliseconds(3000),
++                                      &exit_code)) {
++    process.Terminate(-1, false);
++    base::EnsureProcessTerminated(std::move(process));
++    return StorageMonitor::EJECT_FAILURE;
++  }
++
++  // TODO(gbillock): Make sure this is found in documentation
++  // somewhere. Experimentally it seems to hold that exit code
++  // 1 means device is in use.
++  if (exit_code == 1)
++    return StorageMonitor::EJECT_IN_USE;
++  if (exit_code != 0)
++    return StorageMonitor::EJECT_FAILURE;
++
++  return StorageMonitor::EJECT_OK;
++}
++
++}  // namespace
++
++StorageMonitorFreeBSD::StorageMonitorFreeBSD() {
++  DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
++}
++
++StorageMonitorFreeBSD::~StorageMonitorFreeBSD() {
++  DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
++}
++
++void StorageMonitorFreeBSD::Init() {
++}
++
++bool StorageMonitorFreeBSD::GetStorageInfoForPath(
++    const base::FilePath& path,
++    StorageInfo* device_info) const {
++  return false; // TODO
++}
++
++StorageMonitor* StorageMonitor::CreateInternal() {
++  return new StorageMonitorFreeBSD();
++}
++
++} // namespace storage_monitor
diff --git a/chromium-new/patches/patch-components_storage__monitor_storage__monitor__freebsd.h b/chromium-new/patches/patch-components_storage__monitor_storage__monitor__freebsd.h
new file mode 100644
index 0000000..8298762
--- /dev/null
+++ b/chromium-new/patches/patch-components_storage__monitor_storage__monitor__freebsd.h
@@ -0,0 +1,51 @@
+$NetBSD$
+
+--- components/storage_monitor/storage_monitor_freebsd.h.orig	2016-07-10 13:25:12.308178834 +0000
++++ components/storage_monitor/storage_monitor_freebsd.h
+@@ -0,0 +1,46 @@
++// Copyright 2014 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.
++
++// StorageMonitorFreeBSD processes mount point change events, notifies listeners
++// about the addition and deletion of media devices, and answers queries about
++// mounted devices.
++// StorageMonitorFreeBSD lives on the UI thread, and uses ???
++// the FILE thread to get mount point change events.
++
++#ifndef COMPONENTS_STORAGE_MONITOR_STORAGE_MONITOR_FREEBSD_H_
++#define COMPONENTS_STORAGE_MONITOR_STORAGE_MONITOR_FREEBSD_H_
++
++#include <map>
++#include <string>
++
++#include "base/compiler_specific.h"
++#include "base/files/file_path.h"
++#include "base/files/file_path_watcher.h"
++#include "base/memory/scoped_ptr.h"
++#include "base/memory/weak_ptr.h"
++#include "components/storage_monitor/storage_monitor.h"
++#include "content/public/browser/browser_thread.h"
++
++namespace storage_monitor {
++
++class StorageMonitorFreeBSD : public StorageMonitor {
++ public:
++  // Should only be called by browser start up code.
++  // Use StorageMonitor::GetInstance() instead.
++  explicit StorageMonitorFreeBSD();
++  virtual ~StorageMonitorFreeBSD();
++
++  // Must be called for StorageMonitorFreeBSD to work.
++  virtual void Init() override;
++ private:
++  // StorageMonitor implementation.
++  virtual bool GetStorageInfoForPath(const base::FilePath& path,
++                                     StorageInfo* device_info) const override;
++
++  DISALLOW_COPY_AND_ASSIGN(StorageMonitorFreeBSD);
++};
++
++} // namespace storage_monitor
++
++#endif  // COMPONENTS_STORAGE_MONITOR_STORAGE_MONITOR_FREEBSD_H_
diff --git a/chromium-new/patches/patch-components_storage_monitor_gypi b/chromium-new/patches/patch-components_storage_monitor_gypi
deleted file mode 100644
index 54af697..0000000
--- a/chromium-new/patches/patch-components_storage_monitor_gypi
+++ /dev/null
@@ -1,26 +0,0 @@
-$OpenBSD: patch-components_storage_monitor_gypi,v 1.2 2014/10/13 06:49:19 robert Exp $
---- components/storage_monitor.gypi.orig.port	Thu Oct  2 19:18:56 2014
-+++ components/storage_monitor.gypi	Fri Oct 10 16:10:30 2014
-@@ -50,6 +50,22 @@
-         'storage_monitor/volume_mount_watcher_win.h',
-       ],
-       'conditions': [
-+        ['os_bsd == 1', {
-+          'sources!': [
-+            'storage_monitor/media_transfer_protocol_device_observer_linux.cc',
-+            'storage_monitor/media_transfer_protocol_device_observer_linux.h',
-+            'storage_monitor/mtab_watcher_linux.cc',
-+            'storage_monitor/mtab_watcher_linux.h',
-+            'storage_monitor/storage_monitor_linux.cc',
-+            'storage_monitor/storage_monitor_linux.h',
-+            'storage_monitor/udev_util_linux.cc',
-+            'storage_monitor/udev_util_linux.h',
-+          ],
-+          'sources': [
-+            'storage_monitor/storage_monitor_openbsd.cc',
-+            'storage_monitor/storage_monitor_openbsd.h',
-+          ],
-+        }],
-         ['OS == "mac"', {
-           'link_settings': {
-             'libraries': [
diff --git a/chromium-new/patches/patch-components_storage_monitor_storage_monitor_openbsd_cc b/chromium-new/patches/patch-components_storage_monitor_storage_monitor_openbsd_cc
deleted file mode 100644
index d4b6361..0000000
--- a/chromium-new/patches/patch-components_storage_monitor_storage_monitor_openbsd_cc
+++ /dev/null
@@ -1,59 +0,0 @@
-$OpenBSD: patch-components_storage_monitor_storage_monitor_openbsd_cc,v 1.2 2014/05/24 15:27:34 robert Exp $
---- components/storage_monitor/storage_monitor_openbsd.cc.orig.port	Thu May 22 21:43:56 2014
-+++ components/storage_monitor/storage_monitor_openbsd.cc	Fri May 23 19:18:08 2014
-@@ -0,0 +1,55 @@
-+// Copyright 2014 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.
-+
-+// StorageMonitorOpenBSD implementation.
-+
-+#include "components/storage_monitor/storage_monitor_openbsd.h"
-+
-+#include <stdio.h>
-+
-+#include <list>
-+
-+#include "base/basictypes.h"
-+#include "base/bind.h"
-+#include "base/metrics/histogram.h"
-+#include "base/process/kill.h"
-+#include "base/process/launch.h"
-+#include "base/stl_util.h"
-+#include "base/strings/string_number_conversions.h"
-+#include "base/strings/string_util.h"
-+#include "base/strings/utf_string_conversions.h"
-+#include "components/storage_monitor/media_storage_util.h"
-+#include "components/storage_monitor/removable_device_constants.h"
-+#include "components/storage_monitor/storage_info.h"
-+
-+using content::BrowserThread;
-+
-+namespace storage_monitor {
-+
-+namespace {
-+
-+}  // namespace
-+
-+StorageMonitorOpenBSD::StorageMonitorOpenBSD() {
-+  DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
-+}
-+
-+StorageMonitorOpenBSD::~StorageMonitorOpenBSD() {
-+  DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
-+}
-+
-+void StorageMonitorOpenBSD::Init() {
-+}
-+
-+bool StorageMonitorOpenBSD::GetStorageInfoForPath(
-+    const base::FilePath& path,
-+    StorageInfo* device_info) const {
-+  return false; // TODO
-+}
-+
-+StorageMonitor* StorageMonitor::CreateInternal() {
-+  return new StorageMonitorOpenBSD();
-+}
-+
-+} // namespace storage_monitor
diff --git a/chromium-new/patches/patch-components_storage_monitor_storage_monitor_openbsd_h b/chromium-new/patches/patch-components_storage_monitor_storage_monitor_openbsd_h
deleted file mode 100644
index f1785d4..0000000
--- a/chromium-new/patches/patch-components_storage_monitor_storage_monitor_openbsd_h
+++ /dev/null
@@ -1,51 +0,0 @@
-$OpenBSD: patch-components_storage_monitor_storage_monitor_openbsd_h,v 1.3 2015/01/22 11:16:41 robert Exp $
---- components/storage_monitor/storage_monitor_openbsd.h.orig.port	Sat Dec  6 11:34:26 2014
-+++ components/storage_monitor/storage_monitor_openbsd.h	Sat Dec  6 12:56:39 2014
-@@ -0,0 +1,47 @@
-+// Copyright 2014 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.
-+
-+// StorageMonitorOpenBSD processes mount point change events, notifies listeners
-+// about the addition and deletion of media devices, and answers queries about
-+// mounted devices.
-+// StorageMonitorOpenBSD lives on the UI thread, and uses ???
-+// the FILE thread to get mount point change events.
-+
-+#ifndef COMPONENTS_STORAGE_MONITOR_STORAGE_MONITOR_OPENBSD_H_
-+#define COMPONENTS_STORAGE_MONITOR_STORAGE_MONITOR_OPENBSD_H_
-+
-+#include <map>
-+#include <string>
-+
-+#include "base/basictypes.h"
-+#include "base/compiler_specific.h"
-+#include "base/files/file_path.h"
-+#include "base/files/file_path_watcher.h"
-+#include "base/memory/scoped_ptr.h"
-+#include "base/memory/weak_ptr.h"
-+#include "components/storage_monitor/storage_monitor.h"
-+#include "content/public/browser/browser_thread.h"
-+
-+namespace storage_monitor {
-+
-+class StorageMonitorOpenBSD : public StorageMonitor {
-+ public:
-+  // Should only be called by browser start up code.
-+  // Use StorageMonitor::GetInstance() instead.
-+  explicit StorageMonitorOpenBSD();
-+  virtual ~StorageMonitorOpenBSD();
-+
-+  // Must be called for StorageMonitorOpenBSD to work.
-+  void Init() override;
-+ private:
-+  // StorageMonitor implementation.
-+  virtual bool GetStorageInfoForPath(const base::FilePath& path,
-+                                     StorageInfo* device_info) const override;
-+
-+  DISALLOW_COPY_AND_ASSIGN(StorageMonitorOpenBSD);
-+};
-+
-+} // namespace storage_monitor
-+
-+#endif  // COMPONENTS_STORAGE_MONITOR_STORAGE_MONITOR_OPENBSD_H_
diff --git a/chromium-new/patches/patch-components_update__client_update__query__params.cc b/chromium-new/patches/patch-components_update__client_update__query__params.cc
new file mode 100644
index 0000000..3f08437
--- /dev/null
+++ b/chromium-new/patches/patch-components_update__client_update__query__params.cc
@@ -0,0 +1,15 @@
+$NetBSD$
+
+--- components/update_client/update_query_params.cc.orig	2016-06-24 01:02:19.000000000 +0000
++++ components/update_client/update_query_params.cc
+@@ -31,6 +31,10 @@ const char kOs[] =
+     "linux";
+ #elif defined(OS_OPENBSD)
+     "openbsd";
++#elif defined(OS_FREEBSD)
++    "freebsd";
++#elif defined(OS_NETBSD)
++    "netbsd";
+ #else
+ #error "unknown os"
+ #endif
diff --git a/chromium-new/patches/patch-components_url__matcher_regex__set__matcher.cc b/chromium-new/patches/patch-components_url__matcher_regex__set__matcher.cc
new file mode 100644
index 0000000..8214028
--- /dev/null
+++ b/chromium-new/patches/patch-components_url__matcher_regex__set__matcher.cc
@@ -0,0 +1,18 @@
+$NetBSD$
+
+--- components/url_matcher/regex_set_matcher.cc.orig	2016-06-24 01:02:19.000000000 +0000
++++ components/url_matcher/regex_set_matcher.cc
+@@ -10,8 +10,13 @@
+ #include "base/stl_util.h"
+ #include "base/strings/string_util.h"
+ #include "components/url_matcher/substring_set_matcher.h"
++#if defined(OS_BSD)
++#include <re2/filtered_re2.h>
++#include <re2/re2.h>
++#else
+ #include "third_party/re2/src/re2/filtered_re2.h"
+ #include "third_party/re2/src/re2/re2.h"
++#endif
+ 
+ namespace url_matcher {
+ 
diff --git a/chromium-new/patches/patch-components_url__matcher_url__matcher__factory.cc b/chromium-new/patches/patch-components_url__matcher_url__matcher__factory.cc
new file mode 100644
index 0000000..7d1a6f7
--- /dev/null
+++ b/chromium-new/patches/patch-components_url__matcher_url__matcher__factory.cc
@@ -0,0 +1,16 @@
+$NetBSD$
+
+--- components/url_matcher/url_matcher_factory.cc.orig	2016-06-24 01:02:19.000000000 +0000
++++ components/url_matcher/url_matcher_factory.cc
+@@ -15,7 +15,11 @@
+ #include "base/values.h"
+ #include "components/url_matcher/url_matcher_constants.h"
+ #include "components/url_matcher/url_matcher_helpers.h"
++#if defined(OS_BSD)
++#include <re2/re2.h>
++#else
+ #include "third_party/re2/src/re2/re2.h"
++#endif
+ 
+ namespace url_matcher {
+ 
diff --git a/chromium-new/patches/patch-components_webcrypto_algorithms_test__helpers.cc b/chromium-new/patches/patch-components_webcrypto_algorithms_test__helpers.cc
new file mode 100644
index 0000000..917f900
--- /dev/null
+++ b/chromium-new/patches/patch-components_webcrypto_algorithms_test__helpers.cc
@@ -0,0 +1,16 @@
+$NetBSD$
+
+--- components/webcrypto/algorithms/test_helpers.cc.orig	2016-06-24 01:02:20.000000000 +0000
++++ components/webcrypto/algorithms/test_helpers.cc
+@@ -26,7 +26,11 @@
+ #include "components/webcrypto/status.h"
+ #include "third_party/WebKit/public/platform/WebCryptoAlgorithmParams.h"
+ #include "third_party/WebKit/public/platform/WebCryptoKeyAlgorithm.h"
++#if defined(OS_BSD)
++#include <re2/re2.h>
++#else
+ #include "third_party/re2/src/re2/re2.h"
++#endif
+ 
+ namespace webcrypto {
+ 
diff --git a/chromium-new/patches/patch-content_app_content__main__runner.cc b/chromium-new/patches/patch-content_app_content__main__runner.cc
new file mode 100644
index 0000000..c5b3a3f
--- /dev/null
+++ b/chromium-new/patches/patch-content_app_content__main__runner.cc
@@ -0,0 +1,44 @@
+$NetBSD$
+
+--- content/app/content_main_runner.cc.orig	2016-06-24 01:02:20.000000000 +0000
++++ content/app/content_main_runner.cc
+@@ -96,10 +96,10 @@
+ #include "base/posix/global_descriptors.h"
+ #include "content/public/common/content_descriptors.h"
+ 
+-#if !defined(OS_MACOSX)
++#if !defined(OS_MACOSX) && !defined(OS_BSD)
+ #include "content/public/common/zygote_fork_delegate_linux.h"
+ #endif
+-#if !defined(OS_MACOSX) && !defined(OS_ANDROID)
++#if !defined(OS_MACOSX) && !defined(OS_ANDROID) && !defined(OS_BSD)
+ #include "content/zygote/zygote_main.h"
+ #endif
+ 
+@@ -301,7 +301,7 @@ struct MainFunction {
+   int (*function)(const MainFunctionParams&);
+ };
+ 
+-#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID)
++#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) && !defined(OS_BSD)
+ // On platforms that use the zygote, we have a special subset of
+ // subprocesses that are launched via the zygote.  This function
+ // fills in some process-launching bits around ZygoteMain().
+@@ -353,7 +353,7 @@ int RunZygote(const MainFunctionParams& 
+   NOTREACHED() << "Unknown zygote process type: " << process_type;
+   return 1;
+ }
+-#endif  // defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID)
++#endif  // defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) && !defined(OS_BSD)
+ 
+ static void RegisterMainThreadFactories() {
+ #if !defined(CHROME_MULTIPLE_DLL_BROWSER) && !defined(CHROME_MULTIPLE_DLL_CHILD)
+@@ -423,7 +423,7 @@ int RunNamedProcessTypeMain(
+     }
+   }
+ 
+-#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID)
++#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) && !defined(OS_BSD)
+   // Zygote startup is special -- see RunZygote comments above
+   // for why we don't use ZygoteMain directly.
+   if (process_type == switches::kZygoteProcess)
diff --git a/chromium-new/patches/patch-content_app_content_main_runner_cc b/chromium-new/patches/patch-content_app_content_main_runner_cc
deleted file mode 100644
index 3efd079..0000000
--- a/chromium-new/patches/patch-content_app_content_main_runner_cc
+++ /dev/null
@@ -1,47 +0,0 @@
-$OpenBSD: patch-content_app_content_main_runner_cc,v 1.28 2016/01/23 18:49:31 robert Exp $
---- content/app/content_main_runner.cc.orig.port	Fri Jan 22 22:08:21 2016
-+++ content/app/content_main_runner.cc	Fri Jan 22 22:09:10 2016
-@@ -98,10 +98,10 @@
- #include "base/posix/global_descriptors.h"
- #include "content/public/common/content_descriptors.h"
- 
--#if !defined(OS_MACOSX)
-+#if !defined(OS_MACOSX) && !defined(OS_BSD)
- #include "content/public/common/zygote_fork_delegate_linux.h"
- #endif
--#if !defined(OS_MACOSX) && !defined(OS_ANDROID)
-+#if !defined(OS_MACOSX) && !defined(OS_ANDROID) && !defined(OS_BSD)
- #include "content/zygote/zygote_main.h"
- #endif
- 
-@@ -259,7 +259,7 @@ struct MainFunction {
-   int (*function)(const MainFunctionParams&);
- };
- 
--#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID)
-+#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) && !defined(OS_BSD)
- // On platforms that use the zygote, we have a special subset of
- // subprocesses that are launched via the zygote.  This function
- // fills in some process-launching bits around ZygoteMain().
-@@ -379,7 +379,7 @@ int RunNamedProcessTypeMain(
-     }
-   }
- 
--#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID)
-+#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) && !defined(OS_BSD)
-   // Zygote startup is special -- see RunZygote comments above
-   // for why we don't use ZygoteMain directly.
-   if (process_type == switches::kZygoteProcess)
-@@ -509,10 +509,10 @@ class ContentMainRunnerImpl : public ContentMainRunner
-                kPrimaryIPCChannel + base::GlobalDescriptors::kBaseDescriptor);
- #endif  // !OS_ANDROID && !OS_IOS
- 
--#if defined(OS_LINUX) || defined(OS_OPENBSD)
-+#if defined(OS_LINUX)
-     g_fds->Set(kCrashDumpSignal,
-                kCrashDumpSignal + base::GlobalDescriptors::kBaseDescriptor);
--#endif  // OS_LINUX || OS_OPENBSD
-+#endif  // OS_LINUX
- 
- 
- #endif  // !OS_WIN
diff --git a/chromium-new/patches/patch-content_browser_accessibility_browser__accessibility.h b/chromium-new/patches/patch-content_browser_accessibility_browser__accessibility.h
new file mode 100644
index 0000000..6f2c5a9
--- /dev/null
+++ b/chromium-new/patches/patch-content_browser_accessibility_browser__accessibility.h
@@ -0,0 +1,22 @@
+$NetBSD$
+
+--- content/browser/accessibility/browser_accessibility.h.orig	2016-06-24 01:02:20.000000000 +0000
++++ content/browser/accessibility/browser_accessibility.h
+@@ -38,7 +38,7 @@
+ #define PLATFORM_HAS_NATIVE_ACCESSIBILITY_IMPL 1
+ #endif
+ 
+-#if defined(OS_LINUX) && defined(USE_X11) && !defined(OS_CHROMEOS)
++#if (defined(OS_LINUX) || defined(OS_BSD)) && defined(USE_X11) && !defined(OS_CHROMEOS)
+ #define PLATFORM_HAS_NATIVE_ACCESSIBILITY_IMPL 1
+ #endif
+ 
+@@ -50,7 +50,7 @@ namespace content {
+ class BrowserAccessibilityManager;
+ #if defined(OS_WIN)
+ class BrowserAccessibilityWin;
+-#elif defined(OS_LINUX) && !defined(OS_CHROMEOS) && defined(USE_X11)
++#elif (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS) && defined(USE_X11)
+ class BrowserAccessibilityAuraLinux;
+ #endif
+ 
diff --git a/chromium-new/patches/patch-content_browser_accessibility_browser__accessibility__manager.h b/chromium-new/patches/patch-content_browser_accessibility_browser__accessibility__manager.h
new file mode 100644
index 0000000..eb658b6
--- /dev/null
+++ b/chromium-new/patches/patch-content_browser_accessibility_browser__accessibility__manager.h
@@ -0,0 +1,22 @@
+$NetBSD$
+
+--- content/browser/accessibility/browser_accessibility_manager.h.orig	2016-06-24 01:02:20.000000000 +0000
++++ content/browser/accessibility/browser_accessibility_manager.h
+@@ -32,7 +32,7 @@ class BrowserAccessibilityManager;
+ class BrowserAccessibilityManagerAndroid;
+ #elif defined(OS_WIN)
+ class BrowserAccessibilityManagerWin;
+-#elif defined(OS_LINUX) && !defined(OS_CHROMEOS) && defined(USE_X11)
++#elif (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS) && defined(USE_X11)
+ class BrowserAccessibilityManagerAuraLinux;
+ #endif
+ 
+@@ -271,7 +271,7 @@ class CONTENT_EXPORT BrowserAccessibilit
+   BrowserAccessibilityManagerAndroid* ToBrowserAccessibilityManagerAndroid();
+ #endif
+ 
+-#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && defined(USE_X11)
++#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS) && defined(USE_X11)
+   BrowserAccessibilityManagerAuraLinux*
+       ToBrowserAccessibilityManagerAuraLinux();
+ #endif
diff --git a/chromium-new/patches/patch-content_browser_accessibility_browser_accessibility_h b/chromium-new/patches/patch-content_browser_accessibility_browser_accessibility_h
deleted file mode 100644
index 9ce5f75..0000000
--- a/chromium-new/patches/patch-content_browser_accessibility_browser_accessibility_h
+++ /dev/null
@@ -1,30 +0,0 @@
-$OpenBSD: patch-content_browser_accessibility_browser_accessibility_h,v 1.2 2016/01/23 18:49:31 robert Exp $
---- content/browser/accessibility/browser_accessibility.h.orig.port	Fri Jan 22 22:10:21 2016
-+++ content/browser/accessibility/browser_accessibility.h	Fri Jan 22 22:11:10 2016
-@@ -36,7 +36,7 @@
- #define PLATFORM_HAS_NATIVE_ACCESSIBILITY_IMPL 1
- #endif
- 
--#if defined(OS_LINUX) && defined(USE_X11) && !defined(OS_CHROMEOS)
-+#if (defined(OS_BSD) || defined(OS_LINUX)) && defined(USE_X11) && !defined(OS_CHROMEOS)
- #define PLATFORM_HAS_NATIVE_ACCESSIBILITY_IMPL 1
- #endif
- 
-@@ -48,7 +48,7 @@ namespace content {
- class BrowserAccessibilityManager;
- #if defined(OS_WIN)
- class BrowserAccessibilityWin;
--#elif defined(OS_LINUX) && !defined(OS_CHROMEOS) && defined(USE_X11)
-+#elif (defined(OS_BSD) || defined(OS_LINUX)) && !defined(OS_CHROMEOS) && defined(USE_X11)
- class BrowserAccessibilityAuraLinux;
- #endif
- 
-@@ -210,7 +210,7 @@ class CONTENT_EXPORT BrowserAccessibility {
- #elif defined(OS_WIN)
-   const BrowserAccessibilityWin* ToBrowserAccessibilityWin() const;
-   BrowserAccessibilityWin* ToBrowserAccessibilityWin();
--#elif defined(OS_LINUX) && !defined(OS_CHROMEOS) && defined(USE_X11)
-+#elif (defined(OS_BSD) || defined(OS_LINUX)) && !defined(OS_CHROMEOS) && defined(USE_X11)
-   const BrowserAccessibilityAuraLinux* ToBrowserAccessibilityAuraLinux() const;
-   BrowserAccessibilityAuraLinux* ToBrowserAccessibilityAuraLinux();
- #endif
diff --git a/chromium-new/patches/patch-content_browser_accessibility_browser_accessibility_manager_h b/chromium-new/patches/patch-content_browser_accessibility_browser_accessibility_manager_h
deleted file mode 100644
index e6404ec..0000000
--- a/chromium-new/patches/patch-content_browser_accessibility_browser_accessibility_manager_h
+++ /dev/null
@@ -1,21 +0,0 @@
-$OpenBSD: patch-content_browser_accessibility_browser_accessibility_manager_h,v 1.2 2016/01/23 18:49:31 robert Exp $
---- content/browser/accessibility/browser_accessibility_manager.h.orig.port	Wed Jan 20 21:01:21 2016
-+++ content/browser/accessibility/browser_accessibility_manager.h	Fri Jan 22 19:58:58 2016
-@@ -28,7 +28,7 @@ class BrowserAccessibilityManager;
- class BrowserAccessibilityManagerAndroid;
- #elif defined(OS_WIN)
- class BrowserAccessibilityManagerWin;
--#elif defined(OS_LINUX) && !defined(OS_CHROMEOS) && defined(USE_X11)
-+#elif (defined(OS_BSD) || defined(OS_LINUX)) && !defined(OS_CHROMEOS) && defined(USE_X11)
- class BrowserAccessibilityManagerAuraLinux;
- #endif
- 
-@@ -237,7 +237,7 @@ class CONTENT_EXPORT BrowserAccessibilityManager : pub
-   BrowserAccessibilityManagerAndroid* ToBrowserAccessibilityManagerAndroid();
- #endif
- 
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && defined(USE_X11)
-+#if (defined(OS_BSD) || defined(OS_LINUX)) && !defined(OS_CHROMEOS) && defined(USE_X11)
-   BrowserAccessibilityManagerAuraLinux*
-       ToBrowserAccessibilityManagerAuraLinux();
- #endif
diff --git a/chromium-new/patches/patch-content_browser_browser__main__loop.cc b/chromium-new/patches/patch-content_browser_browser__main__loop.cc
new file mode 100644
index 0000000..e08260f
--- /dev/null
+++ b/chromium-new/patches/patch-content_browser_browser__main__loop.cc
@@ -0,0 +1,22 @@
+$NetBSD$
+
+--- content/browser/browser_main_loop.cc.orig	2016-06-24 01:02:20.000000000 +0000
++++ content/browser/browser_main_loop.cc
+@@ -191,7 +191,7 @@
+ namespace content {
+ namespace {
+ 
+-#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID)
++#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) && !defined(OS_BSD)
+ void SetupSandbox(const base::CommandLine& parsed_command_line) {
+   TRACE_EVENT0("startup", "SetupSandbox");
+   base::FilePath sandbox_binary;
+@@ -438,7 +438,7 @@ void BrowserMainLoop::EarlyInitializatio
+   TRACE_EVENT0("startup", "BrowserMainLoop::EarlyInitialization");
+   TRACK_SCOPED_REGION("Startup", "BrowserMainLoop::EarlyInitialization");
+ 
+-#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID)
++#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) && !defined(OS_BSD)
+   // No thread should be created before this call, as SetupSandbox()
+   // will end-up using fork().
+   SetupSandbox(parsed_command_line_);
diff --git a/chromium-new/patches/patch-content_browser_browser__shutdown__profile__dumper.cc b/chromium-new/patches/patch-content_browser_browser__shutdown__profile__dumper.cc
new file mode 100644
index 0000000..acaa31f
--- /dev/null
+++ b/chromium-new/patches/patch-content_browser_browser__shutdown__profile__dumper.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- content/browser/browser_shutdown_profile_dumper.cc.orig	2016-06-24 01:02:20.000000000 +0000
++++ content/browser/browser_shutdown_profile_dumper.cc
+@@ -2,6 +2,8 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+ 
++#include <stdio.h>
++
+ #include "content/browser/browser_shutdown_profile_dumper.h"
+ 
+ #include "base/command_line.h"
diff --git a/chromium-new/patches/patch-content_browser_browser_main_loop_cc b/chromium-new/patches/patch-content_browser_browser_main_loop_cc
deleted file mode 100644
index a2b861d..0000000
--- a/chromium-new/patches/patch-content_browser_browser_main_loop_cc
+++ /dev/null
@@ -1,49 +0,0 @@
-$OpenBSD: patch-content_browser_browser_main_loop_cc,v 1.34 2016/01/31 20:45:29 robert Exp $
---- content/browser/browser_main_loop.cc.orig.port	Wed Jan 27 18:00:48 2016
-+++ content/browser/browser_main_loop.cc	Sun Jan 31 21:39:34 2016
-@@ -170,6 +170,10 @@
- #include "crypto/nss_util.h"
- #endif
- 
-+#if defined(OS_BSD)
-+#include "content/common/child_process_sandbox_support_impl_linux.h"
-+#endif
-+
- // One of the linux specific headers defines this as a macro.
- #ifdef DestroyAll
- #undef DestroyAll
-@@ -178,7 +182,7 @@
- namespace content {
- namespace {
- 
--#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID)
-+#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) && !defined(OS_BSD)
- void SetupSandbox(const base::CommandLine& parsed_command_line) {
-   TRACE_EVENT0("startup", "SetupSandbox");
-   base::FilePath sandbox_binary;
-@@ -429,10 +433,15 @@ void BrowserMainLoop::EarlyInitialization() {
-   TRACE_EVENT0("startup", "BrowserMainLoop::EarlyInitialization");
-   TRACK_SCOPED_REGION("Startup", "BrowserMainLoop::EarlyInitialization");
- 
--#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID)
-+#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) && !defined(OS_BSD)
-   // No thread should be created before this call, as SetupSandbox()
-   // will end-up using fork().
-   SetupSandbox(parsed_command_line_);
-+#elif defined(OS_BSD)
-+  RenderSandboxHostLinux::GetInstance()->Init();
-+  base::FileHandleMappingVector fds_to_map;
-+  const int sfd = RenderSandboxHostLinux::GetInstance()->GetRendererSocket();
-+    fds_to_map.push_back(std::make_pair(sfd, GetSandboxFD()));
- #endif
- 
- #if defined(USE_X11)
-@@ -1022,7 +1031,7 @@ void BrowserMainLoop::ShutdownThreadsAndCleanUp() {
-   }
- #endif
- 
--#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID)
-+#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) && !defined(OS_BSD)
-   ZygoteHostImpl::GetInstance()->TearDownAfterLastChild();
- #endif  // defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID)
- 
diff --git a/chromium-new/patches/patch-content_browser_child__process__launcher.cc b/chromium-new/patches/patch-content_browser_child__process__launcher.cc
new file mode 100644
index 0000000..033cde4
--- /dev/null
+++ b/chromium-new/patches/patch-content_browser_child__process__launcher.cc
@@ -0,0 +1,40 @@
+$NetBSD$
+
+--- content/browser/child_process_launcher.cc.orig	2016-06-24 01:02:20.000000000 +0000
++++ content/browser/child_process_launcher.cc
+@@ -251,7 +251,7 @@ void LaunchOnLauncherThread(const Notify
+   // We need to close the client end of the IPC channel to reliably detect
+   // child termination.
+ 
+-#if !defined(OS_MACOSX)
++#if !defined(OS_MACOSX) && !defined(OS_BSD)
+   ZygoteHandle* zygote_handle = delegate->GetZygote();
+   // If |zygote_handle| is null, a zygote should not be used.
+   if (zygote_handle) {
+@@ -355,7 +355,7 @@ void TerminateOnLauncherThread(ZygoteHan
+   process.Terminate(RESULT_CODE_NORMAL_EXIT, false);
+   // On POSIX, we must additionally reap the child.
+ #if defined(OS_POSIX)
+-#if !defined(OS_MACOSX)
++#if !defined(OS_MACOSX) && !defined(OS_BSD)
+   if (zygote) {
+     // If the renderer was created via a zygote, we have to proxy the reaping
+     // through the zygote process.
+@@ -459,7 +459,7 @@ void ChildProcessLauncher::Launch(
+ 
+ void ChildProcessLauncher::UpdateTerminationStatus(bool known_dead) {
+   DCHECK(CalledOnValidThread());
+-#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID)
++#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) && !defined(OS_BSD)
+   if (zygote_) {
+     termination_status_ = zygote_->GetTerminationStatus(
+         process_.Handle(), known_dead, &exit_code_);
+@@ -536,7 +536,7 @@ void ChildProcessLauncher::Notify(Zygote
+                                     mojo_platform_channel_.PassServerHandle());
+   }
+ 
+-#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID)
++#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) && !defined(OS_BSD)
+   zygote_ = zygote;
+ #endif
+   if (process_.IsValid()) {
diff --git a/chromium-new/patches/patch-content_browser_child_process_launcher_cc b/chromium-new/patches/patch-content_browser_child_process_launcher_cc
deleted file mode 100644
index f4ac845..0000000
--- a/chromium-new/patches/patch-content_browser_child_process_launcher_cc
+++ /dev/null
@@ -1,51 +0,0 @@
-$OpenBSD: patch-content_browser_child_process_launcher_cc,v 1.25 2016/01/23 20:43:27 robert Exp $
---- content/browser/child_process_launcher.cc.orig.port	Wed Jan 20 21:01:21 2016
-+++ content/browser/child_process_launcher.cc	Sat Jan 23 20:10:57 2016
-@@ -114,7 +114,11 @@ void LaunchOnLauncherThread(const NotifyCallback& call
-   base::EnvironmentMap env = delegate->GetEnvironment();
-   base::ScopedFD ipcfd = delegate->TakeIpcFd();
- #elif defined(OS_POSIX) && !defined(OS_ANDROID)
-+#if !defined(OS_BSD)
-   bool use_zygote = delegate->ShouldUseZygote();
-+#else
-+  bool use_zygote = false;
-+#endif
-   base::EnvironmentMap env = delegate->GetEnvironment();
-   base::ScopedFD ipcfd = delegate->TakeIpcFd();
- #endif
-@@ -196,7 +200,7 @@ void LaunchOnLauncherThread(const NotifyCallback& call
-   // We need to close the client end of the IPC channel to reliably detect
-   // child termination.
- 
--#if !defined(OS_MACOSX)
-+#if !defined(OS_MACOSX) && !defined(OS_BSD)
-   if (use_zygote) {
-     base::ProcessHandle handle = ZygoteHostImpl::GetInstance()->ForkRequest(
-         cmd_line->argv(), files_to_register.Pass(), process_type);
-@@ -298,7 +302,7 @@ void TerminateOnLauncherThread(bool zygote, base::Proc
-   process.Terminate(RESULT_CODE_NORMAL_EXIT, false);
-   // On POSIX, we must additionally reap the child.
- #if defined(OS_POSIX)
--#if !defined(OS_MACOSX)
-+#if !defined(OS_MACOSX) && !defined(OS_BSD)
-   if (zygote) {
-     // If the renderer was created via a zygote, we have to proxy the reaping
-     // through the zygote process.
-@@ -400,7 +404,7 @@ void ChildProcessLauncher::Launch(
- 
- void ChildProcessLauncher::UpdateTerminationStatus(bool known_dead) {
-   DCHECK(CalledOnValidThread());
--#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID)
-+#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) && !defined(OS_BSD)
-   if (zygote_) {
-     termination_status_ = ZygoteHostImpl::GetInstance()->
-         GetTerminationStatus(process_.Handle(), known_dead, &exit_code_);
-@@ -482,7 +486,7 @@ void ChildProcessLauncher::Notify(
-   starting_ = false;
-   process_ = process.Pass();
- 
--#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID)
-+#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) && !defined(OS_BSD)
-   zygote_ = zygote;
- #endif
-   if (process_.IsValid()) {
diff --git a/chromium-new/patches/patch-content_browser_devtools_protocol_color_picker_cc b/chromium-new/patches/patch-content_browser_devtools_protocol_color_picker_cc
deleted file mode 100644
index 1239848..0000000
--- a/chromium-new/patches/patch-content_browser_devtools_protocol_color_picker_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-content_browser_devtools_protocol_color_picker_cc,v 1.2 2015/10/14 16:42:07 robert Exp $
---- content/browser/devtools/protocol/color_picker.cc.orig.port	Wed Oct  7 04:42:11 2015
-+++ content/browser/devtools/protocol/color_picker.cc	Wed Oct 14 07:41:13 2015
-@@ -150,7 +150,7 @@ void ColorPicker::UpdateCursor() {
-   // magnified projection only with centered hotspot.
-   // Mac Retina requires cursor to be > 120px in order to render smoothly.
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   const float kCursorSize = 63;
-   const float kDiameter = 63;
-   const float kHotspotOffset = 32;
diff --git a/chromium-new/patches/patch-content_browser_download_base__file.cc b/chromium-new/patches/patch-content_browser_download_base__file.cc
new file mode 100644
index 0000000..ac092d8
--- /dev/null
+++ b/chromium-new/patches/patch-content_browser_download_base__file.cc
@@ -0,0 +1,14 @@
+$NetBSD$
+
+--- content/browser/download/base_file.cc.orig	2016-06-24 01:02:20.000000000 +0000
++++ content/browser/download/base_file.cc
+@@ -186,7 +186,8 @@ scoped_ptr<crypto::SecureHash> BaseFile:
+ }
+ 
+ // OS_WIN, OS_MACOSX and OS_LINUX have specialized implementations.
+-#if !defined(OS_WIN) && !defined(OS_MACOSX) && !defined(OS_LINUX)
++#if !defined(OS_WIN) && !defined(OS_MACOSX) && !defined(OS_LINUX) && \
++    !defined(OS_BSD)
+ DownloadInterruptReason BaseFile::AnnotateWithSourceInformation(
+     const std::string& client_guid,
+     const GURL& source_url,
diff --git a/chromium-new/patches/patch-content_browser_download_base__file__linux.cc b/chromium-new/patches/patch-content_browser_download_base__file__linux.cc
new file mode 100644
index 0000000..53a8368
--- /dev/null
+++ b/chromium-new/patches/patch-content_browser_download_base__file__linux.cc
@@ -0,0 +1,14 @@
+$NetBSD$
+
+--- content/browser/download/base_file_linux.cc.orig	2016-06-24 01:02:20.000000000 +0000
++++ content/browser/download/base_file_linux.cc
+@@ -16,7 +16,9 @@ DownloadInterruptReason BaseFile::Annota
+   DCHECK_CURRENTLY_ON(BrowserThread::FILE);
+   DCHECK(!detached_);
+ 
++#if !defined(OS_BSD)
+   AddOriginMetadataToFile(full_path_, source_url, referrer_url);
++#endif
+   return DOWNLOAD_INTERRUPT_REASON_NONE;
+ }
+ 
diff --git a/chromium-new/patches/patch-content_browser_download_base_file_cc b/chromium-new/patches/patch-content_browser_download_base_file_cc
deleted file mode 100644
index 4efceea..0000000
--- a/chromium-new/patches/patch-content_browser_download_base_file_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-content_browser_download_base_file_cc,v 1.5 2015/09/05 16:06:50 robert Exp $
---- content/browser/download/base_file.cc.orig.port	Sat Aug 22 21:01:54 2015
-+++ content/browser/download/base_file.cc	Wed Sep  2 07:31:55 2015
-@@ -209,7 +209,7 @@ void BaseFile::SetClientGuid(const std::string& guid) 
- }
- 
- // OS_WIN, OS_MACOSX and OS_LINUX have specialized implementations.
--#if !defined(OS_WIN) && !defined(OS_MACOSX) && !defined(OS_LINUX)
-+#if !defined(OS_WIN) && !defined(OS_MACOSX) && !defined(OS_LINUX) && !defined(OS_BSD)
- DownloadInterruptReason BaseFile::AnnotateWithSourceInformation() {
-   return DOWNLOAD_INTERRUPT_REASON_NONE;
- }
diff --git a/chromium-new/patches/patch-content_browser_download_base_file_linux_cc b/chromium-new/patches/patch-content_browser_download_base_file_linux_cc
deleted file mode 100644
index bf0a558..0000000
--- a/chromium-new/patches/patch-content_browser_download_base_file_linux_cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$OpenBSD: patch-content_browser_download_base_file_linux_cc,v 1.2 2015/05/24 15:51:53 robert Exp $
---- content/browser/download/base_file_linux.cc.orig.port	Thu May 14 00:23:06 2015
-+++ content/browser/download/base_file_linux.cc	Wed May 20 08:34:56 2015
-@@ -13,7 +13,9 @@ DownloadInterruptReason BaseFile::AnnotateWithSourceIn
-   DCHECK_CURRENTLY_ON(BrowserThread::FILE);
-   DCHECK(!detached_);
- 
-+#if !defined(OS_BSD)
-   AddOriginMetadataToFile(full_path_, source_url_, referrer_url_);
-+#endif
-   return DOWNLOAD_INTERRUPT_REASON_NONE;
- }
- 
diff --git a/chromium-new/patches/patch-content_browser_gamepad_gamepad_provider_cc b/chromium-new/patches/patch-content_browser_gamepad_gamepad_provider_cc
deleted file mode 100644
index b2c00dd..0000000
--- a/chromium-new/patches/patch-content_browser_gamepad_gamepad_provider_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-content_browser_gamepad_gamepad_provider_cc,v 1.1 2015/05/24 15:51:53 robert Exp $
---- content/browser/gamepad/gamepad_provider.cc.orig.port	Sat May 23 00:59:48 2015
-+++ content/browser/gamepad/gamepad_provider.cc	Sat May 23 01:10:34 2015
-@@ -128,7 +128,7 @@ void GamepadProvider::Initialize(scoped_ptr<GamepadDat
-   pad_states_.reset(new PadState[WebGamepads::itemsLengthCap]);
- 
-   polling_thread_.reset(new base::Thread("Gamepad polling thread"));
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   // On Linux, the data fetcher needs to watch file descriptors, so the message
-   // loop needs to be a libevent loop.
-   const base::MessageLoop::Type kMessageLoopType = base::MessageLoop::TYPE_IO;
diff --git a/chromium-new/patches/patch-content_browser_geolocation_location__arbitrator__impl.cc b/chromium-new/patches/patch-content_browser_geolocation_location__arbitrator__impl.cc
new file mode 100644
index 0000000..b0d2651
--- /dev/null
+++ b/chromium-new/patches/patch-content_browser_geolocation_location__arbitrator__impl.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- content/browser/geolocation/location_arbitrator_impl.cc.orig	2016-06-24 01:02:20.000000000 +0000
++++ content/browser/geolocation/location_arbitrator_impl.cc
+@@ -163,7 +163,7 @@ LocationProvider* LocationArbitratorImpl
+ }
+ 
+ LocationProvider* LocationArbitratorImpl::NewSystemLocationProvider() {
+-#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
++#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_FREEBSD)
+   return NULL;
+ #else
+   return content::NewSystemLocationProvider();
diff --git a/chromium-new/patches/patch-content_browser_geolocation_location_arbitrator_impl_cc b/chromium-new/patches/patch-content_browser_geolocation_location_arbitrator_impl_cc
deleted file mode 100644
index 42d1745..0000000
--- a/chromium-new/patches/patch-content_browser_geolocation_location_arbitrator_impl_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-content_browser_geolocation_location_arbitrator_impl_cc,v 1.3 2015/04/27 16:38:25 robert Exp $
---- content/browser/geolocation/location_arbitrator_impl.cc.orig.port	Wed Apr 15 00:18:53 2015
-+++ content/browser/geolocation/location_arbitrator_impl.cc	Wed Apr 15 08:32:50 2015
-@@ -170,7 +170,7 @@ LocationProvider* LocationArbitratorImpl::NewNetworkLo
- }
- 
- LocationProvider* LocationArbitratorImpl::NewSystemLocationProvider() {
--#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
-   return NULL;
- #else
-   return content::NewSystemLocationProvider();
diff --git a/chromium-new/patches/patch-content_browser_geolocation_wifi__data__provider__freebsd.cc b/chromium-new/patches/patch-content_browser_geolocation_wifi__data__provider__freebsd.cc
new file mode 100644
index 0000000..14a9dde
--- /dev/null
+++ b/chromium-new/patches/patch-content_browser_geolocation_wifi__data__provider__freebsd.cc
@@ -0,0 +1,206 @@
+$NetBSD$
+
+--- content/browser/geolocation/wifi_data_provider_freebsd.cc.orig	2016-07-10 13:25:12.347697055 +0000
++++ content/browser/geolocation/wifi_data_provider_freebsd.cc
+@@ -0,0 +1,201 @@
++// 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.
++
++// For FreeBSD we use the getifaddrs(3) to obtain the list of interfaces
++// and then check for those with an 802.11 media type and able to return
++// a list of stations.  This is similar to ifconfig(8).
++
++#include "content/browser/geolocation/wifi_data_provider_freebsd.h"
++
++#include <stdio.h>
++#include <stdlib.h>
++#include <string.h>
++#include <sys/types.h>
++#include <sys/socket.h>
++#include <sys/sockio.h>
++#include <net/if.h>
++#include <net/if_media.h>
++#include <ifaddrs.h>
++#include <net80211/ieee80211_ioctl.h>
++#include <net/ethernet.h>
++
++#include "base/strings/utf_string_conversions.h"
++#include "content/browser/geolocation/wifi_data_provider_common.h"
++#include "content/browser/geolocation/wifi_data_provider_manager.h"
++
++namespace content {
++namespace {
++// The time periods, in milliseconds, between successive polls of the wifi data.
++const int kDefaultPollingInterval = 10000;  // 10s
++const int kNoChangePollingInterval = 120000;  // 2 mins
++const int kTwoNoChangePollingInterval = 600000;  // 10 mins
++const int kNoWifiPollingIntervalMilliseconds = 20 * 1000; // 20s
++
++// Convert a wifi frequency to the corresponding channel.
++// Taken from wifi_data_provider_linux.cc where it says this was
++// adapted from geolocaiton/wifilib.cc in googleclient (internal to google).
++int frquency_to_channel(int frequency_Mhz) {
++	if (frequency_Mhz >= 2412 && frequency_Mhz <= 2472)  // Channels 1-13.
++		return (frequency_Mhz - 2407) / 5;
++	if (frequency_Mhz == 2484)
++		return 14;
++	if (frequency_Mhz > 5000 && frequency_Mhz < 6000)  // .11a bands.
++		return (frequency_Mhz - 5000) / 5;
++	// Ignore everything else.
++	return AccessPointData().channel;  // invalid channel
++}
++
++// Provides the wifi API binding for FreeBSD.
++class AccessPointDataFreeBSD : public WifiDataProviderCommon::WlanApiInterface {
++public:
++	AccessPointDataFreeBSD();
++	~AccessPointDataFreeBSD();
++
++	// this does nothing
++	bool Init();
++
++	// get the AP data
++	virtual bool GetAccessPointData(WifiData::AccessPointDataSet* data);
++
++private:
++	DISALLOW_COPY_AND_ASSIGN(AccessPointDataFreeBSD);
++};
++
++AccessPointDataFreeBSD::AccessPointDataFreeBSD() {
++}
++
++AccessPointDataFreeBSD::~AccessPointDataFreeBSD() {
++}
++
++bool AccessPointDataFreeBSD::Init() {
++	return true;
++}
++
++bool AccessPointDataFreeBSD::GetAccessPointData(WifiData::AccessPointDataSet* data) {
++	bool			res;
++	char			*dupn;
++	struct ifaddrs		*ifal, *ifa;
++	struct ifreq		ifr;
++	struct ifmediareq	ifmr;
++	struct ieee80211req 	i802r;
++	int			s;
++	char			iscanbuf[32*1024], *vsr;
++	unsigned		len;
++	AccessPointData		apd;
++
++	res = false;
++	if (getifaddrs(&ifal) < 0)
++		return res;
++
++	dupn = NULL;
++	for (ifa = ifal; ifa; ifa = ifa->ifa_next) {
++		memset(&ifr, 0, sizeof(ifr));
++
++		if (dupn != NULL && strcmp(dupn, ifa->ifa_name) == 0)
++			continue;
++		dupn = ifa->ifa_name;
++
++		strncpy(ifr.ifr_name, ifa->ifa_name, sizeof(ifr.ifr_name));
++		ifr.ifr_addr.sa_family = AF_LOCAL;
++
++		if ((s = socket(ifr.ifr_addr.sa_family, SOCK_DGRAM, 0)) < 0)
++			continue;
++
++		(void) memset(&ifmr, 0, sizeof(ifmr));
++		(void) strncpy(ifmr.ifm_name, ifa->ifa_name, sizeof(ifmr.ifm_name));
++
++		if (ioctl(s, SIOCGIFMEDIA, (caddr_t)&ifmr) < 0) {
++			close(s);
++			continue;
++		}
++		if (IFM_TYPE(ifmr.ifm_active) != IFM_IEEE80211) {
++			close(s);
++			continue;
++		}
++
++		(void) memset(&i802r, 0, sizeof(i802r));
++		(void) strncpy(i802r.i_name, ifa->ifa_name, sizeof(i802r.i_name));
++		i802r.i_type = IEEE80211_IOC_SCAN_RESULTS;
++		i802r.i_data = iscanbuf;
++		i802r.i_len = sizeof(iscanbuf);
++		if (ioctl(s, SIOCG80211, &i802r) < 0) {
++			close(s);
++			continue;
++		}
++
++		close(s);
++
++		vsr = (char *) i802r.i_data;
++		len = i802r.i_len;
++		while (len >= sizeof(struct ieee80211req_scan_result)) {
++			struct ieee80211req_scan_result *isr;
++			char		*id;
++			int		idlen;
++			char		ssid[IEEE80211_NWID_LEN+1];
++
++			isr = (struct ieee80211req_scan_result *) vsr;
++
++			if (isr->isr_meshid_len) {
++				id = vsr + isr->isr_ie_off + isr->isr_ssid_len;
++				idlen = isr->isr_meshid_len;
++			}
++			else {
++				id = vsr + isr->isr_ie_off;
++				idlen = isr->isr_ssid_len;
++			}
++			strncpy(ssid, id, idlen);
++			ssid[idlen] = '\0';
++			apd.ssid = base::UTF8ToUTF16(ssid);
++			apd.mac_address = MacAddressAsString16(isr->isr_bssid);
++			apd.radio_signal_strength = (isr->isr_rssi/2) + isr->isr_noise;
++			apd.signal_to_noise = apd.radio_signal_strength - isr->isr_noise;
++			apd.channel = frquency_to_channel(isr->isr_freq);
++			VLOG(1) << "FreeBSD access point: "
++				<< "SSID: " << apd.ssid << ", "
++				<< "MAC: " << apd.mac_address << ", "
++				<< "Strength: " << apd.radio_signal_strength << ":"
++					        << apd.signal_to_noise << ", "
++				<< "Channel: " << apd.channel;
++			data->insert(apd);
++			res = true;
++			len -= isr->isr_len;
++			vsr += isr->isr_len;
++		}
++        }
++
++	freeifaddrs(ifal);
++
++	return res;
++}
++
++}  // namespace
++
++// static
++WifiDataProvider* WifiDataProviderManager::DefaultFactoryFunction() {
++	return new WifiDataProviderFreeBSD();
++}
++
++WifiDataProviderFreeBSD::WifiDataProviderFreeBSD() {
++}
++
++WifiDataProviderFreeBSD::~WifiDataProviderFreeBSD() {
++}
++
++WifiDataProviderCommon::WlanApiInterface* WifiDataProviderFreeBSD::NewWlanApi() {
++
++	scoped_ptr<AccessPointDataFreeBSD> wlan_api(new AccessPointDataFreeBSD);
++	if (wlan_api->Init())
++		return wlan_api.release();
++
++	return NULL;
++}
++
++WifiPollingPolicy* WifiDataProviderFreeBSD::NewPollingPolicy() {
++	return new GenericWifiPollingPolicy<kDefaultPollingInterval,
++	    kNoChangePollingInterval,
++	    kTwoNoChangePollingInterval,
++	    kNoWifiPollingIntervalMilliseconds>;
++}
++
++} // namespace content
diff --git a/chromium-new/patches/patch-content_browser_geolocation_wifi__data__provider__freebsd.h b/chromium-new/patches/patch-content_browser_geolocation_wifi__data__provider__freebsd.h
new file mode 100644
index 0000000..3b68656
--- /dev/null
+++ b/chromium-new/patches/patch-content_browser_geolocation_wifi__data__provider__freebsd.h
@@ -0,0 +1,35 @@
+$NetBSD$
+
+--- content/browser/geolocation/wifi_data_provider_freebsd.h.orig	2016-07-10 13:25:12.348954436 +0000
++++ content/browser/geolocation/wifi_data_provider_freebsd.h
+@@ -0,0 +1,30 @@
++// Copyright (c) 2012 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.
++
++#ifndef CONTENT_BROWSER_GEOLOCATION_WIFI_DATA_PROVIDER_FREEBSD_H_
++#define CONTENT_BROWSER_GEOLOCATION_WIFI_DATA_PROVIDER_FREEBSD_H_
++
++#include "base/compiler_specific.h"
++#include "content/browser/geolocation/wifi_data_provider_common.h"
++#include "content/common/content_export.h"
++
++namespace content {
++
++class CONTENT_EXPORT WifiDataProviderFreeBSD : public WifiDataProviderCommon {
++ public:
++  WifiDataProviderFreeBSD();
++
++ private:
++  virtual ~WifiDataProviderFreeBSD();
++
++  // WifiDataProviderCommon
++  virtual WlanApiInterface* NewWlanApi() override;
++  virtual WifiPollingPolicy* NewPollingPolicy() override;
++
++  DISALLOW_COPY_AND_ASSIGN(WifiDataProviderFreeBSD);
++};
++
++}  // namespace content
++
++#endif  // CONTENT_BROWSER_GEOLOCATION_WIFI_DATA_PROVIDER_FREEBSD_H_
diff --git a/chromium-new/patches/patch-content_browser_gpu_gpu__data__manager__impl__private.cc b/chromium-new/patches/patch-content_browser_gpu_gpu__data__manager__impl__private.cc
new file mode 100644
index 0000000..6894d53
--- /dev/null
+++ b/chromium-new/patches/patch-content_browser_gpu_gpu__data__manager__impl__private.cc
@@ -0,0 +1,38 @@
+$NetBSD$
+
+--- content/browser/gpu/gpu_data_manager_impl_private.cc.orig	2016-06-24 01:02:20.000000000 +0000
++++ content/browser/gpu/gpu_data_manager_impl_private.cc
+@@ -470,8 +470,10 @@ void GpuDataManagerImplPrivate::SetGLStr
+   gpu_info.gl_renderer = gl_renderer;
+   gpu_info.gl_version = gl_version;
+ 
++#if !defined(OS_FREEBSD)
+   gpu::IdentifyActiveGPU(&gpu_info);
+   gpu::CollectDriverInfoGL(&gpu_info);
++#endif
+ 
+   UpdateGpuInfo(gpu_info);
+   UpdateGpuSwitchingManager(gpu_info);
+@@ -515,10 +517,12 @@ void GpuDataManagerImplPrivate::Initiali
+     // Also declare the driver_vendor to be osmesa to be able to specify
+     // exceptions based on driver_vendor==osmesa for some blacklist rules.
+     gpu_info.driver_vendor = gfx::kGLImplementationOSMesaName;
++#ifndef __FreeBSD__
+   } else {
+     TRACE_EVENT0("startup",
+       "GpuDataManagerImpl::Initialize:CollectBasicGraphicsInfo");
+     gpu::CollectBasicGraphicsInfo(&gpu_info);
++#endif
+ 
+     if (command_line->HasSwitch(switches::kGpuTestingVendorId) &&
+         command_line->HasSwitch(switches::kGpuTestingDeviceId)) {
+@@ -617,7 +621,9 @@ void GpuDataManagerImplPrivate::UpdateGp
+     return;
+ 
+   bool was_info_available = IsCompleteGpuInfoAvailable();
++#ifndef __FreeBSD__
+   gpu::MergeGPUInfo(&gpu_info_, gpu_info);
++#endif
+   if (IsCompleteGpuInfoAvailable()) {
+     complete_gpu_info_already_requested_ = true;
+   } else if (was_info_available) {
diff --git a/chromium-new/patches/patch-content_browser_gpu_gpu__internals__ui.cc b/chromium-new/patches/patch-content_browser_gpu_gpu__internals__ui.cc
new file mode 100644
index 0000000..d67c4eb
--- /dev/null
+++ b/chromium-new/patches/patch-content_browser_gpu_gpu__internals__ui.cc
@@ -0,0 +1,31 @@
+$NetBSD$
+
+--- content/browser/gpu/gpu_internals_ui.cc.orig	2016-06-24 01:02:20.000000000 +0000
++++ content/browser/gpu/gpu_internals_ui.cc
+@@ -38,7 +38,7 @@
+ #include "third_party/angle/src/common/version.h"
+ #include "ui/gl/gpu_switching_manager.h"
+ 
+-#if defined(OS_LINUX) && defined(USE_X11)
++#if (defined(OS_BSD) || defined(OS_LINUX)) && defined(USE_X11)
+ #include <X11/Xlib.h>
+ #endif
+ #if defined(OS_WIN)
+@@ -46,7 +46,7 @@
+ #include "ui/gfx/win/physical_size.h"
+ #endif
+ 
+-#if defined(OS_LINUX) && defined(USE_X11)
++#if (defined(OS_BSD) || defined(OS_LINUX)) && defined(USE_X11)
+ #include "ui/base/x/x11_util.h"
+ #include "ui/gfx/x/x11_atom_cache.h"
+ #endif
+@@ -199,7 +199,7 @@ base::DictionaryValue* GpuInfoAsDictiona
+                                              gpu_info.gl_ws_version));
+   basic_info->Append(NewDescriptionValuePair("Window system binding extensions",
+                                              gpu_info.gl_ws_extensions));
+-#if defined(OS_LINUX) && defined(USE_X11)
++#if (defined(OS_BSD) || defined(OS_LINUX)) && defined(USE_X11)
+   basic_info->Append(NewDescriptionValuePair("Window manager",
+                                              ui::GuessWindowManagerName()));
+   {
diff --git a/chromium-new/patches/patch-content_browser_gpu_gpu_data_manager_impl_private_cc b/chromium-new/patches/patch-content_browser_gpu_gpu_data_manager_impl_private_cc
deleted file mode 100644
index 5c4642b..0000000
--- a/chromium-new/patches/patch-content_browser_gpu_gpu_data_manager_impl_private_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-content_browser_gpu_gpu_data_manager_impl_private_cc,v 1.4 2015/10/14 16:42:07 robert Exp $
---- content/browser/gpu/gpu_data_manager_impl_private.cc.orig.port	Tue Oct 13 21:04:32 2015
-+++ content/browser/gpu/gpu_data_manager_impl_private.cc	Wed Oct 14 07:41:13 2015
-@@ -360,7 +360,7 @@ bool GpuDataManagerImplPrivate::GpuAccessAllowed(
-     // strings even if all features are blacklisted. If all GPU features are
-     // disabled, the GPU process will only initialize GL bindings, create a GL
-     // context, and collect full GPU info.
--#if !defined(OS_LINUX)
-+#if !defined(OS_LINUX) && !defined(OS_BSD)
-     if (reason) {
-       *reason = "All GPU features are blacklisted.";
-     }
diff --git a/chromium-new/patches/patch-content_browser_gpu_gpu_internals_ui_cc b/chromium-new/patches/patch-content_browser_gpu_gpu_internals_ui_cc
deleted file mode 100644
index 6b77f61..0000000
--- a/chromium-new/patches/patch-content_browser_gpu_gpu_internals_ui_cc
+++ /dev/null
@@ -1,30 +0,0 @@
-$OpenBSD: patch-content_browser_gpu_gpu_internals_ui_cc,v 1.4 2016/01/23 18:49:31 robert Exp $
---- content/browser/gpu/gpu_internals_ui.cc.orig.port	Wed Jan 20 21:01:21 2016
-+++ content/browser/gpu/gpu_internals_ui.cc	Fri Jan 22 19:58:58 2016
-@@ -4,7 +4,7 @@
- 
- #include "content/browser/gpu/gpu_internals_ui.h"
- 
--#if defined(OS_LINUX) && defined(USE_X11)
-+#if (defined(OS_BSD) || defined(OS_LINUX)) && defined(USE_X11)
- #include <X11/Xlib.h>
- #endif
- 
-@@ -41,7 +41,7 @@
- #include "ui/base/win/shell.h"
- #endif
- 
--#if defined(OS_LINUX) && defined(USE_X11)
-+#if (defined(OS_BSD) || defined(OS_LINUX)) && defined(USE_X11)
- #include "ui/base/x/x11_util.h"
- #include "ui/gfx/x/x11_atom_cache.h"
- #endif
-@@ -183,7 +183,7 @@ base::DictionaryValue* GpuInfoAsDictionaryValue() {
-                                              gpu_info.gl_ws_version));
-   basic_info->Append(NewDescriptionValuePair("Window system binding extensions",
-                                              gpu_info.gl_ws_extensions));
--#if defined(OS_LINUX) && defined(USE_X11)
-+#if (defined(OS_BSD) || defined(OS_LINUX)) && defined(USE_X11)
-   basic_info->Append(NewDescriptionValuePair("Window manager",
-                                              ui::GuessWindowManagerName()));
-   {
diff --git a/chromium-new/patches/patch-content_browser_indexed__db_indexed__db__backing__store.cc b/chromium-new/patches/patch-content_browser_indexed__db_indexed__db__backing__store.cc
new file mode 100644
index 0000000..f5986af
--- /dev/null
+++ b/chromium-new/patches/patch-content_browser_indexed__db_indexed__db__backing__store.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- content/browser/indexed_db/indexed_db_backing_store.cc.orig	2016-06-24 01:02:20.000000000 +0000
++++ content/browser/indexed_db/indexed_db_backing_store.cc
+@@ -2432,7 +2432,7 @@ bool IndexedDBBackingStore::WriteBlobFil
+         // The round-trip can be lossy; round to nearest millisecond.
+         int64_t delta =
+             (descriptor.last_modified() - info.last_modified).InMilliseconds();
+-        if (std::abs(delta) > 1)
++        if (std::labs(delta) > 1)
+           return false;
+       }
+       if (!base::TouchFile(path, info.last_accessed, info.last_modified)) {
diff --git a/chromium-new/patches/patch-content_browser_power_usage_monitor_impl_cc b/chromium-new/patches/patch-content_browser_power_usage_monitor_impl_cc
deleted file mode 100644
index 66e83bf..0000000
--- a/chromium-new/patches/patch-content_browser_power_usage_monitor_impl_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-content_browser_power_usage_monitor_impl_cc,v 1.1 2015/03/18 19:26:29 robert Exp $
---- content/browser/power_usage_monitor_impl.cc.orig.port	Wed Mar 11 22:02:40 2015
-+++ content/browser/power_usage_monitor_impl.cc	Wed Mar 11 22:02:54 2015
-@@ -18,6 +18,8 @@
- #include "content/public/browser/power_usage_monitor.h"
- #include "content/public/browser/render_process_host.h"
- 
-+#include <math.h>
-+
- namespace content {
- 
- namespace {
diff --git a/chromium-new/patches/patch-content_browser_ppapi__plugin__process__host.cc b/chromium-new/patches/patch-content_browser_ppapi__plugin__process__host.cc
new file mode 100644
index 0000000..986ad0f
--- /dev/null
+++ b/chromium-new/patches/patch-content_browser_ppapi__plugin__process__host.cc
@@ -0,0 +1,31 @@
+$NetBSD$
+
+--- content/browser/ppapi_plugin_process_host.cc.orig	2016-06-24 01:02:20.000000000 +0000
++++ content/browser/ppapi_plugin_process_host.cc
+@@ -49,7 +49,7 @@
+ 
+ namespace content {
+ 
+-#if defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_MACOSX)
++#if defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_MACOSX) && !defined(OS_BSD)
+ ZygoteHandle g_ppapi_zygote;
+ #endif  // defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_MACOSX)
+ 
+@@ -113,7 +113,7 @@ class PpapiPluginSandboxedProcessLaunche
+   }
+ 
+ #elif defined(OS_POSIX)
+-#if !defined(OS_MACOSX) && !defined(OS_ANDROID)
++#if !defined(OS_MACOSX) && !defined(OS_ANDROID) && !defined(OS_BSD)
+   ZygoteHandle* GetZygote() override {
+     const base::CommandLine& browser_command_line =
+         *base::CommandLine::ForCurrentProcess();
+@@ -213,7 +213,7 @@ PpapiPluginProcessHost* PpapiPluginProce
+   return NULL;
+ }
+ 
+-#if defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_MACOSX)
++#if defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_MACOSX) && !defined(OS_BSD)
+ // static
+ void PpapiPluginProcessHost::EarlyZygoteLaunch() {
+   DCHECK(!g_ppapi_zygote);
diff --git a/chromium-new/patches/patch-content_browser_renderer__host_render__process__host__impl.cc b/chromium-new/patches/patch-content_browser_renderer__host_render__process__host__impl.cc
new file mode 100644
index 0000000..84e58c5
--- /dev/null
+++ b/chromium-new/patches/patch-content_browser_renderer__host_render__process__host__impl.cc
@@ -0,0 +1,31 @@
+$NetBSD$
+
+--- content/browser/renderer_host/render_process_host_impl.cc.orig	2016-06-24 01:02:20.000000000 +0000
++++ content/browser/renderer_host/render_process_host_impl.cc
+@@ -359,7 +359,7 @@ SiteProcessMap* GetSiteProcessMapForBrow
+   return map;
+ }
+ 
+-#if defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_MACOSX)
++#if defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_MACOSX) && !defined(OS_BSD)
+ // This static member variable holds the zygote communication information for
+ // the renderer.
+ ZygoteHandle g_render_zygote;
+@@ -392,7 +392,7 @@ class RendererSandboxedProcessLauncherDe
+   }
+ 
+ #elif defined(OS_POSIX)
+-#if !defined(OS_MACOSX) && !defined(OS_ANDROID)
++#if !defined(OS_MACOSX) && !defined(OS_ANDROID) && !defined(OS_BSD)
+   ZygoteHandle* GetZygote() override {
+     const base::CommandLine& browser_command_line =
+         *base::CommandLine::ForCurrentProcess();
+@@ -514,7 +514,7 @@ void RenderProcessHost::SetMaxRendererPr
+   g_max_renderer_count_override = count;
+ }
+ 
+-#if defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_MACOSX)
++#if defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_MACOSX) && !defined(OS_BSD)
+ // static
+ void RenderProcessHostImpl::EarlyZygoteLaunch() {
+   DCHECK(!g_render_zygote);
diff --git a/chromium-new/patches/patch-content_browser_renderer__host_render__widget__host__view__aura.cc b/chromium-new/patches/patch-content_browser_renderer__host_render__widget__host__view__aura.cc
new file mode 100644
index 0000000..f1698bd
--- /dev/null
+++ b/chromium-new/patches/patch-content_browser_renderer__host_render__widget__host__view__aura.cc
@@ -0,0 +1,40 @@
+$NetBSD$
+
+--- content/browser/renderer_host/render_widget_host_view_aura.cc.orig	2016-06-24 01:02:20.000000000 +0000
++++ content/browser/renderer_host/render_widget_host_view_aura.cc
+@@ -106,7 +106,7 @@
+ #include "ui/gfx/win/dpi.h"
+ #endif
+ 
+-#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
++#if defined(OS_LINUX) && !defined(OS_CHROMEOS) || defined(OS_BSD)
+ #include "content/common/input_messages.h"
+ #include "ui/events/linux/text_edit_command_auralinux.h"
+ #include "ui/events/linux/text_edit_key_bindings_delegate_auralinux.h"
+@@ -636,7 +636,7 @@ gfx::NativeViewId RenderWidgetHostViewAu
+   if (host)
+     return reinterpret_cast<gfx::NativeViewId>(host->GetAcceleratedWidget());
+ #endif
+-  return static_cast<gfx::NativeViewId>(NULL);
++  return static_cast<gfx::NativeViewId>(0);
+ }
+ 
+ gfx::NativeViewAccessible RenderWidgetHostViewAura::GetNativeViewAccessible() {
+@@ -2463,7 +2463,7 @@ bool RenderWidgetHostViewAura::NeedsInpu
+ }
+ 
+ bool RenderWidgetHostViewAura::NeedsMouseCapture() {
+-#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
++#if (defined(OS_LINUX) && !defined(OS_CHROMEOS)) || defined(OS_BSD)
+   return NeedsInputGrab();
+ #endif
+   return false;
+@@ -2691,7 +2691,7 @@ void RenderWidgetHostViewAura::ForwardKe
+   if (!target_host)
+     return;
+ 
+-#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
++#if (defined(OS_LINUX) && !defined(OS_CHROMEOS)) || defined(OS_BSD)
+   ui::TextEditKeyBindingsDelegateAuraLinux* keybinding_delegate =
+       ui::GetTextEditKeyBindingsDelegate();
+   std::vector<ui::TextEditCommandAuraLinux> commands;
diff --git a/chromium-new/patches/patch-content_browser_renderer_host_p2p_socket_dispatcher_host_h b/chromium-new/patches/patch-content_browser_renderer_host_p2p_socket_dispatcher_host_h
deleted file mode 100644
index 2e96950..0000000
--- a/chromium-new/patches/patch-content_browser_renderer_host_p2p_socket_dispatcher_host_h
+++ /dev/null
@@ -1,24 +0,0 @@
-$OpenBSD: patch-content_browser_renderer_host_p2p_socket_dispatcher_host_h,v 1.3 2016/01/23 18:49:31 robert Exp $
---- content/browser/renderer_host/p2p/socket_dispatcher_host.h.orig.port	Wed Jan 20 21:01:21 2016
-+++ content/browser/renderer_host/p2p/socket_dispatcher_host.h	Fri Jan 22 19:58:58 2016
-@@ -46,12 +46,6 @@ class P2PSocketDispatcherHost
-   // net::NetworkChangeNotifier::IPAddressObserver interface.
-   void OnIPAddressChanged() override;
- 
--  // Starts the RTP packet header dumping. Must be called on the IO thread.
--  void StartRtpDump(
--      bool incoming,
--      bool outgoing,
--      const RenderProcessHost::WebRtcRtpPacketCallback& packet_callback);
--
-   // Stops the RTP packet header dumping. Must be Called on the UI thread.
-   void StopRtpDumpOnUIThread(bool incoming, bool outgoing);
- 
-@@ -119,7 +113,6 @@ class P2PSocketDispatcherHost
- 
-   bool dump_incoming_rtp_packet_;
-   bool dump_outgoing_rtp_packet_;
--  RenderProcessHost::WebRtcRtpPacketCallback packet_callback_;
- 
-   DISALLOW_COPY_AND_ASSIGN(P2PSocketDispatcherHost);
- };
diff --git a/chromium-new/patches/patch-content_browser_renderer_host_render_widget_host_impl_cc b/chromium-new/patches/patch-content_browser_renderer_host_render_widget_host_impl_cc
deleted file mode 100644
index cad52c3..0000000
--- a/chromium-new/patches/patch-content_browser_renderer_host_render_widget_host_impl_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-content_browser_renderer_host_render_widget_host_impl_cc,v 1.1 2015/12/12 20:20:01 robert Exp $
---- content/browser/renderer_host/render_widget_host_impl.cc.orig.port	Sat Dec 12 11:16:43 2015
-+++ content/browser/renderer_host/render_widget_host_impl.cc	Sat Dec 12 11:33:30 2015
-@@ -657,7 +657,7 @@ void RenderWidgetHostImpl::WasResized() {
- }
- 
- void RenderWidgetHostImpl::DispatchColorProfile() {
--#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
-   static bool image_profiles = base::CommandLine::ForCurrentProcess()->
-      HasSwitch(switches::kEnableImageColorProfiles);
-   if (!image_profiles)
diff --git a/chromium-new/patches/patch-content_browser_renderer_host_render_widget_host_view_aura_cc b/chromium-new/patches/patch-content_browser_renderer_host_render_widget_host_view_aura_cc
deleted file mode 100644
index aab9956..0000000
--- a/chromium-new/patches/patch-content_browser_renderer_host_render_widget_host_view_aura_cc
+++ /dev/null
@@ -1,30 +0,0 @@
-$OpenBSD: patch-content_browser_renderer_host_render_widget_host_view_aura_cc,v 1.14 2016/01/23 18:49:31 robert Exp $
---- content/browser/renderer_host/render_widget_host_view_aura.cc.orig.port	Fri Jan 22 22:11:24 2016
-+++ content/browser/renderer_host/render_widget_host_view_aura.cc	Fri Jan 22 22:12:03 2016
-@@ -102,7 +102,7 @@
- #include "ui/gfx/win/dpi.h"
- #endif
- 
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_BSD) || defined(OS_LINUX)) && !defined(OS_CHROMEOS)
- #include "content/common/input_messages.h"
- #include "ui/events/linux/text_edit_command_auralinux.h"
- #include "ui/events/linux/text_edit_key_bindings_delegate_auralinux.h"
-@@ -2543,7 +2543,7 @@ bool RenderWidgetHostViewAura::NeedsInputGrab() {
- }
- 
- bool RenderWidgetHostViewAura::NeedsMouseCapture() {
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_BSD) || defined(OS_LINUX)) && !defined(OS_CHROMEOS)
-   return NeedsInputGrab();
- #endif
-   return false;
-@@ -2774,7 +2774,7 @@ void RenderWidgetHostViewAura::ForwardKeyboardEvent(
-   if (host_->delegate())
-     target_host = host_->delegate()->GetFocusedRenderWidgetHost(host_);
- 
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
-   ui::TextEditKeyBindingsDelegateAuraLinux* keybinding_delegate =
-       ui::GetTextEditKeyBindingsDelegate();
-   std::vector<ui::TextEditCommandAuraLinux> commands;
diff --git a/chromium-new/patches/patch-content_browser_time__zone__monitor.cc b/chromium-new/patches/patch-content_browser_time__zone__monitor.cc
new file mode 100644
index 0000000..009ee88
--- /dev/null
+++ b/chromium-new/patches/patch-content_browser_time__zone__monitor.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- content/browser/time_zone_monitor.cc.orig	2016-06-24 01:02:20.000000000 +0000
++++ content/browser/time_zone_monitor.cc
+@@ -29,7 +29,7 @@ void TimeZoneMonitor::NotifyRenderers() 
+   scoped_ptr<icu::TimeZone> new_zone(icu::TimeZone::createDefault());
+ #else
+   icu::TimeZone* new_zone = icu::TimeZone::detectHostTimeZone();
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_BSD)
+   // We get here multiple times on Linux per a single tz change, but
+   // want to update the ICU default zone and notify renderer only once.
+   scoped_ptr<icu::TimeZone> current_zone(icu::TimeZone::createDefault());
diff --git a/chromium-new/patches/patch-content_browser_time__zone__monitor__linux.cc b/chromium-new/patches/patch-content_browser_time__zone__monitor__linux.cc
new file mode 100644
index 0000000..12dc6f4
--- /dev/null
+++ b/chromium-new/patches/patch-content_browser_time__zone__monitor__linux.cc
@@ -0,0 +1,24 @@
+$NetBSD$
+
+--- content/browser/time_zone_monitor_linux.cc.orig	2016-06-24 01:02:20.000000000 +0000
++++ content/browser/time_zone_monitor_linux.cc
+@@ -53,6 +53,9 @@ class TimeZoneMonitorLinuxImpl
+       : base::RefCountedThreadSafe<TimeZoneMonitorLinuxImpl>(),
+         file_path_watchers_(),
+         owner_(owner) {
++  }
++
++  void StartWatching() {
+     DCHECK_CURRENTLY_ON(BrowserThread::UI);
+     BrowserThread::PostTask(
+         BrowserThread::FILE,
+@@ -149,6 +152,9 @@ TimeZoneMonitorLinux::TimeZoneMonitorLin
+   // changed.
+   if (!getenv("TZ")) {
+     impl_ = new TimeZoneMonitorLinuxImpl(this);
++    if (impl_.get()) {
++      impl_->StartWatching();
++    }
+   }
+ }
+ 
diff --git a/chromium-new/patches/patch-content_browser_time_zone_monitor_cc b/chromium-new/patches/patch-content_browser_time_zone_monitor_cc
deleted file mode 100644
index 10a55ae..0000000
--- a/chromium-new/patches/patch-content_browser_time_zone_monitor_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-content_browser_time_zone_monitor_cc,v 1.1 2015/07/25 12:59:15 robert Exp $
---- content/browser/time_zone_monitor.cc.orig.port	Fri Jul 24 10:34:08 2015
-+++ content/browser/time_zone_monitor.cc	Fri Jul 24 10:34:17 2015
-@@ -28,7 +28,7 @@ void TimeZoneMonitor::NotifyRenderers() {
-   scoped_ptr<icu::TimeZone> new_zone(icu::TimeZone::createDefault());
- #else
-   icu::TimeZone* new_zone = icu::TimeZone::detectHostTimeZone();
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   // We get here multiple times on Linux per a single tz change, but
-   // want to update the ICU default zone and notify renderer only once.
-   scoped_ptr<icu::TimeZone> current_zone(icu::TimeZone::createDefault());
diff --git a/chromium-new/patches/patch-content_browser_utility__process__host__impl.cc b/chromium-new/patches/patch-content_browser_utility__process__host__impl.cc
new file mode 100644
index 0000000..7f54b9e
--- /dev/null
+++ b/chromium-new/patches/patch-content_browser_utility__process__host__impl.cc
@@ -0,0 +1,58 @@
+$NetBSD$
+
+--- content/browser/utility_process_host_impl.cc.orig	2016-06-24 01:02:20.000000000 +0000
++++ content/browser/utility_process_host_impl.cc
+@@ -37,7 +37,7 @@
+ #include "ipc/ipc_switches.h"
+ #include "ui/base/ui_base_switches.h"
+ 
+-#if defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_MACOSX)
++#if defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_MACOSX) && !defined(OS_BSD)
+ #include "content/public/browser/zygote_handle_linux.h"
+ #endif  // defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_MACOSX)
+ 
+@@ -48,7 +48,7 @@
+ 
+ namespace content {
+ 
+-#if defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_MACOSX)
++#if defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_MACOSX) && !defined(OS_BSD)
+ namespace {
+ ZygoteHandle g_utility_zygote;
+ }  // namespace
+@@ -68,7 +68,7 @@ class UtilitySandboxedProcessLauncherDel
+         launch_elevated_(launch_elevated)
+ #elif defined(OS_POSIX)
+         env_(env),
+-#if !defined(OS_MACOSX) && !defined(OS_ANDROID)
++#if !defined(OS_MACOSX) && !defined(OS_ANDROID) && !defined(OS_BSD)
+         no_sandbox_(no_sandbox),
+ #endif  // !defined(OS_MACOSX)  && !defined(OS_ANDROID)
+         ipc_fd_(host->TakeClientFileDescriptor())
+@@ -100,7 +100,7 @@ class UtilitySandboxedProcessLauncherDel
+ 
+ #elif defined(OS_POSIX)
+ 
+-#if !defined(OS_MACOSX) && !defined(OS_ANDROID)
++#if !defined(OS_MACOSX) && !defined(OS_ANDROID) && !defined(OS_BSD)
+   ZygoteHandle* GetZygote() override {
+     if (no_sandbox_ || !exposed_dir_.empty())
+       return nullptr;
+@@ -122,7 +122,7 @@ class UtilitySandboxedProcessLauncherDel
+   bool launch_elevated_;
+ #elif defined(OS_POSIX)
+   base::EnvironmentMap env_;
+-#if !defined(OS_MACOSX) && !defined(OS_ANDROID)
++#if !defined(OS_MACOSX) && !defined(OS_ANDROID) && !defined(OS_BSD)
+   bool no_sandbox_;
+ #endif  // !defined(OS_MACOSX) && !defined(OS_ANDROID)
+   base::ScopedFD ipc_fd_;
+@@ -231,7 +231,7 @@ void UtilityProcessHostImpl::SetName(con
+   name_ = name;
+ }
+ 
+-#if defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_MACOSX)
++#if defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_MACOSX) && !defined(OS_BSD)
+ // static
+ void UtilityProcessHostImpl::EarlyZygoteLaunch() {
+   DCHECK(!g_utility_zygote);
diff --git a/chromium-new/patches/patch-content_browser_web__contents_web__contents__impl.cc b/chromium-new/patches/patch-content_browser_web__contents_web__contents__impl.cc
new file mode 100644
index 0000000..39cb339
--- /dev/null
+++ b/chromium-new/patches/patch-content_browser_web__contents_web__contents__impl.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- content/browser/web_contents/web_contents_impl.cc.orig	2016-06-24 01:02:20.000000000 +0000
++++ content/browser/web_contents/web_contents_impl.cc
+@@ -1685,7 +1685,7 @@ bool WebContentsImpl::HandleWheelEvent(
+     // Count only integer cumulative scrolls as zoom events; this handles
+     // smooth scroll and regular scroll device behavior.
+     zoom_scroll_remainder_ += event.wheelTicksY;
+-    int whole_zoom_scroll_remainder_ = std::lround(zoom_scroll_remainder_);
++    int whole_zoom_scroll_remainder_ = lround(zoom_scroll_remainder_);
+     zoom_scroll_remainder_ -= whole_zoom_scroll_remainder_;
+     if (whole_zoom_scroll_remainder_ != 0) {
+       delegate_->ContentsZoomChange(whole_zoom_scroll_remainder_ > 0);
diff --git a/chromium-new/patches/patch-content_common_gpu_gpu_memory_manager_h b/chromium-new/patches/patch-content_common_gpu_gpu_memory_manager_h
deleted file mode 100644
index 94349b3..0000000
--- a/chromium-new/patches/patch-content_common_gpu_gpu_memory_manager_h
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-content_common_gpu_gpu_memory_manager_h,v 1.1 2014/07/20 17:22:34 robert Exp $
---- content/common/gpu/gpu_memory_manager.h.orig.port	Sat Jul 19 05:41:40 2014
-+++ content/common/gpu/gpu_memory_manager.h	Sat Jul 19 05:44:26 2014
-@@ -28,7 +28,7 @@ class GpuMemoryTrackingGroup;
- class CONTENT_EXPORT GpuMemoryManager :
-     public base::SupportsWeakPtr<GpuMemoryManager> {
-  public:
--#if defined(OS_ANDROID) || (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+#if defined(OS_ANDROID) || (defined(OS_LINUX) && !defined(OS_CHROMEOS)) || defined(OS_BSD)
-   enum { kDefaultMaxSurfacesWithFrontbufferSoftLimit = 1 };
- #else
-   enum { kDefaultMaxSurfacesWithFrontbufferSoftLimit = 8 };
diff --git a/chromium-new/patches/patch-content_common_sandbox__linux_sandbox__debug__handling__linux.cc b/chromium-new/patches/patch-content_common_sandbox__linux_sandbox__debug__handling__linux.cc
new file mode 100644
index 0000000..4b62c2f
--- /dev/null
+++ b/chromium-new/patches/patch-content_common_sandbox__linux_sandbox__debug__handling__linux.cc
@@ -0,0 +1,31 @@
+$NetBSD$
+
+--- content/common/sandbox_linux/sandbox_debug_handling_linux.cc.orig	2016-06-24 01:02:21.000000000 +0000
++++ content/common/sandbox_linux/sandbox_debug_handling_linux.cc
+@@ -7,7 +7,9 @@
+ #include <errno.h>
+ #include <signal.h>
+ #include <stddef.h>
++#if 0 // no OS_FREEBSD here?
+ #include <sys/prctl.h>
++#endif
+ #include <unistd.h>
+ 
+ #include "base/command_line.h"
+@@ -69,12 +71,16 @@ bool SandboxDebugHandling::SetDumpableSt
+     return true;
+   }
+ 
++#if 0 // no OS_FREEBSD here?
+   if (prctl(PR_SET_DUMPABLE, 0) != 0) {
+     PLOG(ERROR) << "Failed to set non-dumpable flag";
+     return false;
+   }
+ 
+   return prctl(PR_GET_DUMPABLE) == 0;
++#else
++  return false;
++#endif
+ }
+ 
+ }  // namespace content
diff --git a/chromium-new/patches/patch-content_common_sandbox_init_openbsd_cc b/chromium-new/patches/patch-content_common_sandbox_init_openbsd_cc
deleted file mode 100644
index 5df8f21..0000000
--- a/chromium-new/patches/patch-content_common_sandbox_init_openbsd_cc
+++ /dev/null
@@ -1,80 +0,0 @@
-$OpenBSD: patch-content_common_sandbox_init_openbsd_cc,v 1.3 2016/01/23 18:49:31 robert Exp $
---- content/common/sandbox_init_openbsd.cc.orig.port	Fri Jan 22 20:01:50 2016
-+++ content/common/sandbox_init_openbsd.cc	Sat Jan 23 13:18:46 2016
-@@ -0,0 +1,76 @@
-+/*
-+ * Copyright (c) 2016 Robert Nagy <robert%openbsd.org@localhost>
-+ *
-+ * Permission to use, copy, modify, and distribute this software for any
-+ * purpose with or without fee is hereby granted, provided that the above
-+ * copyright notice and this permission notice appear in all copies.
-+ *
-+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-+ */
-+
-+#include "content/common/sandbox_init_openbsd.h"
-+
-+#include "base/command_line.h"
-+#include "base/logging.h"
-+#include "base/rand_util.h"
-+#include "base/sys_info.h"
-+#include "content/public/common/content_switches.h"
-+#include "content/public/common/sandbox_init.h"
-+
-+namespace content {
-+
-+bool InitializeSandbox() {
-+  const base::CommandLine& command_line =
-+      *base::CommandLine::ForCurrentProcess();
-+  if (command_line.HasSwitch(switches::kNoSandbox))
-+    return false;
-+
-+  std::string process_type =
-+      command_line.GetSwitchValueASCII(switches::kProcessType);
-+  VLOG(1) << "InitializeSandbox() process_type=" << process_type;
-+  if (process_type.empty()) {
-+    // Browser process isn't sandboxed.
-+    return false;
-+  } else if (process_type == switches::kRendererProcess) {
-+    // prot_exec needed by v8
-+    // flock needed by sqlite3 locking
-+    if (pledge("stdio rpath flock prot_exec sendfd", NULL) == -1) {
-+      LOG(ERROR) << "pledge() failed, errno: " << errno;
-+      _exit(1);
-+    }
-+  } else if (process_type == switches::kGpuProcess) {
-+    if (pledge("stdio drm prot_exec sendfd", NULL) == -1) {
-+      LOG(ERROR) << "pledge() failed, errno: " << errno;
-+      _exit(1);
-+    }
-+  } else if ((process_type == switches::kPluginProcess) ||
-+             (process_type == switches::kPpapiPluginProcess)) {
-+    // "cache" the amount of physical memory before pledge(2)
-+    {
-+      base::SysInfo::AmountOfPhysicalMemoryMB();
-+      base::GetUrandomFD();
-+    }
-+    // prot_exec needed by v8
-+    if (pledge("stdio prot_exec sendfd", NULL) == -1) {
-+      LOG(ERROR) << "pledge() failed, errno: " << errno;
-+      _exit(1);
-+    }
-+  } else if (process_type == switches::kUtilityProcess) {
-+    if (pledge("stdio rpath cpath wpath fattr", NULL) == -1) {
-+      LOG(ERROR) << "pledge() failed, errno: " << errno;
-+      _exit(1);
-+    }
-+  } else {
-+    return false;
-+  }
-+
-+  return true;
-+}
-+
-+}  // namespace content
diff --git a/chromium-new/patches/patch-content_common_sandbox_init_openbsd_h b/chromium-new/patches/patch-content_common_sandbox_init_openbsd_h
deleted file mode 100644
index 39f15d7..0000000
--- a/chromium-new/patches/patch-content_common_sandbox_init_openbsd_h
+++ /dev/null
@@ -1,32 +0,0 @@
-$OpenBSD: patch-content_common_sandbox_init_openbsd_h,v 1.1 2016/01/06 21:46:44 robert Exp $
---- content/common/sandbox_init_openbsd.h.orig.port	Sun Jan  3 21:05:04 2016
-+++ content/common/sandbox_init_openbsd.h	Mon Jan  4 08:17:09 2016
-@@ -0,0 +1,28 @@
-+/*
-+ * Copyright (c) 2016 Robert Nagy <robert%openbsd.org@localhost>
-+ *
-+ * Permission to use, copy, modify, and distribute this software for any
-+ * purpose with or without fee is hereby granted, provided that the above
-+ * copyright notice and this permission notice appear in all copies.
-+ *
-+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-+ */
-+
-+#ifndef CONTENT_COMMON_SANDBOX_INIT_OPENBSD_H_
-+#define CONTENT_COMMON_SANDBOX_INIT_OPENBSD_H_
-+
-+namespace content {
-+
-+// Initialize the sandbox for renderer, gpu, utility, worker, and plugin
-+// processes, depending on the command line flags.
-+bool InitializeSandbox();
-+
-+}  // namespace content
-+
-+#endif  // CONTENT_COMMON_SANDBOX_INIT_OPENBSD_H_
diff --git a/chromium-new/patches/patch-content_common_set__process__title__linux.cc b/chromium-new/patches/patch-content_common_set__process__title__linux.cc
new file mode 100644
index 0000000..dac2fb6
--- /dev/null
+++ b/chromium-new/patches/patch-content_common_set__process__title__linux.cc
@@ -0,0 +1,21 @@
+$NetBSD$
+
+--- content/common/set_process_title_linux.cc.orig	2016-06-24 01:02:21.000000000 +0000
++++ content/common/set_process_title_linux.cc
+@@ -49,6 +49,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, ...) {
+@@ -101,6 +103,7 @@ void setproctitle(const char* fmt, ...) 
+   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/chromium-new/patches/patch-content_common_set__process__title__linux.h b/chromium-new/patches/patch-content_common_set__process__title__linux.h
new file mode 100644
index 0000000..bc9b00f
--- /dev/null
+++ b/chromium-new/patches/patch-content_common_set__process__title__linux.h
@@ -0,0 +1,22 @@
+$NetBSD$
+
+--- content/common/set_process_title_linux.h.orig	2016-06-24 01:02:21.000000000 +0000
++++ content/common/set_process_title_linux.h
+@@ -5,6 +5,9 @@
+ #ifndef CONTENT_COMMON_SET_PROCESS_TITLE_LINUX_H_
+ #define CONTENT_COMMON_SET_PROCESS_TITLE_LINUX_H_
+ 
++#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
+@@ -14,6 +17,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/chromium-new/patches/patch-content_common_set_process_title_linux_cc b/chromium-new/patches/patch-content_common_set_process_title_linux_cc
deleted file mode 100644
index 6675d07..0000000
--- a/chromium-new/patches/patch-content_common_set_process_title_linux_cc
+++ /dev/null
@@ -1,20 +0,0 @@
-$OpenBSD: patch-content_common_set_process_title_linux_cc,v 1.1 2013/10/29 06:51:34 robert Exp $
---- content/common/set_process_title_linux.cc.orig.port	Sun Oct 20 18:59:28 2013
-+++ content/common/set_process_title_linux.cc	Sun Oct 20 18:59:54 2013
-@@ -48,6 +48,8 @@
- extern char** environ;
- 
- static char** g_main_argv = NULL;
-+
-+#if !defined(OS_BSD)
- static char* g_orig_argv0 = NULL;
- 
- void setproctitle(const char* fmt, ...) {
-@@ -100,6 +102,7 @@ void setproctitle(const char* fmt, ...) {
-   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/chromium-new/patches/patch-content_common_set_process_title_linux_h b/chromium-new/patches/patch-content_common_set_process_title_linux_h
deleted file mode 100644
index 66fcfc2..0000000
--- a/chromium-new/patches/patch-content_common_set_process_title_linux_h
+++ /dev/null
@@ -1,21 +0,0 @@
-$OpenBSD: patch-content_common_set_process_title_linux_h,v 1.1 2013/10/29 06:51:34 robert Exp $
---- content/common/set_process_title_linux.h.orig.port	Sun Oct 20 19:00:29 2013
-+++ content/common/set_process_title_linux.h	Sun Oct 20 19:00:48 2013
-@@ -5,6 +5,9 @@
- #ifndef CONTENT_COMMON_SET_PROCESS_TITLE_LINUX_H_
- #define CONTENT_COMMON_SET_PROCESS_TITLE_LINUX_H_
- 
-+#include "build/build_config.h"
-+
-+#if !defined(OS_BSD)
- // 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
-@@ -14,6 +17,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/chromium-new/patches/patch-content_content__browser.gypi b/chromium-new/patches/patch-content_content__browser.gypi
new file mode 100644
index 0000000..f7e7b18
--- /dev/null
+++ b/chromium-new/patches/patch-content_content__browser.gypi
@@ -0,0 +1,84 @@
+$NetBSD$
+
+--- content/content_browser.gypi.orig	2016-06-24 01:02:21.000000000 +0000
++++ content/content_browser.gypi
+@@ -864,6 +864,8 @@
+       'browser/geolocation/wifi_data_provider_common_win.cc',
+       'browser/geolocation/wifi_data_provider_common_win.h',
+       'browser/geolocation/wifi_data_provider_corewlan_mac.mm',
++      'browser/geolocation/wifi_data_provider_freebsd.cc',
++      'browser/geolocation/wifi_data_provider_freebsd.h',
+       'browser/geolocation/wifi_data_provider_linux.cc',
+       'browser/geolocation/wifi_data_provider_linux.h',
+       'browser/geolocation/wifi_data_provider_mac.cc',
+@@ -2013,7 +2015,7 @@
+         },
+       },
+     }],
+-    ['OS=="linux" and chromeos==0 and use_x11==1', {
++    ['(os_bsd==1 or OS=="linux") and chromeos==0 and use_x11==1', {
+       'dependencies': [
+         '../build/linux/system.gyp:atk',
+         '../build/linux/system.gyp:gconf',
+@@ -2040,7 +2042,7 @@
+         'browser/gamepad/gamepad_platform_data_fetcher_linux.cc',
+       ],
+     }],
+-    ['OS=="linux" and use_aura==1', {
++    ['(os_bsd==1 or OS=="linux") and use_aura==1', {
+       'dependencies': [
+         '../build/linux/system.gyp:fontconfig',
+       ],
+@@ -2131,8 +2133,29 @@
+       ],
+     }],
+     ['os_bsd==1', {
+-      'sources/': [
+-        ['exclude', '^browser/gamepad/gamepad_platform_data_fetcher_linux\\.cc$'],
++      'sources!': [
++        'public/browser/zygote_host_linux.h',
++        'browser/zygote_host/zygote_communication_linux.cc',
++        'browser/zygote_host/zygote_communication_linux.h',
++        'browser/zygote_host/zygote_handle_linux.cc',
++        'browser/zygote_host/zygote_host_impl_linux.cc',
++        'browser/zygote_host/zygote_host_impl_linux.h',
++        'zygote/zygote_linux.cc',
++        'zygote/zygote_linux.h',
++        'zygote/zygote_main_linux.cc',
++        'browser/device_monitor_linux.cc',
++        'browser/download/file_metadata_linux.cc',
++        'browser/gamepad/gamepad_platform_data_fetcher_linux.cc',
++        'browser/geolocation/wifi_data_provider_linux.cc',
++        'browser/udev_linux.cc',
++      ],
++      'dependencies': [
++        '../build/linux/system.gyp:dbus',
++      ],
++    }],
++    ['OS=="netbsd"', {
++      'sources!': [
++        'browser/geolocation/wifi_data_provider_freebsd.cc',
+       ],
+     }],
+     ['use_aura==1', {
+@@ -2181,10 +2204,7 @@
+         'browser/geolocation/empty_wifi_data_provider.cc',
+       ],
+     }],
+-    ['OS == "linux" and use_dbus==1', {
+-      'sources!': [
+-        'browser/geolocation/empty_wifi_data_provider.cc',
+-      ],
++    ['(OS == "linux" or os_bsd==1) and use_dbus==1', {
+       'dependencies': [
+         '../build/linux/system.gyp:dbus',
+         '../dbus/dbus.gyp:dbus',
+@@ -2200,7 +2220,7 @@
+         'browser/media/cdm/browser_cdm_manager.h',
+       ],
+     }],
+-    ['OS == "linux"', {
++    ['(os_bsd==1 or OS == "linux")', {
+       'dependencies': [
+         '../third_party/boringssl/boringssl.gyp:boringssl',
+       ],
diff --git a/chromium-new/patches/patch-content_content__common.gypi b/chromium-new/patches/patch-content_content__common.gypi
new file mode 100644
index 0000000..b24aa63
--- /dev/null
+++ b/chromium-new/patches/patch-content_content__common.gypi
@@ -0,0 +1,26 @@
+$NetBSD$
+
+--- content/content_common.gypi.orig	2016-06-24 01:02:21.000000000 +0000
++++ content/content_common.gypi
+@@ -673,6 +673,21 @@
+         'content.gyp:common_aidl',
+       ],
+     }],
++    ['os_bsd==1', {
++      'sources!': [
++        'common/sandbox_linux.cc',
++        'common/sandbox_linux.h',
++        'common/sandbox_init_linux.cc',
++        'common/sandbox_seccomp_bpf_linux.cc',
++        'common/sandbox_seccomp_bpf_linux.h',
++        'common/sandbox_linux/bpf_cros_arm_gpu_policy_linux.cc',
++        'common/sandbox_linux/bpf_gpu_policy_linux.cc',
++        'common/sandbox_linux/bpf_ppapi_policy_linux.cc',
++        'common/sandbox_linux/bpf_renderer_policy_linux.cc',
++        'common/sandbox_linux/sandbox_bpf_base_policy_linux.cc',
++        'common/sandbox_linux/sandbox_seccomp_bpf_linux.cc',
++      ],
++    }],
+     ['use_pango == 1', {
+       'dependencies': [
+         '../build/linux/system.gyp:pangocairo',
diff --git a/chromium-new/patches/patch-content_content__tests.gypi b/chromium-new/patches/patch-content_content__tests.gypi
new file mode 100644
index 0000000..d5d3d6c
--- /dev/null
+++ b/chromium-new/patches/patch-content_content__tests.gypi
@@ -0,0 +1,20 @@
+$NetBSD$
+
+--- content/content_tests.gypi.orig	2016-06-24 01:02:21.000000000 +0000
++++ content/content_tests.gypi
+@@ -1186,6 +1186,15 @@
+             'renderer/media/video_track_recorder_unittest.cc',
+           ],
+         }],
++        ['OS == "freebsd"', {
++          'sources!': [
++            'browser/download/file_metadata_unittest_linux.cc',
++            'browser/geolocation/wifi_data_provider_linux_unittest.cc',
++            'browser/renderer_host/media/media_stream_dispatcher_host_unittest.cc',
++            'browser/renderer_host/media/media_stream_manager_unittest.cc',
++            'browser/renderer_host/media/media_stream_ui_controller_unittest.cc'
++          ]
++        }], 
+         # Avoid windows due to non-availability of cursor resources in test.
+         ['OS != "linux"', {
+           'sources!': [
diff --git a/chromium-new/patches/patch-content_content_browser_gypi b/chromium-new/patches/patch-content_content_browser_gypi
deleted file mode 100644
index 66e2c6c..0000000
--- a/chromium-new/patches/patch-content_content_browser_gypi
+++ /dev/null
@@ -1,67 +0,0 @@
-$OpenBSD: patch-content_content_browser_gypi,v 1.39 2016/01/23 20:43:27 robert Exp $
---- content/content_browser.gypi.orig.port	Wed Jan 20 21:01:21 2016
-+++ content/content_browser.gypi	Sat Jan 23 20:16:30 2016
-@@ -1963,7 +1963,7 @@
-         },
-       },
-     }],
--    ['OS=="linux" and chromeos==0 and use_x11==1', {
-+    ['(os_bsd==1 or OS=="linux") and chromeos==0 and use_x11==1', {
-       'dependencies': [
-         '../build/linux/system.gyp:atk',
-         '../build/linux/system.gyp:gconf',
-@@ -1992,7 +1992,7 @@
-         'browser/udev_linux.h',
-       ],
-     }],
--    ['OS=="linux" and use_aura==1', {
-+    ['(os_bsd==1 or OS=="linux") and use_aura==1', {
-       'dependencies': [
-         '../build/linux/system.gyp:fontconfig',
-       ],
-@@ -2090,9 +2090,22 @@
-       ],
-     }],
-     ['os_bsd==1', {
--      'sources/': [
--        ['exclude', '^browser/gamepad/gamepad_platform_data_fetcher_linux\\.cc$'],
-+      'sources!': [
-+        'public/browser/zygote_host_linux.h',
-+        'browser/zygote_host/zygote_host_impl_linux.cc',
-+        'browser/zygote_host/zygote_host_impl_linux.h',
-+        'zygote/zygote_linux.cc',
-+        'zygote/zygote_linux.h',
-+        'zygote/zygote_main_linux.cc',
-+        'browser/device_monitor_linux.cc',
-+        'browser/download/file_metadata_linux.cc',
-+        'browser/gamepad/gamepad_platform_data_fetcher_linux.cc',
-+        'browser/geolocation/wifi_data_provider_linux.cc',
-+        'browser/udev_linux.cc',
-       ],
-+      'dependencies': [
-+        '../build/linux/system.gyp:dbus',
-+      ],
-     }],
-     ['use_aura==1', {
-       'dependencies': [
-@@ -2140,10 +2153,7 @@
-         'browser/geolocation/empty_wifi_data_provider.cc',
-       ],
-     }],
--    ['OS == "linux" and use_dbus==1', {
--      'sources!': [
--        'browser/geolocation/empty_wifi_data_provider.cc',
--      ],
-+    ['(OS == "linux" or os_bsd==1) and use_dbus==1', {
-       'dependencies': [
-         '../build/linux/system.gyp:dbus',
-         '../dbus/dbus.gyp:dbus',
-@@ -2162,7 +2172,7 @@
-         'browser/media/media_web_contents_observer.h',
-       ],
-     }],
--    ['OS == "linux"', {
-+    ['(os_bsd==1 or OS == "linux")', {
-       'dependencies': [
-         '../third_party/boringssl/boringssl.gyp:boringssl',
-       ],
diff --git a/chromium-new/patches/patch-content_content_common_gypi b/chromium-new/patches/patch-content_content_common_gypi
deleted file mode 100644
index edfa33e..0000000
--- a/chromium-new/patches/patch-content_content_common_gypi
+++ /dev/null
@@ -1,47 +0,0 @@
-$OpenBSD: patch-content_content_common_gypi,v 1.27 2016/01/23 18:49:31 robert Exp $
---- content/content_common.gypi.orig.port	Wed Jan 20 21:01:21 2016
-+++ content/content_common.gypi	Fri Jan 22 19:58:58 2016
-@@ -487,6 +487,8 @@
-       'common/resource_request_body.h',
-       'common/sandbox_init_mac.cc',
-       'common/sandbox_init_mac.h',
-+      'common/sandbox_init_openbsd.cc',
-+      'common/sandbox_init_openbsd.h',
-       'common/sandbox_init_win.cc',
-       'common/sandbox_linux/android/sandbox_bpf_base_policy_android.cc',
-       'common/sandbox_linux/android/sandbox_bpf_base_policy_android.h',
-@@ -741,6 +743,34 @@
-      'dependencies': [
-         'content.gyp:content_jni_headers',
-         'content.gyp:common_aidl',
-+      ],
-+    }],
-+    ['os_bsd==1', {
-+      'sources!': [
-+        'common/sandbox_linux/bpf_cros_arm_gpu_policy_linux.cc',
-+        'common/sandbox_linux/bpf_cros_arm_gpu_policy_linux.h',
-+        'common/sandbox_linux/bpf_gpu_policy_linux.cc',
-+        'common/sandbox_linux/bpf_gpu_policy_linux.h',
-+        'common/sandbox_linux/bpf_ppapi_policy_linux.cc',
-+        'common/sandbox_linux/bpf_ppapi_policy_linux.h',
-+        'common/sandbox_linux/bpf_renderer_policy_linux.cc',
-+        'common/sandbox_linux/bpf_renderer_policy_linux.h',
-+        'common/sandbox_linux/bpf_utility_policy_linux.cc',
-+        'common/sandbox_linux/bpf_utility_policy_linux.h',
-+        'common/sandbox_linux/sandbox_bpf_base_policy_linux.cc',
-+        'common/sandbox_linux/sandbox_bpf_base_policy_linux.h',
-+        'common/sandbox_linux/sandbox_debug_handling_linux.cc',
-+        'common/sandbox_linux/sandbox_debug_handling_linux.h',
-+        'common/sandbox_linux/sandbox_init_linux.cc',
-+        'common/sandbox_linux/sandbox_linux.cc',
-+        'common/sandbox_linux/sandbox_linux.h',
-+        'common/sandbox_linux/sandbox_seccomp_bpf_linux.cc',
-+        'common/sandbox_linux/sandbox_seccomp_bpf_linux.h',
-+        'common/sandbox_linux.cc',
-+        'common/sandbox_linux.h',
-+        'common/sandbox_init_linux.cc',
-+        'common/sandbox_seccomp_bpf_linux.cc',
-+        'common/sandbox_seccomp_bpf_linux.h',
-       ],
-     }],
-     ['use_pango == 1', {
diff --git a/chromium-new/patches/patch-content_content_renderer_gypi b/chromium-new/patches/patch-content_content_renderer_gypi
deleted file mode 100644
index b875a7b..0000000
--- a/chromium-new/patches/patch-content_content_renderer_gypi
+++ /dev/null
@@ -1,11 +0,0 @@
-$OpenBSD: patch-content_content_renderer_gypi,v 1.10 2016/01/23 18:49:31 robert Exp $
---- content/content_renderer.gypi.orig.port	Wed Jan 20 21:01:21 2016
-+++ content/content_renderer.gypi	Fri Jan 22 19:58:58 2016
-@@ -34,6 +34,7 @@
-     '../third_party/libjingle/libjingle.gyp:libjingle',
-     '../third_party/libyuv/libyuv.gyp:libyuv',
-     '../third_party/mojo/mojo_edk.gyp:mojo_js_lib',
-+    '../third_party/libyuv/libyuv.gyp:libyuv',
-     '../third_party/npapi/npapi.gyp:npapi',
-     '../third_party/widevine/cdm/widevine_cdm.gyp:widevine_cdm_version_h',
-     '../ui/accessibility/accessibility.gyp:accessibility',
diff --git a/chromium-new/patches/patch-content_gpu_gpu__child__thread.cc b/chromium-new/patches/patch-content_gpu_gpu__child__thread.cc
new file mode 100644
index 0000000..a4fb2c6
--- /dev/null
+++ b/chromium-new/patches/patch-content_gpu_gpu__child__thread.cc
@@ -0,0 +1,20 @@
+$NetBSD$
+
+--- content/gpu/gpu_child_thread.cc.orig	2016-06-24 01:02:21.000000000 +0000
++++ content/gpu/gpu_child_thread.cc
+@@ -435,6 +435,7 @@ void GpuChildThread::StopWatchdog() {
+ }
+ 
+ void GpuChildThread::OnCollectGraphicsInfo() {
++#if !defined(OS_FREEBSD)
+ #if defined(OS_WIN)
+   // GPU full info collection should only happen on un-sandboxed GPU process
+   // or single process/in-process gpu mode on Windows.
+@@ -477,6 +478,7 @@ void GpuChildThread::OnCollectGraphicsIn
+     base::MessageLoop::current()->QuitWhenIdle();
+   }
+ #endif  // OS_WIN
++#endif  // XXX(rene) !FreeBSD
+ }
+ 
+ void GpuChildThread::OnGetVideoMemoryUsageStats() {
diff --git a/chromium-new/patches/patch-content_gpu_gpu__main.cc b/chromium-new/patches/patch-content_gpu_gpu__main.cc
new file mode 100644
index 0000000..df9f5bc
--- /dev/null
+++ b/chromium-new/patches/patch-content_gpu_gpu__main.cc
@@ -0,0 +1,47 @@
+$NetBSD$
+
+--- content/gpu/gpu_main.cc.orig	2016-06-24 01:02:21.000000000 +0000
++++ content/gpu/gpu_main.cc
+@@ -101,7 +101,7 @@ void GetGpuInfoFromCommandLine(gpu::GPUI
+                                const base::CommandLine& command_line);
+ bool WarmUpSandbox(const base::CommandLine& command_line);
+ 
+-#if !defined(OS_MACOSX)
++#if !defined(OS_MACOSX) && !defined(OS_FREEBSD) //XXX(rene) added !FreeBSD
+ bool CollectGraphicsInfo(gpu::GPUInfo& gpu_info);
+ #endif
+ 
+@@ -189,13 +189,13 @@ int GpuMain(const MainFunctionParams& pa
+   // Use a UI message loop because ANGLE and the desktop GL platform can
+   // create child windows to render to.
+   base::MessageLoop main_message_loop(base::MessageLoop::TYPE_UI);
+-#elif defined(OS_LINUX) && defined(USE_X11)
++#elif (defined(OS_LINUX) || defined(OS_BSD)) && defined(USE_X11)
+   // We need a UI loop so that we can grab the Expose events. See GLSurfaceGLX
+   // and https://crbug.com/326995.
+   base::MessageLoop main_message_loop(base::MessageLoop::TYPE_UI);
+   scoped_ptr<ui::PlatformEventSource> event_source =
+       ui::PlatformEventSource::CreateDefault();
+-#elif defined(OS_LINUX)
++#elif defined(OS_LINUX) || defined(OS_BSD)
+   base::MessageLoop main_message_loop(base::MessageLoop::TYPE_DEFAULT);
+ #elif defined(OS_MACOSX)
+   // This is necessary for CoreAnimation layers hosted in the GPU process to be
+@@ -306,7 +306,7 @@ int GpuMain(const MainFunctionParams& pa
+       // and we already registered them through SetGpuInfo() above.
+       base::TimeTicks before_collect_context_graphics_info =
+           base::TimeTicks::Now();
+-#if !defined(OS_MACOSX)
++#if !defined(OS_MACOSX) && !defined(OS_FREEBSD) //XXX(rene) added !FreeBSD
+       if (!CollectGraphicsInfo(gpu_info))
+         dead_on_arrival = true;
+ 
+@@ -462,7 +462,7 @@ bool WarmUpSandbox(const base::CommandLi
+   return true;
+ }
+ 
+-#if !defined(OS_MACOSX)
++#if !defined(OS_MACOSX) && !defined(OS_FREEBSD)//XXX(rene) added !FreeBSD
+ bool CollectGraphicsInfo(gpu::GPUInfo& gpu_info) {
+   TRACE_EVENT0("gpu,startup", "Collect Graphics Info");
+ 
diff --git a/chromium-new/patches/patch-content_gpu_gpu_main_cc b/chromium-new/patches/patch-content_gpu_gpu_main_cc
deleted file mode 100644
index 78b3687..0000000
--- a/chromium-new/patches/patch-content_gpu_gpu_main_cc
+++ /dev/null
@@ -1,114 +0,0 @@
-$OpenBSD: patch-content_gpu_gpu_main_cc,v 1.11 2016/01/23 18:49:31 robert Exp $
---- content/gpu/gpu_main.cc.orig.port	Wed Jan 20 21:01:21 2016
-+++ content/gpu/gpu_main.cc	Fri Jan 22 19:58:58 2016
-@@ -72,6 +72,10 @@
- #include "content/common/sandbox_mac.h"
- #endif
- 
-+#if defined(OS_BSD)
-+#include "content/common/sandbox_init_openbsd.h"
-+#endif
-+
- #if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
- #include "content/common/gpu/media/vaapi_wrapper.h"
- #endif
-@@ -99,8 +103,8 @@ bool WarmUpSandbox(const base::CommandLine& command_li
- bool CollectGraphicsInfo(gpu::GPUInfo& gpu_info);
- #endif
- 
--#if defined(OS_LINUX)
--#if !defined(OS_CHROMEOS)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-+#if !defined(OS_CHROMEOS) && !defined(OS_BSD)
- bool CanAccessNvidiaDeviceFile();
- #endif
- bool StartSandboxLinux(const gpu::GPUInfo&, GpuWatchdogThread*, bool);
-@@ -177,13 +181,13 @@ int GpuMain(const MainFunctionParams& parameters) {
-   // Use a UI message loop because ANGLE and the desktop GL platform can
-   // create child windows to render to.
-   base::MessageLoop main_message_loop(base::MessageLoop::TYPE_UI);
--#elif defined(OS_LINUX) && defined(USE_X11)
-+#elif (defined(OS_BSD) || defined(OS_LINUX)) && defined(USE_X11)
-   // We need a UI loop so that we can grab the Expose events. See GLSurfaceGLX
-   // and https://crbug.com/326995.
-   base::MessageLoop main_message_loop(base::MessageLoop::TYPE_UI);
-   scoped_ptr<ui::PlatformEventSource> event_source =
-       ui::PlatformEventSource::CreateDefault();
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
-   base::MessageLoop main_message_loop(base::MessageLoop::TYPE_DEFAULT);
- #elif defined(OS_MACOSX)
-   // This is necessary for CoreAnimation layers hosted in the GPU process to be
-@@ -243,7 +247,7 @@ int GpuMain(const MainFunctionParams& parameters) {
- 
-   // Warm up resources that don't need access to GPUInfo.
-   if (WarmUpSandbox(command_line)) {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-     bool initialized_sandbox = false;
-     bool initialized_gl_context = false;
-     bool should_initialize_gl_context = false;
-@@ -304,9 +308,9 @@ int GpuMain(const MainFunctionParams& parameters) {
-       }
- #endif
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-       initialized_gl_context = true;
--#if !defined(OS_CHROMEOS)
-+#if !defined(OS_CHROMEOS) && !defined(OS_BSD)
-       if (gpu_info.gpu.vendor_id == 0x10de &&  // NVIDIA
-           gpu_info.driver_vendor == "NVIDIA" &&
-           !CanAccessNvidiaDeviceFile())
-@@ -343,7 +347,7 @@ int GpuMain(const MainFunctionParams& parameters) {
-       watchdog_thread = NULL;
-     }
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-     should_initialize_gl_context = !initialized_gl_context &&
-                                    !dead_on_arrival;
- 
-@@ -351,6 +355,7 @@ int GpuMain(const MainFunctionParams& parameters) {
-       gpu_info.sandboxed = StartSandboxLinux(gpu_info, watchdog_thread.get(),
-                                              should_initialize_gl_context);
-     }
-+
- #elif defined(OS_WIN)
-     gpu_info.sandboxed = StartSandboxWindows(parameters.sandbox_info);
- #elif defined(OS_MACOSX)
-@@ -468,8 +473,8 @@ bool CollectGraphicsInfo(gpu::GPUInfo& gpu_info) {
- }
- #endif
- 
--#if defined(OS_LINUX)
--#if !defined(OS_CHROMEOS)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-+#if !defined(OS_CHROMEOS) && !defined(OS_BSD)
- bool CanAccessNvidiaDeviceFile() {
-   bool res = true;
-   base::ThreadRestrictions::AssertIOAllowed();
-@@ -527,6 +532,7 @@ bool StartSandboxLinux(const gpu::GPUInfo& gpu_info,
- 
-   WarmUpSandboxNvidia(gpu_info, should_initialize_gl_context);
- 
-+#if !defined(OS_BSD)
-   if (watchdog_thread) {
-     // LinuxSandbox needs to be able to ensure that the thread
-     // has really been stopped.
-@@ -546,11 +552,15 @@ bool StartSandboxLinux(const gpu::GPUInfo& gpu_info,
-   // LinuxSandbox::InitializeSandbox() must always be called
-   // with only one thread.
-   res = LinuxSandbox::InitializeSandbox();
-+
-   if (watchdog_thread) {
-     base::Thread::Options options;
-     options.timer_slack = base::TIMER_SLACK_MAXIMUM;
-     watchdog_thread->StartWithOptions(options);
-   }
-+#else
-+  res = InitializeSandbox();
-+#endif
- 
-   return res;
- }
diff --git a/chromium-new/patches/patch-content_ppapi_plugin_ppapi_plugin_main_cc b/chromium-new/patches/patch-content_ppapi_plugin_ppapi_plugin_main_cc
deleted file mode 100644
index adadf9e..0000000
--- a/chromium-new/patches/patch-content_ppapi_plugin_ppapi_plugin_main_cc
+++ /dev/null
@@ -1,23 +0,0 @@
-$OpenBSD: patch-content_ppapi_plugin_ppapi_plugin_main_cc,v 1.1 2016/01/23 18:49:31 robert Exp $
---- content/ppapi_plugin/ppapi_plugin_main.cc.orig.port	Sat Jan 23 15:05:28 2016
-+++ content/ppapi_plugin/ppapi_plugin_main.cc	Sat Jan 23 17:28:47 2016
-@@ -42,6 +42,10 @@
- #include "content/public/common/sandbox_init.h"
- #endif
- 
-+#if defined(OS_OPENBSD)
-+#include "content/common/sandbox_init_openbsd.h"
-+#endif
-+
- #if defined(OS_POSIX) && !defined(OS_ANDROID)
- #include <stdlib.h>
- #endif
-@@ -127,6 +131,8 @@ int PpapiPluginMain(const MainFunctionParams& paramete
- 
- #if defined(OS_LINUX)
-   LinuxSandbox::InitializeSandbox();
-+#elif defined(OS_BSD)
-+  InitializeSandbox();
- #endif
- 
-   ChildProcess ppapi_process;
diff --git a/chromium-new/patches/patch-content_public_common_child__process__sandbox__support__linux.h b/chromium-new/patches/patch-content_public_common_child__process__sandbox__support__linux.h
new file mode 100644
index 0000000..a6619277
--- /dev/null
+++ b/chromium-new/patches/patch-content_public_common_child__process__sandbox__support__linux.h
@@ -0,0 +1,12 @@
+$NetBSD$
+
+--- content/public/common/child_process_sandbox_support_linux.h.orig	2016-06-24 01:02:21.000000000 +0000
++++ content/public/common/child_process_sandbox_support_linux.h
+@@ -8,6 +8,7 @@
+ #include <stddef.h>
+ #include <stdint.h>
+ #include <string>
++#include <sys/types.h>
+ 
+ #include "content/common/content_export.h"
+ #include "ppapi/c/trusted/ppb_browser_font_trusted.h"
diff --git a/chromium-new/patches/patch-content_public_common_content__switches.cc b/chromium-new/patches/patch-content_public_common_content__switches.cc
new file mode 100644
index 0000000..79a15e2
--- /dev/null
+++ b/chromium-new/patches/patch-content_public_common_content__switches.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- content/public/common/content_switches.cc.orig	2016-06-24 01:02:21.000000000 +0000
++++ content/public/common/content_switches.cc
+@@ -963,7 +963,7 @@ const char kDisableVaapiAcceleratedVideo
+     "disable-vaapi-accelerated-video-encode";
+ #endif
+ 
+-#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
++#if (defined(OS_LINUX) && !defined(OS_CHROMEOS)) || defined(OS_FREEBSD)
+ // Allows sending text-to-speech requests to speech-dispatcher, a common
+ // Linux speech service. Because it's buggy, the user must explicitly
+ // enable it so that visiting a random webpage can't cause instability.
diff --git a/chromium-new/patches/patch-content_public_common_content__switches.h b/chromium-new/patches/patch-content_public_common_content__switches.h
new file mode 100644
index 0000000..68660d8
--- /dev/null
+++ b/chromium-new/patches/patch-content_public_common_content__switches.h
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- content/public/common/content_switches.h.orig	2016-06-24 01:02:21.000000000 +0000
++++ content/public/common/content_switches.h
+@@ -277,7 +277,7 @@ CONTENT_EXPORT extern const char kDisabl
+ CONTENT_EXPORT extern const char kDisableVaapiAcceleratedVideoEncode[];
+ #endif
+ 
+-#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
++#if (defined(OS_LINUX) && !defined(OS_CHROMEOS)) || defined(OS_FREEBSD) || defined(OS_NETBSD)
+ CONTENT_EXPORT extern const char kEnableSpeechDispatcher[];
+ #endif
+ 
diff --git a/chromium-new/patches/patch-content_public_common_content_switches_cc b/chromium-new/patches/patch-content_public_common_content_switches_cc
deleted file mode 100644
index 56cedef..0000000
--- a/chromium-new/patches/patch-content_public_common_content_switches_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-content_public_common_content_switches_cc,v 1.11 2016/01/23 18:49:31 robert Exp $
---- content/public/common/content_switches.cc.orig.port	Wed Jan 20 21:01:21 2016
-+++ content/public/common/content_switches.cc	Fri Jan 22 19:58:58 2016
-@@ -937,7 +937,7 @@ const char kDisableVaapiAcceleratedVideoEncode[] =
-     "disable-vaapi-accelerated-video-encode";
- #endif
- 
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_BSD) || defined(OS_LINUX)) && !defined(OS_CHROMEOS)
- // Allows sending text-to-speech requests to speech-dispatcher, a common
- // Linux speech service. Because it's buggy, the user must explicitly
- // enable it so that visiting a random webpage can't cause instability.
diff --git a/chromium-new/patches/patch-content_public_common_content_switches_h b/chromium-new/patches/patch-content_public_common_content_switches_h
deleted file mode 100644
index 9ea2f3e..0000000
--- a/chromium-new/patches/patch-content_public_common_content_switches_h
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-content_public_common_content_switches_h,v 1.10 2016/01/23 18:49:31 robert Exp $
---- content/public/common/content_switches.h.orig.port	Wed Jan 20 21:01:21 2016
-+++ content/public/common/content_switches.h	Fri Jan 22 19:58:58 2016
-@@ -278,7 +278,7 @@ CONTENT_EXPORT extern const char kDisablePanelFitting[
- CONTENT_EXPORT extern const char kDisableVaapiAcceleratedVideoEncode[];
- #endif
- 
--#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#if (defined(OS_BSD) || defined(OS_LINUX)) && !defined(OS_CHROMEOS)
- CONTENT_EXPORT extern const char kEnableSpeechDispatcher[];
- #endif
- 
diff --git a/chromium-new/patches/patch-content_public_test_browser__test__base.cc b/chromium-new/patches/patch-content_public_test_browser__test__base.cc
new file mode 100644
index 0000000..feec864
--- /dev/null
+++ b/chromium-new/patches/patch-content_public_test_browser__test__base.cc
@@ -0,0 +1,15 @@
+$NetBSD$
+
+--- content/public/test/browser_test_base.cc.orig	2016-06-24 01:02:21.000000000 +0000
++++ content/public/test/browser_test_base.cc
+@@ -6,6 +6,10 @@
+ 
+ #include <stddef.h>
+ 
++#if defined(OS_FREEBSD)
++#include <sys/signal.h>
++#endif
++
+ #include "base/bind.h"
+ #include "base/command_line.h"
+ #include "base/debug/stack_trace.h"
diff --git a/chromium-new/patches/patch-content_renderer_devtools_v8__sampling__profiler.cc b/chromium-new/patches/patch-content_renderer_devtools_v8__sampling__profiler.cc
new file mode 100644
index 0000000..1a6820e
--- /dev/null
+++ b/chromium-new/patches/patch-content_renderer_devtools_v8__sampling__profiler.cc
@@ -0,0 +1,19 @@
+$NetBSD$
+
+--- content/renderer/devtools/v8_sampling_profiler.cc.orig	2016-06-24 01:02:21.000000000 +0000
++++ content/renderer/devtools/v8_sampling_profiler.cc
+@@ -548,6 +548,14 @@ void V8SamplingThread::HandleProfilerSig
+   state.pc = reinterpret_cast<void*>(mcontext->__ss.REG_64_32(__rip, __eip));
+   state.sp = reinterpret_cast<void*>(mcontext->__ss.REG_64_32(__rsp, __esp));
+   state.fp = reinterpret_cast<void*>(mcontext->__ss.REG_64_32(__rbp, __ebp));
++#elif defined(OS_FREEBSD)
++  state.pc = reinterpret_cast<void*>(mcontext.REG_64_32(mc_rip, mc_eip));
++  state.sp = reinterpret_cast<void*>(mcontext.REG_64_32(mc_rsp, mc_esp));
++  state.fp = reinterpret_cast<void*>(mcontext.REG_64_32(mc_rbp, mc_ebp));
++#elif defined(OS_NETBSD)
++  state.pc = reinterpret_cast<void*>(mcontext.__gregs[REG_64_32(_REG_RIP, _REG_EIP)]);
++  state.sp = reinterpret_cast<void*>(mcontext.__gregs[REG_64_32(_REG_RSP, _REG_ESP)]);
++  state.fp = reinterpret_cast<void*>(mcontext.__gregs[REG_64_32(_REG_RBP, _REG_EBP)]);
+ #else
+   state.pc =
+       reinterpret_cast<void*>(mcontext.gregs[REG_64_32(REG_RIP, REG_EIP)]);
diff --git a/chromium-new/patches/patch-content_renderer_devtools_v8_sampling_profiler_cc b/chromium-new/patches/patch-content_renderer_devtools_v8_sampling_profiler_cc
deleted file mode 100644
index 1b605a3..0000000
--- a/chromium-new/patches/patch-content_renderer_devtools_v8_sampling_profiler_cc
+++ /dev/null
@@ -1,39 +0,0 @@
-$OpenBSD: patch-content_renderer_devtools_v8_sampling_profiler_cc,v 1.2 2015/09/05 16:06:50 robert Exp $
---- content/renderer/devtools/v8_sampling_profiler.cc.orig.port	Sat Aug 22 21:01:55 2015
-+++ content/renderer/devtools/v8_sampling_profiler.cc	Wed Sep  2 07:31:55 2015
-@@ -4,7 +4,7 @@
- 
- #include "content/renderer/devtools/v8_sampling_profiler.h"
- 
--#if defined(OS_POSIX)
-+#if defined(OS_POSIX) && !defined(OS_BSD)
- #include <signal.h>
- #define USE_SIGNALS
- #endif
-@@ -199,7 +199,10 @@ class Sampler {
-   static const unsigned kNumberOfSamples = 10;
-   typedef LockFreeCircularQueue<SampleRecord, kNumberOfSamples> SamplingQueue;
- 
-+#ifdef USE_SIGNALS
-   PlatformData platform_data_;
-+#endif
-+
-   Isolate* isolate_;
-   scoped_ptr<SamplingQueue> samples_data_;
-   base::subtle::Atomic32 code_added_events_count_;
-@@ -293,6 +296,7 @@ void Sampler::DoSample(const v8::RegisterState& state)
- }
- 
- void Sampler::InjectPendingEvents() {
-+#ifdef USE_SIGNALS
-   SampleRecord* record = samples_data_->Peek();
-   while (record) {
-     TRACE_EVENT_SAMPLE_WITH_TID_AND_TIMESTAMP1(
-@@ -304,6 +308,7 @@ void Sampler::InjectPendingEvents() {
-     record = samples_data_->Peek();
-     base::subtle::NoBarrier_AtomicIncrement(&samples_count_, 1);
-   }
-+#endif
- }
- 
- // static
diff --git a/chromium-new/patches/patch-content_renderer_media_webrtc__audio__capturer.cc b/chromium-new/patches/patch-content_renderer_media_webrtc__audio__capturer.cc
new file mode 100644
index 0000000..29926e4
--- /dev/null
+++ b/chromium-new/patches/patch-content_renderer_media_webrtc__audio__capturer.cc
@@ -0,0 +1,15 @@
+$NetBSD$
+
+--- content/renderer/media/webrtc_audio_capturer.cc.orig	2016-06-24 01:02:21.000000000 +0000
++++ content/renderer/media/webrtc_audio_capturer.cc
+@@ -435,8 +435,8 @@ void WebRtcAudioCapturer::Capture(const 
+ // CaptureCallback.
+ #if defined(OS_WIN) || defined(OS_MACOSX)
+   DCHECK_LE(volume, 1.0);
+-#elif (defined(OS_LINUX) && !defined(OS_CHROMEOS)) || defined(OS_OPENBSD)
+-  // We have a special situation on Linux where the microphone volume can be
++#elif defined(OS_POSIX) && !defined(OS_CHROMEOS) && !defined(OS_ANDROID)
++  // We have a special situation on POSIX where the microphone volume can be
+   // "higher than maximum". The input volume slider in the sound preference
+   // allows the user to set a scaling that is higher than 100%. It means that
+   // even if the reported maximum levels is N, the actual microphone level can
diff --git a/chromium-new/patches/patch-content_renderer_render__thread__impl.cc b/chromium-new/patches/patch-content_renderer_render__thread__impl.cc
new file mode 100644
index 0000000..9bf16ca
--- /dev/null
+++ b/chromium-new/patches/patch-content_renderer_render__thread__impl.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- content/renderer/render_thread_impl.cc.orig	2016-06-24 01:02:21.000000000 +0000
++++ content/renderer/render_thread_impl.cc
+@@ -1469,7 +1469,7 @@ media::GpuVideoAcceleratorFactories* Ren
+     const bool enable_video_accelerator =
+         !cmd_line->HasSwitch(switches::kDisableAcceleratedVideoDecode);
+     const bool enable_gpu_memory_buffer_video_frames =
+-#if defined(OS_MACOSX) || defined(OS_LINUX)
++#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
+         !cmd_line->HasSwitch(switches::kDisableGpuMemoryBufferVideoFrames) &&
+         !cmd_line->HasSwitch(switches::kDisableGpuCompositing) &&
+         !gpu_channel_host->gpu_info().software_rendering;
diff --git a/chromium-new/patches/patch-content_renderer_render_thread_impl_cc b/chromium-new/patches/patch-content_renderer_render_thread_impl_cc
deleted file mode 100644
index 319a450..0000000
--- a/chromium-new/patches/patch-content_renderer_render_thread_impl_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-content_renderer_render_thread_impl_cc,v 1.8 2016/01/23 18:49:31 robert Exp $
---- content/renderer/render_thread_impl.cc.orig.port	Wed Jan 20 21:01:21 2016
-+++ content/renderer/render_thread_impl.cc	Fri Jan 22 19:58:58 2016
-@@ -788,7 +788,7 @@ void RenderThreadImpl::Init() {
-   are_image_decode_tasks_enabled_ = num_raster_threads > 1;
- 
-   base::SimpleThread::Options thread_options;
--#if defined(OS_ANDROID) || defined(OS_LINUX)
-+#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_BSD)
-   if (!command_line.HasSwitch(
-           switches::kUseNormalPriorityForTileTaskWorkerThreads)) {
-     thread_options.set_priority(base::ThreadPriority::BACKGROUND);
diff --git a/chromium-new/patches/patch-content_renderer_renderer__blink__platform__impl.cc b/chromium-new/patches/patch-content_renderer_renderer__blink__platform__impl.cc
new file mode 100644
index 0000000..471c8e1
--- /dev/null
+++ b/chromium-new/patches/patch-content_renderer_renderer__blink__platform__impl.cc
@@ -0,0 +1,58 @@
+$NetBSD$
+
+--- content/renderer/renderer_blink_platform_impl.cc.orig	2016-06-24 01:02:21.000000000 +0000
++++ content/renderer/renderer_blink_platform_impl.cc
+@@ -116,7 +116,7 @@
+ 
+ #if defined(OS_POSIX)
+ #include "base/file_descriptor_posix.h"
+-#if !defined(OS_MACOSX) && !defined(OS_ANDROID)
++#if !defined(OS_MACOSX) && !defined(OS_ANDROID) && !defined(OS_FREEBSD) && !defined(OS_NETBSD)
+ #include <map>
+ #include <string>
+ 
+@@ -207,7 +207,7 @@ class RendererBlinkPlatformImpl::FileUti
+   scoped_refptr<ThreadSafeSender> thread_safe_sender_;
+ };
+ 
+-#if !defined(OS_ANDROID) && !defined(OS_WIN)
++#if !defined(OS_ANDROID) && !defined(OS_WIN) && !defined(OS_FREEBSD) && !defined(OS_NETBSD)
+ class RendererBlinkPlatformImpl::SandboxSupport
+     : public blink::WebSandboxSupport {
+  public:
+@@ -253,7 +253,7 @@ RendererBlinkPlatformImpl::RendererBlink
+       web_scrollbar_behavior_(new WebScrollbarBehaviorImpl),
+       renderer_scheduler_(renderer_scheduler),
+       blink_service_registry_(new BlinkServiceRegistryImpl(service_registry)) {
+-#if !defined(OS_ANDROID) && !defined(OS_WIN)
++#if !defined(OS_ANDROID) && !defined(OS_WIN) && !defined(OS_FREEBSD) && !defined(OS_NETBSD)
+   if (g_sandbox_enabled && sandboxEnabled()) {
+     sandbox_support_.reset(new RendererBlinkPlatformImpl::SandboxSupport);
+   } else {
+@@ -284,7 +284,7 @@ RendererBlinkPlatformImpl::~RendererBlin
+ }
+ 
+ void RendererBlinkPlatformImpl::Shutdown() {
+-#if !defined(OS_ANDROID) && !defined(OS_WIN)
++#if !defined(OS_ANDROID) && !defined(OS_WIN) && !defined(OS_FREEBSD) && !defined(OS_NETBSD)
+   // SandboxSupport contains a map of WebFontFamily objects, which hold
+   // WebCStrings, which become invalidated when blink is shut down. Hence, we
+   // need to clear that map now, just before blink::shutdown() is called.
+@@ -334,7 +334,7 @@ blink::WebFileUtilities* RendererBlinkPl
+ }
+ 
+ blink::WebSandboxSupport* RendererBlinkPlatformImpl::sandboxSupport() {
+-#if defined(OS_ANDROID) || defined(OS_WIN)
++#if defined(OS_ANDROID) || defined(OS_WIN) || defined(OS_FREEBSD) || defined(OS_NETBSD)
+   // These platforms do not require sandbox support.
+   return NULL;
+ #else
+@@ -562,7 +562,7 @@ bool RendererBlinkPlatformImpl::SandboxS
+   return FontLoader::CGFontRefFromBuffer(font_data, font_data_size, out);
+ }
+ 
+-#elif defined(OS_POSIX) && !defined(OS_ANDROID)
++#elif defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_FREEBSD) && !defined(OS_NETBSD)
+ 
+ void RendererBlinkPlatformImpl::SandboxSupport::getFallbackFontForCharacter(
+     blink::WebUChar32 character,
diff --git a/chromium-new/patches/patch-content_renderer_renderer__blink__platform__impl.h b/chromium-new/patches/patch-content_renderer_renderer__blink__platform__impl.h
new file mode 100644
index 0000000..874e31c
--- /dev/null
+++ b/chromium-new/patches/patch-content_renderer_renderer__blink__platform__impl.h
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- content/renderer/renderer_blink_platform_impl.h.orig	2016-06-24 01:02:21.000000000 +0000
++++ content/renderer/renderer_blink_platform_impl.h
+@@ -254,7 +254,7 @@ class CONTENT_EXPORT RendererBlinkPlatfo
+   class MimeRegistry;
+   scoped_ptr<MimeRegistry> mime_registry_;
+ 
+-#if !defined(OS_ANDROID) && !defined(OS_WIN)
++#if !defined(OS_ANDROID) && !defined(OS_WIN) && !defined(OS_BSD)
+   class SandboxSupport;
+   scoped_ptr<SandboxSupport> sandbox_support_;
+ #endif
diff --git a/chromium-new/patches/patch-content_renderer_renderer__main__platform__delegate__linux.cc b/chromium-new/patches/patch-content_renderer_renderer__main__platform__delegate__linux.cc
new file mode 100644
index 0000000..b4e66ce
--- /dev/null
+++ b/chromium-new/patches/patch-content_renderer_renderer__main__platform__delegate__linux.cc
@@ -0,0 +1,21 @@
+$NetBSD$
+
+--- content/renderer/renderer_main_platform_delegate_linux.cc.orig	2016-06-24 01:02:21.000000000 +0000
++++ content/renderer/renderer_main_platform_delegate_linux.cc
+@@ -29,6 +29,7 @@ void RendererMainPlatformDelegate::Platf
+ }
+ 
+ bool RendererMainPlatformDelegate::EnableSandbox() {
++#if !defined(OS_BSD)
+   // The setuid sandbox is started in the zygote process: zygote_main_linux.cc
+   // https://chromium.googlesource.com/chromium/src/+/master/docs/linux_suid_sandbox.md
+   //
+@@ -59,7 +60,7 @@ bool RendererMainPlatformDelegate::Enabl
+     CHECK_EQ(errno, EPERM);
+   }
+ #endif  // __x86_64__
+-
++#endif  // ! OS_BSD
+   return true;
+ }
+ 
diff --git a/chromium-new/patches/patch-content_renderer_renderer_main_cc b/chromium-new/patches/patch-content_renderer_renderer_main_cc
deleted file mode 100644
index 003edb8..0000000
--- a/chromium-new/patches/patch-content_renderer_renderer_main_cc
+++ /dev/null
@@ -1,47 +0,0 @@
-$OpenBSD: patch-content_renderer_renderer_main_cc,v 1.5 2016/01/31 20:45:29 robert Exp $
---- content/renderer/renderer_main.cc.orig.port	Wed Jan 27 18:00:49 2016
-+++ content/renderer/renderer_main.cc	Sun Jan 31 21:40:09 2016
-@@ -28,6 +28,7 @@
- #include "content/renderer/render_thread_impl.h"
- #include "content/renderer/renderer_main_platform_delegate.h"
- #include "third_party/skia/include/core/SkGraphics.h"
-+#include "third_party/skia/include/ports/SkFontConfigInterface.h"
- #include "ui/base/ui_base_switches.h"
- 
- #if defined(OS_ANDROID)
-@@ -56,6 +57,11 @@
- #include "ui/ozone/public/client_native_pixmap_factory.h"
- #endif
- 
-+#if defined(OS_BSD)
-+#include "content/common/child_process_sandbox_support_impl_linux.h"
-+#include "content/common/font_config_ipc_linux.h"
-+#endif
-+
- namespace content {
- namespace {
- // This function provides some ways to test crash and assertion handling
-@@ -183,9 +189,13 @@ int RendererMain(const MainFunctionParams& parameters)
-   // is OK.
-   InitializeWebRtcModule();
- #endif
-+#if defined(OS_BSD)
-+  SkFontConfigInterface::SetGlobal(
-+      new FontConfigIPC(GetSandboxFD()))->unref();
-+#endif
- 
-   {
--#if defined(OS_WIN) || defined(OS_MACOSX)
-+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_BSD)
-     // TODO(markus): Check if it is OK to unconditionally move this
-     // instruction down.
-     RenderProcessImpl render_process;
-@@ -195,7 +205,7 @@ int RendererMain(const MainFunctionParams& parameters)
-     bool run_loop = true;
-     if (!no_sandbox)
-       run_loop = platform.EnableSandbox();
--#if defined(OS_POSIX) && !defined(OS_MACOSX)
-+#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_BSD)
-     RenderProcessImpl render_process;
-     RenderThreadImpl::Create(main_message_loop.Pass(),
-                              renderer_scheduler.Pass());
diff --git a/chromium-new/patches/patch-content_renderer_renderer_main_platform_delegate_linux_cc b/chromium-new/patches/patch-content_renderer_renderer_main_platform_delegate_linux_cc
deleted file mode 100644
index 730f91d..0000000
--- a/chromium-new/patches/patch-content_renderer_renderer_main_platform_delegate_linux_cc
+++ /dev/null
@@ -1,33 +0,0 @@
-$OpenBSD: patch-content_renderer_renderer_main_platform_delegate_linux_cc,v 1.12 2016/01/06 21:46:44 robert Exp $
---- content/renderer/renderer_main_platform_delegate_linux.cc.orig.port	Fri Nov 13 12:04:18 2015
-+++ content/renderer/renderer_main_platform_delegate_linux.cc	Sun Jan  3 18:46:20 2016
-@@ -10,7 +10,11 @@
- #include "base/command_line.h"
- #include "base/files/file_util.h"
- #include "base/logging.h"
-+#if defined(OS_OPENBSD)
-+#include "content/common/sandbox_init_openbsd.h"
-+#else
- #include "content/common/sandbox_linux/sandbox_linux.h"
-+#endif
- #include "content/public/common/content_switches.h"
- #include "content/public/common/sandbox_init.h"
- 
-@@ -35,6 +39,9 @@ bool RendererMainPlatformDelegate::EnableSandbox() {
-   // http://code.google.com/p/chromium/wiki/LinuxSUIDSandbox
-   //
-   // Anything else is started in InitializeSandbox().
-+#if defined(OS_BSD)
-+  InitializeSandbox();
-+#else
-   LinuxSandbox::InitializeSandbox();
-   // about:sandbox uses a value returned from LinuxSandbox::GetStatus() before
-   // any renderer has been started.
-@@ -61,6 +68,7 @@ bool RendererMainPlatformDelegate::EnableSandbox() {
-     CHECK_EQ(errno, EPERM);
-   }
- #endif  // __x86_64__
-+#endif
- 
-   return true;
- }
diff --git a/chromium-new/patches/patch-content_renderer_webscrollbarbehavior__impl__gtkoraura.cc b/chromium-new/patches/patch-content_renderer_webscrollbarbehavior__impl__gtkoraura.cc
new file mode 100644
index 0000000..a8ff343
--- /dev/null
+++ b/chromium-new/patches/patch-content_renderer_webscrollbarbehavior__impl__gtkoraura.cc
@@ -0,0 +1,22 @@
+$NetBSD$
+
+--- content/renderer/webscrollbarbehavior_impl_gtkoraura.cc.orig	2016-06-24 01:02:21.000000000 +0000
++++ content/renderer/webscrollbarbehavior_impl_gtkoraura.cc
+@@ -14,7 +14,7 @@ bool WebScrollbarBehaviorImpl::shouldCen
+       blink::WebScrollbarBehavior::Button mouseButton,
+       bool shiftKeyPressed,
+       bool altKeyPressed) {
+-#if (defined(OS_LINUX) && !defined(OS_CHROMEOS))
++#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+   if (mouseButton == blink::WebScrollbarBehavior::ButtonMiddle)
+     return true;
+ #endif
+@@ -50,7 +50,7 @@ bool WebScrollbarBehaviorImpl::shouldSna
+   // On most platforms, we should snap iff the event is outside our calculated
+   // rect.  On Linux, however, we should not snap for events off the ends, but
+   // not the sides, of the rect.
+-#if (defined(OS_LINUX) && !defined(OS_CHROMEOS))
++#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS)
+   return isHorizontal ?
+       (eventPoint.y < noSnapRect.y() || eventPoint.y >= noSnapRect.bottom()) :
+       (eventPoint.x < noSnapRect.x() || eventPoint.x >= noSnapRect.right());
diff --git a/chromium-new/patches/patch-content_renderer_webscrollbarbehavior_impl_gtkoraura_cc b/chromium-new/patches/patch-content_renderer_webscrollbarbehavior_impl_gtkoraura_cc
deleted file mode 100644
index 6974825..0000000
--- a/chromium-new/patches/patch-content_renderer_webscrollbarbehavior_impl_gtkoraura_cc
+++ /dev/null
@@ -1,21 +0,0 @@
-$OpenBSD: patch-content_renderer_webscrollbarbehavior_impl_gtkoraura_cc,v 1.2 2015/03/18 19:26:29 robert Exp $
---- content/renderer/webscrollbarbehavior_impl_gtkoraura.cc.orig.port	Tue Mar 10 23:29:11 2015
-+++ content/renderer/webscrollbarbehavior_impl_gtkoraura.cc	Wed Mar 18 20:01:29 2015
-@@ -13,7 +13,7 @@ bool WebScrollbarBehaviorImpl::shouldCenterOnThumb(
-       blink::WebScrollbarBehavior::Button mouseButton,
-       bool shiftKeyPressed,
-       bool altKeyPressed) {
--#if (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+#if (defined(OS_BSD) || defined(OS_LINUX)) && !defined(OS_CHROMEOS)
-   if (mouseButton == blink::WebScrollbarBehavior::ButtonMiddle)
-     return true;
- #endif
-@@ -49,7 +49,7 @@ bool WebScrollbarBehaviorImpl::shouldSnapBackToDragOri
-   // On most platforms, we should snap iff the event is outside our calculated
-   // rect.  On Linux, however, we should not snap for events off the ends, but
-   // not the sides, of the rect.
--#if (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-+#if (defined(OS_BSD) || defined(OS_LINUX)) && !defined(OS_CHROMEOS)
-   return isHorizontal ?
-       (eventPoint.y < noSnapRect.y() || eventPoint.y >= noSnapRect.bottom()) :
-       (eventPoint.x < noSnapRect.x() || eventPoint.x >= noSnapRect.right());
diff --git a/chromium-new/patches/patch-content_shell_browser_shell__browser__context.cc b/chromium-new/patches/patch-content_shell_browser_shell__browser__context.cc
new file mode 100644
index 0000000..c269f28
--- /dev/null
+++ b/chromium-new/patches/patch-content_shell_browser_shell__browser__context.cc
@@ -0,0 +1,22 @@
+$NetBSD$
+
+--- content/shell/browser/shell_browser_context.cc.orig	2016-06-24 01:02:21.000000000 +0000
++++ content/shell/browser/shell_browser_context.cc
+@@ -24,7 +24,7 @@
+ 
+ #if defined(OS_WIN)
+ #include "base/base_paths_win.h"
+-#elif defined(OS_LINUX)
++#elif defined(OS_LINUX) || defined(OS_BSD)
+ #include "base/nix/xdg_util.h"
+ #elif defined(OS_MACOSX)
+ #include "base/base_paths_mac.h"
+@@ -80,7 +80,7 @@ void ShellBrowserContext::InitWhileIOAll
+ #if defined(OS_WIN)
+   CHECK(PathService::Get(base::DIR_LOCAL_APP_DATA, &path_));
+   path_ = path_.Append(std::wstring(L"content_shell"));
+-#elif defined(OS_LINUX)
++#elif defined(OS_LINUX) || defined(OS_BSD)
+   scoped_ptr<base::Environment> env(base::Environment::Create());
+   base::FilePath config_dir(
+       base::nix::GetXDGDirectory(env.get(),
diff --git a/chromium-new/patches/patch-content_shell_browser_shell__browser__main__parts.cc b/chromium-new/patches/patch-content_shell_browser_shell__browser__main__parts.cc
new file mode 100644
index 0000000..a54b29d
--- /dev/null
+++ b/chromium-new/patches/patch-content_shell_browser_shell__browser__main__parts.cc
@@ -0,0 +1,22 @@
+$NetBSD$
+
+--- content/shell/browser/shell_browser_main_parts.cc.orig	2016-06-24 01:02:21.000000000 +0000
++++ content/shell/browser/shell_browser_main_parts.cc
+@@ -40,7 +40,7 @@
+ #if defined(USE_AURA) && defined(USE_X11)
+ #include "ui/events/devices/x11/touch_factory_x11.h"
+ #endif
+-#if !defined(OS_CHROMEOS) && defined(USE_AURA) && defined(OS_LINUX)
++#if !defined(OS_CHROMEOS) && defined(USE_AURA) && (defined(OS_BSD) || defined(OS_LINUX))
+ #include "ui/base/ime/input_method_initializer.h"
+ #endif
+ #if defined(OS_CHROMEOS)
+@@ -124,7 +124,7 @@ void ShellBrowserMainParts::PostMainMess
+ }
+ 
+ void ShellBrowserMainParts::PreEarlyInitialization() {
+-#if !defined(OS_CHROMEOS) && defined(USE_AURA) && defined(OS_LINUX)
++#if !defined(OS_CHROMEOS) && defined(USE_AURA) && (defined(OS_BSD) || defined(OS_LINUX))
+   ui::InitializeInputMethodForTesting();
+ #endif
+ #if defined(OS_ANDROID)
diff --git a/chromium-new/patches/patch-content_utility_utility_main_cc b/chromium-new/patches/patch-content_utility_utility_main_cc
deleted file mode 100644
index 1ec3c10..0000000
--- a/chromium-new/patches/patch-content_utility_utility_main_cc
+++ /dev/null
@@ -1,20 +0,0 @@
-$OpenBSD: patch-content_utility_utility_main_cc,v 1.1 2016/01/06 21:46:44 robert Exp $
---- content/utility/utility_main.cc.orig.port	Sun Jan  3 19:17:08 2016
-+++ content/utility/utility_main.cc	Sun Jan  3 21:03:30 2016
-@@ -9,6 +9,7 @@
- #include "base/timer/hi_res_timer_manager.h"
- #include "content/child/child_process.h"
- #include "content/common/sandbox_linux/sandbox_linux.h"
-+#include "content/common/sandbox_init_openbsd.h"
- #include "content/public/common/content_switches.h"
- #include "content/public/common/main_function_params.h"
- #include "content/public/common/sandbox_init.h"
-@@ -33,6 +34,8 @@ int UtilityMain(const MainFunctionParams& parameters) 
-   // Seccomp-BPF policy.
-   if (parameters.zygote_child)
-     LinuxSandbox::InitializeSandbox();
-+#elif defined(OS_BSD)
-+  InitializeSandbox();
- #endif
- 
-   ChildProcess utility_process;
diff --git a/chromium-new/patches/patch-crypto_nss__util.cc b/chromium-new/patches/patch-crypto_nss__util.cc
new file mode 100644
index 0000000..d90c2df
--- /dev/null
+++ b/chromium-new/patches/patch-crypto_nss__util.cc
@@ -0,0 +1,39 @@
+$NetBSD$
+
+--- crypto/nss_util.cc.orig	2016-06-24 01:02:21.000000000 +0000
++++ crypto/nss_util.cc
+@@ -17,7 +17,7 @@
+ 
+ #include "crypto/nss_util_internal.h"
+ 
+-#if defined(OS_OPENBSD)
++#if defined(OS_BSD)
+ #include <sys/mount.h>
+ #include <sys/param.h>
+ #endif
+@@ -148,7 +148,7 @@ char* PKCS11PasswordFunc(PK11SlotInfo* s
+ // detection when database_dir is on NFS.  See http://crbug.com/48585.
+ //
+ // TODO(wtc): port this function to other USE_NSS_CERTS platforms.  It is
+-// defined only for OS_LINUX and OS_OPENBSD simply because the statfs structure
++// defined only for OS_LINUX and OS_BSD simply because the statfs structure
+ // is OS-specific.
+ //
+ // Because this function sets an environment variable it must be run before we
+@@ -159,10 +159,14 @@ void UseLocalCacheOfNSSDatabaseIfNFS(con
+   base::FileSystemType fs_type = base::FILE_SYSTEM_UNKNOWN;
+   if (base::GetFileSystemType(database_dir, &fs_type))
+     db_on_nfs = (fs_type == base::FILE_SYSTEM_NFS);
+-#elif defined(OS_OPENBSD)
++#elif defined(OS_NETBSD)
++  struct statvfs buf;
++  if (statvfs(database_dir.value().c_str(), &buf) == 0)
++    db_on_nfs = (strcmp(buf.f_fstypename, "nfs") == 0);
++#elif defined(OS_BSD)
+   struct statfs buf;
+   if (statfs(database_dir.value().c_str(), &buf) == 0)
+-    db_on_nfs = (strcmp(buf.f_fstypename, MOUNT_NFS) == 0);
++    db_on_nfs = (strcmp(buf.f_fstypename, "nfs") == 0);
+ #else
+   NOTIMPLEMENTED();
+ #endif
diff --git a/chromium-new/patches/patch-dbus_property_cc b/chromium-new/patches/patch-dbus_property_cc
deleted file mode 100644
index 6126073..0000000
--- a/chromium-new/patches/patch-dbus_property_cc
+++ /dev/null
@@ -1,29 +0,0 @@
-$OpenBSD: patch-dbus_property_cc,v 1.4 2015/12/05 16:13:32 robert Exp $
---- dbus/property.cc.orig.port	Fri Nov 13 12:04:18 2015
-+++ dbus/property.cc	Wed Dec  2 08:18:32 2015
-@@ -563,6 +563,7 @@ void Property<std::vector<uint8> >::AppendSetValueToWr
-   writer->CloseContainer(&variant_writer);
- }
- 
-+#if !defined(OS_BSD)
- //
- // Property<std::map<std::string, std::string>> specialization.
- //
-@@ -659,6 +660,7 @@ void Property<std::vector<std::pair<std::vector<uint8_
-   variant_writer.CloseContainer(&array_writer);
-   writer->CloseContainer(&variant_writer);
- }
-+#endif
- 
- template class Property<uint8>;
- template class Property<bool>;
-@@ -674,7 +676,9 @@ template class Property<ObjectPath>;
- template class Property<std::vector<std::string> >;
- template class Property<std::vector<ObjectPath> >;
- template class Property<std::vector<uint8> >;
-+#if !defined(OS_BSD)
- template class Property<std::map<std::string, std::string>>;
- template class Property<std::vector<std::pair<std::vector<uint8_t>, uint16_t>>>;
-+#endif
- 
- }  // namespace dbus
diff --git a/chromium-new/patches/patch-device_battery_battery_gyp b/chromium-new/patches/patch-device_battery_battery_gyp
deleted file mode 100644
index eb79edb..0000000
--- a/chromium-new/patches/patch-device_battery_battery_gyp
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-device_battery_battery_gyp,v 1.1 2016/01/06 21:46:44 robert Exp $
---- device/battery/battery.gyp.orig.port	Mon Jan  4 19:37:57 2016
-+++ device/battery/battery.gyp	Mon Jan  4 19:38:13 2016
-@@ -123,7 +123,7 @@
-                 'battery_status_manager_linux.cc',
-               ],
-             }],
--            ['OS == "linux" and use_dbus==1', {
-+            ['(os_bsd==1 or OS == "linux") and use_dbus==1', {
-               'sources!': [
-                 'battery_status_manager_default.cc',
-               ],
diff --git a/chromium-new/patches/patch-device_hid_hid.gyp b/chromium-new/patches/patch-device_hid_hid.gyp
new file mode 100644
index 0000000..c3154e2
--- /dev/null
+++ b/chromium-new/patches/patch-device_hid_hid.gyp
@@ -0,0 +1,23 @@
+$NetBSD$
+
+--- device/hid/hid.gyp.orig	2016-06-24 01:02:22.000000000 +0000
++++ device/hid/hid.gyp
+@@ -84,6 +84,18 @@
+             },
+           },
+         }],
++        ['os_bsd==1', {
++          'sources!': [
++            'device_monitor_linux.cc',
++            'device_monitor_linux.h',
++            'hid_connection_linux.cc',
++            'hid_connection_linux.h',
++            'hid_service_linux.cc',
++            'hid_service_linux.h',
++            'input_service_linux.cc',
++            'input_service_linux.h',
++          ],
++        }],
+       ],
+     },
+     {
diff --git a/chromium-new/patches/patch-device_hid_hid_gyp b/chromium-new/patches/patch-device_hid_hid_gyp
deleted file mode 100644
index 34dafc1..0000000
--- a/chromium-new/patches/patch-device_hid_hid_gyp
+++ /dev/null
@@ -1,22 +0,0 @@
-$OpenBSD: patch-device_hid_hid_gyp,v 1.8 2016/01/23 18:49:31 robert Exp $
---- device/hid/hid.gyp.orig.port	Wed Jan 20 21:01:21 2016
-+++ device/hid/hid.gyp	Fri Jan 22 19:58:58 2016
-@@ -64,6 +64,18 @@
-             'input_service_linux.h',
-           ],
-         }],
-+        ['OS=="openbsd"', {
-+          'sources!': [
-+            'device_monitor_linux.cc',
-+            'device_monitor_linux.h',
-+            'hid_connection_linux.cc',
-+            'hid_connection_linux.h',
-+            'hid_service_linux.cc',
-+            'hid_service_linux.h',
-+            'input_service_linux.cc',
-+            'input_service_linux.h',
-+          ],
-+        }],
-       ],
-     },
-   ],
diff --git a/chromium-new/patches/patch-device_serial_serial.gyp b/chromium-new/patches/patch-device_serial_serial.gyp
new file mode 100644
index 0000000..4daa68f
--- /dev/null
+++ b/chromium-new/patches/patch-device_serial_serial.gyp
@@ -0,0 +1,17 @@
+$NetBSD$
+
+--- device/serial/serial.gyp.orig	2016-06-24 01:02:22.000000000 +0000
++++ device/serial/serial.gyp
+@@ -71,6 +71,12 @@
+             },
+           },
+         }],
++        ['os_bsd==1', {
++          'sources!': [
++            'serial_device_enumerator_linux.cc',
++            'serial_device_enumerator_linux.h',
++          ],
++        }],
+       ],
+       'dependencies': [
+         'device_serial_mojo',
diff --git a/chromium-new/patches/patch-device_serial_serial__io__handler__posix.cc b/chromium-new/patches/patch-device_serial_serial__io__handler__posix.cc
new file mode 100644
index 0000000..2a2ed8a
--- /dev/null
+++ b/chromium-new/patches/patch-device_serial_serial__io__handler__posix.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- device/serial/serial_io_handler_posix.cc.orig	2016-06-24 01:02:22.000000000 +0000
++++ device/serial/serial_io_handler_posix.cc
+@@ -60,7 +60,7 @@ bool BitrateToSpeedConstant(int bitrate,
+     BITRATE_TO_SPEED_CASE(9600)
+     BITRATE_TO_SPEED_CASE(19200)
+     BITRATE_TO_SPEED_CASE(38400)
+-#if !defined(OS_MACOSX)
++#if !defined(OS_MACOSX) && !defined(OS_BSD)
+     BITRATE_TO_SPEED_CASE(57600)
+     BITRATE_TO_SPEED_CASE(115200)
+     BITRATE_TO_SPEED_CASE(230400)
diff --git a/chromium-new/patches/patch-device_serial_serial__service__impl.cc b/chromium-new/patches/patch-device_serial_serial__service__impl.cc
new file mode 100644
index 0000000..1d3056f
--- /dev/null
+++ b/chromium-new/patches/patch-device_serial_serial__service__impl.cc
@@ -0,0 +1,19 @@
+$NetBSD$
+
+--- device/serial/serial_service_impl.cc.orig	2016-06-24 01:02:22.000000000 +0000
++++ device/serial/serial_service_impl.cc
+@@ -74,9 +74,14 @@ void SerialServiceImpl::Connect(
+ }
+ 
+ SerialDeviceEnumerator* SerialServiceImpl::GetDeviceEnumerator() {
++#if defined(OS_BSD)
++  NOTIMPLEMENTED();
++  return NULL;
++#else
+   if (!device_enumerator_)
+     device_enumerator_ = SerialDeviceEnumerator::Create();
+   return device_enumerator_.get();
++#endif
+ }
+ 
+ bool SerialServiceImpl::IsValidPath(const mojo::String& path) {
diff --git a/chromium-new/patches/patch-device_serial_serial_gyp b/chromium-new/patches/patch-device_serial_serial_gyp
deleted file mode 100644
index 016f7ae..0000000
--- a/chromium-new/patches/patch-device_serial_serial_gyp
+++ /dev/null
@@ -1,16 +0,0 @@
-$OpenBSD: patch-device_serial_serial_gyp,v 1.5 2015/01/22 11:16:41 robert Exp $
---- device/serial/serial.gyp.orig.port	Wed Dec  3 03:32:12 2014
-+++ device/serial/serial.gyp	Sat Dec  6 11:34:27 2014
-@@ -39,6 +39,12 @@
-             'serial_device_enumerator_linux.h',
-           ],
-         }],
-+        ['os_bsd==1', {
-+          'sources!': [
-+            'serial_device_enumerator_linux.cc',
-+            'serial_device_enumerator_linux.h',
-+          ],
-+        }],
-       ],
-       'dependencies': [
-         'device_serial_mojo',
diff --git a/chromium-new/patches/patch-device_serial_serial_io_handler_posix_cc b/chromium-new/patches/patch-device_serial_serial_io_handler_posix_cc
deleted file mode 100644
index 51c1ff1..0000000
--- a/chromium-new/patches/patch-device_serial_serial_io_handler_posix_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-device_serial_serial_io_handler_posix_cc,v 1.4 2015/10/14 16:42:07 robert Exp $
---- device/serial/serial_io_handler_posix.cc.orig.port	Wed Oct 14 07:49:26 2015
-+++ device/serial/serial_io_handler_posix.cc	Wed Oct 14 07:49:43 2015
-@@ -59,7 +59,7 @@ bool BitrateToSpeedConstant(int bitrate, speed_t* spee
-     BITRATE_TO_SPEED_CASE(9600)
-     BITRATE_TO_SPEED_CASE(19200)
-     BITRATE_TO_SPEED_CASE(38400)
--#if !defined(OS_MACOSX)
-+#if !defined(OS_MACOSX) && !defined(OS_BSD)
-     BITRATE_TO_SPEED_CASE(57600)
-     BITRATE_TO_SPEED_CASE(115200)
-     BITRATE_TO_SPEED_CASE(230400)
diff --git a/chromium-new/patches/patch-device_serial_serial_service_impl_cc b/chromium-new/patches/patch-device_serial_serial_service_impl_cc
deleted file mode 100644
index 8175acf..0000000
--- a/chromium-new/patches/patch-device_serial_serial_service_impl_cc
+++ /dev/null
@@ -1,18 +0,0 @@
-$OpenBSD: patch-device_serial_serial_service_impl_cc,v 1.4 2015/09/05 16:06:50 robert Exp $
---- device/serial/serial_service_impl.cc.orig.port	Sat Aug 22 21:01:55 2015
-+++ device/serial/serial_service_impl.cc	Wed Sep  2 07:31:55 2015
-@@ -72,9 +72,14 @@ void SerialServiceImpl::Connect(
- }
- 
- SerialDeviceEnumerator* SerialServiceImpl::GetDeviceEnumerator() {
-+#if defined(OS_BSD)
-+  NOTIMPLEMENTED();
-+  return NULL;
-+#else
-   if (!device_enumerator_)
-     device_enumerator_ = SerialDeviceEnumerator::Create();
-   return device_enumerator_.get();
-+#endif
- }
- 
- bool SerialServiceImpl::IsValidPath(const mojo::String& path) {
diff --git a/chromium-new/patches/patch-device_usb_usb.gyp b/chromium-new/patches/patch-device_usb_usb.gyp
new file mode 100644
index 0000000..f5a37f2
--- /dev/null
+++ b/chromium-new/patches/patch-device_usb_usb.gyp
@@ -0,0 +1,21 @@
+$NetBSD$
+
+--- device/usb/usb.gyp.orig	2016-06-24 01:02:22.000000000 +0000
++++ device/usb/usb.gyp
+@@ -117,6 +117,16 @@
+             'usb_service_impl.h',
+           ]
+         }],
++        ['OS == "freebsd"', {
++          'dependencies!': [
++            '../../third_party/libusb/libusb.gyp:libusb',
++          ],
++          'link_settings': {
++            'ldflags': [
++              '-L/usr/lib -lusb',
++            ],
++          },
++        }],
+         ['chromeos==1', {
+           'dependencies': [
+             '../../chromeos/chromeos.gyp:chromeos',
diff --git a/chromium-new/patches/patch-device_usb_usb__context.cc b/chromium-new/patches/patch-device_usb_usb__context.cc
new file mode 100644
index 0000000..42fd453
--- /dev/null
+++ b/chromium-new/patches/patch-device_usb_usb__context.cc
@@ -0,0 +1,28 @@
+$NetBSD$
+
+--- device/usb/usb_context.cc.orig	2016-06-24 01:02:22.000000000 +0000
++++ device/usb/usb_context.cc
+@@ -9,8 +9,13 @@
+ #include "base/macros.h"
+ #include "base/threading/simple_thread.h"
+ #include "device/usb/usb_error.h"
++#if defined(OS_FREEBSD)
++#include "libusb.h"
++#define LIBUSB_CALL
++#else
+ #include "third_party/libusb/src/libusb/interrupt.h"
+ #include "third_party/libusb/src/libusb/libusb.h"
++#endif
+ 
+ namespace device {
+ 
+@@ -58,7 +63,9 @@ void UsbContext::UsbEventHandler::Run() 
+ 
+ void UsbContext::UsbEventHandler::Stop() {
+   base::subtle::Release_Store(&running_, 0);
++#if !defined(OS_FREEBSD) && !defined(OS_NETBSD) // XXX(rene) not available in base version
+   libusb_interrupt_handle_event(context_);
++#endif
+ }
+ 
+ UsbContext::UsbContext(PlatformUsbContext context) : context_(context) {
diff --git a/chromium-new/patches/patch-device_usb_usb__context__unittest.cc b/chromium-new/patches/patch-device_usb_usb__context__unittest.cc
new file mode 100644
index 0000000..9392127
--- /dev/null
+++ b/chromium-new/patches/patch-device_usb_usb__context__unittest.cc
@@ -0,0 +1,16 @@
+$NetBSD$
+
+--- device/usb/usb_context_unittest.cc.orig	2016-06-24 01:02:22.000000000 +0000
++++ device/usb/usb_context_unittest.cc
+@@ -7,7 +7,11 @@
+ #include "build/build_config.h"
+ #include "device/usb/usb_context.h"
+ #include "testing/gtest/include/gtest/gtest.h"
++#if defined(OS_FREEBSD)
++#include "libusb.h"
++#else
+ #include "third_party/libusb/src/libusb/libusb.h"
++#endif
+ 
+ namespace device {
+ 
diff --git a/chromium-new/patches/patch-device_usb_usb__device__handle__impl.cc b/chromium-new/patches/patch-device_usb_usb__device__handle__impl.cc
new file mode 100644
index 0000000..0ad5b67
--- /dev/null
+++ b/chromium-new/patches/patch-device_usb_usb__device__handle__impl.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+--- device/usb/usb_device_handle_impl.cc.orig	2016-06-24 01:02:22.000000000 +0000
++++ device/usb/usb_device_handle_impl.cc
+@@ -24,7 +24,11 @@
+ #include "device/usb/usb_error.h"
+ #include "device/usb/usb_service.h"
+ #include "net/base/io_buffer.h"
+-#include "third_party/libusb/src/libusb/libusb.h"
++#if defined(OS_FREEBSD)
++#  include "libusb.h"
++#else
++#  include "third_party/libusb/src/libusb/libusb.h"
++#endif
+ 
+ namespace device {
+ 
diff --git a/chromium-new/patches/patch-device_usb_usb__device__handle__impl.h b/chromium-new/patches/patch-device_usb_usb__device__handle__impl.h
new file mode 100644
index 0000000..f245e4c
--- /dev/null
+++ b/chromium-new/patches/patch-device_usb_usb__device__handle__impl.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+--- device/usb/usb_device_handle_impl.h.orig	2016-06-24 01:02:22.000000000 +0000
++++ device/usb/usb_device_handle_impl.h
+@@ -17,7 +17,12 @@
+ #include "base/memory/ref_counted.h"
+ #include "base/threading/thread_checker.h"
+ #include "device/usb/usb_device_handle.h"
++#if defined(OS_FREEBSD)
++#include "libusb.h"
++#define LIBUSB_CALL
++#else
+ #include "third_party/libusb/src/libusb/libusb.h"
++#endif
+ 
+ namespace base {
+ class SequencedTaskRunner;
diff --git a/chromium-new/patches/patch-device_usb_usb__device__impl.cc b/chromium-new/patches/patch-device_usb_usb__device__impl.cc
new file mode 100644
index 0000000..29f3e55
--- /dev/null
+++ b/chromium-new/patches/patch-device_usb_usb__device__impl.cc
@@ -0,0 +1,16 @@
+$NetBSD$
+
+--- device/usb/usb_device_impl.cc.orig	2016-06-24 01:02:22.000000000 +0000
++++ device/usb/usb_device_impl.cc
+@@ -20,7 +20,11 @@
+ #include "device/usb/usb_descriptors.h"
+ #include "device/usb/usb_device_handle_impl.h"
+ #include "device/usb/usb_error.h"
++#if defined(OS_FREEBSD)
++#include "libusb.h"
++#else
+ #include "third_party/libusb/src/libusb/libusb.h"
++#endif
+ 
+ #if defined(OS_CHROMEOS)
+ #include "chromeos/dbus/dbus_thread_manager.h"
diff --git a/chromium-new/patches/patch-device_usb_usb__error.cc b/chromium-new/patches/patch-device_usb_usb__error.cc
new file mode 100644
index 0000000..63e0dcc
--- /dev/null
+++ b/chromium-new/patches/patch-device_usb_usb__error.cc
@@ -0,0 +1,16 @@
+$NetBSD$
+
+--- device/usb/usb_error.cc.orig	2016-06-24 01:02:22.000000000 +0000
++++ device/usb/usb_error.cc
+@@ -4,7 +4,11 @@
+ 
+ #include "device/usb/usb_error.h"
+ 
++#if defined(__FreeBSD__)
++#include "libusb.h"
++#else
+ #include "third_party/libusb/src/libusb/libusb.h"
++#endif
+ 
+ namespace device {
+ 
diff --git a/chromium-new/patches/patch-device_usb_usb__service__impl.cc b/chromium-new/patches/patch-device_usb_usb__service__impl.cc
new file mode 100644
index 0000000..9dd2295
--- /dev/null
+++ b/chromium-new/patches/patch-device_usb_usb__service__impl.cc
@@ -0,0 +1,62 @@
+$NetBSD$
+
+--- device/usb/usb_service_impl.cc.orig	2016-06-24 01:02:22.000000000 +0000
++++ device/usb/usb_service_impl.cc
+@@ -24,7 +24,11 @@
+ #include "device/usb/usb_error.h"
+ #include "device/usb/webusb_descriptors.h"
+ #include "net/base/io_buffer.h"
+-#include "third_party/libusb/src/libusb/libusb.h"
++#if defined(OS_FREEBSD)
++#  include <libusb.h>
++#else
++#  include "third_party/libusb/src/libusb/libusb.h"
++#endif
+ 
+ #if defined(OS_WIN)
+ #include <setupapi.h>
+@@ -292,6 +296,7 @@ UsbServiceImpl::UsbServiceImpl(
+   }
+   context_ = new UsbContext(platform_context);
+ 
++#if !defined(OS_FREEBSD)
+   rv = libusb_hotplug_register_callback(
+       context_->context(),
+       static_cast<libusb_hotplug_event>(LIBUSB_HOTPLUG_EVENT_DEVICE_ARRIVED |
+@@ -304,6 +309,8 @@ UsbServiceImpl::UsbServiceImpl(
+   }
+ 
+   RefreshDevices();
++#endif // !defined(OS_FREEBSD)
++
+ #if defined(OS_WIN)
+   DeviceMonitorWin* device_monitor = DeviceMonitorWin::GetForAllInterfaces();
+   if (device_monitor) {
+@@ -313,9 +320,11 @@ UsbServiceImpl::UsbServiceImpl(
+ }
+ 
+ UsbServiceImpl::~UsbServiceImpl() {
++#if !defined(OS_FREEBSD)
+   if (hotplug_enabled_) {
+     libusb_hotplug_deregister_callback(context_->context(), hotplug_handle_);
+   }
++#endif // !defined(OS_FREEBSD)
+   for (const auto& map_entry : devices_) {
+     map_entry.second->OnDisconnect();
+   }
+@@ -557,6 +566,7 @@ void UsbServiceImpl::RemoveDevice(scoped
+   device->OnDisconnect();
+ }
+ 
++#if !defined(OS_FREEBSD)
+ // static
+ int LIBUSB_CALL UsbServiceImpl::HotplugCallback(libusb_context* context,
+                                                 PlatformUsbDevice device,
+@@ -594,6 +604,7 @@ int LIBUSB_CALL UsbServiceImpl::HotplugC
+ 
+   return 0;
+ }
++#endif // !defined(OS_FREEBSD)
+ 
+ void UsbServiceImpl::OnPlatformDeviceAdded(PlatformUsbDevice platform_device) {
+   DCHECK(CalledOnValidThread());
diff --git a/chromium-new/patches/patch-device_usb_usb__service__impl.h b/chromium-new/patches/patch-device_usb_usb__service__impl.h
new file mode 100644
index 0000000..77511e5
--- /dev/null
+++ b/chromium-new/patches/patch-device_usb_usb__service__impl.h
@@ -0,0 +1,42 @@
+$NetBSD$
+
+--- device/usb/usb_service_impl.h.orig	2016-06-24 01:02:22.000000000 +0000
++++ device/usb/usb_service_impl.h
+@@ -15,7 +15,13 @@
+ #include "build/build_config.h"
+ #include "device/usb/usb_context.h"
+ #include "device/usb/usb_device_impl.h"
++#if defined(OS_FREEBSD)
++#include "libusb.h"
++#define LIBUSB_CALL
++#else
+ #include "third_party/libusb/src/libusb/libusb.h"
++#endif
++
+ 
+ #if defined(OS_WIN)
+ #include "base/scoped_observer.h"
+@@ -71,11 +77,13 @@ class UsbServiceImpl :
+                  scoped_refptr<UsbDeviceImpl> device);
+   void RemoveDevice(scoped_refptr<UsbDeviceImpl> device);
+ 
++#if !defined(OS_FREEBSD)
+   // Handle hotplug events from libusb.
+   static int LIBUSB_CALL HotplugCallback(libusb_context* context,
+                                          PlatformUsbDevice device,
+                                          libusb_hotplug_event event,
+                                          void* user_data);
++#endif
+   // These functions release a reference to the provided platform device.
+   void OnPlatformDeviceAdded(PlatformUsbDevice platform_device);
+   void OnPlatformDeviceRemoved(PlatformUsbDevice platform_device);
+@@ -88,7 +96,9 @@ class UsbServiceImpl :
+   // connected instead of only when a full enumeration is requested.
+   // TODO(reillyg): Support this on all platforms. crbug.com/411715
+   bool hotplug_enabled_ = false;
++#if !defined(OS_FREEBSD)
+   libusb_hotplug_callback_handle hotplug_handle_;
++#endif
+ 
+   // Enumeration callbacks are queued until an enumeration completes.
+   bool enumeration_ready_ = false;
diff --git a/chromium-new/patches/patch-extensions_browser_api_declarative__webrequest_webrequest__action.cc b/chromium-new/patches/patch-extensions_browser_api_declarative__webrequest_webrequest__action.cc
new file mode 100644
index 0000000..a08448e
--- /dev/null
+++ b/chromium-new/patches/patch-extensions_browser_api_declarative__webrequest_webrequest__action.cc
@@ -0,0 +1,16 @@
+$NetBSD$
+
+--- extensions/browser/api/declarative_webrequest/webrequest_action.cc.orig	2016-06-24 01:02:22.000000000 +0000
++++ extensions/browser/api/declarative_webrequest/webrequest_action.cc
+@@ -28,7 +28,11 @@
+ #include "net/base/registry_controlled_domains/registry_controlled_domain.h"
+ #include "net/http/http_util.h"
+ #include "net/url_request/url_request.h"
++#if defined(OS_BSD)
++#include <re2/re2.h>
++#else
+ #include "third_party/re2/src/re2/re2.h"
++#endif
+ 
+ using content::ResourceRequestInfo;
+ 
diff --git a/chromium-new/patches/patch-extensions_browser_api_serial_serial__api.cc b/chromium-new/patches/patch-extensions_browser_api_serial_serial__api.cc
new file mode 100644
index 0000000..c2749f1
--- /dev/null
+++ b/chromium-new/patches/patch-extensions_browser_api_serial_serial__api.cc
@@ -0,0 +1,18 @@
+$NetBSD$
+
+--- extensions/browser/api/serial/serial_api.cc.orig	2016-06-24 01:02:22.000000000 +0000
++++ extensions/browser/api/serial/serial_api.cc
+@@ -86,11 +86,13 @@ bool SerialGetDevicesFunction::Prepare()
+ void SerialGetDevicesFunction::Work() {
+   DCHECK_CURRENTLY_ON(BrowserThread::FILE);
+ 
++#if !defined(OS_BSD)
+   scoped_ptr<device::SerialDeviceEnumerator> enumerator =
+       device::SerialDeviceEnumerator::Create();
+   mojo::Array<device::serial::DeviceInfoPtr> devices = enumerator->GetDevices();
+   results_ = serial::GetDevices::Results::Create(
+       devices.To<std::vector<serial::DeviceInfo>>());
++#endif
+ }
+ 
+ SerialConnectFunction::SerialConnectFunction() {
diff --git a/chromium-new/patches/patch-extensions_browser_api_serial_serial_api_cc b/chromium-new/patches/patch-extensions_browser_api_serial_serial_api_cc
deleted file mode 100644
index cba7dce..0000000
--- a/chromium-new/patches/patch-extensions_browser_api_serial_serial_api_cc
+++ /dev/null
@@ -1,17 +0,0 @@
-$OpenBSD: patch-extensions_browser_api_serial_serial_api_cc,v 1.1 2014/10/13 06:49:19 robert Exp $
---- extensions/browser/api/serial/serial_api.cc.orig.port	Fri Oct 10 16:15:30 2014
-+++ extensions/browser/api/serial/serial_api.cc	Fri Oct 10 16:15:52 2014
-@@ -85,11 +85,13 @@ bool SerialGetDevicesFunction::Prepare() {
- void SerialGetDevicesFunction::Work() {
-   DCHECK_CURRENTLY_ON(BrowserThread::FILE);
- 
-+#if !defined(OS_BSD)
-   scoped_ptr<device::SerialDeviceEnumerator> enumerator =
-       device::SerialDeviceEnumerator::Create();
-   mojo::Array<device::serial::DeviceInfoPtr> devices = enumerator->GetDevices();
-   results_ = serial::GetDevices::Results::Create(
-       devices.To<std::vector<linked_ptr<serial::DeviceInfo> > >());
-+#endif
- }
- 
- SerialConnectFunction::SerialConnectFunction() {
diff --git a/chromium-new/patches/patch-extensions_browser_api_web__request_form__data__parser.cc b/chromium-new/patches/patch-extensions_browser_api_web__request_form__data__parser.cc
new file mode 100644
index 0000000..9ef2243
--- /dev/null
+++ b/chromium-new/patches/patch-extensions_browser_api_web__request_form__data__parser.cc
@@ -0,0 +1,16 @@
+$NetBSD$
+
+--- extensions/browser/api/web_request/form_data_parser.cc.orig	2016-06-24 01:02:22.000000000 +0000
++++ extensions/browser/api/web_request/form_data_parser.cc
+@@ -15,7 +15,11 @@
+ #include "base/values.h"
+ #include "net/base/escape.h"
+ #include "net/url_request/url_request.h"
++#if defined(OS_BSD)
++#include <re2/re2.h>
++#else
+ #include "third_party/re2/src/re2/re2.h"
++#endif
+ 
+ using base::DictionaryValue;
+ using base::ListValue;
diff --git a/chromium-new/patches/patch-extensions_common_image__util.cc b/chromium-new/patches/patch-extensions_common_image__util.cc
new file mode 100644
index 0000000..88c34b5
--- /dev/null
+++ b/chromium-new/patches/patch-extensions_common_image__util.cc
@@ -0,0 +1,16 @@
+$NetBSD$
+
+--- extensions/common/image_util.cc.orig	2016-06-24 01:02:22.000000000 +0000
++++ extensions/common/image_util.cc
+@@ -11,7 +11,11 @@
+ #include "base/strings/string_number_conversions.h"
+ #include "base/strings/string_util.h"
+ #include "base/strings/stringprintf.h"
++#if defined(OS_BSD)
++#include <re2/re2.h>
++#else
+ #include "third_party/re2/src/re2/re2.h"
++#endif
+ #include "third_party/skia/include/core/SkColor.h"
+ #include "third_party/skia/include/utils/SkParse.h"
+ #include "ui/gfx/color_utils.h"
diff --git a/chromium-new/patches/patch-extensions_common_stack__frame.cc b/chromium-new/patches/patch-extensions_common_stack__frame.cc
new file mode 100644
index 0000000..dec48be
--- /dev/null
+++ b/chromium-new/patches/patch-extensions_common_stack__frame.cc
@@ -0,0 +1,16 @@
+$NetBSD$
+
+--- extensions/common/stack_frame.cc.orig	2016-06-24 01:02:22.000000000 +0000
++++ extensions/common/stack_frame.cc
+@@ -7,7 +7,11 @@
+ #include <string>
+ 
+ #include "base/strings/utf_string_conversions.h"
++#if defined(OS_BSD)
++#include <re2/re2.h>
++#else
+ #include "third_party/re2/src/re2/re2.h"
++#endif
+ 
+ namespace extensions {
+ 
diff --git a/chromium-new/patches/patch-gpu_command__buffer_service_error__state.cc b/chromium-new/patches/patch-gpu_command__buffer_service_error__state.cc
new file mode 100644
index 0000000..1e428fd
--- /dev/null
+++ b/chromium-new/patches/patch-gpu_command__buffer_service_error__state.cc
@@ -0,0 +1,32 @@
+$NetBSD$
+
+--- gpu/command_buffer/service/error_state.cc.orig	2016-06-24 01:02:22.000000000 +0000
++++ gpu/command_buffer/service/error_state.cc
+@@ -108,6 +108,7 @@ uint32_t ErrorStateImpl::GetGLError() {
+ 
+ GLenum ErrorStateImpl::GetErrorHandleContextLoss() {
+   GLenum error = glGetError();
++#if !defined(OS_NETBSD)
+   if (error == GL_CONTEXT_LOST_KHR) {
+     client_->OnContextLostError();
+     // Do not expose GL_CONTEXT_LOST_KHR, as the version of the robustness
+@@ -115,6 +116,7 @@ GLenum ErrorStateImpl::GetErrorHandleCon
+     // buffer.
+     error = GL_NO_ERROR;
+   }
++#endif
+   return error;
+ }
+ 
+@@ -205,7 +207,11 @@ void ErrorStateImpl::ClearRealGLErrors(
+   // Clears and logs all current gl errors.
+   GLenum error;
+   while ((error = glGetError()) != GL_NO_ERROR) {
++#if defined(OS_NETBSD)
++    if (error != GL_OUT_OF_MEMORY) {
++#else
+     if (error != GL_CONTEXT_LOST_KHR && error != GL_OUT_OF_MEMORY) {
++#endif
+       // GL_OUT_OF_MEMORY can legally happen on lost device.
+       logger_->LogMessage(
+           filename, line,
diff --git a/chromium-new/patches/patch-gpu_command__buffer_service_program__manager.cc b/chromium-new/patches/patch-gpu_command__buffer_service_program__manager.cc
new file mode 100644
index 0000000..c97e2a9
--- /dev/null
+++ b/chromium-new/patches/patch-gpu_command__buffer_service_program__manager.cc
@@ -0,0 +1,16 @@
+$NetBSD$
+
+--- gpu/command_buffer/service/program_manager.cc.orig	2016-06-24 01:02:22.000000000 +0000
++++ gpu/command_buffer/service/program_manager.cc
+@@ -29,7 +29,11 @@
+ #include "gpu/command_buffer/service/gpu_preferences.h"
+ #include "gpu/command_buffer/service/program_cache.h"
+ #include "gpu/command_buffer/service/shader_manager.h"
++#if defined(OS_BSD)
++#include <re2/re2.h>
++#else
+ #include "third_party/re2/src/re2/re2.h"
++#endif
+ #include "ui/gl/gl_version_info.h"
+ 
+ using base::TimeDelta;
diff --git a/chromium-new/patches/patch-gpu_config_gpu__control__list.cc b/chromium-new/patches/patch-gpu_config_gpu__control__list.cc
new file mode 100644
index 0000000..779a8fe
--- /dev/null
+++ b/chromium-new/patches/patch-gpu_config_gpu__control__list.cc
@@ -0,0 +1,16 @@
+$NetBSD$
+
+--- gpu/config/gpu_control_list.cc.orig	2016-06-24 01:02:22.000000000 +0000
++++ gpu/config/gpu_control_list.cc
+@@ -17,7 +17,11 @@
+ #include "base/sys_info.h"
+ #include "gpu/config/gpu_info.h"
+ #include "gpu/config/gpu_util.h"
++#if defined(OS_BSD)
++#include <re2/re2.h>
++#else
+ #include "third_party/re2/src/re2/re2.h"
++#endif
+ 
+ namespace gpu {
+ namespace {
diff --git a/chromium-new/patches/patch-gpu_config_gpu__control__list__unittest.cc b/chromium-new/patches/patch-gpu_config_gpu__control__list__unittest.cc
new file mode 100644
index 0000000..115297d
--- /dev/null
+++ b/chromium-new/patches/patch-gpu_config_gpu__control__list__unittest.cc
@@ -0,0 +1,14 @@
+$NetBSD$
+
+--- gpu/config/gpu_control_list_unittest.cc.orig	2016-06-24 01:02:22.000000000 +0000
++++ gpu/config/gpu_control_list_unittest.cc
+@@ -175,8 +175,7 @@ TEST_F(GpuControlListTest, VendorOnAllOs
+   features = control_list->MakeDecision(
+       GpuControlList::kOsLinux, kOsVersion, gpu_info());
+   EXPECT_SINGLE_FEATURE(features, TEST_FEATURE_0);
+-#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) || \
+-    defined(OS_OPENBSD)
++#if defined(OS_WIN) || (defined(OS_POSIX) && !defined(OS_ANDROID))
+   // ControlList entries will be filtered to the current OS only upon loading.
+   EXPECT_TRUE(control_list->LoadList(
+       vendor_json, GpuControlList::kCurrentOsOnly));
diff --git a/chromium-new/patches/patch-gpu_config_gpu__info__collector.cc b/chromium-new/patches/patch-gpu_config_gpu__info__collector.cc
new file mode 100644
index 0000000..b321573
--- /dev/null
+++ b/chromium-new/patches/patch-gpu_config_gpu__info__collector.cc
@@ -0,0 +1,15 @@
+$NetBSD$
+
+--- gpu/config/gpu_info_collector.cc.orig	2016-06-24 01:02:22.000000000 +0000
++++ gpu/config/gpu_info_collector.cc
+@@ -167,8 +167,10 @@ CollectInfoResult CollectGraphicsInfoGL(
+   gpu_info->pixel_shader_version = glsl_version;
+   gpu_info->vertex_shader_version = glsl_version;
+ 
++#ifndef __FreeBSD__
+   IdentifyActiveGPU(gpu_info);
+   return CollectDriverInfoGL(gpu_info);
++#endif
+ }
+ 
+ void MergeGPUInfoGL(GPUInfo* basic_gpu_info,
diff --git a/chromium-new/patches/patch-gpu_config_gpu__test__config.cc b/chromium-new/patches/patch-gpu_config_gpu__test__config.cc
new file mode 100644
index 0000000..db0a8bc
--- /dev/null
+++ b/chromium-new/patches/patch-gpu_config_gpu__test__config.cc
@@ -0,0 +1,32 @@
+$NetBSD$
+
+--- gpu/config/gpu_test_config.cc.orig	2016-06-24 01:02:22.000000000 +0000
++++ gpu/config/gpu_test_config.cc
+@@ -26,7 +26,7 @@ namespace {
+ GPUTestConfig::OS GetCurrentOS() {
+ #if defined(OS_CHROMEOS)
+   return GPUTestConfig::kOsChromeOS;
+-#elif defined(OS_LINUX) || defined(OS_OPENBSD)
++#elif defined(OS_LINUX) || defined(OS_BSD)
+   return GPUTestConfig::kOsLinux;
+ #elif defined(OS_WIN)
+   int32_t major_version = 0;
+@@ -254,6 +254,10 @@ bool GPUTestBotConfig::LoadCurrentConfig
+   bool rt;
+   if (gpu_info == NULL) {
+     GPUInfo my_gpu_info;
++#if defined(OS_FREEBSD)
++    rt = false;
++    LOG(WARNING) << "CollectGpuID not present on FreeBSD";
++#else
+     CollectInfoResult result = CollectGpuID(
+         &my_gpu_info.gpu.vendor_id, &my_gpu_info.gpu.device_id);
+     if (result != kCollectInfoSuccess) {
+@@ -263,6 +267,7 @@ bool GPUTestBotConfig::LoadCurrentConfig
+     } else {
+       rt = SetGPUInfo(my_gpu_info);
+     }
++#endif
+   } else {
+     rt = SetGPUInfo(*gpu_info);
+   }
diff --git a/chromium-new/patches/patch-gpu_config_gpu_info_collector_linux_cc b/chromium-new/patches/patch-gpu_config_gpu_info_collector_linux_cc
deleted file mode 100644
index a21b35d..0000000
--- a/chromium-new/patches/patch-gpu_config_gpu_info_collector_linux_cc
+++ /dev/null
@@ -1,14 +0,0 @@
-$OpenBSD: patch-gpu_config_gpu_info_collector_linux_cc,v 1.4 2015/10/14 16:42:07 robert Exp $
---- gpu/config/gpu_info_collector_linux.cc.orig.port	Wed Oct  7 04:42:12 2015
-+++ gpu/config/gpu_info_collector_linux.cc	Wed Oct 14 07:41:13 2015
-@@ -78,6 +78,10 @@ const uint32 kVendorIDAMD = 0x1002;
- CollectInfoResult CollectPCIVideoCardInfo(GPUInfo* gpu_info) {
-   DCHECK(gpu_info);
- 
-+#if defined(OS_BSD)
-+  return (CollectMesaCardInfo(gpu_info));
-+#endif
-+
- #if !defined(USE_LIBPCI)
-   return kCollectInfoNonFatalFailure;
- #else
diff --git a/chromium-new/patches/patch-gpu_config_gpu_info_collector_linux_h b/chromium-new/patches/patch-gpu_config_gpu_info_collector_linux_h
deleted file mode 100644
index e8454b1..0000000
--- a/chromium-new/patches/patch-gpu_config_gpu_info_collector_linux_h
+++ /dev/null
@@ -1,18 +0,0 @@
-$OpenBSD: patch-gpu_config_gpu_info_collector_linux_h,v 1.1 2015/02/22 11:33:57 robert Exp $
---- gpu/config/gpu_info_collector_linux.h.orig.port	Wed Feb 18 17:58:41 2015
-+++ gpu/config/gpu_info_collector_linux.h	Wed Feb 18 17:59:22 2015
-@@ -6,11 +6,14 @@
- #define GPU_CONFIG_GPU_INFO_COLLECTOR_LINUX_H_
- 
- #include <string>
-+#include "gpu/config/gpu_info_collector.h"
- 
- namespace gpu {
- 
- // Queries for the driver version. Returns an empty string on failure.
- std::string CollectDriverVersionNVidia();
-+
-+CollectInfoResult CollectMesaCardInfo(GPUInfo *);
- 
- }  // namespace gpu
- 
diff --git a/chromium-new/patches/patch-gpu_config_gpu_info_collector_x11_cc b/chromium-new/patches/patch-gpu_config_gpu_info_collector_x11_cc
deleted file mode 100644
index 487119e..0000000
--- a/chromium-new/patches/patch-gpu_config_gpu_info_collector_x11_cc
+++ /dev/null
@@ -1,64 +0,0 @@
-$OpenBSD: patch-gpu_config_gpu_info_collector_x11_cc,v 1.2 2015/04/27 16:38:25 robert Exp $
---- gpu/config/gpu_info_collector_x11.cc.orig.port	Wed Apr 15 00:18:55 2015
-+++ gpu/config/gpu_info_collector_x11.cc	Wed Apr 15 15:34:00 2015
-@@ -8,8 +8,17 @@
- #include "gpu/config/gpu_info_collector_linux.h"
- #include "third_party/libXNVCtrl/NVCtrl.h"
- #include "third_party/libXNVCtrl/NVCtrlLib.h"
-+#include "ui/gl/gl_bindings.h"
-+#include "ui/gl/gl_context.h"
-+#include "ui/gl/gl_implementation.h"
-+#include "ui/gl/gl_surface.h"
- #include "ui/gfx/x/x11_types.h"
- 
-+typedef bool (*PFNGLXQUERYRENDERERINTEGERMESAPROC) (Display *dpy, int screen, int renderer, int attribute, unsigned int *value);
-+
-+#define GLX_RENDERER_VENDOR_ID_MESA     0x8183
-+#define GLX_RENDERER_DEVICE_ID_MESA     0x8184
-+
- namespace gpu {
- 
- // Use NVCtrl extention to query NV driver version.
-@@ -39,5 +48,42 @@ std::string CollectDriverVersionNVidia() {
-   }
-   return std::string();
- }
-+
-+CollectInfoResult CollectMesaCardInfo(GPUInfo* gpu_info) {
-+  unsigned int vid[3], did[3];
-+
-+  Display* display = gfx::GetXDisplay();
-+  if (!display) {
-+    LOG(ERROR) << "XOpenDisplay failed.";
-+    return kCollectInfoNonFatalFailure;
-+  }
-+
-+  bool initialized =
-+      gfx::InitializeStaticGLBindings(gfx::kGLImplementationDesktopGL);
-+
-+  if (!initialized)
-+    return kCollectInfoNonFatalFailure;
-+
-+  PFNGLXQUERYRENDERERINTEGERMESAPROC queryInteger =
-+      (PFNGLXQUERYRENDERERINTEGERMESAPROC) glXGetProcAddressARB((const GLubyte *)
-+      "glXQueryRendererIntegerMESA");
-+
-+  bool vendor_ret =
-+      queryInteger(display, 0, 0, GLX_RENDERER_VENDOR_ID_MESA, vid);
-+  bool device_ret =
-+      queryInteger(display, 0, 0, GLX_RENDERER_DEVICE_ID_MESA, did);
-+
-+  if (vendor_ret && device_ret) {
-+    GPUInfo::GPUDevice gpu;
-+    gpu.vendor_id = vid[0];
-+    gpu.device_id = did[0];
-+    gpu_info->gpu = gpu;
-+  }
-+
-+  if (initialized)
-+    gfx::ClearGLBindings();
-+
-+  return kCollectInfoSuccess;
-+ }
- 
- }  // namespace gpu
diff --git a/chromium-new/patches/patch-gpu_gles2_conform_support_gles2_conform_support_gyp b/chromium-new/patches/patch-gpu_gles2_conform_support_gles2_conform_support_gyp
deleted file mode 100644
index 4594f7f..0000000
--- a/chromium-new/patches/patch-gpu_gles2_conform_support_gles2_conform_support_gyp
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-gpu_gles2_conform_support_gles2_conform_support_gyp,v 1.1 2015/12/12 20:20:01 robert Exp $
---- gpu/gles2_conform_support/gles2_conform_support.gyp.orig.port	Sat Dec 12 13:56:36 2015
-+++ gpu/gles2_conform_support/gles2_conform_support.gyp	Sat Dec 12 14:05:08 2015
-@@ -12,7 +12,7 @@
-       'native/main.cc',
-     ],
-    'conditions': [
--     ['OS=="linux"', {
-+     ['OS=="linux" or os_bsd==1', {
-        'bootstrap_sources_native': [
-          'native/egl_native.cc',
-          'native/egl_native_aura.cc',
diff --git a/chromium-new/patches/patch-gpu_gpu__config.gypi b/chromium-new/patches/patch-gpu_gpu__config.gypi
new file mode 100644
index 0000000..f2942ce
--- /dev/null
+++ b/chromium-new/patches/patch-gpu_gpu__config.gypi
@@ -0,0 +1,25 @@
+$NetBSD$
+
+--- gpu/gpu_config.gypi.orig	2016-06-24 01:02:23.000000000 +0000
++++ gpu/gpu_config.gypi
+@@ -71,7 +71,7 @@
+         '../build/linux/system.gyp:libpci',
+       ],
+     }],
+-    ['OS=="linux" and use_x11==1', {
++    ['(OS=="linux" or os_bsd==1) and use_x11==1', {
+       'dependencies': [
+         '../build/linux/system.gyp:x11',
+         '../build/linux/system.gyp:xext',
+@@ -79,5 +79,11 @@
+         '../ui/gfx/x/gfx_x11.gyp:gfx_x11',
+       ],
+     }],
++    ['os_bsd==1', {
++      'sources!': [
++        'config/gpu_info_collector_linux.cc',
++        'config/gpu_info_collector_linux.h',
++      ],
++    }]
+   ],
+ }
diff --git a/chromium-new/patches/patch-gpu_gpu__ipc__service.gypi b/chromium-new/patches/patch-gpu_gpu__ipc__service.gypi
new file mode 100644
index 0000000..0eccc43
--- /dev/null
+++ b/chromium-new/patches/patch-gpu_gpu__ipc__service.gypi
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- gpu/gpu_ipc_service.gypi.orig	2016-06-24 01:02:23.000000000 +0000
++++ gpu/gpu_ipc_service.gypi
+@@ -82,7 +82,7 @@
+         ],
+       },
+     }],
+-    ['OS=="linux"', {
++    ['OS=="linux" or os_bsd==1', {
+       'sources': [ 'ipc/service/image_transport_surface_linux.cc' ],
+     }],
+     ['use_x11 == 1 and (target_arch != "arm" or chromeos == 0)', {
diff --git a/chromium-new/patches/patch-gpu_gpu_config_gypi b/chromium-new/patches/patch-gpu_gpu_config_gypi
deleted file mode 100644
index 4bcf020..0000000
--- a/chromium-new/patches/patch-gpu_gpu_config_gypi
+++ /dev/null
@@ -1,18 +0,0 @@
-$OpenBSD: patch-gpu_gpu_config_gypi,v 1.7 2015/07/23 13:44:04 robert Exp $
---- gpu/gpu_config.gypi.orig.port	Wed Jul 15 22:30:04 2015
-+++ gpu/gpu_config.gypi	Wed Jul 22 08:37:30 2015
-@@ -66,12 +66,12 @@
-         '../third_party/amd/amd_videocard_info_win.cc',
-       ],
-     }],
--    ['OS=="linux" and use_libpci==1 and (use_x11==1 or use_ozone==1)', {
-+    ['(OS=="linux" or os_bsd==1) and use_libpci==1 and (use_x11==1 or use_ozone==1)', {
-       'dependencies': [
-         '../build/linux/system.gyp:libpci',
-       ],
-     }],
--    ['OS=="linux" and use_x11==1', {
-+    ['(OS=="linux" or os_bsd==1) and use_x11==1', {
-       'dependencies': [
-         '../build/linux/system.gyp:x11',
-         '../build/linux/system.gyp:xext',
diff --git a/chromium-new/patches/patch-gpu_tools_tools_gyp b/chromium-new/patches/patch-gpu_tools_tools_gyp
deleted file mode 100644
index cb23a94..0000000
--- a/chromium-new/patches/patch-gpu_tools_tools_gyp
+++ /dev/null
@@ -1,20 +0,0 @@
-$OpenBSD: patch-gpu_tools_tools_gyp,v 1.2 2015/05/24 15:51:53 robert Exp $
---- gpu/tools/tools.gyp.orig.port	Thu May 14 00:23:07 2015
-+++ gpu/tools/tools.gyp	Wed May 20 08:34:56 2015
-@@ -9,7 +9,7 @@
-   'targets': [
-   ],
-   'conditions': [
--    ['OS == "linux" and target_arch != "arm" and use_x11==1', {
-+    ['(OS == "linux" or os_bsd==1) and target_arch != "arm" and use_x11==1', {
-       'targets': [
-         {
-           # GN version: //gpu/tools/compositor_model_bench
-@@ -22,7 +22,6 @@
-           ],
-           'libraries': [
-             '-lGL',
--            '-ldl',
-           ],
-           'sources': [
-             'compositor_model_bench/compositor_model_bench.cc',
diff --git a/chromium-new/patches/patch-ipc_ipc__message__utils.cc b/chromium-new/patches/patch-ipc_ipc__message__utils.cc
new file mode 100644
index 0000000..7f8375e
--- /dev/null
+++ b/chromium-new/patches/patch-ipc_ipc__message__utils.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- ipc/ipc_message_utils.cc.orig	2016-06-24 01:02:23.000000000 +0000
++++ ipc/ipc_message_utils.cc
+@@ -423,7 +423,7 @@ void ParamTraits<unsigned int>::Log(cons
+   l->append(base::UintToString(p));
+ }
+ 
+-#if defined(OS_WIN) || defined(OS_LINUX) || \
++#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD) || \
+     (defined(OS_ANDROID) && defined(ARCH_CPU_64_BITS))
+ void ParamTraits<long>::Log(const param_type& p, std::string* l) {
+   l->append(base::Int64ToString(static_cast<int64_t>(p)));
diff --git a/chromium-new/patches/patch-ipc_ipc__message__utils.h b/chromium-new/patches/patch-ipc_ipc__message__utils.h
new file mode 100644
index 0000000..5c7099f
--- /dev/null
+++ b/chromium-new/patches/patch-ipc_ipc__message__utils.h
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- ipc/ipc_message_utils.h.orig	2016-06-24 01:02:23.000000000 +0000
++++ ipc/ipc_message_utils.h
+@@ -208,7 +208,7 @@ struct ParamTraits<unsigned int> {
+ //   3) Android 64 bit also has int64_t typedef'd to long.
+ // Since we want to support Android 32<>64 bit IPC, as long as we don't have
+ // these traits for 32 bit ARM then that'll catch any errors.
+-#if defined(OS_WIN) || defined(OS_LINUX) || \
++#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD) || \
+     (defined(OS_ANDROID) && defined(ARCH_CPU_64_BITS))
+ template <>
+ struct ParamTraits<long> {
diff --git a/chromium-new/patches/patch-ipc_unix__domain__socket__util.cc b/chromium-new/patches/patch-ipc_unix__domain__socket__util.cc
new file mode 100644
index 0000000..34071c1
--- /dev/null
+++ b/chromium-new/patches/patch-ipc_unix__domain__socket__util.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- ipc/unix_domain_socket_util.cc.orig	2016-06-24 01:02:23.000000000 +0000
++++ ipc/unix_domain_socket_util.cc
+@@ -156,7 +156,7 @@ bool CreateClientUnixDomainSocket(const 
+ 
+ bool GetPeerEuid(int fd, uid_t* peer_euid) {
+   DCHECK(peer_euid);
+-#if defined(OS_MACOSX) || defined(OS_OPENBSD) || defined(OS_FREEBSD)
++#if defined(OS_MACOSX) || defined(OS_OPENBSD) || defined(OS_FREEBSD) || defined(OS_NETBSD)
+   uid_t socket_euid;
+   gid_t socket_gid;
+   if (getpeereid(fd, &socket_euid, &socket_gid) < 0) {
diff --git a/chromium-new/patches/patch-media_audio_alsa_audio__manager__alsa.cc b/chromium-new/patches/patch-media_audio_alsa_audio__manager__alsa.cc
new file mode 100644
index 0000000..b590bf1
--- /dev/null
+++ b/chromium-new/patches/patch-media_audio_alsa_audio__manager__alsa.cc
@@ -0,0 +1,56 @@
+$NetBSD$
+
+--- media/audio/alsa/audio_manager_alsa.cc.orig	2016-06-24 01:02:23.000000000 +0000
++++ media/audio/alsa/audio_manager_alsa.cc
+@@ -129,7 +129,9 @@ void AudioManagerAlsa::GetAlsaAudioDevic
+   int card = -1;
+ 
+   // Loop through the sound cards to get ALSA device hints.
++#ifdef OS_LINUX
+   while (!wrapper_->CardNext(&card) && card >= 0) {
++#endif
+     void** hints = NULL;
+     int error = wrapper_->DeviceNameHint(card, kPcmInterfaceName, &hints);
+     if (!error) {
+@@ -141,7 +143,9 @@ void AudioManagerAlsa::GetAlsaAudioDevic
+       DLOG(WARNING) << "GetAlsaAudioDevices: unable to get device hints: "
+                     << wrapper_->StrError(error);
+     }
++#ifdef OS_LINUX
+   }
++#endif
+ }
+ 
+ void AudioManagerAlsa::GetAlsaDevicesInfo(
+@@ -227,7 +231,11 @@ bool AudioManagerAlsa::IsAlsaDeviceAvail
+     // goes through software conversion if needed (e.g. incompatible
+     // sample rate).
+     // TODO(joi): Should we prefer "hw" instead?
++#ifdef OS_LINUX
+     static const char kDeviceTypeDesired[] = "plughw";
++#else
++    static const char kDeviceTypeDesired[] = "plug";
++#endif
+     return strncmp(kDeviceTypeDesired,
+                    device_name,
+                    arraysize(kDeviceTypeDesired) - 1) == 0;
+@@ -251,7 +259,9 @@ bool AudioManagerAlsa::HasAnyAlsaAudioDe
+   // Loop through the sound cards.
+   // Don't use snd_device_name_hint(-1,..) since there is a access violation
+   // inside this ALSA API with libasound.so.2.0.0.
++#ifdef OS_LINUX
+   while (!wrapper_->CardNext(&card) && (card >= 0) && !has_device) {
++#endif
+     int error = wrapper_->DeviceNameHint(card, kPcmInterfaceName, &hints);
+     if (!error) {
+       for (void** hint_iter = hints; *hint_iter != NULL; hint_iter++) {
+@@ -275,7 +285,9 @@ bool AudioManagerAlsa::HasAnyAlsaAudioDe
+       DLOG(WARNING) << "HasAnyAudioDevice: unable to get device hints: "
+                     << wrapper_->StrError(error);
+     }
++#ifdef OS_LINUX
+   }
++#endif
+ 
+   return has_device;
+ }
diff --git a/chromium-new/patches/patch-media_audio_audio__manager.cc b/chromium-new/patches/patch-media_audio_audio__manager.cc
new file mode 100644
index 0000000..7279089
--- /dev/null
+++ b/chromium-new/patches/patch-media_audio_audio__manager.cc
@@ -0,0 +1,31 @@
+$NetBSD$
+
+--- media/audio/audio_manager.cc.orig	2016-06-24 01:02:23.000000000 +0000
++++ media/audio/audio_manager.cc
+@@ -193,7 +193,7 @@ class AudioManagerHelper : public base::
+   }
+ #endif
+ 
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD) || defined(OS_NETBSD)
+   void set_app_name(const std::string& app_name) {
+     app_name_ = app_name;
+   }
+@@ -243,7 +243,7 @@ class AudioManagerHelper : public base::
+   scoped_ptr<base::win::ScopedCOMInitializer> com_initializer_for_testing_;
+ #endif
+ 
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD) || defined(OS_NETBSD)
+   std::string app_name_;
+ #endif
+ 
+@@ -321,7 +321,7 @@ void AudioManager::EnableCrashKeyLogging
+   g_helper.Pointer()->enable_crash_key_logging();
+ }
+ 
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD) || defined(OS_NETBSD)
+ // static
+ void AudioManager::SetGlobalAppName(const std::string& app_name) {
+   g_helper.Pointer()->set_app_name(app_name);
diff --git a/chromium-new/patches/patch-media_audio_audio__manager.h b/chromium-new/patches/patch-media_audio_audio__manager.h
new file mode 100644
index 0000000..3f54370
--- /dev/null
+++ b/chromium-new/patches/patch-media_audio_audio__manager.h
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- media/audio/audio_manager.h.orig	2016-06-24 01:02:23.000000000 +0000
++++ media/audio/audio_manager.h
+@@ -68,7 +68,7 @@ class MEDIA_EXPORT AudioManager {
+   // See http://crbug.com/422522
+   static void EnableCrashKeyLoggingForAudioThreadHangs();
+ 
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD) || defined(OS_NETBSD)
+   // Sets the name of the audio source as seen by external apps. Only actually
+   // used with PulseAudio as of this writing.
+   static void SetGlobalAppName(const std::string& app_name);
diff --git a/chromium-new/patches/patch-media_audio_audio__output__device.cc b/chromium-new/patches/patch-media_audio_audio__output__device.cc
new file mode 100644
index 0000000..ee70f11
--- /dev/null
+++ b/chromium-new/patches/patch-media_audio_audio__output__device.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- media/audio/audio_output_device.cc.orig	2016-06-24 01:02:23.000000000 +0000
++++ media/audio/audio_output_device.cc
+@@ -426,7 +426,7 @@ void AudioOutputDevice::AudioThreadCallb
+   // frames, and ask client to render audio.  Since |output_bus_| is wrapping
+   // the shared memory the Render() call is writing directly into the shared
+   // memory.
+-  render_callback_->Render(output_bus_.get(), std::round(frames_delayed),
++  render_callback_->Render(output_bus_.get(), round(frames_delayed),
+                            frames_skipped);
+ }
+ 
diff --git a/chromium-new/patches/patch-media_audio_audio__output__stream__sink.cc b/chromium-new/patches/patch-media_audio_audio__output__stream__sink.cc
new file mode 100644
index 0000000..649acef
--- /dev/null
+++ b/chromium-new/patches/patch-media_audio_audio__output__stream__sink.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- media/audio/audio_output_stream_sink.cc.orig	2016-06-24 01:02:23.000000000 +0000
++++ media/audio/audio_output_stream_sink.cc
+@@ -85,7 +85,7 @@ int AudioOutputStreamSink::OnMoreData(Au
+   if (!active_render_callback_)
+     return 0;
+ 
+-  uint32_t frames_delayed = std::round(static_cast<double>(total_bytes_delay) /
++  uint32_t frames_delayed = round(static_cast<double>(total_bytes_delay) /
+                                        active_params_.GetBytesPerFrame());
+ 
+   return active_render_callback_->Render(dest, frames_delayed, frames_skipped);
diff --git a/chromium-new/patches/patch-media_audio_audio_input_controller_cc b/chromium-new/patches/patch-media_audio_audio_input_controller_cc
deleted file mode 100644
index 08be91a..0000000
--- a/chromium-new/patches/patch-media_audio_audio_input_controller_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-media_audio_audio_input_controller_cc,v 1.4 2015/12/05 16:13:32 robert Exp $
---- media/audio/audio_input_controller.cc.orig.port	Fri Nov 13 12:04:18 2015
-+++ media/audio/audio_input_controller.cc	Wed Dec  2 08:18:32 2015
-@@ -15,6 +15,8 @@
- #include "media/audio/audio_input_writer.h"
- #include "media/base/user_input_monitor.h"
- 
-+#include <math.h>
-+
- using base::TimeDelta;
- 
- namespace {
diff --git a/chromium-new/patches/patch-media_audio_audio_manager_cc b/chromium-new/patches/patch-media_audio_audio_manager_cc
deleted file mode 100644
index ec2599c..0000000
--- a/chromium-new/patches/patch-media_audio_audio_manager_cc
+++ /dev/null
@@ -1,30 +0,0 @@
-$OpenBSD: patch-media_audio_audio_manager_cc,v 1.1 2016/01/29 16:56:10 robert Exp $
---- media/audio/audio_manager.cc.orig.port	Fri Jan 29 17:33:20 2016
-+++ media/audio/audio_manager.cc	Fri Jan 29 17:33:42 2016
-@@ -157,7 +157,7 @@ class AudioManagerHelper : public base::PowerObserver 
-   }
- #endif
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   void set_app_name(const std::string& app_name) {
-     app_name_ = app_name;
-   }
-@@ -184,7 +184,7 @@ class AudioManagerHelper : public base::PowerObserver 
-   scoped_ptr<base::win::ScopedCOMInitializer> com_initializer_for_testing_;
- #endif
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   std::string app_name_;
- #endif
- 
-@@ -267,7 +267,7 @@ void AudioManager::EnableHangMonitor() {
- #endif
- }
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- // static
- void AudioManager::SetGlobalAppName(const std::string& app_name) {
-   g_helper.Pointer()->set_app_name(app_name);
diff --git a/chromium-new/patches/patch-media_audio_audio_manager_h b/chromium-new/patches/patch-media_audio_audio_manager_h
deleted file mode 100644
index 427c656..0000000
--- a/chromium-new/patches/patch-media_audio_audio_manager_h
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-media_audio_audio_manager_h,v 1.1 2016/01/29 16:56:10 robert Exp $
---- media/audio/audio_manager.h.orig.port	Fri Jan 29 17:33:59 2016
-+++ media/audio/audio_manager.h	Fri Jan 29 17:34:14 2016
-@@ -61,7 +61,7 @@ class MEDIA_EXPORT AudioManager {
-   // called previously to start the hang monitor.  Does nothing on OSX.
-   static void EnableHangMonitor();
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   // Sets the name of the audio source as seen by external apps. Only actually
-   // used with PulseAudio as of this writing.
-   static void SetGlobalAppName(const std::string& app_name);
diff --git a/chromium-new/patches/patch-media_base_audio__renderer__mixer.cc b/chromium-new/patches/patch-media_base_audio__renderer__mixer.cc
new file mode 100644
index 0000000..73e5a4c
--- /dev/null
+++ b/chromium-new/patches/patch-media_base_audio__renderer__mixer.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- media/base/audio_renderer_mixer.cc.orig	2016-06-24 01:02:23.000000000 +0000
++++ media/base/audio_renderer_mixer.cc
+@@ -138,7 +138,7 @@ int AudioRendererMixer::Render(AudioBus*
+   // expect a count of frames delayed instead of TimeDelta (less precise).
+   // See http://crbug.com/587522.
+   base::TimeDelta audio_delay = base::TimeDelta::FromMicroseconds(
+-      std::round(frames_delayed * output_params_.GetMicrosecondsPerFrame()));
++      round(frames_delayed * output_params_.GetMicrosecondsPerFrame()));
+ 
+   master_converter_.ConvertWithDelay(audio_delay, audio_bus);
+   return audio_bus->frames();
diff --git a/chromium-new/patches/patch-media_base_audio__renderer__mixer__input.cc b/chromium-new/patches/patch-media_base_audio__renderer__mixer__input.cc
new file mode 100644
index 0000000..d9540fa
--- /dev/null
+++ b/chromium-new/patches/patch-media_base_audio__renderer__mixer__input.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- media/base/audio_renderer_mixer_input.cc.orig	2016-06-24 01:02:23.000000000 +0000
++++ media/base/audio_renderer_mixer_input.cc
+@@ -164,7 +164,7 @@ double AudioRendererMixerInput::ProvideI
+   // TODO(chcunningham): Delete this conversion and change ProvideInput to more
+   // precisely describe delay as a count of frames delayed instead of TimeDelta.
+   // See http://crbug.com/587522.
+-  uint32_t frames_delayed = std::round(buffer_delay.InMicroseconds() /
++  uint32_t frames_delayed = round(buffer_delay.InMicroseconds() /
+                                        params_.GetMicrosecondsPerFrame());
+ 
+   int frames_filled = callback_->Render(audio_bus, frames_delayed, 0);
diff --git a/chromium-new/patches/patch-media_base_audio__splicer.cc b/chromium-new/patches/patch-media_base_audio__splicer.cc
new file mode 100644
index 0000000..e563f5d
--- /dev/null
+++ b/chromium-new/patches/patch-media_base_audio__splicer.cc
@@ -0,0 +1,22 @@
+$NetBSD$
+
+--- media/base/audio_splicer.cc.orig	2016-06-24 01:02:23.000000000 +0000
++++ media/base/audio_splicer.cc
+@@ -167,7 +167,7 @@ bool AudioStreamSanitizer::AddInput(cons
+       output_timestamp_helper_.GetTimestamp();
+   const base::TimeDelta delta = timestamp - expected_timestamp;
+ 
+-  if (std::abs(delta.InMilliseconds()) >
++  if (std::labs(delta.InMilliseconds()) >
+       AudioSplicer::kMaxTimeDeltaInMilliseconds) {
+     MEDIA_LOG(ERROR, media_log_)
+         << "Audio splicing failed: coded frame timestamp differs from "
+@@ -183,7 +183,7 @@ bool AudioStreamSanitizer::AddInput(cons
+   if (delta != base::TimeDelta())
+     frames_to_fill = output_timestamp_helper_.GetFramesToTarget(timestamp);
+ 
+-  if (frames_to_fill == 0 || std::abs(frames_to_fill) < kMinGapSize) {
++  if (frames_to_fill == 0 || std::labs(frames_to_fill) < kMinGapSize) {
+     AddOutputBuffer(input);
+     return true;
+   }
diff --git a/chromium-new/patches/patch-media_capture_video_fake__video__capture__device__factory.cc b/chromium-new/patches/patch-media_capture_video_fake__video__capture__device__factory.cc
new file mode 100644
index 0000000..daa3068
--- /dev/null
+++ b/chromium-new/patches/patch-media_capture_video_fake__video__capture__device__factory.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- media/capture/video/fake_video_capture_device_factory.cc.orig	2016-06-24 01:02:23.000000000 +0000
++++ media/capture/video/fake_video_capture_device_factory.cc
+@@ -49,7 +49,7 @@ void FakeVideoCaptureDeviceFactory::GetD
+   for (int n = 0; n < number_of_devices_; ++n) {
+     VideoCaptureDevice::Name name(base::StringPrintf("fake_device_%d", n),
+                                   base::StringPrintf("/dev/video%d", n)
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_BSD)
+                                       ,
+                                   VideoCaptureDevice::Name::V4L2_SINGLE_PLANE
+ #elif defined(OS_MACOSX)
diff --git a/chromium-new/patches/patch-media_capture_video_fake_video_capture_device_factory_cc b/chromium-new/patches/patch-media_capture_video_fake_video_capture_device_factory_cc
deleted file mode 100644
index 0f3bcff..0000000
--- a/chromium-new/patches/patch-media_capture_video_fake_video_capture_device_factory_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-media_capture_video_fake_video_capture_device_factory_cc,v 1.2 2016/01/23 18:49:31 robert Exp $
---- media/capture/video/fake_video_capture_device_factory.cc.orig.port	Wed Jan 20 21:01:22 2016
-+++ media/capture/video/fake_video_capture_device_factory.cc	Fri Jan 22 19:58:58 2016
-@@ -49,7 +49,7 @@ void FakeVideoCaptureDeviceFactory::GetDeviceNames(
-   for (int n = 0; n < number_of_devices_; ++n) {
-     VideoCaptureDevice::Name name(base::StringPrintf("fake_device_%d", n),
-                                   base::StringPrintf("/dev/video%d", n)
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-                                       ,
-                                   VideoCaptureDevice::Name::V4L2_SINGLE_PLANE
- #elif defined(OS_MACOSX)
diff --git a/chromium-new/patches/patch-media_capture_video_file__video__capture__device__factory.cc b/chromium-new/patches/patch-media_capture_video_file__video__capture__device__factory.cc
new file mode 100644
index 0000000..a122ace
--- /dev/null
+++ b/chromium-new/patches/patch-media_capture_video_file__video__capture__device__factory.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- media/capture/video/file_video_capture_device_factory.cc.orig	2016-06-24 01:02:23.000000000 +0000
++++ media/capture/video/file_video_capture_device_factory.cc
+@@ -50,7 +50,7 @@ void FileVideoCaptureDeviceFactory::GetD
+   device_names->push_back(VideoCaptureDevice::Name(
+       command_line_file_path.value(), kFileVideoCaptureDeviceName,
+       VideoCaptureDevice::Name::AVFOUNDATION));
+-#elif defined(OS_LINUX)
++#elif defined(OS_LINUX) || defined(OS_BSD)
+   device_names->push_back(VideoCaptureDevice::Name(
+       command_line_file_path.value(), kFileVideoCaptureDeviceName,
+       VideoCaptureDevice::Name::V4L2_SINGLE_PLANE));
diff --git a/chromium-new/patches/patch-media_capture_video_file_video_capture_device_factory_cc b/chromium-new/patches/patch-media_capture_video_file_video_capture_device_factory_cc
deleted file mode 100644
index 1af1e35..0000000
--- a/chromium-new/patches/patch-media_capture_video_file_video_capture_device_factory_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-media_capture_video_file_video_capture_device_factory_cc,v 1.1 2015/10/14 16:42:07 robert Exp $
---- media/capture/video/file_video_capture_device_factory.cc.orig.port	Wed Oct 14 07:53:18 2015
-+++ media/capture/video/file_video_capture_device_factory.cc	Wed Oct 14 07:53:23 2015
-@@ -49,7 +49,7 @@ void FileVideoCaptureDeviceFactory::GetDeviceNames(
-   device_names->push_back(VideoCaptureDevice::Name(
-       command_line_file_path.value(), kFileVideoCaptureDeviceName,
-       VideoCaptureDevice::Name::AVFOUNDATION));
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
-   device_names->push_back(VideoCaptureDevice::Name(
-       command_line_file_path.value(), kFileVideoCaptureDeviceName,
-       VideoCaptureDevice::Name::V4L2_SINGLE_PLANE));
diff --git a/chromium-new/patches/patch-media_capture_video_linux_v4l2__capture__delegate.cc b/chromium-new/patches/patch-media_capture_video_linux_v4l2__capture__delegate.cc
new file mode 100644
index 0000000..901b0b1
--- /dev/null
+++ b/chromium-new/patches/patch-media_capture_video_linux_v4l2__capture__delegate.cc
@@ -0,0 +1,20 @@
+$NetBSD$
+
+--- media/capture/video/linux/v4l2_capture_delegate.cc.orig	2016-06-24 01:02:23.000000000 +0000
++++ media/capture/video/linux/v4l2_capture_delegate.cc
+@@ -248,6 +248,7 @@ void V4L2CaptureDelegate::AllocateAndSta
+   // TODO(mcasas): what should be done if the camera driver does not allow
+   // framerate configuration, or the actual one is different from the desired?
+ 
++#if !defined(__NetBSD__)
+   // Set anti-banding/anti-flicker to 50/60Hz. May fail due to not supported
+   // operation (|errno| == EINVAL in this case) or plain failure.
+   if ((power_line_frequency_ == V4L2_CID_POWER_LINE_FREQUENCY_50HZ) ||
+@@ -261,6 +262,7 @@ void V4L2CaptureDelegate::AllocateAndSta
+     if (retval != 0)
+       DVLOG(1) << "Error setting power line frequency removal";
+   }
++#endif
+ 
+   capture_format_.frame_size.SetSize(video_fmt_.fmt.pix.width,
+                                      video_fmt_.fmt.pix.height);
diff --git a/chromium-new/patches/patch-media_capture_video_linux_v4l2__capture__delegate.h b/chromium-new/patches/patch-media_capture_video_linux_v4l2__capture__delegate.h
new file mode 100644
index 0000000..34d71f2
--- /dev/null
+++ b/chromium-new/patches/patch-media_capture_video_linux_v4l2__capture__delegate.h
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- media/capture/video/linux/v4l2_capture_delegate.h.orig	2016-06-24 01:02:23.000000000 +0000
++++ media/capture/video/linux/v4l2_capture_delegate.h
+@@ -14,7 +14,7 @@
+ #include "build/build_config.h"
+ #include "media/capture/video/video_capture_device.h"
+ 
+-#if defined(OS_OPENBSD)
++#if defined(OS_OPENBSD) || defined(OS_NETBSD)
+ #include <sys/videoio.h>
+ #else
+ #include <linux/videodev2.h>
diff --git a/chromium-new/patches/patch-media_capture_video_linux_video__capture__device__factory__linux.cc b/chromium-new/patches/patch-media_capture_video_linux_video__capture__device__factory__linux.cc
new file mode 100644
index 0000000..532ddc4
--- /dev/null
+++ b/chromium-new/patches/patch-media_capture_video_linux_video__capture__device__factory__linux.cc
@@ -0,0 +1,47 @@
+$NetBSD$
+
+--- media/capture/video/linux/video_capture_device_factory_linux.cc.orig	2016-06-24 01:02:23.000000000 +0000
++++ media/capture/video/linux/video_capture_device_factory_linux.cc
+@@ -14,7 +14,7 @@
+ #include "base/posix/eintr_wrapper.h"
+ #include "build/build_config.h"
+ 
+-#if defined(OS_OPENBSD)
++#if defined(OS_OPENBSD) || defined(OS_NETBSD)
+ #include <sys/videoio.h>
+ #else
+ #include <linux/videodev2.h>
+@@ -53,6 +53,7 @@ static std::list<float> GetFrameRateList
+                                          uint32_t height) {
+   std::list<float> frame_rates;
+ 
++#if !defined(__NetBSD__)
+   v4l2_frmivalenum frame_interval = {};
+   frame_interval.pixel_format = fourcc;
+   frame_interval.width = width;
+@@ -73,6 +74,7 @@ static std::list<float> GetFrameRateList
+       break;
+     }
+   }
++#endif
+   // Some devices, e.g. Kinect, do not enumerate any frame rates, see
+   // http://crbug.com/412284. Set their frame_rate to zero.
+   if (frame_rates.empty())
+@@ -83,6 +85,7 @@ static std::list<float> GetFrameRateList
+ static void GetSupportedFormatsForV4L2BufferType(
+     int fd,
+     media::VideoCaptureFormats* supported_formats) {
++#if !defined(__NetBSD__)
+   v4l2_fmtdesc v4l2_format = {};
+   v4l2_format.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+   for (; HANDLE_EINTR(ioctl(fd, VIDIOC_ENUM_FMT, &v4l2_format)) == 0;
+@@ -118,6 +121,9 @@ static void GetSupportedFormatsForV4L2Bu
+       }
+     }
+   }
++#else
++  NOTIMPLEMENTED();
++#endif
+ }
+ 
+ VideoCaptureDeviceFactoryLinux::VideoCaptureDeviceFactoryLinux(
diff --git a/chromium-new/patches/patch-media_capture_video_linux_video__capture__device__linux.cc b/chromium-new/patches/patch-media_capture_video_linux_video__capture__device__linux.cc
new file mode 100644
index 0000000..9398466
--- /dev/null
+++ b/chromium-new/patches/patch-media_capture_video_linux_video__capture__device__linux.cc
@@ -0,0 +1,88 @@
+$NetBSD$
+
+--- media/capture/video/linux/video_capture_device_linux.cc.orig	2016-06-24 01:02:23.000000000 +0000
++++ media/capture/video/linux/video_capture_device_linux.cc
+@@ -13,7 +13,7 @@
+ #include "build/build_config.h"
+ #include "media/capture/video/linux/v4l2_capture_delegate.h"
+ 
+-#if defined(OS_OPENBSD)
++#if defined(OS_OPENBSD) || defined(OS_NETBSD)
+ #include <sys/videoio.h>
+ #else
+ #include <linux/videodev2.h>
+@@ -44,6 +44,7 @@ static bool ReadIdFile(const std::string
+   return true;
+ }
+ 
++#if !defined(OS_FREEBSD) && !defined(OS_NETBSD)
+ // Translates Video4Linux pixel formats to Chromium pixel formats.
+ // static
+ VideoPixelFormat VideoCaptureDeviceLinux::V4l2FourCcToChromiumPixelFormat(
+@@ -57,6 +58,7 @@ std::list<uint32_t> VideoCaptureDeviceLi
+     bool favour_mjpeg) {
+   return V4L2CaptureDelegate::GetListOfUsableFourCcs(favour_mjpeg);
+ }
++#endif // !defined(OS_FREEBSD) && !defined(OS_NETBSD)
+ 
+ const std::string VideoCaptureDevice::Name::GetModel() const {
+   // |unique_id| is of the form "/dev/video2".  |file_name| is "video2".
+@@ -90,6 +92,7 @@ VideoCaptureDeviceLinux::~VideoCaptureDe
+   v4l2_thread_.Stop();
+ }
+ 
++#if !defined(OS_FREEBSD) && !defined(OS_NETBSD)
+ void VideoCaptureDeviceLinux::AllocateAndStart(
+     const VideoCaptureParams& params,
+     scoped_ptr<VideoCaptureDevice::Client> client) {
+@@ -113,7 +116,13 @@ void VideoCaptureDeviceLinux::AllocateAn
+                  params.requested_format.frame_size.height(),
+                  params.requested_format.frame_rate, base::Passed(&client)));
+ }
++#else // !defined(OS_FREEBSD) && !defined(OS_NETBSD)
++void VideoCaptureDeviceLinux::AllocateAndStart(
++    const VideoCaptureParams& params,
++    scoped_ptr<VideoCaptureDevice::Client> client) {}
++#endif // !defined(OS_FREEBSD) && !defined(OS_NETBSD)
+ 
++#if !defined(OS_FREEBSD) && !defined(OS_NETBSD)
+ void VideoCaptureDeviceLinux::StopAndDeAllocate() {
+   if (!v4l2_thread_.IsRunning())
+     return;  // Wrong state.
+@@ -124,7 +133,11 @@ void VideoCaptureDeviceLinux::StopAndDeA
+ 
+   capture_impl_ = NULL;
+ }
++#else // !defined(OS_FREEBSD) && !defined(OS_NETBSD)
++void VideoCaptureDeviceLinux::StopAndDeAllocate() {}
++#endif // !defined(OS_FREEBSD) && !defined(OS_NETBSD)
+ 
++#if !defined(OS_FREEBSD) && !defined(OS_NETBSD)
+ void VideoCaptureDeviceLinux::SetRotation(int rotation) {
+   if (v4l2_thread_.IsRunning()) {
+     v4l2_thread_.message_loop()->PostTask(
+@@ -132,10 +145,14 @@ void VideoCaptureDeviceLinux::SetRotatio
+         base::Bind(&V4L2CaptureDelegate::SetRotation, capture_impl_, rotation));
+   }
+ }
++#else // !defined(OS_FREEBSD) && !defined(OS_NETBSD)
++void VideoCaptureDeviceLinux::SetRotation(int rotation) {}
++#endif // !defined(OS_FREEBSD)
+ 
+ // static
+ int VideoCaptureDeviceLinux::TranslatePowerLineFrequencyToV4L2(
+     PowerLineFrequency frequency) {
++#if !defined(OS_NETBSD)
+   switch (frequency) {
+     case media::PowerLineFrequency::FREQUENCY_50HZ:
+       return V4L2_CID_POWER_LINE_FREQUENCY_50HZ;
+@@ -145,6 +162,9 @@ int VideoCaptureDeviceLinux::TranslatePo
+       // If we have no idea of the frequency, at least try and set it to AUTO.
+       return V4L2_CID_POWER_LINE_FREQUENCY_AUTO;
+   }
++#else
++  return 0;  
++#endif
+ }
+ 
+ }  // namespace media
diff --git a/chromium-new/patches/patch-media_capture_video_video__capture__device.cc b/chromium-new/patches/patch-media_capture_video_video__capture__device.cc
new file mode 100644
index 0000000..7d48dbe
--- /dev/null
+++ b/chromium-new/patches/patch-media_capture_video_video__capture__device.cc
@@ -0,0 +1,33 @@
+$NetBSD$
+
+--- media/capture/video/video_capture_device.cc.orig	2016-06-24 01:02:23.000000000 +0000
++++ media/capture/video/video_capture_device.cc
+@@ -13,6 +13,10 @@
+ 
+ namespace media {
+ 
++const std::string VideoCaptureDevice::Name::GetModel() const {
++  return "";
++}
++
+ // TODO(msu.koo): http://crbug.com/532272, remove checking the switch in favour
+ // of deferring GetModel() call to the actual VideoCaptureDevice object.
+ const std::string VideoCaptureDevice::Name::GetNameAndModel() const {
+@@ -35,7 +39,7 @@ VideoCaptureDevice::Name::Name(const std
+     : device_name_(name), unique_id_(id) {
+ }
+ 
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_BSD)
+ VideoCaptureDevice::Name::Name(const std::string& name,
+                                const std::string& id,
+                                const CaptureApiType api_type)
+@@ -78,7 +82,7 @@ VideoCaptureDevice::Name::Name(const std
+ VideoCaptureDevice::Name::~Name() {
+ }
+ 
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_BSD)
+ const char* VideoCaptureDevice::Name::GetCaptureApiTypeString() const {
+   switch (capture_api_type()) {
+     case V4L2_SINGLE_PLANE:
diff --git a/chromium-new/patches/patch-media_capture_video_video__capture__device.h b/chromium-new/patches/patch-media_capture_video_video__capture__device.h
new file mode 100644
index 0000000..c0b073c
--- /dev/null
+++ b/chromium-new/patches/patch-media_capture_video_video__capture__device.h
@@ -0,0 +1,40 @@
+$NetBSD$
+
+--- media/capture/video/video_capture_device.h.orig	2016-06-24 01:02:23.000000000 +0000
++++ media/capture/video/video_capture_device.h
+@@ -51,7 +51,7 @@ class MEDIA_EXPORT VideoCaptureDevice {
+     Name();
+     Name(const std::string& name, const std::string& id);
+ 
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_BSD)
+     // Linux/CrOS targets Capture Api type: it can only be set on construction.
+     enum CaptureApiType {
+       V4L2_SINGLE_PLANE,
+@@ -82,7 +82,7 @@ class MEDIA_EXPORT VideoCaptureDevice {
+ #endif
+ 
+ #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
+-    defined(OS_ANDROID)
++    defined(OS_ANDROID) || defined(OS_BSD)
+     Name(const std::string& name,
+          const std::string& id,
+          const CaptureApiType api_type);
+@@ -119,7 +119,7 @@ class MEDIA_EXPORT VideoCaptureDevice {
+     bool operator<(const Name& other) const { return unique_id_ < other.id(); }
+ 
+ #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
+-    defined(OS_ANDROID)
++    defined(OS_ANDROID) || defined(OS_BSD)
+     CaptureApiType capture_api_type() const {
+       return capture_api_class_.capture_api_type();
+     }
+@@ -139,7 +139,7 @@ class MEDIA_EXPORT VideoCaptureDevice {
+     std::string device_name_;
+     std::string unique_id_;
+ #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
+-    defined(OS_ANDROID)
++    defined(OS_ANDROID) || defined(OS_BSD)
+     // This class wraps the CaptureApiType to give it a by default value if not
+     // initialized.
+     class CaptureApiClass {
diff --git a/chromium-new/patches/patch-media_capture_video_video__capture__device__factory.cc b/chromium-new/patches/patch-media_capture_video_video__capture__device__factory.cc
new file mode 100644
index 0000000..e810cbd
--- /dev/null
+++ b/chromium-new/patches/patch-media_capture_video_video__capture__device__factory.cc
@@ -0,0 +1,23 @@
+$NetBSD$
+
+--- media/capture/video/video_capture_device_factory.cc.orig	2016-06-24 01:02:23.000000000 +0000
++++ media/capture/video/video_capture_device_factory.cc
+@@ -17,6 +17,10 @@ namespace media {
+ // static
+ scoped_ptr<VideoCaptureDeviceFactory> VideoCaptureDeviceFactory::CreateFactory(
+     scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner) {
++#if defined(OS_BSD)
++  return scoped_ptr<VideoCaptureDeviceFactory>(new
++      media::FakeVideoCaptureDeviceFactory());
++#else
+   const base::CommandLine* command_line =
+       base::CommandLine::ForCurrentProcess();
+   // Use a Fake or File Video Device Factory if the command line flags are
+@@ -35,6 +39,7 @@ scoped_ptr<VideoCaptureDeviceFactory> Vi
+     return scoped_ptr<VideoCaptureDeviceFactory>(
+         CreateVideoCaptureDeviceFactory(ui_task_runner));
+   }
++#endif
+ }
+ 
+ VideoCaptureDeviceFactory::VideoCaptureDeviceFactory() {
diff --git a/chromium-new/patches/patch-media_capture_video_video_capture_device_cc b/chromium-new/patches/patch-media_capture_video_video_capture_device_cc
deleted file mode 100644
index b4f4006..0000000
--- a/chromium-new/patches/patch-media_capture_video_video_capture_device_cc
+++ /dev/null
@@ -1,30 +0,0 @@
-$OpenBSD: patch-media_capture_video_video_capture_device_cc,v 1.2 2015/12/05 16:13:32 robert Exp $
---- media/capture/video/video_capture_device.cc.orig.port	Wed Dec  2 13:48:28 2015
-+++ media/capture/video/video_capture_device.cc	Thu Dec  3 08:22:15 2015
-@@ -14,16 +14,7 @@ namespace media {
- // TODO(msu.koo): http://crbug.com/532272, remove checking the switch in favour
- // of deferring GetModel() call to the actual VideoCaptureDevice object.
- const std::string VideoCaptureDevice::Name::GetNameAndModel() const {
--  const std::string model_id = GetModel();
--  if (model_id.empty())
--    return device_name_;
--  const std::string suffix = " (" + model_id + ")";
--  if (base::EndsWith(device_name_, suffix, base::CompareCase::SENSITIVE) ||
--      base::CommandLine::ForCurrentProcess()->HasSwitch(
--          switches::kUseFakeDeviceForMediaStream))
--    // Ignore |model_id| if |kUseFakeDeviceForMediaStream| flag is present.
--    return device_name_;
--  return device_name_ + suffix;
-+  return "";
- }
- 
- VideoCaptureDevice::Name::Name() {
-@@ -33,7 +24,7 @@ VideoCaptureDevice::Name::Name(const std::string& name
-     : device_name_(name), unique_id_(id) {
- }
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- VideoCaptureDevice::Name::Name(const std::string& name,
-                                const std::string& id,
-                                const CaptureApiType api_type)
diff --git a/chromium-new/patches/patch-media_capture_video_video_capture_device_factory_cc b/chromium-new/patches/patch-media_capture_video_video_capture_device_factory_cc
deleted file mode 100644
index beefb91..0000000
--- a/chromium-new/patches/patch-media_capture_video_video_capture_device_factory_cc
+++ /dev/null
@@ -1,22 +0,0 @@
-$OpenBSD: patch-media_capture_video_video_capture_device_factory_cc,v 1.1 2015/10/14 16:42:07 robert Exp $
---- media/capture/video/video_capture_device_factory.cc.orig.port	Wed Oct 14 07:53:56 2015
-+++ media/capture/video/video_capture_device_factory.cc	Wed Oct 14 07:54:20 2015
-@@ -14,6 +14,10 @@ namespace media {
- // static
- scoped_ptr<VideoCaptureDeviceFactory> VideoCaptureDeviceFactory::CreateFactory(
-     scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner) {
-+#if defined(OS_BSD)
-+  return scoped_ptr<VideoCaptureDeviceFactory>(new
-+      media::FakeVideoCaptureDeviceFactory());
-+#else
-   const base::CommandLine* command_line =
-       base::CommandLine::ForCurrentProcess();
-   // Use a Fake or File Video Device Factory if the command line flags are
-@@ -32,6 +36,7 @@ scoped_ptr<VideoCaptureDeviceFactory> VideoCaptureDevi
-     return scoped_ptr<VideoCaptureDeviceFactory>(
-         CreateVideoCaptureDeviceFactory(ui_task_runner));
-   }
-+#endif
- }
- 
- VideoCaptureDeviceFactory::VideoCaptureDeviceFactory() {
diff --git a/chromium-new/patches/patch-media_capture_video_video_capture_device_h b/chromium-new/patches/patch-media_capture_video_video_capture_device_h
deleted file mode 100644
index 4543e04..0000000
--- a/chromium-new/patches/patch-media_capture_video_video_capture_device_h
+++ /dev/null
@@ -1,39 +0,0 @@
-$OpenBSD: patch-media_capture_video_video_capture_device_h,v 1.2 2016/01/23 18:49:31 robert Exp $
---- media/capture/video/video_capture_device.h.orig.port	Wed Jan 20 21:01:22 2016
-+++ media/capture/video/video_capture_device.h	Fri Jan 22 19:58:58 2016
-@@ -47,7 +47,7 @@ class MEDIA_EXPORT VideoCaptureDevice {
-     Name();
-     Name(const std::string& name, const std::string& id);
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-     // Linux/CrOS targets Capture Api type: it can only be set on construction.
-     enum CaptureApiType {
-       V4L2_SINGLE_PLANE,
-@@ -79,7 +79,7 @@ class MEDIA_EXPORT VideoCaptureDevice {
- #endif
- 
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
--    defined(OS_ANDROID)
-+    defined(OS_ANDROID) || defined(OS_BSD)
-     Name(const std::string& name,
-          const std::string& id,
-          const CaptureApiType api_type);
-@@ -116,7 +116,7 @@ class MEDIA_EXPORT VideoCaptureDevice {
-     bool operator<(const Name& other) const { return unique_id_ < other.id(); }
- 
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
--    defined(OS_ANDROID)
-+    defined(OS_ANDROID) || defined(OS_BSD)
-     CaptureApiType capture_api_type() const {
-       return capture_api_class_.capture_api_type();
-     }
-@@ -140,7 +140,7 @@ class MEDIA_EXPORT VideoCaptureDevice {
-     std::string device_name_;
-     std::string unique_id_;
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
--    defined(OS_ANDROID)
-+    defined(OS_ANDROID) || defined(OS_BSD)
-     // This class wraps the CaptureApiType to give it a by default value if not
-     // initialized.
-     class CaptureApiClass {
diff --git a/chromium-new/patches/patch-media_filters_audio__clock.cc b/chromium-new/patches/patch-media_filters_audio__clock.cc
new file mode 100644
index 0000000..09669db
--- /dev/null
+++ b/chromium-new/patches/patch-media_filters_audio__clock.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- media/filters/audio_clock.cc.orig	2016-06-24 01:02:23.000000000 +0000
++++ media/filters/audio_clock.cc
+@@ -121,7 +121,7 @@ base::TimeDelta AudioClock::TimeUntilPla
+   }
+ 
+   return base::TimeDelta::FromMicroseconds(
+-      std::round(frames_until_timestamp * microseconds_per_frame_));
++      round(frames_until_timestamp * microseconds_per_frame_));
+ }
+ 
+ void AudioClock::ContiguousAudioDataBufferedForTesting(
diff --git a/chromium-new/patches/patch-media_filters_audio__clock.h b/chromium-new/patches/patch-media_filters_audio__clock.h
new file mode 100644
index 0000000..c2f533f
--- /dev/null
+++ b/chromium-new/patches/patch-media_filters_audio__clock.h
@@ -0,0 +1,18 @@
+$NetBSD$
+
+--- media/filters/audio_clock.h.orig	2016-06-24 01:02:23.000000000 +0000
++++ media/filters/audio_clock.h
+@@ -92,11 +92,11 @@ class MEDIA_EXPORT AudioClock {
+   //                                             1000 + 500 + 250 = 1750 ms.
+   base::TimeDelta front_timestamp() const {
+     return base::TimeDelta::FromMicroseconds(
+-        std::round(front_timestamp_micros_));
++        round(front_timestamp_micros_));
+   }
+   base::TimeDelta back_timestamp() const {
+     return base::TimeDelta::FromMicroseconds(
+-        std::round(back_timestamp_micros_));
++        round(back_timestamp_micros_));
+   }
+ 
+   // Returns the amount of wall time until |timestamp| will be played by the
diff --git a/chromium-new/patches/patch-media_filters_decrypting__audio__decoder.cc b/chromium-new/patches/patch-media_filters_decrypting__audio__decoder.cc
new file mode 100644
index 0000000..11c7a70
--- /dev/null
+++ b/chromium-new/patches/patch-media_filters_decrypting__audio__decoder.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- media/filters/decrypting_audio_decoder.cc.orig	2016-06-24 01:02:23.000000000 +0000
++++ media/filters/decrypting_audio_decoder.cc
+@@ -29,7 +29,7 @@ static inline bool IsOutOfSync(const bas
+   // Out of sync of 100ms would be pretty noticeable and we should keep any
+   // drift below that.
+   const int64_t kOutOfSyncThresholdInMilliseconds = 100;
+-  return std::abs(timestamp_1.InMilliseconds() - timestamp_2.InMilliseconds()) >
++  return std::labs(timestamp_1.InMilliseconds() - timestamp_2.InMilliseconds()) >
+          kOutOfSyncThresholdInMilliseconds;
+ }
+ 
diff --git a/chromium-new/patches/patch-media_filters_file__data__source.h b/chromium-new/patches/patch-media_filters_file__data__source.h
new file mode 100644
index 0000000..df4eb21
--- /dev/null
+++ b/chromium-new/patches/patch-media_filters_file__data__source.h
@@ -0,0 +1,12 @@
+$NetBSD$
+
+--- media/filters/file_data_source.h.orig	2016-06-24 01:02:23.000000000 +0000
++++ media/filters/file_data_source.h
+@@ -7,6 +7,7 @@
+ 
+ #include <stdint.h>
+ 
++#include <cstdio>
+ #include <string>
+ 
+ #include "base/files/file.h"
diff --git a/chromium-new/patches/patch-media_filters_vp9__parser.h b/chromium-new/patches/patch-media_filters_vp9__parser.h
new file mode 100644
index 0000000..24bd705
--- /dev/null
+++ b/chromium-new/patches/patch-media_filters_vp9__parser.h
@@ -0,0 +1,12 @@
+$NetBSD$
+
+--- media/filters/vp9_parser.h.orig	2016-06-24 01:02:23.000000000 +0000
++++ media/filters/vp9_parser.h
+@@ -14,6 +14,7 @@
+ 
+ #include <stddef.h>
+ #include <stdint.h>
++#include <unistd.h>
+ #include <sys/types.h>
+ 
+ #include <deque>
diff --git a/chromium-new/patches/patch-media_formats_common_offset__byte__queue.cc b/chromium-new/patches/patch-media_formats_common_offset__byte__queue.cc
new file mode 100644
index 0000000..353f67a
--- /dev/null
+++ b/chromium-new/patches/patch-media_formats_common_offset__byte__queue.cc
@@ -0,0 +1,22 @@
+$NetBSD$
+
+--- media/formats/common/offset_byte_queue.cc.orig	2016-06-24 01:02:23.000000000 +0000
++++ media/formats/common/offset_byte_queue.cc
+@@ -46,13 +46,13 @@ void OffsetByteQueue::PeekAt(int64_t off
+   *size = tail() - offset;
+ }
+ 
+-bool OffsetByteQueue::Trim(int64_t max_offset) {
+-  if (max_offset < head_) return true;
+-  if (max_offset > tail()) {
++bool OffsetByteQueue::Trim(int64_t _max_offset) {
++  if (_max_offset < head_) return true;
++  if (_max_offset > tail()) {
+     Pop(size_);
+     return false;
+   }
+-  Pop(max_offset - head_);
++  Pop(_max_offset - head_);
+   return true;
+ }
+ 
diff --git a/chromium-new/patches/patch-media_formats_common_offset__byte__queue.h b/chromium-new/patches/patch-media_formats_common_offset__byte__queue.h
new file mode 100644
index 0000000..267db08
--- /dev/null
+++ b/chromium-new/patches/patch-media_formats_common_offset__byte__queue.h
@@ -0,0 +1,24 @@
+$NetBSD$
+
+--- media/formats/common/offset_byte_queue.h.orig	2016-06-24 01:02:23.000000000 +0000
++++ media/formats/common/offset_byte_queue.h
+@@ -36,15 +36,15 @@ class MEDIA_EXPORT OffsetByteQueue {
+   // a null |buf| and a |size| of zero.
+   void PeekAt(int64_t offset, const uint8_t** buf, int* size);
+ 
+-  // Marks the bytes up to (but not including) |max_offset| as ready for
++  // Marks the bytes up to (but not including) |_max_offset| as ready for
+   // deletion. This is relatively inexpensive, but will not necessarily reduce
+   // the resident buffer size right away (or ever).
+   //
+   // Returns true if the full range of bytes were successfully trimmed,
+-  // including the case where |max_offset| is less than the current head.
+-  // Returns false if |max_offset| > tail() (although all bytes currently
++  // including the case where |_max_offset| is less than the current head.
++  // Returns false if |_max_offset| > tail() (although all bytes currently
+   // buffered are still cleared).
+-  bool Trim(int64_t max_offset);
++  bool Trim(int64_t _max_offset);
+ 
+   // The head and tail positions, in terms of the file's absolute offsets.
+   // tail() is an exclusive bound.
diff --git a/chromium-new/patches/patch-media_formats_mp2t_es__parser__adts.cc b/chromium-new/patches/patch-media_formats_mp2t_es__parser__adts.cc
new file mode 100644
index 0000000..54541f8
--- /dev/null
+++ b/chromium-new/patches/patch-media_formats_mp2t_es__parser__adts.cc
@@ -0,0 +1,28 @@
+$NetBSD$
+
+--- media/formats/mp2t/es_parser_adts.cc.orig	2016-06-24 01:02:23.000000000 +0000
++++ media/formats/mp2t/es_parser_adts.cc
+@@ -54,11 +54,11 @@ bool EsParserAdts::LookForAdtsFrame(Adts
+   const uint8_t* es;
+   es_queue_->Peek(&es, &es_size);
+ 
+-  int max_offset = es_size - kADTSHeaderMinSize;
+-  if (max_offset <= 0)
++  int _max_offset = es_size - kADTSHeaderMinSize;
++  if (_max_offset <= 0)
+     return false;
+ 
+-  for (int offset = 0; offset < max_offset; offset++) {
++  for (int offset = 0; offset < _max_offset; offset++) {
+     const uint8_t* cur_buf = &es[offset];
+     if (!isAdtsSyncWord(cur_buf))
+       continue;
+@@ -96,7 +96,7 @@ bool EsParserAdts::LookForAdtsFrame(Adts
+     return true;
+   }
+ 
+-  es_queue_->Pop(max_offset);
++  es_queue_->Pop(_max_offset);
+   return false;
+ }
+ 
diff --git a/chromium-new/patches/patch-media_formats_mp2t_es__parser__mpeg1audio.cc b/chromium-new/patches/patch-media_formats_mp2t_es__parser__mpeg1audio.cc
new file mode 100644
index 0000000..4ae409a
--- /dev/null
+++ b/chromium-new/patches/patch-media_formats_mp2t_es__parser__mpeg1audio.cc
@@ -0,0 +1,28 @@
+$NetBSD$
+
+--- media/formats/mp2t/es_parser_mpeg1audio.cc.orig	2016-06-24 01:02:23.000000000 +0000
++++ media/formats/mp2t/es_parser_mpeg1audio.cc
+@@ -111,11 +111,11 @@ bool EsParserMpeg1Audio::LookForMpeg1Aud
+   const uint8_t* es;
+   es_queue_->Peek(&es, &es_size);
+ 
+-  int max_offset = es_size - MPEG1AudioStreamParser::kHeaderSize;
+-  if (max_offset <= 0)
++  int _max_offset = es_size - MPEG1AudioStreamParser::kHeaderSize;
++  if (_max_offset <= 0)
+     return false;
+ 
+-  for (int offset = 0; offset < max_offset; offset++) {
++  for (int offset = 0; offset < _max_offset; offset++) {
+     const uint8_t* cur_buf = &es[offset];
+     if (cur_buf[0] != 0xff)
+       continue;
+@@ -156,7 +156,7 @@ bool EsParserMpeg1Audio::LookForMpeg1Aud
+     return true;
+   }
+ 
+-  es_queue_->Pop(max_offset);
++  es_queue_->Pop(_max_offset);
+   return false;
+ }
+ 
diff --git a/chromium-new/patches/patch-media_media.gyp b/chromium-new/patches/patch-media_media.gyp
new file mode 100644
index 0000000..cf423aa
--- /dev/null
+++ b/chromium-new/patches/patch-media_media.gyp
@@ -0,0 +1,28 @@
+$NetBSD$
+
+--- media/media.gyp.orig	2016-06-24 01:02:23.000000000 +0000
++++ media/media.gyp
+@@ -760,7 +760,13 @@
+             ['exclude', '_alsa\\.(h|cc)$'],
+           ],
+         }],
+-        ['OS=="linux"', {
++	['OS=="freebsd"', {
++	  'sources!': [
++	    'capture/video/linux/v4l2_capture_delegate.cc',
++	    'capture/video/linux/video_capture_device_factory_linux.cc',
++	  ],
++	}],
++        ['OS=="linux" or os_bsd==1', {
+           'conditions': [
+             ['use_x11==1', {
+               'dependencies': [
+@@ -1059,7 +1065,7 @@
+             'base/simd/filter_yuv_sse2.cc',
+           ],
+         }],
+-        ['OS!="linux" and OS!="win"', {
++        ['OS!="linux" and OS!="win" and os_bsd!=1', {
+           'sources!': [
+             'base/keyboard_event_counter.cc',
+             'base/keyboard_event_counter.h',
diff --git a/chromium-new/patches/patch-media_media_gyp b/chromium-new/patches/patch-media_media_gyp
deleted file mode 100644
index 04bca97..0000000
--- a/chromium-new/patches/patch-media_media_gyp
+++ /dev/null
@@ -1,71 +0,0 @@
-$OpenBSD: patch-media_media_gyp,v 1.41 2016/01/23 18:49:31 robert Exp $
---- media/media.gyp.orig.port	Wed Jan 20 21:01:22 2016
-+++ media/media.gyp	Fri Jan 22 19:58:58 2016
-@@ -13,7 +13,7 @@
-     'linux_link_pulseaudio%': 0,
-     'conditions': [
-       # Enable ALSA and Pulse for runtime selection.
--      ['(OS=="linux" or OS=="freebsd" or OS=="solaris") and (embedded!=1 or (chromecast==1 and target_arch!="arm"))', {
-+      ['(OS=="linux" or OS=="freebsd" or OS=="solaris") and (embedded!=1 or (chromecast==1 and target_arch!="arm")) and os_bsd != 1', {
-         # ALSA is always needed for Web MIDI even if the cras is enabled.
-         'use_alsa%': 1,
-         'conditions': [
-@@ -161,6 +165,8 @@
-         'audio/mac/audio_manager_mac.h',
-         'audio/null_audio_sink.cc',
-         'audio/null_audio_sink.h',
-+        'audio/openbsd/audio_manager_openbsd.cc',
-+        'audio/openbsd/audio_manager_openbsd.h',
-         'audio/pulse/audio_manager_pulse.cc',
-         'audio/pulse/audio_manager_pulse.h',
-         'audio/pulse/pulse_input.cc',
-@@ -787,11 +813,21 @@
-         }],
-         ['OS=="openbsd"', {
-           'sources!': [
-+            'capture/video/linux/v4l2_capture_delegate.cc',
-+            'capture/video/linux/v4l2_capture_delegate.h',
-             'capture/video/linux/v4l2_capture_delegate_multi_plane.cc',
-             'capture/video/linux/v4l2_capture_delegate_multi_plane.h',
-+            'capture/video/linux/v4l2_capture_delegate_single_plane.cc',
-+            'capture/video/linux/v4l2_capture_delegate_single_plane.h',
-+            'capture/video/linux/video_capture_device_chromeos.cc',
-+            'capture/video/linux/video_capture_device_chromeos.h',
-+            'capture/video/linux/video_capture_device_factory_linux.cc',
-+            'capture/video/linux/video_capture_device_factory_linux.h',
-+            'capture/video/linux/video_capture_device_linux.cc',
-+            'capture/video/linux/video_capture_device_linux.h',
-           ],
-         }],
--        ['OS=="linux"', {
-+        ['OS=="linux" or os_bsd==1', {
-           'conditions': [
-             ['use_x11==1', {
-               'dependencies': [
-@@ -885,7 +921,7 @@
-             'ozone/media_ozone_platform.h',
-           ]
-         }],
--        ['OS!="linux"', {
-+        ['OS!="linux" and os_bsd!=1', {
-           'sources!': [
-             'audio/cras/audio_manager_cras.cc',
-             'audio/cras/audio_manager_cras.h',
-@@ -1127,7 +1163,7 @@
-             'base/simd/filter_yuv_sse2.cc',
-           ],
-         }],
--        ['OS!="linux" and OS!="win"', {
-+        ['(OS!="linux" and os_bsd!=1) and OS!="win"', {
-           'sources!': [
-             'base/keyboard_event_counter.cc',
-             'base/keyboard_event_counter.h',
-@@ -1992,7 +2028,7 @@
-             'test/pipeline_integration_test_base.cc',
-           ],
-           'conditions': [
--            ['os_posix==1 and OS!="mac"', {
-+            ['os_posix==1 and OS!="mac" and os_bsd!=1', {
-               'conditions': [
-                 ['use_allocator!="none"', {
-                   'dependencies': [
diff --git a/chromium-new/patches/patch-mojo_shell_public_cpp_initialize__base__and__icu.cc b/chromium-new/patches/patch-mojo_shell_public_cpp_initialize__base__and__icu.cc
new file mode 100644
index 0000000..f60e7eb
--- /dev/null
+++ b/chromium-new/patches/patch-mojo_shell_public_cpp_initialize__base__and__icu.cc
@@ -0,0 +1,18 @@
+$NetBSD$
+
+--- mojo/shell/public/cpp/initialize_base_and_icu.cc.orig	2016-06-24 01:02:24.000000000 +0000
++++ mojo/shell/public/cpp/initialize_base_and_icu.cc
+@@ -34,11 +34,13 @@ InitializeBase(const uint8_t* icu_data) 
+   base::SysInfo::MaxSharedMemorySize();
+ #endif
+ 
++#if !defined(OS_FREEBSD) 
+   // Initialize core ICU. We must perform the full initialization before we
+   // initialize icu::TimeZone subsystem because otherwise ICU gets in a state
+   // where the timezone data is disconnected from the locale data which can
+   // cause crashes.
+   CHECK(base::i18n::InitializeICUFromRawMemory(icu_data));
++#endif
+ 
+ #if !defined(OS_ANDROID)
+   // ICU DateFormat class (used in base/time_format.cc) needs to get the
diff --git a/chromium-new/patches/patch-mojo_shell_runner_init.cc b/chromium-new/patches/patch-mojo_shell_runner_init.cc
new file mode 100644
index 0000000..f68cf35
--- /dev/null
+++ b/chromium-new/patches/patch-mojo_shell_runner_init.cc
@@ -0,0 +1,21 @@
+$NetBSD$
+
+--- mojo/shell/runner/init.cc.orig	2016-06-24 01:02:24.000000000 +0000
++++ mojo/shell/runner/init.cc
+@@ -68,6 +68,8 @@ void WaitForDebuggerIfNecessary() {
+ 
+ void CallLibraryEarlyInitialization(base::NativeLibrary app_library) {
+   // Do whatever warming that the mojo application wants.
++
++#if !defined(OS_FREEBSD) 
+   typedef void (*LibraryEarlyInitFunction)(const uint8_t*);
+   LibraryEarlyInitFunction init_function =
+       reinterpret_cast<LibraryEarlyInitFunction>(
+@@ -79,6 +81,7 @@ void CallLibraryEarlyInitialization(base
+     const uint8_t* icu_data = base::i18n::GetRawIcuMemory();
+     init_function(icu_data);
+   }
++#endif
+ 
+   // TODO(erg): All chromium binaries load base. We might want to make a
+   // general system for other people.
diff --git a/chromium-new/patches/patch-native__client_build_common.gypi b/chromium-new/patches/patch-native__client_build_common.gypi
new file mode 100644
index 0000000..1d7e00f
--- /dev/null
+++ b/chromium-new/patches/patch-native__client_build_common.gypi
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- native_client/build/common.gypi.orig	2016-06-24 01:03:25.000000000 +0000
++++ native_client/build/common.gypi
+@@ -58,7 +58,7 @@
+     ],
+   },
+   'conditions': [
+-    ['OS=="linux" or OS=="android"', {
++    ['OS=="linux" or OS=="android" or OS=="freebsd"', {
+       'target_defaults': {
+         'defines': [
+           '_POSIX_C_SOURCE=199506',
diff --git a/chromium-new/patches/patch-native__client_src_shared_platform_platform.gyp b/chromium-new/patches/patch-native__client_src_shared_platform_platform.gyp
new file mode 100644
index 0000000..0fd52e6
--- /dev/null
+++ b/chromium-new/patches/patch-native__client_src_shared_platform_platform.gyp
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- native_client/src/shared/platform/platform.gyp.orig	2016-06-24 01:03:26.000000000 +0000
++++ native_client/src/shared/platform/platform.gyp
+@@ -36,7 +36,7 @@
+       'refcount_base.cc',
+     ],
+     'conditions': [
+-      ['OS=="linux" or OS=="android"', {
++      ['OS=="linux" or OS=="android" or OS=="freebsd"', {
+         'platform_sources': [
+           'linux/nacl_clock.c',
+           'linux/nacl_host_dir.c',
diff --git a/chromium-new/patches/patch-native_client_build_compiler_version_py b/chromium-new/patches/patch-native_client_build_compiler_version_py
deleted file mode 100644
index c70d5fb..0000000
--- a/chromium-new/patches/patch-native_client_build_compiler_version_py
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-native_client_build_compiler_version_py,v 1.1 2014/10/13 06:49:19 robert Exp $
---- native_client/build/compiler_version.py.orig.port	Sat Oct 11 11:50:40 2014
-+++ native_client/build/compiler_version.py	Sat Oct 11 11:50:50 2014
-@@ -62,7 +62,7 @@ def GetVersion(compiler, tool):
-       # Unmodified: GNU assembler (GNU Binutils) 2.24
-       # Ubuntu: GNU assembler (GNU Binutils for Ubuntu) 2.22
-       # Fedora: GNU assembler version 2.23.2
--      version_re = re.compile(r"^GNU [^ ]+ .* (\d+).(\d+).*?$", re.M)
-+      version_re = re.compile(r"^GNU assembler (\d+).(\d+)")
-     elif tool == "linker":
-       compiler = compiler + " -Xlinker --version"
-       # Using BFD linker
diff --git a/chromium-new/patches/patch-net_base_address__tracker__linux.cc b/chromium-new/patches/patch-net_base_address__tracker__linux.cc
new file mode 100644
index 0000000..d42d8a2
--- /dev/null
+++ b/chromium-new/patches/patch-net_base_address__tracker__linux.cc
@@ -0,0 +1,96 @@
+$NetBSD$
+
+--- net/base/address_tracker_linux.cc.orig	2016-06-24 01:02:25.000000000 +0000
++++ net/base/address_tracker_linux.cc
+@@ -5,7 +5,9 @@
+ #include "net/base/address_tracker_linux.h"
+ 
+ #include <errno.h>
++#if !defined(OS_FREEBSD) && !defined(OS_NETBSD)
+ #include <linux/if.h>
++#endif
+ #include <stdint.h>
+ #include <sys/ioctl.h>
+ 
+@@ -39,6 +41,7 @@ bool IgnoreWirelessChange(const struct n
+ bool GetAddress(const struct nlmsghdr* header,
+                 IPAddress* out,
+                 bool* really_deprecated) {
++#if !defined(OS_FREEBSD) && !defined(OS_NETBSD)
+   if (really_deprecated)
+     *really_deprecated = false;
+   const struct ifaddrmsg* msg =
+@@ -91,6 +94,9 @@ bool GetAddress(const struct nlmsghdr* h
+     return false;
+   *out = IPAddress(address, address_length);
+   return true;
++#else
++  return false;
++#endif
+ }
+ 
+ }  // namespace
+@@ -148,6 +154,7 @@ AddressTrackerLinux::~AddressTrackerLinu
+ }
+ 
+ void AddressTrackerLinux::Init() {
++#if !defined(OS_FREEBSD) && !defined(OS_NETBSD)
+   netlink_fd_ = socket(AF_NETLINK, SOCK_RAW, NETLINK_ROUTE);
+   if (netlink_fd_ < 0) {
+     PLOG(ERROR) << "Could not create NETLINK socket";
+@@ -235,6 +242,10 @@ void AddressTrackerLinux::Init() {
+       return;
+     }
+   }
++#else
++  AbortAndForceOnline();
++  return;
++#endif
+ }
+ 
+ void AddressTrackerLinux::AbortAndForceOnline() {
+@@ -281,6 +292,7 @@ AddressTrackerLinux::GetCurrentConnectio
+ void AddressTrackerLinux::ReadMessages(bool* address_changed,
+                                        bool* link_changed,
+                                        bool* tunnel_changed) {
++#if !defined(OS_FREEBSD) && !defined(OS_NETBSD)
+   *address_changed = false;
+   *link_changed = false;
+   *tunnel_changed = false;
+@@ -307,6 +319,7 @@ void AddressTrackerLinux::ReadMessages(b
+   }
+   if (*link_changed || *address_changed)
+     UpdateCurrentConnectionType();
++#endif
+ }
+ 
+ void AddressTrackerLinux::HandleMessage(char* buffer,
+@@ -314,6 +327,7 @@ void AddressTrackerLinux::HandleMessage(
+                                         bool* address_changed,
+                                         bool* link_changed,
+                                         bool* tunnel_changed) {
++#if !defined(OS_FREEBSD) && !defined(OS_NETBSD)
+   DCHECK(buffer);
+   for (struct nlmsghdr* header = reinterpret_cast<struct nlmsghdr*>(buffer);
+        NLMSG_OK(header, length);
+@@ -410,6 +424,7 @@ void AddressTrackerLinux::HandleMessage(
+         break;
+     }
+   }
++#endif
+ }
+ 
+ void AddressTrackerLinux::OnFileCanReadWithoutBlocking(int fd) {
+@@ -436,8 +451,12 @@ void AddressTrackerLinux::CloseSocket() 
+ 
+ bool AddressTrackerLinux::IsTunnelInterface(int interface_index) const {
+   // Linux kernel drivers/net/tun.c uses "tun" name prefix.
++#if !defined(OS_FREEBSD) && !defined(OS_NETBSD)
+   char buf[IFNAMSIZ] = {0};
+   return strncmp(get_interface_name_(interface_index, buf), "tun", 3) == 0;
++#else
++  return false;
++#endif
+ }
+ 
+ void AddressTrackerLinux::UpdateCurrentConnectionType() {
diff --git a/chromium-new/patches/patch-net_base_address__tracker__linux.h b/chromium-new/patches/patch-net_base_address__tracker__linux.h
new file mode 100644
index 0000000..2b78d03
--- /dev/null
+++ b/chromium-new/patches/patch-net_base_address__tracker__linux.h
@@ -0,0 +1,30 @@
+$NetBSD$
+
+--- net/base/address_tracker_linux.h.orig	2016-06-24 01:02:25.000000000 +0000
++++ net/base/address_tracker_linux.h
+@@ -6,10 +6,12 @@
+ #define NET_BASE_ADDRESS_TRACKER_LINUX_H_
+ 
+ #include <sys/socket.h>  // Needed to include netlink.
++#if !defined(OS_FREEBSD) && !defined(OS_NETBSD)
+ // Mask superfluous definition of |struct net|. This is fixed in Linux 2.6.38.
+ #define net net_kernel
+ #include <linux/rtnetlink.h>
+ #undef net
++#endif
+ #include <stddef.h>
+ 
+ #include <map>
+@@ -33,8 +35,11 @@ namespace internal {
+ class NET_EXPORT_PRIVATE AddressTrackerLinux :
+     public base::MessageLoopForIO::Watcher {
+  public:
++#if !defined(OS_FREEBSD) && !defined(OS_NETBSD)
+   typedef std::map<IPAddress, struct ifaddrmsg> AddressMap;
+-
++#else
++  typedef void* AddressMap;
++#endif
+   // Non-tracking version constructor: it takes a snapshot of the
+   // current system configuration. Once Init() returns, the
+   // configuration is available through GetOnlineLinks() and
diff --git a/chromium-new/patches/patch-net_base_address__tracker__linux__unittest.cc b/chromium-new/patches/patch-net_base_address__tracker__linux__unittest.cc
new file mode 100644
index 0000000..aba147f
--- /dev/null
+++ b/chromium-new/patches/patch-net_base_address__tracker__linux__unittest.cc
@@ -0,0 +1,16 @@
+$NetBSD$
+
+--- net/base/address_tracker_linux_unittest.cc.orig	2016-06-24 01:02:25.000000000 +0000
++++ net/base/address_tracker_linux_unittest.cc
+@@ -13,7 +13,11 @@
+ #include "net/base/ip_address.h"
+ #include "testing/gtest/include/gtest/gtest.h"
+ 
++#if defined(__linux__)
+ #include <linux/if.h>
++#else
++#include <net/if.h>
++#endif
+ 
+ #ifndef IFA_F_HOMEADDRESS
+ #define IFA_F_HOMEADDRESS 0x10
diff --git a/chromium-new/patches/patch-net_base_address_tracker_linux_h b/chromium-new/patches/patch-net_base_address_tracker_linux_h
deleted file mode 100644
index de0128a..0000000
--- a/chromium-new/patches/patch-net_base_address_tracker_linux_h
+++ /dev/null
@@ -1,13 +0,0 @@
-$OpenBSD: patch-net_base_address_tracker_linux_h,v 1.1 2015/01/22 11:16:41 robert Exp $
---- net/base/address_tracker_linux.h.orig.port	Sat Dec  6 13:01:29 2014
-+++ net/base/address_tracker_linux.h	Sat Dec  6 13:01:41 2014
-@@ -7,9 +7,6 @@
- 
- #include <sys/socket.h>  // Needed to include netlink.
- // Mask superfluous definition of |struct net|. This is fixed in Linux 2.6.38.
--#define net net_kernel
--#include <linux/rtnetlink.h>
--#undef net
- 
- #include <map>
- 
diff --git a/chromium-new/patches/patch-net_base_mime__util__unittest.cc b/chromium-new/patches/patch-net_base_mime__util__unittest.cc
new file mode 100644
index 0000000..091c428
--- /dev/null
+++ b/chromium-new/patches/patch-net_base_mime__util__unittest.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- net/base/mime_util_unittest.cc.orig	2016-06-24 01:02:25.000000000 +0000
++++ net/base/mime_util_unittest.cc
+@@ -241,7 +241,7 @@ TEST(MimeUtilTest, TestGetExtensionsForM
+     { "MeSsAge/*",  1, "eml" },
+     { "image/bmp",  1, "bmp" },
+     { "video/*",    6, "mp4" },
+-#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_IOS)
++#if (defined(OS_POSIX) && !defined(OS_MACOSX)) || defined(OS_IOS)
+     { "video/*",    6, "mpg" },
+ #else
+     { "video/*",    6, "mpeg" },
diff --git a/chromium-new/patches/patch-net_base_net_util_cc b/chromium-new/patches/patch-net_base_net_util_cc
deleted file mode 100644
index c8809e1..0000000
--- a/chromium-new/patches/patch-net_base_net_util_cc
+++ /dev/null
@@ -1,11 +0,0 @@
-$OpenBSD: patch-net_base_net_util_cc,v 1.11 2015/10/14 16:42:07 robert Exp $
---- net/base/net_util.cc.orig.port	Tue Oct 13 21:04:33 2015
-+++ net/base/net_util.cc	Wed Oct 14 07:41:13 2015
-@@ -23,6 +23,7 @@
- #include <netdb.h>
- #include <netinet/in.h>
- #include <unistd.h>
-+#include <sys/socket.h>
- #if !defined(OS_NACL)
- #include <net/if.h>
- #if !defined(OS_ANDROID)
diff --git a/chromium-new/patches/patch-net_base_network__change__notifier.cc b/chromium-new/patches/patch-net_base_network__change__notifier.cc
new file mode 100644
index 0000000..b2c7b93
--- /dev/null
+++ b/chromium-new/patches/patch-net_base_network__change__notifier.cc
@@ -0,0 +1,12 @@
+$NetBSD$
+
+--- net/base/network_change_notifier.cc.orig	2016-06-24 01:02:25.000000000 +0000
++++ net/base/network_change_notifier.cc
+@@ -532,7 +532,6 @@ NetworkChangeNotifier* NetworkChangeNoti
+ #elif defined(OS_MACOSX)
+   return new NetworkChangeNotifierMac();
+ #else
+-  NOTIMPLEMENTED();
+   return NULL;
+ #endif
+ }
diff --git a/chromium-new/patches/patch-net_base_network__interfaces__linux.cc b/chromium-new/patches/patch-net_base_network__interfaces__linux.cc
new file mode 100644
index 0000000..d44a5e6
--- /dev/null
+++ b/chromium-new/patches/patch-net_base_network__interfaces__linux.cc
@@ -0,0 +1,107 @@
+$NetBSD$
+
+--- net/base/network_interfaces_linux.cc.orig	2016-06-24 01:02:25.000000000 +0000
++++ net/base/network_interfaces_linux.cc
+@@ -4,12 +4,14 @@
+ 
+ #include "net/base/network_interfaces_linux.h"
+ 
++#if !defined(OS_FREEBSD) && !defined(OS_NETBSD)
+ #if !defined(OS_ANDROID)
+ #include <linux/ethtool.h>
+ #endif  // !defined(OS_ANDROID)
+ #include <linux/if.h>
+ #include <linux/sockios.h>
+ #include <linux/wireless.h>
++#endif  // !defined(OS_FREEBSD) && !defined(OS_NETBSD)
+ #include <set>
+ #include <sys/ioctl.h>
+ #include <sys/types.h>
+@@ -44,6 +46,7 @@ bool TryConvertNativeToNetIPAttributes(i
+   // are still progressing through duplicated address detection (DAD)
+   // and shouldn't be used by the application layer until DAD process
+   // is completed.
++#if !defined(OS_FREEBSD) && !defined(OS_NETBSD)
+   if (native_attributes & (
+ #if !defined(OS_ANDROID)
+                               IFA_F_OPTIMISTIC | IFA_F_DADFAILED |
+@@ -61,6 +64,10 @@ bool TryConvertNativeToNetIPAttributes(i
+   }
+ 
+   return true;
++#else
++  // the flags tested above are not present on FreeBSD
++  return false;
++#endif  // !OS_FREEBSD
+ }
+ 
+ }  // namespace
+@@ -75,13 +82,15 @@ NetworkChangeNotifier::ConnectionType Ge
+   if (!s.is_valid())
+     return NetworkChangeNotifier::CONNECTION_UNKNOWN;
+ 
++#if !defined(OS_FREEBSD) && !defined(OS_NETBSD)
+   // Test wireless extensions for CONNECTION_WIFI
+   struct iwreq pwrq = {};
+   strncpy(pwrq.ifr_name, ifname.c_str(), IFNAMSIZ - 1);
+   if (ioctl(s.get(), SIOCGIWNAME, &pwrq) != -1)
+     return NetworkChangeNotifier::CONNECTION_WIFI;
++#endif  // !defined(OS_FREEBSD)
+ 
+-#if !defined(OS_ANDROID)
++#if !defined(OS_ANDROID) && !defined(OS_FREEBSD) && !defined(OS_NETBSD)
+   // Test ethtool for CONNECTION_ETHERNET
+   struct ethtool_cmd ecmd = {};
+   ecmd.cmd = ETHTOOL_GSET;
+@@ -90,12 +99,13 @@ NetworkChangeNotifier::ConnectionType Ge
+   strncpy(ifr.ifr_name, ifname.c_str(), IFNAMSIZ - 1);
+   if (ioctl(s.get(), SIOCETHTOOL, &ifr) != -1)
+     return NetworkChangeNotifier::CONNECTION_ETHERNET;
+-#endif  // !defined(OS_ANDROID)
++#endif  // !defined(OS_ANDROID) && !defined(OS_FREEBSD)
+ 
+   return NetworkChangeNotifier::CONNECTION_UNKNOWN;
+ }
+ 
+ std::string GetInterfaceSSID(const std::string& ifname) {
++#if !defined(OS_FREEBSD) && !defined(OS_NETBSD)
+   base::ScopedFD ioctl_socket(socket(AF_INET, SOCK_DGRAM, 0));
+   if (!ioctl_socket.is_valid())
+     return "";
+@@ -107,9 +117,11 @@ std::string GetInterfaceSSID(const std::
+   wreq.u.essid.length = IW_ESSID_MAX_SIZE;
+   if (ioctl(ioctl_socket.get(), SIOCGIWESSID, &wreq) != -1)
+     return ssid;
++#endif  // !defined(OS_FREEBSD)
+   return "";
+ }
+ 
++#if !defined(OS_FREEBSD) && !defined(OS_NETBSD)
+ bool GetNetworkListImpl(
+     NetworkInterfaceList* networks,
+     int policy,
+@@ -178,6 +190,7 @@ bool GetNetworkListImpl(
+ 
+   return true;
+ }
++#endif  // !defined(OS_FREEBSD)
+ 
+ std::string GetWifiSSIDFromInterfaceListInternal(
+     const NetworkInterfaceList& interfaces,
+@@ -202,12 +215,16 @@ bool GetNetworkList(NetworkInterfaceList
+   if (networks == NULL)
+     return false;
+ 
++#if !defined(OS_FREEBSD) && !defined(OS_NETBSD)
+   internal::AddressTrackerLinux tracker;
+   tracker.Init();
+ 
+   return internal::GetNetworkListImpl(
+       networks, policy, tracker.GetOnlineLinks(), tracker.GetAddressMap(),
+       &internal::AddressTrackerLinux::GetInterfaceName);
++#else
++  return false;
++#endif
+ }
+ 
+ std::string GetWifiSSID() {
diff --git a/chromium-new/patches/patch-net_base_network__interfaces__posix.cc b/chromium-new/patches/patch-net_base_network__interfaces__posix.cc
new file mode 100644
index 0000000..37a2736
--- /dev/null
+++ b/chromium-new/patches/patch-net_base_network__interfaces__posix.cc
@@ -0,0 +1,20 @@
+$NetBSD$
+
+--- net/base/network_interfaces_posix.cc.orig	2016-06-24 01:02:25.000000000 +0000
++++ net/base/network_interfaces_posix.cc
+@@ -20,6 +20,7 @@ namespace net {
+ #if !defined(OS_NACL)
+ namespace internal {
+ 
++#if !defined(OS_BSD)
+ // The application layer can pass |policy| defined in net_util.h to
+ // request filtering out certain type of interfaces.
+ bool ShouldIgnoreInterface(const std::string& name, int policy) {
+@@ -33,6 +34,7 @@ bool ShouldIgnoreInterface(const std::st
+ 
+   return false;
+ }
++#endif
+ 
+ // Check if the address is unspecified (i.e. made of zeroes) or loopback.
+ bool IsLoopbackOrUnspecifiedAddress(const sockaddr* addr) {
diff --git a/chromium-new/patches/patch-net_base_network_change_notifier_cc b/chromium-new/patches/patch-net_base_network_change_notifier_cc
deleted file mode 100644
index 0f606c4..0000000
--- a/chromium-new/patches/patch-net_base_network_change_notifier_cc
+++ /dev/null
@@ -1,11 +0,0 @@
-$OpenBSD: patch-net_base_network_change_notifier_cc,v 1.17 2016/01/23 18:49:31 robert Exp $
---- net/base/network_change_notifier.cc.orig.port	Wed Jan 20 21:01:22 2016
-+++ net/base/network_change_notifier.cc	Fri Jan 22 19:58:58 2016
-@@ -531,7 +531,6 @@ NetworkChangeNotifier* NetworkChangeNotifier::Create()
- #elif defined(OS_MACOSX)
-   return new NetworkChangeNotifierMac();
- #else
--  NOTIMPLEMENTED();
-   return NULL;
- #endif
- }
diff --git a/chromium-new/patches/patch-net_base_network_interfaces_posix_cc b/chromium-new/patches/patch-net_base_network_interfaces_posix_cc
deleted file mode 100644
index c365103..0000000
--- a/chromium-new/patches/patch-net_base_network_interfaces_posix_cc
+++ /dev/null
@@ -1,21 +0,0 @@
-$OpenBSD: patch-net_base_network_interfaces_posix_cc,v 1.1 2015/09/05 16:06:50 robert Exp $
---- net/base/network_interfaces_posix.cc.orig.port	Fri Sep  4 09:33:24 2015
-+++ net/base/network_interfaces_posix.cc	Fri Sep  4 09:33:09 2015
-@@ -9,7 +9,7 @@
- 
- #include "base/memory/scoped_ptr.h"
- 
--#if !defined(OS_NACL)
-+#if !defined(OS_NACL) && !defined(OS_BSD)
- #include "net/base/network_interfaces_posix.h"
- #include <net/if.h>
- #include <netinet/in.h>
-@@ -17,7 +17,7 @@
- 
- namespace net {
- 
--#if !defined(OS_NACL)
-+#if !defined(OS_NACL) && !defined(OS_BSD)
- namespace internal {
- 
- // The application layer can pass |policy| defined in net_util.h to
diff --git a/chromium-new/patches/patch-net_disk_cache_blockfile_disk_format_h b/chromium-new/patches/patch-net_disk_cache_blockfile_disk_format_h
deleted file mode 100644
index 52a398b..0000000
--- a/chromium-new/patches/patch-net_disk_cache_blockfile_disk_format_h
+++ /dev/null
@@ -1,13 +0,0 @@
-$OpenBSD: patch-net_disk_cache_blockfile_disk_format_h,v 1.2 2015/04/27 16:38:25 robert Exp $
---- net/disk_cache/blockfile/disk_format.h.orig.port	Wed Apr 15 09:37:17 2015
-+++ net/disk_cache/blockfile/disk_format.h	Wed Apr 15 09:37:35 2015
-@@ -146,7 +146,9 @@ struct RankingsNode {
- };
- #pragma pack(pop)
- 
-+#if !defined(OS_BSD)
- static_assert(sizeof(RankingsNode) == 36, "bad RankingsNode");
-+#endif
- 
- }  // namespace disk_cache
- 
diff --git a/chromium-new/patches/patch-net_dns_address__sorter__posix.cc b/chromium-new/patches/patch-net_dns_address__sorter__posix.cc
new file mode 100644
index 0000000..3e8cd7f
--- /dev/null
+++ b/chromium-new/patches/patch-net_dns_address__sorter__posix.cc
@@ -0,0 +1,14 @@
+$NetBSD$
+
+--- net/dns/address_sorter_posix.cc.orig	2016-06-24 01:02:25.000000000 +0000
++++ net/dns/address_sorter_posix.cc
+@@ -11,6 +11,9 @@
+ #include <sys/socket.h>  // Must be included before ifaddrs.h.
+ #include <ifaddrs.h>
+ #include <net/if.h>
++#if !defined(OS_NETBSD)
++#include <net/if_var.h>
++#endif
+ #include <netinet/in_var.h>
+ #include <string.h>
+ #include <sys/ioctl.h>
diff --git a/chromium-new/patches/patch-net_dns_address_sorter_posix_cc b/chromium-new/patches/patch-net_dns_address_sorter_posix_cc
deleted file mode 100644
index 25cab4d..0000000
--- a/chromium-new/patches/patch-net_dns_address_sorter_posix_cc
+++ /dev/null
@@ -1,11 +0,0 @@
-$OpenBSD: patch-net_dns_address_sorter_posix_cc,v 1.2 2013/10/29 06:51:34 robert Exp $
---- net/dns/address_sorter_posix.cc.orig.port	Fri Oct 11 19:29:01 2013
-+++ net/dns/address_sorter_posix.cc	Fri Oct 18 20:47:20 2013
-@@ -11,6 +11,7 @@
- #include <ifaddrs.h>
- #include <net/if.h>
- #include <netinet/in_var.h>
-+#include <netinet6/in6_var.h>
- #include <string.h>
- #include <sys/ioctl.h>
- #endif
diff --git a/chromium-new/patches/patch-net_dns_dns__config__service__posix__unittest.cc b/chromium-new/patches/patch-net_dns_dns__config__service__posix__unittest.cc
new file mode 100644
index 0000000..4666ef2
--- /dev/null
+++ b/chromium-new/patches/patch-net_dns_dns__config__service__posix__unittest.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- net/dns/dns_config_service_posix_unittest.cc.orig	2016-06-24 01:02:25.000000000 +0000
++++ net/dns/dns_config_service_posix_unittest.cc
+@@ -2,8 +2,6 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+ 
+-#include <resolv.h>
+-
+ #include "base/cancelable_callback.h"
+ #include "base/files/file_util.h"
+ #include "base/sys_byteorder.h"
diff --git a/chromium-new/patches/patch-net_dns_dns__reloader.cc b/chromium-new/patches/patch-net_dns_dns__reloader.cc
new file mode 100644
index 0000000..8b33bd5
--- /dev/null
+++ b/chromium-new/patches/patch-net_dns_dns__reloader.cc
@@ -0,0 +1,15 @@
+$NetBSD$
+
+--- net/dns/dns_reloader.cc.orig	2016-06-24 01:02:25.000000000 +0000
++++ net/dns/dns_reloader.cc
+@@ -7,6 +7,10 @@
+ #if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_OPENBSD) && \
+     !defined(OS_ANDROID)
+ 
++#if defined(OS_FREEBSD)
++#include <netinet/in.h>
++#endif
++
+ #include <resolv.h>
+ 
+ #include "base/lazy_instance.h"
diff --git a/chromium-new/patches/patch-net_dns_dns__session.cc b/chromium-new/patches/patch-net_dns_dns__session.cc
new file mode 100644
index 0000000..3ec3cc5
--- /dev/null
+++ b/chromium-new/patches/patch-net_dns_dns__session.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- net/dns/dns_session.cc.orig	2016-06-24 01:02:25.000000000 +0000
++++ net/dns/dns_session.cc
+@@ -224,7 +224,7 @@ void DnsSession::RecordRTT(unsigned serv
+   base::TimeDelta current_error = rtt - estimate;
+   estimate += current_error / 8;  // * alpha
+   base::TimeDelta abs_error = base::TimeDelta::FromInternalValue(
+-      std::abs(current_error.ToInternalValue()));
++      std::labs(current_error.ToInternalValue()));
+   deviation += (abs_error - deviation) / 4;  // * delta
+ 
+   // Histogram-based method.
diff --git a/chromium-new/patches/patch-net_dns_host_resolver_proc_cc b/chromium-new/patches/patch-net_dns_host_resolver_proc_cc
deleted file mode 100644
index 355a7ac..0000000
--- a/chromium-new/patches/patch-net_dns_host_resolver_proc_cc
+++ /dev/null
@@ -1,14 +0,0 @@
-$OpenBSD: patch-net_dns_host_resolver_proc_cc,v 1.3 2016/01/23 18:49:31 robert Exp $
---- net/dns/host_resolver_proc.cc.orig.port	Thu Jan 14 02:49:24 2016
-+++ net/dns/host_resolver_proc.cc	Fri Jan 22 19:58:58 2016
-@@ -14,10 +14,6 @@
- #include "net/dns/dns_reloader.h"
- #include "net/dns/dns_util.h"
- 
--#if defined(OS_OPENBSD)
--#define AI_ADDRCONFIG 0
--#endif
--
- namespace net {
- 
- namespace {
diff --git a/chromium-new/patches/patch-net_http_http__auth__gssapi__posix.cc b/chromium-new/patches/patch-net_http_http__auth__gssapi__posix.cc
new file mode 100644
index 0000000..c6faaa4
--- /dev/null
+++ b/chromium-new/patches/patch-net_http_http__auth__gssapi__posix.cc
@@ -0,0 +1,15 @@
+$NetBSD$
+
+--- net/http/http_auth_gssapi_posix.cc.orig	2016-06-24 01:02:25.000000000 +0000
++++ net/http/http_auth_gssapi_posix.cc
+@@ -431,8 +431,8 @@ base::NativeLibrary GSSAPISharedLibrary:
+     static const char* const kDefaultLibraryNames[] = {
+ #if defined(OS_MACOSX)
+       "/System/Library/Frameworks/Kerberos.framework/Kerberos"
+-#elif defined(OS_OPENBSD)
+-      "libgssapi.so"          // Heimdal - OpenBSD
++#elif defined(OS_BSD)
++      "libgssapi.so"          // Heimdal - OpenBSD / FreeBSD
+ #else
+       "libgssapi_krb5.so.2",  // MIT Kerberos - FC, Suse10, Debian
+       "libgssapi.so.4",       // Heimdal - Suse10, MDK
diff --git a/chromium-new/patches/patch-net_http_http_network_session_cc b/chromium-new/patches/patch-net_http_http_network_session_cc
deleted file mode 100644
index 453109b..0000000
--- a/chromium-new/patches/patch-net_http_http_network_session_cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$OpenBSD: patch-net_http_http_network_session_cc,v 1.5 2015/04/27 16:38:25 robert Exp $
---- net/http/http_network_session.cc.orig.port	Wed Apr 15 00:31:22 2015
-+++ net/http/http_network_session.cc	Wed Apr 15 08:32:50 2015
-@@ -13,7 +13,9 @@
- #include "base/stl_util.h"
- #include "base/strings/string_util.h"
- #include "base/values.h"
-+#if defined(USE_KERBEROS)
- #include "net/http/http_auth_handler_factory.h"
-+#endif
- #include "net/http/http_response_body_drainer.h"
- #include "net/http/http_stream_factory_impl.h"
- #include "net/http/url_security_manager.h"
diff --git a/chromium-new/patches/patch-net_net.gyp b/chromium-new/patches/patch-net_net.gyp
new file mode 100644
index 0000000..7e4b9c9
--- /dev/null
+++ b/chromium-new/patches/patch-net_net.gyp
@@ -0,0 +1,25 @@
+$NetBSD$
+
+--- net/net.gyp.orig	2016-06-24 01:02:25.000000000 +0000
++++ net/net.gyp
+@@ -148,7 +148,7 @@
+         '<@(net_test_sources)',
+       ],
+       'conditions': [
+-        ['os_posix == 1 and OS != "mac" and OS != "ios" and OS != "android"', {
++        ['os_posix == 1 and OS != "mac" and OS != "ios" and OS != "android" and os_bsd != 1', {
+           'dependencies': [
+             'epoll_quic_tools',
+             'epoll_server',
+@@ -672,6 +672,11 @@
+             'url_request/test_url_request_interceptor.h',
+           ],
+         }],
++        [ 'os_bsd == 1', {
++          'sources!': [
++            'base/address_tracker_linux_unittest.cc',
++          ],
++        }],
+       ],
+       # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
+       'msvs_disabled_warnings': [4267, ],
diff --git a/chromium-new/patches/patch-net_net.gypi b/chromium-new/patches/patch-net_net.gypi
new file mode 100644
index 0000000..cf5fff0
--- /dev/null
+++ b/chromium-new/patches/patch-net_net.gypi
@@ -0,0 +1,24 @@
+$NetBSD$
+
+--- net/net.gypi.orig	2016-06-24 01:02:25.000000000 +0000
++++ net/net.gypi
+@@ -440,8 +440,8 @@
+       'android/network_library.h',
+       'android/traffic_stats.cc',
+       'android/traffic_stats.h',
+-      'base/address_tracker_linux.cc',
+-      'base/address_tracker_linux.h',
++#      'base/address_tracker_linux.cc',
++#      'base/address_tracker_linux.h',
+       'base/backoff_entry.cc',
+       'base/backoff_entry.h',
+       'base/backoff_entry_serializer.cc',
+@@ -1338,7 +1338,7 @@
+       'android/traffic_stats_unittest.cc',
+       'base/address_family_unittest.cc',
+       'base/address_list_unittest.cc',
+-      'base/address_tracker_linux_unittest.cc',
++#      'base/address_tracker_linux_unittest.cc',
+       'base/backoff_entry_serializer_unittest.cc',
+       'base/backoff_entry_unittest.cc',
+       'base/chunked_upload_data_stream_unittest.cc',
diff --git a/chromium-new/patches/patch-net_net__common.gypi b/chromium-new/patches/patch-net_net__common.gypi
new file mode 100644
index 0000000..21cb8cd
--- /dev/null
+++ b/chromium-new/patches/patch-net_net__common.gypi
@@ -0,0 +1,16 @@
+$NetBSD$
+
+--- net/net_common.gypi.orig	2016-06-24 01:02:25.000000000 +0000
++++ net/net_common.gypi
+@@ -235,9 +235,10 @@
+         'conditions': [
+           ['os_bsd==1', {
+             'sources!': [
++              'base/address_tracker_linux.cc',
+               'base/network_change_notifier_linux.cc',
+               'base/network_change_notifier_netlink_linux.cc',
+-              'proxy/proxy_config_service_linux.cc',
++#              'proxy/proxy_config_service_linux.cc',
+             ],
+           },{
+             'dependencies': [
diff --git a/chromium-new/patches/patch-net_net_common_gypi b/chromium-new/patches/patch-net_net_common_gypi
deleted file mode 100644
index d103afa..0000000
--- a/chromium-new/patches/patch-net_net_common_gypi
+++ /dev/null
@@ -1,11 +0,0 @@
-$OpenBSD: patch-net_net_common_gypi,v 1.1 2015/12/15 10:59:50 robert Exp $
---- net/net_common.gypi.orig.port	Tue Dec 15 11:50:08 2015
-+++ net/net_common.gypi	Tue Dec 15 11:50:29 2015
-@@ -219,7 +219,6 @@
-             'sources!': [
-               'base/network_change_notifier_linux.cc',
-               'base/network_change_notifier_netlink_linux.cc',
--              'proxy/proxy_config_service_linux.cc',
-             ],
-           },{
-             'dependencies': [
diff --git a/chromium-new/patches/patch-net_net_gypi b/chromium-new/patches/patch-net_net_gypi
deleted file mode 100644
index 81d6157..0000000
--- a/chromium-new/patches/patch-net_net_gypi
+++ /dev/null
@@ -1,20 +0,0 @@
-$OpenBSD: patch-net_net_gypi,v 1.13 2016/01/23 18:49:31 robert Exp $
---- net/net.gypi.orig.port	Wed Jan 20 21:01:22 2016
-+++ net/net.gypi	Fri Jan 22 19:58:58 2016
-@@ -417,8 +417,6 @@
-       'android/network_library.h',
-       'android/traffic_stats.cc',
-       'android/traffic_stats.h',
--      'base/address_tracker_linux.cc',
--      'base/address_tracker_linux.h',
-       'base/backoff_entry.cc',
-       'base/backoff_entry.h',
-       'base/backoff_entry_serializer.cc',
-@@ -491,7 +489,6 @@
-       'base/network_delegate.h',
-       'base/network_delegate_impl.cc',
-       'base/network_delegate_impl.h',
--      'base/network_interfaces_linux.cc',
-       'base/network_interfaces_mac.cc',
-       'base/network_interfaces_win.cc',
-       'base/network_quality_estimator.cc',
diff --git a/chromium-new/patches/patch-net_proxy_proxy__config__service__linux.cc b/chromium-new/patches/patch-net_proxy_proxy__config__service__linux.cc
new file mode 100644
index 0000000..fc499b5
--- /dev/null
+++ b/chromium-new/patches/patch-net_proxy_proxy__config__service__linux.cc
@@ -0,0 +1,147 @@
+$NetBSD$
+
+--- net/proxy/proxy_config_service_linux.cc.orig	2016-06-24 01:02:25.000000000 +0000
++++ net/proxy/proxy_config_service_linux.cc
+@@ -11,7 +11,14 @@
+ #include <limits.h>
+ #include <stdio.h>
+ #include <stdlib.h>
++#if defined(OS_FREEBSD) || defined(OS_NETBSD)
++#include <fcntl.h>
++#include <sys/types.h>
++#include <sys/event.h>
++#include <sys/time.h>
++#else
+ #include <sys/inotify.h>
++#endif
+ #include <unistd.h>
+ 
+ #include <map>
+@@ -859,6 +866,7 @@ class SettingGetterImplKDE : public Prox
+  public:
+   explicit SettingGetterImplKDE(base::Environment* env_var_getter)
+       : inotify_fd_(-1),
++        config_fd_(-1),
+         notify_delegate_(NULL),
+         debounce_timer_(new base::OneShotTimer()),
+         indirect_manual_(false),
+@@ -933,9 +941,10 @@ class SettingGetterImplKDE : public Prox
+     // 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 (inotify_fd_ >= 0 || config_fd_ >= 0)
+       ShutDown();
+     DCHECK(inotify_fd_ < 0);
++    DCHECK(config_fd_ < 0);
+   }
+ 
+   bool Init(const scoped_refptr<base::SingleThreadTaskRunner>& glib_task_runner,
+@@ -944,9 +953,17 @@ class SettingGetterImplKDE : public Prox
+     // This has to be called on the UI thread (http://crbug.com/69057).
+     base::ThreadRestrictions::ScopedAllowIO allow_io;
+     DCHECK(inotify_fd_ < 0);
++#if defined(OS_FREEBSD) || defined(OS_NETBSD)
++    inotify_fd_ = kqueue();
++#else
+     inotify_fd_ = inotify_init();
++#endif
+     if (inotify_fd_ < 0) {
++#if defined(OS_FREEBSD) || defined(OS_NETBSD)
++      PLOG(ERROR) << "kqueue failed";
++#else
+       PLOG(ERROR) << "inotify_init failed";
++#endif
+       return false;
+     }
+     if (!base::SetNonBlocking(inotify_fd_)) {
+@@ -970,22 +987,40 @@ class SettingGetterImplKDE : public Prox
+       close(inotify_fd_);
+       inotify_fd_ = -1;
+     }
++    if (config_fd_ >= 0) {
++      close(config_fd_);
++      config_fd_ = -1;
++    }
+     debounce_timer_.reset();
+   }
+ 
+   bool SetUpNotifications(
+       ProxyConfigServiceLinux::Delegate* delegate) override {
+     DCHECK(inotify_fd_ >= 0);
++    DCHECK(config_fd_ >= 0);
+     DCHECK(file_task_runner_->BelongsToCurrentThread());
+     // 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 defined(OS_FREEBSD) || defined(OS_NETBSD)
++    config_fd_ = HANDLE_EINTR(open(kde_config_dir_.value().c_str(), O_RDONLY));
++
++    if (config_fd_ == -1)
++      return false;
++
++    struct kevent ev;
++    EV_SET(&ev, config_fd_, EVFILT_VNODE, EV_ADD | EV_CLEAR, NOTE_WRITE,
++            0, NULL);
++    if (kevent(inotify_fd_, &ev, 1, NULL, 0, NULL) == -1)
++      return false;
++#else
+     if (inotify_add_watch(inotify_fd_, kde_config_dir_.value().c_str(),
+                           IN_MODIFY | IN_MOVED_TO) < 0) {
+       return false;
+     }
++#endif
+     notify_delegate_ = delegate;
+     if (!base::MessageLoopForIO::current()->WatchFileDescriptor(
+             inotify_fd_, true, base::MessageLoopForIO::WATCH_READ,
+@@ -1006,7 +1041,19 @@ class SettingGetterImplKDE : public Prox
+   void OnFileCanReadWithoutBlocking(int fd) override {
+     DCHECK_EQ(fd, inotify_fd_);
+     DCHECK(file_task_runner_->BelongsToCurrentThread());
++#if defined(OS_FREEBSD) || defined(OS_NETBSD)
++    struct kevent ev;
++    int rv = kevent(inotify_fd_, NULL, 0, &ev, 1, NULL);
++
++    if (rv != -1 && (ev.flags & EV_ERROR) == 0) {
++      OnChangeNotification();
++    } else {
++      LOG(ERROR) << "kevent() failure; no longer watching kioslaverc!";
++      ShutDown();
++    }
++#else
+     OnChangeNotification();
++#endif
+   }
+   void OnFileCanWriteWithoutBlocking(int fd) override { NOTREACHED(); }
+ 
+@@ -1279,8 +1326,11 @@ class SettingGetterImplKDE : public Prox
+   void OnChangeNotification() {
+     DCHECK_GE(inotify_fd_,  0);
+     DCHECK(file_task_runner_->BelongsToCurrentThread());
+-    char event_buf[(sizeof(inotify_event) + NAME_MAX + 1) * 4];
+     bool kioslaverc_touched = false;
++#if defined(OS_FREEBSD) || defined(OS_NETBSD)
++    kioslaverc_touched = true;
++#else
++    char event_buf[(sizeof(inotify_event) + NAME_MAX + 1) * 4];
+     ssize_t r;
+     while ((r = read(inotify_fd_, event_buf, sizeof(event_buf))) > 0) {
+       // inotify returns variable-length structures, which is why we have
+@@ -1317,6 +1367,7 @@ class SettingGetterImplKDE : public Prox
+         inotify_fd_ = -1;
+       }
+     }
++#endif
+     if (kioslaverc_touched) {
+       // We don't use Reset() because the timer may not yet be running.
+       // (In that case Stop() is a no-op.)
+@@ -1332,6 +1383,7 @@ class SettingGetterImplKDE : public Prox
+                    std::vector<std::string> > strings_map_type;
+ 
+   int inotify_fd_;
++  int config_fd_;
+   base::MessagePumpLibevent::FileDescriptorWatcher inotify_watcher_;
+   ProxyConfigServiceLinux::Delegate* notify_delegate_;
+   scoped_ptr<base::OneShotTimer> debounce_timer_;
diff --git a/chromium-new/patches/patch-net_proxy_proxy__service.cc b/chromium-new/patches/patch-net_proxy_proxy__service.cc
new file mode 100644
index 0000000..a072552
--- /dev/null
+++ b/chromium-new/patches/patch-net_proxy_proxy__service.cc
@@ -0,0 +1,22 @@
+$NetBSD$
+
+--- net/proxy/proxy_service.cc.orig	2016-06-24 01:02:25.000000000 +0000
++++ net/proxy/proxy_service.cc
+@@ -47,7 +47,7 @@
+ #elif defined(OS_MACOSX)
+ #include "net/proxy/proxy_config_service_mac.h"
+ #include "net/proxy/proxy_resolver_mac.h"
+-#elif defined(OS_LINUX) && !defined(OS_CHROMEOS)
++#elif (defined(OS_LINUX) && !defined(OS_CHROMEOS)) || defined(OS_FREEBSD)
+ #include "net/proxy/proxy_config_service_linux.h"
+ #elif defined(OS_ANDROID)
+ #include "net/proxy/proxy_config_service_android.h"
+@@ -1513,7 +1513,7 @@ scoped_ptr<ProxyConfigService> ProxyServ
+              << "profile_io_data.cc::CreateProxyConfigService and this should "
+              << "be used only for examples.";
+   return make_scoped_ptr(new UnsetProxyConfigService);
+-#elif defined(OS_LINUX)
++#elif defined(OS_LINUX) || defined(OS_FREEBSD)
+   scoped_ptr<ProxyConfigServiceLinux> linux_config_service(
+       new ProxyConfigServiceLinux());
+ 
diff --git a/chromium-new/patches/patch-net_proxy_proxy_config_service_linux_cc b/chromium-new/patches/patch-net_proxy_proxy_config_service_linux_cc
deleted file mode 100644
index 555404f..0000000
--- a/chromium-new/patches/patch-net_proxy_proxy_config_service_linux_cc
+++ /dev/null
@@ -1,40 +0,0 @@
-$OpenBSD: patch-net_proxy_proxy_config_service_linux_cc,v 1.6 2015/12/12 20:20:01 robert Exp $
---- net/proxy/proxy_config_service_linux.cc.orig.port	Sat Dec 12 13:37:06 2015
-+++ net/proxy/proxy_config_service_linux.cc	Sat Dec 12 13:45:47 2015
-@@ -12,7 +12,9 @@
- #include <limits.h>
- #include <stdio.h>
- #include <stdlib.h>
-+#if !defined(OS_BSD)
- #include <sys/inotify.h>
-+#endif
- #include <unistd.h>
- 
- #include <map>
-@@ -851,6 +853,7 @@ bool SettingGetterImplGSettings::LoadAndCheckVersion(
- }
- #endif  // defined(USE_GIO)
- 
-+#if !defined(OS_BSD)
- // This is the KDE version that reads kioslaverc and simulates gconf.
- // Doing this allows the main Delegate code, as well as the unit tests
- // for it, to stay the same - and the settings map fairly well besides.
-@@ -1356,6 +1359,7 @@ class SettingGetterImplKDE : public ProxyConfigService
- 
-   DISALLOW_COPY_AND_ASSIGN(SettingGetterImplKDE);
- };
-+#endif
- 
- }  // namespace
- 
-@@ -1556,8 +1560,10 @@ ProxyConfigServiceLinux::Delegate::Delegate(base::Envi
-     case base::nix::DESKTOP_ENVIRONMENT_KDE3:
-     case base::nix::DESKTOP_ENVIRONMENT_KDE4:
-     case base::nix::DESKTOP_ENVIRONMENT_KDE5:
-+#if !defined(OS_BSD)
-       setting_getter_.reset(new SettingGetterImplKDE(env_var_getter));
-       break;
-+#endif
-     case base::nix::DESKTOP_ENVIRONMENT_XFCE:
-     case base::nix::DESKTOP_ENVIRONMENT_OTHER:
-       break;
diff --git a/chromium-new/patches/patch-net_proxy_proxy_service_cc b/chromium-new/patches/patch-net_proxy_proxy_service_cc
deleted file mode 100644
index eae1978..0000000
--- a/chromium-new/patches/patch-net_proxy_proxy_service_cc
+++ /dev/null
@@ -1,21 +0,0 @@
-$OpenBSD: patch-net_proxy_proxy_service_cc,v 1.8 2016/01/23 18:49:31 robert Exp $
---- net/proxy/proxy_service.cc.orig.port	Wed Jan 20 21:01:22 2016
-+++ net/proxy/proxy_service.cc	Fri Jan 22 19:58:58 2016
-@@ -43,7 +43,7 @@
- #elif defined(OS_MACOSX)
- #include "net/proxy/proxy_config_service_mac.h"
- #include "net/proxy/proxy_resolver_mac.h"
--#elif defined(OS_LINUX) && !defined(OS_CHROMEOS)
-+#elif (defined(OS_BSD) || defined(OS_LINUX)) && !defined(OS_CHROMEOS)
- #include "net/proxy/proxy_config_service_linux.h"
- #elif defined(OS_ANDROID)
- #include "net/proxy/proxy_config_service_android.h"
-@@ -1511,7 +1511,7 @@ scoped_ptr<ProxyConfigService> ProxyService::CreateSys
-              << "profile_io_data.cc::CreateProxyConfigService and this should "
-              << "be used only for examples.";
-   return make_scoped_ptr(new UnsetProxyConfigService);
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
-   scoped_ptr<ProxyConfigServiceLinux> linux_config_service(
-       new ProxyConfigServiceLinux());
- 
diff --git a/chromium-new/patches/patch-net_quic_congestion__control_rtt__stats.cc b/chromium-new/patches/patch-net_quic_congestion__control_rtt__stats.cc
new file mode 100644
index 0000000..2a35e6f
--- /dev/null
+++ b/chromium-new/patches/patch-net_quic_congestion__control_rtt__stats.cc
@@ -0,0 +1,31 @@
+$NetBSD$
+
+--- net/quic/congestion_control/rtt_stats.cc.orig	2016-06-24 01:02:25.000000000 +0000
++++ net/quic/congestion_control/rtt_stats.cc
+@@ -4,7 +4,7 @@
+ 
+ #include "net/quic/congestion_control/rtt_stats.h"
+ 
+-#include <cstdlib>  // std::abs
++#include <cstdlib>  // std::labs
+ 
+ using std::max;
+ 
+@@ -41,7 +41,7 @@ void RttStats::ExpireSmoothedMetrics() {
+   mean_deviation_ =
+       max(mean_deviation_,
+           QuicTime::Delta::FromMicroseconds(
+-              std::abs(smoothed_rtt_.Subtract(latest_rtt_).ToMicroseconds())));
++              std::labs(smoothed_rtt_.Subtract(latest_rtt_).ToMicroseconds())));
+   smoothed_rtt_ = max(smoothed_rtt_, latest_rtt_);
+ }
+ 
+@@ -81,7 +81,7 @@ void RttStats::UpdateRtt(QuicTime::Delta
+   } else {
+     mean_deviation_ = QuicTime::Delta::FromMicroseconds(static_cast<int64_t>(
+         kOneMinusBeta * mean_deviation_.ToMicroseconds() +
+-        kBeta * std::abs(smoothed_rtt_.Subtract(rtt_sample).ToMicroseconds())));
++        kBeta * std::labs(smoothed_rtt_.Subtract(rtt_sample).ToMicroseconds())));
+     smoothed_rtt_ =
+         smoothed_rtt_.Multiply(kOneMinusAlpha).Add(rtt_sample.Multiply(kAlpha));
+     DVLOG(1) << " smoothed_rtt(us):" << smoothed_rtt_.ToMicroseconds()
diff --git a/chromium-new/patches/patch-net_socket_socks5__client__socket.cc b/chromium-new/patches/patch-net_socket_socks5__client__socket.cc
new file mode 100644
index 0000000..a9a0937
--- /dev/null
+++ b/chromium-new/patches/patch-net_socket_socks5__client__socket.cc
@@ -0,0 +1,15 @@
+$NetBSD$
+
+--- net/socket/socks5_client_socket.cc.orig	2016-06-24 01:02:25.000000000 +0000
++++ net/socket/socks5_client_socket.cc
+@@ -4,6 +4,10 @@
+ 
+ #include "net/socket/socks5_client_socket.h"
+ 
++#if defined(OS_BSD)
++#include <netinet/in.h>
++#endif
++
+ #include <utility>
+ 
+ #include "base/callback_helpers.h"
diff --git a/chromium-new/patches/patch-net_socket_socks5_client_socket_cc b/chromium-new/patches/patch-net_socket_socks5_client_socket_cc
deleted file mode 100644
index cc6c315..0000000
--- a/chromium-new/patches/patch-net_socket_socks5_client_socket_cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$OpenBSD: patch-net_socket_socks5_client_socket_cc,v 1.4 2015/05/24 15:51:53 robert Exp $
---- net/socket/socks5_client_socket.cc.orig.port	Thu May 14 00:23:09 2015
-+++ net/socket/socks5_client_socket.cc	Wed May 20 08:34:56 2015
-@@ -16,6 +16,9 @@
- #include "net/log/net_log.h"
- #include "net/socket/client_socket_handle.h"
- 
-+#include <sys/types.h>
-+#include <netinet/in.h>
-+
- namespace net {
- 
- const unsigned int SOCKS5ClientSocket::kGreetReadHeaderSize = 2;
diff --git a/chromium-new/patches/patch-net_tools_get_server_time_get_server_time_cc b/chromium-new/patches/patch-net_tools_get_server_time_get_server_time_cc
deleted file mode 100644
index 0b29f9a..0000000
--- a/chromium-new/patches/patch-net_tools_get_server_time_get_server_time_cc
+++ /dev/null
@@ -1,21 +0,0 @@
-$OpenBSD: patch-net_tools_get_server_time_get_server_time_cc,v 1.1 2015/05/24 15:51:53 robert Exp $
---- net/tools/get_server_time/get_server_time.cc.orig.port	Sat May 23 00:59:48 2015
-+++ net/tools/get_server_time/get_server_time.cc	Sat May 23 01:15:24 2015
-@@ -43,7 +43,7 @@
- 
- #if defined(OS_MACOSX)
- #include "base/mac/scoped_nsautorelease_pool.h"
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
- #include "net/proxy/proxy_config.h"
- #include "net/proxy/proxy_config_service_fixed.h"
- #endif
-@@ -138,7 +138,7 @@ class PrintingLogObserver : public net::NetLog::Thread
- scoped_ptr<net::URLRequestContext>
- BuildURLRequestContext(net::NetLog* net_log) {
-   net::URLRequestContextBuilder builder;
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   // On Linux, use a fixed ProxyConfigService, since the default one
-   // depends on glib.
-   //
diff --git a/chromium-new/patches/patch-net_udp_udp__socket__posix.cc b/chromium-new/patches/patch-net_udp_udp__socket__posix.cc
new file mode 100644
index 0000000..542d99c
--- /dev/null
+++ b/chromium-new/patches/patch-net_udp_udp__socket__posix.cc
@@ -0,0 +1,31 @@
+$NetBSD$
+
+--- net/udp/udp_socket_posix.cc.orig	2016-06-24 01:02:25.000000000 +0000
++++ net/udp/udp_socket_posix.cc
+@@ -45,7 +45,7 @@ const int kBindRetries = 10;
+ const int kPortStart = 1024;
+ const int kPortEnd = 65535;
+ 
+-#if defined(OS_MACOSX)
++#if defined(OS_MACOSX) || defined(OS_NETBSD)
+ 
+ // Returns IPv4 address in network order.
+ int GetIPv4AddressFromIndex(int socket, uint32_t index, uint32_t* address) {
+@@ -603,7 +603,7 @@ int UDPSocketPosix::SetMulticastOptions(
+   if (multicast_interface_ != 0) {
+     switch (addr_family_) {
+       case AF_INET: {
+-#if !defined(OS_MACOSX)
++#if !defined(OS_MACOSX) && !defined(OS_NETBSD)
+         ip_mreqn mreq;
+         mreq.imr_ifindex = multicast_interface_;
+         mreq.imr_address.s_addr = htonl(INADDR_ANY);
+@@ -678,7 +678,7 @@ int UDPSocketPosix::JoinGroup(const IPAd
+       if (addr_family_ != AF_INET)
+         return ERR_ADDRESS_INVALID;
+ 
+-#if !defined(OS_MACOSX)
++#if !defined(OS_MACOSX) && !defined(OS_NETBSD)
+       ip_mreqn mreq;
+       mreq.imr_ifindex = multicast_interface_;
+       mreq.imr_address.s_addr = htonl(INADDR_ANY);
diff --git a/chromium-new/patches/patch-net_udp_udp__socket__unittest.cc b/chromium-new/patches/patch-net_udp_udp__socket__unittest.cc
new file mode 100644
index 0000000..f836d26
--- /dev/null
+++ b/chromium-new/patches/patch-net_udp_udp__socket__unittest.cc
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- net/udp/udp_socket_unittest.cc.orig	2016-06-24 01:02:25.000000000 +0000
++++ net/udp/udp_socket_unittest.cc
+@@ -266,7 +266,7 @@ TEST_F(UDPSocketTest, ConnectNonBlocking
+ }
+ #endif
+ 
+-#if defined(OS_MACOSX)
++#if defined(OS_MACOSX) || defined(OS_BSD)
+ // UDPSocketPrivate_Broadcast is disabled for OSX because it requires
+ // root permissions on OSX 10.7+.
+ TEST_F(UDPSocketTest, DISABLED_Broadcast) {
diff --git a/chromium-new/patches/patch-net_udp_udp_socket_posix_cc b/chromium-new/patches/patch-net_udp_udp_socket_posix_cc
deleted file mode 100644
index b7eb74f..0000000
--- a/chromium-new/patches/patch-net_udp_udp_socket_posix_cc
+++ /dev/null
@@ -1,30 +0,0 @@
-$OpenBSD: patch-net_udp_udp_socket_posix_cc,v 1.2 2016/01/23 18:49:31 robert Exp $
---- net/udp/udp_socket_posix.cc.orig.port	Wed Jan 20 21:01:22 2016
-+++ net/udp/udp_socket_posix.cc	Fri Jan 22 19:58:58 2016
-@@ -42,7 +42,7 @@ const int kBindRetries = 10;
- const int kPortStart = 1024;
- const int kPortEnd = 65535;
- 
--#if defined(OS_MACOSX)
-+#if defined(OS_MACOSX) || defined(OS_BSD)
- 
- // Returns IPv4 address in network order.
- int GetIPv4AddressFromIndex(int socket, uint32 index, uint32* address){
-@@ -590,7 +590,7 @@ int UDPSocketPosix::SetMulticastOptions() {
-   if (multicast_interface_ != 0) {
-     switch (addr_family_) {
-       case AF_INET: {
--#if !defined(OS_MACOSX)
-+#if !defined(OS_MACOSX) && !defined(OS_BSD)
-         ip_mreqn mreq;
-         mreq.imr_ifindex = multicast_interface_;
-         mreq.imr_address.s_addr = htonl(INADDR_ANY);
-@@ -665,7 +665,7 @@ int UDPSocketPosix::JoinGroup(const IPAddressNumber& g
-       if (addr_family_ != AF_INET)
-         return ERR_ADDRESS_INVALID;
- 
--#if !defined(OS_MACOSX)
-+#if !defined(OS_MACOSX) && !defined(OS_BSD)
-       ip_mreqn mreq;
-       mreq.imr_ifindex = multicast_interface_;
-       mreq.imr_address.s_addr = htonl(INADDR_ANY);
diff --git a/chromium-new/patches/patch-net_url_request_url_request_context_builder_cc b/chromium-new/patches/patch-net_url_request_url_request_context_builder_cc
deleted file mode 100644
index c44751c..0000000
--- a/chromium-new/patches/patch-net_url_request_url_request_context_builder_cc
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-net_url_request_url_request_context_builder_cc,v 1.6 2016/01/23 18:49:31 robert Exp $
---- net/url_request/url_request_context_builder.cc.orig.port	Wed Jan 20 21:01:22 2016
-+++ net/url_request/url_request_context_builder.cc	Fri Jan 22 19:58:58 2016
-@@ -301,7 +301,7 @@ scoped_ptr<URLRequestContext> URLRequestContextBuilder
-   if (!proxy_service_) {
-     // TODO(willchan): Switch to using this code when
-     // ProxyService::CreateSystemProxyConfigService()'s signature doesn't suck.
--#if !defined(OS_LINUX) && !defined(OS_ANDROID)
-+#if !defined(OS_LINUX) && !defined(OS_ANDROID) && !defined(OS_BSD)
-     if (!proxy_config_service_) {
-       proxy_config_service_ = ProxyService::CreateSystemProxyConfigService(
-           base::ThreadTaskRunnerHandle::Get().get(),
diff --git a/chromium-new/patches/patch-pdf_pdfium_pdfium__engine.cc b/chromium-new/patches/patch-pdf_pdfium_pdfium__engine.cc
new file mode 100644
index 0000000..e691bda
--- /dev/null
+++ b/chromium-new/patches/patch-pdf_pdfium_pdfium__engine.cc
@@ -0,0 +1,58 @@
+$NetBSD$
+
+--- pdf/pdfium/pdfium_engine.cc.orig	2016-06-24 01:02:26.000000000 +0000
++++ pdf/pdfium/pdfium_engine.cc
+@@ -121,7 +121,7 @@ std::vector<uint32_t> GetPageNumbersFrom
+   return page_numbers;
+ }
+ 
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_BSD)
+ 
+ PP_Instance g_last_instance_id;
+ 
+@@ -507,7 +507,7 @@ bool InitializeSDK() {
+   config.m_v8EmbedderSlot = gin::kEmbedderPDFium;
+   FPDF_InitLibraryWithConfig(&config);
+ 
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_BSD)
+   // Font loading doesn't work in the renderer sandbox in Linux.
+   FPDF_SetSystemFontInfo(&g_font_info);
+ #endif
+@@ -620,7 +620,7 @@ PDFiumEngine::PDFiumEngine(PDFEngine::Cl
+   IFSDK_PAUSE::user = nullptr;
+   IFSDK_PAUSE::NeedToPauseNow = Pause_NeedToPauseNow;
+ 
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_BSD)
+   // PreviewModeClient does not know its pp::Instance.
+   pp::Instance* instance = client_->GetPluginInstance();
+   if (instance)
+@@ -1330,7 +1330,7 @@ pp::Buffer_Dev PDFiumEngine::PrintPagesA
+     FPDF_ClosePage(pdf_page);
+   }
+ 
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_BSD)
+   g_last_instance_id = client_->GetPluginInstance()->pp_instance();
+ #endif
+ 
+@@ -2692,7 +2692,7 @@ bool PDFiumEngine::ContinuePaint(int pro
+   DCHECK_LT(static_cast<size_t>(progressive_index), progressive_paints_.size());
+   DCHECK(image_data);
+ 
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_BSD)
+   g_last_instance_id = client_->GetPluginInstance()->pp_instance();
+ #endif
+ 
+@@ -3146,7 +3146,7 @@ void PDFiumEngine::SetCurrentPage(int in
+     FORM_DoPageAAction(old_page, form_, FPDFPAGE_AACTION_CLOSE);
+   }
+   most_visible_page_ = index;
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_BSD)
+     g_last_instance_id = client_->GetPluginInstance()->pp_instance();
+ #endif
+   if (most_visible_page_ != -1 && called_do_document_action_) {
diff --git a/chromium-new/patches/patch-pdf_pdfium_pdfium_engine_cc b/chromium-new/patches/patch-pdf_pdfium_pdfium_engine_cc
deleted file mode 100644
index 71f99b4..0000000
--- a/chromium-new/patches/patch-pdf_pdfium_pdfium_engine_cc
+++ /dev/null
@@ -1,48 +0,0 @@
-$OpenBSD: patch-pdf_pdfium_pdfium_engine_cc,v 1.7 2016/01/23 18:49:31 robert Exp $
---- pdf/pdfium/pdfium_engine.cc.orig.port	Wed Jan 20 21:01:22 2016
-+++ pdf/pdfium/pdfium_engine.cc	Fri Jan 22 19:58:58 2016
-@@ -115,7 +115,7 @@ std::vector<uint32_t> GetPageNumbersFromPrintPageNumbe
-   return page_numbers;
- }
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
- 
- PP_Instance g_last_instance_id;
- 
-@@ -479,7 +479,7 @@ bool InitializeSDK() {
-   config.m_v8EmbedderSlot = gin::kEmbedderPDFium;
-   FPDF_InitLibraryWithConfig(&config);
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   // Font loading doesn't work in the renderer sandbox in Linux.
-   FPDF_SetSystemFontInfo(&g_font_info);
- #endif
-@@ -1393,7 +1393,7 @@ pp::Buffer_Dev PDFiumEngine::PrintPagesAsRasterPDF(
-     FPDF_ClosePage(pdf_page);
-   }
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   g_last_instance_id = client_->GetPluginInstance()->pp_instance();
- #endif
- 
-@@ -2799,7 +2799,7 @@ bool PDFiumEngine::ContinuePaint(int progressive_index
-   DCHECK_LT(static_cast<size_t>(progressive_index), progressive_paints_.size());
-   DCHECK(image_data);
- 
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-   g_last_instance_id = client_->GetPluginInstance()->pp_instance();
- #endif
- 
-@@ -3255,7 +3255,7 @@ void PDFiumEngine::SetCurrentPage(int index) {
-     FORM_DoPageAAction(old_page, form_, FPDFPAGE_AACTION_CLOSE);
-   }
-   most_visible_page_ = index;
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_BSD)
-     g_last_instance_id = client_->GetPluginInstance()->pp_instance();
- #endif
-   if (most_visible_page_ != -1 && called_do_document_action_) {
diff --git a/chromium-new/patches/patch-ppapi_proxy_file__io__resource.cc b/chromium-new/patches/patch-ppapi_proxy_file__io__resource.cc
new file mode 100644
index 0000000..a379bfa
--- /dev/null
+++ b/chromium-new/patches/patch-ppapi_proxy_file__io__resource.cc
@@ -0,0 +1,50 @@
+$NetBSD$
+
+--- ppapi/proxy/file_io_resource.cc.orig	2016-06-24 01:02:26.000000000 +0000
++++ ppapi/proxy/file_io_resource.cc
+@@ -285,17 +285,19 @@ int32_t FileIOResource::Write(int64_t of
+ 
+   if (check_quota_) {
+     int64_t increase = 0;
+-    uint64_t max_offset = 0;
++    uint64_t _max_offset = 0;
++    // (rene) avoid name collission with /usr/include/vm/vm_map.h on FreeBSD
++    // which also defines max_offset
+     bool append = (open_flags_ & PP_FILEOPENFLAG_APPEND) != 0;
+     if (append) {
+       increase = bytes_to_write;
+     } else {
+-      uint64_t max_offset = offset + bytes_to_write;
+-      if (max_offset >
++      uint64_t _max_offset = offset + bytes_to_write;
++      if (_max_offset >
+           static_cast<uint64_t>(std::numeric_limits<int64_t>::max())) {
+         return PP_ERROR_FAILED;  // amount calculation would overflow.
+       }
+-      increase = static_cast<int64_t>(max_offset) - max_written_offset_;
++      increase = static_cast<int64_t>(_max_offset) - max_written_offset_;
+     }
+ 
+     if (increase > 0) {
+@@ -319,7 +321,7 @@ int32_t FileIOResource::Write(int64_t of
+       if (append)
+         append_mode_write_amount_ += bytes_to_write;
+       else
+-        max_written_offset_ = max_offset;
++        max_written_offset_ = _max_offset;
+     }
+   }
+   return WriteValidated(offset, buffer, bytes_to_write, callback);
+@@ -597,9 +599,9 @@ void FileIOResource::OnRequestWriteQuota
+   } else {
+     DCHECK_LE(offset + bytes_to_write - max_written_offset_, granted);
+ 
+-    int64_t max_offset = offset + bytes_to_write;
+-    if (max_written_offset_ < max_offset)
+-      max_written_offset_ = max_offset;
++    int64_t _max_offset = offset + bytes_to_write;
++    if (max_written_offset_ < _max_offset)
++      max_written_offset_ = _max_offset;
+   }
+ 
+   if (callback->is_blocking()) {
diff --git a/chromium-new/patches/patch-ppapi_shared__impl_private_net__address__private__impl.cc b/chromium-new/patches/patch-ppapi_shared__impl_private_net__address__private__impl.cc
new file mode 100644
index 0000000..ef5209f
--- /dev/null
+++ b/chromium-new/patches/patch-ppapi_shared__impl_private_net__address__private__impl.cc
@@ -0,0 +1,18 @@
+$NetBSD$
+
+--- ppapi/shared_impl/private/net_address_private_impl.cc.orig	2016-06-24 01:02:26.000000000 +0000
++++ ppapi/shared_impl/private/net_address_private_impl.cc
+@@ -26,9 +26,12 @@
+ #include <arpa/inet.h>
+ #include <sys/socket.h>
+ #include <sys/types.h>
++#if defined(OS_BSD)
++#include <netinet/in.h>
++#endif
+ #endif
+ 
+-#if defined(OS_MACOSX)
++#if defined(OS_MACOSX) || defined(OS_BSD)
+ // This is a bit evil, but it's standard operating procedure for |s6_addr|....
+ #define s6_addr16 __u6_addr.__u6_addr16
+ #endif
diff --git a/chromium-new/patches/patch-ppapi_shared_impl_private_net_address_private_impl_cc b/chromium-new/patches/patch-ppapi_shared_impl_private_net_address_private_impl_cc
deleted file mode 100644
index f677bc3..0000000
--- a/chromium-new/patches/patch-ppapi_shared_impl_private_net_address_private_impl_cc
+++ /dev/null
@@ -1,15 +0,0 @@
-$OpenBSD: patch-ppapi_shared_impl_private_net_address_private_impl_cc,v 1.4 2013/04/03 08:19:10 robert Exp $
---- ppapi/shared_impl/private/net_address_private_impl.cc.orig.port	Fri Mar 22 02:13:12 2013
-+++ ppapi/shared_impl/private/net_address_private_impl.cc	Tue Apr  2 21:05:17 2013
-@@ -28,7 +28,10 @@
- #include "ppapi/shared_impl/var.h"
- #include "ppapi/thunk/thunk.h"
- 
--#if defined(OS_MACOSX)
-+#include <sys/types.h>
-+#include <netinet/in.h>
-+
-+#if defined(OS_MACOSX) || defined(OS_BSD)
- // This is a bit evil, but it's standard operating procedure for |s6_addr|....
- #define s6_addr16 __u6_addr.__u6_addr16
- #endif
diff --git a/chromium-new/patches/patch-printing_backend_cups_helper_cc b/chromium-new/patches/patch-printing_backend_cups_helper_cc
deleted file mode 100644
index de335e7..0000000
--- a/chromium-new/patches/patch-printing_backend_cups_helper_cc
+++ /dev/null
@@ -1,15 +0,0 @@
-$OpenBSD: patch-printing_backend_cups_helper_cc,v 1.7 2015/10/14 16:42:07 robert Exp $
---- printing/backend/cups_helper.cc.orig.port	Wed Oct  7 04:42:13 2015
-+++ printing/backend/cups_helper.cc	Wed Oct 14 07:41:13 2015
-@@ -291,10 +291,7 @@ bool GetColorModelSettings(ppd_file_t* ppd,
-                            ColorModel* cm_black,
-                            ColorModel* cm_color,
-                            bool* is_color) {
--  bool is_color_device = false;
--  ppd_attr_t* attr = ppdFindAttr(ppd, kColorDevice, NULL);
--  if (attr && attr->value)
--    is_color_device = ppd->color_device;
-+  bool is_color_device = ppd->color_device;
- 
-   *is_color = is_color_device;
-   return (is_color_device &&
diff --git a/chromium-new/patches/patch-printing_printing.gyp b/chromium-new/patches/patch-printing_printing.gyp
new file mode 100644
index 0000000..46284c7
--- /dev/null
+++ b/chromium-new/patches/patch-printing_printing.gyp
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- printing/printing.gyp.orig	2016-06-24 01:02:26.000000000 +0000
++++ printing/printing.gyp
+@@ -187,7 +187,7 @@
+             'backend/print_backend_chromeos.cc',
+           ],
+         }],
+-        ['OS=="linux" and chromeos==0', {
++        ['(OS=="linux" or os_bsd == 1) and chromeos==0', {
+           'sources': [
+             'printing_context_linux.cc',
+             'printing_context_linux.h',
diff --git a/chromium-new/patches/patch-printing_printing_gyp b/chromium-new/patches/patch-printing_printing_gyp
deleted file mode 100644
index 1ae756c..0000000
--- a/chromium-new/patches/patch-printing_printing_gyp
+++ /dev/null
@@ -1,25 +0,0 @@
-$OpenBSD: patch-printing_printing_gyp,v 1.32 2016/01/23 18:49:31 robert Exp $
---- printing/printing.gyp.orig.port	Wed Jan 20 21:01:22 2016
-+++ printing/printing.gyp	Fri Jan 22 19:58:58 2016
-@@ -187,7 +187,7 @@
-             'backend/print_backend_chromeos.cc',
-           ],
-         }],
--        ['OS=="linux" and chromeos==0', {
-+        ['(OS=="linux" or os_bsd ==1) and chromeos==0', {
-           'sources': [
-             'printing_context_linux.cc',
-             'printing_context_linux.h',
-@@ -288,6 +288,12 @@
-               ['os_bsd==1', {
-                 'cflags': [
-                   '<!@(python cups_config_helper.py --cflags <(sysroot))',
-+                ],
-+              }],
-+              [ 'OS == "openbsd"', {
-+                'cflags': [
-+                  '<!@(python cups_config_helper.py --cflags)',
-+                  '-Wno-deprecated-declarations',
-                 ],
-               }],
-             ],
diff --git a/chromium-new/patches/patch-remoting_remoting__host.gypi b/chromium-new/patches/patch-remoting_remoting__host.gypi
new file mode 100644
index 0000000..2940683
--- /dev/null
+++ b/chromium-new/patches/patch-remoting_remoting__host.gypi
@@ -0,0 +1,31 @@
+$NetBSD$
+
+--- remoting/remoting_host.gypi.orig	2016-06-24 01:02:26.000000000 +0000
++++ remoting/remoting_host.gypi
+@@ -18,7 +18,7 @@
+         'remoting_host_win.gypi',
+       ],
+     }],
+-    ['OS=="linux"', {
++    ['OS=="linux" or os_bsd==1', {
+       'includes': [
+         'remoting_host_linux.gypi',
+       ],
+@@ -57,7 +57,7 @@
+             '<@(remoting_host_sources)',
+           ],
+           'conditions': [
+-            ['OS=="linux"', {
++            ['OS=="linux" or os_bsd==1', {
+               'conditions': [
+                 ['use_x11==1', {
+                   'dependencies': [
+@@ -649,7 +649,7 @@
+                 'host/it2me/it2me_native_messaging_host_main.h',
+               ],
+               'conditions': [
+-                ['OS=="linux" and chromeos==0 and use_ozone==0', {
++                ['(OS=="linux" or os_bsd==1) and chromeos==0 and use_ozone==0', {
+                   'dependencies': [
+                     # Always use GTK on Linux, even for Aura builds.
+                     '../build/linux/system.gyp:gtk2',
diff --git a/chromium-new/patches/patch-remoting_remoting_all_gyp b/chromium-new/patches/patch-remoting_remoting_all_gyp
deleted file mode 100644
index acf754c..0000000
--- a/chromium-new/patches/patch-remoting_remoting_all_gyp
+++ /dev/null
@@ -1,11 +0,0 @@
-$OpenBSD: patch-remoting_remoting_all_gyp,v 1.2 2015/12/05 16:13:32 robert Exp $
---- remoting/remoting_all.gyp.orig.port	Wed Dec  2 13:51:41 2015
-+++ remoting/remoting_all.gyp	Wed Dec  2 13:51:46 2015
-@@ -60,7 +60,6 @@
-             '../remoting/remoting.gyp:remoting_host_setup_base',
-             '../remoting/remoting.gyp:remoting_native_messaging_base',
-             '../remoting/remoting.gyp:remoting_native_messaging_manifests',
--            '../remoting/remoting.gyp:remoting_perftests',
-             '../remoting/remoting.gyp:remoting_start_host',
-           ],
-         }],
diff --git a/chromium-new/patches/patch-remoting_remoting_host_gypi b/chromium-new/patches/patch-remoting_remoting_host_gypi
deleted file mode 100644
index bf78528..0000000
--- a/chromium-new/patches/patch-remoting_remoting_host_gypi
+++ /dev/null
@@ -1,30 +0,0 @@
-$OpenBSD: patch-remoting_remoting_host_gypi,v 1.14 2016/01/23 18:49:31 robert Exp $
---- remoting/remoting_host.gypi.orig.port	Wed Jan 20 21:01:23 2016
-+++ remoting/remoting_host.gypi	Fri Jan 22 19:58:58 2016
-@@ -18,7 +18,7 @@
-         'remoting_host_win.gypi',
-       ],
-     }],
--    ['OS=="linux"', {
-+    ['OS=="linux" or os_bsd==1', {
-       'includes': [
-         'remoting_host_linux.gypi',
-       ],
-@@ -57,7 +57,7 @@
-             '<@(remoting_host_sources)',
-           ],
-           'conditions': [
--            ['OS=="linux"', {
-+            ['OS=="linux" or os_bsd==1', {
-               'conditions': [
-                 ['use_x11==1', {
-                   'dependencies': [
-@@ -670,7 +670,7 @@
-                 'host/it2me/it2me_native_messaging_host_main.h',
-               ],
-               'conditions': [
--                ['OS=="linux" and chromeos==0 and use_ozone==0', {
-+                ['(os_bsd==1 or OS=="linux") and chromeos==0 and use_ozone==0', {
-                   'dependencies': [
-                     # Always use GTK on Linux, even for Aura builds.
-                     '../build/linux/system.gyp:gtk2',
diff --git a/chromium-new/patches/patch-skia_ext_SkMemory__new__handler.cpp b/chromium-new/patches/patch-skia_ext_SkMemory__new__handler.cpp
new file mode 100644
index 0000000..ed93bf4
--- /dev/null
+++ b/chromium-new/patches/patch-skia_ext_SkMemory__new__handler.cpp
@@ -0,0 +1,22 @@
+$NetBSD$
+
+--- skia/ext/SkMemory_new_handler.cpp.orig	2016-06-24 01:02:27.000000000 +0000
++++ skia/ext/SkMemory_new_handler.cpp
+@@ -62,7 +62,7 @@ static void* sk_malloc_nothrow(size_t si
+     // TODO(b.kelemen): we should always use UncheckedMalloc but currently it
+     // doesn't work as intended everywhere.
+     void* result;
+-#if  defined(OS_IOS)
++#if  defined(OS_IOS) || defined(OS_FREEBSD)
+     result = malloc(size);
+ #else
+     // It's the responsibility of the caller to check the return value.
+@@ -89,7 +89,7 @@ void* sk_calloc(size_t size) {
+     // TODO(b.kelemen): we should always use UncheckedCalloc but currently it
+     // doesn't work as intended everywhere.
+     void* result;
+-#if  defined(OS_IOS)
++#if  defined(OS_IOS) || defined(OS_FREEBSD)
+     result = calloc(1, size);
+ #else
+     // It's the responsibility of the caller to check the return value.
diff --git a/chromium-new/patches/patch-skia_ext_SkMemory_new_handler_cpp b/chromium-new/patches/patch-skia_ext_SkMemory_new_handler_cpp
deleted file mode 100644
index d3c0ec8..0000000
--- a/chromium-new/patches/patch-skia_ext_SkMemory_new_handler_cpp
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-skia_ext_SkMemory_new_handler_cpp,v 1.2 2015/09/05 16:06:50 robert Exp $
---- skia/ext/SkMemory_new_handler.cpp.orig.port	Wed Sep  2 20:10:58 2015
-+++ skia/ext/SkMemory_new_handler.cpp	Wed Sep  2 20:11:14 2015
-@@ -62,7 +62,7 @@ static void* sk_malloc_nothrow(size_t size) {
-     // TODO(b.kelemen): we should always use UncheckedMalloc but currently it
-     // doesn't work as intended everywhere.
-     void* result;
--#if  defined(OS_IOS)
-+#if  defined(OS_IOS) || defined(OS_BSD)
-     result = malloc(size);
- #else
-     // It's the responsibility of the caller to check the return value.
diff --git a/chromium-new/patches/patch-skia_ext_platform__canvas.h b/chromium-new/patches/patch-skia_ext_platform__canvas.h
new file mode 100644
index 0000000..43ddd5d
--- /dev/null
+++ b/chromium-new/patches/patch-skia_ext_platform__canvas.h
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- skia/ext/platform_canvas.h.orig	2016-06-24 01:02:27.000000000 +0000
++++ skia/ext/platform_canvas.h
+@@ -71,7 +71,7 @@ enum OnFailureType {
+                                         uint8_t* context,
+                                         OnFailureType failure_type);
+ #elif defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) || \
+-      defined(__sun) || defined(ANDROID)
++      defined(__sun) || defined(ANDROID) || defined(OS_NETBSD)
+   // Linux ---------------------------------------------------------------------
+ 
+   // Construct a canvas from the given memory region. The memory is not cleared
diff --git a/chromium-new/patches/patch-skia_skia__chrome.gypi b/chromium-new/patches/patch-skia_skia__chrome.gypi
new file mode 100644
index 0000000..ea1404d
--- /dev/null
+++ b/chromium-new/patches/patch-skia_skia__chrome.gypi
@@ -0,0 +1,16 @@
+$NetBSD$
+
+--- skia/skia_chrome.gypi.orig	2016-06-24 01:02:27.000000000 +0000
++++ skia/skia_chrome.gypi
+@@ -61,6 +61,11 @@
+         'ext/platform_canvas.cc',
+       ],
+     }],
++    [ 'use_cairo == 1', {
++      'dependencies': [
++        '../build/linux/system.gyp:pangocairo',
++      ],
++    }],
+     [ 'OS == "android" and '
+       'enable_basic_printing==0 and enable_print_preview==0', {
+       'sources!': [
diff --git a/chromium-new/patches/patch-skia_skia__common.gypi b/chromium-new/patches/patch-skia_skia__common.gypi
new file mode 100644
index 0000000..0dc791f
--- /dev/null
+++ b/chromium-new/patches/patch-skia_skia__common.gypi
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- skia/skia_common.gypi.orig	2016-06-24 01:02:27.000000000 +0000
++++ skia/skia_common.gypi
+@@ -65,7 +65,7 @@
+     }],
+ 
+     #Settings for text blitting, chosen to approximate the system browser.
+-    [ 'OS == "linux"', {
++    [ 'OS == "linux" or os_bsd == 1', {
+       'defines': [
+         'SK_GAMMA_EXPONENT=1.2',
+         'SK_GAMMA_CONTRAST=0.2',
diff --git a/chromium-new/patches/patch-skia_skia_chrome_gypi b/chromium-new/patches/patch-skia_skia_chrome_gypi
deleted file mode 100644
index 9411522..0000000
--- a/chromium-new/patches/patch-skia_skia_chrome_gypi
+++ /dev/null
@@ -1,15 +0,0 @@
-$OpenBSD: patch-skia_skia_chrome_gypi,v 1.12 2015/10/14 16:42:07 robert Exp $
---- skia/skia_chrome.gypi.orig.port	Wed Oct 14 07:55:02 2015
-+++ skia/skia_chrome.gypi	Wed Oct 14 07:55:25 2015
-@@ -55,6 +55,11 @@
-     'ext/skia_utils_win.cc',
-   ],
-   'conditions': [
-+    [ 'use_cairo == 1', {
-+      'dependencies': [
-+        '../build/linux/system.gyp:pangocairo',
-+      ],
-+    }],
-     [ 'OS == "ios"', {
-       'sources!': [
-         'ext/platform_canvas.cc',
diff --git a/chromium-new/patches/patch-skia_skia_common_gypi b/chromium-new/patches/patch-skia_skia_common_gypi
deleted file mode 100644
index 132640d..0000000
--- a/chromium-new/patches/patch-skia_skia_common_gypi
+++ /dev/null
@@ -1,12 +0,0 @@
-$OpenBSD: patch-skia_skia_common_gypi,v 1.5 2015/10/14 16:42:07 robert Exp $
---- skia/skia_common.gypi.orig.port	Wed Oct  7 04:42:14 2015
-+++ skia/skia_common.gypi	Wed Oct 14 07:41:13 2015
-@@ -65,7 +65,7 @@
-     }],
- 
-     #Settings for text blitting, chosen to approximate the system browser.
--    [ 'OS == "linux"', {
-+    [ 'OS == "linux" or os_bsd == 1', {
-       'defines': [
-         'SK_GAMMA_EXPONENT=1.2',
-         'SK_GAMMA_CONTRAST=0.2',
diff --git a/chromium-new/patches/patch-sync_util_get__session__name.cc b/chromium-new/patches/patch-sync_util_get__session__name.cc
new file mode 100644
index 0000000..5b3764b
--- /dev/null
+++ b/chromium-new/patches/patch-sync_util_get__session__name.cc
@@ -0,0 +1,22 @@
+$NetBSD$
+
+--- sync/util/get_session_name.cc.orig	2016-06-24 01:02:27.000000000 +0000
++++ sync/util/get_session_name.cc
+@@ -15,7 +15,7 @@
+ 
+ #if defined(OS_CHROMEOS)
+ #include "chromeos/system/devicetype.h"
+-#elif defined(OS_LINUX)
++#elif (defined(OS_LINUX) || defined(OS_BSD))
+ #include "sync/util/get_session_name_linux.h"
+ #elif defined(OS_IOS)
+ #include "sync/util/get_session_name_ios.h"
+@@ -51,7 +51,7 @@ std::string GetSessionNameSynchronously(
+       session_name = "Chromebook";
+       break;
+   }
+-#elif defined(OS_LINUX)
++#elif defined(OS_LINUX) || defined(OS_BSD)
+   session_name = internal::GetHostname();
+ #elif defined(OS_IOS)
+   session_name = internal::GetComputerName();
diff --git a/chromium-new/patches/patch-sync_util_get__session__name__linux.cc b/chromium-new/patches/patch-sync_util_get__session__name__linux.cc
new file mode 100644
index 0000000..10c450c
--- /dev/null
+++ b/chromium-new/patches/patch-sync_util_get__session__name__linux.cc
@@ -0,0 +1,16 @@
+$NetBSD$
+
+--- sync/util/get_session_name_linux.cc.orig	2016-06-24 01:02:27.000000000 +0000
++++ sync/util/get_session_name_linux.cc
+@@ -13,8 +13,9 @@ namespace syncer {
+ namespace internal {
+ 
+ std::string GetHostname() {
+-  char hostname[HOST_NAME_MAX];
+-  if (gethostname(hostname, HOST_NAME_MAX) == 0)  // Success.
++  int len = sysconf(_SC_HOST_NAME_MAX);
++  char hostname[len];
++  if (gethostname(hostname, len) == 0)  // Success.
+     return hostname;
+   return base::GetLinuxDistro();
+ }
diff --git a/chromium-new/patches/patch-sync_util_get_session_name_cc b/chromium-new/patches/patch-sync_util_get_session_name_cc
deleted file mode 100644
index 0d11933..0000000
--- a/chromium-new/patches/patch-sync_util_get_session_name_cc
+++ /dev/null
@@ -1,21 +0,0 @@
-$OpenBSD: patch-sync_util_get_session_name_cc,v 1.4 2015/09/05 16:06:50 robert Exp $
---- sync/util/get_session_name.cc.orig.port	Wed Sep  2 20:11:21 2015
-+++ sync/util/get_session_name.cc	Wed Sep  2 20:11:30 2015
-@@ -14,7 +14,7 @@
- 
- #if defined(OS_CHROMEOS)
- #include "chromeos/system/devicetype.h"
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
- #include "sync/util/get_session_name_linux.h"
- #elif defined(OS_IOS)
- #include "sync/util/get_session_name_ios.h"
-@@ -50,7 +50,7 @@ std::string GetSessionNameSynchronously() {
-       session_name = "Chromebook";
-       break;
-   }
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_BSD)
-   session_name = internal::GetHostname();
- #elif defined(OS_IOS)
-   session_name = internal::GetComputerName();
diff --git a/chromium-new/patches/patch-sync_util_get_session_name_linux_cc b/chromium-new/patches/patch-sync_util_get_session_name_linux_cc
deleted file mode 100644
index 696ae72..0000000
--- a/chromium-new/patches/patch-sync_util_get_session_name_linux_cc
+++ /dev/null
@@ -1,15 +0,0 @@
-$OpenBSD: patch-sync_util_get_session_name_linux_cc,v 1.1 2013/10/29 06:51:34 robert Exp $
---- sync/util/get_session_name_linux.cc.orig.port	Sun Oct 20 19:08:41 2013
-+++ sync/util/get_session_name_linux.cc	Sun Oct 20 19:08:51 2013
-@@ -13,8 +13,9 @@ namespace syncer {
- namespace internal {
- 
- std::string GetHostname() {
--  char hostname[HOST_NAME_MAX];
--  if (gethostname(hostname, HOST_NAME_MAX) == 0)  // Success.
-+  int len = sysconf(_SC_HOST_NAME_MAX);
-+  char hostname[len];
-+  if (gethostname(hostname, len) == 0)  // Success.
-     return hostname;
-   return base::GetLinuxDistro();
- }
diff --git a/chromium-new/patches/patch-testing_gtest_src_gtest.cc b/chromium-new/patches/patch-testing_gtest_src_gtest.cc
new file mode 100644
index 0000000..05bf03d
--- /dev/null
+++ b/chromium-new/patches/patch-testing_gtest_src_gtest.cc
@@ -0,0 +1,24 @@
+$NetBSD$
+
+--- testing/gtest/src/gtest.cc.orig	2016-06-24 01:03:28.000000000 +0000
++++ testing/gtest/src/gtest.cc
+@@ -122,6 +122,10 @@
+ 
+ #endif  // GTEST_OS_LINUX
+ 
++#if GTEST_OS_FREEBSD
++# include <sys/socket.h>
++#endif
++
+ #if GTEST_HAS_EXCEPTIONS
+ # include <stdexcept>
+ #endif
+@@ -1930,7 +1934,7 @@ bool String::CaseInsensitiveWideCStringE
+ 
+ #if GTEST_OS_WINDOWS
+   return _wcsicmp(lhs, rhs) == 0;
+-#elif GTEST_OS_LINUX && !GTEST_OS_LINUX_ANDROID
++#elif GTEST_OS_LINUX && !GTEST_OS_LINUX_ANDROID && !GTEST_OS_FREEBSD
+   return wcscasecmp(lhs, rhs) == 0;
+ #else
+   // Android, Mac OS X and Cygwin don't define wcscasecmp.
diff --git a/chromium-new/patches/patch-testing_perf_perf__test.cc b/chromium-new/patches/patch-testing_perf_perf__test.cc
new file mode 100644
index 0000000..92a5462
--- /dev/null
+++ b/chromium-new/patches/patch-testing_perf_perf__test.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+--- testing/perf/perf_test.cc.orig	2016-06-24 01:02:27.000000000 +0000
++++ testing/perf/perf_test.cc
+@@ -2,10 +2,10 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+ 
+-#include "testing/perf/perf_test.h"
+-
+ #include <stdio.h>
+ 
++#include "testing/perf/perf_test.h"
++
+ #include "base/logging.h"
+ #include "base/strings/string_number_conversions.h"
+ #include "base/strings/stringprintf.h"
diff --git a/chromium-new/patches/patch-third__party_WebKit_Source_bindings_core_v8_V8ScriptRunner.cpp b/chromium-new/patches/patch-third__party_WebKit_Source_bindings_core_v8_V8ScriptRunner.cpp
new file mode 100644
index 0000000..39a0f9c
--- /dev/null
+++ b/chromium-new/patches/patch-third__party_WebKit_Source_bindings_core_v8_V8ScriptRunner.cpp
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- third_party/WebKit/Source/bindings/core/v8/V8ScriptRunner.cpp.orig	2016-06-24 01:02:44.000000000 +0000
++++ third_party/WebKit/Source/bindings/core/v8/V8ScriptRunner.cpp
+@@ -43,6 +43,8 @@
+ 
+ #if OS(WIN)
+ #include <malloc.h>
++#elif OS(FREEBSD) || defined(OS_NETBSD)
++#include <stdlib.h>
+ #else
+ #include <alloca.h>
+ #endif
diff --git a/chromium-new/patches/patch-third__party_WebKit_Source_core_core.gyp b/chromium-new/patches/patch-third__party_WebKit_Source_core_core.gyp
new file mode 100644
index 0000000..29697d8
--- /dev/null
+++ b/chromium-new/patches/patch-third__party_WebKit_Source_core_core.gyp
@@ -0,0 +1,22 @@
+$NetBSD$
+
+--- third_party/WebKit/Source/core/core.gyp.orig	2016-06-24 01:02:44.000000000 +0000
++++ third_party/WebKit/Source/core/core.gyp
+@@ -372,7 +372,7 @@
+             'layout/LayoutThemeMac.mm',
+           ],
+         }],
+-        ['OS != "linux"', {
++        ['OS != "linux" and os_bsd != 1', {
+           'sources!': [
+             'layout/LayoutThemeLinux.cpp',
+             'layout/LayoutThemeLinux.h',
+@@ -644,7 +644,7 @@
+                 'layout/LayoutThemeMac.mm',
+               ],
+             }],
+-            ['OS != "linux"', {
++            ['OS != "linux" and OS != "openbsd" and OS != "freebsd"', {
+               'sources!': [
+                 'layout/LayoutThemeLinux.cpp',
+                 'layout/LayoutThemeLinux.h',
diff --git a/chromium-new/patches/patch-third__party_WebKit_Source_modules_battery_battery__status.h b/chromium-new/patches/patch-third__party_WebKit_Source_modules_battery_battery__status.h
new file mode 100644
index 0000000..223cca6
--- /dev/null
+++ b/chromium-new/patches/patch-third__party_WebKit_Source_modules_battery_battery__status.h
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- third_party/WebKit/Source/modules/battery/battery_status.h.orig	2016-06-24 01:02:46.000000000 +0000
++++ third_party/WebKit/Source/modules/battery/battery_status.h
+@@ -46,7 +46,7 @@ class MODULES_EXPORT BatteryStatus final
+     // of reducing the possibility of fingerprinting and triggers less level
+     // change events on platforms where the granularity is high.
+     ASSERT(level >= 0 && level <= 1);
+-    return std::round(level * 100) / 100.f;
++    return round(level * 100) / 100.f;
+   }
+ 
+   bool charging_;
diff --git a/chromium-new/patches/patch-third__party_WebKit_Source_platform_blink__platform.gyp b/chromium-new/patches/patch-third__party_WebKit_Source_platform_blink__platform.gyp
new file mode 100644
index 0000000..88a1af5
--- /dev/null
+++ b/chromium-new/patches/patch-third__party_WebKit_Source_platform_blink__platform.gyp
@@ -0,0 +1,44 @@
+$NetBSD$
+
+--- third_party/WebKit/Source/platform/blink_platform.gyp.orig	2016-06-24 01:02:46.000000000 +0000
++++ third_party/WebKit/Source/platform/blink_platform.gyp
+@@ -38,6 +38,9 @@
+   'targets': [{
+     'target_name': 'blink_common',
+     'type': '<(component)',
++    'include_dirs': [
++      '<(prefix_dir)/include',
++    ],
+     'variables': { 'enable_wexit_time_destructors': 1 },
+     'dependencies': [
+       '../config.gyp:config',
+@@ -222,7 +225,7 @@
+           ['include', 'graphics/cpu/x86/WebGLImageConversionSSE\\.h$'],
+         ],
+       }],
+-      ['OS=="linux" or OS=="android"', {
++      ['OS=="linux" or OS=="android" or os_bsd==1', {
+         'sources/': [
+           ['include', 'fonts/linux/FontPlatformDataLinux\\.cpp$'],
+         ]
+@@ -301,7 +304,7 @@
+           ['exclude', 'scroll/ScrollbarThemeMac'],
+         ],
+       }],
+-      ['OS != "linux" and OS != "mac" and OS != "win"', {
++      ['OS != "linux" and OS != "mac" and OS != "win" and os_bsd != 1', {
+         'sources/': [
+           ['exclude', 'VDMX[^/]+\\.(cpp|h)$'],
+         ],
+@@ -347,6 +350,11 @@
+           ['exclude', 'scroll/ScrollbarThemeAura\\.(cpp|h)'],
+         ],
+       }],
++      ['use_system_icu==1', {
++        'defines': [
++          'USING_SYSTEM_ICU',
++        ],
++      }],
+       ['"WTF_USE_WEBAUDIO_FFMPEG=1" in feature_defines', {
+         'include_dirs': [
+           '<(DEPTH)/third_party/ffmpeg',
diff --git a/chromium-new/patches/patch-third__party_WebKit_Source_platform_fonts_FontCache.cpp b/chromium-new/patches/patch-third__party_WebKit_Source_platform_fonts_FontCache.cpp
new file mode 100644
index 0000000..b07ba91
--- /dev/null
+++ b/chromium-new/patches/patch-third__party_WebKit_Source_platform_fonts_FontCache.cpp
@@ -0,0 +1,20 @@
+$NetBSD$
+
+--- third_party/WebKit/Source/platform/fonts/FontCache.cpp.orig	2016-06-24 01:02:46.000000000 +0000
++++ third_party/WebKit/Source/platform/fonts/FontCache.cpp
+@@ -59,13 +59,13 @@ using namespace WTF;
+ 
+ namespace blink {
+ 
+-#if !OS(WIN) && !OS(LINUX)
++#if !OS(WIN) && !OS(LINUX) && !OS(FREEBSD) && !OS(OPENBSD) && !OS(NETBSD)
+ FontCache::FontCache()
+     : m_purgePreventCount(0)
+     , m_fontManager(nullptr)
+ {
+ }
+-#endif // !OS(WIN) && !OS(LINUX)
++#endif // !OS(WIN) && !OS(LINUX) && !OS(FREEBSD) && !OS(OPENBSD) && !OS(NETBSD)
+ 
+ typedef HashMap<FontCacheKey, OwnPtr<FontPlatformData>, FontCacheKeyHash, FontCacheKeyTraits> FontPlatformDataCache;
+ typedef HashMap<FallbackListCompositeKey, OwnPtr<ShapeCache>, FallbackListCompositeKeyHash, FallbackListCompositeKeyTraits> FallbackListShaperCache;
diff --git a/chromium-new/patches/patch-third__party_WebKit_Source_platform_fonts_FontCache.h b/chromium-new/patches/patch-third__party_WebKit_Source_platform_fonts_FontCache.h
new file mode 100644
index 0000000..7d12f4f
--- /dev/null
+++ b/chromium-new/patches/patch-third__party_WebKit_Source_platform_fonts_FontCache.h
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- third_party/WebKit/Source/platform/fonts/FontCache.h.orig	2016-06-24 01:02:46.000000000 +0000
++++ third_party/WebKit/Source/platform/fonts/FontCache.h
+@@ -174,7 +174,7 @@ private:
+     // Implemented on skia platforms.
+     PassRefPtr<SkTypeface> createTypeface(const FontDescription&, const FontFaceCreationParams&, CString& name);
+ 
+-#if OS(ANDROID) || OS(LINUX)
++#if OS(ANDROID) || OS(LINUX) || OS(FREEBSD) || OS(OPENBSD) || OS(NETBSD)
+     static AtomicString getFamilyNameForCharacter(SkFontMgr*, UChar32, const FontDescription&, FontFallbackPriority);
+ #endif
+ 
diff --git a/chromium-new/patches/patch-third__party_WebKit_Source_platform_fonts_FontPlatformData.cpp b/chromium-new/patches/patch-third__party_WebKit_Source_platform_fonts_FontPlatformData.cpp
new file mode 100644
index 0000000..772f5ed
--- /dev/null
+++ b/chromium-new/patches/patch-third__party_WebKit_Source_platform_fonts_FontPlatformData.cpp
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- third_party/WebKit/Source/platform/fonts/FontPlatformData.cpp.orig	2016-06-24 01:02:46.000000000 +0000
++++ third_party/WebKit/Source/platform/fonts/FontPlatformData.cpp
+@@ -357,7 +357,7 @@ PassRefPtr<SharedBuffer> FontPlatformDat
+ {
+     RefPtr<SharedBuffer> buffer;
+ 
+-    SkFontTableTag tag = WTF::bswap32(table);
++    SkFontTableTag tag = bswap32(table);
+     const size_t tableSize = m_typeface->getTableSize(tag);
+     if (tableSize) {
+         Vector<char> tableBuffer(tableSize);
diff --git a/chromium-new/patches/patch-third__party_WebKit_Source_platform_fonts_skia_FontCacheSkia.cpp b/chromium-new/patches/patch-third__party_WebKit_Source_platform_fonts_skia_FontCacheSkia.cpp
new file mode 100644
index 0000000..2be78bc
--- /dev/null
+++ b/chromium-new/patches/patch-third__party_WebKit_Source_platform_fonts_skia_FontCacheSkia.cpp
@@ -0,0 +1,31 @@
+$NetBSD$
+
+--- third_party/WebKit/Source/platform/fonts/skia/FontCacheSkia.cpp.orig	2016-06-24 01:02:46.000000000 +0000
++++ third_party/WebKit/Source/platform/fonts/skia/FontCacheSkia.cpp
+@@ -60,7 +60,7 @@ static PassRefPtr<SkTypeface> typefaceFo
+ 
+ namespace blink {
+ 
+-#if OS(ANDROID) || OS(LINUX)
++#if OS(ANDROID) || OS(LINUX) || OS(FREEBSD) || OS(NETBSD)
+ // Android special locale for retrieving the color emoji font
+ // based on the proposed changes in UTR #51 for introducing
+ // an Emoji script code:
+@@ -171,7 +171,7 @@ PassRefPtr<SimpleFontData> FontCache::ge
+     return fontDataFromFontPlatformData(fontPlatformData, shouldRetain);
+ }
+ 
+-#if OS(WIN) || OS(LINUX)
++#if OS(WIN) || OS(LINUX) || OS(FREEBSD) || OS(NETBSD)
+ static inline SkFontStyle fontStyle(const FontDescription& fontDescription)
+ {
+     int width = static_cast<int>(fontDescription.stretch());
+@@ -232,7 +232,7 @@ PassRefPtr<SkTypeface> FontCache::create
+     }
+ #endif
+ 
+-#if OS(LINUX)
++#if OS(LINUX) || OS(FREEBSD) || OS(NETBSD)
+     // On linux if the fontManager has been overridden then we should be calling the embedder
+     // provided font Manager rather than calling SkTypeface::CreateFromName which may redirect the
+     // call to the default font Manager.
diff --git a/chromium-new/patches/patch-third__party_WebKit_Source_platform_heap_GCInfo.cpp b/chromium-new/patches/patch-third__party_WebKit_Source_platform_heap_GCInfo.cpp
new file mode 100644
index 0000000..19819bb
--- /dev/null
+++ b/chromium-new/patches/patch-third__party_WebKit_Source_platform_heap_GCInfo.cpp
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- third_party/WebKit/Source/platform/heap/GCInfo.cpp.orig	2016-06-24 01:02:46.000000000 +0000
++++ third_party/WebKit/Source/platform/heap/GCInfo.cpp
+@@ -7,6 +7,8 @@
+ #include "platform/heap/Handle.h"
+ #include "platform/heap/Heap.h"
+ 
++#include <stdlib.h>
++
+ namespace blink {
+ 
+ // GCInfo indices start from 1 for heap objects, with 0 being treated
diff --git a/chromium-new/patches/patch-third__party_WebKit_Source_platform_heap_StackFrameDepth.cpp b/chromium-new/patches/patch-third__party_WebKit_Source_platform_heap_StackFrameDepth.cpp
new file mode 100644
index 0000000..706c64c
--- /dev/null
+++ b/chromium-new/patches/patch-third__party_WebKit_Source_platform_heap_StackFrameDepth.cpp
@@ -0,0 +1,33 @@
+$NetBSD$
+
+--- third_party/WebKit/Source/platform/heap/StackFrameDepth.cpp.orig	2016-06-24 01:02:46.000000000 +0000
++++ third_party/WebKit/Source/platform/heap/StackFrameDepth.cpp
+@@ -6,6 +6,10 @@
+ 
+ #include "public/platform/Platform.h"
+ 
++#if OS(FREEBSD)
++#include <pthread_np.h>
++#endif
++
+ #if OS(WIN)
+ #include <stddef.h>
+ #include <windows.h>
+@@ -73,7 +77,7 @@ size_t StackFrameDepth::getUnderestimate
+     // FIXME: On Mac OSX and Linux, this method cannot estimate stack size
+     // correctly for the main thread.
+ 
+-#if defined(__GLIBC__) || OS(ANDROID) || OS(FREEBSD)
++#if defined(__GLIBC__) || OS(ANDROID) || OS(FREEBSD) || OS(NETBSD)
+     // pthread_getattr_np() can fail if the thread is not invoked by
+     // pthread_create() (e.g., the main thread of webkit_unit_tests).
+     // If so, a conservative size estimate is returned.
+@@ -135,7 +139,7 @@ size_t StackFrameDepth::getUnderestimate
+ 
+ void* StackFrameDepth::getStackStart()
+ {
+-#if defined(__GLIBC__) || OS(ANDROID) || OS(FREEBSD)
++#if defined(__GLIBC__) || OS(ANDROID) || OS(FREEBSD) || OS(NETBSD)
+     pthread_attr_t attr;
+     int error;
+ #if OS(FREEBSD)
diff --git a/chromium-new/patches/patch-third__party_WebKit_Source_platform_image-decoders_png_PNGImageDecoder.cpp b/chromium-new/patches/patch-third__party_WebKit_Source_platform_image-decoders_png_PNGImageDecoder.cpp
new file mode 100644
index 0000000..3f80ba2
--- /dev/null
+++ b/chromium-new/patches/patch-third__party_WebKit_Source_platform_image-decoders_png_PNGImageDecoder.cpp
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- third_party/WebKit/Source/platform/image-decoders/png/PNGImageDecoder.cpp.orig	2016-06-24 01:02:46.000000000 +0000
++++ third_party/WebKit/Source/platform/image-decoders/png/PNGImageDecoder.cpp
+@@ -234,7 +234,7 @@ void PNGImageDecoder::headerAvailable()
+ #endif
+             png_uint_32 profileLength = 0;
+             if (png_get_iCCP(png, info, &profileName, &compressionType, &profile, &profileLength)) {
+-                setColorProfileAndTransform(profile, profileLength, imageHasAlpha, false /* useSRGB */);
++                setColorProfileAndTransform(reinterpret_cast<const char*>(profile), profileLength, imageHasAlpha, false /* useSRGB */);
+             }
+         }
+ #endif // PNG_iCCP_SUPPORTED
diff --git a/chromium-new/patches/patch-third__party_WebKit_Source_platform_text_Character.cpp b/chromium-new/patches/patch-third__party_WebKit_Source_platform_text_Character.cpp
new file mode 100644
index 0000000..7891d25
--- /dev/null
+++ b/chromium-new/patches/patch-third__party_WebKit_Source_platform_text_Character.cpp
@@ -0,0 +1,24 @@
+$NetBSD$
+
+--- third_party/WebKit/Source/platform/text/Character.cpp.orig	2016-06-24 01:02:46.000000000 +0000
++++ third_party/WebKit/Source/platform/text/Character.cpp
+@@ -36,8 +36,8 @@
+ #include <unicode/uobject.h>
+ #include <unicode/uscript.h>
+ 
+-#if defined(USING_SYSTEM_ICU)
+-#include "platform/fonts/CharacterPropertyDataGenerator.h"
++#if defined(__FreeBSD__)
++#include "platform/text/CharacterPropertyDataGenerator.h"
+ #include <unicode/uniset.h>
+ #else
+ #define MUTEX_H // Prevent compile failure of utrie2.h on Windows
+@@ -49,7 +49,7 @@ using namespace Unicode;
+ 
+ namespace blink {
+ 
+-#if defined(USING_SYSTEM_ICU)
++#if defined(__FreeBSD__)
+ static icu::UnicodeSet* createUnicodeSet(
+     const UChar32* characters, size_t charactersCount,
+     const UChar32* ranges, size_t rangesCount)
diff --git a/chromium-new/patches/patch-third__party_WebKit_Source_platform_text_CharacterPropertyDataGenerator.cpp b/chromium-new/patches/patch-third__party_WebKit_Source_platform_text_CharacterPropertyDataGenerator.cpp
new file mode 100644
index 0000000..e1600bc
--- /dev/null
+++ b/chromium-new/patches/patch-third__party_WebKit_Source_platform_text_CharacterPropertyDataGenerator.cpp
@@ -0,0 +1,19 @@
+$NetBSD$
+
+--- third_party/WebKit/Source/platform/text/CharacterPropertyDataGenerator.cpp.orig	2016-06-24 01:02:46.000000000 +0000
++++ third_party/WebKit/Source/platform/text/CharacterPropertyDataGenerator.cpp
+@@ -11,12 +11,12 @@
+ #include <cassert>
+ #include <cstring>
+ #include <stdio.h>
+-#if !defined(USING_SYSTEM_ICU)
++#if !defined(__FreeBSD__)
+ #define MUTEX_H // Prevent compile failure of utrie2.h on Windows
+ #include <utrie2.h>
+ #endif
+ 
+-#if defined(USING_SYSTEM_ICU)
++#if defined(__FreeBSD__)
+ static void generate(FILE*)
+ {
+ }
diff --git a/chromium-new/patches/patch-third__party_WebKit_Source_web_web.gyp b/chromium-new/patches/patch-third__party_WebKit_Source_web_web.gyp
new file mode 100644
index 0000000..5f57b4a
--- /dev/null
+++ b/chromium-new/patches/patch-third__party_WebKit_Source_web_web.gyp
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- third_party/WebKit/Source/web/web.gyp.orig	2016-06-24 01:02:47.000000000 +0000
++++ third_party/WebKit/Source/web/web.gyp
+@@ -118,7 +118,7 @@
+                         '../core/core.gyp:webcore',
+                      ],
+                 }],
+-                ['OS == "linux"', {
++                ['OS == "linux" or os_bsd == 1', {
+                     'dependencies': [
+                         '<(DEPTH)/build/linux/system.gyp:fontconfig',
+                     ],
diff --git a/chromium-new/patches/patch-third__party_WebKit_Source_wtf_ByteSwap.h b/chromium-new/patches/patch-third__party_WebKit_Source_wtf_ByteSwap.h
new file mode 100644
index 0000000..e721302
--- /dev/null
+++ b/chromium-new/patches/patch-third__party_WebKit_Source_wtf_ByteSwap.h
@@ -0,0 +1,20 @@
+$NetBSD$
+
+--- third_party/WebKit/Source/wtf/ByteSwap.h.orig	2016-06-24 01:02:47.000000000 +0000
++++ third_party/WebKit/Source/wtf/ByteSwap.h
+@@ -52,9 +52,15 @@ ALWAYS_INLINE uint16_t bswap16(uint16_t 
+ 
+ #else
+ 
++#ifndef bswap64
+ ALWAYS_INLINE uint64_t bswap64(uint64_t x) { return __builtin_bswap64(x); }
++#endif
++#ifndef bswap32
+ ALWAYS_INLINE uint32_t bswap32(uint32_t x) { return __builtin_bswap32(x); }
++#endif
++#ifndef bswap16
+ ALWAYS_INLINE uint16_t bswap16(uint16_t x) { return __builtin_bswap16(x); }
++#endif
+ 
+ #endif
+ 
diff --git a/chromium-new/patches/patch-third__party_WebKit_Source_wtf_wtf.gyp b/chromium-new/patches/patch-third__party_WebKit_Source_wtf_wtf.gyp
new file mode 100644
index 0000000..cb9cac8
--- /dev/null
+++ b/chromium-new/patches/patch-third__party_WebKit_Source_wtf_wtf.gyp
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- third_party/WebKit/Source/wtf/wtf.gyp.orig	2016-06-24 01:02:47.000000000 +0000
++++ third_party/WebKit/Source/wtf/wtf.gyp
+@@ -57,7 +57,7 @@
+       'target_name': 'wtf',
+       'type': '<(component)',
+       'include_dirs': [
+-        '..',
++        '..', '<(prefix_dir)/include',
+       ],
+       'dependencies': [
+           'wtf_config',
diff --git a/chromium-new/patches/patch-third__party_boringssl_src_crypto_bio_internal.h b/chromium-new/patches/patch-third__party_boringssl_src_crypto_bio_internal.h
new file mode 100644
index 0000000..3ecc1e8
--- /dev/null
+++ b/chromium-new/patches/patch-third__party_boringssl_src_crypto_bio_internal.h
@@ -0,0 +1,15 @@
+$NetBSD$
+
+--- third_party/boringssl/src/crypto/bio/internal.h.orig	2016-06-24 01:03:30.000000000 +0000
++++ third_party/boringssl/src/crypto/bio/internal.h
+@@ -59,6 +59,10 @@
+ 
+ #include <openssl/base.h>
+ 
++#if defined(__NetBSD__)
++#define _NETBSD_SOURCE 1
++#endif
++
+ #if !defined(OPENSSL_WINDOWS)
+ #if defined(OPENSSL_PNACL)
+ /* newlib uses u_short in socket.h without defining it. */
diff --git a/chromium-new/patches/patch-third__party_boringssl_src_crypto_cipher_e__chacha20poly1305.c b/chromium-new/patches/patch-third__party_boringssl_src_crypto_cipher_e__chacha20poly1305.c
new file mode 100644
index 0000000..1a61366
--- /dev/null
+++ b/chromium-new/patches/patch-third__party_boringssl_src_crypto_cipher_e__chacha20poly1305.c
@@ -0,0 +1,40 @@
+$NetBSD$
+
+--- third_party/boringssl/src/crypto/cipher/e_chacha20poly1305.c.orig	2016-06-24 01:03:30.000000000 +0000
++++ third_party/boringssl/src/crypto/cipher/e_chacha20poly1305.c
+@@ -93,7 +93,11 @@ static void aead_poly1305(aead_poly1305_
+                           const uint8_t nonce[12], const uint8_t *ad,
+                           size_t ad_len, const uint8_t *ciphertext,
+                           size_t ciphertext_len) {
++#if defined(__NetBSD__)
++  uint8_t poly1305_key[32] __attribute__((aligned(16)));
++#else
+   alignas(16) uint8_t poly1305_key[32];
++#endif
+   memset(poly1305_key, 0, sizeof(poly1305_key));
+   CRYPTO_chacha_20(poly1305_key, poly1305_key, sizeof(poly1305_key),
+                    c20_ctx->key, nonce, 0);
+@@ -134,7 +138,11 @@ static int seal_impl(aead_poly1305_updat
+ 
+   CRYPTO_chacha_20(out, in, in_len, c20_ctx->key, nonce, 1);
+ 
++#if defined(__NetBSD__)
++  uint8_t tag[POLY1305_TAG_LEN] __attribute__((aligned(16)));
++#else
+   alignas(16) uint8_t tag[POLY1305_TAG_LEN];
++#endif
+   aead_poly1305(poly1305_update, tag, c20_ctx, nonce, ad, ad_len, out, in_len);
+ 
+   memcpy(out + in_len, tag, c20_ctx->tag_len);
+@@ -168,7 +176,11 @@ static int open_impl(aead_poly1305_updat
+   }
+ 
+   plaintext_len = in_len - c20_ctx->tag_len;
++#if defined(__NetBSD__)
++  uint8_t tag[POLY1305_TAG_LEN] __attribute__((aligned(16)));
++#else
+   alignas(16) uint8_t tag[POLY1305_TAG_LEN];
++#endif
+   aead_poly1305(poly1305_update, tag, c20_ctx, nonce, ad, ad_len, in,
+                 plaintext_len);
+   if (CRYPTO_memcmp(tag, in + plaintext_len, c20_ctx->tag_len) != 0) {
diff --git a/chromium-new/patches/patch-third__party_boringssl_src_crypto_internal.h b/chromium-new/patches/patch-third__party_boringssl_src_crypto_internal.h
new file mode 100644
index 0000000..ab3061b
--- /dev/null
+++ b/chromium-new/patches/patch-third__party_boringssl_src_crypto_internal.h
@@ -0,0 +1,15 @@
+$NetBSD$
+
+--- third_party/boringssl/src/crypto/internal.h.orig	2016-06-24 01:03:30.000000000 +0000
++++ third_party/boringssl/src/crypto/internal.h
+@@ -118,8 +118,10 @@
+ #define alignof __alignof
+ #endif
+ #else
++#if !defined(__NetBSD__)
+ #include <stdalign.h>
+ #endif
++#endif
+ 
+ #if defined(OPENSSL_NO_THREADS)
+ #elif defined(OPENSSL_WINDOWS)
diff --git a/chromium-new/patches/patch-third__party_boringssl_src_crypto_poly1305_poly1305__vec.c b/chromium-new/patches/patch-third__party_boringssl_src_crypto_poly1305_poly1305__vec.c
new file mode 100644
index 0000000..2df431c
--- /dev/null
+++ b/chromium-new/patches/patch-third__party_boringssl_src_crypto_poly1305_poly1305__vec.c
@@ -0,0 +1,30 @@
+$NetBSD$
+
+--- third_party/boringssl/src/crypto/poly1305/poly1305_vec.c.orig	2016-06-24 01:03:30.000000000 +0000
++++ third_party/boringssl/src/crypto/poly1305/poly1305_vec.c
+@@ -22,6 +22,11 @@
+ 
+ #include "../internal.h"
+ 
++#if defined(__NetBSD__)
++#define ALIGN(x) __attribute__((aligned(x)))
++#else
++#define ALIGN(x) alignas(x)
++#endif
+ 
+ #if !defined(OPENSSL_WINDOWS) && defined(OPENSSL_X86_64)
+ 
+@@ -33,10 +38,10 @@
+ 
+ typedef __m128i xmmi;
+ 
+-static const alignas(16) uint32_t poly1305_x64_sse2_message_mask[4] = {
++static const ALIGN(16) uint32_t poly1305_x64_sse2_message_mask[4] = {
+     (1 << 26) - 1, 0, (1 << 26) - 1, 0};
+-static const alignas(16) uint32_t poly1305_x64_sse2_5[4] = {5, 0, 5, 0};
+-static const alignas(16) uint32_t poly1305_x64_sse2_1shl128[4] = {
++static const ALIGN(16) uint32_t poly1305_x64_sse2_5[4] = {5, 0, 5, 0};
++static const ALIGN(16) uint32_t poly1305_x64_sse2_1shl128[4] = {
+     (1 << 24), 0, (1 << 24), 0};
+ 
+ static inline uint128_t add128(uint128_t a, uint128_t b) { return a + b; }
diff --git a/chromium-new/patches/patch-third__party_boringssl_src_include_openssl_thread.h b/chromium-new/patches/patch-third__party_boringssl_src_include_openssl_thread.h
new file mode 100644
index 0000000..0409407
--- /dev/null
+++ b/chromium-new/patches/patch-third__party_boringssl_src_include_openssl_thread.h
@@ -0,0 +1,14 @@
+$NetBSD$
+
+--- third_party/boringssl/src/include/openssl/thread.h.orig	2016-06-24 01:03:31.000000000 +0000
++++ third_party/boringssl/src/include/openssl/thread.h
+@@ -87,6 +87,9 @@ typedef pthread_rwlock_t CRYPTO_MUTEX;
+ typedef union crypto_mutex_st {
+   double alignment;
+   uint8_t padding[3*sizeof(int) + 5*sizeof(unsigned) + 16 + 8];
++#if defined(__NetBSD__)
++  uint8_t      nbpad[64 + 8];
++#endif
+ } CRYPTO_MUTEX;
+ #endif
+ 
diff --git a/chromium-new/patches/patch-third__party_cacheinvalidation_src_google_cacheinvalidation_include_types.h b/chromium-new/patches/patch-third__party_cacheinvalidation_src_google_cacheinvalidation_include_types.h
new file mode 100644
index 0000000..03e7b2f
--- /dev/null
+++ b/chromium-new/patches/patch-third__party_cacheinvalidation_src_google_cacheinvalidation_include_types.h
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- third_party/cacheinvalidation/src/google/cacheinvalidation/include/types.h.orig	2016-06-24 01:02:47.000000000 +0000
++++ third_party/cacheinvalidation/src/google/cacheinvalidation/include/types.h
+@@ -334,6 +334,8 @@ class Status {
+      */
+     PERMANENT_FAILURE
+   };
++  
++  Status() : code_(SUCCESS), message_() {}
+ 
+   /* Creates a new Status object given the code and message. */
+   Status(Code code, const string& message) : code_(code), message_(message) {}
diff --git a/chromium-new/patches/patch-third__party_ffmpeg_chromium_scripts_generate__gyp.py b/chromium-new/patches/patch-third__party_ffmpeg_chromium_scripts_generate__gyp.py
new file mode 100644
index 0000000..5e56b31
--- /dev/null
+++ b/chromium-new/patches/patch-third__party_ffmpeg_chromium_scripts_generate__gyp.py
@@ -0,0 +1,22 @@
+$NetBSD$
+
+--- third_party/ffmpeg/chromium/scripts/generate_gyp.py.orig	2016-06-24 01:03:39.000000000 +0000
++++ third_party/ffmpeg/chromium/scripts/generate_gyp.py
+@@ -43,6 +43,8 @@ import sys
+ COPYRIGHT = """# Copyright %d 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.
++#
++# modified: cmt%burggraben.net@localhost
+ 
+ # NOTE: this file is autogenerated by ffmpeg/chromium/scripts/generate_gyp.py
+ 
+@@ -372,6 +374,8 @@ class SourceSet(object):
+ 
+       if condition.PLATFORM == '*':
+         platform_condition = None
++      elif condition.PLATFORM == 'linux':
++        platform_condition = '(OS == "%s" or os_bsd == 1)' % condition.PLATFORM
+       else:
+         platform_condition = 'OS == "%s"' % condition.PLATFORM
+ 
diff --git a/chromium-new/patches/patch-third__party_ffmpeg_ffmpeg.gyp b/chromium-new/patches/patch-third__party_ffmpeg_ffmpeg.gyp
new file mode 100644
index 0000000..4161ff4
--- /dev/null
+++ b/chromium-new/patches/patch-third__party_ffmpeg_ffmpeg.gyp
@@ -0,0 +1,20 @@
+$NetBSD$
+
+--- third_party/ffmpeg/ffmpeg.gyp.orig	2016-06-24 01:03:39.000000000 +0000
++++ third_party/ffmpeg/ffmpeg.gyp
+@@ -259,6 +259,15 @@
+               'cflags!': [
+                 '-fno-omit-frame-pointer',
+               ],
++              # "Tomek" from freebsd-chromium@ figured this out, rene is
++              # puzzled why this is needed. Fixes runtime on FreeBSD < 10
++              'cflags_c': [
++                '-fomit-frame-pointer',
++              ],
++              'cflags_cc': [
++                '-fomit-frame-pointer',
++              ],
++              # back to upstream code
+               'debug_extra_cflags!': [
+                 '-fno-omit-frame-pointer',
+               ],
diff --git a/chromium-new/patches/patch-third__party_ffmpeg_ffmpeg__generated.gni b/chromium-new/patches/patch-third__party_ffmpeg_ffmpeg__generated.gni
new file mode 100644
index 0000000..6609bf4
--- /dev/null
+++ b/chromium-new/patches/patch-third__party_ffmpeg_ffmpeg__generated.gni
@@ -0,0 +1,321 @@
+$NetBSD$
+
+--- third_party/ffmpeg/ffmpeg_generated.gni.orig	2016-06-24 01:03:39.000000000 +0000
++++ third_party/ffmpeg/ffmpeg_generated.gni
+@@ -12,7 +12,7 @@ ffmpeg_c_sources = []
+ ffmpeg_gas_sources = []
+ ffmpeg_yasm_sources = []
+ 
+-if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") 
|| (is_android && current_cpu == "x86" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromiumOS") |
 | (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromiumOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chromium"
 ) || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chromium")) {
++if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") 
|| (is_android && current_cpu == "x86" && ffmpeg_branding == "Chromium") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && ffmpeg_branding == "Chromium") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS") || ((is_linux || os_bsd == 1) && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "arm64" && ffmpeg_bra
 nding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "arm64" && ffmpeg_branding == "Chromium") || ((is_linux || os_bsd == 1) && current_cpu == "arm64" && ffmpeg_branding == "ChromiumOS") || ((is_linux || os_bsd == 1) && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "mipsel" && ffmpeg_branding == "Chromium") || ((is_linux || os_bsd == 1) && current_cpu == "mipsel" && ffmpeg_branding == "ChromiumOS") || ((is_linux || os_bsd == 1) && current_cpu == "x64" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "x64" && ffmpeg_branding == "Chromium") || ((is_linux || os_bsd == 1) && current_cpu == "x64" && ffmpeg_branding == "ChromiumOS") || ((is_linux || os_bsd == 1) && current_cpu == "x86" && ffmpeg_branding == "C
 hrome") || ((is_linux || os_bsd == 1) && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "x86" && ffmpeg_branding == "Chromium") || ((is_linux || os_bsd == 1) && current_cpu == "x86" && ffmpeg_branding == "ChromiumOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chromium")) {
+   ffmpeg_c_sources += [
+     "libavcodec/allcodecs.c",
+     "libavcodec/autorename_libavcodec_utils.c",
+@@ -145,7 +145,7 @@ if ((is_android && current_cpu == "arm" 
+   ]
+ }
+ 
+-if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "
Chrome") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromiumOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chr
 ome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chromium")) {
++if (((is_linux || os_bsd == 1) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && ffmpeg_branding == "Chromium") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS") || ((is_linux || os_bsd == 1) && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_
cpu == "arm64" && ffmpeg_branding == "Chromium") || ((is_linux || os_bsd == 1) && current_cpu == "arm64" && ffmpeg_branding == "ChromiumOS") || ((is_linux || os_bsd == 1) && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "mipsel" && ffmpeg_branding == "Chromium") || ((is_linux || os_bsd == 1) && current_cpu == "mipsel" && ffmpeg_branding == "ChromiumOS") || ((is_linux || os_bsd == 1) && current_cpu == "x64" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "x64" && ffmpeg_branding == "Chromium") || ((is_linux || os_bsd == 1) && current_cpu == "x64" && ffmpeg_branding == "ChromiumOS") || ((is_linux || os_bsd == 1) && current_cpu == "x86" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "x86" &
 & ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "x86" && ffmpeg_branding == "Chromium") || ((is_linux || os_bsd == 1) && current_cpu == "x86" && ffmpeg_branding == "ChromiumOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chromium")) {
+   ffmpeg_c_sources += [
+     "libavcodec/h264pred.c",
+     "libavcodec/hpeldsp.c",
+@@ -160,13 +160,13 @@ if ((is_linux && current_cpu == "arm" &&
+   ]
+ }
+ 
+-if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chr
omiumOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromiumOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding 
 == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome")) {
++if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && ffmpeg_br
anding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS") || ((is_linux || os_bsd == 1) && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "arm64" && ffmpeg_branding == "ChromiumOS") || ((is_linux || os_bsd == 1) && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "mipsel" && ffmpeg_branding == "ChromiumOS") || ((is_linux || os_bsd == 1) && current_cpu == "x64" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "x64" && ffmpeg_branding == "ChromiumOS") || ((is_linux || os_bsd == 1) && current_cpu == "x86" && ffmpeg_branding == "Ch
 rome") || ((is_linux || os_bsd == 1) && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "x86" && ffmpeg_branding == "ChromiumOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome")) {
+   ffmpeg_c_sources += [
+     "libavformat/rawdec.c",
+   ]
+ }
+ 
+-if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_l
inux && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome")) {
++if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "arm64" && ffmpeg_branding == "Chrom
e") || ((is_linux || os_bsd == 1) && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "x64" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "x86" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome")) {
+   ffmpeg_c_sources += [
+     "libavcodec/aac_ac3_parser.c",
+     "libavcodec/aac_parser.c",
+@@ -208,7 +208,7 @@ if ((is_android && current_cpu == "arm" 
+   ]
+ }
+ 
+-if ((is_android && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromiumOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chromi
um") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chromium")) {
++if ((is_android && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chromium") || ((is_linux || os_bsd == 1) && current_cpu == "x64" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "x64" && ffmpeg_branding == "Chromium") || ((is_linux || os_bsd == 1) && current_cpu == "x64" && ffmpeg_branding == "ChromiumOS") || ((is_linux || os_bsd == 1) && current_cpu == "x86" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "x86" && ffmpeg_branding == "Chromium") || ((is_linux || os_bsd == 1) && current_cpu == "x86" && ffmpeg_branding == "Chromium
OS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chromium")) {
+   ffmpeg_c_sources += [
+     "libavcodec/x86/autorename_libavcodec_x86_vorbisdsp_init.c",
+     "libavcodec/x86/constants.c",
+@@ -220,7 +220,7 @@ if ((is_android && current_cpu == "x64" 
+   ]
+ }
+ 
+-if ((is_android && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromiumOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chromium") || 
(is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chromium")) {
++if ((is_android && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x64" && ffmpeg_branding == "Chromium") || ((is_linux || os_bsd == 1) && current_cpu == "x64" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "x64" && ffmpeg_branding == "Chromium") || ((is_linux || os_bsd == 1) && current_cpu == "x64" && ffmpeg_branding == "ChromiumOS") || ((is_linux || os_bsd == 1) && current_cpu == "x86" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "x86" && ffmpeg_branding == "Chromium") || ((is_linux || os_bsd == 1) && current_cpu == "x86" && ffmpeg_branding == "ChromiumOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chromium") || 
(is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chromium")) {
+   ffmpeg_yasm_sources += [
+     "libavcodec/x86/fft.asm",
+     "libavcodec/x86/vorbisdsp.asm",
+@@ -231,7 +231,7 @@ if ((is_android && current_cpu == "x64" 
+   ]
+ }
+ 
+-if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && 
ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome")) {
++if (((is_linux || os_bsd == 1) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "x64" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "x86" && ffmpeg_branding ==
 "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome")) {
+   ffmpeg_c_sources += [
+     "libavcodec/cabac.c",
+     "libavcodec/h264.c",
+@@ -254,7 +254,7 @@ if ((is_linux && current_cpu == "arm" &&
+   ]
+ }
+ 
+-if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS")) {
++if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chromium") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && ffmpeg_branding == "
Chromium") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS")) {
+   ffmpeg_c_sources += [
+     "libavcodec/arm/fft_fixed_init_arm.c",
+     "libavcodec/arm/fft_init_arm.c",
+@@ -270,7 +270,7 @@ if ((is_android && current_cpu == "arm" 
+   ]
+ }
+ 
+-if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromiumOS")) {
++if (((is_linux || os_bsd == 1) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS") || ((is_linux || os_bsd == 1) && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "arm64" && ffmpeg_branding == "ChromiumOS") || ((is_linux || os_bsd == 1) && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "mipsel" && ffmpeg_branding == "ChromiumOS") || ((is_linux || os_bsd == 1) && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "x64" && ffmpeg_branding == "ChromiumOS") || ((is_linux || os_bsd == 1) && current_cpu == "x86" &
& ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "x86" && ffmpeg_branding == "ChromiumOS")) {
+   ffmpeg_c_sources += [
+     "libavcodec/flac.c",
+     "libavcodec/flac_parser.c",
+@@ -281,7 +281,7 @@ if ((is_linux && current_cpu == "arm" &&
+   ]
+ }
+ 
+-if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS")) {
++if (((is_linux || os_bsd == 1) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && ffmpeg_branding == "Chromium") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS")) {
+   ffmpeg_c_sources += [
+     "libavcodec/arm/h264pred_init_arm.c",
+     "libavcodec/arm/hpeldsp_init_arm.c",
+@@ -301,7 +301,7 @@ if ((is_linux && current_cpu == "arm" &&
+   ]
+ }
+ 
+-if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS")) {
++if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chromium") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS")) {
+   ffmpeg_c_sources += [
+     "libavutil/arm/float_dsp_init_neon.c",
+   ]
+@@ -316,7 +316,7 @@ if ((is_android && current_cpu == "arm" 
+   ]
+ }
+ 
+-if ((is_linux && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromiumOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chromium")) {
++if (((is_linux || os_bsd == 1) && current_cpu == "x64" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "x64" && ffmpeg_branding == "Chromium") || ((is_linux || os_bsd == 1) && current_cpu == "x64" && ffmpeg_branding == "ChromiumOS") || ((is_linux || os_bsd == 1) && current_cpu == "x86" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "x86" && ffmpeg_branding == "Chromium") || ((is_linux || os_bsd == 1) && current_cpu == "x86" && ffmpeg_branding == "ChromiumOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win 
&& current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chromium")) {
+   ffmpeg_c_sources += [
+     "libavcodec/x86/autorename_libavcodec_x86_videodsp_init.c",
+     "libavcodec/x86/h264_intrapred_init.c",
+@@ -336,13 +336,13 @@ if ((is_linux && current_cpu == "x64" &&
+   ]
+ }
+ 
+-if ((is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromiumOS")) {
++if ((is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chromium") || ((is_linux || os_bsd == 1) && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "mipsel" && ffmpeg_branding == "Chromium") || ((is_linux || os_bsd == 1) && current_cpu == "mipsel" && ffmpeg_branding == "ChromiumOS")) {
+   ffmpeg_c_sources += [
+     "libavutil/mips/float_dsp_mips.c",
+   ]
+ }
+ 
+-if ((is_android && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome")) {
++if ((is_android && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "x64" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "x86" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome")) {
+   ffmpeg_c_sources += [
+     "libavcodec/x86/aacpsdsp_init.c",
+     "libavcodec/x86/dct_init.c",
+@@ -351,7 +351,7 @@ if ((is_android && current_cpu == "x64" 
+   ]
+ }
+ 
+-if ((is_android && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome")) {
++if ((is_android && current_cpu == "x64" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "x64" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "x86" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome")) {
+   ffmpeg_yasm_sources += [
+     "libavcodec/x86/aacpsdsp.asm",
+     "libavcodec/x86/dct32.asm",
+@@ -360,7 +360,7 @@ if ((is_android && current_cpu == "x64" 
+   ]
+ }
+ 
+-if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS")) {
++if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && ffmpeg_branding == "ChromeOS")) {
+   ffmpeg_c_sources += [
+     "libavcodec/arm/aacpsdsp_init_arm.c",
+     "libavcodec/arm/mpegaudiodsp_init_arm.c",
+@@ -371,7 +371,7 @@ if ((is_android && current_cpu == "arm" 
+   ]
+ }
+ 
+-if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS")) {
++if (((is_linux || os_bsd == 1) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "x86" && ffmpeg_branding == "ChromeOS")) {
+   ffmpeg_c_sources += [
+     "libavcodec/acelp_filters.c",
+     "libavcodec/acelp_pitch_delay.c",
+@@ -426,7 +426,7 @@ if ((is_linux && current_cpu == "arm" &&
+   ]
+ }
+ 
+-if ((is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromiumOS")) {
++if (((is_linux || os_bsd == 1) && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "mipsel" && ffmpeg_branding == "Chromium") || ((is_linux || os_bsd == 1) && current_cpu == "mipsel" && ffmpeg_branding == "ChromiumOS")) {
+   ffmpeg_c_sources += [
+     "libavcodec/mips/h264pred_init_mips.c",
+     "libavcodec/mips/hpeldsp_init_mips.c",
+@@ -434,7 +434,7 @@ if ((is_linux && current_cpu == "mipsel"
+   ]
+ }
+ 
+-if ((is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromiumOS")) {
++if ((is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chromium") || ((is_linux || os_bsd == 1) && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "arm64" && ffmpeg_branding == "Chromium") || ((is_linux || os_bsd == 1) && current_cpu == "arm64" && ffmpeg_branding == "ChromiumOS")) {
+   ffmpeg_c_sources += [
+     "libavcodec/aarch64/fft_init_aarch64.c",
+     "libavcodec/aarch64/vorbisdsp_init.c",
+@@ -449,7 +449,7 @@ if ((is_android && current_cpu == "arm64
+   ]
+ }
+ 
+-if ((is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromiumOS")) {
++if (((is_linux || os_bsd == 1) && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "arm64" && ffmpeg_branding == "Chromium") || ((is_linux || os_bsd == 1) && current_cpu == "arm64" && ffmpeg_branding == "ChromiumOS")) {
+   ffmpeg_c_sources += [
+     "libavcodec/aarch64/h264pred_init.c",
+     "libavcodec/aarch64/hpeldsp_init_aarch64.c",
+@@ -462,7 +462,7 @@ if ((is_linux && current_cpu == "arm64" 
+   ]
+ }
+ 
+-if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS")) {
++if (((is_linux || os_bsd == 1) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS")) {
+   ffmpeg_c_sources += [
+     "libavcodec/arm/flacdsp_init_arm.c",
+   ]
+@@ -471,7 +471,7 @@ if ((is_linux && current_cpu == "arm" &&
+   ]
+ }
+ 
+-if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS")) {
++if (((is_linux || os_bsd == 1) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && ffmpeg_branding == "ChromeOS")) {
+   ffmpeg_c_sources += [
+     "libavcodec/arm/h264chroma_init_arm.c",
+     "libavcodec/arm/h264dsp_init_arm.c",
+@@ -482,7 +482,7 @@ if ((is_linux && current_cpu == "arm" &&
+   ]
+ }
+ 
+-if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS")) {
++if (((is_linux || os_bsd == 1) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS")) {
+   ffmpeg_c_sources += [
+     "libavcodec/arm/hpeldsp_init_neon.c",
+     "libavcodec/arm/vp8dsp_init_neon.c",
+@@ -495,14 +495,14 @@ if ((is_linux && current_cpu == "arm" &&
+   ]
+ }
+ 
+-if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS")) {
++if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS")) {
+   ffmpeg_gas_sources += [
+     "libavcodec/arm/aacpsdsp_neon.S",
+     "libavcodec/arm/sbrdsp_neon.S",
+   ]
+ }
+ 
+-if ((is_linux && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome")) {
++if (((is_linux || os_bsd == 1) && current_cpu == "x64" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "x86" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome")) {
+   ffmpeg_c_sources += [
+     "libavcodec/x86/h264_qpel.c",
+     "libavcodec/x86/h264chroma_init.c",
+@@ -523,7 +523,7 @@ if ((is_linux && current_cpu == "x64" &&
+   ]
+ }
+ 
+-if ((is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS")) {
++if ((is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS")) {
+   ffmpeg_c_sources += [
+     "libavcodec/mips/aacdec_mips.c",
+     "libavcodec/mips/aacpsdsp_mips.c",
+@@ -532,7 +532,7 @@ if ((is_android && current_cpu == "mips6
+   ]
+ }
+ 
+-if ((is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromiumOS")) {
++if (((is_linux || os_bsd == 1) && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "x64" && ffmpeg_branding == "ChromiumOS") || ((is_linux || os_bsd == 1) && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "x86" && ffmpeg_branding == "ChromiumOS")) {
+   ffmpeg_c_sources += [
+     "libavcodec/x86/flacdsp_init.c",
+   ]
+@@ -547,7 +547,7 @@ if ((is_win && current_cpu == "x64" && f
+   ]
+ }
+ 
+-if ((is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS")) {
++if (((is_linux || os_bsd == 1) && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS")) {
+   ffmpeg_c_sources += [
+     "libavcodec/mips/h264chroma_init_mips.c",
+     "libavcodec/mips/h264dsp_init_mips.c",
+@@ -555,7 +555,7 @@ if ((is_linux && current_cpu == "mipsel"
+   ]
+ }
+ 
+-if ((is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS")) {
++if ((is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS")) {
+   ffmpeg_c_sources += [
+     "libavcodec/aarch64/imdct15_init.c",
+     "libavcodec/aarch64/mpegaudiodsp_init.c",
+@@ -566,7 +566,7 @@ if ((is_android && current_cpu == "arm64
+   ]
+ }
+ 
+-if ((is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS")) {
++if (((is_linux || os_bsd == 1) && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS")) {
+   ffmpeg_c_sources += [
+     "libavcodec/aarch64/h264chroma_init_aarch64.c",
+     "libavcodec/aarch64/h264dsp_init_aarch64.c",
+@@ -580,7 +580,7 @@ if ((is_linux && current_cpu == "arm64" 
+   ]
+ }
+ 
+-if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS")) {
++if (((is_linux || os_bsd == 1) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && ffmpeg_branding == "ChromeOS")) {
+   ffmpeg_c_sources += [
+     "libavcodec/arm/blockdsp_init_arm.c",
+     "libavcodec/arm/idctdsp_init_arm.c",
+@@ -604,13 +604,13 @@ if ((is_linux && current_cpu == "arm" &&
+   ]
+ }
+ 
+-if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS")) {
++if (((is_linux || os_bsd == 1) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS")) {
+   ffmpeg_c_sources += [
+     "libavcodec/neon/autorename_libavcodec_neon_mpegvideo.c",
+   ]
+ }
+ 
+-if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS")) {
++if (((is_linux || os_bsd == 1) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || ((is_linux || os_bsd == 1) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS")) {
+   ffmpeg_gas_sources += [
+     "libavcodec/arm/h264cmc_neon.S",
+     "libavcodec/arm/h264dsp_neon.S",
+@@ -625,7 +625,7 @@ if ((is_win && current_cpu == "x64" && f
+   ]
+ }
+ 
+-if ((is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS")) {
++if (((is_linux || os_bsd == 1) && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || ((is_linux || os_bsd == 1) && current_cpu == "x86" && ffmpeg_branding == "ChromeOS")) {
+   ffmpeg_c_sources += [
+     "libavcodec/x86/blockdsp_init.c",
+     "libavcodec/x86/fdct.c",
+@@ -652,7 +652,7 @@ if ((is_linux && current_cpu == "x64" &&
+   ]
+ }
+ 
+-if (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") {
++if ((is_linux || os_bsd == 1) && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") {
+   ffmpeg_c_sources += [
+     "libavcodec/mips/blockdsp_init_mips.c",
+     "libavcodec/mips/h263dsp_init_mips.c",
+@@ -665,7 +665,7 @@ if (is_linux && current_cpu == "mipsel" 
+   ]
+ }
+ 
+-if (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") {
++if ((is_linux || os_bsd == 1) && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") {
+   ffmpeg_c_sources += [
+     "libavcodec/arm/blockdsp_init_neon.c",
+     "libavcodec/arm/idctdsp_init_neon.c",
diff --git a/chromium-new/patches/patch-third__party_ffmpeg_ffmpeg__generated.gypi b/chromium-new/patches/patch-third__party_ffmpeg_ffmpeg__generated.gypi
new file mode 100644
index 0000000..58f39ba
--- /dev/null
+++ b/chromium-new/patches/patch-third__party_ffmpeg_ffmpeg__generated.gypi
@@ -0,0 +1,397 @@
+$NetBSD$
+
+--- third_party/ffmpeg/ffmpeg_generated.gypi.orig	2016-06-24 01:03:39.000000000 +0000
++++ third_party/ffmpeg/ffmpeg_generated.gypi
+@@ -8,7 +8,7 @@
+ {
+   'variables': {
+     'conditions': [
+-      ['OS == "linux" and target_arch == "arm" and arm_neon == 1 and ffmpeg_branding == "ChromeOS"', {
++      ['(OS == "linux" or os_bsd == 1) and target_arch == "arm" and arm_neon == 1 and ffmpeg_branding == "ChromeOS"', {
+         'c_sources': [
+           'libavcodec/arm/blockdsp_init_neon.c',
+           'libavcodec/arm/idctdsp_init_neon.c',
+@@ -19,8 +19,8 @@
+           'libavcodec/arm/mpegvideo_neon.S',
+           'libavcodec/arm/simple_idct_neon.S',
+         ],
+-      }],  # OS == "linux" and target_arch == "arm" and arm_neon == 1 and ffmpeg_branding == "ChromeOS"
+-      ['OS == "linux" and target_arch == "mipsel" and ffmpeg_branding == "ChromeOS"', {
++      }],  # (OS == "linux" or os_bsd == 1) and target_arch == "arm" and arm_neon == 1 and ffmpeg_branding == "ChromeOS"
++      ['(OS == "linux" or os_bsd == 1) and target_arch == "mipsel" and ffmpeg_branding == "ChromeOS"', {
+         'c_sources': [
+           'libavcodec/mips/blockdsp_init_mips.c',
+           'libavcodec/mips/h263dsp_init_mips.c',
+@@ -31,8 +31,8 @@
+           'libavcodec/mips/qpeldsp_init_mips.c',
+           'libavcodec/mips/xvididct_init_mips.c',
+         ],
+-      }],  # OS == "linux" and target_arch == "mipsel" and ffmpeg_branding == "ChromeOS"
+-      ['(OS == "linux" and target_arch == "ia32" and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "x64" and ffmpeg_branding == "ChromeOS")', {
++      }],  # (OS == "linux" or os_bsd == 1) and target_arch == "mipsel" and ffmpeg_branding == "ChromeOS"
++      ['((OS == "linux" or os_bsd == 1) and target_arch == "ia32" and ffmpeg_branding == "ChromeOS") or ((OS == "linux" or os_bsd == 1) and target_arch == "x64" and ffmpeg_branding == "ChromeOS")', {
+         'c_sources': [
+           'libavcodec/x86/blockdsp_init.c',
+           'libavcodec/x86/fdct.c',
+@@ -57,26 +57,26 @@
+           'libavcodec/x86/simple_idct10.asm',
+           'libavcodec/x86/xvididct.asm',
+         ],
+-      }],  # (OS == "linux" and target_arch == "ia32" and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "x64" and ffmpeg_branding == "ChromeOS")
++      }],  # ((OS == "linux" or os_bsd == 1) and target_arch == "ia32" and ffmpeg_branding == "ChromeOS") or ((OS == "linux" or os_bsd == 1) and target_arch == "x64" and ffmpeg_branding == "ChromeOS")
+       ['(OS == "win" and target_arch == "x64" and ffmpeg_branding == "Chrome") or (OS == "win" and target_arch == "x64" and ffmpeg_branding == "Chromium")', {
+         'asm_sources': [
+           'libavutil/x86/emms.asm',
+         ],
+       }],  # (OS == "win" and target_arch == "x64" and ffmpeg_branding == "Chrome") or (OS == "win" and target_arch == "x64" and ffmpeg_branding == "Chromium")
+-      ['(OS == "linux" and target_arch == "arm" and arm_neon == 1 and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "arm" and arm_neon == 1 and ffmpeg_branding == "ChromeOS")', {
++      ['((OS == "linux" or os_bsd == 1) and target_arch == "arm" and arm_neon == 1 and ffmpeg_branding == "Chrome") or ((OS == "linux" or os_bsd == 1) and target_arch == "arm" and arm_neon == 1 and ffmpeg_branding == "ChromeOS")', {
+         'asm_sources': [
+           'libavcodec/arm/h264cmc_neon.S',
+           'libavcodec/arm/h264dsp_neon.S',
+           'libavcodec/arm/h264idct_neon.S',
+           'libavcodec/arm/h264qpel_neon.S',
+         ],
+-      }],  # (OS == "linux" and target_arch == "arm" and arm_neon == 1 and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "arm" and arm_neon == 1 and ffmpeg_branding == "ChromeOS")
+-      ['(OS == "linux" and target_arch == "arm" and arm_neon == 1 and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "ChromeOS")', {
++      }],  # ((OS == "linux" or os_bsd == 1) and target_arch == "arm" and arm_neon == 1 and ffmpeg_branding == "Chrome") or ((OS == "linux" or os_bsd == 1) and target_arch == "arm" and arm_neon == 1 and ffmpeg_branding == "ChromeOS")
++      ['((OS == "linux" or os_bsd == 1) and target_arch == "arm" and arm_neon == 1 and ffmpeg_branding == "ChromeOS") or ((OS == "linux" or os_bsd == 1) and target_arch == "arm64" and ffmpeg_branding == "ChromeOS")', {
+         'c_sources': [
+           'libavcodec/neon/autorename_libavcodec_neon_mpegvideo.c',
+         ],
+-      }],  # (OS == "linux" and target_arch == "arm" and arm_neon == 1 and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "ChromeOS")
+-      ['(OS == "linux" and target_arch == "arm" and arm_neon == 1 and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "arm" and ffmpeg_branding == "ChromeOS")', {
++      }],  # ((OS == "linux" or os_bsd == 1) and target_arch == "arm" and arm_neon == 1 and ffmpeg_branding == "ChromeOS") or ((OS == "linux" or os_bsd == 1) and target_arch == "arm64" and ffmpeg_branding == "ChromeOS")
++      ['((OS == "linux" or os_bsd == 1) and target_arch == "arm" and arm_neon == 1 and ffmpeg_branding == "ChromeOS") or ((OS == "linux" or os_bsd == 1) and target_arch == "arm" and ffmpeg_branding == "ChromeOS")', {
+         'c_sources': [
+           'libavcodec/arm/blockdsp_init_arm.c',
+           'libavcodec/arm/idctdsp_init_arm.c',
+@@ -98,8 +98,8 @@
+           'libavcodec/arm/simple_idct_armv5te.S',
+           'libavcodec/arm/simple_idct_armv6.S',
+         ],
+-      }],  # (OS == "linux" and target_arch == "arm" and arm_neon == 1 and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "arm" and ffmpeg_branding == "ChromeOS")
+-      ['(OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "ChromeOS")', {
++      }],  # ((OS == "linux" or os_bsd == 1) and target_arch == "arm" and arm_neon == 1 and ffmpeg_branding == "ChromeOS") or ((OS == "linux" or os_bsd == 1) and target_arch == "arm" and ffmpeg_branding == "ChromeOS")
++      ['((OS == "linux" or os_bsd == 1) and target_arch == "arm64" and ffmpeg_branding == "Chrome") or ((OS == "linux" or os_bsd == 1) and target_arch == "arm64" and ffmpeg_branding == "ChromeOS")', {
+         'c_sources': [
+           'libavcodec/aarch64/h264chroma_init_aarch64.c',
+           'libavcodec/aarch64/h264dsp_init_aarch64.c',
+@@ -111,8 +111,8 @@
+           'libavcodec/aarch64/autorename_libavcodec_aarch64_h264idct_neon.S',
+           'libavcodec/aarch64/autorename_libavcodec_aarch64_h264qpel_neon.S',
+         ],
+-      }],  # (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "ChromeOS")
+-      ['(OS == "android" and target_arch == "arm64" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "ChromeOS")', {
++      }],  # ((OS == "linux" or os_bsd == 1) and target_arch == "arm64" and ffmpeg_branding == "Chrome") or ((OS == "linux" or os_bsd == 1) and target_arch == "arm64" and ffmpeg_branding == "ChromeOS")
++      ['(OS == "android" and target_arch == "arm64" and ffmpeg_branding == "Chrome") or ((OS == "linux" or os_bsd == 1) and target_arch == "arm64" and ffmpeg_branding == "Chrome") or ((OS == "linux" or os_bsd == 1) and target_arch == "arm64" and ffmpeg_branding == "ChromeOS")', {
+         'c_sources': [
+           'libavcodec/aarch64/imdct15_init.c',
+           'libavcodec/aarch64/mpegaudiodsp_init.c',
+@@ -121,36 +121,36 @@
+           'libavcodec/aarch64/imdct15_neon.S',
+           'libavcodec/aarch64/mpegaudiodsp_neon.S',
+         ],
+-      }],  # (OS == "android" and target_arch == "arm64" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "arm64" and ffmpeg_branding == "ChromeOS")
+-      ['(OS == "linux" and target_arch == "mipsel" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "mipsel" and ffmpeg_branding == "ChromeOS")', {
++      }],  # (OS == "android" and target_arch == "arm64" and ffmpeg_branding == "Chrome") or ((OS == "linux" or os_bsd == 1) and target_arch == "arm64" and ffmpeg_branding == "Chrome") or ((OS == "linux" or os_bsd == 1) and target_arch == "arm64" and ffmpeg_branding == "ChromeOS")
++      ['((OS == "linux" or os_bsd == 1) and target_arch == "mipsel" and ffmpeg_branding == "Chrome") or ((OS == "linux" or os_bsd == 1) and target_arch == "mipsel" and ffmpeg_branding == "ChromeOS")', {
+         'c_sources': [
+           'libavcodec/mips/h264chroma_init_mips.c',
+           'libavcodec/mips/h264dsp_init_mips.c',
+           'libavcodec/mips/h264qpel_init_mips.c',
+         ],
+-      }],  # (OS == "linux" and target_arch == "mipsel" and ffmpeg_branding == "Chrome") or (OS == "linux" and target_arch == "mipsel" and ffmpeg_branding == "ChromeOS")
++      }],  # ((OS == "linux" or os_bsd == 1) and target_arch == "mipsel" and ffmpeg_branding == "Chrome") or ((OS == "linux" or os_bsd == 1) and target_arch == "mipsel" and ffmpeg_branding == "ChromeOS")
+       ['(OS == "win" and target_arch == "ia32" and ffmpeg_branding == "Chrome") or (OS == "win" and target_arch == "ia32" and ffmpeg_branding == "Chromium") or (OS == "win" and target_arch == "x64" and ffmpeg_branding == "Chrome") or (OS == "win" and target_arch == "x64" and ffmpeg_branding == "Chromium")', {
+         'c_sources': [
+           'compat/msvcrt/snprintf.c',
+         ],
+       }],  # (OS == "win" and target_arch == "ia32" and ffmpeg_branding == "Chrome") or (OS == "win" and target_arch == "ia32" and ffmpeg_branding == "Chromium") or (OS == "win" and target_arch == "x64" and ffmpeg_branding == "Chrome") or (OS == "win" and target_arch == "x64" and ffmpeg_branding == "Chromium")
+-      ['(OS == "linux" and target_arch == "ia32" and ffmpeg_branding == "ChromeOS") or (OS == "linux" and target_arch == "ia32" and ffmpeg_branding == "ChromiumOS") or (OS == "linux" and target_arch == "x64" and ffmpeg_branding == "ChromeOS") or (OS ==