From fcc148b0d09fd83d06e1ca68b99695c57798f8d8 Mon Sep 17 00:00:00 2001 From: "Carlos J. Puga Medina" Date: Wed, 7 Mar 2018 22:13:12 +0000 Subject: www/chromium: update to 64.0.3282.186 Changelog: https://chromium.googlesource.com/chromium/src/+log/63.0.3239.132..64.0.3282.186?pretty=fuller&n=10000 MFH: 2018Q1 Security: https://vuxml.freebsd.org/freebsd/8e986b2b-1baa-11e8-a944-54ee754af08e.html Security: https://vuxml.freebsd.org/freebsd/abfc932e-1ba8-11e8-a944-54ee754af08e.html --- www/chromium/files/patch-BUILD.gn | 39 +-- .../patch-base_files_memory_mapped_file_posix.cc | 20 +- .../files/patch-base_process_process__metrics.h | 13 +- ...patch-base_process_process__metrics__freebsd.cc | 18 +- .../files/patch-build_config_BUILDCONFIG.gn | 44 ++- .../files/patch-build_config_compiler_BUILD.gn | 30 +- .../patch-chrome_app_chrome__main__delegate.cc | 88 ++--- .../patch-chrome_app_chrome__main__delegate.h | 11 - .../patch-chrome_app_generated__resources.grd | 14 +- .../patch-chrome_browser_browser__resources.grd | 21 +- ...ome_browser_chrome__content__browser__client.cc | 50 +-- ...__audio__private_webrtc__audio__private__api.cc | 13 - ...owser_first__run_first__run__internal__posix.cc | 21 +- ...ser_interstitials_chrome__controller__client.cc | 20 -- ...rome_browser_ssl_ssl_error_controller_client.cc | 20 ++ ...e_browser_task__manager_sampling_task__group.cc | 20 +- ...me_browser_task__manager_sampling_task__group.h | 28 +- ...rome_browser_ui_browser__command__controller.cc | 26 +- .../files/patch-chrome_browser_ui_sad_tab.cc | 11 + ..._browser_non_client_frame_view_factory_views.cc | 11 + ...message__center_message__center__frame__view.cc | 11 - ...rome_browser_ui_views_profiles_avatar_button.cc | 12 +- .../patch-chrome_browser_ui_webui_about__ui.cc | 54 +-- ...i_webui_chrome__web__ui__controller__factory.cc | 32 +- .../files/patch-chrome_common_chrome__switches.cc | 12 +- .../files/patch-chrome_common_url__constants.cc | 56 --- .../files/patch-chrome_common_url__constants.h | 47 --- .../patch-chrome_common_webui_url_constants.cc | 41 +++ .../patch-chrome_common_webui_url_constants.h | 25 ++ .../patch-components_crash_content_app_BUILD.gn | 29 +- .../patch-components_crash_core_common_BUILD.gn | 10 + ...sword__manager_core_browser_password_manager.cc | 16 +- ...ponents_policy_resources_policy__templates.json | 80 ++++- .../patch-content_app_content__main__runner.cc | 19 +- .../patch-content_browser_browser__main__loop.cc | 22 +- ...patch-content_browser_gpu_gpu__internals__ui.cc | 20 -- ...owser_renderer__host_render__message__filter.cc | 26 +- .../files/patch-content_child_child__process.cc | 11 - .../files/patch-content_child_child__process.h | 11 - .../patch-content_child_child__thread__impl.cc | 11 - .../patch-content_child_child__thread__impl.h | 11 - www/chromium/files/patch-content_common_BUILD.gn | 35 +- ...patch-content_common_child__process__messages.h | 29 -- www/chromium/files/patch-content_gpu_BUILD.gn | 11 + www/chromium/files/patch-content_gpu_gpu__main.cc | 37 +- .../patch-content_gpu_gpu_sandbox_hook_linux.cc | 11 + ...patch-content_ppapi_plugin_ppapi_plugin_main.cc | 12 +- ...atch-content_public_test_browser__test__base.cc | 16 +- .../patch-content_renderer_render__thread__impl.cc | 30 +- .../files/patch-content_renderer_renderer_main.cc | 28 +- www/chromium/files/patch-device_hid_BUILD.gn | 22 -- .../patch-device_hid_hid__connection__freebsd.cc | 283 ---------------- .../patch-device_hid_hid__connection__freebsd.h | 79 ----- .../files/patch-device_hid_hid__service.cc | 20 -- .../patch-device_hid_hid__service__freebsd.cc | 374 --------------------- .../files/patch-device_hid_hid__service__freebsd.h | 51 --- ...col_media__transfer__protocol__daemon__client.h | 11 - ...__protocol_media__transfer__protocol__manager.h | 11 - .../patch-extensions_common_feature_switch.cc | 12 +- ...tch-gpu_ipc_common_gpu_memory_buffer_support.cc | 28 +- .../files/patch-gpu_ipc_service_gpu__init.cc | 29 +- ...h-gpu_ipc_service_gpu__memory_buffer_factory.cc | 18 +- ...adless_lib_headless__content__main__delegate.cc | 11 - ...eadless_lib_headless__content__main__delegate.h | 11 - .../patch-net_base_network__interfaces__freebsd.cc | 2 +- .../files/patch-net_socket_udp__socket__posix.cc | 62 ++-- ...ed__impl_private_net__address__private__impl.cc | 11 - .../files/patch-services_device_hid_BUILD.gn | 22 ++ ...services_device_hid_hid__connection__freebsd.cc | 283 ++++++++++++++++ ...-services_device_hid_hid__connection__freebsd.h | 79 +++++ .../patch-services_device_hid_hid__service.cc | 20 ++ ...ch-services_device_hid_hid__service__freebsd.cc | 374 +++++++++++++++++++++ ...tch-services_device_hid_hid__service__freebsd.h | 51 +++ ...manager_public_cpp_standalone__service_BUILD.gn | 12 +- ..._cpp_standalone__service_standalone__service.cc | 12 +- ...atch-services_service__manager_sandbox_BUILD.gn | 11 + ...rce_core_html_canvas_CanvasAsyncBlobCreator.cpp | 11 + ...ty_WebKit_Source_platform_fonts_FontMetrics.cpp | 29 ++ ...bKit_Source_platform_fonts_FontPlatformData.cpp | 26 +- ...WebKit_Source_platform_fonts_SimpleFontData.cpp | 29 -- ...h-third__party_ots_include_opentype-sanitiser.h | 10 - ...__party_pdfium_fpdfsdk_javascript_JS__Value.cpp | 15 - ...rty_pdfium_fpdfsdk_javascript_PublicMethods.cpp | 106 ------ .../patch-third__party_pdfium_fxjs_JS_Define.cpp | 15 + ...-third__party_pdfium_fxjs_cjs_publicmethods.cpp | 106 ++++++ .../patch-third__party_webrtc_p2p_base_port.cc | 11 - ...__party_webrtc_rtc_base_physicalsocketserver.cc | 6 +- ..._wrappers_source_atomic32__non__darwin__unix.cc | 11 - ...agdrop_os__exchange__data__provider__factory.cc | 16 +- .../patch-ui_base_ime_input__method__factory.cc | 22 -- .../files/patch-ui_gl_gl_bindings_autogen_glx.cc | 22 +- .../patch-v8_src_base_platform_platform-posix.cc | 19 +- www/chromium/files/patch-v8_src_globals.h | 2 +- 93 files changed, 1713 insertions(+), 1925 deletions(-) delete mode 100644 www/chromium/files/patch-chrome_app_chrome__main__delegate.h delete mode 100644 www/chromium/files/patch-chrome_browser_extensions_api_webrtc__audio__private_webrtc__audio__private__api.cc delete mode 100644 www/chromium/files/patch-chrome_browser_interstitials_chrome__controller__client.cc create mode 100644 www/chromium/files/patch-chrome_browser_ssl_ssl_error_controller_client.cc create mode 100644 www/chromium/files/patch-chrome_browser_ui_sad_tab.cc create mode 100644 www/chromium/files/patch-chrome_browser_ui_views_frame_browser_non_client_frame_view_factory_views.cc delete mode 100644 www/chromium/files/patch-chrome_browser_ui_views_message__center_message__center__frame__view.cc delete mode 100644 www/chromium/files/patch-chrome_common_url__constants.cc delete mode 100644 www/chromium/files/patch-chrome_common_url__constants.h create mode 100644 www/chromium/files/patch-chrome_common_webui_url_constants.cc create mode 100644 www/chromium/files/patch-chrome_common_webui_url_constants.h create mode 100644 www/chromium/files/patch-components_crash_core_common_BUILD.gn delete mode 100644 www/chromium/files/patch-content_browser_gpu_gpu__internals__ui.cc delete mode 100644 www/chromium/files/patch-content_child_child__process.cc delete mode 100644 www/chromium/files/patch-content_child_child__process.h delete mode 100644 www/chromium/files/patch-content_child_child__thread__impl.cc delete mode 100644 www/chromium/files/patch-content_child_child__thread__impl.h delete mode 100644 www/chromium/files/patch-content_common_child__process__messages.h create mode 100644 www/chromium/files/patch-content_gpu_BUILD.gn create mode 100644 www/chromium/files/patch-content_gpu_gpu_sandbox_hook_linux.cc delete mode 100644 www/chromium/files/patch-device_hid_BUILD.gn delete mode 100644 www/chromium/files/patch-device_hid_hid__connection__freebsd.cc delete mode 100644 www/chromium/files/patch-device_hid_hid__connection__freebsd.h delete mode 100644 www/chromium/files/patch-device_hid_hid__service.cc delete mode 100644 www/chromium/files/patch-device_hid_hid__service__freebsd.cc delete mode 100644 www/chromium/files/patch-device_hid_hid__service__freebsd.h delete mode 100644 www/chromium/files/patch-device_media__transfer__protocol_media__transfer__protocol__daemon__client.h delete mode 100644 www/chromium/files/patch-device_media__transfer__protocol_media__transfer__protocol__manager.h delete mode 100644 www/chromium/files/patch-headless_lib_headless__content__main__delegate.cc delete mode 100644 www/chromium/files/patch-headless_lib_headless__content__main__delegate.h delete mode 100644 www/chromium/files/patch-ppapi_shared__impl_private_net__address__private__impl.cc create mode 100644 www/chromium/files/patch-services_device_hid_BUILD.gn create mode 100644 www/chromium/files/patch-services_device_hid_hid__connection__freebsd.cc create mode 100644 www/chromium/files/patch-services_device_hid_hid__connection__freebsd.h create mode 100644 www/chromium/files/patch-services_device_hid_hid__service.cc create mode 100644 www/chromium/files/patch-services_device_hid_hid__service__freebsd.cc create mode 100644 www/chromium/files/patch-services_device_hid_hid__service__freebsd.h create mode 100644 www/chromium/files/patch-services_service__manager_sandbox_BUILD.gn create mode 100644 www/chromium/files/patch-third__party_WebKit_Source_core_html_canvas_CanvasAsyncBlobCreator.cpp create mode 100644 www/chromium/files/patch-third__party_WebKit_Source_platform_fonts_FontMetrics.cpp delete mode 100644 www/chromium/files/patch-third__party_WebKit_Source_platform_fonts_SimpleFontData.cpp delete mode 100644 www/chromium/files/patch-third__party_ots_include_opentype-sanitiser.h delete mode 100644 www/chromium/files/patch-third__party_pdfium_fpdfsdk_javascript_JS__Value.cpp delete mode 100644 www/chromium/files/patch-third__party_pdfium_fpdfsdk_javascript_PublicMethods.cpp create mode 100644 www/chromium/files/patch-third__party_pdfium_fxjs_JS_Define.cpp create mode 100644 www/chromium/files/patch-third__party_pdfium_fxjs_cjs_publicmethods.cpp delete mode 100644 www/chromium/files/patch-third__party_webrtc_p2p_base_port.cc delete mode 100644 www/chromium/files/patch-third__party_webrtc_system__wrappers_source_atomic32__non__darwin__unix.cc delete mode 100644 www/chromium/files/patch-ui_base_ime_input__method__factory.cc (limited to 'www/chromium/files') diff --git a/www/chromium/files/patch-BUILD.gn b/www/chromium/files/patch-BUILD.gn index 8e1e30e6dfa8..3ddf88089fb8 100644 --- a/www/chromium/files/patch-BUILD.gn +++ b/www/chromium/files/patch-BUILD.gn @@ -1,15 +1,6 @@ ---- BUILD.gn.orig 2017-12-15 02:04:03.000000000 +0100 -+++ BUILD.gn 2017-12-25 04:12:31.425198000 +0100 -@@ -99,7 +99,7 @@ - ] - } - -- if (!is_ios && !is_android && !is_chromecast && !is_fuchsia) { -+ if (!is_ios && !is_android && !is_chromecast && !is_fuchsia && !is_bsd) { - deps += [ - "//chrome", - "//chrome/installer/zucchini:zucchini", -@@ -368,7 +368,7 @@ +--- BUILD.gn.orig 2018-02-24 16:25:08.000000000 +0100 ++++ BUILD.gn 2018-03-03 19:04:30.972689000 +0100 +@@ -361,7 +361,7 @@ } } @@ -18,7 +9,7 @@ deps += [ "//third_party/breakpad:breakpad_unittests", "//third_party/breakpad:core-2-minidump", -@@ -408,8 +408,6 @@ +@@ -406,8 +406,6 @@ "//net:disk_cache_memory_test", "//net:quic_client", "//net:quic_server", @@ -27,7 +18,7 @@ ] if (use_dbus) { -@@ -465,10 +463,6 @@ +@@ -464,10 +462,6 @@ "//chrome/test/chromedriver:chromedriver", "//chrome/test/chromedriver:chromedriver_tests", "//components/sync:run_sync_testserver", @@ -38,7 +29,7 @@ "//media/cast:generate_barcode_video", "//media/cast:generate_timecode_audio", "//net:crash_cache", -@@ -523,10 +517,6 @@ +@@ -522,10 +516,6 @@ "//mojo/edk/test:mojo_public_system_perftests", "//services/service_manager/public/cpp", "//testing/gmock:gmock_main", @@ -49,7 +40,7 @@ ] if (!is_android) { -@@ -594,7 +584,7 @@ +@@ -593,7 +583,7 @@ deps += [ "//chrome/installer/mini_installer:next_version_mini_installer" ] } @@ -58,7 +49,7 @@ deps += [ "//third_party/breakpad:symupload($host_toolchain)" ] } -@@ -831,7 +821,6 @@ +@@ -835,7 +825,6 @@ "//ppapi/examples/video_decode", "//sandbox/linux:chrome_sandbox", "//sandbox/linux:sandbox_linux_unittests", @@ -67,7 +58,7 @@ # Blocked on https://github.com/catapult-project/catapult/issues/2297 #"//third_party/catapult/telemetry:bitmaptools", @@ -939,7 +928,7 @@ - data_deps += [ "//content/shell:content_shell_crash_service" ] + ] } - if (!is_win && !is_android) { @@ -84,13 +75,13 @@ data_deps += [ "//third_party/breakpad:dump_syms($host_toolchain)" ] } -@@ -1066,9 +1055,6 @@ - "//chrome/installer/mini_installer:mini_installer", - "//chrome/test:angle_perftests", - ] +@@ -1064,9 +1053,6 @@ + + if (is_win) { + data_deps += [ "//chrome/installer/mini_installer:mini_installer" ] - } else { - data_deps += - [ "//third_party/breakpad:minidump_stackwalk($host_toolchain)" ] } - } - } + if (is_win || is_android) { + data_deps += [ "//chrome/test:angle_perftests" ] diff --git a/www/chromium/files/patch-base_files_memory_mapped_file_posix.cc b/www/chromium/files/patch-base_files_memory_mapped_file_posix.cc index 996e487ac691..e81ed7ae1746 100644 --- a/www/chromium/files/patch-base_files_memory_mapped_file_posix.cc +++ b/www/chromium/files/patch-base_files_memory_mapped_file_posix.cc @@ -1,11 +1,11 @@ ---- base/files/memory_mapped_file_posix.cc.orig 2017-08-02 18:42:44.932652000 +0200 -+++ base/files/memory_mapped_file_posix.cc 2017-08-02 18:42:59.362655000 +0200 -@@ -114,7 +114,7 @@ - - #if defined(OS_ANDROID) && __ANDROID_API__ < 21 +--- base/files/memory_mapped_file_posix.cc.orig 2018-02-24 16:25:08.000000000 +0100 ++++ base/files/memory_mapped_file_posix.cc 2018-03-03 19:01:12.448678000 +0100 +@@ -110,6 +110,8 @@ + // Only Android API>=21 supports the fallocate call. Older versions need + // to manually extend the file by writing zeros at block intervals. do_manual_extension = true; --#elif !defined(OS_MACOSX) -+#elif !defined(OS_MACOSX) && !defined(OS_BSD) - if (posix_fallocate(file_.GetPlatformFile(), region.offset, - region.size) != 0) { - DPLOG(ERROR) << "posix_fallocate " << file_.GetPlatformFile(); ++#elif defined(OS_BSD) ++ do_manual_extension = true; + #elif defined(OS_MACOSX) + // MacOS doesn't support fallocate even though their new APFS filesystem + // does support sparse files. It does, however, have the functionality diff --git a/www/chromium/files/patch-base_process_process__metrics.h b/www/chromium/files/patch-base_process_process__metrics.h index 70aaf3ae0685..3824a4367bdc 100644 --- a/www/chromium/files/patch-base_process_process__metrics.h +++ b/www/chromium/files/patch-base_process_process__metrics.h @@ -1,5 +1,5 @@ ---- base/process/process_metrics.h.orig 2017-12-23 20:56:16.823419000 +0100 -+++ base/process/process_metrics.h 2017-12-23 20:58:52.195249000 +0100 +--- base/process/process_metrics.h.orig 2018-02-24 16:25:08.000000000 +0100 ++++ base/process/process_metrics.h 2018-03-03 19:17:04.829273000 +0100 @@ -103,7 +103,7 @@ size_t image; }; @@ -72,3 +72,12 @@ int buffers = 0; int cached = 0; int active_anon = 0; +@@ -437,7 +437,7 @@ + #endif // defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || + // defined(OS_ANDROID) || defined(OS_AIX) || defined(OS_FUCHSIA) + +-#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_AIX) ++#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_AIX) || defined(OS_BSD) + // Parse the data found in /proc//stat and return the sum of the + // CPU-related ticks. Returns -1 on parse error. + // Exposed for testing. diff --git a/www/chromium/files/patch-base_process_process__metrics__freebsd.cc b/www/chromium/files/patch-base_process_process__metrics__freebsd.cc index 7f4a0bfe0ca8..22259506b400 100644 --- a/www/chromium/files/patch-base_process_process__metrics__freebsd.cc +++ b/www/chromium/files/patch-base_process_process__metrics__freebsd.cc @@ -1,5 +1,5 @@ ---- base/process/process_metrics_freebsd.cc.orig 2018-01-04 21:05:38.000000000 +0100 -+++ base/process/process_metrics_freebsd.cc 2018-01-27 20:04:35.262483000 +0100 +--- base/process/process_metrics_freebsd.cc.orig 2018-02-24 16:25:08.000000000 +0100 ++++ base/process/process_metrics_freebsd.cc 2018-03-03 19:25:40.067505000 +0100 @@ -12,6 +12,10 @@ #include "base/macros.h" #include "base/memory/ptr_util.h" @@ -11,7 +11,19 @@ namespace base { ProcessMetrics::ProcessMetrics(ProcessHandle process) -@@ -118,6 +122,60 @@ +@@ -25,6 +29,11 @@ + return WrapUnique(new ProcessMetrics(process)); + } + ++bool GetVmStatInfo(VmStatInfo* vmstat) { ++ NOTIMPLEMENTED(); ++ return false; ++} ++ + size_t ProcessMetrics::GetPagefileUsage() const { + struct kinfo_proc info; + int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, process_ }; +@@ -118,6 +127,60 @@ pagesize = getpagesize(); return mem_total - (mem_free*pagesize) - (mem_inactive*pagesize); diff --git a/www/chromium/files/patch-build_config_BUILDCONFIG.gn b/www/chromium/files/patch-build_config_BUILDCONFIG.gn index 4c70e0ad7bb7..79886dfc72c7 100644 --- a/www/chromium/files/patch-build_config_BUILDCONFIG.gn +++ b/www/chromium/files/patch-build_config_BUILDCONFIG.gn @@ -1,6 +1,6 @@ ---- build/config/BUILDCONFIG.gn.orig 2017-12-15 02:04:05.000000000 +0100 -+++ build/config/BUILDCONFIG.gn 2017-12-30 02:24:17.939908000 +0100 -@@ -131,13 +131,13 @@ +--- build/config/BUILDCONFIG.gn.orig 2018-02-24 16:25:08.000000000 +0100 ++++ build/config/BUILDCONFIG.gn 2018-03-03 19:33:34.562749000 +0100 +@@ -131,14 +131,14 @@ is_official_build = false # Whether we're a traditional desktop unix. @@ -11,12 +11,13 @@ # to configure warnings. is_clang = current_os == "mac" || current_os == "ios" || current_os == "chromeos" || -- current_os == "fuchsia" || current_os == "android" || -+ current_os == "fuchsia" || current_os == "android" || current_os == "bsd" || + current_os == "fuchsia" || current_os == "android" || +- current_os == "win" || ++ current_os == "win" || current_os == "bsd" || (current_os == "linux" && current_cpu != "s390x" && current_cpu != "s390" && current_cpu != "ppc64" && current_cpu != "ppc" && current_cpu != "mips" && current_cpu != "mips64") -@@ -190,8 +190,8 @@ +@@ -191,8 +191,8 @@ # TODO(dpranke): Add some sort of assert here that verifies that # no toolchain omitted host_toolchain from its toolchain_args(). @@ -27,16 +28,16 @@ # TODO(dpranke) - is_clang normally applies only to the target # build, and there is no way to indicate that you want to override # it for both the target build *and* the host build. Do we need to -@@ -229,7 +229,7 @@ - } else { - _default_toolchain = "//build/toolchain/android:android_$target_cpu" - } +@@ -226,7 +226,7 @@ + assert(host_os == "linux" || host_os == "mac", + "Android builds are only supported on Linux and Mac hosts.") + _default_toolchain = "//build/toolchain/android:android_clang_$target_cpu" -} else if (target_os == "chromeos" || target_os == "linux") { +} else if (target_os == "chromeos" || target_os == "linux" || target_os == "bsd") { # See comments in build/toolchain/cros/BUILD.gn about board compiles. if (is_clang) { _default_toolchain = "//build/toolchain/linux:clang_$target_cpu" -@@ -297,6 +297,7 @@ +@@ -296,6 +296,7 @@ is_nacl = false is_posix = false is_win = true @@ -44,7 +45,7 @@ } else if (current_os == "mac") { is_android = false is_chromeos = false -@@ -307,6 +308,7 @@ +@@ -306,6 +307,7 @@ is_nacl = false is_posix = true is_win = false @@ -52,7 +53,7 @@ } else if (current_os == "android") { is_android = true is_chromeos = false -@@ -317,6 +319,7 @@ +@@ -316,6 +318,7 @@ is_nacl = false is_posix = true is_win = false @@ -60,7 +61,7 @@ } else if (current_os == "chromeos") { is_android = false is_chromeos = true -@@ -327,6 +330,7 @@ +@@ -326,6 +329,7 @@ is_nacl = false is_posix = true is_win = false @@ -68,7 +69,7 @@ } else if (current_os == "nacl") { # current_os == "nacl" will be passed by the nacl toolchain definition. # It is not set by default or on the command line. We treat is as a -@@ -340,6 +344,7 @@ +@@ -339,6 +343,7 @@ is_nacl = true is_posix = true is_win = false @@ -76,7 +77,7 @@ } else if (current_os == "fuchsia") { is_android = false is_chromeos = false -@@ -350,6 +355,7 @@ +@@ -349,6 +354,7 @@ is_nacl = false is_posix = true is_win = false @@ -84,7 +85,7 @@ } else if (current_os == "ios") { is_android = false is_chromeos = false -@@ -360,6 +366,7 @@ +@@ -359,6 +365,7 @@ is_nacl = false is_posix = true is_win = false @@ -92,7 +93,7 @@ } else if (current_os == "linux") { is_android = false is_chromeos = false -@@ -370,6 +377,7 @@ +@@ -369,6 +376,7 @@ is_nacl = false is_posix = true is_win = false @@ -100,7 +101,7 @@ } else if (current_os == "aix") { is_android = false is_chromeos = false -@@ -379,8 +387,20 @@ +@@ -378,6 +386,18 @@ is_nacl = false is_posix = true is_win = false @@ -111,14 +112,11 @@ + is_fuchsia = false + is_ios = false + is_linux = true -+ is_bsd = true + is_mac = false + is_nacl = false + is_posix = true + is_win = false + is_bsd = true } -- - # ============================================================================= - # SOURCES FILTERS + # ============================================================================= diff --git a/www/chromium/files/patch-build_config_compiler_BUILD.gn b/www/chromium/files/patch-build_config_compiler_BUILD.gn index 82763f0cc241..1e141ec9363c 100644 --- a/www/chromium/files/patch-build_config_compiler_BUILD.gn +++ b/www/chromium/files/patch-build_config_compiler_BUILD.gn @@ -1,6 +1,6 @@ ---- build/config/compiler/BUILD.gn.orig 2018-01-04 21:05:38.000000000 +0100 -+++ build/config/compiler/BUILD.gn 2018-01-20 16:53:24.701867000 +0100 -@@ -47,7 +47,7 @@ +--- build/config/compiler/BUILD.gn.orig 2018-02-24 16:25:08.000000000 +0100 ++++ build/config/compiler/BUILD.gn 2018-03-03 19:36:38.111753000 +0100 +@@ -48,7 +48,7 @@ # only two architectures that are currently checked in). Turn this off when # you are using a custom toolchain and need to control -B in cflags. linux_use_bundled_binutils = @@ -9,7 +9,7 @@ (current_cpu == "x64" || current_cpu == "x86") binutils_path = rebase_path("//third_party/binutils/Linux_x64/Release/bin", root_build_dir) -@@ -222,7 +222,7 @@ +@@ -223,7 +223,7 @@ # Linker warnings. if (fatal_linker_warnings && !(is_chromeos && current_cpu == "arm") && !(is_android && use_order_profiling) && !is_mac && !is_ios && @@ -18,7 +18,7 @@ # TODO(jochen): Enable this on chromeos on arm. http://crbug.com/356580 # TODO(lizeb,pasko): Fix link errors when linking with order_profiling=1 # crbug.com/485542 -@@ -326,8 +326,6 @@ +@@ -327,8 +327,6 @@ "-Wl,-z,relro", ] if (!using_sanitizer) { @@ -27,7 +27,7 @@ # Functions interposed by the sanitizers can make ld think # that some libraries aren't needed when they actually are, # http://crbug.com/234010. As workaround, disable --as-needed. -@@ -424,7 +422,7 @@ +@@ -425,7 +423,7 @@ # TODO(hans): Remove this once Clang generates better optimized debug info by # default. https://crbug.com/765793 if (is_clang && !is_nacl && current_toolchain == host_toolchain && @@ -36,7 +36,7 @@ cflags += [ "-Xclang", "-mllvm", -@@ -638,7 +636,7 @@ +@@ -622,7 +620,7 @@ cflags += [ "-mtune=$arm_tune" ] } } else if (current_cpu == "arm64") { @@ -45,7 +45,7 @@ cflags += [ "--target=aarch64-linux-gnu" ] ldflags += [ "--target=aarch64-linux-gnu" ] } -@@ -1261,23 +1259,8 @@ +@@ -1280,27 +1278,8 @@ # TODO(hans): https://crbug.com/637306 "-Wno-address-of-packed-member", @@ -65,11 +65,15 @@ - "-Wno-null-pointer-arithmetic", - - # TODO(hans): https://crbug.com/767059 -- "-Wno-tautological-unsigned-enum-zero-compare", +- # Disable -Wtautological-constant-compare (and implicitly also +- # -Wtautological-unsigned-enum-zero-compare), but re-enable +- # useful sub-diagnostics in that group. +- "-Wno-tautological-constant-compare", +- "-Wtautological-constant-out-of-range-compare", ] - } else if (use_xcode_clang && xcode_version_int >= 830) { - # This is necessary to allow a progressive transition from using xcode 8.0 -@@ -1861,7 +1844,7 @@ + } else if (use_xcode_clang) { + cflags += [ +@@ -1920,7 +1899,7 @@ # [1] crrev.com/a81d5ade0b043208e06ad71a38bcf9c348a1a52f cflags += [ "-gdwarf-3" ] } @@ -78,7 +82,7 @@ } if (use_debug_fission && !is_nacl) { cflags += [ "-gsplit-dwarf" ] -@@ -1875,7 +1858,7 @@ +@@ -1934,7 +1913,7 @@ # DWARF info may be corrupt; offsets in a range list entry are in different # sections" there. Maybe just a bug in nacl_switch_32.S. if (!is_mac && !is_ios && !is_nacl && target_cpu != "x86" && diff --git a/www/chromium/files/patch-chrome_app_chrome__main__delegate.cc b/www/chromium/files/patch-chrome_app_chrome__main__delegate.cc index c56c38b1f390..e4fd91ff05ba 100644 --- a/www/chromium/files/patch-chrome_app_chrome__main__delegate.cc +++ b/www/chromium/files/patch-chrome_app_chrome__main__delegate.cc @@ -1,6 +1,6 @@ ---- chrome/app/chrome_main_delegate.cc.orig 2017-12-15 02:04:07.000000000 +0100 -+++ chrome/app/chrome_main_delegate.cc 2017-12-24 00:00:14.610706000 +0100 -@@ -96,7 +96,7 @@ +--- chrome/app/chrome_main_delegate.cc.orig 2018-02-24 16:25:09.000000000 +0100 ++++ chrome/app/chrome_main_delegate.cc 2018-03-03 20:07:40.484969000 +0100 +@@ -98,7 +98,7 @@ #include "chrome/app/shutdown_signal_handlers_posix.h" #endif @@ -9,7 +9,7 @@ #include "components/nacl/common/nacl_paths.h" #include "components/nacl/zygote/nacl_fork_delegate_linux.h" #endif -@@ -137,7 +137,7 @@ +@@ -133,7 +133,7 @@ #include "v8/include/v8.h" #endif @@ -18,34 +18,16 @@ #include "base/environment.h" #endif -@@ -176,7 +176,7 @@ - g_chrome_content_browser_client = LAZY_INSTANCE_INITIALIZER; - #endif +@@ -238,7 +238,7 @@ --#if defined(OS_POSIX) -+#if defined(OS_POSIX) && !defined(OS_BSD) - base::LazyInstance::Leaky g_chrome_crash_client = - LAZY_INSTANCE_INITIALIZER; - #endif -@@ -304,7 +304,7 @@ - // and resources loaded. - bool SubprocessNeedsResourceBundle(const std::string& process_type) { - return --#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 -@@ -356,7 +356,7 @@ - } - #endif + #endif // defined(OS_WIN) --#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; -@@ -408,7 +408,7 @@ +-#if defined(OS_LINUX) ++#if defined(OS_LINUX) && !defined(OS_BSD) + void AdjustLinuxOOMScore(const std::string& process_type) { + // Browsers and zygotes should still be killable, but killed last. + const int kZygoteScore = 0; +@@ -407,7 +407,7 @@ std::string process_type = command_line->GetSwitchValueASCII(switches::kProcessType); @@ -54,7 +36,7 @@ // 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. -@@ -582,7 +582,7 @@ +@@ -581,7 +581,7 @@ #if defined(OS_CHROMEOS) chromeos::RegisterPathProvider(); #endif @@ -63,7 +45,7 @@ nacl::RegisterPathProvider(); #endif -@@ -604,7 +604,7 @@ +@@ -603,7 +603,7 @@ std::string format_str = command_line.GetSwitchValueASCII(switches::kDiagnosticsFormat); if (format_str == "machine") { @@ -72,7 +54,7 @@ } else if (format_str == "log") { format = diagnostics::DiagnosticsWriter::LOG; } else { -@@ -654,7 +654,7 @@ +@@ -653,7 +653,7 @@ std::string format_str = command_line.GetSwitchValueASCII(switches::kDiagnosticsFormat); if (format_str == "machine") { @@ -81,17 +63,8 @@ } else if (format_str == "human") { format = diagnostics::DiagnosticsWriter::HUMAN; } else { -@@ -766,7 +766,7 @@ - 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 - -@@ -906,7 +906,7 @@ - chrome::InitializePDF(); +@@ -915,7 +915,7 @@ + InitializePDF(); #endif -#if defined(OS_POSIX) && !defined(OS_MACOSX) @@ -99,7 +72,7 @@ // Zygote needs to call InitCrashReporter() in RunZygote(). if (process_type != switches::kZygoteProcess) { #if defined(OS_ANDROID) -@@ -922,7 +922,7 @@ +@@ -931,7 +931,7 @@ breakpad::InitCrashReporter(process_type); #endif // defined(OS_ANDROID) } @@ -108,21 +81,12 @@ // After all the platform Breakpads have been initialized, store the command // line for crash reporting. -@@ -975,7 +975,7 @@ - // This entry is not needed on Linux, where the NaCl loader - // process is launched via nacl_helper instead. - #if BUILDFLAG(ENABLE_NACL) && !defined(CHROME_MULTIPLE_DLL_BROWSER) && \ -- !defined(OS_LINUX) -+ !defined(OS_LINUX) && !defined(OS_BSD) - {switches::kNaClLoaderProcess, NaClMain}, - #else - {"", NULL}, // To avoid constant array of size 0 -@@ -1028,7 +1028,7 @@ +@@ -941,7 +941,7 @@ + void ChromeMainDelegate::SandboxInitialized(const std::string& process_type) { + // Note: If you are adding a new process type below, be sure to adjust the + // AdjustLinuxOOMScore function too. +-#if defined(OS_LINUX) ++#if defined(OS_LINUX) && !defined(OS_BSD) + AdjustLinuxOOMScore(process_type); #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( - std::vector>* delegates) { - #if defined(OS_CHROMEOS) + #if defined(OS_WIN) diff --git a/www/chromium/files/patch-chrome_app_chrome__main__delegate.h b/www/chromium/files/patch-chrome_app_chrome__main__delegate.h deleted file mode 100644 index b228ed3e49d3..000000000000 --- a/www/chromium/files/patch-chrome_app_chrome__main__delegate.h +++ /dev/null @@ -1,11 +0,0 @@ ---- chrome/app/chrome_main_delegate.h.orig 2017-06-05 19:03:01 UTC -+++ chrome/app/chrome_main_delegate.h -@@ -42,7 +42,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(std::vector>* - delegates) override; - void ZygoteForked() override; diff --git a/www/chromium/files/patch-chrome_app_generated__resources.grd b/www/chromium/files/patch-chrome_app_generated__resources.grd index be4e9ccdd6b4..2dba7ca4b3b7 100644 --- a/www/chromium/files/patch-chrome_app_generated__resources.grd +++ b/www/chromium/files/patch-chrome_app_generated__resources.grd @@ -1,6 +1,6 @@ ---- chrome/app/generated_resources.grd.orig 2017-12-15 02:04:07.000000000 +0100 -+++ chrome/app/generated_resources.grd 2017-12-24 00:06:55.397820000 +0100 -@@ -6903,7 +6903,7 @@ +--- chrome/app/generated_resources.grd.orig 2018-02-24 16:25:09.000000000 +0100 ++++ chrome/app/generated_resources.grd 2018-03-03 20:22:12.855371000 +0100 +@@ -6919,7 +6919,7 @@ Google Payments @@ -9,7 +9,7 @@ Themes -@@ -6911,7 +6911,7 @@ +@@ -6927,7 +6927,7 @@ Reset to default theme @@ -18,12 +18,12 @@ Use GTK+ theme -@@ -8061,7 +8061,7 @@ +@@ -8076,7 +8076,7 @@ Set as default - + - - Use system title bar and borders + + Minimize diff --git a/www/chromium/files/patch-chrome_browser_browser__resources.grd b/www/chromium/files/patch-chrome_browser_browser__resources.grd index 3d8ac8600f95..da2dd81c114e 100644 --- a/www/chromium/files/patch-chrome_browser_browser__resources.grd +++ b/www/chromium/files/patch-chrome_browser_browser__resources.grd @@ -1,7 +1,16 @@ ---- chrome/browser/browser_resources.grd.orig 2017-12-15 02:04:08.000000000 +0100 -+++ chrome/browser/browser_resources.grd 2017-12-24 00:39:53.904855000 +0100 -@@ -370,7 +370,7 @@ - +--- chrome/browser/browser_resources.grd.orig 2018-02-24 16:25:09.000000000 +0100 ++++ chrome/browser/browser_resources.grd 2018-03-04 09:28:51.895810000 +0100 +@@ -77,7 +77,7 @@ + + + +- ++ + + + +@@ -369,7 +369,7 @@ + - @@ -9,8 +18,8 @@ -@@ -620,7 +620,7 @@ - +@@ -619,7 +619,7 @@ + - diff --git a/www/chromium/files/patch-chrome_browser_chrome__content__browser__client.cc b/www/chromium/files/patch-chrome_browser_chrome__content__browser__client.cc index b68d5d80f9f8..f2e640f9788f 100644 --- a/www/chromium/files/patch-chrome_browser_chrome__content__browser__client.cc +++ b/www/chromium/files/patch-chrome_browser_chrome__content__browser__client.cc @@ -1,6 +1,6 @@ ---- chrome/browser/chrome_content_browser_client.cc.orig 2017-09-05 21:05:12.000000000 +0200 -+++ chrome/browser/chrome_content_browser_client.cc 2017-09-06 17:56:29.888034000 +0200 -@@ -258,7 +258,7 @@ +--- chrome/browser/chrome_content_browser_client.cc.orig 2018-02-24 16:25:09.000000000 +0100 ++++ chrome/browser/chrome_content_browser_client.cc 2018-03-03 20:34:31.799512000 +0100 +@@ -281,7 +281,7 @@ #include "chromeos/chromeos_switches.h" #include "components/user_manager/user_manager.h" #include "services/service_manager/public/interfaces/interface_provider_spec.mojom.h" @@ -8,9 +8,9 @@ +#elif defined(OS_LINUX) || defined(OS_BSD) #include "chrome/browser/chrome_browser_main_linux.h" #elif defined(OS_ANDROID) - #include "chrome/browser/android/app_hooks.h" -@@ -286,7 +286,7 @@ - #include "chrome/browser/payments/payment_request_factory.h" + #include "base/android/application_status_listener.h" +@@ -316,7 +316,7 @@ + #include "chrome/common/importer/profile_import.mojom.h" #endif -#if defined(OS_LINUX) || defined(OS_WIN) @@ -18,7 +18,7 @@ #include "chrome/browser/webshare/share_service_impl.h" #endif -@@ -300,7 +300,7 @@ +@@ -330,7 +330,7 @@ #include "chrome/browser/ui/views/chrome_browser_main_extra_parts_views.h" #endif @@ -27,25 +27,7 @@ #include "chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.h" #endif -@@ -548,7 +548,7 @@ - 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; -@@ -598,7 +598,7 @@ - - return -1; - } --#endif // defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_MACOSX) -+#endif // defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_MACOSX) && !defined(OS_BSD) - - void SetApplicationLocaleOnIOThread(const std::string& locale) { - DCHECK_CURRENTLY_ON(BrowserThread::IO); -@@ -876,7 +876,7 @@ +@@ -912,7 +912,7 @@ main_parts = new ChromeBrowserMainPartsMac(parameters); #elif defined(OS_CHROMEOS) main_parts = new chromeos::ChromeBrowserMainPartsChromeos(parameters); @@ -54,7 +36,7 @@ main_parts = new ChromeBrowserMainPartsLinux(parameters); #elif defined(OS_ANDROID) main_parts = new ChromeBrowserMainPartsAndroid(parameters); -@@ -892,7 +892,7 @@ +@@ -928,7 +928,7 @@ // Construct additional browser parts. Stages are called in the order in // which they are added. #if defined(TOOLKIT_VIEWS) @@ -63,16 +45,16 @@ main_parts->AddParts(new ChromeBrowserMainExtraPartsViewsLinux()); #else main_parts->AddParts(new ChromeBrowserMainExtraPartsViews()); -@@ -1540,7 +1540,7 @@ +@@ -1651,7 +1651,7 @@ 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; - std::unique_ptr client_info = -@@ -2710,7 +2710,7 @@ + bool enable_crash_reporter = breakpad::IsCrashReporterEnabled(); + #if defined(OS_CHROMEOS) + // Chrome OS uses the OS-level crash_reporter for mash services, so disable +@@ -2913,7 +2913,7 @@ } } @@ -81,7 +63,7 @@ void ChromeContentBrowserClient::GetAdditionalMappedFilesForChildProcess( const base::CommandLine& command_line, int child_process_id, -@@ -2752,7 +2752,7 @@ +@@ -2949,7 +2949,7 @@ } #endif // defined(OS_ANDROID) } @@ -90,7 +72,7 @@ #if defined(OS_WIN) base::string16 ChromeContentBrowserClient::GetAppContainerSidForSandboxType( -@@ -3316,7 +3316,7 @@ +@@ -3630,7 +3630,7 @@ #if defined(OS_ANDROID) frame_interfaces_parameterized_->AddInterface(base::Bind( &ForwardToJavaWebContentsRegistry)); diff --git a/www/chromium/files/patch-chrome_browser_extensions_api_webrtc__audio__private_webrtc__audio__private__api.cc b/www/chromium/files/patch-chrome_browser_extensions_api_webrtc__audio__private_webrtc__audio__private__api.cc deleted file mode 100644 index 10bbfa51cfa9..000000000000 --- a/www/chromium/files/patch-chrome_browser_extensions_api_webrtc__audio__private_webrtc__audio__private__api.cc +++ /dev/null @@ -1,13 +0,0 @@ ---- chrome/browser/extensions/api/webrtc_audio_private/webrtc_audio_private_api.cc.orig 2017-06-05 19:03:02 UTC -+++ chrome/browser/extensions/api/webrtc_audio_private/webrtc_audio_private_api.cc -@@ -563,7 +563,10 @@ bool WebrtcAudioPrivateSetAudioExperimentsFunction::Ru - return false; - } - -+#if BUILDFLAG(ENABLE_WEBRTC) -+ // To workaround side effect of having 'enable_webrtc=false' - host->SetEchoCanceller3(*params->audio_experiments.enable_aec3); -+#endif - } - - SendResponse(true); diff --git a/www/chromium/files/patch-chrome_browser_first__run_first__run__internal__posix.cc b/www/chromium/files/patch-chrome_browser_first__run_first__run__internal__posix.cc index b2b75f518852..122267faeb00 100644 --- a/www/chromium/files/patch-chrome_browser_first__run_first__run__internal__posix.cc +++ b/www/chromium/files/patch-chrome_browser_first__run_first__run__internal__posix.cc @@ -1,11 +1,20 @@ ---- chrome/browser/first_run/first_run_internal_posix.cc.orig 2017-04-19 19:06:29 UTC -+++ chrome/browser/first_run/first_run_internal_posix.cc -@@ -24,7 +24,7 @@ namespace first_run { +--- chrome/browser/first_run/first_run_internal_posix.cc.orig 2018-02-24 16:25:09.000000000 +0100 ++++ chrome/browser/first_run/first_run_internal_posix.cc 2018-03-03 21:26:08.717035000 +0100 +@@ -34,7 +34,7 @@ namespace internal { + namespace { + +-#if !defined(OS_CHROMEOS) ++#if !defined(OS_CHROMEOS) && !defined(OS_BSD) + // Returns whether the first run dialog should be shown. This is only true for + // certain builds, and only if the user has not already set preferences. In a + // real, official-build first run, initializes the default metrics reporting if +@@ -80,7 +80,7 @@ + } // namespace 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); + if (!ShouldShowFirstRunDialog()) + return; + diff --git a/www/chromium/files/patch-chrome_browser_interstitials_chrome__controller__client.cc b/www/chromium/files/patch-chrome_browser_interstitials_chrome__controller__client.cc deleted file mode 100644 index 69430d9675d5..000000000000 --- a/www/chromium/files/patch-chrome_browser_interstitials_chrome__controller__client.cc +++ /dev/null @@ -1,20 +0,0 @@ ---- chrome/browser/interstitials/chrome_controller_client.cc.orig 2017-12-15 02:04:09.000000000 +0100 -+++ chrome/browser/interstitials/chrome_controller_client.cc 2017-12-24 01:30:40.740189000 +0100 -@@ -46,7 +46,7 @@ - #if defined(OS_ANDROID) - chrome::android::OpenDateAndTimeSettings(); - --#elif defined(OS_LINUX) -+#elif defined(OS_LINUX) || defined(OS_BSD) - struct ClockCommand { - const char* const pathname; - const char* const argument; -@@ -130,7 +130,7 @@ - - bool ChromeControllerClient::CanLaunchDateAndTimeSettings() { - #if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_MACOSX) || \ -- defined(OS_WIN) -+ defined(OS_WIN) || defined(OS_BSD) - return true; - #else - return false; diff --git a/www/chromium/files/patch-chrome_browser_ssl_ssl_error_controller_client.cc b/www/chromium/files/patch-chrome_browser_ssl_ssl_error_controller_client.cc new file mode 100644 index 000000000000..7a81287db276 --- /dev/null +++ b/www/chromium/files/patch-chrome_browser_ssl_ssl_error_controller_client.cc @@ -0,0 +1,20 @@ +--- chrome/browser/ssl/ssl_error_controller_client.cc.orig 2018-03-03 21:13:39.612526000 +0100 ++++ chrome/browser/ssl/ssl_error_controller_client.cc 2018-03-03 21:14:15.298290000 +0100 +@@ -55,7 +55,7 @@ + #if defined(OS_ANDROID) + chrome::android::OpenDateAndTimeSettings(); + +-#elif defined(OS_LINUX) ++#elif defined(OS_LINUX) || defined(OS_BSD) + struct ClockCommand { + const char* const pathname; + const char* const argument; +@@ -185,7 +185,7 @@ + + bool SSLErrorControllerClient::CanLaunchDateAndTimeSettings() { + #if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_MACOSX) || \ +- defined(OS_WIN) ++ defined(OS_WIN) || defined(OS_BSD) + return true; + #else + return false; diff --git a/www/chromium/files/patch-chrome_browser_task__manager_sampling_task__group.cc b/www/chromium/files/patch-chrome_browser_task__manager_sampling_task__group.cc index 5a815f677766..d39e8c05bab2 100644 --- a/www/chromium/files/patch-chrome_browser_task__manager_sampling_task__group.cc +++ b/www/chromium/files/patch-chrome_browser_task__manager_sampling_task__group.cc @@ -1,6 +1,6 @@ ---- chrome/browser/task_manager/sampling/task_group.cc.orig 2017-12-15 02:04:10.000000000 +0100 -+++ chrome/browser/task_manager/sampling/task_group.cc 2017-12-24 02:18:09.634446000 +0100 -@@ -28,9 +28,9 @@ +--- chrome/browser/task_manager/sampling/task_group.cc.orig 2018-02-24 16:25:10.000000000 +0100 ++++ chrome/browser/task_manager/sampling/task_group.cc 2018-03-03 21:46:29.318291000 +0100 +@@ -29,9 +29,9 @@ #if defined(OS_WIN) REFRESH_TYPE_START_TIME | REFRESH_TYPE_CPU_TIME | #endif // defined(OS_WIN) @@ -12,19 +12,19 @@ #if BUILDFLAG(ENABLE_NACL) REFRESH_TYPE_NACL | #endif // BUILDFLAG(ENABLE_NACL) -@@ -103,9 +103,9 @@ +@@ -105,9 +105,9 @@ + #if BUILDFLAG(ENABLE_NACL) nacl_debug_stub_port_(nacl::kGdbDebugStubPortUnknown), #endif // BUILDFLAG(ENABLE_NACL) - idle_wakeups_per_second_(-1), -#if defined(OS_LINUX) +#if defined(OS_LINUX) || defined(OS_BSD) open_fd_count_(-1), -#endif // defined(OS_LINUX) +#endif // defined(OS_LINUX) || defined(OS_BSD) + idle_wakeups_per_second_(-1), gpu_memory_has_duplicates_(false), is_backgrounded_(false), - weak_ptr_factory_(this) { -@@ -118,10 +118,10 @@ +@@ -121,10 +121,10 @@ weak_ptr_factory_.GetWeakPtr()), base::Bind(&TaskGroup::OnIdleWakeupsRefreshDone, weak_ptr_factory_.GetWeakPtr()), @@ -37,9 +37,9 @@ base::Bind(&TaskGroup::OnProcessPriorityDone, weak_ptr_factory_.GetWeakPtr())); -@@ -338,14 +338,14 @@ - OnBackgroundRefreshTypeFinished(REFRESH_TYPE_IDLE_WAKEUPS); +@@ -284,14 +284,14 @@ } + #endif // BUILDFLAG(ENABLE_NACL) -#if defined(OS_LINUX) +#if defined(OS_LINUX) || defined(OS_BSD) @@ -52,5 +52,5 @@ -#endif // defined(OS_LINUX) +#endif // defined(OS_LINUX) || defined(OS_BSD) - void TaskGroup::OnProcessPriorityDone(bool is_backgrounded) { + void TaskGroup::OnCpuRefreshDone(double cpu_usage) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); diff --git a/www/chromium/files/patch-chrome_browser_task__manager_sampling_task__group.h b/www/chromium/files/patch-chrome_browser_task__manager_sampling_task__group.h index eda8013fad37..988543e7cf6d 100644 --- a/www/chromium/files/patch-chrome_browser_task__manager_sampling_task__group.h +++ b/www/chromium/files/patch-chrome_browser_task__manager_sampling_task__group.h @@ -1,8 +1,8 @@ ---- chrome/browser/task_manager/sampling/task_group.h.orig 2017-04-19 19:06:30 UTC -+++ chrome/browser/task_manager/sampling/task_group.h -@@ -96,9 +96,9 @@ class TaskGroup { +--- chrome/browser/task_manager/sampling/task_group.h.orig 2018-02-24 16:25:10.000000000 +0100 ++++ chrome/browser/task_manager/sampling/task_group.h 2018-03-03 21:51:35.928601000 +0100 +@@ -106,9 +106,9 @@ int nacl_debug_stub_port() const { return nacl_debug_stub_port_; } - #endif // !defined(DISABLE_NACL) + #endif // BUILDFLAG(ENABLE_NACL) -#if defined(OS_LINUX) +#if defined(OS_LINUX) || defined(OS_BSD) @@ -12,28 +12,28 @@ int idle_wakeups_per_second() const { return idle_wakeups_per_second_; } -@@ -124,9 +124,9 @@ class TaskGroup { - - void OnIdleWakeupsRefreshDone(int idle_wakeups_per_second); - +@@ -122,9 +122,9 @@ + void RefreshNaClDebugStubPort(int child_process_unique_id); + void OnRefreshNaClDebugStubPortDone(int port); + #endif -#if defined(OS_LINUX) +#if defined(OS_LINUX) || defined(OS_BSD) void OnOpenFdCountRefreshDone(int open_fd_count); -#endif // defined(OS_LINUX) +#endif // defined(OS_LINUX) || defined(OS_BSD) - void OnProcessPriorityDone(bool is_backgrounded); - -@@ -174,10 +174,10 @@ class TaskGroup { + void OnCpuRefreshDone(double cpu_usage); + void OnMemoryUsageRefreshDone(MemoryUsageStats memory_usage); +@@ -184,10 +184,10 @@ + #if BUILDFLAG(ENABLE_NACL) int nacl_debug_stub_port_; - #endif // !defined(DISABLE_NACL) - int idle_wakeups_per_second_; + #endif // BUILDFLAG(ENABLE_NACL) -#if defined(OS_LINUX) +#if defined(OS_LINUX) || defined(OS_BSD) // The number of file descriptors currently open by the process. int open_fd_count_; -#endif // defined(OS_LINUX) +#endif // defined(OS_LINUX) || defined(OS_BSD) + int idle_wakeups_per_second_; bool gpu_memory_has_duplicates_; bool is_backgrounded_; - diff --git a/www/chromium/files/patch-chrome_browser_ui_browser__command__controller.cc b/www/chromium/files/patch-chrome_browser_ui_browser__command__controller.cc index 18d80fcd4f95..72886af02f70 100644 --- a/www/chromium/files/patch-chrome_browser_ui_browser__command__controller.cc +++ b/www/chromium/files/patch-chrome_browser_ui_browser__command__controller.cc @@ -1,7 +1,7 @@ ---- chrome/browser/ui/browser_command_controller.cc.orig 2017-06-05 19:03:03 UTC -+++ chrome/browser/ui/browser_command_controller.cc -@@ -80,7 +80,7 @@ - #include "chrome/browser/ui/browser_commands_chromeos.h" +--- chrome/browser/ui/browser_command_controller.cc.orig 2018-02-24 16:25:10.000000000 +0100 ++++ chrome/browser/ui/browser_command_controller.cc 2018-03-03 21:58:39.480640000 +0100 +@@ -83,7 +83,7 @@ + #include "ui/base/clipboard/clipboard_types.h" #endif -#if defined(OS_LINUX) && !defined(OS_CHROMEOS) @@ -9,7 +9,7 @@ #include "ui/base/ime/linux/text_edit_key_bindings_delegate_auralinux.h" #endif -@@ -209,7 +209,7 @@ bool BrowserCommandController::IsReservedCommandOrKey( +@@ -216,7 +216,7 @@ #endif } @@ -18,21 +18,21 @@ // If this key was registered by the user as a content editing hotkey, then // it is not reserved. ui::TextEditKeyBindingsDelegateAuraLinux* delegate = -@@ -413,7 +413,7 @@ void BrowserCommandController::ExecuteCommandWithDispo +@@ -425,7 +425,7 @@ 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 = profile()->GetPrefs(); - prefs->SetBoolean(prefs::kUseCustomChromeFrame, -@@ -766,7 +766,7 @@ void BrowserCommandController::InitCommandState() { + case IDC_MINIMIZE_WINDOW: + browser_->window()->Minimize(); + break; +@@ -853,7 +853,7 @@ 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 - + command_updater_.UpdateCommandEnabled(IDC_MINIMIZE_WINDOW, true); + command_updater_.UpdateCommandEnabled(IDC_MAXIMIZE_WINDOW, true); + command_updater_.UpdateCommandEnabled(IDC_RESTORE_WINDOW, true); diff --git a/www/chromium/files/patch-chrome_browser_ui_sad_tab.cc b/www/chromium/files/patch-chrome_browser_ui_sad_tab.cc new file mode 100644 index 000000000000..c8895cf8be41 --- /dev/null +++ b/www/chromium/files/patch-chrome_browser_ui_sad_tab.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/sad_tab.cc.orig 2018-03-03 21:11:09.039038000 +0100 ++++ chrome/browser/ui/sad_tab.cc 2018-03-03 21:11:28.213027000 +0100 +@@ -180,7 +180,7 @@ + // Only show incognito suggestion if not already in Incognito mode. + if (!web_contents_->GetBrowserContext()->IsOffTheRecord()) + message_ids.insert(message_ids.begin(), IDS_SAD_TAB_RELOAD_INCOGNITO); +-#if defined(OS_MACOSX) || defined(OS_LINUX) ++#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD) + // Note: on macOS, Linux and ChromeOS, the first bullet is either one of + // IDS_SAD_TAB_RELOAD_CLOSE_TABS or IDS_SAD_TAB_RELOAD_CLOSE_NOTABS + // followed by one of the above suggestions. diff --git a/www/chromium/files/patch-chrome_browser_ui_views_frame_browser_non_client_frame_view_factory_views.cc b/www/chromium/files/patch-chrome_browser_ui_views_frame_browser_non_client_frame_view_factory_views.cc new file mode 100644 index 000000000000..c264949e1cb9 --- /dev/null +++ b/www/chromium/files/patch-chrome_browser_ui_views_frame_browser_non_client_frame_view_factory_views.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/views/frame/browser_non_client_frame_view_factory_views.cc.orig 2018-03-03 21:07:27.595112000 +0100 ++++ chrome/browser/ui/views/frame/browser_non_client_frame_view_factory_views.cc 2018-03-03 21:07:57.689186000 +0100 +@@ -18,7 +18,7 @@ + #include "chrome/browser/ui/views/frame/glass_browser_frame_view.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 + diff --git a/www/chromium/files/patch-chrome_browser_ui_views_message__center_message__center__frame__view.cc b/www/chromium/files/patch-chrome_browser_ui_views_message__center_message__center__frame__view.cc deleted file mode 100644 index 906206b93202..000000000000 --- a/www/chromium/files/patch-chrome_browser_ui_views_message__center_message__center__frame__view.cc +++ /dev/null @@ -1,11 +0,0 @@ ---- chrome/browser/ui/views/message_center/message_center_frame_view.cc.orig 2017-04-19 19:06:30 UTC -+++ 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::CreateSolidBorder( - kBorderWidth, message_center::kMessageCenterBorderColor)); diff --git a/www/chromium/files/patch-chrome_browser_ui_views_profiles_avatar_button.cc b/www/chromium/files/patch-chrome_browser_ui_views_profiles_avatar_button.cc index c54f57aa987e..b91d782f6228 100644 --- a/www/chromium/files/patch-chrome_browser_ui_views_profiles_avatar_button.cc +++ b/www/chromium/files/patch-chrome_browser_ui_views_profiles_avatar_button.cc @@ -1,6 +1,6 @@ ---- chrome/browser/ui/views/profiles/avatar_button.cc.orig 2017-09-05 21:05:14.000000000 +0200 -+++ chrome/browser/ui/views/profiles/avatar_button.cc 2017-09-06 18:45:09.941798000 +0200 -@@ -194,7 +194,7 @@ +--- chrome/browser/ui/views/profiles/avatar_button.cc.orig 2018-02-24 16:25:10.000000000 +0100 ++++ chrome/browser/ui/views/profiles/avatar_button.cc 2018-03-03 22:06:11.687961000 +0100 +@@ -211,7 +211,7 @@ label()->font_list().DeriveWithHeightUpperBound(kDisplayFontHeight)); bool apply_ink_drop = IsCondensible(); @@ -9,12 +9,12 @@ DCHECK_EQ(AvatarButtonStyle::THEMED, button_style); apply_ink_drop = true; #endif -@@ -202,7 +202,7 @@ - if (apply_ink_drop) { +@@ -229,7 +229,7 @@ + } else if (apply_ink_drop) { SetInkDropMode(InkDropMode::ON); SetFocusPainter(nullptr); -#if defined(OS_LINUX) +#if defined(OS_LINUX) || defined(OS_BSD) - constexpr int kIconSize = 16; set_ink_drop_base_color(SK_ColorWHITE); SetBorder(base::MakeUnique()); + generic_avatar_ = diff --git a/www/chromium/files/patch-chrome_browser_ui_webui_about__ui.cc b/www/chromium/files/patch-chrome_browser_ui_webui_about__ui.cc index 19d66be0aba4..84bae6590480 100644 --- a/www/chromium/files/patch-chrome_browser_ui_webui_about__ui.cc +++ b/www/chromium/files/patch-chrome_browser_ui_webui_about__ui.cc @@ -1,44 +1,6 @@ ---- chrome/browser/ui/webui/about_ui.cc.orig 2017-09-05 21:05:14.000000000 +0200 -+++ chrome/browser/ui/webui/about_ui.cc 2017-09-06 18:59:58.102599000 +0200 -@@ -420,7 +420,7 @@ - return html; - } - --#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 kAboutDiscardsRunCommand[] = "run"; - const char kAboutDiscardsSkipUnloadHandlersCommand[] = "skip_unload_handlers"; -@@ -564,10 +564,13 @@ - "Discard tab now (safely)", - chrome::kChromeUIDiscardsURL, kAboutDiscardsRunCommand)); - -+#if !defined(OS_BSD) - base::SystemMemoryInfoKB meminfo; - base::GetSystemMemoryInfo(&meminfo); -+#endif - output.append("

System memory information in MB

"); - output.append(""); -+#if !defined(OS_BSD) - // Start with summary statistics. - output.append(AddStringRow( - "Total", base::IntToString(meminfo.total / 1024))); -@@ -599,12 +602,13 @@ - output.append(AddStringRow( - "Graphics", base::IntToString(meminfo.gem_size / 1024 / 1024))); - #endif // OS_CHROMEOS -+#endif - output.append("
"); - AppendFooter(&output); - return output; - } - --#endif // OS_WIN || OS_MACOSX || OS_LINUX -+#endif // OS_WIN || OS_MACOSX || OS_LINUX || defined(OS_BSD) - - // AboutDnsHandler bounces the request back to the IO thread to collect - // the DNS information. -@@ -666,7 +670,7 @@ +--- chrome/browser/ui/webui/about_ui.cc.orig 2018-02-24 16:25:10.000000000 +0100 ++++ chrome/browser/ui/webui/about_ui.cc 2018-03-03 22:12:29.265266000 +0100 +@@ -390,7 +390,7 @@ DISALLOW_COPY_AND_ASSIGN(AboutDnsHandler); }; @@ -47,15 +9,7 @@ std::string AboutLinuxProxyConfig() { std::string data; AppendHeader(&data, 0, -@@ -723,14 +727,14 @@ - .as_string(); - } - --#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) -+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD) - } else if (source_name_ == chrome::kChromeUIDiscardsHost) { - response = AboutDiscards(path); - #endif +@@ -448,7 +448,7 @@ } else if (source_name_ == chrome::kChromeUIDNSHost) { AboutDnsHandler::Start(profile(), callback); return; diff --git a/www/chromium/files/patch-chrome_browser_ui_webui_chrome__web__ui__controller__factory.cc b/www/chromium/files/patch-chrome_browser_ui_webui_chrome__web__ui__controller__factory.cc index 7faeea7873e8..ae36578a9e02 100644 --- a/www/chromium/files/patch-chrome_browser_ui_webui_chrome__web__ui__controller__factory.cc +++ b/www/chromium/files/patch-chrome_browser_ui_webui_chrome__web__ui__controller__factory.cc @@ -1,31 +1,29 @@ ---- chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc.orig 2017-12-15 02:04:11.000000000 +0100 -+++ chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc 2017-12-24 02:53:23.421702000 +0100 -@@ -179,7 +179,7 @@ +--- chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc.orig 2018-02-24 16:25:10.000000000 +0100 ++++ chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc 2018-03-03 22:18:39.234352000 +0100 +@@ -176,11 +176,11 @@ #include "chrome/browser/ui/webui/welcome_win10_ui.h" #endif +-#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) ++#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD) + #include "chrome/browser/ui/webui/discards/discards_ui.h" + #endif + -#if defined(OS_LINUX) || defined(OS_ANDROID) +#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD) #include "chrome/browser/ui/webui/sandbox_internals_ui.h" #endif -@@ -284,13 +284,13 @@ +@@ -285,7 +285,7 @@ #if !defined(OS_ANDROID) || url.host_piece() == chrome::kChromeUITermsHost #endif -#if defined(OS_LINUX) || defined(OS_OPENBSD) -+#if defined(OS_LINUX) ++#if defined(OS_LINUX) || defined(OS_BSD) || url.host_piece() == chrome::kChromeUILinuxProxyConfigHost #endif #if defined(OS_CHROMEOS) - || url.host_piece() == chrome::kChromeUIOSCreditsHost - #endif --#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) -+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD) - || url.host_piece() == chrome::kChromeUIDiscardsHost - #endif - ); // NOLINT -@@ -532,7 +532,7 @@ +@@ -524,7 +524,7 @@ if (url.host_piece() == chrome::kChromeUINaClHost) return &NewWebUI; #endif @@ -34,7 +32,7 @@ if (url.host_piece() == chrome::kChromeUITabModalConfirmDialogHost) return &NewWebUI; #endif -@@ -593,7 +593,7 @@ +@@ -585,12 +585,12 @@ return &NewWebUI; } #endif @@ -43,3 +41,9 @@ if (url.host_piece() == chrome::kChromeUISandboxHost) { return &NewWebUI; } + #endif +-#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) ++#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD) + if (url.host_piece() == chrome::kChromeUIDiscardsHost) + return &NewWebUI; + #endif diff --git a/www/chromium/files/patch-chrome_common_chrome__switches.cc b/www/chromium/files/patch-chrome_common_chrome__switches.cc index 23af8f3093ea..5519c40a725b 100644 --- a/www/chromium/files/patch-chrome_common_chrome__switches.cc +++ b/www/chromium/files/patch-chrome_common_chrome__switches.cc @@ -1,17 +1,17 @@ ---- chrome/common/chrome_switches.cc.orig 2017-12-15 02:04:11.000000000 +0100 -+++ chrome/common/chrome_switches.cc 2017-12-24 03:10:42.019760000 +0100 -@@ -999,12 +999,12 @@ +--- chrome/common/chrome_switches.cc.orig 2018-02-24 16:25:10.000000000 +0100 ++++ chrome/common/chrome_switches.cc 2018-03-03 22:30:18.421438000 +0100 +@@ -998,12 +998,12 @@ const char kEnableWaylandServer[] = "enable-wayland-server"; #endif -#if defined(OS_WIN) || defined(OS_LINUX) +#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD) - extern const char kDisableInputImeAPI[] = "disable-input-ime-api"; - extern const char kEnableInputImeAPI[] = "enable-input-ime-api"; + const char kDisableInputImeAPI[] = "disable-input-ime-api"; + const char kEnableInputImeAPI[] = "enable-input-ime-api"; #endif -#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN) +#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_BSD) - extern const char kEnableNewAppMenuIcon[] = "enable-new-app-menu-icon"; + const char kEnableNewAppMenuIcon[] = "enable-new-app-menu-icon"; #endif diff --git a/www/chromium/files/patch-chrome_common_url__constants.cc b/www/chromium/files/patch-chrome_common_url__constants.cc deleted file mode 100644 index c0789a68c5cc..000000000000 --- a/www/chromium/files/patch-chrome_common_url__constants.cc +++ /dev/null @@ -1,56 +0,0 @@ ---- chrome/common/url_constants.cc.orig 2017-09-05 21:05:14.000000000 +0200 -+++ chrome/common/url_constants.cc 2017-09-07 14:47:04.280263000 +0200 -@@ -146,7 +146,7 @@ - const char kChromeUIMetroFlowURL[] = "chrome://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 kChromeUITabModalConfirmDialogURL[] = - "chrome://tab-modal-confirm-dialog/"; - #endif -@@ -164,7 +164,7 @@ - const char kChromeUICastURL[] = "chrome://cast/"; - #endif - --#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 kChromeUIDiscardsURL[] = "chrome://discards/"; - #endif - -@@ -283,7 +283,7 @@ - const char kChromeUISigninDiceInternalsHost[] = "signin-dice-internals"; - #endif - --#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 kChromeUIDiscardsHost[] = "discards"; - #endif - -@@ -291,7 +291,7 @@ - const char kChromeUILinuxProxyConfigHost[] = "linux-proxy-config"; - #endif - --#if defined(OS_LINUX) || defined(OS_ANDROID) -+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD) - const char kChromeUISandboxHost[] = "sandbox"; - #endif - -@@ -346,7 +346,7 @@ - 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 - -@@ -749,7 +749,7 @@ - #if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) - kChromeUILinuxProxyConfigHost, - #endif --#if defined(OS_LINUX) || defined(OS_ANDROID) -+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD) - kChromeUISandboxHost, - #endif - #if defined(OS_WIN) diff --git a/www/chromium/files/patch-chrome_common_url__constants.h b/www/chromium/files/patch-chrome_common_url__constants.h deleted file mode 100644 index 7b71a1a9f147..000000000000 --- a/www/chromium/files/patch-chrome_common_url__constants.h +++ /dev/null @@ -1,47 +0,0 @@ ---- chrome/common/url_constants.h.orig 2017-12-15 02:04:12.000000000 +0100 -+++ chrome/common/url_constants.h 2017-12-31 04:24:38.490568000 +0100 -@@ -136,7 +136,7 @@ - extern const char kChromeUIMetroFlowURL[]; - #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 - -@@ -149,7 +149,7 @@ - extern const char kChromeUICastURL[]; - #endif - --#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) -+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD) - extern const char kChromeUIDiscardsURL[]; - #endif - -@@ -262,7 +262,7 @@ - extern const char kChromeUIPrintHost[]; - #endif // ENABLE_PRINT_PREVIEW - --#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) -+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD) - extern const char kChromeUIDiscardsHost[]; - #endif - -@@ -270,7 +270,7 @@ - extern const char kChromeUILinuxProxyConfigHost[]; - #endif - --#if defined(OS_LINUX) || defined(OS_ANDROID) -+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD) - extern const char kChromeUISandboxHost[]; - #endif - -@@ -325,7 +325,7 @@ - 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/www/chromium/files/patch-chrome_common_webui_url_constants.cc b/www/chromium/files/patch-chrome_common_webui_url_constants.cc new file mode 100644 index 000000000000..505c4d7f922b --- /dev/null +++ b/www/chromium/files/patch-chrome_common_webui_url_constants.cc @@ -0,0 +1,41 @@ +--- chrome/common/webui_url_constants.cc.orig 2018-02-24 16:25:11.000000000 +0100 ++++ chrome/common/webui_url_constants.cc 2018-03-03 22:39:51.818055000 +0100 +@@ -226,7 +226,7 @@ + const char kChromeUICastURL[] = "chrome://cast/"; + #endif + +-#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 kChromeUIDiscardsHost[] = "discards"; + const char kChromeUIDiscardsURL[] = "chrome://discards/"; + #endif +@@ -235,11 +235,11 @@ + const char kChromeUILinuxProxyConfigHost[] = "linux-proxy-config"; + #endif + +-#if defined(OS_LINUX) || defined(OS_ANDROID) ++#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD) + const char kChromeUISandboxHost[] = "sandbox"; + #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 + +@@ -380,13 +380,13 @@ + kChromeUIInternetConfigDialogHost, + kChromeUIInternetDetailDialogHost, + #endif +-#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) ++#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD) + kChromeUIDiscardsHost, + #endif + #if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) + kChromeUILinuxProxyConfigHost, + #endif +-#if defined(OS_LINUX) || defined(OS_ANDROID) ++#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD) + kChromeUISandboxHost, + #endif + #if defined(OS_WIN) diff --git a/www/chromium/files/patch-chrome_common_webui_url_constants.h b/www/chromium/files/patch-chrome_common_webui_url_constants.h new file mode 100644 index 000000000000..e53b479f7301 --- /dev/null +++ b/www/chromium/files/patch-chrome_common_webui_url_constants.h @@ -0,0 +1,25 @@ +--- chrome/common/webui_url_constants.h.orig 2018-02-24 16:25:11.000000000 +0100 ++++ chrome/common/webui_url_constants.h 2018-03-03 22:40:56.113062000 +0100 +@@ -223,7 +223,7 @@ + extern const char kChromeUICastURL[]; + #endif + +-#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) ++#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD) + extern const char kChromeUIDiscardsHost[]; + extern const char kChromeUIDiscardsURL[]; + #endif +@@ -232,11 +232,11 @@ + extern const char kChromeUILinuxProxyConfigHost[]; + #endif + +-#if defined(OS_LINUX) || defined(OS_ANDROID) ++#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD) + extern const char kChromeUISandboxHost[]; + #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/www/chromium/files/patch-components_crash_content_app_BUILD.gn b/www/chromium/files/patch-components_crash_content_app_BUILD.gn index 248cb315fdf0..08cd251384dd 100644 --- a/www/chromium/files/patch-components_crash_content_app_BUILD.gn +++ b/www/chromium/files/patch-components_crash_content_app_BUILD.gn @@ -1,20 +1,19 @@ ---- components/crash/content/app/BUILD.gn.orig 2017-12-15 02:04:14.000000000 +0100 -+++ components/crash/content/app/BUILD.gn 2017-12-24 11:36:40.773625000 +0100 -@@ -188,7 +188,7 @@ - libs = [ "log" ] - } +--- components/crash/content/app/BUILD.gn.orig 2018-02-24 16:25:12.000000000 +0100 ++++ components/crash/content/app/BUILD.gn 2018-03-03 22:43:15.726779000 +0100 +@@ -34,7 +34,7 @@ -- if (is_android || is_linux) { -+ if (is_android || (is_linux && !is_bsd)) { + if (is_mac || is_win) { + sources += [ "crashpad.cc" ] +- } else if (is_android || is_linux) { ++ } else if (is_android || is_linux && !is_bsd) { # Want these files on both Linux and Android. set_sources_assignment_filter([]) sources += [ -@@ -218,7 +218,7 @@ - "//sandbox", - "//third_party/breakpad:breakpad_handler", +@@ -64,7 +64,6 @@ + "//components/crash/core/common", + "//content/public/common:content_descriptors", + "//content/public/common:result_codes", +- "//third_party/breakpad:client", ] -- } else if (is_posix && !is_ios) { -+ } else if (is_posix && !is_ios && !is_bsd) { - deps += [ "//third_party/breakpad:client" ] - } - } + + # Clang's -mstackrealign doesn't work well with diff --git a/www/chromium/files/patch-components_crash_core_common_BUILD.gn b/www/chromium/files/patch-components_crash_core_common_BUILD.gn new file mode 100644 index 000000000000..2cdf25209585 --- /dev/null +++ b/www/chromium/files/patch-components_crash_core_common_BUILD.gn @@ -0,0 +1,10 @@ +--- components/crash/core/common/BUILD.gn.orig 2018-03-03 20:58:02.430388000 +0100 ++++ components/crash/core/common/BUILD.gn 2018-03-03 20:58:21.875946000 +0100 +@@ -38,7 +38,6 @@ + "crash_key_internal.h", + ] + +- deps += [ "//third_party/breakpad:client" ] + } + } + diff --git a/www/chromium/files/patch-components_password__manager_core_browser_password_manager.cc b/www/chromium/files/patch-components_password__manager_core_browser_password_manager.cc index 881aa40ac07b..1d04a75c5987 100644 --- a/www/chromium/files/patch-components_password__manager_core_browser_password_manager.cc +++ b/www/chromium/files/patch-components_password__manager_core_browser_password_manager.cc @@ -1,11 +1,11 @@ ---- components/password_manager/core/browser/password_manager.cc.orig 2017-12-24 01:41:33.322933000 +0100 -+++ components/password_manager/core/browser/password_manager.cc 2017-12-24 01:42:03.056816000 +0100 -@@ -780,7 +780,7 @@ - if (!client_->GetStoreResultFilter()->ShouldSave( - *provisional_save_manager_->submitted_form())) { +--- components/password_manager/core/browser/password_manager.cc.orig 2018-02-24 16:25:13.000000000 +0100 ++++ components/password_manager/core/browser/password_manager.cc 2018-03-03 22:48:08.497290000 +0100 +@@ -823,7 +823,7 @@ + if (!client_->GetStoreResultFilter()->ShouldSave( + *provisional_save_manager_->submitted_form())) { #if defined(OS_WIN) || (defined(OS_MACOSX) && !defined(OS_IOS)) || \ - (defined(OS_LINUX) && !defined(OS_CHROMEOS)) + (defined(OS_LINUX) && !defined(OS_CHROMEOS)) || defined(OS_BSD) - // When |username_value| is empty, it's not clear whether the submitted - // credentials are really sync credentials. Don't save sync password hash - // in that case. + // When |username_value| is empty, it's not clear whether the submitted + // credentials are really sync credentials. Don't save sync password hash + // in that case. diff --git a/www/chromium/files/patch-components_policy_resources_policy__templates.json b/www/chromium/files/patch-components_policy_resources_policy__templates.json index 23ef2be47b33..6b28081bfabd 100644 --- a/www/chromium/files/patch-components_policy_resources_policy__templates.json +++ b/www/chromium/files/patch-components_policy_resources_policy__templates.json @@ -1,15 +1,60 @@ ---- components/policy/resources/policy_templates.json.orig 2017-09-07 05:55:36.848121000 +0200 -+++ components/policy/resources/policy_templates.json 2017-09-07 05:57:05.892892000 +0200 -@@ -2237,7 +2237,7 @@ - 'name': 'GSSAPILibraryName', - 'type': 'string', - 'schema': { 'type': 'string' }, -- 'supported_on': ['chrome.linux:9-'], -+ 'supported_on': ['chrome.linux:9-', 'chrome.bsd:9-'], - 'features': { - 'dynamic_refresh': False, - 'per_profile': False, -@@ -4883,7 +4883,7 @@ +--- components/policy/resources/policy_templates.json.orig 2018-02-24 16:25:13.000000000 +0100 ++++ components/policy/resources/policy_templates.json 2018-03-03 23:01:15.812578000 +0100 +@@ -593,7 +593,7 @@ + 'name': 'HomepageLocation', + 'type': 'string', + 'schema': { 'type': 'string' }, +- 'supported_on': ['chrome.*:8-', 'chrome_os:11-'], ++ 'supported_on': ['chrome.*:8-', 'chrome_os:11-', 'chrome.bsd:9-'], + 'features': { + 'can_be_recommended': True, + 'dynamic_refresh': True, +@@ -621,7 +621,7 @@ + 'name': 'HomepageIsNewTabPage', + 'type': 'main', + 'schema': { 'type': 'boolean' }, +- 'supported_on': ['chrome.*:8-', 'chrome_os:11-'], ++ 'supported_on': ['chrome.*:8-', 'chrome_os:11-', 'chrome.bsd:9-'], + 'features': { + 'can_be_recommended': True, + 'dynamic_refresh': True, +@@ -648,7 +648,7 @@ + 'name': 'NewTabPageLocation', + 'type': 'string', + 'schema': { 'type': 'string' }, +- 'supported_on': ['chrome.*:58-', 'chrome_os:58-'], ++ 'supported_on': ['chrome.*:58-', 'chrome_os:58-', 'chrome.bsd:9-'], + 'features': { + 'can_be_recommended': True, + 'dynamic_refresh': True, +@@ -1339,7 +1339,7 @@ + 'name': 'RemoteAccessHostMatchUsername', + 'type': 'main', + 'schema': { 'type': 'boolean' }, +- 'supported_on': ['chrome.linux:25-', 'chrome.mac:25-', 'chrome_os:42-'], ++ 'supported_on': ['chrome.linux:25-', 'chrome.mac:25-', 'chrome_os:42-', 'chrome.bsd:25-'], + 'features': { + 'dynamic_refresh': True, + 'per_profile': False, +@@ -2567,7 +2567,7 @@ + 'name': 'GSSAPILibraryName', + 'type': 'string', + 'schema': { 'type': 'string' }, +- 'supported_on': ['chrome.linux:9-'], ++ 'supported_on': ['chrome.linux:9-', 'chrome.bsd:9-'], + 'features': { + 'dynamic_refresh': False, + 'per_profile': False, +@@ -2619,7 +2619,7 @@ + 'name': 'NtlmV2Enabled', + 'type': 'main', + 'schema': { 'type': 'boolean' }, +- 'supported_on': ['chrome.linux:63-','chrome.mac:63-','chrome_os:63-','android:63-','webview_android:63-'], ++ 'supported_on': ['chrome.linux:63-','chrome.mac:63-','chrome_os:63-','android:63-','webview_android:63-', 'chrome.bsd:63-'], + 'features': { + 'dynamic_refresh': True, + 'per_profile': False, +@@ -5229,7 +5229,7 @@ 'name': 'RequireOnlineRevocationChecksForLocalAnchors', 'type': 'main', 'schema': { 'type': 'boolean' }, @@ -18,7 +63,7 @@ 'features': { 'dynamic_refresh': True, 'per_profile': False, -@@ -5793,7 +5793,7 @@ +@@ -6157,7 +6157,7 @@ 'name': 'BackgroundModeEnabled', 'type': 'main', 'schema': { 'type': 'boolean' }, @@ -27,3 +72,12 @@ 'features': { 'can_be_recommended': True, 'dynamic_refresh': True, +@@ -6669,7 +6669,7 @@ + 'name': 'FullscreenAllowed', + 'type': 'main', + 'schema': { 'type': 'boolean' }, +- 'supported_on': ['chrome.win:31-', 'chrome.linux:31-', 'chrome_os:31-'], ++ 'supported_on': ['chrome.win:31-', 'chrome.linux:31-', 'chrome_os:31-', 'chrome.bsd:31-'], + 'features': { + 'dynamic_refresh': True, + 'per_profile': True, diff --git a/www/chromium/files/patch-content_app_content__main__runner.cc b/www/chromium/files/patch-content_app_content__main__runner.cc index 67d3681d6022..d7a1b3e21e2a 100644 --- a/www/chromium/files/patch-content_app_content__main__runner.cc +++ b/www/chromium/files/patch-content_app_content__main__runner.cc @@ -1,6 +1,6 @@ ---- content/app/content_main_runner.cc.orig 2017-12-15 02:04:16.000000000 +0100 -+++ content/app/content_main_runner.cc 2017-12-24 12:20:00.837482000 +0100 -@@ -83,10 +83,10 @@ +--- content/app/content_main_runner.cc.orig 2018-02-24 16:25:14.000000000 +0100 ++++ content/app/content_main_runner.cc 2018-03-03 23:04:17.370076000 +0100 +@@ -82,10 +82,10 @@ #include "base/posix/global_descriptors.h" #include "content/public/common/content_descriptors.h" @@ -13,16 +13,7 @@ #include "content/zygote/zygote_main.h" #endif -@@ -307,7 +307,7 @@ - }; - - #if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) && \ -- !defined(OS_FUCHSIA) -+ !defined(OS_FUCHSIA) && !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(). -@@ -432,7 +432,7 @@ +@@ -429,7 +429,7 @@ } #if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) && \ @@ -31,7 +22,7 @@ // Zygote startup is special -- see RunZygote comments above // for why we don't use ZygoteMain directly. if (process_type == switches::kZygoteProcess) -@@ -502,10 +502,10 @@ +@@ -499,10 +499,10 @@ kFieldTrialDescriptor + base::GlobalDescriptors::kBaseDescriptor); #endif // !OS_ANDROID diff --git a/www/chromium/files/patch-content_browser_browser__main__loop.cc b/www/chromium/files/patch-content_browser_browser__main__loop.cc index 02fe6f4fa932..91ce9b1691cd 100644 --- a/www/chromium/files/patch-content_browser_browser__main__loop.cc +++ b/www/chromium/files/patch-content_browser_browser__main__loop.cc @@ -1,6 +1,6 @@ ---- content/browser/browser_main_loop.cc.orig 2018-01-04 21:05:49.000000000 +0100 -+++ content/browser/browser_main_loop.cc 2018-01-21 04:50:16.739260000 +0100 -@@ -198,7 +198,7 @@ +--- content/browser/browser_main_loop.cc.orig 2018-02-24 16:25:14.000000000 +0100 ++++ content/browser/browser_main_loop.cc 2018-03-04 10:01:31.265940000 +0100 +@@ -206,7 +206,7 @@ #include "base/fuchsia/default_job.h" #endif // defined(OS_FUCHSIA) @@ -9,20 +9,20 @@ #include "content/browser/sandbox_host_linux.h" #include "content/browser/zygote_host/zygote_host_impl_linux.h" -@@ -232,6 +232,11 @@ - #include "gpu/vulkan/vulkan_implementation.h" +@@ -244,6 +244,11 @@ + #include "services/ui/common/image_cursors_set.h" #endif +#if defined(OS_BSD) +#include "content/browser/sandbox_host_linux.h" -+#include "content/common/sandbox_linux/sandbox_linux.h" ++#include "content/public/common/common_sandbox_support_linux.h" +#endif + // One of the linux specific headers defines this as a macro. #ifdef DestroyAll #undef DestroyAll -@@ -249,7 +254,7 @@ - } +@@ -253,7 +258,7 @@ + namespace { #if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) && \ - !defined(OS_FUCHSIA) @@ -30,7 +30,7 @@ void SetupSandbox(const base::CommandLine& parsed_command_line) { TRACE_EVENT0("startup", "SetupSandbox"); // SandboxHostLinux needs to be initialized even if the sandbox and -@@ -272,7 +277,7 @@ +@@ -276,7 +281,7 @@ generic_zygote->GetSandboxStatus()); } #endif // defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) && \ @@ -39,7 +39,7 @@ #if defined(USE_GLIB) static void GLibLogHandler(const gchar* log_domain, -@@ -574,10 +579,15 @@ +@@ -619,10 +624,15 @@ TRACE_EVENT0("startup", "BrowserMainLoop::EarlyInitialization"); #if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) && \ @@ -56,7 +56,7 @@ #endif #if defined(USE_X11) -@@ -1619,12 +1629,12 @@ +@@ -1691,12 +1701,12 @@ base::WrapUnique( new SwapMetricsDelegateUma())); diff --git a/www/chromium/files/patch-content_browser_gpu_gpu__internals__ui.cc b/www/chromium/files/patch-content_browser_gpu_gpu__internals__ui.cc deleted file mode 100644 index 2a555306ce5a..000000000000 --- a/www/chromium/files/patch-content_browser_gpu_gpu__internals__ui.cc +++ /dev/null @@ -1,20 +0,0 @@ ---- content/browser/gpu/gpu_internals_ui.cc.orig 2017-12-15 02:04:16.000000000 +0100 -+++ content/browser/gpu/gpu_internals_ui.cc 2017-12-24 12:40:09.587854000 +0100 -@@ -51,7 +51,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" // nogncheck - #include "ui/gfx/x/x11_atom_cache.h" // nogncheck - #endif -@@ -209,7 +209,7 @@ - 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/www/chromium/files/patch-content_browser_renderer__host_render__message__filter.cc b/www/chromium/files/patch-content_browser_renderer__host_render__message__filter.cc index 9ce91a4a5a81..438b3fe9d50b 100644 --- a/www/chromium/files/patch-content_browser_renderer__host_render__message__filter.cc +++ b/www/chromium/files/patch-content_browser_renderer__host_render__message__filter.cc @@ -1,11 +1,29 @@ ---- content/browser/renderer_host/render_message_filter.cc.orig 2017-06-05 19:03:07 UTC -+++ content/browser/renderer_host/render_message_filter.cc -@@ -84,7 +84,7 @@ +--- content/browser/renderer_host/render_message_filter.cc.orig 2018-02-24 16:25:14.000000000 +0100 ++++ content/browser/renderer_host/render_message_filter.cc 2018-03-04 01:08:51.920706000 +0100 +@@ -80,7 +80,7 @@ + #include "content/common/mac/font_loader.h" #include "ui/accelerated_widget_mac/window_resize_helper_mac.h" #endif - -#if defined(OS_LINUX) +#if defined(OS_LINUX) || defined(OS_BSD) #include "base/linux_util.h" #include "base/threading/platform_thread.h" #endif +@@ -211,7 +211,7 @@ + #endif // defined(OS_MACOSX) + } + +-#if defined(OS_LINUX) ++#if defined(OS_LINUX) || defined(OS_BSD) + void RenderMessageFilter::SetThreadPriorityOnFileThread( + base::PlatformThreadId ns_tid, + base::ThreadPriority priority) { +@@ -234,7 +234,7 @@ + + void RenderMessageFilter::SetThreadPriority(int32_t ns_tid, + base::ThreadPriority priority) { +-#if defined(OS_LINUX) ++#if defined(OS_LINUX) || defined(OS_BSD) + constexpr base::TaskTraits kTraits = { + base::MayBlock(), base::TaskPriority::USER_BLOCKING, + base::TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN}; diff --git a/www/chromium/files/patch-content_child_child__process.cc b/www/chromium/files/patch-content_child_child__process.cc deleted file mode 100644 index b57914e73e30..000000000000 --- a/www/chromium/files/patch-content_child_child__process.cc +++ /dev/null @@ -1,11 +0,0 @@ ---- content/child/child_process.cc.orig 2017-06-05 19:03:07 UTC -+++ content/child/child_process.cc -@@ -129,7 +129,7 @@ void ChildProcess::ReleaseProcess() { - main_thread_->OnProcessFinalRelease(); - } - --#if defined(OS_LINUX) -+#if defined(OS_LINUX) || defined(OS_BSD) - void ChildProcess::SetIOThreadPriority( - base::ThreadPriority io_thread_priority) { - main_thread_->SetThreadPriority(io_thread_.GetThreadId(), io_thread_priority); diff --git a/www/chromium/files/patch-content_child_child__process.h b/www/chromium/files/patch-content_child_child__process.h deleted file mode 100644 index e29e5f3dc22d..000000000000 --- a/www/chromium/files/patch-content_child_child__process.h +++ /dev/null @@ -1,11 +0,0 @@ ---- content/child/child_process.h.orig 2017-06-05 19:03:07 UTC -+++ content/child/child_process.h -@@ -79,7 +79,7 @@ class CONTENT_EXPORT ChildProcess { - void AddRefProcess(); - void ReleaseProcess(); - --#if defined(OS_LINUX) -+#if defined(OS_LINUX) || defined(OS_BSD) - void SetIOThreadPriority(base::ThreadPriority io_thread_priority); - #endif - diff --git a/www/chromium/files/patch-content_child_child__thread__impl.cc b/www/chromium/files/patch-content_child_child__thread__impl.cc deleted file mode 100644 index 5e9d5cc7ce08..000000000000 --- a/www/chromium/files/patch-content_child_child__thread__impl.cc +++ /dev/null @@ -1,11 +0,0 @@ ---- content/child/child_thread_impl.cc.orig 2017-06-05 19:03:07 UTC -+++ content/child/child_thread_impl.cc -@@ -698,7 +698,7 @@ std::unique_ptr ChildThreadImpl::A - return base::MakeUnique(shared_buf, false); - } - --#if defined(OS_LINUX) -+#if defined(OS_LINUX) || defined(OS_BSD) - void ChildThreadImpl::SetThreadPriority(base::PlatformThreadId id, - base::ThreadPriority priority) { - Send(new ChildProcessHostMsg_SetThreadPriority(id, priority)); diff --git a/www/chromium/files/patch-content_child_child__thread__impl.h b/www/chromium/files/patch-content_child_child__thread__impl.h deleted file mode 100644 index f2dd0261751b..000000000000 --- a/www/chromium/files/patch-content_child_child__thread__impl.h +++ /dev/null @@ -1,11 +0,0 @@ ---- content/child/child_thread_impl.h.orig 2017-06-05 19:03:07 UTC -+++ content/child/child_thread_impl.h -@@ -112,7 +112,7 @@ class CONTENT_EXPORT ChildThreadImpl - static std::unique_ptr AllocateSharedMemory( - size_t buf_size); - --#if defined(OS_LINUX) -+#if defined(OS_LINUX) || defined(OS_BSD) - void SetThreadPriority(base::PlatformThreadId id, - base::ThreadPriority priority); - #endif diff --git a/www/chromium/files/patch-content_common_BUILD.gn b/www/chromium/files/patch-content_common_BUILD.gn index 8757f3e25044..b91181ddc25a 100644 --- a/www/chromium/files/patch-content_common_BUILD.gn +++ b/www/chromium/files/patch-content_common_BUILD.gn @@ -1,20 +1,23 @@ ---- content/common/BUILD.gn.orig 2018-01-04 21:05:50.000000000 +0100 -+++ content/common/BUILD.gn 2018-01-21 00:08:52.884724000 +0100 -@@ -564,6 +564,17 @@ - "sandbox_linux/sandbox_bpf_base_policy_linux.h", - ] - } +--- content/common/BUILD.gn.orig 2018-02-24 16:25:14.000000000 +0100 ++++ content/common/BUILD.gn 2018-03-04 05:26:02.504662000 +0100 +@@ -503,7 +503,7 @@ + } + + if (!use_seccomp_bpf) { +- if (is_linux && current_cpu != "s390x" && current_cpu != "ppc64") { ++ if (is_linux && current_cpu != "s390x" && current_cpu != "ppc64" && !is_bsd) { + sources -= [ + "sandbox_linux/bpf_base_policy_linux.cc", + "sandbox_linux/bpf_base_policy_linux.h", +@@ -519,6 +519,11 @@ + "sandbox_linux/bpf_renderer_policy_linux.h", + "sandbox_linux/bpf_utility_policy_linux.cc", + "sandbox_linux/bpf_utility_policy_linux.h", ++ ] ++ } + if (is_bsd) { + sources -= [ + "quarantine/quarantine_linux.cc", -+ "sandbox_linux/bpf_cdm_policy_linux.cc", -+ "sandbox_linux/bpf_pdf_compositor_policy_linux.cc", -+ "sandbox_linux/sandbox_init_linux.cc", -+ "sandbox_linux/sandbox_linux.cc", -+ "sandbox_linux/sandbox_seccomp_bpf_linux.cc", -+ "sandbox_linux/sandbox_debug_handling_linux.cc", -+ ] -+ } + ] + } } - - if (is_mac) { diff --git a/www/chromium/files/patch-content_common_child__process__messages.h b/www/chromium/files/patch-content_common_child__process__messages.h deleted file mode 100644 index f23d73a42e7f..000000000000 --- a/www/chromium/files/patch-content_common_child__process__messages.h +++ /dev/null @@ -1,29 +0,0 @@ ---- content/common/child_process_messages.h.orig 2017-06-05 19:03:07 UTC -+++ content/common/child_process_messages.h -@@ -26,7 +26,7 @@ - #include "ui/gfx/ipc/gfx_param_traits.h" - #include "ui/gfx/ipc/skia/gfx_skia_param_traits.h" - --#if defined(OS_LINUX) -+#if defined(OS_LINUX) || defined(OS_BSD) - #include "base/threading/platform_thread.h" - #endif - -@@ -75,7 +75,7 @@ IPC_STRUCT_TRAITS_BEGIN(tracked_objects::ProcessDataSn - IPC_STRUCT_TRAITS_MEMBER(process_id) - IPC_STRUCT_TRAITS_END() - --#if defined(OS_LINUX) -+#if defined(OS_LINUX) || defined(OS_BSD) - IPC_ENUM_TRAITS_MAX_VALUE(base::ThreadPriority, - base::ThreadPriority::REALTIME_AUDIO) - #endif -@@ -171,7 +171,7 @@ IPC_SYNC_MESSAGE_CONTROL1_0(ChildProcessHostMsg_PreCac - IPC_MESSAGE_CONTROL0(ChildProcessHostMsg_ReleaseCachedFonts) - #endif // defined(OS_WIN) - --#if defined(OS_LINUX) -+#if defined(OS_LINUX) || defined(OS_BSD) - // Asks the browser to change the priority of thread. - IPC_MESSAGE_CONTROL2(ChildProcessHostMsg_SetThreadPriority, - base::PlatformThreadId, diff --git a/www/chromium/files/patch-content_gpu_BUILD.gn b/www/chromium/files/patch-content_gpu_BUILD.gn new file mode 100644 index 000000000000..cbb78ee65c9e --- /dev/null +++ b/www/chromium/files/patch-content_gpu_BUILD.gn @@ -0,0 +1,11 @@ +--- content/gpu/BUILD.gn.orig 2018-03-04 17:22:26.995017000 +0100 ++++ content/gpu/BUILD.gn 2018-03-04 17:22:46.556822000 +0100 +@@ -121,7 +121,7 @@ + } + + # Use DRI on desktop Linux builds. +- if (is_desktop_linux && (!is_chromecast || is_cast_desktop_build)) { ++ if (is_desktop_linux && (!is_chromecast || is_cast_desktop_build) && !is_bsd) { + configs += [ "//build/config/linux/dri" ] + } + } diff --git a/www/chromium/files/patch-content_gpu_gpu__main.cc b/www/chromium/files/patch-content_gpu_gpu__main.cc index 2a49d96a3641..ad458367a988 100644 --- a/www/chromium/files/patch-content_gpu_gpu__main.cc +++ b/www/chromium/files/patch-content_gpu_gpu__main.cc @@ -1,33 +1,42 @@ ---- content/gpu/gpu_main.cc.orig 2017-12-15 02:04:17.000000000 +0100 -+++ content/gpu/gpu_main.cc 2017-12-24 13:25:17.551277000 +0100 -@@ -98,7 +98,7 @@ +--- content/gpu/gpu_main.cc.orig 2018-02-24 16:25:14.000000000 +0100 ++++ content/gpu/gpu_main.cc 2018-03-04 01:23:12.209864000 +0100 +@@ -76,7 +76,7 @@ + #include "ui/gfx/x/x11_switches.h" // nogncheck + #endif + +-#if defined(OS_LINUX) ++#if defined(OS_LINUX) || defined(OS_BSD) + #include "content/common/font_config_ipc_linux.h" + #include "content/gpu/gpu_sandbox_hook_linux.h" + #include "content/public/common/common_sandbox_support_linux.h" +@@ -102,7 +102,7 @@ namespace { -#if defined(OS_LINUX) +#if defined(OS_LINUX) && !defined(OS_BSD) - bool StartSandboxLinux(gpu::GpuWatchdogThread*, const gpu::GPUInfo*); - #elif defined(OS_WIN) - bool StartSandboxWindows(const sandbox::SandboxInterfaceInfo*); -@@ -156,7 +156,7 @@ - + bool StartSandboxLinux(gpu::GpuWatchdogThread*, + const gpu::GPUInfo*, + const gpu::GpuPreferences&); +@@ -163,7 +163,7 @@ bool EnsureSandboxInitialized(gpu::GpuWatchdogThread* watchdog_thread, - const gpu::GPUInfo* gpu_info) override { + const gpu::GPUInfo* gpu_info, + const gpu::GpuPreferences& gpu_prefs) override { -#if defined(OS_LINUX) +#if defined(OS_LINUX) && !defined(OS_BSD) - return StartSandboxLinux(watchdog_thread, gpu_info); + return StartSandboxLinux(watchdog_thread, gpu_info, gpu_prefs); #elif defined(OS_WIN) return StartSandboxWindows(sandbox_info_); -@@ -323,7 +323,7 @@ +@@ -340,7 +340,7 @@ namespace { -#if defined(OS_LINUX) +#if defined(OS_LINUX) && !defined(OS_BSD) bool StartSandboxLinux(gpu::GpuWatchdogThread* watchdog_thread, - const gpu::GPUInfo* gpu_info) { - TRACE_EVENT0("gpu,startup", "Initialize sandbox"); -@@ -347,7 +347,7 @@ + const gpu::GPUInfo* gpu_info, + const gpu::GpuPreferences& gpu_prefs) { +@@ -378,7 +378,7 @@ return res; } diff --git a/www/chromium/files/patch-content_gpu_gpu_sandbox_hook_linux.cc b/www/chromium/files/patch-content_gpu_gpu_sandbox_hook_linux.cc new file mode 100644 index 000000000000..e0c500be24ea --- /dev/null +++ b/www/chromium/files/patch-content_gpu_gpu_sandbox_hook_linux.cc @@ -0,0 +1,11 @@ +--- content/gpu/gpu_sandbox_hook_linux.cc.orig 2018-03-03 20:54:40.697792000 +0100 ++++ content/gpu/gpu_sandbox_hook_linux.cc 2018-03-03 20:54:56.999743000 +0100 +@@ -95,7 +95,7 @@ + #endif + } + +-constexpr int dlopen_flag = RTLD_NOW | RTLD_GLOBAL | RTLD_NODELETE; ++constexpr int dlopen_flag = RTLD_NOW | RTLD_GLOBAL; + + void AddV4L2GpuWhitelist( + std::vector* permissions, diff --git a/www/chromium/files/patch-content_ppapi_plugin_ppapi_plugin_main.cc b/www/chromium/files/patch-content_ppapi_plugin_ppapi_plugin_main.cc index 3eeb29f0f256..e38610fc080b 100644 --- a/www/chromium/files/patch-content_ppapi_plugin_ppapi_plugin_main.cc +++ b/www/chromium/files/patch-content_ppapi_plugin_ppapi_plugin_main.cc @@ -1,9 +1,9 @@ ---- content/ppapi_plugin/ppapi_plugin_main.cc.orig 2018-01-20 16:16:54.514813000 +0100 -+++ content/ppapi_plugin/ppapi_plugin_main.cc 2018-01-20 16:17:30.448565000 +0100 -@@ -122,6 +122,8 @@ - - #if defined(OS_LINUX) - LinuxSandbox::InitializeSandbox(); +--- content/ppapi_plugin/ppapi_plugin_main.cc.orig 2018-02-24 16:25:14.000000000 +0100 ++++ content/ppapi_plugin/ppapi_plugin_main.cc 2018-03-04 01:29:08.347119000 +0100 +@@ -125,6 +125,8 @@ + service_manager::SandboxTypeFromCommandLine(command_line), + service_manager::SandboxLinux::PreSandboxHook(), + service_manager::SandboxLinux::Options()); +#elif defined(OS_BSD) + NOTIMPLEMENTED(); #endif diff --git a/www/chromium/files/patch-content_public_test_browser__test__base.cc b/www/chromium/files/patch-content_public_test_browser__test__base.cc index 8f203ac3f714..6c747929dc9c 100644 --- a/www/chromium/files/patch-content_public_test_browser__test__base.cc +++ b/www/chromium/files/patch-content_public_test_browser__test__base.cc @@ -1,13 +1,13 @@ ---- content/public/test/browser_test_base.cc.orig 2017-04-19 19:06:34 UTC -+++ content/public/test/browser_test_base.cc -@@ -6,6 +6,10 @@ - - #include +--- content/public/test/browser_test_base.cc.orig 2018-02-24 16:25:14.000000000 +0100 ++++ content/public/test/browser_test_base.cc 2018-03-04 01:33:57.278528000 +0100 +@@ -49,6 +49,10 @@ + #include "ui/gl/gl_implementation.h" + #include "ui/gl/gl_switches.h" +#if defined(OS_FREEBSD) +#include +#endif + - #include "base/bind.h" - #include "base/command_line.h" - #include "base/debug/stack_trace.h" + #if defined(OS_POSIX) + #include "base/process/process_handle.h" + #endif diff --git a/www/chromium/files/patch-content_renderer_render__thread__impl.cc b/www/chromium/files/patch-content_renderer_render__thread__impl.cc index 7a95a80fbd78..bf2a7a9516b5 100644 --- a/www/chromium/files/patch-content_renderer_render__thread__impl.cc +++ b/www/chromium/files/patch-content_renderer_render__thread__impl.cc @@ -1,6 +1,6 @@ ---- content/renderer/render_thread_impl.cc.orig 2017-12-15 02:04:18.000000000 +0100 -+++ content/renderer/render_thread_impl.cc 2017-12-24 14:46:13.319958000 +0100 -@@ -219,12 +219,22 @@ +--- content/renderer/render_thread_impl.cc.orig 2018-02-24 16:25:14.000000000 +0100 ++++ content/renderer/render_thread_impl.cc 2018-03-04 01:40:50.991485000 +0100 +@@ -224,12 +224,22 @@ #include "content/common/external_ipc_dumper.h" #endif @@ -23,34 +23,34 @@ using base::ThreadRestrictions; using blink::WebDocument; using blink::WebFrame; -@@ -929,7 +939,7 @@ +@@ -973,7 +983,7 @@ GetConnector()->BindInterface(mojom::kBrowserServiceName, mojo::MakeRequest(&storage_partition_service_)); -#if defined(OS_LINUX) +#if defined(OS_LINUX) || defined(OS_BSD) - ChildProcess::current()->SetIOThreadPriority(base::ThreadPriority::DISPLAY); - ChildThreadImpl::current()->SetThreadPriority( - categorized_worker_pool_->background_worker_thread_id(), -@@ -1147,7 +1157,7 @@ + render_message_filter()->SetThreadPriority( + ChildProcess::current()->io_thread_id(), base::ThreadPriority::DISPLAY); + render_message_filter()->SetThreadPriority( +@@ -1184,7 +1194,7 @@ FROM_HERE, base::BindOnce(base::IgnoreResult(&ThreadRestrictions::SetIOAllowed), false)); -#if defined(OS_LINUX) +#if defined(OS_LINUX) || defined(OS_BSD) - ChildThreadImpl::current()->SetThreadPriority(compositor_thread_->ThreadId(), - base::ThreadPriority::DISPLAY); + render_message_filter()->SetThreadPriority(compositor_thread_->ThreadId(), + base::ThreadPriority::DISPLAY); #endif -@@ -1458,7 +1468,7 @@ - const bool enable_video_accelerator = +@@ -1499,7 +1509,7 @@ !cmd_line->HasSwitch(switches::kDisableAcceleratedVideoDecode); const bool enable_gpu_memory_buffer_video_frames = + !is_gpu_compositing_disabled_ && -#if defined(OS_MACOSX) || defined(OS_LINUX) +#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD) + !cmd_line->HasSwitch(switches::kDisableGpuMemoryBufferVideoFrames); + #elif defined(OS_WIN) !cmd_line->HasSwitch(switches::kDisableGpuMemoryBufferVideoFrames) && - !cmd_line->HasSwitch(switches::kDisableGpuCompositing) && - !gpu_channel_host->gpu_info().software_rendering; -@@ -1778,7 +1788,26 @@ +@@ -1847,7 +1857,26 @@ blink_stats.blink_gc_total_allocated_bytes / 1024; std::unique_ptr metric( base::ProcessMetrics::CreateCurrentProcessMetrics()); diff --git a/www/chromium/files/patch-content_renderer_renderer_main.cc b/www/chromium/files/patch-content_renderer_renderer_main.cc index 2c92bed474f6..099f262b76a9 100644 --- a/www/chromium/files/patch-content_renderer_renderer_main.cc +++ b/www/chromium/files/patch-content_renderer_renderer_main.cc @@ -1,26 +1,6 @@ ---- content/renderer/renderer_main.cc.orig 2017-12-15 02:04:18.000000000 +0100 -+++ content/renderer/renderer_main.cc 2017-12-31 04:55:48.524657000 +0100 -@@ -34,12 +34,19 @@ - #include "ppapi/features/features.h" - #include "third_party/WebKit/public/platform/scheduler/renderer/renderer_scheduler.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) - #include "base/android/library_loader/library_loader_hooks.h" - #endif // OS_ANDROID - -+#if defined(OS_BSD) -+#include "content/browser/sandbox_host_linux.h" -+#include "content/common/font_config_ipc_linux.h" -+#include "content/common/sandbox_linux/sandbox_linux.h" -+#endif -+ - #if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) - #include "content/common/font_config_ipc_linux.h" - #include "content/common/sandbox_linux/sandbox_linux.h" -@@ -191,9 +198,13 @@ +--- content/renderer/renderer_main.cc.orig 2018-02-24 16:25:14.000000000 +0100 ++++ content/renderer/renderer_main.cc 2018-03-04 02:01:25.568495000 +0100 +@@ -193,9 +193,13 @@ // is OK. InitializeWebRtcModule(); #endif @@ -35,7 +15,7 @@ // TODO(markus): Check if it is OK to unconditionally move this // instruction down. auto render_process = RenderProcessImpl::Create(); -@@ -203,7 +214,7 @@ +@@ -205,7 +209,7 @@ bool run_loop = true; if (!no_sandbox) run_loop = platform.EnableSandbox(); diff --git a/www/chromium/files/patch-device_hid_BUILD.gn b/www/chromium/files/patch-device_hid_BUILD.gn deleted file mode 100644 index 1294a34d2937..000000000000 --- a/www/chromium/files/patch-device_hid_BUILD.gn +++ /dev/null @@ -1,22 +0,0 @@ ---- device/hid/BUILD.gn.orig 2018-01-26 21:56:57.916504000 +0100 -+++ device/hid/BUILD.gn 2018-01-26 21:57:24.627778000 +0100 -@@ -66,6 +66,19 @@ - deps += [ "//device/udev_linux" ] - } - -+ if (is_bsd) { -+ sources -= [ -+ "hid_connection_linux.cc", -+ "hid_connection_linux.h", -+ ] -+ sources += [ -+ "hid_connection_freebsd.cc", -+ "hid_connection_freebsd.h", -+ "hid_service_freebsd.cc", -+ "hid_service_freebsd.h", -+ ] -+ } -+ - if (is_chromeos) { - deps += [ "//chromeos" ] - } diff --git a/www/chromium/files/patch-device_hid_hid__connection__freebsd.cc b/www/chromium/files/patch-device_hid_hid__connection__freebsd.cc deleted file mode 100644 index 79ec5e4acb2f..000000000000 --- a/www/chromium/files/patch-device_hid_hid__connection__freebsd.cc +++ /dev/null @@ -1,283 +0,0 @@ ---- device/hid/hid_connection_freebsd.cc.orig 2018-01-26 21:53:10.787158000 +0100 -+++ device/hid/hid_connection_freebsd.cc 2018-01-26 21:53:10.788129000 +0100 -@@ -0,0 +1,280 @@ -+// Copyright (c) 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. -+ -+#include "device/hid/hid_connection_freebsd.h" -+ -+#include -+#include -+ -+#include "base/bind.h" -+#include "base/files/file_descriptor_watcher_posix.h" -+#include "base/location.h" -+#include "base/numerics/safe_math.h" -+#include "base/posix/eintr_wrapper.h" -+#include "base/single_thread_task_runner.h" -+#include "base/strings/stringprintf.h" -+#include "base/task_scheduler/post_task.h" -+#include "base/threading/thread_restrictions.h" -+#include "base/threading/thread_task_runner_handle.h" -+#include "components/device_event_log/device_event_log.h" -+#include "device/hid/hid_service.h" -+ -+namespace device { -+ -+class HidConnectionFreeBSD::BlockingTaskHelper { -+ public: -+ BlockingTaskHelper(base::ScopedFD fd, -+ scoped_refptr device_info, -+ base::WeakPtr connection) -+ : fd_(std::move(fd)), -+ connection_(connection), -+ origin_task_runner_(base::ThreadTaskRunnerHandle::Get()) { -+ DETACH_FROM_SEQUENCE(sequence_checker_); -+ // Report buffers must always have room for the report ID. -+ report_buffer_size_ = device_info->max_input_report_size() + 1; -+ has_report_id_ = device_info->has_report_id(); -+ } -+ -+ ~BlockingTaskHelper() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); } -+ -+ // Starts the FileDescriptorWatcher that reads input events from the device. -+ // Must be called on a thread that has a base::MessageLoopForIO. -+ void Start() { -+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); -+ base::ThreadRestrictions::AssertIOAllowed(); -+ -+ file_watcher_ = base::FileDescriptorWatcher::WatchReadable( -+ fd_.get(), base::Bind(&BlockingTaskHelper::OnFileCanReadWithoutBlocking, -+ base::Unretained(this))); -+ } -+ -+ void Write(scoped_refptr buffer, -+ size_t size, -+ WriteCallback callback) { -+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); -+ char *data = buffer->data(); -+ // if report id is 0, it shouldn't be included -+ if (data[0] == 0) { -+ data++; -+ size--; -+ } -+ -+ ssize_t result = HANDLE_EINTR(write(fd_.get(), data, size)); -+ if (result < 0) { -+ HID_PLOG(EVENT) << "Write failed"; -+ origin_task_runner_->PostTask(FROM_HERE, base::BindOnce(std::move(callback), false)); -+ } else { -+ if (static_cast(result) != size) -+ HID_LOG(EVENT) << "Incomplete HID write: " << result << " != " << size; -+ origin_task_runner_->PostTask(FROM_HERE, base::BindOnce(std::move(callback), true)); -+ } -+ } -+ -+ void GetFeatureReport(uint8_t report_id, -+ scoped_refptr buffer, -+ ReadCallback callback) { -+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); -+ struct usb_gen_descriptor ugd; -+ ugd.ugd_report_type = UHID_FEATURE_REPORT; -+ ugd.ugd_data = buffer->data(); -+ ugd.ugd_maxlen = buffer->size(); -+ int result = HANDLE_EINTR( -+ ioctl(fd_.get(), USB_GET_REPORT, &ugd)); -+ if (result < 0) { -+ HID_PLOG(EVENT) << "Failed to get feature report"; -+ origin_task_runner_->PostTask(FROM_HERE, -+ base::BindOnce(std::move(callback), false, nullptr, 0)); -+ } else if (result == 0) { -+ HID_LOG(EVENT) << "Get feature result too short."; -+ origin_task_runner_->PostTask(FROM_HERE, -+ base::BindOnce(std::move(callback), false, nullptr, 0)); -+ } else { -+ origin_task_runner_->PostTask(FROM_HERE, -+ base::BindOnce(std::move(callback), true, buffer, result)); -+ } -+ } -+ -+ void SendFeatureReport(scoped_refptr buffer, -+ size_t size, -+ WriteCallback callback) { -+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); -+ struct usb_gen_descriptor ugd; -+ ugd.ugd_report_type = UHID_FEATURE_REPORT; -+ ugd.ugd_data = buffer->data(); -+ ugd.ugd_maxlen = size; -+ // FreeBSD does not require report id if it's not used -+ if (buffer->data()[0] == 0) { -+ ugd.ugd_data = buffer->data() + 1; -+ ugd.ugd_maxlen = size - 1; -+ } else { -+ ugd.ugd_data = buffer->data(); -+ ugd.ugd_maxlen = size; -+ } -+ int result = HANDLE_EINTR( -+ ioctl(fd_.get(), USB_SET_REPORT, &ugd)); -+ if (result < 0) { -+ HID_PLOG(EVENT) << "Failed to send feature report"; -+ origin_task_runner_->PostTask(FROM_HERE, -+ base::BindOnce(std::move(callback), false)); -+ } else { -+ origin_task_runner_->PostTask(FROM_HERE, -+ base::BindOnce(std::move(callback), true)); -+ } -+ } -+ -+ private: -+ void OnFileCanReadWithoutBlocking() { -+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); -+ -+ scoped_refptr buffer(new net::IOBuffer(report_buffer_size_)); -+ char* data = buffer->data(); -+ size_t length = report_buffer_size_; -+ if (!has_report_id_) { -+ // FreeBSD will not prefix the buffer with a report ID if report IDs are not -+ // used by the device. Prefix the buffer with 0. -+ *data++ = 0; -+ length--; -+ } -+ -+ ssize_t bytes_read = HANDLE_EINTR(read(fd_.get(), data, length)); -+ if (bytes_read < 0) { -+ if (errno != EAGAIN) { -+ HID_PLOG(EVENT) << "Read failed"; -+ // This assumes that the error is unrecoverable and disables reading -+ // from the device until it has been re-opened. -+ // TODO(reillyg): Investigate starting and stopping the file descriptor -+ // watcher in response to pending read requests so that per-request -+ // errors can be returned to the client. -+ file_watcher_.reset(); -+ } -+ return; -+ } -+ if (!has_report_id_) { -+ // Behave as if the byte prefixed above as the the report ID was read. -+ bytes_read++; -+ } -+ -+ origin_task_runner_->PostTask( -+ FROM_HERE, base::BindOnce(&HidConnectionFreeBSD::ProcessInputReport, -+ connection_, buffer, bytes_read)); -+ } -+ -+ SEQUENCE_CHECKER(sequence_checker_); -+ base::ScopedFD fd_; -+ size_t report_buffer_size_; -+ bool has_report_id_; -+ base::WeakPtr connection_; -+ const scoped_refptr origin_task_runner_; -+ std::unique_ptr file_watcher_; -+ -+ DISALLOW_COPY_AND_ASSIGN(BlockingTaskHelper); -+}; -+ -+HidConnectionFreeBSD::HidConnectionFreeBSD( -+ scoped_refptr device_info, -+ base::ScopedFD fd, -+ scoped_refptr blocking_task_runner) -+ : HidConnection(device_info), -+ blocking_task_runner_(std::move(blocking_task_runner)), -+ weak_factory_(this) { -+ helper_ = base::MakeUnique(std::move(fd), device_info, -+ weak_factory_.GetWeakPtr()); -+ blocking_task_runner_->PostTask( -+ FROM_HERE, base::BindOnce(&BlockingTaskHelper::Start, -+ base::Unretained(helper_.get()))); -+} -+ -+HidConnectionFreeBSD::~HidConnectionFreeBSD() {} -+ -+void HidConnectionFreeBSD::PlatformClose() { -+ // By closing the device on the blocking task runner 1) the requirement that -+ // base::ScopedFD is destroyed on a thread where I/O is allowed is satisfied -+ // and 2) any tasks posted to this task runner that refer to this file will -+ // complete before it is closed. -+ blocking_task_runner_->DeleteSoon(FROM_HERE, helper_.release()); -+ -+ while (!pending_reads_.empty()) { -+ std::move(pending_reads_.front().callback).Run(false, NULL, 0); -+ pending_reads_.pop(); -+ } -+} -+ -+void HidConnectionFreeBSD::PlatformRead(ReadCallback callback) { -+ PendingHidRead pending_read; -+ pending_read.callback = std::move(callback); -+ pending_reads_.push(std::move(pending_read)); -+ ProcessReadQueue(); -+} -+ -+void HidConnectionFreeBSD::PlatformWrite(scoped_refptr buffer, -+ size_t size, -+ WriteCallback callback) { -+ -+ blocking_task_runner_->PostTask( -+ FROM_HERE, -+ base::BindOnce(&BlockingTaskHelper::Write, base::Unretained(helper_.get()), -+ buffer, size, std::move(callback))); -+} -+ -+void HidConnectionFreeBSD::PlatformGetFeatureReport(uint8_t report_id, -+ ReadCallback callback) { -+ // The first byte of the destination buffer is the report ID being requested -+ // and is overwritten by the feature report. -+ DCHECK_GT(device_info()->max_feature_report_size(), 0u); -+ scoped_refptr buffer( -+ new net::IOBufferWithSize(device_info()->max_feature_report_size() + 1)); -+ if (report_id != 0) -+ buffer->data()[0] = report_id; -+ -+ blocking_task_runner_->PostTask( -+ FROM_HERE, -+ base::BindOnce(&BlockingTaskHelper::GetFeatureReport, -+ base::Unretained(helper_.get()), report_id, -+ buffer, std::move(callback))); -+} -+ -+void HidConnectionFreeBSD::PlatformSendFeatureReport( -+ scoped_refptr buffer, -+ size_t size, -+ WriteCallback callback) { -+ blocking_task_runner_->PostTask( -+ FROM_HERE, -+ base::BindOnce(&BlockingTaskHelper::SendFeatureReport, -+ base::Unretained(helper_.get()), buffer, size, std::move(callback))); -+} -+ -+void HidConnectionFreeBSD::ProcessInputReport( -+ scoped_refptr buffer, -+ size_t size) { -+ DCHECK(thread_checker().CalledOnValidThread()); -+ DCHECK_GE(size, 1u); -+ -+ uint8_t report_id = buffer->data()[0]; -+ if (IsReportIdProtected(report_id)) -+ return; -+ -+ PendingHidReport report; -+ report.buffer = buffer; -+ report.size = size; -+ pending_reports_.push(report); -+ ProcessReadQueue(); -+} -+ -+void HidConnectionFreeBSD::ProcessReadQueue() { -+ DCHECK(thread_checker().CalledOnValidThread()); -+ -+ // Hold a reference to |this| to prevent a callback from freeing this object -+ // during the loop. -+ scoped_refptr self(this); -+ while (pending_reads_.size() && pending_reports_.size()) { -+ PendingHidRead read = std::move(pending_reads_.front()); -+ PendingHidReport report = std::move(pending_reports_.front()); -+ -+ pending_reads_.pop(); -+ pending_reports_.pop(); -+ std::move(read.callback).Run(true, std::move(report.buffer), report.size); -+ } -+} -+ -+} // namespace device diff --git a/www/chromium/files/patch-device_hid_hid__connection__freebsd.h b/www/chromium/files/patch-device_hid_hid__connection__freebsd.h deleted file mode 100644 index e4d184ffcb5c..000000000000 --- a/www/chromium/files/patch-device_hid_hid__connection__freebsd.h +++ /dev/null @@ -1,79 +0,0 @@ ---- device/hid/hid_connection_freebsd.h.orig 2018-01-26 21:53:10.788319000 +0100 -+++ device/hid/hid_connection_freebsd.h 2018-01-26 21:53:10.788634000 +0100 -@@ -0,0 +1,76 @@ -+// Copyright (c) 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. -+ -+#ifndef DEVICE_HID_HID_CONNECTION_FREEBSD_H_ -+#define DEVICE_HID_HID_CONNECTION_FREEBSD_H_ -+ -+#include -+#include -+ -+#include -+ -+#include "base/files/scoped_file.h" -+#include "base/macros.h" -+#include "base/memory/weak_ptr.h" -+#include "base/sequence_checker.h" -+#include "device/hid/hid_connection.h" -+ -+namespace base { -+class SequencedTaskRunner; -+} -+ -+namespace net { -+class IOBuffer; -+} -+ -+namespace device { -+ -+class HidConnectionFreeBSD : public HidConnection { -+ public: -+ HidConnectionFreeBSD( -+ scoped_refptr device_info, -+ base::ScopedFD fd, -+ scoped_refptr blocking_task_runner); -+ -+ private: -+ friend class base::RefCountedThreadSafe; -+ class BlockingTaskHelper; -+ -+ ~HidConnectionFreeBSD() override; -+ -+ // HidConnection implementation. -+ void PlatformClose() override; -+ void PlatformRead(ReadCallback callback) override; -+ void PlatformWrite(scoped_refptr buffer, -+ size_t size, -+ WriteCallback callback) override; -+ void PlatformGetFeatureReport(uint8_t report_id, -+ ReadCallback callback) override; -+ void PlatformSendFeatureReport(scoped_refptr buffer, -+ size_t size, -+ WriteCallback callback) override; -+ void ProcessInputReport(scoped_refptr buffer, size_t size); -+ void ProcessReadQueue(); -+ -+ // |helper_| lives on the sequence to which |blocking_task_runner_| posts -+ // tasks so all calls must be posted there including this object's -+ // destruction. -+ std::unique_ptr helper_; -+ -+ const scoped_refptr blocking_task_runner_; -+ -+ std::queue pending_reports_; -+ std::queue pending_reads_; -+ const scoped_refptr task_runner_; -+ -+ SEQUENCE_CHECKER(sequence_checker_); -+ -+ base::WeakPtrFactory weak_factory_; -+ -+ DISALLOW_COPY_AND_ASSIGN(HidConnectionFreeBSD); -+}; -+ -+} // namespace device -+ -+#endif // DEVICE_HID_HID_CONNECTION_FREEBSD_H_ diff --git a/www/chromium/files/patch-device_hid_hid__service.cc b/www/chromium/files/patch-device_hid_hid__service.cc deleted file mode 100644 index c95f2edc4148..000000000000 --- a/www/chromium/files/patch-device_hid_hid__service.cc +++ /dev/null @@ -1,20 +0,0 @@ ---- device/hid/hid_service.cc.orig 2017-09-21 15:04:58.000000000 -0700 -+++ device/hid/hid_service.cc 2017-12-03 15:37:32.167748000 -0800 -@@ -16,6 +16,8 @@ - - #if defined(OS_LINUX) && defined(USE_UDEV) - #include "device/hid/hid_service_linux.h" -+#elif defined(OS_BSD) -+#include "device/hid/hid_service_freebsd.h" - #elif defined(OS_MACOSX) - #include "device/hid/hid_service_mac.h" - #elif defined(OS_WIN) -@@ -42,6 +44,8 @@ - std::unique_ptr HidService::Create() { - #if defined(OS_LINUX) && defined(USE_UDEV) - return base::WrapUnique(new HidServiceLinux()); -+#elif defined(OS_BSD) -+ return base::WrapUnique(new HidServiceFreeBSD()); - #elif defined(OS_MACOSX) - return base::WrapUnique(new HidServiceMac()); - #elif defined(OS_WIN) diff --git a/www/chromium/files/patch-device_hid_hid__service__freebsd.cc b/www/chromium/files/patch-device_hid_hid__service__freebsd.cc deleted file mode 100644 index 34c3fb6b2340..000000000000 --- a/www/chromium/files/patch-device_hid_hid__service__freebsd.cc +++ /dev/null @@ -1,374 +0,0 @@ ---- device/hid/hid_service_freebsd.cc.orig 2018-01-26 21:53:10.804422000 +0100 -+++ device/hid/hid_service_freebsd.cc 2018-01-26 21:53:10.805522000 +0100 -@@ -0,0 +1,371 @@ -+// 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. -+ -+#include "device/hid/hid_service_freebsd.h" -+ -+#include -+#include -+#include -+#include -+ -+#include -+#include -+#include -+ -+#include "base/bind.h" -+#include "base/files/file_descriptor_watcher_posix.h" -+#include "base/files/file_enumerator.h" -+#include "base/location.h" -+#include "base/logging.h" -+#include "base/posix/eintr_wrapper.h" -+#include "base/single_thread_task_runner.h" -+#include "base/stl_util.h" -+#include "base/strings/pattern.h" -+#include "base/strings/stringprintf.h" -+#include "base/strings/sys_string_conversions.h" -+#include "base/strings/string_util.h" -+#include "base/strings/string_split.h" -+#include "base/task_scheduler/post_task.h" -+#include "base/threading/thread_restrictions.h" -+#include "base/threading/thread_task_runner_handle.h" -+#include "components/device_event_log/device_event_log.h" -+#include "device/hid/hid_connection_freebsd.h" -+ -+const int kMaxPermissionChecks = 5; -+ -+namespace device { -+ -+struct HidServiceFreeBSD::ConnectParams { -+ ConnectParams(scoped_refptr device_info, -+ const ConnectCallback& callback) -+ : device_info(std::move(device_info)), -+ callback(callback), -+ task_runner(base::ThreadTaskRunnerHandle::Get()), -+ blocking_task_runner( -+ base::CreateSequencedTaskRunnerWithTraits(kBlockingTaskTraits)) {} -+ ~ConnectParams() {} -+ -+ scoped_refptr device_info; -+ ConnectCallback callback; -+ scoped_refptr task_runner; -+ scoped_refptr blocking_task_runner; -+ base::ScopedFD fd; -+}; -+ -+class HidServiceFreeBSD::BlockingTaskHelper { -+ public: -+ BlockingTaskHelper(base::WeakPtr service) -+ : service_(std::move(service)), -+ task_runner_(base::ThreadTaskRunnerHandle::Get()) { -+ DETACH_FROM_SEQUENCE(sequence_checker_); -+ -+ timer_.reset(new base::RepeatingTimer()); -+ devd_buffer_ = new net::IOBufferWithSize(1024); -+ } -+ -+ ~BlockingTaskHelper() { -+ } -+ -+ void Start() { -+ base::ThreadRestrictions::AssertIOAllowed(); -+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); -+ -+ const base::FilePath kDevRoot("/dev"); -+ const std::string kUHIDPattern("/dev/uhid*"); -+ -+ base::FileEnumerator enumerator(kDevRoot, false, base::FileEnumerator::FILES); -+ do { -+ const base::FilePath next_device_path(enumerator.Next()); -+ const std::string next_device = next_device_path.value(); -+ if (next_device.empty()) -+ break; -+ -+ if (base::MatchPattern(next_device, kUHIDPattern)) -+ OnDeviceAdded(next_device.substr(5)); -+ } while (true); -+ -+ SetupDevdMonitor(); -+ -+ task_runner_->PostTask( -+ FROM_HERE, -+ base::Bind(&HidServiceFreeBSD::FirstEnumerationComplete, service_)); -+ } -+ -+ bool HaveReadWritePermissions(std::string device_id) { -+ std::string device_node = "/dev/" + device_id; -+ base::ThreadRestrictions::AssertIOAllowed(); -+ -+ base::FilePath device_path(device_node); -+ base::File device_file; -+ int flags = -+ base::File::FLAG_OPEN | base::File::FLAG_READ | base::File::FLAG_WRITE; -+ device_file.Initialize(device_path, flags); -+ if (!device_file.IsValid()) -+ return false; -+ -+ return true; -+ } -+ -+ void OnDeviceAdded(std::string device_id) { -+ std::string device_node = "/dev/" + device_id; -+ uint16_t vendor_id = 0xffff; -+ uint16_t product_id = 0xffff; -+ std::string product_name = ""; -+ std::string serial_number = ""; -+ -+ std::vector report_descriptor; -+ -+ base::ThreadRestrictions::AssertIOAllowed(); -+ -+ base::FilePath device_path(device_node); -+ base::File device_file; -+ int flags = -+ base::File::FLAG_OPEN | base::File::FLAG_READ | base::File::FLAG_WRITE; -+ device_file.Initialize(device_path, flags); -+ if (!device_file.IsValid()) { -+ HID_LOG(ERROR) << "Failed to open '" << device_node -+ << "': " -+ << base::File::ErrorToString(device_file.error_details()); -+ return; -+ } -+ -+ base::ScopedFD fd; -+ fd.reset(device_file.TakePlatformFile()); -+ -+ struct usb_gen_descriptor ugd; -+ ugd.ugd_data = NULL; -+ ugd.ugd_maxlen = 0xffff; -+ int result = HANDLE_EINTR( -+ ioctl(fd.get(), USB_GET_REPORT_DESC, &ugd)); -+ -+ if (result < 0) { -+ HID_LOG(ERROR) << "Failed to get report descriptor size"; -+ return; -+ } -+ -+ report_descriptor.resize(ugd.ugd_actlen); -+ -+ ugd.ugd_data = report_descriptor.data(); -+ ugd.ugd_maxlen = ugd.ugd_actlen; -+ result = HANDLE_EINTR( -+ ioctl(fd.get(), USB_GET_REPORT_DESC, &ugd)); -+ -+ if (result < 0) { -+ HID_LOG(ERROR) << "Failed to get report descriptor"; -+ return; -+ } -+ -+ scoped_refptr device_info(new HidDeviceInfo( -+ device_id, vendor_id, product_id, product_name, serial_number, -+ device::mojom::HidBusType::kHIDBusTypeUSB, -+ report_descriptor, device_node)); -+ -+ task_runner_->PostTask(FROM_HERE, base::Bind(&HidServiceFreeBSD::AddDevice, -+ service_, device_info)); -+ } -+ -+ void OnDeviceRemoved(std::string device_id) { -+ task_runner_->PostTask( -+ FROM_HERE, base::Bind(&HidServiceFreeBSD::RemoveDevice, service_, -+ device_id)); -+ } -+ -+ private: -+ -+ void CheckPendingPermissionChange() { -+ base::ThreadRestrictions::AssertIOAllowed(); -+ std::map::iterator it; -+ for (it = permissions_checks_attempts_.begin(); it != permissions_checks_attempts_.end();) { -+ std::string device_name = it->first; -+ bool keep = true; -+ if (HaveReadWritePermissions(device_name)) { -+ OnDeviceAdded(device_name); -+ keep = false; -+ } -+ else if (it->second-- <= 0) { -+ HID_LOG(ERROR) << "Still don't have write permissions to '" << device_name -+ << "' after " << kMaxPermissionChecks << " attempts"; -+ keep = false; -+ } -+ -+ if (keep) -+ ++it; -+ else -+ permissions_checks_attempts_.erase(it++); -+ } -+ -+ if (permissions_checks_attempts_.empty()) -+ timer_->Stop(); -+ } -+ -+ void SetupDevdMonitor() { -+ base::ThreadRestrictions::AssertIOAllowed(); -+ -+ int devd_fd = socket(AF_UNIX, SOCK_SEQPACKET, 0); -+ if (devd_fd < 0) -+ return; -+ -+ struct sockaddr_un sa; -+ -+ sa.sun_family = AF_UNIX; -+ strlcpy(sa.sun_path, "/var/run/devd.seqpacket.pipe", sizeof(sa.sun_path)); -+ if (connect(devd_fd, (struct sockaddr *) &sa, sizeof(sa)) < 0) { -+ close(devd_fd); -+ return; -+ } -+ -+ devd_fd_.reset(devd_fd); -+ file_watcher_ = base::FileDescriptorWatcher::WatchReadable( -+ devd_fd_.get(), base::Bind(&BlockingTaskHelper::OnDevdMessageCanBeRead, -+ base::Unretained(this))); -+ } -+ -+ void OnDevdMessageCanBeRead() { -+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); -+ ssize_t bytes_read = HANDLE_EINTR(recv(devd_fd_.get(), devd_buffer_->data(), -+ devd_buffer_->size() - 1, MSG_WAITALL)); -+ if (bytes_read < 0) { -+ if (errno != EAGAIN) { -+ HID_LOG(ERROR) << "Read failed"; -+ file_watcher_.reset(); -+ } -+ return; -+ } -+ -+ devd_buffer_->data()[bytes_read] = 0; -+ char *data = devd_buffer_->data(); -+ // It may take some time for devd to change permissions -+ // on /dev/uhidX node. So do not fail immediately if -+ // open fail. Retry each second for kMaxPermissionChecks -+ // times before giving up entirely -+ if (base::StartsWith(data, "+uhid", base::CompareCase::SENSITIVE)) { -+ std::vector parts = base::SplitString( -+ data, " ", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); -+ if (!parts.empty()) { -+ std::string device_name = parts[0].substr(1); // skip '+' -+ if (HaveReadWritePermissions(device_name)) -+ OnDeviceAdded(parts[0].substr(1)); -+ else { -+ // Do not re-add to checks -+ if (permissions_checks_attempts_.find(device_name) == permissions_checks_attempts_.end()) { -+ permissions_checks_attempts_.insert(std::pair(device_name, kMaxPermissionChecks)); -+ timer_->Start(FROM_HERE, base::TimeDelta::FromSeconds(1), -+ this, &BlockingTaskHelper::CheckPendingPermissionChange); -+ } -+ } -+ } -+ } -+ -+ if (base::StartsWith(data, "-uhid", base::CompareCase::SENSITIVE)) { -+ std::vector parts = base::SplitString( -+ data, " ", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); -+ if (!parts.empty()) { -+ std::string device_name = parts[0].substr(1); // skip '-' -+ auto it = permissions_checks_attempts_.find(device_name); -+ if (it != permissions_checks_attempts_.end()) { -+ permissions_checks_attempts_.erase(it); -+ if (permissions_checks_attempts_.empty()) -+ timer_->Stop(); -+ } -+ OnDeviceRemoved(parts[0].substr(1)); -+ } -+ } -+ } -+ -+ SEQUENCE_CHECKER(sequence_checker_); -+ -+ // This weak pointer is only valid when checked on this task runner. -+ base::WeakPtr service_; -+ scoped_refptr task_runner_; -+ std::unique_ptr file_watcher_; -+ std::unique_ptr timer_; -+ base::ScopedFD devd_fd_; -+ scoped_refptr devd_buffer_; -+ std::map permissions_checks_attempts_; -+ -+ DISALLOW_COPY_AND_ASSIGN(BlockingTaskHelper); -+}; -+ -+HidServiceFreeBSD::HidServiceFreeBSD() -+ : task_runner_(base::ThreadTaskRunnerHandle::Get()), -+ blocking_task_runner_( -+ base::CreateSequencedTaskRunnerWithTraits(kBlockingTaskTraits)), -+ weak_factory_(this) { -+ helper_ = base::MakeUnique(weak_factory_.GetWeakPtr()); -+ blocking_task_runner_->PostTask( -+ FROM_HERE, -+ base::Bind(&BlockingTaskHelper::Start, base::Unretained(helper_.get()))); -+} -+ -+HidServiceFreeBSD::~HidServiceFreeBSD() { -+ blocking_task_runner_->DeleteSoon(FROM_HERE, helper_.release()); -+} -+ -+base::WeakPtr HidServiceFreeBSD::GetWeakPtr() { -+ return weak_factory_.GetWeakPtr(); -+} -+ -+// static -+void HidServiceFreeBSD::OpenOnBlockingThread( -+ std::unique_ptr params) { -+ base::ThreadRestrictions::AssertIOAllowed(); -+ scoped_refptr task_runner = params->task_runner; -+ -+ base::FilePath device_path(params->device_info->device_node()); -+ base::File device_file; -+ int flags = -+ base::File::FLAG_OPEN | base::File::FLAG_READ | base::File::FLAG_WRITE; -+ device_file.Initialize(device_path, flags); -+ if (!device_file.IsValid()) { -+ HID_LOG(EVENT) << "Failed to open '" << params->device_info->device_node() -+ << "': " -+ << base::File::ErrorToString(device_file.error_details()); -+ task_runner->PostTask(FROM_HERE, base::Bind(params->callback, nullptr)); -+ return; -+ } -+ params->fd.reset(device_file.TakePlatformFile()); -+ FinishOpen(std::move(params)); -+} -+ -+void HidServiceFreeBSD::Connect(const std::string& device_guid, -+ const ConnectCallback& callback) { -+ DCHECK(thread_checker_.CalledOnValidThread()); -+ -+ const auto& map_entry = devices().find(device_guid); -+ if (map_entry == devices().end()) { -+ base::ThreadTaskRunnerHandle::Get()->PostTask( -+ FROM_HERE, base::Bind(callback, nullptr)); -+ return; -+ } -+ -+ scoped_refptr device_info = map_entry->second; -+ -+ auto params = base::MakeUnique(device_info, callback); -+ -+ scoped_refptr blocking_task_runner = -+ params->blocking_task_runner; -+ blocking_task_runner->PostTask( -+ FROM_HERE, base::Bind(&HidServiceFreeBSD::OpenOnBlockingThread, -+ base::Passed(¶ms))); -+} -+ -+// static -+void HidServiceFreeBSD::FinishOpen(std::unique_ptr params) { -+ base::ThreadRestrictions::AssertIOAllowed(); -+ scoped_refptr task_runner = params->task_runner; -+ -+ task_runner->PostTask( -+ FROM_HERE, -+ base::Bind(&HidServiceFreeBSD::CreateConnection, base::Passed(¶ms))); -+} -+ -+// static -+void HidServiceFreeBSD::CreateConnection(std::unique_ptr params) { -+ DCHECK(params->fd.is_valid()); -+ params->callback.Run(base::MakeRefCounted( -+ std::move(params->device_info), std::move(params->fd), -+ std::move(params->blocking_task_runner))); -+} -+ -+} // namespace device diff --git a/www/chromium/files/patch-device_hid_hid__service__freebsd.h b/www/chromium/files/patch-device_hid_hid__service__freebsd.h deleted file mode 100644 index 7a93c5ce3a6d..000000000000 --- a/www/chromium/files/patch-device_hid_hid__service__freebsd.h +++ /dev/null @@ -1,51 +0,0 @@ ---- device/hid/hid_service_freebsd.h.orig 2018-01-26 21:53:10.805771000 +0100 -+++ device/hid/hid_service_freebsd.h 2018-01-26 21:53:10.805991000 +0100 -@@ -0,0 +1,48 @@ -+// 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. -+ -+#ifndef DEVICE_HID_HID_SERVICE_FREEBSD_H_ -+#define DEVICE_HID_HID_SERVICE_FREEBSD_H_ -+ -+#include -+ -+#include "base/macros.h" -+#include "base/memory/ref_counted.h" -+#include "base/memory/weak_ptr.h" -+#include "base/timer/timer.h" -+#include "device/hid/hid_service.h" -+#include "net/base/io_buffer.h" -+ -+namespace device { -+ -+class HidServiceFreeBSD : public HidService { -+ public: -+ HidServiceFreeBSD(); -+ ~HidServiceFreeBSD() override; -+ -+ void Connect(const std::string& device_guid, -+ const ConnectCallback& connect) override; -+ base::WeakPtr GetWeakPtr() override; -+ -+ private: -+ struct ConnectParams; -+ class BlockingTaskHelper; -+ -+ static void OpenOnBlockingThread(std::unique_ptr params); -+ static void FinishOpen(std::unique_ptr params); -+ static void CreateConnection(std::unique_ptr params); -+ -+ const scoped_refptr task_runner_; -+ const scoped_refptr blocking_task_runner_; -+ // |helper_| lives on the sequence |blocking_task_runner_| posts to and holds -+ // a weak reference back to the service that owns it. -+ std::unique_ptr helper_; -+ base::WeakPtrFactory weak_factory_; -+ -+ DISALLOW_COPY_AND_ASSIGN(HidServiceFreeBSD); -+}; -+ -+} // namespace device -+ -+#endif // DEVICE_HID_HID_SERVICE_FREEBSD_H_ diff --git a/www/chromium/files/patch-device_media__transfer__protocol_media__transfer__protocol__daemon__client.h b/www/chromium/files/patch-device_media__transfer__protocol_media__transfer__protocol__daemon__client.h deleted file mode 100644 index f1731ef81610..000000000000 --- a/www/chromium/files/patch-device_media__transfer__protocol_media__transfer__protocol__daemon__client.h +++ /dev/null @@ -1,11 +0,0 @@ ---- device/media_transfer_protocol/media_transfer_protocol_daemon_client.h.orig 2017-04-19 19:06:34 UTC -+++ device/media_transfer_protocol/media_transfer_protocol_daemon_client.h -@@ -19,7 +19,7 @@ - #include "base/macros.h" - #include "build/build_config.h" - --#if !defined(OS_LINUX) -+#if !defined(OS_LINUX) && !defined(OS_BSD) - #error "Only used on Linux and ChromeOS" - #endif - diff --git a/www/chromium/files/patch-device_media__transfer__protocol_media__transfer__protocol__manager.h b/www/chromium/files/patch-device_media__transfer__protocol_media__transfer__protocol__manager.h deleted file mode 100644 index c12a44a23603..000000000000 --- a/www/chromium/files/patch-device_media__transfer__protocol_media__transfer__protocol__manager.h +++ /dev/null @@ -1,11 +0,0 @@ ---- device/media_transfer_protocol/media_transfer_protocol_manager.h.orig 2017-04-19 19:06:34 UTC -+++ device/media_transfer_protocol/media_transfer_protocol_manager.h -@@ -15,7 +15,7 @@ - #include "base/memory/ref_counted.h" - #include "build/build_config.h" - --#if !defined(OS_LINUX) -+#if !defined(OS_LINUX) && !defined(OS_FREEBSD) - #error "Only used on Linux and ChromeOS" - #endif - diff --git a/www/chromium/files/patch-extensions_common_feature_switch.cc b/www/chromium/files/patch-extensions_common_feature_switch.cc index 11c05c384b31..d7128180d23e 100644 --- a/www/chromium/files/patch-extensions_common_feature_switch.cc +++ b/www/chromium/files/patch-extensions_common_feature_switch.cc @@ -1,6 +1,6 @@ ---- extensions/common/feature_switch.cc.orig 2018-01-21 13:37:32.991326000 +0100 -+++ extensions/common/feature_switch.cc 2018-01-21 13:37:55.308701000 +0100 -@@ -52,11 +52,7 @@ +--- extensions/common/feature_switch.cc.orig 2018-02-24 16:25:15.000000000 +0100 ++++ extensions/common/feature_switch.cc 2018-03-04 02:30:07.857694000 +0100 +@@ -50,11 +50,7 @@ FeatureSwitch::DEFAULT_ENABLED), load_media_router_component_extension( kLoadMediaRouterComponentExtensionFlag, @@ -9,6 +9,6 @@ -#else - FeatureSwitch::DEFAULT_DISABLED), -#endif // defined(GOOGLE_CHROME_BUILD) - native_crx_bindings(switches::kNativeCrxBindings, - kNativeCrxBindingsFieldTrial, - FeatureSwitch::DEFAULT_DISABLED), + yield_between_content_script_runs( + switches::kYieldBetweenContentScriptRuns, + kYieldBetweenContentScriptRunsFieldTrial, diff --git a/www/chromium/files/patch-gpu_ipc_common_gpu_memory_buffer_support.cc b/www/chromium/files/patch-gpu_ipc_common_gpu_memory_buffer_support.cc index 283f058e6ee4..4424136b7c74 100644 --- a/www/chromium/files/patch-gpu_ipc_common_gpu_memory_buffer_support.cc +++ b/www/chromium/files/patch-gpu_ipc_common_gpu_memory_buffer_support.cc @@ -1,5 +1,5 @@ ---- gpu/ipc/common/gpu_memory_buffer_support.cc.orig 2017-08-02 17:06:53.520243000 +0200 -+++ gpu/ipc/common/gpu_memory_buffer_support.cc 2017-08-02 17:07:52.198146000 +0200 +--- gpu/ipc/common/gpu_memory_buffer_support.cc.orig 2018-02-24 16:25:15.000000000 +0100 ++++ gpu/ipc/common/gpu_memory_buffer_support.cc 2018-03-04 02:34:29.021605000 +0100 @@ -7,7 +7,7 @@ #include "base/logging.h" #include "build/build_config.h" @@ -9,21 +9,21 @@ #include "ui/gfx/client_native_pixmap_factory.h" #endif -@@ -17,7 +17,7 @@ - #if defined(OS_MACOSX) +@@ -22,7 +22,7 @@ return gfx::IO_SURFACE_BUFFER; - #endif --#if defined(OS_LINUX) -+#if defined(OS_LINUX) || defined(OS_BSD) + #elif defined(OS_ANDROID) + return gfx::ANDROID_HARDWARE_BUFFER; +-#elif defined(OS_LINUX) ++#elif defined(OS_LINUX) || defined(OS_BSD) return gfx::NATIVE_PIXMAP; - #endif - return gfx::EMPTY_BUFFER; -@@ -47,7 +47,7 @@ + #elif defined(OS_WIN) + return gfx::DXGI_SHARED_HANDLE; +@@ -81,7 +81,7 @@ + } + NOTREACHED(); return false; - #endif - --#if defined(OS_LINUX) -+#if defined(OS_LINUX) || defined(OS_BSD) +-#elif defined(OS_LINUX) ++#elif defined(OS_LINUX) || defined(OS_BSD) if (!gfx::ClientNativePixmapFactory::GetInstance()) { // unittests don't have to set ClientNativePixmapFactory. return false; diff --git a/www/chromium/files/patch-gpu_ipc_service_gpu__init.cc b/www/chromium/files/patch-gpu_ipc_service_gpu__init.cc index 90c698ef50f2..a28e139469c3 100644 --- a/www/chromium/files/patch-gpu_ipc_service_gpu__init.cc +++ b/www/chromium/files/patch-gpu_ipc_service_gpu__init.cc @@ -1,5 +1,5 @@ ---- gpu/ipc/service/gpu_init.cc.orig 2017-12-15 02:04:19.000000000 +0100 -+++ gpu/ipc/service/gpu_init.cc 2017-12-31 04:40:00.427872000 +0100 +--- gpu/ipc/service/gpu_init.cc.orig 2018-02-24 16:25:15.000000000 +0100 ++++ gpu/ipc/service/gpu_init.cc 2018-03-04 02:41:07.510363000 +0100 @@ -37,7 +37,7 @@ namespace gpu { @@ -9,7 +9,7 @@ void CollectGraphicsInfo(GPUInfo* gpu_info) { DCHECK(gpu_info); #if defined(OS_FUCHSIA) -@@ -80,9 +80,9 @@ +@@ -77,9 +77,9 @@ } #endif // defined(OS_FUCHSIA) } @@ -20,17 +20,26 @@ +#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && !defined(OS_BSD) bool CanAccessNvidiaDeviceFile() { bool res = true; - base::ThreadRestrictions::AssertIOAllowed(); -@@ -116,7 +116,7 @@ - // passing from browser process. - GetGpuInfoFromCommandLine(*command_line, &gpu_info_); - #endif // OS_ANDROID + base::AssertBlockingAllowed(); +@@ -120,7 +120,7 @@ + // crash during feature collection. + gpu::SetKeysForCrashLogging(gpu_info_); + -#if defined(OS_LINUX) && !defined(OS_CHROMEOS) +#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && !defined(OS_BSD) if (gpu_info_.gpu.vendor_id == 0x10de && // NVIDIA gpu_info_.driver_vendor == "NVIDIA" && !CanAccessNvidiaDeviceFile()) return false; -@@ -213,7 +213,7 @@ +@@ -183,7 +183,7 @@ + sandbox_helper_->PreSandboxStartup(); + + bool attempted_startsandbox = false; +-#if defined(OS_LINUX) ++#if defined(OS_LINUX) && !defined(OS_BSD) + // On Chrome OS ARM Mali, GPU driver userspace creates threads when + // initializing a GL context, so start the sandbox early. + // TODO(zmo): Need to collect OS version before this. +@@ -222,7 +222,7 @@ // multiple seconds to finish, which in turn cause the GPU process to crash. // By skipping the following code on Mac, we don't really lose anything, // because the basic GPU information is passed down from the host process. @@ -39,7 +48,7 @@ CollectGraphicsInfo(&gpu_info_); if (gpu_info_.context_info_state == gpu::kCollectInfoFatalFailure) return false; -@@ -288,7 +288,7 @@ +@@ -308,7 +308,7 @@ return; } diff --git a/www/chromium/files/patch-gpu_ipc_service_gpu__memory_buffer_factory.cc b/www/chromium/files/patch-gpu_ipc_service_gpu__memory_buffer_factory.cc index d8f2392b92a0..c722afc91d64 100644 --- a/www/chromium/files/patch-gpu_ipc_service_gpu__memory_buffer_factory.cc +++ b/www/chromium/files/patch-gpu_ipc_service_gpu__memory_buffer_factory.cc @@ -1,5 +1,5 @@ ---- gpu/ipc/service/gpu_memory_buffer_factory.cc.orig 2017-08-02 17:22:32.367729000 +0200 -+++ gpu/ipc/service/gpu_memory_buffer_factory.cc 2017-08-02 17:22:51.485749000 +0200 +--- gpu/ipc/service/gpu_memory_buffer_factory.cc.orig 2018-02-24 16:25:15.000000000 +0100 ++++ gpu/ipc/service/gpu_memory_buffer_factory.cc 2018-03-04 02:47:09.144034000 +0100 @@ -12,7 +12,7 @@ #include "gpu/ipc/service/gpu_memory_buffer_factory_io_surface.h" #endif @@ -9,12 +9,12 @@ #include "gpu/ipc/service/gpu_memory_buffer_factory_native_pixmap.h" #endif -@@ -24,7 +24,7 @@ - #if defined(OS_MACOSX) +@@ -33,7 +33,7 @@ return base::WrapUnique(new GpuMemoryBufferFactoryIOSurface); - #endif --#if defined(OS_LINUX) -+#if defined(OS_LINUX) || defined(OS_BSD) + #elif defined(OS_ANDROID) + return base::WrapUnique(new GpuMemoryBufferFactoryAndroidHardwareBuffer); +-#elif defined(OS_LINUX) ++#elif defined(OS_LINUX) || defined(OS_BSD) return base::WrapUnique(new GpuMemoryBufferFactoryNativePixmap); - #endif - return nullptr; + #elif defined(OS_WIN) + return base::WrapUnique(new GpuMemoryBufferFactoryDXGI); diff --git a/www/chromium/files/patch-headless_lib_headless__content__main__delegate.cc b/www/chromium/files/patch-headless_lib_headless__content__main__delegate.cc deleted file mode 100644 index 887fb3cd0878..000000000000 --- a/www/chromium/files/patch-headless_lib_headless__content__main__delegate.cc +++ /dev/null @@ -1,11 +0,0 @@ ---- headless/lib/headless_content_main_delegate.cc.orig 2017-07-25 21:04:56.000000000 +0200 -+++ headless/lib/headless_content_main_delegate.cc 2017-08-02 13:54:14.222324000 +0200 -@@ -233,7 +233,7 @@ - } - #endif // !defined(CHROME_MULTIPLE_DLL_CHILD) - --#if !defined(OS_MACOSX) && defined(OS_POSIX) && !defined(OS_ANDROID) -+#if !defined(OS_MACOSX) && defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_BSD) - void HeadlessContentMainDelegate::ZygoteForked() { - const base::CommandLine& command_line( - *base::CommandLine::ForCurrentProcess()); diff --git a/www/chromium/files/patch-headless_lib_headless__content__main__delegate.h b/www/chromium/files/patch-headless_lib_headless__content__main__delegate.h deleted file mode 100644 index 049e770c3470..000000000000 --- a/www/chromium/files/patch-headless_lib_headless__content__main__delegate.h +++ /dev/null @@ -1,11 +0,0 @@ ---- headless/lib/headless_content_main_delegate.h.orig 2017-06-05 19:03:08 UTC -+++ headless/lib/headless_content_main_delegate.h -@@ -44,7 +44,7 @@ class HEADLESS_EXPORT HeadlessContentMainDelegate - - HeadlessBrowserImpl* browser() const { return browser_.get(); } - --#if !defined(OS_MACOSX) && defined(OS_POSIX) && !defined(OS_ANDROID) -+#if !defined(OS_MACOSX) && defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_BSD) - void ZygoteForked() override; - #endif - diff --git a/www/chromium/files/patch-net_base_network__interfaces__freebsd.cc b/www/chromium/files/patch-net_base_network__interfaces__freebsd.cc index dc01f0f0ffd6..aa0e5720506b 100644 --- a/www/chromium/files/patch-net_base_network__interfaces__freebsd.cc +++ b/www/chromium/files/patch-net_base_network__interfaces__freebsd.cc @@ -217,7 +217,7 @@ + return false; + + // getifaddrs() may require IO operations. -+ base::ThreadRestrictions::AssertIOAllowed(); ++ base::AssertBlockingAllowed(); + + ifaddrs* interfaces; + if (getifaddrs(&interfaces) < 0) { diff --git a/www/chromium/files/patch-net_socket_udp__socket__posix.cc b/www/chromium/files/patch-net_socket_udp__socket__posix.cc index 61a629e3f333..6516e22aaf92 100644 --- a/www/chromium/files/patch-net_socket_udp__socket__posix.cc +++ b/www/chromium/files/patch-net_socket_udp__socket__posix.cc @@ -1,15 +1,15 @@ ---- net/socket/udp_socket_posix.cc.orig 2018-01-04 21:05:56.000000000 +0100 -+++ net/socket/udp_socket_posix.cc 2018-01-21 13:53:16.974899000 +0100 -@@ -64,7 +64,7 @@ +--- net/socket/udp_socket_posix.cc.orig 2018-02-24 16:25:17.000000000 +0100 ++++ net/socket/udp_socket_posix.cc 2018-03-04 03:08:15.161087000 +0100 +@@ -69,7 +69,7 @@ const base::TimeDelta kActivityMonitorMsThreshold = base::TimeDelta::FromMilliseconds(100); --#if defined(OS_MACOSX) -+#if defined(OS_MACOSX) || defined(OS_BSD) +-#if defined(OS_MACOSX) || defined(OS_FUCHSIA) ++#if defined(OS_MACOSX) || defined(OS_FUCHSIA) || defined(OS_BSD) - // Returns IPv4 address in network order. - int GetIPv4AddressFromIndex(int socket, uint32_t index, uint32_t* address) { -@@ -617,7 +617,7 @@ + // When enabling multicast using setsockopt(IP_MULTICAST_IF) MacOS and Fuchsia + // require passing IPv4 address instead of interface index. This function +@@ -647,13 +647,16 @@ DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); int value = broadcast ? 1 : 0; int rv; @@ -18,26 +18,32 @@ // SO_REUSEPORT on OSX permits multiple processes to each receive // UDP multicast or broadcast datagrams destined for the bound // port. -@@ -830,7 +830,7 @@ + // This is only being set on OSX because its behavior is platform dependent + // and we are playing it safe by only setting it on platforms where things + // break. ++ rv = setsockopt(socket_, SOL_SOCKET, SO_REUSEADDR, &value, sizeof(value)); ++ if (rv != 0) ++ return MapSystemError(errno); + rv = setsockopt(socket_, SOL_SOCKET, SO_REUSEPORT, &value, sizeof(value)); + if (rv != 0) + return MapSystemError(errno); +@@ -860,19 +863,24 @@ if (multicast_interface_ != 0) { switch (addr_family_) { case AF_INET: { --#if !defined(OS_MACOSX) -+#if !defined(OS_MACOSX) && !defined(OS_BSD) +-#if defined(OS_MACOSX) || defined(OS_FUCHSIA) ++#if defined(OS_MACOSX) || defined(OS_FUCHSIA) || defined(OS_BSD) + ip_mreq mreq; + int error = GetIPv4AddressFromIndex(socket_, multicast_interface_, + &mreq.imr_interface.s_addr); + if (error != OK) + return error; +-#else // defined(OS_MACOSX) || defined(OS_FUCHSIA) ++#else // defined(OS_MACOSX) || defined(OS_FUCHSIA) || defined(OS_BSD) ip_mreqn mreq; mreq.imr_ifindex = multicast_interface_; mreq.imr_address.s_addr = htonl(INADDR_ANY); -@@ -841,8 +841,20 @@ - if (error != OK) - return error; - #endif -+#if defined(OS_BSD) -+ int value = 1; -+ if (setsockopt(socket_, SOL_SOCKET, SO_REUSEADDR, &value, sizeof(value)) != 0) -+ return MapSystemError(errno); -+ if (setsockopt(socket_, SOL_SOCKET, SO_REUSEPORT, &value, sizeof(value)) != 0) -+ return MapSystemError(errno); -+#endif + #endif // !defined(OS_MACOSX) && !defined(OS_FUCHSIA) int rv = setsockopt(socket_, IPPROTO_IP, IP_MULTICAST_IF, +#if defined(OS_BSD) + reinterpret_cast(&mreq.imr_interface.s_addr), @@ -48,12 +54,12 @@ if (rv) return MapSystemError(errno); break; -@@ -905,7 +917,7 @@ +@@ -934,7 +942,7 @@ 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); +-#if defined(OS_MACOSX) || defined(OS_FUCHSIA) ++#if defined(OS_MACOSX) || defined(OS_FUCHSIA) || defined(OS_BSD) + ip_mreq mreq; + int error = GetIPv4AddressFromIndex(socket_, multicast_interface_, + &mreq.imr_interface.s_addr); diff --git a/www/chromium/files/patch-ppapi_shared__impl_private_net__address__private__impl.cc b/www/chromium/files/patch-ppapi_shared__impl_private_net__address__private__impl.cc deleted file mode 100644 index c9ca3fc20e4e..000000000000 --- a/www/chromium/files/patch-ppapi_shared__impl_private_net__address__private__impl.cc +++ /dev/null @@ -1,11 +0,0 @@ ---- ppapi/shared_impl/private/net_address_private_impl.cc.orig 2017-07-25 21:04:59.000000000 +0200 -+++ ppapi/shared_impl/private/net_address_private_impl.cc 2017-08-02 15:39:26.715080000 +0200 -@@ -29,7 +29,7 @@ - #include - #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/www/chromium/files/patch-services_device_hid_BUILD.gn b/www/chromium/files/patch-services_device_hid_BUILD.gn new file mode 100644 index 000000000000..4e866f40a947 --- /dev/null +++ b/www/chromium/files/patch-services_device_hid_BUILD.gn @@ -0,0 +1,22 @@ +--- services/device/hid/BUILD.gn.orig 2018-03-04 02:07:03.748216000 +0100 ++++ services/device/hid/BUILD.gn 2018-03-04 02:10:30.278997000 +0100 +@@ -52,6 +52,19 @@ + deps += [ "//device/udev_linux" ] + } + ++ if (is_bsd) { ++ sources -= [ ++ "hid_connection_linux.cc", ++ "hid_connection_linux.h", ++ ] ++ sources += [ ++ "hid_connection_freebsd.cc", ++ "hid_connection_freebsd.h", ++ "hid_service_freebsd.cc", ++ "hid_service_freebsd.h", ++ ] ++ } ++ + if (is_chromeos) { + deps += [ "//chromeos" ] + } diff --git a/www/chromium/files/patch-services_device_hid_hid__connection__freebsd.cc b/www/chromium/files/patch-services_device_hid_hid__connection__freebsd.cc new file mode 100644 index 000000000000..0c23b3cd348e --- /dev/null +++ b/www/chromium/files/patch-services_device_hid_hid__connection__freebsd.cc @@ -0,0 +1,283 @@ +--- services/device/hid/hid_connection_freebsd.cc.orig 2018-03-04 05:38:54.417710000 +0100 ++++ services/device/hid/hid_connection_freebsd.cc 2018-03-04 08:44:44.849710000 +0100 +@@ -0,0 +1,280 @@ ++// Copyright (c) 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. ++ ++#include "services/device/hid/hid_connection_freebsd.h" ++ ++#include ++#include ++ ++#include "base/bind.h" ++#include "base/files/file_descriptor_watcher_posix.h" ++#include "base/location.h" ++#include "base/numerics/safe_math.h" ++#include "base/posix/eintr_wrapper.h" ++#include "base/single_thread_task_runner.h" ++#include "base/strings/stringprintf.h" ++#include "base/task_scheduler/post_task.h" ++#include "base/threading/thread_restrictions.h" ++#include "base/threading/thread_task_runner_handle.h" ++#include "components/device_event_log/device_event_log.h" ++#include "services/device/hid/hid_service.h" ++ ++namespace device { ++ ++class HidConnectionFreeBSD::BlockingTaskHelper { ++ public: ++ BlockingTaskHelper(base::ScopedFD fd, ++ scoped_refptr device_info, ++ base::WeakPtr connection) ++ : fd_(std::move(fd)), ++ connection_(connection), ++ origin_task_runner_(base::ThreadTaskRunnerHandle::Get()) { ++ DETACH_FROM_SEQUENCE(sequence_checker_); ++ // Report buffers must always have room for the report ID. ++ report_buffer_size_ = device_info->max_input_report_size() + 1; ++ has_report_id_ = device_info->has_report_id(); ++ } ++ ++ ~BlockingTaskHelper() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); } ++ ++ // Starts the FileDescriptorWatcher that reads input events from the device. ++ // Must be called on a thread that has a base::MessageLoopForIO. ++ void Start() { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ base::AssertBlockingAllowed(); ++ ++ file_watcher_ = base::FileDescriptorWatcher::WatchReadable( ++ fd_.get(), base::Bind(&BlockingTaskHelper::OnFileCanReadWithoutBlocking, ++ base::Unretained(this))); ++ } ++ ++ void Write(scoped_refptr buffer, ++ size_t size, ++ WriteCallback callback) { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ char *data = buffer->data(); ++ // if report id is 0, it shouldn't be included ++ if (data[0] == 0) { ++ data++; ++ size--; ++ } ++ ++ ssize_t result = HANDLE_EINTR(write(fd_.get(), data, size)); ++ if (result < 0) { ++ HID_PLOG(EVENT) << "Write failed"; ++ origin_task_runner_->PostTask(FROM_HERE, base::BindOnce(std::move(callback), false)); ++ } else { ++ if (static_cast(result) != size) ++ HID_LOG(EVENT) << "Incomplete HID write: " << result << " != " << size; ++ origin_task_runner_->PostTask(FROM_HERE, base::BindOnce(std::move(callback), true)); ++ } ++ } ++ ++ void GetFeatureReport(uint8_t report_id, ++ scoped_refptr buffer, ++ ReadCallback callback) { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ struct usb_gen_descriptor ugd; ++ ugd.ugd_report_type = UHID_FEATURE_REPORT; ++ ugd.ugd_data = buffer->data(); ++ ugd.ugd_maxlen = buffer->size(); ++ int result = HANDLE_EINTR( ++ ioctl(fd_.get(), USB_GET_REPORT, &ugd)); ++ if (result < 0) { ++ HID_PLOG(EVENT) << "Failed to get feature report"; ++ origin_task_runner_->PostTask(FROM_HERE, ++ base::BindOnce(std::move(callback), false, nullptr, 0)); ++ } else if (result == 0) { ++ HID_LOG(EVENT) << "Get feature result too short."; ++ origin_task_runner_->PostTask(FROM_HERE, ++ base::BindOnce(std::move(callback), false, nullptr, 0)); ++ } else { ++ origin_task_runner_->PostTask(FROM_HERE, ++ base::BindOnce(std::move(callback), true, buffer, result)); ++ } ++ } ++ ++ void SendFeatureReport(scoped_refptr buffer, ++ size_t size, ++ WriteCallback callback) { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ struct usb_gen_descriptor ugd; ++ ugd.ugd_report_type = UHID_FEATURE_REPORT; ++ ugd.ugd_data = buffer->data(); ++ ugd.ugd_maxlen = size; ++ // FreeBSD does not require report id if it's not used ++ if (buffer->data()[0] == 0) { ++ ugd.ugd_data = buffer->data() + 1; ++ ugd.ugd_maxlen = size - 1; ++ } else { ++ ugd.ugd_data = buffer->data(); ++ ugd.ugd_maxlen = size; ++ } ++ int result = HANDLE_EINTR( ++ ioctl(fd_.get(), USB_SET_REPORT, &ugd)); ++ if (result < 0) { ++ HID_PLOG(EVENT) << "Failed to send feature report"; ++ origin_task_runner_->PostTask(FROM_HERE, ++ base::BindOnce(std::move(callback), false)); ++ } else { ++ origin_task_runner_->PostTask(FROM_HERE, ++ base::BindOnce(std::move(callback), true)); ++ } ++ } ++ ++ private: ++ void OnFileCanReadWithoutBlocking() { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ ++ scoped_refptr buffer(new net::IOBuffer(report_buffer_size_)); ++ char* data = buffer->data(); ++ size_t length = report_buffer_size_; ++ if (!has_report_id_) { ++ // FreeBSD will not prefix the buffer with a report ID if report IDs are not ++ // used by the device. Prefix the buffer with 0. ++ *data++ = 0; ++ length--; ++ } ++ ++ ssize_t bytes_read = HANDLE_EINTR(read(fd_.get(), data, length)); ++ if (bytes_read < 0) { ++ if (errno != EAGAIN) { ++ HID_PLOG(EVENT) << "Read failed"; ++ // This assumes that the error is unrecoverable and disables reading ++ // from the device until it has been re-opened. ++ // TODO(reillyg): Investigate starting and stopping the file descriptor ++ // watcher in response to pending read requests so that per-request ++ // errors can be returned to the client. ++ file_watcher_.reset(); ++ } ++ return; ++ } ++ if (!has_report_id_) { ++ // Behave as if the byte prefixed above as the the report ID was read. ++ bytes_read++; ++ } ++ ++ origin_task_runner_->PostTask( ++ FROM_HERE, base::BindOnce(&HidConnectionFreeBSD::ProcessInputReport, ++ connection_, buffer, bytes_read)); ++ } ++ ++ SEQUENCE_CHECKER(sequence_checker_); ++ base::ScopedFD fd_; ++ size_t report_buffer_size_; ++ bool has_report_id_; ++ base::WeakPtr connection_; ++ const scoped_refptr origin_task_runner_; ++ std::unique_ptr file_watcher_; ++ ++ DISALLOW_COPY_AND_ASSIGN(BlockingTaskHelper); ++}; ++ ++HidConnectionFreeBSD::HidConnectionFreeBSD( ++ scoped_refptr device_info, ++ base::ScopedFD fd, ++ scoped_refptr blocking_task_runner) ++ : HidConnection(device_info), ++ blocking_task_runner_(std::move(blocking_task_runner)), ++ weak_factory_(this) { ++ helper_ = base::MakeUnique(std::move(fd), device_info, ++ weak_factory_.GetWeakPtr()); ++ blocking_task_runner_->PostTask( ++ FROM_HERE, base::BindOnce(&BlockingTaskHelper::Start, ++ base::Unretained(helper_.get()))); ++} ++ ++HidConnectionFreeBSD::~HidConnectionFreeBSD() {} ++ ++void HidConnectionFreeBSD::PlatformClose() { ++ // By closing the device on the blocking task runner 1) the requirement that ++ // base::ScopedFD is destroyed on a thread where I/O is allowed is satisfied ++ // and 2) any tasks posted to this task runner that refer to this file will ++ // complete before it is closed. ++ blocking_task_runner_->DeleteSoon(FROM_HERE, helper_.release()); ++ ++ while (!pending_reads_.empty()) { ++ std::move(pending_reads_.front().callback).Run(false, NULL, 0); ++ pending_reads_.pop(); ++ } ++} ++ ++void HidConnectionFreeBSD::PlatformRead(ReadCallback callback) { ++ PendingHidRead pending_read; ++ pending_read.callback = std::move(callback); ++ pending_reads_.push(std::move(pending_read)); ++ ProcessReadQueue(); ++} ++ ++void HidConnectionFreeBSD::PlatformWrite(scoped_refptr buffer, ++ size_t size, ++ WriteCallback callback) { ++ ++ blocking_task_runner_->PostTask( ++ FROM_HERE, ++ base::BindOnce(&BlockingTaskHelper::Write, base::Unretained(helper_.get()), ++ buffer, size, std::move(callback))); ++} ++ ++void HidConnectionFreeBSD::PlatformGetFeatureReport(uint8_t report_id, ++ ReadCallback callback) { ++ // The first byte of the destination buffer is the report ID being requested ++ // and is overwritten by the feature report. ++ DCHECK_GT(device_info()->max_feature_report_size(), 0u); ++ scoped_refptr buffer( ++ new net::IOBufferWithSize(device_info()->max_feature_report_size() + 1)); ++ if (report_id != 0) ++ buffer->data()[0] = report_id; ++ ++ blocking_task_runner_->PostTask( ++ FROM_HERE, ++ base::BindOnce(&BlockingTaskHelper::GetFeatureReport, ++ base::Unretained(helper_.get()), report_id, ++ buffer, std::move(callback))); ++} ++ ++void HidConnectionFreeBSD::PlatformSendFeatureReport( ++ scoped_refptr buffer, ++ size_t size, ++ WriteCallback callback) { ++ blocking_task_runner_->PostTask( ++ FROM_HERE, ++ base::BindOnce(&BlockingTaskHelper::SendFeatureReport, ++ base::Unretained(helper_.get()), buffer, size, std::move(callback))); ++} ++ ++void HidConnectionFreeBSD::ProcessInputReport( ++ scoped_refptr buffer, ++ size_t size) { ++ DCHECK(thread_checker().CalledOnValidThread()); ++ DCHECK_GE(size, 1u); ++ ++ uint8_t report_id = buffer->data()[0]; ++ if (IsReportIdProtected(report_id)) ++ return; ++ ++ PendingHidReport report; ++ report.buffer = buffer; ++ report.size = size; ++ pending_reports_.push(report); ++ ProcessReadQueue(); ++} ++ ++void HidConnectionFreeBSD::ProcessReadQueue() { ++ DCHECK(thread_checker().CalledOnValidThread()); ++ ++ // Hold a reference to |this| to prevent a callback from freeing this object ++ // during the loop. ++ scoped_refptr self(this); ++ while (pending_reads_.size() && pending_reports_.size()) { ++ PendingHidRead read = std::move(pending_reads_.front()); ++ PendingHidReport report = std::move(pending_reports_.front()); ++ ++ pending_reads_.pop(); ++ pending_reports_.pop(); ++ std::move(read.callback).Run(true, std::move(report.buffer), report.size); ++ } ++} ++ ++} // namespace device diff --git a/www/chromium/files/patch-services_device_hid_hid__connection__freebsd.h b/www/chromium/files/patch-services_device_hid_hid__connection__freebsd.h new file mode 100644 index 000000000000..a4c54ad65cbd --- /dev/null +++ b/www/chromium/files/patch-services_device_hid_hid__connection__freebsd.h @@ -0,0 +1,79 @@ +--- services/device/hid/hid_connection_freebsd.h.orig 2018-03-04 05:38:54.423072000 +0100 ++++ services/device/hid/hid_connection_freebsd.h 2018-03-04 08:36:02.866858000 +0100 +@@ -0,0 +1,76 @@ ++// Copyright (c) 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. ++ ++#ifndef DEVICE_HID_HID_CONNECTION_FREEBSD_H_ ++#define DEVICE_HID_HID_CONNECTION_FREEBSD_H_ ++ ++#include ++#include ++ ++#include ++ ++#include "base/files/scoped_file.h" ++#include "base/macros.h" ++#include "base/memory/weak_ptr.h" ++#include "base/sequence_checker.h" ++#include "services/device/hid/hid_connection.h" ++ ++namespace base { ++class SequencedTaskRunner; ++} ++ ++namespace net { ++class IOBuffer; ++} ++ ++namespace device { ++ ++class HidConnectionFreeBSD : public HidConnection { ++ public: ++ HidConnectionFreeBSD( ++ scoped_refptr device_info, ++ base::ScopedFD fd, ++ scoped_refptr blocking_task_runner); ++ ++ private: ++ friend class base::RefCountedThreadSafe; ++ class BlockingTaskHelper; ++ ++ ~HidConnectionFreeBSD() override; ++ ++ // HidConnection implementation. ++ void PlatformClose() override; ++ void PlatformRead(ReadCallback callback) override; ++ void PlatformWrite(scoped_refptr buffer, ++ size_t size, ++ WriteCallback callback) override; ++ void PlatformGetFeatureReport(uint8_t report_id, ++ ReadCallback callback) override; ++ void PlatformSendFeatureReport(scoped_refptr buffer, ++ size_t size, ++ WriteCallback callback) override; ++ void ProcessInputReport(scoped_refptr buffer, size_t size); ++ void ProcessReadQueue(); ++ ++ // |helper_| lives on the sequence to which |blocking_task_runner_| posts ++ // tasks so all calls must be posted there including this object's ++ // destruction. ++ std::unique_ptr helper_; ++ ++ const scoped_refptr blocking_task_runner_; ++ ++ std::queue pending_reports_; ++ std::queue pending_reads_; ++ const scoped_refptr task_runner_; ++ ++ SEQUENCE_CHECKER(sequence_checker_); ++ ++ base::WeakPtrFactory weak_factory_; ++ ++ DISALLOW_COPY_AND_ASSIGN(HidConnectionFreeBSD); ++}; ++ ++} // namespace device ++ ++#endif // DEVICE_HID_HID_CONNECTION_FREEBSD_H_ diff --git a/www/chromium/files/patch-services_device_hid_hid__service.cc b/www/chromium/files/patch-services_device_hid_hid__service.cc new file mode 100644 index 000000000000..dca62afb4296 --- /dev/null +++ b/www/chromium/files/patch-services_device_hid_hid__service.cc @@ -0,0 +1,20 @@ +--- services/device/hid/hid_service.cc.orig 2018-02-24 16:25:18.000000000 +0100 ++++ services/device/hid/hid_service.cc 2018-03-04 05:38:54.425730000 +0100 +@@ -16,6 +16,8 @@ + + #if defined(OS_LINUX) && defined(USE_UDEV) + #include "services/device/hid/hid_service_linux.h" ++#elif defined(OS_BSD) ++#include "services/device/hid/hid_service_freebsd.h" + #elif defined(OS_MACOSX) + #include "services/device/hid/hid_service_mac.h" + #elif defined(OS_WIN) +@@ -36,6 +38,8 @@ + std::unique_ptr HidService::Create() { + #if defined(OS_LINUX) && defined(USE_UDEV) + return base::WrapUnique(new HidServiceLinux()); ++#elif defined(OS_BSD) ++ return base::WrapUnique(new HidServiceFreeBSD()); + #elif defined(OS_MACOSX) + return base::WrapUnique(new HidServiceMac()); + #elif defined(OS_WIN) diff --git a/www/chromium/files/patch-services_device_hid_hid__service__freebsd.cc b/www/chromium/files/patch-services_device_hid_hid__service__freebsd.cc new file mode 100644 index 000000000000..1a9fca029430 --- /dev/null +++ b/www/chromium/files/patch-services_device_hid_hid__service__freebsd.cc @@ -0,0 +1,374 @@ +--- services/device/hid/hid_service_freebsd.cc.orig 2018-03-04 05:38:54.466235000 +0100 ++++ services/device/hid/hid_service_freebsd.cc 2018-03-04 08:47:26.934621000 +0100 +@@ -0,0 +1,371 @@ ++// 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. ++ ++#include "services/device/hid/hid_service_freebsd.h" ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++#include "base/bind.h" ++#include "base/files/file_descriptor_watcher_posix.h" ++#include "base/files/file_enumerator.h" ++#include "base/location.h" ++#include "base/logging.h" ++#include "base/posix/eintr_wrapper.h" ++#include "base/single_thread_task_runner.h" ++#include "base/stl_util.h" ++#include "base/strings/pattern.h" ++#include "base/strings/stringprintf.h" ++#include "base/strings/sys_string_conversions.h" ++#include "base/strings/string_util.h" ++#include "base/strings/string_split.h" ++#include "base/task_scheduler/post_task.h" ++#include "base/threading/thread_restrictions.h" ++#include "base/threading/thread_task_runner_handle.h" ++#include "components/device_event_log/device_event_log.h" ++#include "services/device/hid/hid_connection_freebsd.h" ++ ++const int kMaxPermissionChecks = 5; ++ ++namespace device { ++ ++struct HidServiceFreeBSD::ConnectParams { ++ ConnectParams(scoped_refptr device_info, ++ const ConnectCallback& callback) ++ : device_info(std::move(device_info)), ++ callback(callback), ++ task_runner(base::ThreadTaskRunnerHandle::Get()), ++ blocking_task_runner( ++ base::CreateSequencedTaskRunnerWithTraits(kBlockingTaskTraits)) {} ++ ~ConnectParams() {} ++ ++ scoped_refptr device_info; ++ ConnectCallback callback; ++ scoped_refptr task_runner; ++ scoped_refptr blocking_task_runner; ++ base::ScopedFD fd; ++}; ++ ++class HidServiceFreeBSD::BlockingTaskHelper { ++ public: ++ BlockingTaskHelper(base::WeakPtr service) ++ : service_(std::move(service)), ++ task_runner_(base::ThreadTaskRunnerHandle::Get()) { ++ DETACH_FROM_SEQUENCE(sequence_checker_); ++ ++ timer_.reset(new base::RepeatingTimer()); ++ devd_buffer_ = new net::IOBufferWithSize(1024); ++ } ++ ++ ~BlockingTaskHelper() { ++ } ++ ++ void Start() { ++ base::AssertBlockingAllowed(); ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ ++ const base::FilePath kDevRoot("/dev"); ++ const std::string kUHIDPattern("/dev/uhid*"); ++ ++ base::FileEnumerator enumerator(kDevRoot, false, base::FileEnumerator::FILES); ++ do { ++ const base::FilePath next_device_path(enumerator.Next()); ++ const std::string next_device = next_device_path.value(); ++ if (next_device.empty()) ++ break; ++ ++ if (base::MatchPattern(next_device, kUHIDPattern)) ++ OnDeviceAdded(next_device.substr(5)); ++ } while (true); ++ ++ SetupDevdMonitor(); ++ ++ task_runner_->PostTask( ++ FROM_HERE, ++ base::Bind(&HidServiceFreeBSD::FirstEnumerationComplete, service_)); ++ } ++ ++ bool HaveReadWritePermissions(std::string device_id) { ++ std::string device_node = "/dev/" + device_id; ++ base::AssertBlockingAllowed(); ++ ++ base::FilePath device_path(device_node); ++ base::File device_file; ++ int flags = ++ base::File::FLAG_OPEN | base::File::FLAG_READ | base::File::FLAG_WRITE; ++ device_file.Initialize(device_path, flags); ++ if (!device_file.IsValid()) ++ return false; ++ ++ return true; ++ } ++ ++ void OnDeviceAdded(std::string device_id) { ++ std::string device_node = "/dev/" + device_id; ++ uint16_t vendor_id = 0xffff; ++ uint16_t product_id = 0xffff; ++ std::string product_name = ""; ++ std::string serial_number = ""; ++ ++ std::vector report_descriptor; ++ ++ base::AssertBlockingAllowed(); ++ ++ base::FilePath device_path(device_node); ++ base::File device_file; ++ int flags = ++ base::File::FLAG_OPEN | base::File::FLAG_READ | base::File::FLAG_WRITE; ++ device_file.Initialize(device_path, flags); ++ if (!device_file.IsValid()) { ++ HID_LOG(ERROR) << "Failed to open '" << device_node ++ << "': " ++ << base::File::ErrorToString(device_file.error_details()); ++ return; ++ } ++ ++ base::ScopedFD fd; ++ fd.reset(device_file.TakePlatformFile()); ++ ++ struct usb_gen_descriptor ugd; ++ ugd.ugd_data = NULL; ++ ugd.ugd_maxlen = 0xffff; ++ int result = HANDLE_EINTR( ++ ioctl(fd.get(), USB_GET_REPORT_DESC, &ugd)); ++ ++ if (result < 0) { ++ HID_LOG(ERROR) << "Failed to get report descriptor size"; ++ return; ++ } ++ ++ report_descriptor.resize(ugd.ugd_actlen); ++ ++ ugd.ugd_data = report_descriptor.data(); ++ ugd.ugd_maxlen = ugd.ugd_actlen; ++ result = HANDLE_EINTR( ++ ioctl(fd.get(), USB_GET_REPORT_DESC, &ugd)); ++ ++ if (result < 0) { ++ HID_LOG(ERROR) << "Failed to get report descriptor"; ++ return; ++ } ++ ++ scoped_refptr device_info(new HidDeviceInfo( ++ device_id, vendor_id, product_id, product_name, serial_number, ++ device::mojom::HidBusType::kHIDBusTypeUSB, ++ report_descriptor, device_node)); ++ ++ task_runner_->PostTask(FROM_HERE, base::Bind(&HidServiceFreeBSD::AddDevice, ++ service_, device_info)); ++ } ++ ++ void OnDeviceRemoved(std::string device_id) { ++ task_runner_->PostTask( ++ FROM_HERE, base::Bind(&HidServiceFreeBSD::RemoveDevice, service_, ++ device_id)); ++ } ++ ++ private: ++ ++ void CheckPendingPermissionChange() { ++ base::AssertBlockingAllowed(); ++ std::map::iterator it; ++ for (it = permissions_checks_attempts_.begin(); it != permissions_checks_attempts_.end();) { ++ std::string device_name = it->first; ++ bool keep = true; ++ if (HaveReadWritePermissions(device_name)) { ++ OnDeviceAdded(device_name); ++ keep = false; ++ } ++ else if (it->second-- <= 0) { ++ HID_LOG(ERROR) << "Still don't have write permissions to '" << device_name ++ << "' after " << kMaxPermissionChecks << " attempts"; ++ keep = false; ++ } ++ ++ if (keep) ++ ++it; ++ else ++ permissions_checks_attempts_.erase(it++); ++ } ++ ++ if (permissions_checks_attempts_.empty()) ++ timer_->Stop(); ++ } ++ ++ void SetupDevdMonitor() { ++ base::AssertBlockingAllowed(); ++ ++ int devd_fd = socket(AF_UNIX, SOCK_SEQPACKET, 0); ++ if (devd_fd < 0) ++ return; ++ ++ struct sockaddr_un sa; ++ ++ sa.sun_family = AF_UNIX; ++ strlcpy(sa.sun_path, "/var/run/devd.seqpacket.pipe", sizeof(sa.sun_path)); ++ if (connect(devd_fd, (struct sockaddr *) &sa, sizeof(sa)) < 0) { ++ close(devd_fd); ++ return; ++ } ++ ++ devd_fd_.reset(devd_fd); ++ file_watcher_ = base::FileDescriptorWatcher::WatchReadable( ++ devd_fd_.get(), base::Bind(&BlockingTaskHelper::OnDevdMessageCanBeRead, ++ base::Unretained(this))); ++ } ++ ++ void OnDevdMessageCanBeRead() { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ ssize_t bytes_read = HANDLE_EINTR(recv(devd_fd_.get(), devd_buffer_->data(), ++ devd_buffer_->size() - 1, MSG_WAITALL)); ++ if (bytes_read < 0) { ++ if (errno != EAGAIN) { ++ HID_LOG(ERROR) << "Read failed"; ++ file_watcher_.reset(); ++ } ++ return; ++ } ++ ++ devd_buffer_->data()[bytes_read] = 0; ++ char *data = devd_buffer_->data(); ++ // It may take some time for devd to change permissions ++ // on /dev/uhidX node. So do not fail immediately if ++ // open fail. Retry each second for kMaxPermissionChecks ++ // times before giving up entirely ++ if (base::StartsWith(data, "+uhid", base::CompareCase::SENSITIVE)) { ++ std::vector parts = base::SplitString( ++ data, " ", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); ++ if (!parts.empty()) { ++ std::string device_name = parts[0].substr(1); // skip '+' ++ if (HaveReadWritePermissions(device_name)) ++ OnDeviceAdded(parts[0].substr(1)); ++ else { ++ // Do not re-add to checks ++ if (permissions_checks_attempts_.find(device_name) == permissions_checks_attempts_.end()) { ++ permissions_checks_attempts_.insert(std::pair(device_name, kMaxPermissionChecks)); ++ timer_->Start(FROM_HERE, base::TimeDelta::FromSeconds(1), ++ this, &BlockingTaskHelper::CheckPendingPermissionChange); ++ } ++ } ++ } ++ } ++ ++ if (base::StartsWith(data, "-uhid", base::CompareCase::SENSITIVE)) { ++ std::vector parts = base::SplitString( ++ data, " ", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); ++ if (!parts.empty()) { ++ std::string device_name = parts[0].substr(1); // skip '-' ++ auto it = permissions_checks_attempts_.find(device_name); ++ if (it != permissions_checks_attempts_.end()) { ++ permissions_checks_attempts_.erase(it); ++ if (permissions_checks_attempts_.empty()) ++ timer_->Stop(); ++ } ++ OnDeviceRemoved(parts[0].substr(1)); ++ } ++ } ++ } ++ ++ SEQUENCE_CHECKER(sequence_checker_); ++ ++ // This weak pointer is only valid when checked on this task runner. ++ base::WeakPtr service_; ++ scoped_refptr task_runner_; ++ std::unique_ptr file_watcher_; ++ std::unique_ptr timer_; ++ base::ScopedFD devd_fd_; ++ scoped_refptr devd_buffer_; ++ std::map permissions_checks_attempts_; ++ ++ DISALLOW_COPY_AND_ASSIGN(BlockingTaskHelper); ++}; ++ ++HidServiceFreeBSD::HidServiceFreeBSD() ++ : task_runner_(base::ThreadTaskRunnerHandle::Get()), ++ blocking_task_runner_( ++ base::CreateSequencedTaskRunnerWithTraits(kBlockingTaskTraits)), ++ weak_factory_(this) { ++ helper_ = base::MakeUnique(weak_factory_.GetWeakPtr()); ++ blocking_task_runner_->PostTask( ++ FROM_HERE, ++ base::Bind(&BlockingTaskHelper::Start, base::Unretained(helper_.get()))); ++} ++ ++HidServiceFreeBSD::~HidServiceFreeBSD() { ++ blocking_task_runner_->DeleteSoon(FROM_HERE, helper_.release()); ++} ++ ++base::WeakPtr HidServiceFreeBSD::GetWeakPtr() { ++ return weak_factory_.GetWeakPtr(); ++} ++ ++// static ++void HidServiceFreeBSD::OpenOnBlockingThread( ++ std::unique_ptr params) { ++ base::AssertBlockingAllowed(); ++ scoped_refptr task_runner = params->task_runner; ++ ++ base::FilePath device_path(params->device_info->device_node()); ++ base::File device_file; ++ int flags = ++ base::File::FLAG_OPEN | base::File::FLAG_READ | base::File::FLAG_WRITE; ++ device_file.Initialize(device_path, flags); ++ if (!device_file.IsValid()) { ++ HID_LOG(EVENT) << "Failed to open '" << params->device_info->device_node() ++ << "': " ++ << base::File::ErrorToString(device_file.error_details()); ++ task_runner->PostTask(FROM_HERE, base::Bind(params->callback, nullptr)); ++ return; ++ } ++ params->fd.reset(device_file.TakePlatformFile()); ++ FinishOpen(std::move(params)); ++} ++ ++void HidServiceFreeBSD::Connect(const std::string& device_guid, ++ const ConnectCallback& callback) { ++ DCHECK(thread_checker_.CalledOnValidThread()); ++ ++ const auto& map_entry = devices().find(device_guid); ++ if (map_entry == devices().end()) { ++ base::ThreadTaskRunnerHandle::Get()->PostTask( ++ FROM_HERE, base::Bind(callback, nullptr)); ++ return; ++ } ++ ++ scoped_refptr device_info = map_entry->second; ++ ++ auto params = base::MakeUnique(device_info, callback); ++ ++ scoped_refptr blocking_task_runner = ++ params->blocking_task_runner; ++ blocking_task_runner->PostTask( ++ FROM_HERE, base::Bind(&HidServiceFreeBSD::OpenOnBlockingThread, ++ base::Passed(¶ms))); ++} ++ ++// static ++void HidServiceFreeBSD::FinishOpen(std::unique_ptr params) { ++ base::AssertBlockingAllowed(); ++ scoped_refptr task_runner = params->task_runner; ++ ++ task_runner->PostTask( ++ FROM_HERE, ++ base::Bind(&HidServiceFreeBSD::CreateConnection, base::Passed(¶ms))); ++} ++ ++// static ++void HidServiceFreeBSD::CreateConnection(std::unique_ptr params) { ++ DCHECK(params->fd.is_valid()); ++ params->callback.Run(base::MakeRefCounted( ++ std::move(params->device_info), std::move(params->fd), ++ std::move(params->blocking_task_runner))); ++} ++ ++} // namespace device diff --git a/www/chromium/files/patch-services_device_hid_hid__service__freebsd.h b/www/chromium/files/patch-services_device_hid_hid__service__freebsd.h new file mode 100644 index 000000000000..cd813a1e7b2e --- /dev/null +++ b/www/chromium/files/patch-services_device_hid_hid__service__freebsd.h @@ -0,0 +1,51 @@ +--- services/device/hid/hid_service_freebsd.h.orig 2018-03-04 05:38:54.468408000 +0100 ++++ services/device/hid/hid_service_freebsd.h 2018-03-04 08:35:47.483290000 +0100 +@@ -0,0 +1,48 @@ ++// 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. ++ ++#ifndef DEVICE_HID_HID_SERVICE_FREEBSD_H_ ++#define DEVICE_HID_HID_SERVICE_FREEBSD_H_ ++ ++#include ++ ++#include "base/macros.h" ++#include "base/memory/ref_counted.h" ++#include "base/memory/weak_ptr.h" ++#include "base/timer/timer.h" ++#include "services/device/hid/hid_service.h" ++#include "net/base/io_buffer.h" ++ ++namespace device { ++ ++class HidServiceFreeBSD : public HidService { ++ public: ++ HidServiceFreeBSD(); ++ ~HidServiceFreeBSD() override; ++ ++ void Connect(const std::string& device_guid, ++ const ConnectCallback& connect) override; ++ base::WeakPtr GetWeakPtr() override; ++ ++ private: ++ struct ConnectParams; ++ class BlockingTaskHelper; ++ ++ static void OpenOnBlockingThread(std::unique_ptr params); ++ static void FinishOpen(std::unique_ptr params); ++ static void CreateConnection(std::unique_ptr params); ++ ++ const scoped_refptr task_runner_; ++ const scoped_refptr blocking_task_runner_; ++ // |helper_| lives on the sequence |blocking_task_runner_| posts to and holds ++ // a weak reference back to the service that owns it. ++ std::unique_ptr helper_; ++ base::WeakPtrFactory weak_factory_; ++ ++ DISALLOW_COPY_AND_ASSIGN(HidServiceFreeBSD); ++}; ++ ++} // namespace device ++ ++#endif // DEVICE_HID_HID_SERVICE_FREEBSD_H_ diff --git a/www/chromium/files/patch-services_service__manager_public_cpp_standalone__service_BUILD.gn b/www/chromium/files/patch-services_service__manager_public_cpp_standalone__service_BUILD.gn index fbfb888daaad..d772a1652ebe 100644 --- a/www/chromium/files/patch-services_service__manager_public_cpp_standalone__service_BUILD.gn +++ b/www/chromium/files/patch-services_service__manager_public_cpp_standalone__service_BUILD.gn @@ -1,11 +1,11 @@ ---- services/service_manager/public/cpp/standalone_service/BUILD.gn.orig 2017-04-19 19:06:37 UTC -+++ services/service_manager/public/cpp/standalone_service/BUILD.gn -@@ -23,7 +23,7 @@ source_set("standalone_service") { +--- services/service_manager/public/cpp/standalone_service/BUILD.gn.orig 2018-02-24 16:25:18.000000000 +0100 ++++ services/service_manager/public/cpp/standalone_service/BUILD.gn 2018-03-04 03:48:04.087144000 +0100 +@@ -24,7 +24,7 @@ "//services/service_manager/public/interfaces", ] - if (is_linux && !is_android) { + if (is_linux && !is_android && !is_bsd) { - sources += [ - "linux_sandbox.cc", - "linux_sandbox.h", + deps += [ + "//sandbox/linux:sandbox", + "//sandbox/linux:sandbox_services", diff --git a/www/chromium/files/patch-services_service__manager_public_cpp_standalone__service_standalone__service.cc b/www/chromium/files/patch-services_service__manager_public_cpp_standalone__service_standalone__service.cc index dcda6fa519fe..10367534a60b 100644 --- a/www/chromium/files/patch-services_service__manager_public_cpp_standalone__service_standalone__service.cc +++ b/www/chromium/files/patch-services_service__manager_public_cpp_standalone__service_standalone__service.cc @@ -1,9 +1,9 @@ ---- services/service_manager/public/cpp/standalone_service/standalone_service.cc.orig 2017-06-05 19:03:11 UTC -+++ services/service_manager/public/cpp/standalone_service/standalone_service.cc -@@ -70,6 +70,8 @@ void RunStandaloneService(const StandaloneServiceCallb - *base::CommandLine::ForCurrentProcess(); - if (command_line.HasSwitch(switches::kEnableSandbox)) - sandbox = InitializeSandbox(); +--- services/service_manager/public/cpp/standalone_service/standalone_service.cc.orig 2018-02-24 16:25:18.000000000 +0100 ++++ services/service_manager/public/cpp/standalone_service/standalone_service.cc 2018-03-04 03:53:12.449254000 +0100 +@@ -59,6 +59,8 @@ + command_line.GetSwitchValueASCII(switches::kServiceSandboxType)), + SandboxLinux::PreSandboxHook(), sandbox_options); + } +#elif defined(OS_BSD) + NOTIMPLEMENTED(); #endif diff --git a/www/chromium/files/patch-services_service__manager_sandbox_BUILD.gn b/www/chromium/files/patch-services_service__manager_sandbox_BUILD.gn new file mode 100644 index 000000000000..a1c3f8334fdb --- /dev/null +++ b/www/chromium/files/patch-services_service__manager_sandbox_BUILD.gn @@ -0,0 +1,11 @@ +--- services/service_manager/sandbox/BUILD.gn.orig 2018-03-03 20:51:40.189699000 +0100 ++++ services/service_manager/sandbox/BUILD.gn 2018-03-03 20:51:56.739150000 +0100 +@@ -23,7 +23,7 @@ + deps = [ + "//base", + ] +- if (is_linux) { ++ if (is_linux && !is_bsd) { + sources += [ + "linux/bpf_base_policy_linux.cc", + "linux/bpf_base_policy_linux.h", diff --git a/www/chromium/files/patch-third__party_WebKit_Source_core_html_canvas_CanvasAsyncBlobCreator.cpp b/www/chromium/files/patch-third__party_WebKit_Source_core_html_canvas_CanvasAsyncBlobCreator.cpp new file mode 100644 index 000000000000..8e9be63fa67e --- /dev/null +++ b/www/chromium/files/patch-third__party_WebKit_Source_core_html_canvas_CanvasAsyncBlobCreator.cpp @@ -0,0 +1,11 @@ +--- third_party/WebKit/Source/core/html/canvas/CanvasAsyncBlobCreator.cpp.orig 2018-03-03 21:15:48.546036000 +0100 ++++ third_party/WebKit/Source/core/html/canvas/CanvasAsyncBlobCreator.cpp 2018-03-03 21:16:22.040188000 +0100 +@@ -31,7 +31,7 @@ + 0.001; // a small slack period between deadline and current time for safety + + /* The value is based on user statistics on Nov 2017. */ +-#if (defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN)) ++#if (defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_BSD)) + const double kIdleTaskStartTimeoutDelayMs = 1000.0; + #else + const double kIdleTaskStartTimeoutDelayMs = 4000.0; // For ChromeOS, Mobile diff --git a/www/chromium/files/patch-third__party_WebKit_Source_platform_fonts_FontMetrics.cpp b/www/chromium/files/patch-third__party_WebKit_Source_platform_fonts_FontMetrics.cpp new file mode 100644 index 000000000000..b77685800647 --- /dev/null +++ b/www/chromium/files/patch-third__party_WebKit_Source_platform_fonts_FontMetrics.cpp @@ -0,0 +1,29 @@ +--- third_party/WebKit/Source/platform/fonts/FontMetrics.cpp.orig 2018-03-03 21:17:57.383299000 +0100 ++++ third_party/WebKit/Source/platform/fonts/FontMetrics.cpp 2018-03-03 21:18:37.525253000 +0100 +@@ -38,7 +38,7 @@ + + namespace blink { + +-#if defined(OS_LINUX) || defined(OS_ANDROID) ++#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD) + // This is the largest VDMX table which we'll try to load and parse. + static const size_t kMaxVDMXTableSize = 1024 * 1024; // 1 MB + #endif +@@ -60,7 +60,7 @@ + int vdmx_ascent = 0, vdmx_descent = 0; + bool is_vdmx_valid = false; + +-#if defined(OS_LINUX) || defined(OS_ANDROID) ++#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD) + // Manually digging up VDMX metrics is only applicable when bytecode hinting + // using FreeType. With DirectWrite or CoreText, no bytecode hinting is ever + // done. This code should be pushed into FreeType (hinted font metrics). +@@ -106,7 +106,7 @@ + visual_overflow_inflation_for_ascent = 1; + if (descent < metrics.fDescent) { + visual_overflow_inflation_for_descent = 1; +-#if defined(OS_LINUX) || defined(OS_ANDROID) ++#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD) + // When subpixel positioning is enabled, if the descent is rounded down, + // the descent part of the glyph may be truncated when displayed in a + // 'overflow: hidden' container. To avoid that, borrow 1 unit from the diff --git a/www/chromium/files/patch-third__party_WebKit_Source_platform_fonts_FontPlatformData.cpp b/www/chromium/files/patch-third__party_WebKit_Source_platform_fonts_FontPlatformData.cpp index d4dfece88ebb..e1899e2a20ab 100644 --- a/www/chromium/files/patch-third__party_WebKit_Source_platform_fonts_FontPlatformData.cpp +++ b/www/chromium/files/patch-third__party_WebKit_Source_platform_fonts_FontPlatformData.cpp @@ -1,6 +1,6 @@ ---- third_party/WebKit/Source/platform/fonts/FontPlatformData.cpp.orig 2017-12-15 02:04:47.000000000 +0100 -+++ third_party/WebKit/Source/platform/fonts/FontPlatformData.cpp 2017-12-24 18:18:08.481217000 +0100 -@@ -96,7 +96,7 @@ +--- third_party/WebKit/Source/platform/fonts/FontPlatformData.cpp.orig 2018-02-24 16:25:34.000000000 +0100 ++++ third_party/WebKit/Source/platform/fonts/FontPlatformData.cpp 2018-03-04 03:59:33.369885000 +0100 +@@ -93,7 +93,7 @@ synthetic_italic_(source.synthetic_italic_), avoid_embedded_bitmaps_(source.avoid_embedded_bitmaps_), orientation_(source.orientation_), @@ -9,25 +9,25 @@ style_(source.style_), #endif harf_buzz_face_(nullptr), -@@ -118,7 +118,7 @@ +@@ -115,7 +115,7 @@ synthetic_italic_(src.synthetic_italic_), avoid_embedded_bitmaps_(false), orientation_(src.orientation_), -#if defined(OS_LINUX) || defined(OS_ANDROID) +#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD) - style_(FontRenderStyle::QuerySystem(family_, - text_size_, - typeface_->fontStyle())), -@@ -150,7 +150,7 @@ + style_(FontRenderStyle::QuerySystem( + family_, + text_size_, +@@ -148,7 +148,7 @@ synthetic_italic_(synthetic_italic), avoid_embedded_bitmaps_(false), orientation_(orientation), -#if defined(OS_LINUX) || defined(OS_ANDROID) +#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD) - style_(FontRenderStyle::QuerySystem(family_, - text_size_, - typeface_->fontStyle())), -@@ -196,7 +196,7 @@ + style_(FontRenderStyle::QuerySystem( + family_, + text_size_, +@@ -195,7 +195,7 @@ avoid_embedded_bitmaps_ = other.avoid_embedded_bitmaps_; harf_buzz_face_ = nullptr; orientation_ = other.orientation_; @@ -36,7 +36,7 @@ style_ = other.style_; #endif -@@ -221,7 +221,7 @@ +@@ -220,7 +220,7 @@ synthetic_bold_ == a.synthetic_bold_ && synthetic_italic_ == a.synthetic_italic_ && avoid_embedded_bitmaps_ == a.avoid_embedded_bitmaps_ diff --git a/www/chromium/files/patch-third__party_WebKit_Source_platform_fonts_SimpleFontData.cpp b/www/chromium/files/patch-third__party_WebKit_Source_platform_fonts_SimpleFontData.cpp deleted file mode 100644 index 5c8d70aec659..000000000000 --- a/www/chromium/files/patch-third__party_WebKit_Source_platform_fonts_SimpleFontData.cpp +++ /dev/null @@ -1,29 +0,0 @@ ---- third_party/WebKit/Source/platform/fonts/SimpleFontData.cpp.orig 2017-09-05 21:05:41.000000000 +0200 -+++ third_party/WebKit/Source/platform/fonts/SimpleFontData.cpp 2017-09-06 21:49:52.325872000 +0200 -@@ -56,7 +56,7 @@ - const float kSmallCapsFontSizeMultiplier = 0.7f; - const float kEmphasisMarkFontSizeMultiplier = 0.5f; - --#if defined(OS_LINUX) || defined(OS_ANDROID) -+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD) - // This is the largest VDMX table which we'll try to load and parse. - static const size_t kMaxVDMXTableSize = 1024 * 1024; // 1 MB - #endif -@@ -111,7 +111,7 @@ - int vdmx_ascent = 0, vdmx_descent = 0; - bool is_vdmx_valid = false; - --#if defined(OS_LINUX) || defined(OS_ANDROID) -+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD) - // Manually digging up VDMX metrics is only applicable when bytecode hinting - // using FreeType. With DirectWrite or CoreText, no bytecode hinting is ever - // done. This code should be pushed into FreeType (hinted font metrics). -@@ -160,7 +160,7 @@ - visual_overflow_inflation_for_ascent_ = 1; - if (descent < metrics.fDescent) { - visual_overflow_inflation_for_descent_ = 1; --#if defined(OS_LINUX) || defined(OS_ANDROID) -+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD) - // When subpixel positioning is enabled, if the descent is rounded down, - // the descent part of the glyph may be truncated when displayed in a - // 'overflow: hidden' container. To avoid that, borrow 1 unit from the diff --git a/www/chromium/files/patch-third__party_ots_include_opentype-sanitiser.h b/www/chromium/files/patch-third__party_ots_include_opentype-sanitiser.h deleted file mode 100644 index 295e94d48c37..000000000000 --- a/www/chromium/files/patch-third__party_ots_include_opentype-sanitiser.h +++ /dev/null @@ -1,10 +0,0 @@ ---- third_party/ots/include/opentype-sanitiser.h.orig 2017-04-19 19:06:52 UTC -+++ third_party/ots/include/opentype-sanitiser.h -@@ -22,6 +22,7 @@ typedef unsigned __int64 uint64_t; - #else - #include - #include -+#include - #endif - - #include diff --git a/www/chromium/files/patch-third__party_pdfium_fpdfsdk_javascript_JS__Value.cpp b/www/chromium/files/patch-third__party_pdfium_fpdfsdk_javascript_JS__Value.cpp deleted file mode 100644 index 8c635e844f0a..000000000000 --- a/www/chromium/files/patch-third__party_pdfium_fpdfsdk_javascript_JS__Value.cpp +++ /dev/null @@ -1,15 +0,0 @@ ---- third_party/pdfium/fpdfsdk/javascript/JS_Value.cpp.orig 2017-12-15 02:05:39.000000000 +0100 -+++ third_party/pdfium/fpdfsdk/javascript/JS_Value.cpp 2017-12-24 18:51:32.588224000 +0100 -@@ -37,7 +37,12 @@ - long timezone = 0; - _get_timezone(&timezone); - #endif // _FX_PLATFORM_ == _FX_PLATFORM_WINDOWS_ -+#ifdef __FreeBSD__ -+ struct tm *lt; -+ return (double)(-(lt->tm_gmtoff * 1000)); -+#else - return (double)(-(timezone * 1000)); -+#endif - } - - int GetDaylightSavingTA(double d) { diff --git a/www/chromium/files/patch-third__party_pdfium_fpdfsdk_javascript_PublicMethods.cpp b/www/chromium/files/patch-third__party_pdfium_fpdfsdk_javascript_PublicMethods.cpp deleted file mode 100644 index 7ea931bddc94..000000000000 --- a/www/chromium/files/patch-third__party_pdfium_fpdfsdk_javascript_PublicMethods.cpp +++ /dev/null @@ -1,106 +0,0 @@ ---- third_party/pdfium/fpdfsdk/javascript/PublicMethods.cpp.orig 2017-12-31 05:03:16.422190000 +0100 -+++ third_party/pdfium/fpdfsdk/javascript/PublicMethods.cpp 2017-12-31 05:11:19.941348000 +0100 -@@ -70,6 +70,103 @@ - L"July", L"August", L"September", - L"October", L"November", L"December"}; - -+#if defined(__FreeBSD__) -+/* -+ * cvt.c - IEEE floating point formatting routines for FreeBSD -+ * from GNU libc-4.6.27 -+ */ -+ -+/* -+ * ap_ecvt converts to decimal -+ * the number of digits is specified by ndigit -+ * decpt is set to the position of the decimal point -+ * sign is set to 0 for positive, 1 for negative -+ */ -+ -+#define NDIG 80 -+ -+static char * -+ ap_cvt(double arg, int ndigits, int *decpt, int *sign, int eflag) -+{ -+ register int r2; -+ double fi, fj; -+ register char *p, *p1; -+ static char buf[NDIG]; -+ -+ if (ndigits >= NDIG - 1) -+ ndigits = NDIG - 2; -+ r2 = 0; -+ *sign = 0; -+ p = &buf[0]; -+ if (arg < 0) { -+ *sign = 1; -+ arg = -arg; -+ } -+ arg = modf(arg, &fi); -+ p1 = &buf[NDIG]; -+ /* -+ * Do integer part -+ */ -+ if (fi != 0) { -+ p1 = &buf[NDIG]; -+ while (fi != 0) { -+ fj = modf(fi / 10, &fi); -+ *--p1 = (int) ((fj + .03) * 10) + '0'; -+ r2++; -+ } -+ while (p1 < &buf[NDIG]) -+ *p++ = *p1++; -+ } -+ else if (arg > 0) { -+ while ((fj = arg * 10) < 1) { -+ arg = fj; -+ r2--; -+ } -+ } -+ p1 = &buf[ndigits]; -+ if (eflag == 0) -+ p1 += r2; -+ *decpt = r2; -+ if (p1 < &buf[0]) { -+ buf[0] = '\0'; -+ return (buf); -+ } -+ while (p <= p1 && p < &buf[NDIG]) { -+ arg *= 10; -+ arg = modf(arg, &fj); -+ *p++ = (int) fj + '0'; -+ } -+ if (p1 >= &buf[NDIG]) { -+ buf[NDIG - 1] = '\0'; -+ return (buf); -+ } -+ p = p1; -+ *p1 += 5; -+ while (*p1 > '9') { -+ *p1 = '0'; -+ if (p1 > buf) -+ ++ * --p1; -+ else { -+ *p1 = '1'; -+ (*decpt)++; -+ if (eflag == 0) { -+ if (p > buf) -+ *p = '0'; -+ p++; -+ } -+ } -+ } -+ *p = '\0'; -+ return (buf); -+} -+ -+static char * -+ fcvt(double arg, int ndigits, int *decpt, int *sign) -+{ -+ return (ap_cvt(arg, ndigits, decpt, sign, 0)); -+} -+#endif // defined(__FreeBSD__) -+ - ByteString StrTrim(const ByteString& pStr) { - ByteString result(pStr); - result.TrimLeft(' '); diff --git a/www/chromium/files/patch-third__party_pdfium_fxjs_JS_Define.cpp b/www/chromium/files/patch-third__party_pdfium_fxjs_JS_Define.cpp new file mode 100644 index 000000000000..83a170684d27 --- /dev/null +++ b/www/chromium/files/patch-third__party_pdfium_fxjs_JS_Define.cpp @@ -0,0 +1,15 @@ +--- third_party/pdfium/fxjs/JS_Define.cpp.orig 2018-03-04 04:13:13.591977000 +0100 ++++ third_party/pdfium/fxjs/JS_Define.cpp 2018-03-04 04:14:44.297142000 +0100 +@@ -30,7 +30,12 @@ + long timezone = 0; + _get_timezone(&timezone); + #endif // _FX_PLATFORM_ == _FX_PLATFORM_WINDOWS_ ++#ifdef __FreeBSD__ ++ struct tm *lt; ++ return (double)(-(lt->tm_gmtoff * 1000)); ++#else + return (double)(-(timezone * 1000)); ++#endif + } + + int GetDaylightSavingTA(double d) { diff --git a/www/chromium/files/patch-third__party_pdfium_fxjs_cjs_publicmethods.cpp b/www/chromium/files/patch-third__party_pdfium_fxjs_cjs_publicmethods.cpp new file mode 100644 index 000000000000..5b4f89a585a4 --- /dev/null +++ b/www/chromium/files/patch-third__party_pdfium_fxjs_cjs_publicmethods.cpp @@ -0,0 +1,106 @@ +--- third_party/pdfium/fxjs/cjs_publicmethods.cpp.orig 2018-03-04 04:22:35.417744000 +0100 ++++ third_party/pdfium/fxjs/cjs_publicmethods.cpp 2018-03-04 04:28:41.888908000 +0100 +@@ -70,6 +70,103 @@ + L"July", L"August", L"September", + L"October", L"November", L"December"}; + ++#if defined(__FreeBSD__) ++/* ++ * cvt.c - IEEE floating point formatting routines for FreeBSD ++ * from GNU libc-4.6.27 ++ */ ++ ++/* ++ * ap_ecvt converts to decimal ++ * the number of digits is specified by ndigit ++ * decpt is set to the position of the decimal point ++ * sign is set to 0 for positive, 1 for negative ++ */ ++ ++#define NDIG 80 ++ ++static char * ++ ap_cvt(double arg, int ndigits, int *decpt, int *sign, int eflag) ++{ ++ register int r2; ++ double fi, fj; ++ register char *p, *p1; ++ static char buf[NDIG]; ++ ++ if (ndigits >= NDIG - 1) ++ ndigits = NDIG - 2; ++ r2 = 0; ++ *sign = 0; ++ p = &buf[0]; ++ if (arg < 0) { ++ *sign = 1; ++ arg = -arg; ++ } ++ arg = modf(arg, &fi); ++ p1 = &buf[NDIG]; ++ /* ++ * Do integer part ++ */ ++ if (fi != 0) { ++ p1 = &buf[NDIG]; ++ while (fi != 0) { ++ fj = modf(fi / 10, &fi); ++ *--p1 = (int) ((fj + .03) * 10) + '0'; ++ r2++; ++ } ++ while (p1 < &buf[NDIG]) ++ *p++ = *p1++; ++ } ++ else if (arg > 0) { ++ while ((fj = arg * 10) < 1) { ++ arg = fj; ++ r2--; ++ } ++ } ++ p1 = &buf[ndigits]; ++ if (eflag == 0) ++ p1 += r2; ++ *decpt = r2; ++ if (p1 < &buf[0]) { ++ buf[0] = '\0'; ++ return (buf); ++ } ++ while (p <= p1 && p < &buf[NDIG]) { ++ arg *= 10; ++ arg = modf(arg, &fj); ++ *p++ = (int) fj + '0'; ++ } ++ if (p1 >= &buf[NDIG]) { ++ buf[NDIG - 1] = '\0'; ++ return (buf); ++ } ++ p = p1; ++ *p1 += 5; ++ while (*p1 > '9') { ++ *p1 = '0'; ++ if (p1 > buf) ++ ++ * --p1; ++ else { ++ *p1 = '1'; ++ (*decpt)++; ++ if (eflag == 0) { ++ if (p > buf) ++ *p = '0'; ++ p++; ++ } ++ } ++ } ++ *p = '\0'; ++ return (buf); ++} ++ ++static char * ++ fcvt(double arg, int ndigits, int *decpt, int *sign) ++{ ++ return (ap_cvt(arg, ndigits, decpt, sign, 0)); ++} ++#endif // defined(__FreeBSD__) ++ + template + T StrTrim(const T& str) { + T result = str; diff --git a/www/chromium/files/patch-third__party_webrtc_p2p_base_port.cc b/www/chromium/files/patch-third__party_webrtc_p2p_base_port.cc deleted file mode 100644 index 5856e97178eb..000000000000 --- a/www/chromium/files/patch-third__party_webrtc_p2p_base_port.cc +++ /dev/null @@ -1,11 +0,0 @@ ---- third_party/webrtc/p2p/base/port.cc.orig 2017-12-30 23:29:20.335693000 +0100 -+++ third_party/webrtc/p2p/base/port.cc 2017-12-30 23:29:34.422422000 +0100 -@@ -10,6 +10,8 @@ - - #include "p2p/base/port.h" - -+#include -+ - #include - #include - diff --git a/www/chromium/files/patch-third__party_webrtc_rtc_base_physicalsocketserver.cc b/www/chromium/files/patch-third__party_webrtc_rtc_base_physicalsocketserver.cc index e101905a97ad..b50aeecd72de 100644 --- a/www/chromium/files/patch-third__party_webrtc_rtc_base_physicalsocketserver.cc +++ b/www/chromium/files/patch-third__party_webrtc_rtc_base_physicalsocketserver.cc @@ -1,5 +1,5 @@ ---- third_party/webrtc/rtc_base/physicalsocketserver.cc.orig 2017-09-05 21:06:53.000000000 +0200 -+++ third_party/webrtc/rtc_base/physicalsocketserver.cc 2017-09-07 06:01:51.591383000 +0200 +--- third_party/webrtc/rtc_base/physicalsocketserver.cc.orig 2018-02-24 16:26:17.000000000 +0100 ++++ third_party/webrtc/rtc_base/physicalsocketserver.cc 2018-03-04 04:38:51.589837000 +0100 @@ -60,7 +60,7 @@ #endif // WEBRTC_POSIX @@ -42,6 +42,6 @@ break; -#elif defined(WEBRTC_MAC) || defined(BSD) || defined(__native_client__) +#elif defined(WEBRTC_MAC) || defined(WEBRTC_BSD) || defined(__native_client__) - LOG(LS_WARNING) << "Socket::OPT_DONTFRAGMENT not supported."; + RTC_LOG(LS_WARNING) << "Socket::OPT_DONTFRAGMENT not supported."; return -1; #elif defined(WEBRTC_POSIX) diff --git a/www/chromium/files/patch-third__party_webrtc_system__wrappers_source_atomic32__non__darwin__unix.cc b/www/chromium/files/patch-third__party_webrtc_system__wrappers_source_atomic32__non__darwin__unix.cc deleted file mode 100644 index 7a5081134694..000000000000 --- a/www/chromium/files/patch-third__party_webrtc_system__wrappers_source_atomic32__non__darwin__unix.cc +++ /dev/null @@ -1,11 +0,0 @@ ---- third_party/webrtc/system_wrappers/source/atomic32_non_darwin_unix.cc.orig 2017-04-19 19:07:53 UTC -+++ third_party/webrtc/system_wrappers/source/atomic32_non_darwin_unix.cc -@@ -12,7 +12,7 @@ - - #include - #include --#include -+#include - - #include "webrtc/common_types.h" - diff --git a/www/chromium/files/patch-ui_base_dragdrop_os__exchange__data__provider__factory.cc b/www/chromium/files/patch-ui_base_dragdrop_os__exchange__data__provider__factory.cc index 073cbea2009e..8317eee7ca98 100644 --- a/www/chromium/files/patch-ui_base_dragdrop_os__exchange__data__provider__factory.cc +++ b/www/chromium/files/patch-ui_base_dragdrop_os__exchange__data__provider__factory.cc @@ -1,20 +1,20 @@ ---- ui/base/dragdrop/os_exchange_data_provider_factory.cc.orig 2017-06-05 19:03:30 UTC -+++ ui/base/dragdrop/os_exchange_data_provider_factory.cc -@@ -8,7 +8,7 @@ +--- ui/base/dragdrop/os_exchange_data_provider_factory.cc.orig 2018-02-24 16:25:37.000000000 +0100 ++++ ui/base/dragdrop/os_exchange_data_provider_factory.cc 2018-03-04 04:46:54.356687000 +0100 +@@ -9,7 +9,7 @@ - #if defined(USE_X11) && !defined(OS_CHROMEOS) + #if defined(USE_X11) #include "ui/base/dragdrop/os_exchange_data_provider_aurax11.h" -#elif defined(OS_LINUX) +#elif defined(OS_LINUX) || defined(OS_BSD) #include "ui/base/dragdrop/os_exchange_data_provider_aura.h" #elif defined(OS_MACOSX) #include "ui/base/dragdrop/os_exchange_data_provider_builder_mac.h" -@@ -42,7 +42,7 @@ OSExchangeDataProviderFactory::CreateProvider() { +@@ -43,7 +43,7 @@ - #if defined(USE_X11) && !defined(OS_CHROMEOS) - return base::MakeUnique(); + #if defined(USE_X11) + return std::make_unique(); -#elif defined(OS_LINUX) +#elif defined(OS_LINUX) || defined(OS_BSD) - return base::MakeUnique(); + return std::make_unique(); #elif defined(OS_MACOSX) return ui::BuildOSExchangeDataProviderMac(); diff --git a/www/chromium/files/patch-ui_base_ime_input__method__factory.cc b/www/chromium/files/patch-ui_base_ime_input__method__factory.cc deleted file mode 100644 index cf4f5889f88a..000000000000 --- a/www/chromium/files/patch-ui_base_ime_input__method__factory.cc +++ /dev/null @@ -1,22 +0,0 @@ ---- ui/base/ime/input_method_factory.cc.orig 2017-06-05 19:03:30 UTC -+++ ui/base/ime/input_method_factory.cc -@@ -16,7 +16,8 @@ - #include "ui/base/ime/input_method_win.h" - #elif defined(OS_MACOSX) - #include "ui/base/ime/input_method_mac.h" --#elif defined(USE_AURA) && defined(OS_LINUX) && defined(USE_X11) -+#elif defined(USE_AURA) && (defined(OS_LINUX) || defined(OS_BSD)) && \ -+ defined(USE_X11) - #include "ui/base/ime/input_method_auralinux.h" - #elif defined(OS_ANDROID) - #include "ui/base/ime/input_method_android.h" -@@ -60,7 +61,8 @@ std::unique_ptr CreateInputMethod( - return base::MakeUnique(delegate, widget); - #elif defined(OS_MACOSX) - return base::MakeUnique(delegate); --#elif defined(USE_AURA) && defined(OS_LINUX) && defined(USE_X11) -+#elif defined(USE_AURA) && (defined(OS_LINUX) || defined(OS_BSD)) && \ -+ defined(USE_X11) - return base::MakeUnique(delegate); - #elif defined(OS_ANDROID) - return base::MakeUnique(delegate); diff --git a/www/chromium/files/patch-ui_gl_gl_bindings_autogen_glx.cc b/www/chromium/files/patch-ui_gl_gl_bindings_autogen_glx.cc index 64b47ac8e463..61ceece285e7 100644 --- a/www/chromium/files/patch-ui_gl_gl_bindings_autogen_glx.cc +++ b/www/chromium/files/patch-ui_gl_gl_bindings_autogen_glx.cc @@ -1,14 +1,6 @@ ---- ui/gl/gl_bindings_autogen_glx.cc.orig 2017-12-15 02:04:52.000000000 +0100 -+++ ui/gl/gl_bindings_autogen_glx.cc 2017-12-30 20:41:29.231707000 +0100 -@@ -73,6 +73,7 @@ - fn.glXGetFBConfigsFn = reinterpret_cast( - GetGLProcAddress("glXGetFBConfigs")); - fn.glXGetMscRateOMLFn = 0; -+ fn.glXGetProcAddressARBFn = 0; - fn.glXGetSelectedEventFn = reinterpret_cast( - GetGLProcAddress("glXGetSelectedEvent")); - fn.glXGetSyncValuesOMLFn = 0; -@@ -120,6 +121,8 @@ +--- ui/gl/gl_bindings_autogen_glx.cc.orig 2018-02-24 16:25:37.000000000 +0100 ++++ ui/gl/gl_bindings_autogen_glx.cc 2018-03-04 04:53:49.532617000 +0100 +@@ -115,6 +115,8 @@ ext.b_GLX_ARB_create_context = HasExtension(extensions, "GLX_ARB_create_context"); @@ -17,7 +9,7 @@ ext.b_GLX_EXT_swap_control = HasExtension(extensions, "GLX_EXT_swap_control"); ext.b_GLX_EXT_texture_from_pixmap = HasExtension(extensions, "GLX_EXT_texture_from_pixmap"); -@@ -147,6 +150,11 @@ +@@ -142,6 +144,11 @@ GetGLProcAddress("glXCreateContextAttribsARB")); } @@ -29,7 +21,7 @@ if (ext.b_GLX_SGIX_fbconfig) { fn.glXGetFBConfigFromVisualSGIXFn = reinterpret_cast( -@@ -348,6 +356,10 @@ +@@ -343,6 +350,10 @@ return driver_->fn.glXGetMscRateOMLFn(dpy, drawable, numerator, denominator); } @@ -40,7 +32,7 @@ void GLXApiBase::glXGetSelectedEventFn(Display* dpy, GLXDrawable drawable, unsigned long* mask) { -@@ -648,6 +660,11 @@ +@@ -643,6 +654,11 @@ return glx_api_->glXGetMscRateOMLFn(dpy, drawable, numerator, denominator); } @@ -52,7 +44,7 @@ void TraceGLXApi::glXGetSelectedEventFn(Display* dpy, GLXDrawable drawable, unsigned long* mask) { -@@ -1070,6 +1087,14 @@ +@@ -1065,6 +1081,14 @@ << static_cast(denominator) << ")"); bool result = glx_api_->glXGetMscRateOMLFn(dpy, drawable, numerator, denominator); diff --git a/www/chromium/files/patch-v8_src_base_platform_platform-posix.cc b/www/chromium/files/patch-v8_src_base_platform_platform-posix.cc index de30e63c44d0..7577a15bfbcb 100644 --- a/www/chromium/files/patch-v8_src_base_platform_platform-posix.cc +++ b/www/chromium/files/patch-v8_src_base_platform_platform-posix.cc @@ -1,17 +1,6 @@ ---- v8/src/base/platform/platform-posix.cc.orig 2017-06-05 19:04:29 UTC -+++ v8/src/base/platform/platform-posix.cc -@@ -27,6 +27,10 @@ - #include // NOLINT, for sysctl - #endif - -+#if V8_OS_NETBSD -+#include // for _lwp_self -+#endif -+ - #undef MAP_TYPE - - #if defined(ANDROID) && !defined(V8_ANDROID_LOG_STDOUT) -@@ -354,6 +358,12 @@ int OS::GetCurrentThreadId() { +--- v8/src/base/platform/platform-posix.cc.orig 2018-02-24 16:26:18.000000000 +0100 ++++ v8/src/base/platform/platform-posix.cc 2018-03-04 05:02:38.985674000 +0100 +@@ -459,6 +459,12 @@ return static_cast(syscall(__NR_gettid)); #elif V8_OS_ANDROID return static_cast(gettid()); @@ -23,4 +12,4 @@ + return static_cast(_lwp_self()); #elif V8_OS_AIX return static_cast(thread_self()); - #elif V8_OS_SOLARIS + #elif V8_OS_FUCHSIA diff --git a/www/chromium/files/patch-v8_src_globals.h b/www/chromium/files/patch-v8_src_globals.h index 9a7583ab580c..4b344dfa7bd9 100644 --- a/www/chromium/files/patch-v8_src_globals.h +++ b/www/chromium/files/patch-v8_src_globals.h @@ -5,7 +5,7 @@ const size_t kCodeRangeAreaAlignment = 64 * KB; // OS page on PPC Linux #else +#if defined(__FreeBSD__) -+const size_t kMaximalCodeRangeSize = 256 * MB; ++const size_t kMaximalCodeRangeSize = 512 * MB; +#else const size_t kMaximalCodeRangeSize = 512 * MB; +#endif -- cgit v1.2.3