diff --git a/www/chromium/Makefile b/www/chromium/Makefile index ab5a34ab648a..417f0653e2d3 100644 --- a/www/chromium/Makefile +++ b/www/chromium/Makefile @@ -1,354 +1,359 @@ # Created by: Florent Thoumie PORTNAME= chromium -PORTVERSION= 89.0.4389.128 +PORTVERSION= 90.0.4430.85 CATEGORIES= www java MASTER_SITES= https://commondatastorage.googleapis.com/chromium-browser-official/ \ LOCAL/rene/chromium/:fonts DISTFILES= ${DISTNAME}${EXTRACT_SUFX} MAINTAINER= chromium@FreeBSD.org COMMENT= Google web browser based on WebKit LICENSE= BSD3CLAUSE LGPL21 MPL11 LICENSE_COMB= multi BROKEN_FreeBSD_11_aarch64= components/safe_browsing_db/v4_rice.cc:120:18: use of overloaded operator '&' is ambiguous ONLY_FOR_ARCHS= aarch64 amd64 i386 BUILD_DEPENDS= bash:shells/bash \ ${PYTHON_PKGNAMEPREFIX}Jinja2>0:devel/py-Jinja2@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}ply>0:devel/py-ply@${PY_FLAVOR} \ gperf:devel/gperf \ ffmpeg>=3.2.2,1:multimedia/ffmpeg \ flock:sysutils/flock \ node:www/node \ xcb-proto>0:x11/xcb-proto \ ${LOCALBASE}/bin/ar:devel/binutils \ ${LOCALBASE}/include/linux/videodev2.h:multimedia/v4l_compat \ ${LOCALBASE}/share/usbids/usb.ids:misc/usbids \ ${PYTHON_PKGNAMEPREFIX}html5lib>0:www/py-html5lib@${PY_FLAVOR} \ ${LOCALBASE}/include/va/va.h:multimedia/libva LIB_DEPENDS= libatk-bridge-2.0.so:accessibility/at-spi2-atk \ libatspi.so:accessibility/at-spi2-core \ libspeechd.so:accessibility/speech-dispatcher \ libsnappy.so:archivers/snappy \ libFLAC.so:audio/flac \ libopus.so:audio/opus \ libspeex.so:audio/speex \ libdbus-1.so:devel/dbus \ libdbus-glib-1.so:devel/dbus-glib \ libicuuc.so:devel/icu \ libjsoncpp.so:devel/jsoncpp \ libpci.so:devel/libpci \ libnspr4.so:devel/nspr \ libre2.so:devel/re2 \ libcairo.so:graphics/cairo \ libdrm.so:graphics/libdrm \ libexif.so:graphics/libexif \ libpng.so:graphics/png \ libwebp.so:graphics/webp \ libavcodec.so:multimedia/ffmpeg \ libopenh264.so:multimedia/openh264 \ libfreetype.so:print/freetype2 \ libharfbuzz.so:print/harfbuzz \ libharfbuzz-icu.so:print/harfbuzz-icu \ libgcrypt.so:security/libgcrypt \ libsecret-1.so:security/libsecret \ libnss3.so:security/nss \ libexpat.so:textproc/expat2 \ libfontconfig.so:x11-fonts/fontconfig \ libxkbcommon.so:x11/libxkbcommon \ libxshmfence.so:x11/libxshmfence RUN_DEPENDS= xdg-open:devel/xdg-utils \ noto-basic>0:x11-fonts/noto-basic USES= bison compiler:c++17-lang cpe desktop-file-utils dos2unix gl gnome jpeg localbase:ldflags \ ninja perl5 pkgconfig python:2.7,build shebangfix tar:xz xorg CPE_VENDOR= google CPE_PRODUCT= chrome DOS2UNIX_FILES= third_party/skia/third_party/vulkanmemoryallocator/include/vk_mem_alloc.h USE_GL= gbm gl USE_GNOME= atk dconf glib20 gtk30 libxml2 libxslt INSTALLS_ICONS= yes USE_LDCONFIG= ${DATADIR} USE_PERL5= build USE_XORG= x11 xcb xcomposite xcursor xext xdamage xfixes xi \ xorgproto xrandr xrender xscrnsaver xtst SHEBANG_FILES= chrome/tools/build/linux/chrome-wrapper buildtools/linux64/clang-format MAKE_ARGS= -C out/${BUILDTYPE} ALL_TARGET= chrome BINARY_ALIAS= python=${PYTHON_CMD} EXTRA_PATCHES+= ${FILESDIR}/extra-patch-clang # TODO bz@ : install libwidevinecdm.so (see third_party/widevine/cdm/BUILD.gn) # # Run "./out/${BUILDTYPE}/gn args out/${BUILDTYPE} --list" for all variables. # Some parts don't have use_system_* flag, and can be turned on/off by using # replace_gn_files.py script, some parts just turned on/off for target host # OS "target_os == is_bsd", like libusb, libpci. GN_ARGS+= clang_use_chrome_plugins=false \ enable_hangout_services_extension=true \ enable_nacl=false \ enable_one_click_signin=true \ enable_remoting=false \ fieldtrial_testing_like_official_build=true \ is_clang=true \ toolkit_views=true \ treat_warnings_as_errors=false \ use_allocator="none" \ use_allocator_shim=false \ use_aura=true \ use_custom_libcxx=false \ use_gnome_keyring=false \ use_lld=true \ use_sysroot=false \ use_system_freetype=true \ use_system_harfbuzz=true \ use_system_libjpeg=true \ extra_cxxflags="${CXXFLAGS}" \ extra_ldflags="${LDFLAGS}" # TODO: investigate building with these options: # use_system_minigbm GN_BOOTSTRAP_FLAGS= --no-clean --no-rebuild --skip-generate-buildfiles # FreeBSD Chromium Api Key # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys . # Note: these are for FreeBSD use ONLY. For your own distribution, # please get your own set of keys. GN_ARGS+= google_api_key="AIzaSyBsp9n41JLW8jCokwn7vhoaMejDFRd1mp8" SUB_FILES= chromium-browser.desktop chrome SUB_LIST+= COMMENT="${COMMENT}" OPTIONS_DEFINE= CODECS CUPS DEBUG DRIVER KERBEROS LTO TEST OPTIONS_DEFAULT= CODECS CUPS DRIVER KERBEROS SNDIO OPTIONS_GROUP= AUDIO OPTIONS_GROUP_AUDIO= ALSA PULSEAUDIO SNDIO OPTIONS_RADIO= KERBEROS OPTIONS_RADIO_KERBEROS= HEIMDAL HEIMDAL_BASE MIT OPTIONS_SUB= yes CODECS_DESC= Compile and enable patented codecs like H.264 DRIVER_DESC= Install chromedriver HEIMDAL_BASE_DESC= Heimdal Kerberos (base) HEIMDAL_DESC= Heimdal Kerberos (security/heimdal) MIT_DESC= MIT Kerberos (security/krb5) ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib ALSA_RUN_DEPENDS= ${LOCALBASE}/lib/alsa-lib/libasound_module_pcm_oss.so:audio/alsa-plugins \ alsa-lib>=1.1.1_1:audio/alsa-lib ALSA_VARS= GN_ARGS+=use_alsa=true ALSA_VARS_OFF= GN_ARGS+=use_alsa=false CODECS_VARS= GN_ARGS+=ffmpeg_branding="Chrome" \ GN_ARGS+=proprietary_codecs=true CODECS_VARS_OFF= GN_ARGS+=ffmpeg_branding="Chromium" \ GN_ARGS+=proprietary_codecs=false CUPS_LIB_DEPENDS= libcups.so:print/cups CUPS_VARS= GN_ARGS+=use_cups=true CUPS_VARS_OFF= GN_ARGS+=use_cups=false DEBUG_VARS= BUILDTYPE=Debug \ GN_ARGS+=is_debug=true \ GN_ARGS+=is_component_build=false \ GN_ARGS+=symbol_level=1 \ GN_BOOTSTRAP_FLAGS+=--debug \ WANTSPACE="13 GB" DEBUG_VARS_OFF= BUILDTYPE=Release \ GN_ARGS+=blink_symbol_level=0 \ GN_ARGS+=is_debug=false \ GN_ARGS+=is_official_build=true \ GN_ARGS+=symbol_level=0 \ WANTSPACE="6.5 GB" DRIVER_MAKE_ARGS= chromedriver HEIMDAL_LIB_DEPENDS= libkrb.so.26:security/heimdal KERBEROS_VARS= GN_ARGS+=use_kerberos=true KERBEROS_VARS_OFF= GN_ARGS+=use_kerberos=false LTO_VARS= GN_ARGS+=use_thin_lto=true \ GN_ARGS+=thin_lto_enable_optimizations=true \ WANTSPACE="14 GB" MIT_LIB_DEPENDS= libkrb.so.3:security/krb5 PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio PULSEAUDIO_VARS= GN_ARGS+=use_pulseaudio=true PULSEAUDIO_VARS_OFF= GN_ARGS+=use_pulseaudio=false # With SNDIO=on we exclude audio_manager_linux from the build (see # media/audio/BUILD.gn) and use audio_manager_openbsd which does not # support falling back to ALSA or PulseAudio. SNDIO_PREVENTS= ALSA PULSEAUDIO SNDIO_LIB_DEPENDS= libsndio.so:audio/sndio SNDIO_VARS= GN_ARGS+=use_sndio=true SNDIO_VARS_OFF= GN_ARGS+=use_sndio=false .include "Makefile.tests" TEST_DISTFILES= ${PORTNAME}-${DISTVERSION}-testdata${EXTRACT_SUFX} \ test_fonts-85${EXTRACT_SUFX}:fonts TEST_ALL_TARGET= ${TEST_TARGETS} .include .include .if ${PORT_OPTIONS:MHEIMDAL_BASE} && !exists(/usr/lib/libkrb5.so) IGNORE= you have selected HEIMDAL_BASE but do not have Heimdal installed in base .endif .if ${COMPILER_VERSION} < 120 EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-build_config_compiler_pgo_pgo.gni .if ${PORT_OPTIONS:MLTO} BROKEN+= does not build with LTO needs LLVM 12+ .endif .endif # swiftshader/lib/{libEGL.so,libGLESv2.so} is x86 only .if ${ARCH} == aarch64 PLIST_SUB+= NOT_AARCH64="@comment " .else PLIST_SUB+= NOT_AARCH64="" .endif # Make better javascript with java JAVA_BUILD= yes JAVA_VERSION= 1.8 USE_JAVA= yes # Allow relocations against read-only segments (override lld default) LDFLAGS_i386= -Wl,-znotext # TODO: -isystem, would be just as ugly as this approach, but more reliably # build would fail without C_INCLUDE_PATH/CPLUS_INCLUDE_PATH env var set. MAKE_ENV+= C_INCLUDE_PATH=${LOCALBASE}/include \ CPLUS_INCLUDE_PATH=${LOCALBASE}/include pre-everything:: @${ECHO_MSG} @${ECHO_MSG} "To build Chromium, you should have around 2GB of memory" @${ECHO_MSG} "and around ${WANTSPACE} of free disk space." @${ECHO_MSG} post-extract-TEST-on: @${MKDIR} ${WRKSRC}/third_party/test_fonts/test_fonts @${MV} ${WRKDIR}/test_fonts ${WRKSRC}/third_party/test_fonts/ +post-patch: + @${CP} ${FILESDIR}/dir_reader_freebsd.h ${WRKSRC}/base/files + @${CP} ${FILESDIR}/device_info_fetcher_freebsd.h ${WRKSRC}/chrome/browser/enterprise/signals + @${CP} ${FILESDIR}/device_info_fetcher_freebsd.cc ${WRKSRC}/chrome/browser/enterprise/signals + post-patch-SNDIO-on: @${MKDIR} ${WRKSRC}/media/audio/sndio ${WRKSRC}/media/audio/openbsd @${CP} ${FILESDIR}/sndio_output.* ${WRKSRC}/media/audio/sndio @${CP} ${FILESDIR}/sndio_input.* ${WRKSRC}/media/audio/sndio @${CP} ${FILESDIR}/audio_manager_openbsd.* ${WRKSRC}/media/audio/openbsd pre-configure: # We used to remove bundled libraries to be sure that chromium uses # system libraries and not shipped ones. # cd ${WRKSRC} && ${PYTHON_CMD} \ #./build/linux/unbundle/remove_bundled_libraries.py [list of preserved] cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} ${PYTHON_CMD} \ ./build/linux/unbundle/replace_gn_files.py --system-libraries \ ffmpeg flac fontconfig freetype harfbuzz-ng libdrm libpng libwebp libxml libxslt openh264 opus snappy || ${FALSE} # We need the site package from xcbgen, which installs as python3.x (really: default version), while the chromium # build still needs to use python2.7. It works, because xcbgen can run with both versions, but we want to avoid # having the pre-compiled pyc files from 2.7 in the 3.x site packages # Remove this as soon as chromium uses python3.x as well @${MKDIR} ${WRKDIR}/site-packages/xcbgen ${CP} ${PYTHONBASE}/lib/python${PYTHON_DEFAULT}/site-packages/xcbgen/*.py \ ${WRKDIR}/site-packages/xcbgen do-configure: # GN generator bootstrapping and generating ninja files cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} CC=${CC} CXX=${CXX} LD=${CXX} \ READELF=${READELF} AR=${AR} NM=${NM} ${PYTHON_CMD} \ ./tools/gn/bootstrap/bootstrap.py ${GN_BOOTSTRAP_FLAGS} cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} ./out/${BUILDTYPE}/gn \ gen --args='${GN_ARGS}' out/${BUILDTYPE} # Setup nodejs dependency @${MKDIR} ${WRKSRC}/third_party/node/freebsd/node-freebsd-x64/bin ${LN} -sf ${LOCALBASE}/bin/node ${WRKSRC}/third_party/node/freebsd/node-freebsd-x64/bin/node # Setup java dependency on amd64 and i386 .if ${ARCH} == amd64 || ${ARCH} == i386 @${MKDIR} ${WRKDIR}/bin ${LN} -sf ${LOCALBASE}/openjdk8/bin/java ${WRKDIR}/bin/java .endif # Setup buildtools/freebsd @${MKDIR} ${WRKSRC}/buildtools/freebsd ${LN} -sf ${WRKSRC}/buildtools/linux64/clang-format ${WRKSRC}/buildtools/freebsd ${LN} -sf ${WRKSRC}/out/${BUILDTYPE}/gn ${WRKSRC}/buildtools/freebsd do-install: @${MKDIR} ${STAGEDIR}${DATADIR} ${INSTALL_MAN} ${WRKSRC}/chrome/app/resources/manpage.1.in \ ${STAGEDIR}${MANPREFIX}/man/man1/chrome.1 ${CP} ${WRKSRC}/chrome/app/theme/chromium/product_logo_22_mono.png ${WRKSRC}/chrome/app/theme/chromium/product_logo_22.png .for s in 22 24 48 64 128 256 @${MKDIR} ${STAGEDIR}${PREFIX}/share/icons/hicolor/${s}x${s}/apps ${INSTALL_DATA} ${WRKSRC}/chrome/app/theme/chromium/product_logo_${s}.png \ ${STAGEDIR}${PREFIX}/share/icons/hicolor/${s}x${s}/apps/chrome.png .endfor ${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/*.png ${STAGEDIR}${DATADIR} ${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/*.pak ${STAGEDIR}${DATADIR} .for d in protoc mksnapshot ${INSTALL_PROGRAM} ${WRKSRC}/out/${BUILDTYPE}/${d} ${STAGEDIR}${DATADIR} .endfor .for d in icudtl.dat snapshot_blob.bin v8_context_snapshot.bin ${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/${d} ${STAGEDIR}${DATADIR} .endfor ${INSTALL_PROGRAM} ${WRKSRC}/out/${BUILDTYPE}/chrome \ ${STAGEDIR}${DATADIR} cd ${WRKSRC}/out/${BUILDTYPE} && \ ${COPYTREE_SHARE} "locales resources" ${STAGEDIR}${DATADIR} @${MKDIR} ${STAGEDIR}${DESKTOPDIR} ${INSTALL_DATA} ${WRKDIR}/chromium-browser.desktop \ ${STAGEDIR}${DESKTOPDIR} ${INSTALL_SCRIPT} ${WRKDIR}/chrome ${STAGEDIR}${PREFIX}/bin ${INSTALL_SCRIPT} ${WRKSRC}/chrome/tools/build/linux/chrome-wrapper \ ${STAGEDIR}${DATADIR} # ANGLE, EGL, Vk .for f in libEGL.so libGLESv2.so libVkICD_mock_icd.so ${INSTALL_LIB} ${WRKSRC}/out/${BUILDTYPE}/${f} ${STAGEDIR}${DATADIR} .endfor .if ${BUILDTYPE} == Debug ${INSTALL_LIB} ${WRKSRC}/out/${BUILDTYPE}/libVkLayer_khronos_validation.so ${STAGEDIR}${DATADIR} .endif # SwiftShader .if ${ARCH} != aarch64 @${MKDIR} ${STAGEDIR}${DATADIR}/swiftshader ${INSTALL_LIB} ${WRKSRC}/out/${BUILDTYPE}/libvk_swiftshader.so ${STAGEDIR}${DATADIR} .for g in libEGL.so libGLESv2.so ${INSTALL_LIB} ${WRKSRC}/out/${BUILDTYPE}/swiftshader/${g} \ ${STAGEDIR}${DATADIR}/swiftshader .endfor .endif post-install-DEBUG-on: ${INSTALL_LIB} ${WRKSRC}/out/${BUILDTYPE}/*.so \ ${STAGEDIR}${DATADIR} ${INSTALL_LIB} ${WRKSRC}/out/${BUILDTYPE}/libvulkan.so.1 \ ${STAGEDIR}${DATADIR} ${INSTALL_PROGRAM} ${WRKSRC}/out/${BUILDTYPE}/character_data_generator \ ${STAGEDIR}${DATADIR} post-install-DRIVER-on: ${INSTALL_PROGRAM} ${WRKSRC}/out/${BUILDTYPE}/chromedriver \ ${STAGEDIR}${PREFIX}/bin do-test-TEST-on: .for t in ${TEST_TARGETS} cd ${WRKSRC}/out/${BUILDTYPE} && ${SETENV} LC_ALL=en_US.UTF-8 \ ./${t} --gtest_filter=-${EXCLUDE_${t}:ts:} || ${TRUE} .endfor .include diff --git a/www/chromium/distinfo b/www/chromium/distinfo index 7ff96a7b775e..54003ce76238 100644 --- a/www/chromium/distinfo +++ b/www/chromium/distinfo @@ -1,7 +1,7 @@ -TIMESTAMP = 1618388739 -SHA256 (chromium-89.0.4389.128.tar.xz) = 1a75ea6aeb98f2d3b6feae1fbf5692679e93d5b7631bc7c762dd873499deda5b -SIZE (chromium-89.0.4389.128.tar.xz) = 890850492 -SHA256 (chromium-89.0.4389.128-testdata.tar.xz) = 03f16939f3fc8182a0f306abf1e6c801e2e6fd11533d18787c05c852cbec46bd -SIZE (chromium-89.0.4389.128-testdata.tar.xz) = 257707276 +TIMESTAMP = 1619007272 +SHA256 (chromium-90.0.4430.85.tar.xz) = 01c5594d4b7eaa67e00b4fa16ae0c9d35ec5917467abd387ba1b5cc332d44922 +SIZE (chromium-90.0.4430.85.tar.xz) = 917373872 +SHA256 (chromium-90.0.4430.85-testdata.tar.xz) = c2434c60103a0eff9cc449ddb7ddfd146560f0b6a7e8a8af9df728190fde9fda +SIZE (chromium-90.0.4430.85-testdata.tar.xz) = 256581788 SHA256 (test_fonts-85.tar.xz) = f22b61b3639acb147c98ec2e2305d8b96f0b55c8c74c40e2ea696402fae8cef9 SIZE (test_fonts-85.tar.xz) = 9511984 diff --git a/www/chromium/files/device_info_fetcher_freebsd.cc b/www/chromium/files/device_info_fetcher_freebsd.cc new file mode 100644 index 000000000000..021bc035966b --- /dev/null +++ b/www/chromium/files/device_info_fetcher_freebsd.cc @@ -0,0 +1,143 @@ +// Copyright 2020 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 "chrome/browser/enterprise/signals/device_info_fetcher_freebsd.h" + +#if defined(USE_GIO) +#include +#endif // defined(USE_GIO) +#include +#include +#include +#include +#include + +#include + +#include "base/environment.h" +#include "base/files/dir_reader_posix.h" +#include "base/files/file.h" +#include "base/files/file_util.h" +#include "base/nix/xdg_util.h" +#include "base/strings/string_split.h" +#include "base/strings/string_util.h" +#include "base/strings/stringprintf.h" +#include "base/system/sys_info.h" +#include "net/base/network_interfaces.h" + +using SettingValue = enterprise_signals::DeviceInfo::SettingValue; + +namespace enterprise_signals { + +namespace { + +std::string GetDeviceModel() { + return base::SysInfo::HardwareModelName(); +} + +std::string GetOsVersion() { + return base::SysInfo::OperatingSystemVersion(); +} + +std::string GetDeviceHostName() { + return net::GetHostName(); +} + +std::string GetSerialNumber() { + return std::string(); +} + +// Implements the logic from the native client setup script. It reads the +// setting value straight from gsettings but picks the schema relevant to the +// currently active desktop environment. +// The current implementation support Gnone and Cinnamon only. +SettingValue GetScreenlockSecured() { +#if defined(USE_GIO) + static constexpr char kLockScreenKey[] = "lock-enabled"; + + std::unique_ptr env(base::Environment::Create()); + const base::nix::DesktopEnvironment desktop_env = + base::nix::GetDesktopEnvironment(env.get()); + if (desktop_env != base::nix::DESKTOP_ENVIRONMENT_CINNAMON && + desktop_env != base::nix::DESKTOP_ENVIRONMENT_GNOME) { + return SettingValue::UNKNOWN; + } + + const std::string settings_schema = base::StringPrintf( + "org.%s.desktop.screensaver", + desktop_env == base::nix::DESKTOP_ENVIRONMENT_CINNAMON ? "cinnamon" + : "gnome"); + + GSettingsSchema* screensaver_schema = g_settings_schema_source_lookup( + g_settings_schema_source_get_default(), settings_schema.c_str(), FALSE); + GSettings* screensaver_settings = nullptr; + if (!screensaver_schema || + !g_settings_schema_has_key(screensaver_schema, kLockScreenKey)) { + return SettingValue::UNKNOWN; + } + screensaver_settings = g_settings_new(settings_schema.c_str()); + if (!screensaver_settings) + return SettingValue::UNKNOWN; + gboolean lock_screen_enabled = + g_settings_get_boolean(screensaver_settings, kLockScreenKey); + g_object_unref(screensaver_settings); + + return lock_screen_enabled ? SettingValue::ENABLED : SettingValue::DISABLED; +#else + return SettingValue::UNKNOWN; +#endif // defined(USE_GIO) +} + +// Implements the logic from the native host installation script. First find the +// root device identifier, then locate its parent and get its type. +SettingValue GetDiskEncrypted() { + return SettingValue::UNKNOWN; +} + +std::vector GetMacAddresses() { + std::vector result; + struct ifaddrs* ifa = nullptr; + + if (getifaddrs(&ifa) != 0) + return result; + + struct ifaddrs* interface = ifa; + for (; interface != nullptr; interface = interface->ifa_next) { + if (interface->ifa_addr == nullptr || + interface->ifa_addr->sa_family != AF_LINK) { + continue; + } + struct sockaddr_dl* sdl = + reinterpret_cast(interface->ifa_addr); + if (!sdl || sdl->sdl_alen != 6) + continue; + char* link_address = static_cast(LLADDR(sdl)); + result.push_back(base::StringPrintf( + "%02x:%02x:%02x:%02x:%02x:%02x", link_address[0] & 0xff, + link_address[1] & 0xff, link_address[2] & 0xff, link_address[3] & 0xff, + link_address[4] & 0xff, link_address[5] & 0xff)); + } + return result; +} + +} // namespace + +DeviceInfoFetcherFreeBSD::DeviceInfoFetcherFreeBSD() = default; + +DeviceInfoFetcherFreeBSD::~DeviceInfoFetcherFreeBSD() = default; + +DeviceInfo DeviceInfoFetcherFreeBSD::Fetch() { + DeviceInfo device_info; + device_info.os_name = "freebsd"; + device_info.os_version = GetOsVersion(); + device_info.device_host_name = GetDeviceHostName(); + device_info.device_model = GetDeviceModel(); + device_info.serial_number = GetSerialNumber(); + device_info.screen_lock_secured = GetScreenlockSecured(); + device_info.disk_encrypted = GetDiskEncrypted(); + device_info.mac_addresses = GetMacAddresses(); + return device_info; +} + +} // namespace enterprise_signals diff --git a/www/chromium/files/device_info_fetcher_freebsd.h b/www/chromium/files/device_info_fetcher_freebsd.h new file mode 100644 index 000000000000..2cd2f213f828 --- /dev/null +++ b/www/chromium/files/device_info_fetcher_freebsd.h @@ -0,0 +1,26 @@ +// Copyright 2021 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 CHROME_BROWSER_ENTERPRISE_SIGNALS_DEVICE_INFO_FETCHER_FREEBSD_H_ +#define CHROME_BROWSER_ENTERPRISE_SIGNALS_DEVICE_INFO_FETCHER_FREEBSD_H_ + +#include "chrome/browser/enterprise/signals/device_info_fetcher.h" + +namespace enterprise_signals { + +// FreeBSD implementation of DeviceInfoFetcher. +class DeviceInfoFetcherFreeBSD : public DeviceInfoFetcher { + public: + DeviceInfoFetcherFreeBSD(); + DeviceInfoFetcherFreeBSD(const DeviceInfoFetcherFreeBSD&) = delete; + DeviceInfoFetcherFreeBSD& operator=(const DeviceInfoFetcherFreeBSD&) = delete; + ~DeviceInfoFetcherFreeBSD() override; + + // Overrides DeviceInfoFetcher: + DeviceInfo Fetch() override; +}; + +} // namespace enterprise_signals + +#endif // CHROME_BROWSER_ENTERPRISE_SIGNALS_DEVICE_INFO_FETCHER_FREEBSD_H_ diff --git a/www/chromium/files/dir_reader_freebsd.h b/www/chromium/files/dir_reader_freebsd.h new file mode 100644 index 000000000000..7be73f000577 --- /dev/null +++ b/www/chromium/files/dir_reader_freebsd.h @@ -0,0 +1,95 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef BASE_FILES_DIR_READER_FREEBSD_H_ +#define BASE_FILES_DIR_READER_FREEBSD_H_ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "base/logging.h" +#include "base/posix/eintr_wrapper.h" + +// See the comments in dir_reader_posix.h about this. + +namespace base { + +class DirReaderFreeBSD { + public: + explicit DirReaderFreeBSD(const char* directory_path) + : fd_(open(directory_path, O_RDONLY | O_DIRECTORY)), + offset_(0), + size_(0) { + memset(buf_, 0, sizeof(buf_)); + } + + DirReaderFreeBSD(const DirReaderFreeBSD&) = delete; + DirReaderFreeBSD& operator=(const DirReaderFreeBSD&) = delete; + + ~DirReaderFreeBSD() { + if (fd_ >= 0) { + if (IGNORE_EINTR(close(fd_))) + RAW_LOG(ERROR, "Failed to close directory handle"); + } + } + + bool IsValid() const { + return fd_ >= 0; + } + + // Move to the next entry returning false if the iteration is complete. + bool Next() { + if (size_) { + struct dirent* dirent = reinterpret_cast(&buf_[offset_]); + offset_ += dirent->d_reclen; + } + + if (offset_ != size_) + return true; + + ssize_t r = getdents(fd_, buf_, sizeof(buf_)); + if (r == 0) + return false; + if (r == -1) { + DPLOG(FATAL) << "getdents failed"; + return false; + } + size_ = r; + offset_ = 0; + return true; + } + + const char* name() const { + if (!size_) + return nullptr; + + const struct dirent* dirent = + reinterpret_cast(&buf_[offset_]); + return dirent->d_name; + } + + int fd() const { + return fd_; + } + + static bool IsFallback() { + return false; + } + + private: + const int fd_; + alignas(struct dirent) unsigned char buf_[512]; + size_t offset_; + size_t size_; +}; + +} // namespace base + +#endif // BASE_FILES_DIR_READER_LINUX_H_ diff --git a/www/chromium/files/extra-patch-build_config_compiler_pgo_pgo.gni b/www/chromium/files/extra-patch-build_config_compiler_pgo_pgo.gni index 4c4f7d1439f3..158b7269d92f 100644 --- a/www/chromium/files/extra-patch-build_config_compiler_pgo_pgo.gni +++ b/www/chromium/files/extra-patch-build_config_compiler_pgo_pgo.gni @@ -1,11 +1,11 @@ ---- build/config/compiler/pgo/pgo.gni.orig 2021-03-12 23:57:15 UTC +--- build/config/compiler/pgo/pgo.gni.orig 2021-04-20 18:58:23 UTC +++ build/config/compiler/pgo/pgo.gni @@ -16,7 +16,7 @@ declare_args() { # TODO(crbug.com/1052397): Remove chromeos_is_browser_only once # target_os switch for lacros-chrome is completed. (is_win || is_mac || - (is_linux && !chromeos_is_browser_only && !is_chromecast))) { + (is_linux && !chromeos_is_browser_only && !is_chromecast && !is_bsd))) { chrome_pgo_phase = 2 } diff --git a/www/chromium/files/patch-3p-pdfium_3p_base_allocator_partition__allocator_page__allocator__internals__posix.h b/www/chromium/files/patch-3p-pdfium_3p_base_allocator_partition__allocator_page__allocator__internals__posix.h index 500335ed930c..9a2964553490 100644 --- a/www/chromium/files/patch-3p-pdfium_3p_base_allocator_partition__allocator_page__allocator__internals__posix.h +++ b/www/chromium/files/patch-3p-pdfium_3p_base_allocator_partition__allocator_page__allocator__internals__posix.h @@ -1,11 +1,11 @@ ---- third_party/pdfium/third_party/base/allocator/partition_allocator/page_allocator_internals_posix.h.orig 2021-03-13 00:03:39 UTC +--- third_party/pdfium/third_party/base/allocator/partition_allocator/page_allocator_internals_posix.h.orig 2021-04-20 19:05:14 UTC +++ third_party/pdfium/third_party/base/allocator/partition_allocator/page_allocator_internals_posix.h @@ -16,7 +16,7 @@ #if defined(OS_ANDROID) #include #endif -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) #include #include diff --git a/www/chromium/files/patch-BUILD.gn b/www/chromium/files/patch-BUILD.gn index 7c65f0418c97..d1b7c835627e 100644 --- a/www/chromium/files/patch-BUILD.gn +++ b/www/chromium/files/patch-BUILD.gn @@ -1,96 +1,96 @@ ---- BUILD.gn.orig 2021-03-12 23:57:14 UTC +--- BUILD.gn.orig 2021-04-14 18:40:47 UTC +++ BUILD.gn -@@ -421,7 +421,7 @@ group("gn_all") { +@@ -425,7 +425,7 @@ group("gn_all") { ] } - if (is_linux || is_chromeos || is_android) { + if ((is_linux && !is_bsd) || is_chromeos || is_android) { deps += [ "//third_party/breakpad:breakpad_unittests", "//third_party/breakpad:core-2-minidump", -@@ -464,8 +464,6 @@ group("gn_all") { +@@ -468,8 +468,6 @@ group("gn_all") { "//net:disk_cache_memory_test", "//net:quic_client", "//net:quic_server", - "//sandbox/linux:chrome_sandbox", - "//sandbox/linux:sandbox_linux_unittests", "//testing:empty_main", ] -@@ -520,10 +518,6 @@ group("gn_all") { +@@ -524,10 +522,6 @@ group("gn_all") { "//chrome/test:load_library_perf_tests", "//chrome/test:sync_performance_tests", "//chrome/test/chromedriver:chromedriver", - "//courgette:courgette", - "//courgette:courgette_fuzz", - "//courgette:courgette_minimal_tool", - "//courgette:courgette_unittests", "//media/cast:generate_barcode_video", "//media/cast:generate_timecode_audio", "//net:crash_cache", -@@ -582,10 +576,6 @@ group("gn_all") { +@@ -586,10 +580,6 @@ group("gn_all") { "//mojo:mojo_perftests", "//services/service_manager/public/cpp", "//testing/gmock:gmock_main", - "//third_party/breakpad:dump_syms($host_toolchain)", - "//third_party/breakpad:microdump_stackwalk($host_toolchain)", - "//third_party/breakpad:minidump_dump($host_toolchain)", - "//third_party/breakpad:minidump_stackwalk($host_toolchain)", ] if (!is_android) { -@@ -663,7 +653,7 @@ group("gn_all") { +@@ -667,7 +657,7 @@ group("gn_all") { host_os == "win") { deps += [ "//chrome/test/mini_installer:mini_installer_tests" ] } - } else if (!is_android && !is_ios && !is_fuchsia) { + } else if (!is_android && !is_ios && !is_fuchsia && !is_bsd) { deps += [ "//third_party/breakpad:symupload($host_toolchain)" ] } -@@ -678,7 +668,7 @@ group("gn_all") { +@@ -682,7 +672,7 @@ group("gn_all") { } } - if (is_mac || is_win || is_android || is_linux || is_chromeos) { + if (is_mac || is_win || is_android || (is_linux && !is_bsd) || is_chromeos) { deps += [ "//third_party/crashpad/crashpad:crashpad_tests", "//third_party/crashpad/crashpad/handler:crashpad_handler", -@@ -790,7 +780,6 @@ group("gn_all") { +@@ -793,7 +783,6 @@ group("gn_all") { "//chrome/browser/vr:vr_common_perftests", "//chrome/browser/vr:vr_common_unittests", "//chrome/browser/vr:vr_pixeltests", - "//tools/perf/contrib/vr_benchmarks:vr_perf_tests", ] if (is_android) { deps += [ "//chrome/browser/android/vr:vr_android_unittests" ] -@@ -1081,7 +1070,7 @@ if (!is_ios) { +@@ -1086,7 +1075,7 @@ if (!is_ios) { data_deps += [ "//content/web_test:web_test_common_mojom_js_data_deps" ] } - if (!is_win && !is_android) { + if (!is_win && !is_android && !is_bsd) { data_deps += [ "//third_party/breakpad:minidump_stackwalk($host_toolchain)" ] } -@@ -1090,7 +1079,7 @@ if (!is_ios) { +@@ -1095,7 +1084,7 @@ if (!is_ios) { data_deps += [ "//third_party/breakpad:dump_syms($host_toolchain)" ] } - if (is_linux || is_chromeos) { + if ((is_linux && !is_bsd) || is_chromeos) { data_deps += [ "//third_party/breakpad:dump_syms($host_toolchain)" ] } -@@ -1315,9 +1304,6 @@ group("chromium_builder_perf") { +@@ -1321,9 +1310,6 @@ group("chromium_builder_perf") { 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 += [ diff --git a/www/chromium/files/patch-apps_app__restore__service__browsertest.cc b/www/chromium/files/patch-apps_app__restore__service__browsertest.cc index 6ce01dd474f5..25561c8131f0 100644 --- a/www/chromium/files/patch-apps_app__restore__service__browsertest.cc +++ b/www/chromium/files/patch-apps_app__restore__service__browsertest.cc @@ -1,11 +1,11 @@ ---- apps/app_restore_service_browsertest.cc.orig 2021-03-12 23:57:14 UTC +--- apps/app_restore_service_browsertest.cc.orig 2021-04-14 18:40:47 UTC +++ apps/app_restore_service_browsertest.cc @@ -148,7 +148,7 @@ IN_PROC_BROWSER_TEST_F(PlatformAppBrowserTest, FileAcc } // Flaky: crbug.com/269613 -#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_WIN) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_WIN) || defined(OS_BSD) #define MAYBE_FileAccessIsRestored DISABLED_FileAccessIsRestored #else #define MAYBE_FileAccessIsRestored FileAccessIsRestored diff --git a/www/chromium/files/patch-apps_ui_views_app__window__frame__view.cc b/www/chromium/files/patch-apps_ui_views_app__window__frame__view.cc index 62d53b5ad9df..715b413018fa 100644 --- a/www/chromium/files/patch-apps_ui_views_app__window__frame__view.cc +++ b/www/chromium/files/patch-apps_ui_views_app__window__frame__view.cc @@ -1,11 +1,11 @@ ---- apps/ui/views/app_window_frame_view.cc.orig 2021-03-12 23:57:14 UTC +--- apps/ui/views/app_window_frame_view.cc.orig 2021-04-14 18:40:47 UTC +++ apps/ui/views/app_window_frame_view.cc @@ -137,7 +137,7 @@ gfx::Rect AppWindowFrameView::GetWindowBoundsForClient gfx::Rect window_bounds = client_bounds; // TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is // complete. -#if defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) +#if defined(OS_LINUX) || defined(OS_BSD) || BUILDFLAG(IS_CHROMEOS_LACROS) // Get the difference between the widget's client area bounds and window // bounds, and grow |window_bounds| by that amount. gfx::Insets native_frame_insets = diff --git a/www/chromium/files/patch-ash_display_mirror__window__controller.cc b/www/chromium/files/patch-ash_display_mirror__window__controller.cc index ec171e5a8388..86ac55d854fe 100644 --- a/www/chromium/files/patch-ash_display_mirror__window__controller.cc +++ b/www/chromium/files/patch-ash_display_mirror__window__controller.cc @@ -1,14 +1,14 @@ ---- ash/display/mirror_window_controller.cc.orig 2021-03-12 23:57:14 UTC +--- ash/display/mirror_window_controller.cc.orig 2021-04-14 18:40:48 UTC +++ ash/display/mirror_window_controller.cc @@ -286,7 +286,11 @@ void MirrorWindowController::UpdateWindow( return info.id() == iter->first; }) == display_info_list.end()) { CloseAndDeleteHost(iter->second, true); +#if defined(__llvm__) + mirroring_host_info_map_.erase(iter++); +#else iter = mirroring_host_info_map_.erase(iter); +#endif } else { ++iter; } diff --git a/www/chromium/files/patch-base_BUILD.gn b/www/chromium/files/patch-base_BUILD.gn index 9f17ec075005..edc279a61b6b 100644 --- a/www/chromium/files/patch-base_BUILD.gn +++ b/www/chromium/files/patch-base_BUILD.gn @@ -1,94 +1,94 @@ ---- base/BUILD.gn.orig 2021-03-12 23:57:15 UTC +--- base/BUILD.gn.orig 2021-04-14 18:40:48 UTC +++ base/BUILD.gn -@@ -885,7 +885,7 @@ component("base") { +@@ -948,7 +948,7 @@ component("base") { "timer/hi_res_timer_manager_posix.cc", ] - if (!is_nacl && !is_apple) { + if (!is_nacl && !is_apple && !is_bsd) { sources += [ "cpu_affinity_posix.cc", "cpu_affinity_posix.h", -@@ -896,6 +896,11 @@ component("base") { +@@ -959,6 +959,11 @@ component("base") { "profiler/thread_delegate_posix.h", ] } + if (is_bsd) { + sources += [ + "profiler/stack_sampler_posix.cc", + ] + } } if (is_win) { -@@ -1301,7 +1306,7 @@ component("base") { +@@ -1364,7 +1369,7 @@ component("base") { # building inside the cros_sdk environment - use host_toolchain as a # more robust check for this. if (!use_sysroot && - (is_android || ((is_linux || is_chromeos) && !is_chromecast)) && + (is_android || ((is_linux || is_chromeos) && !is_chromecast) && !is_clang) && host_toolchain != "//build/toolchain/cros:host") { libs += [ "atomic" ] } -@@ -1351,7 +1356,7 @@ component("base") { +@@ -1414,7 +1419,7 @@ component("base") { "allocator/allocator_shim_default_dispatch_to_mac_zoned_malloc.cc", ] } - if (is_chromeos || is_linux) { + if ((is_chromeos || is_linux) && !is_bsd) { sources += [ "allocator/allocator_shim_default_dispatch_to_glibc.cc" ] } if (is_win) { -@@ -1978,6 +1983,34 @@ component("base") { +@@ -2045,6 +2050,34 @@ component("base") { } } + if (is_bsd) { + sources -= [ + "files/file_path_watcher_linux.cc", + "files/file_util_linux.cc", + "process/memory_linux.cc", + "process/process_handle_linux.cc", + "process/process_iterator_linux.cc", + "process/process_metrics_linux.cc", + "system/sys_info_linux.cc" + ] + sources += [ + "files/file_path_watcher_freebsd.cc", + "files/file_path_watcher_kqueue.cc", + "files/file_path_watcher_kqueue.h", + "process/memory_stubs.cc", + "process/process_handle_freebsd.cc", + "process/process_iterator_freebsd.cc", + "process/process_metrics_freebsd.cc", + "system/sys_info_freebsd.cc", + ] + libs = [ + "execinfo", # logging.cc + "kvm", # process_metrics_freebsd + "util" # process_metrics_freebsd + ] + } + + # iOS if (is_ios) { sources -= [ -@@ -3130,7 +3163,7 @@ if (build_base_unittests) { +@@ -3231,7 +3264,7 @@ if (build_base_unittests) { } } - if (is_linux || is_chromeos) { + if ((is_linux || is_chromeos) && !is_bsd) { sources += [ "debug/proc_maps_linux_unittest.cc" ] } -@@ -3171,7 +3204,7 @@ if (build_base_unittests) { +@@ -3272,7 +3305,7 @@ if (build_base_unittests) { "posix/unix_domain_socket_unittest.cc", "task/thread_pool/task_tracker_posix_unittest.cc", ] - if (!is_nacl && !is_apple) { + if (!is_nacl && !is_apple && !is_bsd) { sources += [ "cpu_affinity_posix_unittest.cc", "profiler/stack_copier_signal_unittest.cc", diff --git a/www/chromium/files/patch-base_allocator_allocator.gni b/www/chromium/files/patch-base_allocator_allocator.gni index 7db05a57f80a..f3f2ae41d6a1 100644 --- a/www/chromium/files/patch-base_allocator_allocator.gni +++ b/www/chromium/files/patch-base_allocator_allocator.gni @@ -1,11 +1,11 @@ ---- base/allocator/allocator.gni.orig 2021-03-12 23:57:15 UTC +--- base/allocator/allocator.gni.orig 2021-04-14 18:40:48 UTC +++ base/allocator/allocator.gni -@@ -58,7 +58,7 @@ declare_args() { +@@ -60,7 +60,7 @@ declare_args() { # not, and redesign or remove the flag accordingly. We may want to assert a # possible conflict between |use_allocator = "partition"| and # |use_partition_alloc = true| rather than prioritizing use_partition_alloc. - use_partition_alloc = !is_ios # Never use PartitionAlloc on iOS. + use_partition_alloc = !is_ios # Never use PartitionAlloc on iOS. } if (!use_partition_alloc && use_allocator == "partition") { diff --git a/www/chromium/files/patch-base_allocator_allocator__shim__default__dispatch__to__glibc.cc b/www/chromium/files/patch-base_allocator_allocator__shim__default__dispatch__to__glibc.cc index be08a20e6d43..8b020cf5af31 100644 --- a/www/chromium/files/patch-base_allocator_allocator__shim__default__dispatch__to__glibc.cc +++ b/www/chromium/files/patch-base_allocator_allocator__shim__default__dispatch__to__glibc.cc @@ -1,76 +1,76 @@ ---- base/allocator/allocator_shim_default_dispatch_to_glibc.cc.orig 2021-03-12 23:57:15 UTC +--- base/allocator/allocator_shim_default_dispatch_to_glibc.cc.orig 2021-04-14 18:40:48 UTC +++ base/allocator/allocator_shim_default_dispatch_to_glibc.cc @@ -6,18 +6,28 @@ #include "base/compiler_specific.h" #include -#include +#include +#include +#include // This translation unit defines a default dispatch for the allocator shim which // routes allocations to libc functions. -// The code here is strongly inspired from tcmalloc's libc_override_glibc.h. +// The code here is strongly inspired from tcmalloc's override_glibc.h. extern "C" { -void* __libc_malloc(size_t size); -void* __libc_calloc(size_t n, size_t size); -void* __libc_realloc(void* address, size_t size); -void* __libc_memalign(size_t alignment, size_t size); -void __libc_free(void* ptr); +void* __malloc(size_t size); +void* __calloc(size_t n, size_t size); +void* __realloc(void* address, size_t len); +void* __memalign(size_t alignment, size_t size) { + void *ret; + if (__posix_memalign(&ret, alignment, size) != 0) { + return nullptr; + } else { + return ret; + } +} +int __posix_memalign(void **ptr, size_t alignment, size_t size); +void __free(void* ptr); } // extern "C" namespace { @@ -25,32 +35,32 @@ namespace { using base::allocator::AllocatorDispatch; void* GlibcMalloc(const AllocatorDispatch*, size_t size, void* context) { - return __libc_malloc(size); + return __malloc(size); } void* GlibcCalloc(const AllocatorDispatch*, size_t n, size_t size, void* context) { - return __libc_calloc(n, size); + return __calloc(n, size); } void* GlibcRealloc(const AllocatorDispatch*, void* address, size_t size, void* context) { - return __libc_realloc(address, size); + return __realloc(address, size); } void* GlibcMemalign(const AllocatorDispatch*, size_t alignment, size_t size, void* context) { - return __libc_memalign(alignment, size); + return __memalign(alignment, size); } void GlibcFree(const AllocatorDispatch*, void* address, void* context) { - __libc_free(address); + __free(address); } NO_SANITIZE("cfi-icall") diff --git a/www/chromium/files/patch-base_allocator_allocator__shim__override__libc__symbols.h b/www/chromium/files/patch-base_allocator_allocator__shim__override__libc__symbols.h index 8a09d9647589..6308eb5707c2 100644 --- a/www/chromium/files/patch-base_allocator_allocator__shim__override__libc__symbols.h +++ b/www/chromium/files/patch-base_allocator_allocator__shim__override__libc__symbols.h @@ -1,13 +1,13 @@ ---- base/allocator/allocator_shim_override_libc_symbols.h.orig 2021-03-12 23:57:15 UTC +--- base/allocator/allocator_shim_override_libc_symbols.h.orig 2021-04-14 18:40:48 UTC +++ base/allocator/allocator_shim_override_libc_symbols.h @@ -16,6 +16,10 @@ #include #endif +#if defined(OS_BSD) +#include +#endif + #include "base/allocator/allocator_shim_internals.h" extern "C" { diff --git a/www/chromium/files/patch-base_allocator_allocator__shim__unittest.cc b/www/chromium/files/patch-base_allocator_allocator__shim__unittest.cc index 2c53c24036be..f859681f9b6b 100644 --- a/www/chromium/files/patch-base_allocator_allocator__shim__unittest.cc +++ b/www/chromium/files/patch-base_allocator_allocator__shim__unittest.cc @@ -1,47 +1,47 @@ ---- base/allocator/allocator_shim_unittest.cc.orig 2021-03-12 23:57:15 UTC +--- base/allocator/allocator_shim_unittest.cc.orig 2021-04-14 18:40:48 UTC +++ base/allocator/allocator_shim_unittest.cc @@ -369,7 +369,7 @@ TEST_F(AllocatorShimTest, InterceptLibcSymbols) { #endif // !OS_WIN -#if !defined(OS_WIN) && !defined(OS_APPLE) +#if !defined(OS_WIN) && !defined(OS_APPLE) && !defined(OS_BSD) void* memalign_ptr = memalign(128, 53); ASSERT_NE(nullptr, memalign_ptr); ASSERT_EQ(0u, reinterpret_cast(memalign_ptr) % 128); @@ -385,7 +385,7 @@ TEST_F(AllocatorShimTest, InterceptLibcSymbols) { ASSERT_GE(aligned_allocs_intercepted_by_size[kPageSize], 1u); #endif // !defined(OS_ANDROID) -#endif // !OS_WIN && !OS_APPLE +#endif // !OS_WIN && !OS_APPLE && !OS_BSD // See allocator_shim_override_glibc_weak_symbols.h for why we intercept // internal libc symbols. @@ -412,7 +412,7 @@ TEST_F(AllocatorShimTest, InterceptLibcSymbols) { free(zero_alloc_ptr); ASSERT_GE(frees_intercepted_by_addr[Hash(zero_alloc_ptr)], 1u); -#if !defined(OS_WIN) && !defined(OS_APPLE) +#if !defined(OS_WIN) && !defined(OS_APPLE) && !defined(OS_BSD) free(memalign_ptr); ASSERT_GE(frees_intercepted_by_addr[Hash(memalign_ptr)], 1u); @@ -421,7 +421,7 @@ TEST_F(AllocatorShimTest, InterceptLibcSymbols) { ASSERT_GE(frees_intercepted_by_addr[Hash(pvalloc_ptr)], 1u); #endif // !defined(OS_ANDROID) -#endif // !OS_WIN && !OS_APPLE +#endif // !OS_WIN && !OS_APPLE && !OS_BSD #if !defined(OS_WIN) free(posix_memalign_ptr); @@ -614,7 +614,7 @@ static size_t GetUsableSize(void* ptr) { static size_t GetUsableSize(void* ptr) { return malloc_size(ptr); } -#elif defined(OS_LINUX) || defined(OS_CHROMEOS) +#elif defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) static size_t GetUsableSize(void* ptr) { return malloc_usable_size(ptr); } diff --git a/www/chromium/files/patch-base_allocator_partition__allocator_address__pool__manager.cc b/www/chromium/files/patch-base_allocator_partition__allocator_address__pool__manager.cc index bbee8be9a54c..3c2f4be3e9cb 100644 --- a/www/chromium/files/patch-base_allocator_partition__allocator_address__pool__manager.cc +++ b/www/chromium/files/patch-base_allocator_partition__allocator_address__pool__manager.cc @@ -1,31 +1,31 @@ ---- base/allocator/partition_allocator/address_pool_manager.cc.orig 2021-03-12 23:57:15 UTC +--- base/allocator/partition_allocator/address_pool_manager.cc.orig 2021-04-14 18:40:48 UTC +++ base/allocator/partition_allocator/address_pool_manager.cc @@ -8,6 +8,13 @@ #include #endif +#if defined(OS_FREEBSD) +#include +#include + +#include "base/posix/eintr_wrapper.h" +#endif + #include #include @@ -50,6 +57,14 @@ void DecommitPages(void* address, size_t size) { void* ptr = mmap(address, size, PROT_NONE, MAP_FIXED | MAP_ANONYMOUS | MAP_PRIVATE, -1, 0); PA_CHECK(ptr == address); +#elif defined(OS_FREEBSD) + int fd = HANDLE_EINTR(open("/dev/zero", O_RDONLY)); + PA_CHECK(fd != -1); + + void *ptr = mmap(address, size, PROT_NONE, + MAP_FIXED | MAP_PRIVATE, fd, 0); + PA_PCHECK(ptr == address); + HANDLE_EINTR(close(fd)); #else DecommitSystemPages(address, size, PageUpdatePermissions); #endif diff --git a/www/chromium/files/patch-base_allocator_partition__allocator_page__allocator__internals__posix.h b/www/chromium/files/patch-base_allocator_partition__allocator_page__allocator__internals__posix.h index 07f3a708203a..91f9b30c0ca2 100644 --- a/www/chromium/files/patch-base_allocator_partition__allocator_page__allocator__internals__posix.h +++ b/www/chromium/files/patch-base_allocator_partition__allocator_page__allocator__internals__posix.h @@ -1,58 +1,58 @@ ---- base/allocator/partition_allocator/page_allocator_internals_posix.h.orig 2021-03-12 23:57:15 UTC +--- base/allocator/partition_allocator/page_allocator_internals_posix.h.orig 2021-04-14 18:40:48 UTC +++ base/allocator/partition_allocator/page_allocator_internals_posix.h -@@ -27,12 +27,16 @@ +@@ -28,12 +28,16 @@ #if defined(OS_ANDROID) #include #endif -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) #include #include #endif +#if defined(OS_FREEBSD) +#include +#endif + #include "base/allocator/partition_allocator/page_allocator.h" #ifndef MAP_ANONYMOUS -@@ -168,12 +172,19 @@ void* SystemAllocPagesInternal(void* hint, +@@ -153,12 +157,19 @@ void* SystemAllocPagesInternal(void* hint, PA_DCHECK(PageTag::kFirst <= page_tag); PA_DCHECK(PageTag::kLast >= page_tag); int fd = VM_MAKE_TAG(static_cast(page_tag)); +#elif defined(OS_FREEBSD) + int fd = HANDLE_EINTR(open("/dev/zero", O_RDWR | O_CLOEXEC)); + PA_PCHECK(fd != -1); #else int fd = -1; #endif int access_flag = GetAccessFlags(accessibility); +#if defined(OS_FREEBSD) + int map_flags = MAP_PRIVATE; +#else int map_flags = MAP_ANONYMOUS | MAP_PRIVATE; +#endif #if defined(OS_APPLE) // On macOS 10.14 and higher, executables that are code signed with the -@@ -200,6 +211,8 @@ void* SystemAllocPagesInternal(void* hint, +@@ -185,6 +196,8 @@ void* SystemAllocPagesInternal(void* hint, prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, ret, length, PageTagToName(page_tag)); } +#elif defined(OS_FREEBSD) + HANDLE_EINTR(close(fd)); #endif return ret; -@@ -294,6 +307,8 @@ void DiscardSystemPagesInternal(void* address, size_t +@@ -317,6 +330,8 @@ void DiscardSystemPagesInternal(void* address, size_t ret = madvise(address, length, MADV_DONTNEED); } PA_PCHECK(ret == 0); +#elif defined(OS_FREEBSD) + PA_PCHECK(0 == madvise(address, length, MADV_FREE)); #else // We have experimented with other flags, but with suboptimal results. // diff --git a/www/chromium/files/patch-base_allocator_partition__allocator_partition__alloc.cc b/www/chromium/files/patch-base_allocator_partition__allocator_partition__alloc.cc index 22f583a2730f..8776e5e8e230 100644 --- a/www/chromium/files/patch-base_allocator_partition__allocator_partition__alloc.cc +++ b/www/chromium/files/patch-base_allocator_partition__allocator_partition__alloc.cc @@ -1,15 +1,15 @@ ---- base/allocator/partition_allocator/partition_alloc.cc.orig 2021-03-12 23:57:15 UTC +--- base/allocator/partition_allocator/partition_alloc.cc.orig 2021-04-14 18:40:48 UTC +++ base/allocator/partition_allocator/partition_alloc.cc @@ -56,7 +56,12 @@ void PartitionAllocGlobalInit(OomFunction on_out_of_me "maximum direct mapped allocation"); // Check that some of our zanier calculations worked out as expected. +#if defined(__i386__) && defined(OS_FREEBSD) + // alignof(std::max_align_t) is only 4 on FreeBSD/i386 + static_assert(kSmallestBucket >= kAlignment, "generic smallest bucket"); +#else static_assert(kSmallestBucket == kAlignment, "generic smallest bucket"); +#endif static_assert(kMaxBucketed == 983040, "generic max bucketed"); STATIC_ASSERT_OR_PA_CHECK( MaxSystemPagesPerSlotSpan() < (1 << 8), diff --git a/www/chromium/files/patch-base_allocator_partition__allocator_partition__alloc__unittest.cc b/www/chromium/files/patch-base_allocator_partition__allocator_partition__alloc__unittest.cc index 560073192bba..45fa7177cd36 100644 --- a/www/chromium/files/patch-base_allocator_partition__allocator_partition__alloc__unittest.cc +++ b/www/chromium/files/patch-base_allocator_partition__allocator_partition__alloc__unittest.cc @@ -1,20 +1,20 @@ ---- base/allocator/partition_allocator/partition_alloc_unittest.cc.orig 2021-03-12 23:57:15 UTC +--- base/allocator/partition_allocator/partition_alloc_unittest.cc.orig 2021-04-14 18:40:48 UTC +++ base/allocator/partition_allocator/partition_alloc_unittest.cc -@@ -1588,7 +1588,7 @@ TEST_F(PartitionAllocTest, LostFreeSlotSpansBug) { +@@ -1644,7 +1644,7 @@ TEST_F(PartitionAllocTest, LostFreeSlotSpansBug) { // cause flake. #if !defined(OS_WIN) && \ (!defined(ARCH_CPU_64_BITS) || \ - (defined(OS_POSIX) && !(defined(OS_APPLE) || defined(OS_ANDROID)))) + (defined(OS_POSIX) && !(defined(OS_APPLE) || defined(OS_ANDROID) || defined(OS_BSD)))) // The following four tests wrap a called function in an expect death statement // to perform their test, because they are non-hermetic. Specifically they are -@@ -1634,7 +1634,7 @@ TEST_F(PartitionAllocDeathTest, RepeatedTryReallocRetu +@@ -1695,7 +1695,7 @@ TEST_F(PartitionAllocDeathTest, DISABLED_RepeatedTryRe } #endif // !defined(ARCH_CPU_64_BITS) || (defined(OS_POSIX) && - // !(defined(OS_APPLE) || defined(OS_ANDROID))) + // !(defined(OS_APPLE) || defined(OS_ANDROID) || defined(OS_BSD))) // Make sure that malloc(-1) dies. // In the past, we had an integer overflow that would alias malloc(-1) to diff --git a/www/chromium/files/patch-base_allocator_partition__allocator_partition__bucket.cc b/www/chromium/files/patch-base_allocator_partition__allocator_partition__bucket.cc deleted file mode 100644 index fb0dfd2b0719..000000000000 --- a/www/chromium/files/patch-base_allocator_partition__allocator_partition__bucket.cc +++ /dev/null @@ -1,36 +0,0 @@ ---- base/allocator/partition_allocator/partition_bucket.cc.orig 2021-03-23 17:09:47 UTC -+++ base/allocator/partition_allocator/partition_bucket.cc -@@ -66,27 +66,33 @@ PartitionDirectMap(PartitionRoot* root, i - metadata->extent.root = root; - // The new structures are all located inside a fresh system page so they - // will all be zeroed out. These DCHECKs are for documentation. -+#if !defined(OS_FREEBSD) - PA_DCHECK(!metadata->extent.super_page_base); - PA_DCHECK(!metadata->extent.super_pages_end); - PA_DCHECK(!metadata->extent.next); -+#endif - PA_DCHECK(PartitionPage::FromPointerNoAlignmentCheck(slot) == - &metadata->page); - - auto* page = &metadata->page; -+#if !defined(OS_FREEBSD) - PA_DCHECK(!page->slot_span_metadata_offset); - PA_DCHECK(!page->slot_span_metadata.next_slot_span); - PA_DCHECK(!page->slot_span_metadata.num_allocated_slots); - PA_DCHECK(!page->slot_span_metadata.num_unprovisioned_slots); - PA_DCHECK(!page->slot_span_metadata.empty_cache_index); -+#endif - page->slot_span_metadata.bucket = &metadata->bucket; - auto* next_entry = new (slot) PartitionFreelistEntry(); - page->slot_span_metadata.SetFreelistHead(next_entry); - -+#if !defined(OS_FREEBSD) - PA_DCHECK(!metadata->bucket.active_slot_spans_head); - PA_DCHECK(!metadata->bucket.empty_slot_spans_head); - PA_DCHECK(!metadata->bucket.decommitted_slot_spans_head); - PA_DCHECK(!metadata->bucket.num_system_pages_per_slot_span); - PA_DCHECK(!metadata->bucket.num_full_slot_spans); -+#endif - metadata->bucket.slot_size = slot_size; - - auto* map_extent = &metadata->direct_map_extent; diff --git a/www/chromium/files/patch-base_allocator_partition__allocator_partition__root.cc b/www/chromium/files/patch-base_allocator_partition__allocator_partition__root.cc new file mode 100644 index 000000000000..5c97ae660a7b --- /dev/null +++ b/www/chromium/files/patch-base_allocator_partition__allocator_partition__root.cc @@ -0,0 +1,47 @@ +--- base/allocator/partition_allocator/partition_root.cc.orig 2021-04-15 11:28:02 UTC ++++ base/allocator/partition_allocator/partition_root.cc +@@ -20,7 +20,7 @@ + #include "wow64apiset.h" + #endif + +-#if defined(OS_LINUX) ++#if defined(OS_LINUX) || defined(OS_BSD) + #include + #endif + +@@ -34,7 +34,7 @@ namespace { + + #if BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) + +-#if defined(OS_LINUX) ++#if defined(OS_LINUX) || defined(OS_BSD) + + // NO_THREAD_SAFETY_ANALYSIS: acquires the lock and doesn't release it, by + // design. +@@ -87,7 +87,7 @@ void AfterForkInChild() { + internal::ThreadCacheRegistry::Instance() + .ForcePurgeAllThreadAfterForkUnsafe(); + } +-#endif // defined(OS_LINUX) ++#endif // defined(OS_LINUX) || defined(OS_BSD) + + std::atomic g_global_init_called; + void PartitionAllocMallocInitOnce() { +@@ -97,7 +97,7 @@ void PartitionAllocMallocInitOnce() { + if (!g_global_init_called.compare_exchange_strong(expected, true)) + return; + +-#if defined(OS_LINUX) ++#if defined(OS_LINUX) || defined(OS_BSD) + // When fork() is called, only the current thread continues to execute in the + // child process. If the lock is held, but *not* by this thread when fork() is + // called, we have a deadlock. +@@ -122,7 +122,7 @@ void PartitionAllocMallocInitOnce() { + int err = + pthread_atfork(BeforeForkInParent, AfterForkInParent, AfterForkInChild); + PA_CHECK(err == 0); +-#endif // defined(OS_LINUX) ++#endif // defined(OS_LINUX) || defined(OS_BSD) + } + #endif // BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) + diff --git a/www/chromium/files/patch-base_allocator_partition__allocator_spinning__mutex.cc b/www/chromium/files/patch-base_allocator_partition__allocator_spinning__mutex.cc index 2f293398e253..7fcb4113bbdc 100644 --- a/www/chromium/files/patch-base_allocator_partition__allocator_spinning__mutex.cc +++ b/www/chromium/files/patch-base_allocator_partition__allocator_spinning__mutex.cc @@ -1,49 +1,49 @@ ---- base/allocator/partition_allocator/spinning_mutex.cc.orig 2021-03-12 23:57:15 UTC +--- base/allocator/partition_allocator/spinning_mutex.cc.orig 2021-04-14 18:40:48 UTC +++ base/allocator/partition_allocator/spinning_mutex.cc @@ -16,9 +16,16 @@ #include #endif // defined(PA_HAS_LINUX_KERNEL) +#if defined(PA_HAS_FREEBSD_KERNEL) +#include +#include +#include +#include +#endif // defined(PA_HAS_FREEBSD_KERNEL) + namespace base { namespace internal { -#if defined(PA_HAS_LINUX_KERNEL) +#if defined(PA_HAS_LINUX_KERNEL) || defined(PA_HAS_FREEBSD_KERNEL) void SpinningMutex::FutexWait() { // Save and restore errno. @@ -42,8 +49,13 @@ void SpinningMutex::FutexWait() { // |kLockedContended| anymore. Note that even without spurious wakeups, the // value of |state_| is not guaranteed when this returns, as another thread // may get the lock before we get to run. +#if defined(PA_HAS_LINUX_KERNEL) int err = syscall(SYS_futex, &state_, FUTEX_WAIT | FUTEX_PRIVATE_FLAG, kLockedContended, nullptr, nullptr, 0); +#elif defined(PA_HAS_FREEBSD_KERNEL) + int err = _umtx_op(&state_, UMTX_OP_WAIT_UINT_PRIVATE, + kLockedContended, nullptr, nullptr); +#endif if (err) { // These are programming error, check them. @@ -55,8 +67,14 @@ void SpinningMutex::FutexWait() { void SpinningMutex::FutexWake() { int saved_errno = errno; +#if defined(PA_HAS_LINUX_KERNEL) long retval = syscall(SYS_futex, &state_, FUTEX_WAKE | FUTEX_PRIVATE_FLAG, 1 /* wake up a single waiter */, nullptr, nullptr, 0); +#elif defined(PA_HAS_FREEBSD_KERNEL) + long retval = _umtx_op(&state_, UMTX_OP_WAKE_PRIVATE, + 1 /* wake up a single waiter */, nullptr, nullptr); +#endif + PA_CHECK(retval != -1); errno = saved_errno; } diff --git a/www/chromium/files/patch-base_allocator_partition__allocator_spinning__mutex.h b/www/chromium/files/patch-base_allocator_partition__allocator_spinning__mutex.h index 344913dd5056..e40dd3c13a0e 100644 --- a/www/chromium/files/patch-base_allocator_partition__allocator_spinning__mutex.h +++ b/www/chromium/files/patch-base_allocator_partition__allocator_spinning__mutex.h @@ -1,33 +1,33 @@ ---- base/allocator/partition_allocator/spinning_mutex.h.orig 2021-03-12 23:57:15 UTC +--- base/allocator/partition_allocator/spinning_mutex.h.orig 2021-04-14 18:40:48 UTC +++ base/allocator/partition_allocator/spinning_mutex.h @@ -22,7 +22,11 @@ #define PA_HAS_LINUX_KERNEL #endif -#if defined(PA_HAS_LINUX_KERNEL) || defined(OS_WIN) +#if defined(OS_FREEBSD) +#define PA_HAS_FREEBSD_KERNEL +#endif + +#if defined(PA_HAS_LINUX_KERNEL) || defined(PA_HAS_FREEBSD_KERNEL) || defined(OS_WIN) #define PA_HAS_SPINNING_MUTEX #endif @@ -66,7 +70,7 @@ class LOCKABLE BASE_EXPORT SpinningMutex { // as the slow path has better characteristics than SpinLocks's. static constexpr int kSpinCount = 1000; -#if defined(PA_HAS_LINUX_KERNEL) +#if defined(PA_HAS_LINUX_KERNEL) || defined(PA_HAS_FREEBSD_KERNEL) void FutexWait(); void FutexWake(); @@ -111,7 +115,7 @@ ALWAYS_INLINE void SpinningMutex::Acquire() { inline constexpr SpinningMutex::SpinningMutex() = default; -#if defined(PA_HAS_LINUX_KERNEL) +#if defined(PA_HAS_LINUX_KERNEL) || defined(PA_HAS_FREEBSD_KERNEL) ALWAYS_INLINE bool SpinningMutex::Try() { int expected = kUnlocked; diff --git a/www/chromium/files/patch-base_base__switches.cc b/www/chromium/files/patch-base_base__switches.cc index 7f700892a8e1..5b612f9cd666 100644 --- a/www/chromium/files/patch-base_base__switches.cc +++ b/www/chromium/files/patch-base_base__switches.cc @@ -1,22 +1,22 @@ ---- base/base_switches.cc.orig 2021-03-12 23:57:15 UTC +--- base/base_switches.cc.orig 2021-04-14 18:40:48 UTC +++ base/base_switches.cc @@ -120,8 +120,8 @@ const char kDisableUsbKeyboardDetect[] = "disable // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch // of lacros-chrome is complete. -#if defined(OS_LINUX) && !BUILDFLAG(IS_CHROMEOS_ASH) && \ - !BUILDFLAG(IS_CHROMEOS_LACROS) +#if defined(OS_BSD) || (defined(OS_LINUX) && !BUILDFLAG(IS_CHROMEOS_ASH) && \ + !BUILDFLAG(IS_CHROMEOS_LACROS)) // The /dev/shm partition is too small in certain VM environments, causing // Chrome to fail or crash (see http://crbug.com/715363). Use this flag to // work-around this issue (a temporary directory will always be used to create @@ -156,7 +156,7 @@ const char kForceFieldTrialParams[] = "force-fieldtria #endif -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) // Controls whether or not retired instruction counts are surfaced for threads // in trace events on Linux. // diff --git a/www/chromium/files/patch-base_base__switches.h b/www/chromium/files/patch-base_base__switches.h index c3627665a8a3..106fbd5599dc 100644 --- a/www/chromium/files/patch-base_base__switches.h +++ b/www/chromium/files/patch-base_base__switches.h @@ -1,22 +1,22 @@ ---- base/base_switches.h.orig 2021-03-12 23:57:15 UTC +--- base/base_switches.h.orig 2021-04-14 18:40:48 UTC +++ base/base_switches.h @@ -41,8 +41,8 @@ extern const char kDisableUsbKeyboardDetect[]; // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch // of lacros-chrome is complete. -#if defined(OS_LINUX) && !BUILDFLAG(IS_CHROMEOS_ASH) && \ - !BUILDFLAG(IS_CHROMEOS_LACROS) +#if defined(OS_BSD) || (defined(OS_LINUX) && !BUILDFLAG(IS_CHROMEOS_ASH) && \ + !BUILDFLAG(IS_CHROMEOS_LACROS)) extern const char kDisableDevShmUsage[]; #endif @@ -58,7 +58,7 @@ extern const char kEnableIdleTracing[]; extern const char kForceFieldTrialParams[]; #endif -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) extern const char kEnableThreadInstructionCount[]; - #endif + // TODO(crbug.com/1176772): Remove kEnableCrashpad and IsCrashpadEnabled() when diff --git a/www/chromium/files/patch-base_bind.h b/www/chromium/files/patch-base_bind.h new file mode 100644 index 000000000000..f2715eccde4d --- /dev/null +++ b/www/chromium/files/patch-base_bind.h @@ -0,0 +1,11 @@ +--- base/bind.h.orig 2021-04-15 11:29:10 UTC ++++ base/bind.h +@@ -313,7 +313,7 @@ inline OnceCallback>()), + "BindOnce requires non-const rvalue for OnceCallback binding." + " I.e.: base::BindOnce(std::move(callback))."); +-#if defined(OS_LINUX) || defined(OS_WIN) || \ ++#if defined(OS_LINUX) || defined(OS_WIN) || defined(OS_BSD) || \ + defined(NCTEST_BIND_ONCE_WITH_PASSED) + // TODO(https://crbug.com/1180750): Enable this everywhere. + static_assert( diff --git a/www/chromium/files/patch-base_check.h b/www/chromium/files/patch-base_check.h new file mode 100644 index 000000000000..8ff12ec1ffe7 --- /dev/null +++ b/www/chromium/files/patch-base_check.h @@ -0,0 +1,11 @@ +--- base/check.h.orig 2021-04-22 11:38:19 UTC ++++ base/check.h +@@ -85,7 +85,7 @@ class BASE_EXPORT CheckError { + // Stream for adding optional details to the error message. + std::ostream& stream(); + +- NOMERGE ~CheckError(); ++ ~CheckError(); + + CheckError(const CheckError& other) = delete; + CheckError& operator=(const CheckError& other) = delete; diff --git a/www/chromium/files/patch-base_cpu.cc b/www/chromium/files/patch-base_cpu.cc index c1e85a57c187..c9a46b5903d3 100644 --- a/www/chromium/files/patch-base_cpu.cc +++ b/www/chromium/files/patch-base_cpu.cc @@ -1,35 +1,35 @@ ---- base/cpu.cc.orig 2021-03-12 23:57:15 UTC +--- base/cpu.cc.orig 2021-04-14 18:40:48 UTC +++ base/cpu.cc @@ -16,7 +16,7 @@ #include "base/stl_util.h" -#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) || \ +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) || defined(OS_BSD) || \ defined(OS_AIX) #include "base/containers/flat_set.h" #include "base/files/file_util.h" -@@ -212,6 +212,14 @@ const ProcCpuInfo& ParseProcCpu() { +@@ -214,6 +214,14 @@ const ProcCpuInfo& ParseProcCpu() { return *info; } +#elif defined(OS_BSD) +std::string* CpuInfoBrand() { + static std::string* brand = []() { + return new std::string(SysInfo::CPUModelName()); + }(); + + return brand; +} #endif // defined(ARCH_CPU_ARM_FAMILY) && (defined(OS_ANDROID) || // defined(OS_LINUX) || defined(OS_CHROMEOS)) -@@ -348,6 +356,8 @@ void CPU::Initialize() { +@@ -352,6 +360,8 @@ void CPU::Initialize(bool require_branding) { has_bti_ = hwcap2 & HWCAP2_BTI; #endif +#elif defined(OS_BSD) + cpu_brand_ = *CpuInfoBrand(); #elif defined(OS_WIN) // Windows makes high-resolution thread timing information available in // user-space. diff --git a/www/chromium/files/patch-base_cpu.h b/www/chromium/files/patch-base_cpu.h index 3a2ac0b71e70..648d68bdb1c0 100644 --- a/www/chromium/files/patch-base_cpu.h +++ b/www/chromium/files/patch-base_cpu.h @@ -1,20 +1,20 @@ ---- base/cpu.h.orig 2021-03-12 23:57:15 UTC +--- base/cpu.h.orig 2021-04-14 18:40:48 UTC +++ base/cpu.h -@@ -84,7 +84,7 @@ class BASE_EXPORT CPU final { +@@ -92,7 +92,7 @@ class BASE_EXPORT CPU final { IntelMicroArchitecture GetIntelMicroArchitecture() const; const std::string& cpu_brand() const { return cpu_brand_; } -#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) || \ +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) || defined(OS_BSD) || \ defined(OS_AIX) enum class CoreType { kUnknown = 0, -@@ -135,7 +135,7 @@ class BASE_EXPORT CPU final { +@@ -143,7 +143,7 @@ class BASE_EXPORT CPU final { // cpuidle driver. using CoreIdleTimes = std::vector; static bool GetCumulativeCoreIdleTimes(CoreIdleTimes&); -#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) || +#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) || defined(OS_BSD) // defined(OS_AIX) private: diff --git a/www/chromium/files/patch-base_debug_debugger__posix.cc b/www/chromium/files/patch-base_debug_debugger__posix.cc index e2dd3991b967..ea7f110b6fb4 100644 --- a/www/chromium/files/patch-base_debug_debugger__posix.cc +++ b/www/chromium/files/patch-base_debug_debugger__posix.cc @@ -1,56 +1,56 @@ ---- base/debug/debugger_posix.cc.orig 2021-03-12 23:57:15 UTC +--- base/debug/debugger_posix.cc.orig 2021-04-14 18:40:48 UTC +++ base/debug/debugger_posix.cc @@ -98,7 +98,7 @@ bool BeingDebugged() { KERN_PROC, KERN_PROC_PID, getpid() -#if defined(OS_OPENBSD) +#if defined(OS_BSD) , sizeof(struct kinfo_proc), 0 #endif @@ -106,33 +106,35 @@ bool BeingDebugged() { // Caution: struct kinfo_proc is marked __APPLE_API_UNSTABLE. The source and // binary interfaces may change. - struct kinfo_proc info; - size_t info_size = sizeof(info); + struct kinfo_proc *info; + size_t info_size; -#if defined(OS_OPENBSD) if (sysctl(mib, base::size(mib), NULL, &info_size, NULL, 0) < 0) return -1; + info = (struct kinfo_proc *)malloc(info_size); mib[5] = (info_size / sizeof(struct kinfo_proc)); -#endif - int sysctl_result = sysctl(mib, base::size(mib), &info, &info_size, NULL, 0); + int sysctl_result = sysctl(mib, base::size(mib), info, &info_size, NULL, 0); DCHECK_EQ(sysctl_result, 0); if (sysctl_result != 0) { is_set = true; being_debugged = false; - return being_debugged; + goto out; } // This process is being debugged if the P_TRACED flag is set. is_set = true; #if defined(OS_FREEBSD) - being_debugged = (info.ki_flag & P_TRACED) != 0; + being_debugged = (info->ki_flag & P_TRACED) != 0; #elif defined(OS_BSD) - being_debugged = (info.p_flag & P_TRACED) != 0; + being_debugged = (info->p_flag & P_TRACED) != 0; #else - being_debugged = (info.kp_proc.p_flag & P_TRACED) != 0; + being_debugged = (info->kp_proc.p_flag & P_TRACED) != 0; #endif + +out: + free(info); return being_debugged; } diff --git a/www/chromium/files/patch-base_debug_elf__reader.cc b/www/chromium/files/patch-base_debug_elf__reader.cc index aa96ca6baa55..46585628ac17 100644 --- a/www/chromium/files/patch-base_debug_elf__reader.cc +++ b/www/chromium/files/patch-base_debug_elf__reader.cc @@ -1,28 +1,28 @@ ---- base/debug/elf_reader.cc.orig 2021-03-12 23:57:15 UTC +--- base/debug/elf_reader.cc.orig 2021-04-14 18:40:48 UTC +++ base/debug/elf_reader.cc @@ -38,7 +38,9 @@ using Nhdr = Elf64_Nhdr; using Word = Elf64_Word; #endif +#if !defined(OS_BSD) constexpr char kGnuNoteName[] = "GNU"; +#endif // Returns a pointer to the header of the ELF binary mapped into memory, or a // null pointer if the header is invalid. Here and below |elf_mapped_base| is a @@ -75,6 +77,7 @@ size_t ReadElfBuildId(const void* elf_mapped_base, bool found = false; while (current_section < section_end) { current_note = reinterpret_cast(current_section); +#if !defined(OS_BSD) if (current_note->n_type == NT_GNU_BUILD_ID) { StringPiece note_name(current_section + sizeof(Nhdr), current_note->n_namesz); @@ -84,6 +87,7 @@ size_t ReadElfBuildId(const void* elf_mapped_base, break; } } +#endif - size_t section_size = bits::Align(current_note->n_namesz, 4) + - bits::Align(current_note->n_descsz, 4) + + size_t section_size = bits::AlignUp(current_note->n_namesz, 4) + + bits::AlignUp(current_note->n_descsz, 4) + diff --git a/www/chromium/files/patch-base_debug_proc__maps__linux.cc b/www/chromium/files/patch-base_debug_proc__maps__linux.cc index 5f4e50d83152..9d9eff8794a9 100644 --- a/www/chromium/files/patch-base_debug_proc__maps__linux.cc +++ b/www/chromium/files/patch-base_debug_proc__maps__linux.cc @@ -1,141 +1,141 @@ ---- base/debug/proc_maps_linux.cc.orig 2021-03-12 23:57:15 UTC +--- base/debug/proc_maps_linux.cc.orig 2021-04-14 18:40:48 UTC +++ base/debug/proc_maps_linux.cc @@ -13,13 +13,18 @@ #include "base/strings/string_split.h" #include "build/build_config.h" -#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) || defined(OS_BSD) #include #endif namespace base { namespace debug { +#if defined(OS_BSD) +const char kProcSelfMapsPath[] = "/proc/curproc/map"; +#else +const char kProcSelfMapsPath[] = "/proc/self/maps"; + // Scans |proc_maps| starting from |pos| returning true if the gate VMA was // found, otherwise returns false. static bool ContainsGateVMA(std::string* proc_maps, size_t pos) { @@ -35,15 +40,16 @@ static bool ContainsGateVMA(std::string* proc_maps, si return false; #endif } +#endif bool ReadProcMaps(std::string* proc_maps) { // seq_file only writes out a page-sized amount on each call. Refer to header // file for details. const long kReadSize = sysconf(_SC_PAGESIZE); - base::ScopedFD fd(HANDLE_EINTR(open("/proc/self/maps", O_RDONLY))); + base::ScopedFD fd(HANDLE_EINTR(open(kProcSelfMapsPath, O_RDONLY))); if (!fd.is_valid()) { - DPLOG(ERROR) << "Couldn't open /proc/self/maps"; + DPLOG(ERROR) << "Couldn't open " << kProcSelfMapsPath; return false; } proc_maps->clear(); @@ -57,7 +63,7 @@ bool ReadProcMaps(std::string* proc_maps) { ssize_t bytes_read = HANDLE_EINTR(read(fd.get(), buffer, kReadSize)); if (bytes_read < 0) { - DPLOG(ERROR) << "Couldn't read /proc/self/maps"; + DPLOG(ERROR) << "Couldn't read " << kProcSelfMapsPath; proc_maps->clear(); return false; } @@ -68,6 +74,7 @@ bool ReadProcMaps(std::string* proc_maps) { if (bytes_read == 0) break; +#if !defined(OS_BSD) // The gate VMA is handled as a special case after seq_file has finished // iterating through all entries in the virtual memory table. // @@ -78,6 +85,7 @@ bool ReadProcMaps(std::string* proc_maps) { // Avoid this by searching for the gate VMA and breaking early. if (ContainsGateVMA(proc_maps, pos)) break; +#endif } return true; @@ -105,11 +113,32 @@ bool ParseProcMaps(const std::string& input, MappedMemoryRegion region; const char* line = lines[i].c_str(); - char permissions[5] = {'\0'}; // Ensure NUL-terminated string. + char permissions[6] = {'\0'}; // Ensure NUL-terminated string. + int path_index = 0; + +#if defined(OS_BSD) + if (lines[i].empty()) + continue; + + char cow; + + // Format: + // + // start end resident private_resident obj perms ref_count shadow_count flags cow needs_copy type fullpath cred ruid + // 0x200000 0x202000 2 6 0xfffff80005be9000 r-- 3 1 0x1000 COW NC vnode /bin/cat NCH -1 + // + if (sscanf(line, "%" SCNxPTR " %" SCNxPTR " %*ld %*ld %*[^ ] %5[^ ] %*d %*d %*x %c%*s %*s %*s %n", + ®ion.start, ®ion.end, permissions, &cow, &path_index) < 4) { + DPLOG(WARNING) << "sscanf failed for line: " << line; + return false; + } + + const char* fullpath = line + path_index; + const char* cred = strchr(fullpath, ' '); +#else uint8_t dev_major = 0; uint8_t dev_minor = 0; long inode = 0; - int path_index = 0; // Sample format from man 5 proc: // @@ -125,6 +154,7 @@ bool ParseProcMaps(const std::string& input, DPLOG(WARNING) << "sscanf failed for line: " << line; return false; } +#endif region.permissions = 0; @@ -143,14 +173,31 @@ bool ParseProcMaps(const std::string& input, else if (permissions[2] != '-') return false; +#if defined(OS_BSD) + if (cow == 'C') { + region.permissions |= MappedMemoryRegion::PRIVATE; + } else if (cow != 'N') { + DPLOG(WARNING) << "unknown value for COW in line " << line << ": " << cow; + return false; + } +#else if (permissions[3] == 'p') region.permissions |= MappedMemoryRegion::PRIVATE; else if (permissions[3] != 's' && permissions[3] != 'S') // Shared memory. return false; +#endif // Pushing then assigning saves us a string copy. regions.push_back(region); +#if defined(OS_BSD) + if (cred != nullptr) { + regions.back().path.assign(line + path_index, cred - fullpath); + } else { + regions.back().path.assign(line + path_index); + } +#else regions.back().path.assign(line + path_index); +#endif } regions_out->swap(regions); diff --git a/www/chromium/files/patch-base_debug_stack__trace.cc b/www/chromium/files/patch-base_debug_stack__trace.cc index f1f952c8aa0d..9d606cdbdc91 100644 --- a/www/chromium/files/patch-base_debug_stack__trace.cc +++ b/www/chromium/files/patch-base_debug_stack__trace.cc @@ -1,11 +1,11 @@ ---- base/debug/stack_trace.cc.orig 2021-03-12 23:57:15 UTC +--- base/debug/stack_trace.cc.orig 2021-04-14 18:40:48 UTC +++ base/debug/stack_trace.cc @@ -15,7 +15,7 @@ #if BUILDFLAG(CAN_UNWIND_WITH_FRAME_POINTERS) -#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) || defined(OS_BSD) #include #include "base/process/process_handle.h" #include "base/threading/platform_thread.h" diff --git a/www/chromium/files/patch-base_debug_stack__trace.h b/www/chromium/files/patch-base_debug_stack__trace.h index 00dd078e8065..4c3df9dae05c 100644 --- a/www/chromium/files/patch-base_debug_stack__trace.h +++ b/www/chromium/files/patch-base_debug_stack__trace.h @@ -1,10 +1,10 @@ ---- base/debug/stack_trace.h.orig 2021-03-12 23:57:15 UTC +--- base/debug/stack_trace.h.orig 2021-04-14 18:40:48 UTC +++ base/debug/stack_trace.h @@ -19,6 +19,7 @@ #if !defined(OS_NACL) #include #endif +#include #include #endif diff --git a/www/chromium/files/patch-base_debug_stack__trace__posix.cc b/www/chromium/files/patch-base_debug_stack__trace__posix.cc index 3522bc090ee2..bc18b34a20ab 100644 --- a/www/chromium/files/patch-base_debug_stack__trace__posix.cc +++ b/www/chromium/files/patch-base_debug_stack__trace__posix.cc @@ -1,45 +1,45 @@ ---- base/debug/stack_trace_posix.cc.orig 2021-03-12 23:57:15 UTC +--- base/debug/stack_trace_posix.cc.orig 2021-04-14 18:40:48 UTC +++ base/debug/stack_trace_posix.cc @@ -35,7 +35,7 @@ #include #endif -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) #include "base/debug/proc_maps_linux.h" #endif @@ -659,13 +659,21 @@ class SandboxSymbolizeHelper { // Reads /proc/self/maps. std::string contents; if (!ReadProcMaps(&contents)) { +#if defined(OS_BSD) + LOG(ERROR) << "Failed to read /proc/curproc/map"; +#else LOG(ERROR) << "Failed to read /proc/self/maps"; +#endif return false; } // Parses /proc/self/maps. if (!ParseProcMaps(contents, ®ions_)) { +#if defined(OS_BSD) + LOG(ERROR) << "Failed to parse the contents of /proc/curproc/map"; +#else LOG(ERROR) << "Failed to parse the contents of /proc/self/maps"; +#endif return false; } @@ -696,7 +704,11 @@ class SandboxSymbolizeHelper { // Skip regions with empty file names. continue; } +#if defined(OS_BSD) + if (region.path[0] == '-') { +#else if (region.path[0] == '[') { +#endif // Skip pseudo-paths, like [stack], [vdso], [heap], etc ... continue; } diff --git a/www/chromium/files/patch-base_debug_stack__trace__unittest.cc b/www/chromium/files/patch-base_debug_stack__trace__unittest.cc index 908692edeb5b..6eb9d505526c 100644 --- a/www/chromium/files/patch-base_debug_stack__trace__unittest.cc +++ b/www/chromium/files/patch-base_debug_stack__trace__unittest.cc @@ -1,40 +1,40 @@ ---- base/debug/stack_trace_unittest.cc.orig 2021-03-12 23:57:15 UTC +--- base/debug/stack_trace_unittest.cc.orig 2021-04-14 18:40:48 UTC +++ base/debug/stack_trace_unittest.cc @@ -88,6 +88,7 @@ TEST_F(StackTraceTest, OutputToStream) { std::string::npos) << "Unable to resolve symbols."; +#if !defined(OS_BSD) // Expect a demangled symbol. // Note that Windows Release builds omit the function parameters from the // demangled stack output, otherwise this could be "testing::UnitTest::Run()". @@ -106,9 +107,10 @@ TEST_F(StackTraceTest, OutputToStream) { EXPECT_TRUE(backtrace_message.find(__func__) != std::string::npos) << "Expected to find " << __func__ << " in backtrace:\n" << backtrace_message; +#endif } -#if !defined(OFFICIAL_BUILD) && !defined(NO_UNWIND_TABLES) +#if !defined(OFFICIAL_BUILD) && !defined(NO_UNWIND_TABLES) && !defined(OS_BSD) // Disabled in Official builds, where Link-Time Optimization can result in two // or fewer stack frames being available, causing the test to fail. TEST_F(StackTraceTest, TruncatedTrace) { @@ -122,7 +124,7 @@ TEST_F(StackTraceTest, TruncatedTrace) { truncated.Addresses(&count); EXPECT_EQ(2u, count); } -#endif // !defined(OFFICIAL_BUILD) && !defined(NO_UNWIND_TABLES) +#endif // !defined(OFFICIAL_BUILD) && !defined(NO_UNWIND_TABLES) && !defined(OS_BSD) // The test is used for manual testing, e.g., to see the raw output. TEST_F(StackTraceTest, DebugOutputToStream) { @@ -361,7 +363,7 @@ TEST_F(StackTraceTest, MAYBE_TraceStackFramePointers) // sometimes we read fp / pc from the place that previously held // uninitialized value. // TODO(crbug.com/1132511): Enable this test on Fuchsia. -#if defined(MEMORY_SANITIZER) || defined(OS_FUCHSIA) +#if defined(MEMORY_SANITIZER) || defined(OS_FUCHSIA) || defined(OS_BSD) #define MAYBE_TraceStackFramePointersFromBuffer \ DISABLED_TraceStackFramePointersFromBuffer #else diff --git a/www/chromium/files/patch-base_files_file__path__unittest.cc b/www/chromium/files/patch-base_files_file__path__unittest.cc index ff04f093e49a..f638d3146191 100644 --- a/www/chromium/files/patch-base_files_file__path__unittest.cc +++ b/www/chromium/files/patch-base_files_file__path__unittest.cc @@ -1,11 +1,11 @@ ---- base/files/file_path_unittest.cc.orig 2021-03-12 23:57:15 UTC +--- base/files/file_path_unittest.cc.orig 2021-04-14 18:40:48 UTC +++ base/files/file_path_unittest.cc @@ -1149,7 +1149,7 @@ TEST_F(FilePathTest, FromUTF8Unsafe_And_AsUTF8Unsafe) "\xEF\xBC\xA1\xEF\xBC\xA2\xEF\xBC\xA3.txt" }, }; -#if !defined(SYSTEM_NATIVE_UTF8) && (defined(OS_LINUX) || defined(OS_CHROMEOS)) +#if !defined(SYSTEM_NATIVE_UTF8) && (defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)) ScopedLocale locale("en_US.UTF-8"); #endif diff --git a/www/chromium/files/patch-base_files_file__path__watcher__freebsd.cc b/www/chromium/files/patch-base_files_file__path__watcher__freebsd.cc index 238272c3d48e..a10889cb9fdb 100644 --- a/www/chromium/files/patch-base_files_file__path__watcher__freebsd.cc +++ b/www/chromium/files/patch-base_files_file__path__watcher__freebsd.cc @@ -1,64 +1,64 @@ ---- base/files/file_path_watcher_freebsd.cc.orig 2021-03-15 11:01:22 UTC +--- base/files/file_path_watcher_freebsd.cc.orig 2021-04-15 08:12:30 UTC +++ base/files/file_path_watcher_freebsd.cc @@ -0,0 +1,61 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// This file exists for Unix systems which don't have the inotify headers, and +// thus cannot build file_watcher_inotify.cc + +#include + +#include "base/files/file_path_watcher.h" +#include "base/files/file_path_watcher_kqueue.h" + +#include "base/memory/ptr_util.h" +#include "build/build_config.h" + +namespace base { + +namespace { + +class FilePathWatcherImpl : public FilePathWatcher::PlatformDelegate { + public: + FilePathWatcherImpl() = default; + FilePathWatcherImpl(const FilePathWatcherImpl&) = delete; + FilePathWatcherImpl& operator=(const FilePathWatcherImpl&) = delete; + ~FilePathWatcherImpl() override = default; + + bool Watch(const FilePath& path, + Type type, + const FilePathWatcher::Callback& callback) override { + DCHECK(!impl_.get()); + + if (type == Type::kRecursive) { + return false; + } else { + impl_ = std::make_unique(); + } + + DCHECK(impl_.get()); + + return impl_->Watch(path, type, callback); + } + + void Cancel() override { + if (impl_.get()) + impl_->Cancel(); + + set_cancelled(); + } + + private: + std::unique_ptr impl_; +}; + +} // namespace + +FilePathWatcher::FilePathWatcher() { + sequence_checker_.DetachFromSequence(); + impl_ = std::make_unique(); +} + +} // namespace base diff --git a/www/chromium/files/patch-base_files_file__path__watcher__kqueue.h b/www/chromium/files/patch-base_files_file__path__watcher__kqueue.h index 61baa1ecef2d..75dd465828bc 100644 --- a/www/chromium/files/patch-base_files_file__path__watcher__kqueue.h +++ b/www/chromium/files/patch-base_files_file__path__watcher__kqueue.h @@ -1,13 +1,13 @@ ---- base/files/file_path_watcher_kqueue.h.orig 2021-03-12 23:57:15 UTC +--- base/files/file_path_watcher_kqueue.h.orig 2021-04-14 18:40:48 UTC +++ base/files/file_path_watcher_kqueue.h @@ -5,6 +5,10 @@ #ifndef BASE_FILES_FILE_PATH_WATCHER_KQUEUE_H_ #define BASE_FILES_FILE_PATH_WATCHER_KQUEUE_H_ +#ifdef __FreeBSD__ +#include +#include +#endif #include #include diff --git a/www/chromium/files/patch-base_files_file__path__watcher__unittest.cc b/www/chromium/files/patch-base_files_file__path__watcher__unittest.cc index 0de14fe28938..a19163383934 100644 --- a/www/chromium/files/patch-base_files_file__path__watcher__unittest.cc +++ b/www/chromium/files/patch-base_files_file__path__watcher__unittest.cc @@ -1,56 +1,56 @@ ---- base/files/file_path_watcher_unittest.cc.orig 2021-03-12 23:57:15 UTC +--- base/files/file_path_watcher_unittest.cc.orig 2021-04-14 18:40:48 UTC +++ base/files/file_path_watcher_unittest.cc @@ -444,12 +444,12 @@ TEST_F(FilePathWatcherTest, WatchDirectory) { VLOG(1) << "Waiting for file1 creation"; ASSERT_TRUE(WaitForEvents()); -#if !defined(OS_APPLE) +#if !defined(OS_APPLE) && !defined(OS_BSD) // Mac implementation does not detect files modified in a directory. ASSERT_TRUE(WriteFile(file1, "content v2")); VLOG(1) << "Waiting for file1 modification"; ASSERT_TRUE(WaitForEvents()); -#endif // !OS_APPLE +#endif // !OS_APPLE && !OS_BSD ASSERT_TRUE(base::DeleteFile(file1)); VLOG(1) << "Waiting for file1 deletion"; @@ -822,7 +822,7 @@ TEST_F(FilePathWatcherTest, LinkedDirectoryPart3) { ASSERT_TRUE(WaitForEvents()); } -#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) +#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) enum Permission { Read, @@ -830,7 +830,7 @@ enum Permission { Execute }; -#if defined(OS_APPLE) +#if defined(OS_APPLE) || defined(OS_BSD) bool ChangeFilePermissions(const FilePath& path, Permission perm, bool allow) { struct stat stat_buf; @@ -859,9 +859,9 @@ bool ChangeFilePermissions(const FilePath& path, Permi } return chmod(path.value().c_str(), stat_buf.st_mode) == 0; } -#endif // defined(OS_APPLE) +#endif // defined(OS_APPLE) || defined(OS_BSD) -#if defined(OS_APPLE) +#if defined(OS_APPLE) || defined(OS_BSD) // Linux implementation of FilePathWatcher doesn't catch attribute changes. // http://crbug.com/78043 // Windows implementation of FilePathWatcher catches attribute changes that @@ -897,7 +897,7 @@ TEST_F(FilePathWatcherTest, DirAttributesChanged) { ASSERT_TRUE(ChangeFilePermissions(test_dir1, Execute, true)); } -#endif // OS_APPLE +#endif // OS_APPLE || OS_BSD #if defined(OS_MAC) diff --git a/www/chromium/files/patch-base_files_file__util.h b/www/chromium/files/patch-base_files_file__util.h index ff39cb3060bf..7c1f77514e28 100644 --- a/www/chromium/files/patch-base_files_file__util.h +++ b/www/chromium/files/patch-base_files_file__util.h @@ -1,28 +1,28 @@ ---- base/files/file_util.h.orig 2021-03-12 23:57:15 UTC +--- base/files/file_util.h.orig 2021-04-14 18:40:48 UTC +++ base/files/file_util.h @@ -284,14 +284,14 @@ BASE_EXPORT bool SetPosixFilePermissions(const FilePat BASE_EXPORT bool ExecutableExistsInPath(Environment* env, const FilePath::StringType& executable); -#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_AIX) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_AIX) || defined(OS_BSD) // Determine if files under a given |path| can be mapped and then mprotect'd // PROT_EXEC. This depends on the mount options used for |path|, which vary // among different Linux distributions and possibly local configuration. It also // depends on details of kernel--ChromeOS uses the noexec option for /dev/shm // but its kernel allows mprotect with PROT_EXEC anyway. BASE_EXPORT bool IsPathExecutable(const FilePath& path); -#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_AIX) +#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_AIX) || defined(OS_BSD) #endif // OS_POSIX @@ -603,7 +603,7 @@ BASE_EXPORT bool VerifyPathControlledByAdmin(const bas // the directory |path|, in the number of FilePath::CharType, or -1 on failure. BASE_EXPORT int GetMaximumPathComponentLength(const base::FilePath& path); -#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_AIX) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_AIX) || defined(OS_BSD) // Broad categories of file systems as returned by statfs() on Linux. enum FileSystemType { FILE_SYSTEM_UNKNOWN, // statfs failed. diff --git a/www/chromium/files/patch-base_files_file__util__posix.cc b/www/chromium/files/patch-base_files_file__util__posix.cc index d906280bcf53..b6fc1193f750 100644 --- a/www/chromium/files/patch-base_files_file__util__posix.cc +++ b/www/chromium/files/patch-base_files_file__util__posix.cc @@ -1,78 +1,78 @@ ---- base/files/file_util_posix.cc.orig 2021-03-12 23:57:15 UTC +--- base/files/file_util_posix.cc.orig 2021-04-14 18:40:48 UTC +++ base/files/file_util_posix.cc @@ -380,7 +380,7 @@ bool CreatePipe(ScopedFD* read_fd, ScopedFD* write_fd, } bool CreateLocalNonBlockingPipe(int fds[2]) { -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) return pipe2(fds, O_CLOEXEC | O_NONBLOCK) == 0; #else int raw_fds[2]; -@@ -927,8 +927,12 @@ bool AllocateFileRegion(File* file, int64_t offset, si +@@ -928,8 +928,12 @@ bool AllocateFileRegion(File* file, int64_t offset, si // space. It can fail because the filesystem doesn't support it. In that case, // use the manual method below. -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) +#if defined(OS_BSD) + if (HANDLE_EINTR(posix_fallocate(file->GetPlatformFile(), offset, size)) != -1) +#else if (HANDLE_EINTR(fallocate(file->GetPlatformFile(), 0, offset, size)) != -1) +#endif return true; DPLOG(ERROR) << "fallocate"; #elif defined(OS_APPLE) -@@ -1098,7 +1102,7 @@ int GetMaximumPathComponentLength(const FilePath& path +@@ -1099,7 +1103,7 @@ int GetMaximumPathComponentLength(const FilePath& path #if !defined(OS_ANDROID) // This is implemented in file_util_android.cc for that platform. bool GetShmemTempDir(bool executable, FilePath* path) { -#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_AIX) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_AIX) || defined(OS_BSD) bool disable_dev_shm = false; #if !BUILDFLAG(IS_CHROMEOS_ASH) && !BUILDFLAG(IS_CHROMEOS_LACROS) disable_dev_shm = CommandLine::ForCurrentProcess()->HasSwitch( -@@ -1114,7 +1118,7 @@ bool GetShmemTempDir(bool executable, FilePath* path) +@@ -1115,7 +1119,7 @@ bool GetShmemTempDir(bool executable, FilePath* path) *path = FilePath("/dev/shm"); return true; } -#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_AIX) +#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_AIX) || defined(OS_BSD) return GetTempDir(path); } #endif // !defined(OS_ANDROID) -@@ -1152,7 +1156,7 @@ PrefetchResult PreReadFile(const FilePath& file_path, +@@ -1153,7 +1157,7 @@ PrefetchResult PreReadFile(const FilePath& file_path, // posix_fadvise() is only available in the Android NDK in API 21+. Older // versions may have the required kernel support, but don't have enough usage // to justify backporting. -#if defined(OS_LINUX) || defined(OS_CHROMEOS) || \ +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) || \ (defined(OS_ANDROID) && __ANDROID_API__ >= 21) File file(file_path, File::FLAG_OPEN | File::FLAG_READ); if (!file.IsValid()) -@@ -1188,7 +1192,7 @@ PrefetchResult PreReadFile(const FilePath& file_path, +@@ -1189,7 +1193,7 @@ PrefetchResult PreReadFile(const FilePath& file_path, return internal::PreReadFileSlow(file_path, max_bytes) ? PrefetchResult{PrefetchResultCode::kSlowSuccess} : PrefetchResult{PrefetchResultCode::kSlowFailed}; -#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || (defined(OS_ANDROID) && +#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) || (defined(OS_ANDROID) && // __ANDROID_API__ >= 21) } -@@ -1223,7 +1227,7 @@ bool MoveUnsafe(const FilePath& from_path, const FileP +@@ -1224,7 +1228,7 @@ bool MoveUnsafe(const FilePath& from_path, const FileP #endif // !defined(OS_NACL_NONSFI) -#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_AIX) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_AIX) || defined(OS_BSD) BASE_EXPORT bool IsPathExecutable(const FilePath& path) { bool result = false; FilePath tmp_file_path; -@@ -1244,6 +1248,6 @@ BASE_EXPORT bool IsPathExecutable(const FilePath& path +@@ -1245,6 +1249,6 @@ BASE_EXPORT bool IsPathExecutable(const FilePath& path } return result; } -#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_AIX) +#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_AIX) || defined(OS_BSD) } // namespace base diff --git a/www/chromium/files/patch-base_files_file__util__unittest.cc b/www/chromium/files/patch-base_files_file__util__unittest.cc index b9f003815230..59ef4f71c48b 100644 --- a/www/chromium/files/patch-base_files_file__util__unittest.cc +++ b/www/chromium/files/patch-base_files_file__util__unittest.cc @@ -1,38 +1,38 @@ ---- base/files/file_util_unittest.cc.orig 2021-03-12 23:57:15 UTC +--- base/files/file_util_unittest.cc.orig 2021-04-14 18:40:48 UTC +++ base/files/file_util_unittest.cc @@ -1638,7 +1638,7 @@ TEST_F(FileUtilTest, DeleteDirRecursiveWithOpenFile) { #endif } -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) // This test will validate that files which would block when read result in a // failure on a call to ReadFileToStringNonBlocking. To accomplish this we will // use a named pipe because it appears as a file on disk and we can control how @@ -1671,7 +1671,7 @@ TEST_F(FileUtilTest, TestNonBlockingFileReadLinux) { ASSERT_EQ(result.size(), 1u); EXPECT_EQ(result[0], 'a'); } -#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) +#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) TEST_F(FileUtilTest, MoveFileNew) { // Create a file @@ -3506,7 +3506,7 @@ TEST_F(FileUtilTest, ReadFileToStringWithNamedPipe) { } #endif // defined(OS_WIN) -#if defined(OS_POSIX) && !defined(OS_APPLE) +#if defined(OS_POSIX) && !defined(OS_APPLE) && !defined(OS_BSD) TEST_F(FileUtilTest, ReadFileToStringWithProcFileSystem) { FilePath file_path("/proc/cpuinfo"); std::string data = "temp"; @@ -3524,7 +3524,7 @@ TEST_F(FileUtilTest, ReadFileToStringWithProcFileSyste EXPECT_FALSE(ReadFileToStringWithMaxSize(file_path, nullptr, 4)); } -#endif // defined(OS_POSIX) && !defined(OS_APPLE) +#endif // defined(OS_POSIX) && !defined(OS_APPLE) && !defined(OS_BSD) TEST_F(FileUtilTest, ReadFileToStringWithLargeFile) { std::string data(kLargeFileSize, 'c'); diff --git a/www/chromium/files/patch-base_files_scoped__file.cc b/www/chromium/files/patch-base_files_scoped__file.cc index b6c65b08e0f5..bcef7a1f0bbd 100644 --- a/www/chromium/files/patch-base_files_scoped__file.cc +++ b/www/chromium/files/patch-base_files_scoped__file.cc @@ -1,11 +1,11 @@ ---- base/files/scoped_file.cc.orig 2021-03-12 23:57:15 UTC +--- base/files/scoped_file.cc.orig 2021-04-14 18:40:48 UTC +++ base/files/scoped_file.cc @@ -30,7 +30,7 @@ void ScopedFDCloseTraits::Free(int fd) { // a single open directory would bypass the entire security model. int ret = IGNORE_EINTR(close(fd)); -#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_APPLE) || \ +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) || defined(OS_APPLE) || \ defined(OS_FUCHSIA) || defined(OS_ANDROID) // NB: Some file descriptors can return errors from close() e.g. network // filesystems such as NFS and Linux input devices. On Linux, macOS, and diff --git a/www/chromium/files/patch-base_i18n_icu__util.cc b/www/chromium/files/patch-base_i18n_icu__util.cc index 42e2785b6749..875f22e7e743 100644 --- a/www/chromium/files/patch-base_i18n_icu__util.cc +++ b/www/chromium/files/patch-base_i18n_icu__util.cc @@ -1,20 +1,20 @@ ---- base/i18n/icu_util.cc.orig 2021-03-12 23:57:15 UTC +--- base/i18n/icu_util.cc.orig 2021-04-14 18:40:48 UTC +++ base/i18n/icu_util.cc @@ -48,7 +48,7 @@ #include "third_party/icu/source/common/unicode/unistr.h" #endif -#if defined(OS_ANDROID) || defined(OS_FUCHSIA) || \ +#if defined(OS_ANDROID) || defined(OS_FUCHSIA) || defined(OS_BSD) || \ ((defined(OS_LINUX) || defined(OS_CHROMEOS)) && !BUILDFLAG(IS_CHROMECAST)) #include "third_party/icu/source/i18n/unicode/timezone.h" #endif @@ -342,7 +342,7 @@ void InitializeIcuTimeZone() { FuchsiaIntlProfileWatcher::GetPrimaryTimeZoneIdForIcuInitialization(); icu::TimeZone::adoptDefault( icu::TimeZone::createTimeZone(icu::UnicodeString::fromUTF8(zone_id))); -#elif (defined(OS_LINUX) || defined(OS_CHROMEOS)) && !BUILDFLAG(IS_CHROMECAST) +#elif (defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)) && !BUILDFLAG(IS_CHROMECAST) // To respond to the time zone change properly, the default time zone // cache in ICU has to be populated on starting up. // See TimeZoneMonitorLinux::NotifyClientsFromImpl(). diff --git a/www/chromium/files/patch-base_linux__util.cc b/www/chromium/files/patch-base_linux__util.cc index 8be465fb7750..619faa4a1798 100644 --- a/www/chromium/files/patch-base_linux__util.cc +++ b/www/chromium/files/patch-base_linux__util.cc @@ -1,38 +1,38 @@ ---- base/linux_util.cc.orig 2021-03-12 23:57:15 UTC +--- base/linux_util.cc.orig 2021-04-14 18:40:48 UTC +++ base/linux_util.cc @@ -15,6 +15,7 @@ #include #include +#include #include "base/files/dir_reader_posix.h" #include "base/files/file_util.h" @@ -79,6 +80,9 @@ class DistroNameGetter { public: DistroNameGetter() { static const char* const kFilesToCheck[] = {"/etc/os-release", +#if defined(OS_BSD) + "/usr/local/etc/os-release", +#endif "/usr/lib/os-release"}; for (const char* file : kFilesToCheck) { if (ReadDistroFromOSReleaseFile(file)) @@ -135,6 +139,9 @@ void SetLinuxDistro(const std::string& distro) { } bool GetThreadsForProcess(pid_t pid, std::vector* tids) { +#if defined(OS_BSD) + return false; +#else // 25 > strlen("/proc//task") + strlen(std::to_string(INT_MAX)) + 1 = 22 char buf[25]; strings::SafeSPrintf(buf, "/proc/%d/task", pid); @@ -154,6 +161,7 @@ bool GetThreadsForProcess(pid_t pid, std::vector #endif -@@ -560,7 +560,7 @@ void CheckCrashTestSighandler(int, siginfo_t* info, vo +@@ -557,7 +557,7 @@ void CheckCrashTestSighandler(int, siginfo_t* info, vo // need the arch-specific boilerplate below, which is inspired by breakpad. // At the same time, on OSX, ucontext.h is deprecated but si_addr works fine. uintptr_t crash_addr = 0; -#if defined(OS_MAC) +#if defined(OS_MAC) || defined(OS_BSD) crash_addr = reinterpret_cast(info->si_addr); #else // OS_* ucontext_t* context = reinterpret_cast(context_ptr); diff --git a/www/chromium/files/patch-base_memory_discardable__memory.cc b/www/chromium/files/patch-base_memory_discardable__memory.cc index b656c7deb12d..0bc1fa1271a9 100644 --- a/www/chromium/files/patch-base_memory_discardable__memory.cc +++ b/www/chromium/files/patch-base_memory_discardable__memory.cc @@ -1,63 +1,63 @@ ---- base/memory/discardable_memory.cc.orig 2021-03-12 23:57:15 UTC +--- base/memory/discardable_memory.cc.orig 2021-04-14 18:40:48 UTC +++ base/memory/discardable_memory.cc @@ -23,7 +23,7 @@ const base::Feature kMadvFreeDiscardableMemory{ "MadvFreeDiscardableMemory", base::FEATURE_DISABLED_BY_DEFAULT}; #endif // defined(OS_POSIX) -#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) const base::Feature kDiscardableMemoryBackingTrial{ "DiscardableMemoryBackingTrial", base::FEATURE_DISABLED_BY_DEFAULT}; @@ -41,13 +41,13 @@ const base::FeatureParam DiscardableMemoryTrialGroup::kEmulatedSharedMemory, &kDiscardableMemoryBackingParamOptions}; -#endif // defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS) +#endif // defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) } // namespace features namespace { -#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) DiscardableMemoryBacking GetBackingForFieldTrial() { DiscardableMemoryTrialGroup trial_group = @@ -61,11 +61,11 @@ DiscardableMemoryBacking GetBackingForFieldTrial() { } NOTREACHED(); } -#endif // defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS) +#endif // defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) } // namespace -#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) // Probe capabilities of this device to determine whether we should participate // in the discardable memory backing trial. @@ -87,18 +87,18 @@ DiscardableMemoryTrialGroup GetDiscardableMemoryBackin DCHECK(DiscardableMemoryBackingFieldTrialIsEnabled()); return features::kDiscardableMemoryBackingParam.Get(); } -#endif // defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS) +#endif // defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) DiscardableMemory::DiscardableMemory() = default; DiscardableMemory::~DiscardableMemory() = default; DiscardableMemoryBacking GetDiscardableMemoryBacking() { -#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) if (DiscardableMemoryBackingFieldTrialIsEnabled()) { return GetBackingForFieldTrial(); } -#endif // defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS) +#endif // defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) #if defined(OS_ANDROID) if (ashmem_device_is_supported()) diff --git a/www/chromium/files/patch-base_memory_discardable__memory__internal.h b/www/chromium/files/patch-base_memory_discardable__memory__internal.h index 349698009629..aad3103a3e2c 100644 --- a/www/chromium/files/patch-base_memory_discardable__memory__internal.h +++ b/www/chromium/files/patch-base_memory_discardable__memory__internal.h @@ -1,19 +1,19 @@ ---- base/memory/discardable_memory_internal.h.orig 2021-03-12 23:57:15 UTC +--- base/memory/discardable_memory_internal.h.orig 2021-04-14 18:40:48 UTC +++ base/memory/discardable_memory_internal.h @@ -10,7 +10,7 @@ #include "base/metrics/field_trial_params.h" #include "build/build_config.h" -#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) namespace base { @@ -47,6 +47,6 @@ GetDiscardableMemoryBackingFieldTrialGroup(); } // namespace base -#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) +#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) || defined(OS_BSD) #endif // BASE_MEMORY_DISCARDABLE_MEMORY_INTERNAL_H_ diff --git a/www/chromium/files/patch-base_memory_madv__free__discardable__memory__posix.cc b/www/chromium/files/patch-base_memory_madv__free__discardable__memory__posix.cc index a8fad1c516da..7d915032033f 100644 --- a/www/chromium/files/patch-base_memory_madv__free__discardable__memory__posix.cc +++ b/www/chromium/files/patch-base_memory_madv__free__discardable__memory__posix.cc @@ -1,11 +1,11 @@ ---- base/memory/madv_free_discardable_memory_posix.cc.orig 2021-03-12 23:57:15 UTC +--- base/memory/madv_free_discardable_memory_posix.cc.orig 2021-04-14 18:40:48 UTC +++ base/memory/madv_free_discardable_memory_posix.cc @@ -292,7 +292,7 @@ void MadvFreeDiscardableMemoryPosix::SetKeepMemoryForT bool MadvFreeDiscardableMemoryPosix::IsResident() const { DFAKE_SCOPED_RECURSIVE_LOCK(thread_collision_warner_); -#if defined(OS_APPLE) +#if defined(OS_APPLE) || defined(OS_BSD) std::vector vec(allocated_pages_); #else std::vector vec(allocated_pages_); diff --git a/www/chromium/files/patch-base_memory_platform__shared__memory__region.h b/www/chromium/files/patch-base_memory_platform__shared__memory__region.h index 20585a18c5b1..d5679bdece87 100644 --- a/www/chromium/files/patch-base_memory_platform__shared__memory__region.h +++ b/www/chromium/files/patch-base_memory_platform__shared__memory__region.h @@ -1,29 +1,29 @@ ---- base/memory/platform_shared_memory_region.h.orig 2021-03-12 23:57:15 UTC +--- base/memory/platform_shared_memory_region.h.orig 2021-04-14 18:40:48 UTC +++ base/memory/platform_shared_memory_region.h @@ -27,7 +27,7 @@ #include "base/files/scoped_file.h" #endif -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) namespace content { class SandboxIPCHandler; } @@ -120,7 +120,7 @@ class BASE_EXPORT PlatformSharedMemoryRegion { kMaxValue = GET_SHMEM_TEMP_DIR_FAILURE }; -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) // Structure to limit access to executable region creation. struct ExecutableRegion { private: @@ -264,7 +264,7 @@ class BASE_EXPORT PlatformSharedMemoryRegion { CheckPlatformHandlePermissionsCorrespondToMode); static PlatformSharedMemoryRegion Create(Mode mode, size_t size -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) , bool executable = false #endif diff --git a/www/chromium/files/patch-base_memory_platform__shared__memory__region__posix.cc b/www/chromium/files/patch-base_memory_platform__shared__memory__region__posix.cc index 1348b041f980..5659e90acc28 100644 --- a/www/chromium/files/patch-base_memory_platform__shared__memory__region__posix.cc +++ b/www/chromium/files/patch-base_memory_platform__shared__memory__region__posix.cc @@ -1,100 +1,100 @@ ---- base/memory/platform_shared_memory_region_posix.cc.orig 2021-03-12 23:57:15 UTC +--- base/memory/platform_shared_memory_region_posix.cc.orig 2021-04-14 18:40:48 UTC +++ base/memory/platform_shared_memory_region_posix.cc @@ -23,7 +23,11 @@ struct ScopedPathUnlinkerTraits { static const FilePath* InvalidValue() { return nullptr; } static void Free(const FilePath* path) { +#if defined(OS_BSD) + if (shm_unlink(path->value().c_str())) +#else if (unlink(path->value().c_str())) +#endif PLOG(WARNING) << "unlink"; } }; @@ -70,7 +74,7 @@ FDPair ScopedFDPair::get() const { return {fd.get(), readonly_fd.get()}; } -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) // static ScopedFD PlatformSharedMemoryRegion::ExecutableRegion::CreateFD(size_t size) { PlatformSharedMemoryRegion region = @@ -79,7 +83,7 @@ ScopedFD PlatformSharedMemoryRegion::ExecutableRegion: return region.PassPlatformHandle().fd; return ScopedFD(); } -#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) +#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) // static PlatformSharedMemoryRegion PlatformSharedMemoryRegion::Take( @@ -204,7 +208,7 @@ bool PlatformSharedMemoryRegion::MapAtInternal(off_t o // static PlatformSharedMemoryRegion PlatformSharedMemoryRegion::Create(Mode mode, size_t size -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) , bool executable #endif @@ -242,6 +246,22 @@ PlatformSharedMemoryRegion PlatformSharedMemoryRegion: return {}; } +#if defined(OS_BSD) + UnguessableToken token = UnguessableToken::Create(); + FilePath path = directory.Append(token.ToString()); + ScopedFD fd{HANDLE_EINTR(shm_open(path.value().c_str(), O_CREAT | O_RDWR, 0700))}; + File shm_file(fd.release()); + + if (!shm_file.IsValid()) { + PLOG(ERROR) << "Creating shared memory failed"; + return {}; + } + + if (HANDLE_EINTR(ftruncate(shm_file.GetPlatformFile(), size)) == -1) { + PLOG(ERROR) << "Failed to extend shared memory object to size " << size; + return {}; + } +#else FilePath path; ScopedFD fd = CreateAndOpenFdForTemporaryFileInDir(directory, &path); File shm_file(fd.release()); @@ -258,6 +278,7 @@ PlatformSharedMemoryRegion PlatformSharedMemoryRegion: } return {}; } +#endif // OS_BSD // Deleting the file prevents anyone else from mapping it in (making it // private), and prevents the need for cleanup (once the last fd is @@ -267,7 +288,11 @@ PlatformSharedMemoryRegion PlatformSharedMemoryRegion: ScopedFD readonly_fd; if (mode == Mode::kWritable) { // Also open as readonly so that we can ConvertToReadOnly(). +#if defined(OS_BSD) + readonly_fd.reset(HANDLE_EINTR(shm_open(path.value().c_str(), O_RDONLY, 0400))); +#else readonly_fd.reset(HANDLE_EINTR(open(path.value().c_str(), O_RDONLY))); +#endif if (!readonly_fd.is_valid()) { DPLOG(ERROR) << "open(\"" << path.value() << "\", O_RDONLY) failed"; return {}; @@ -298,9 +323,15 @@ PlatformSharedMemoryRegion PlatformSharedMemoryRegion: } } +#if defined(OS_BSD) return PlatformSharedMemoryRegion( {ScopedFD(shm_file.TakePlatformFile()), std::move(readonly_fd)}, mode, + size, token); +#else + return PlatformSharedMemoryRegion( + {ScopedFD(shm_file.TakePlatformFile()), std::move(readonly_fd)}, mode, size, UnguessableToken::Create()); +#endif // OS_BSD #endif // !defined(OS_NACL) } diff --git a/www/chromium/files/patch-base_memory_shared__memory__region__unittest.cc b/www/chromium/files/patch-base_memory_shared__memory__region__unittest.cc index e7b126ff9181..184ac299c806 100644 --- a/www/chromium/files/patch-base_memory_shared__memory__region__unittest.cc +++ b/www/chromium/files/patch-base_memory_shared__memory__region__unittest.cc @@ -1,16 +1,16 @@ ---- base/memory/shared_memory_region_unittest.cc.orig 2021-03-12 23:57:15 UTC +--- base/memory/shared_memory_region_unittest.cc.orig 2021-04-14 18:40:48 UTC +++ base/memory/shared_memory_region_unittest.cc @@ -188,10 +188,13 @@ TYPED_TEST(SharedMemoryRegionTest, MapAtNotAlignedOffs std::tie(region, rw_mapping) = CreateMappedRegion(kDataSize); ASSERT_TRUE(region.IsValid()); ASSERT_TRUE(rw_mapping.IsValid()); +#if !defined(OS_BSD) + // On FreeBSD, mmap() does not require an aligned offset off_t offset = kDataSize / 2; typename TypeParam::MappingType mapping = region.MapAt(offset, kDataSize - offset); EXPECT_FALSE(mapping.IsValid()); +#endif } TYPED_TEST(SharedMemoryRegionTest, MapZeroBytesFails) { diff --git a/www/chromium/files/patch-base_message__loop_message__pump__glib.cc b/www/chromium/files/patch-base_message__loop_message__pump__glib.cc index 6e3de9a10129..32cd1a40850f 100644 --- a/www/chromium/files/patch-base_message__loop_message__pump__glib.cc +++ b/www/chromium/files/patch-base_message__loop_message__pump__glib.cc @@ -1,28 +1,28 @@ ---- base/message_loop/message_pump_glib.cc.orig 2021-03-12 23:57:15 UTC +--- base/message_loop/message_pump_glib.cc.orig 2021-04-14 18:40:48 UTC +++ base/message_loop/message_pump_glib.cc @@ -8,6 +8,11 @@ #include #include +#if defined(OS_BSD) +#include +#include +#endif + #include "base/logging.h" #include "base/numerics/safe_conversions.h" #include "base/posix/eintr_wrapper.h" @@ -48,9 +53,13 @@ int GetTimeIntervalMilliseconds(TimeTicks next_task_ti } bool RunningOnMainThread() { +#if defined(OS_BSD) + return pthread_main_np(); +#else auto pid = getpid(); auto tid = PlatformThread::CurrentId(); return pid > 0 && tid > 0 && pid == tid; +#endif } // A brief refresher on GLib: diff --git a/www/chromium/files/patch-base_native__library__posix.cc b/www/chromium/files/patch-base_native__library__posix.cc index d414a8d50f6b..a7ea746723c5 100644 --- a/www/chromium/files/patch-base_native__library__posix.cc +++ b/www/chromium/files/patch-base_native__library__posix.cc @@ -1,11 +1,11 @@ ---- base/native_library_posix.cc.orig 2021-03-12 23:57:15 UTC +--- base/native_library_posix.cc.orig 2021-04-14 18:40:48 UTC +++ base/native_library_posix.cc -@@ -29,7 +29,7 @@ NativeLibrary LoadNativeLibraryWithOptions(const FileP +@@ -31,7 +31,7 @@ NativeLibrary LoadNativeLibraryWithOptions(const FileP // http://crbug.com/17943, http://crbug.com/17557, http://crbug.com/36892, // and http://crbug.com/40794. int flags = RTLD_LAZY; -#if defined(OS_ANDROID) || !defined(RTLD_DEEPBIND) +#if defined(OS_ANDROID) || !defined(RTLD_DEEPBIND) || defined(OS_BSD) // Certain platforms don't define RTLD_DEEPBIND. Android dlopen() requires // further investigation, as it might vary across versions. Crash here to // warn developers that they're trying to rely on uncertain behavior. diff --git a/www/chromium/files/patch-base_native__library__unittest.cc b/www/chromium/files/patch-base_native__library__unittest.cc index a0e426036038..58952dbd6b3a 100644 --- a/www/chromium/files/patch-base_native__library__unittest.cc +++ b/www/chromium/files/patch-base_native__library__unittest.cc @@ -1,11 +1,11 @@ ---- base/native_library_unittest.cc.orig 2021-03-12 23:57:15 UTC +--- base/native_library_unittest.cc.orig 2021-04-14 18:40:48 UTC +++ base/native_library_unittest.cc @@ -118,7 +118,7 @@ TEST(NativeLibraryTest, LoadLibrary) { // Android dlopen() requires further investigation, as it might vary across // versions with respect to symbol resolution scope. // TSan and MSan error out on RTLD_DEEPBIND, https://crbug.com/705255 -#if !defined(OS_ANDROID) && !defined(THREAD_SANITIZER) && \ +#if !defined(OS_ANDROID) && !defined(OS_BSD) && !defined(THREAD_SANITIZER) && \ !defined(MEMORY_SANITIZER) // Verifies that the |prefer_own_symbols| option satisfies its guarantee that diff --git a/www/chromium/files/patch-base_numerics_safe__math__shared__impl.h b/www/chromium/files/patch-base_numerics_safe__math__shared__impl.h index 7776c0cc6b0e..4a3d6cc92eb5 100644 --- a/www/chromium/files/patch-base_numerics_safe__math__shared__impl.h +++ b/www/chromium/files/patch-base_numerics_safe__math__shared__impl.h @@ -1,12 +1,12 @@ ---- base/numerics/safe_math_shared_impl.h.orig 2021-03-12 23:57:15 UTC +--- base/numerics/safe_math_shared_impl.h.orig 2021-04-14 18:40:48 UTC +++ base/numerics/safe_math_shared_impl.h @@ -24,8 +24,7 @@ // Where available use builtin math overflow support on Clang and GCC. #elif !defined(__native_client__) && \ ((defined(__clang__) && \ - ((__clang_major__ > 3) || \ - (__clang_major__ == 3 && __clang_minor__ >= 4))) || \ + (__clang_major__ > 6)) || \ (defined(__GNUC__) && __GNUC__ >= 5)) #include "base/numerics/safe_math_clang_gcc_impl.h" #define BASE_HAS_OPTIMIZED_SAFE_MATH (1) diff --git a/www/chromium/files/patch-base_path__service__unittest.cc b/www/chromium/files/patch-base_path__service__unittest.cc index 236be0173e7d..e67c5a871563 100644 --- a/www/chromium/files/patch-base_path__service__unittest.cc +++ b/www/chromium/files/patch-base_path__service__unittest.cc @@ -1,11 +1,11 @@ ---- base/path_service_unittest.cc.orig 2021-03-12 23:57:15 UTC +--- base/path_service_unittest.cc.orig 2021-04-14 18:40:48 UTC +++ base/path_service_unittest.cc @@ -38,7 +38,7 @@ bool ReturnsValidPath(int dir_type) { if (dir_type == DIR_CACHE) check_path_exists = false; #endif -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) // On the linux try-bots: a path is returned (e.g. /home/chrome-bot/Desktop), // but it doesn't exist. if (dir_type == DIR_USER_DESKTOP) diff --git a/www/chromium/files/patch-base_posix_can__lower__nice__to.cc b/www/chromium/files/patch-base_posix_can__lower__nice__to.cc index 64e3f2168c3c..9ffbb4524a4d 100644 --- a/www/chromium/files/patch-base_posix_can__lower__nice__to.cc +++ b/www/chromium/files/patch-base_posix_can__lower__nice__to.cc @@ -1,20 +1,20 @@ ---- base/posix/can_lower_nice_to.cc.orig 2021-03-12 23:57:15 UTC +--- base/posix/can_lower_nice_to.cc.orig 2021-04-14 18:40:48 UTC +++ base/posix/can_lower_nice_to.cc @@ -31,6 +31,9 @@ bool CanLowerNiceTo(int nice_value) { if (geteuid() == 0) return true; +#if defined(OS_BSD) + return false; +#else // 2. Skip checking the CAP_SYS_NICE permission because it would require // libcap.so. @@ -54,6 +57,7 @@ bool CanLowerNiceTo(int nice_value) { // And lowering niceness to |nice_value| is allowed if it is greater than or // equal to the limit: return nice_value >= lowest_nice_allowed; +#endif } } // namespace internal diff --git a/www/chromium/files/patch-base_posix_unix__domain__socket.cc b/www/chromium/files/patch-base_posix_unix__domain__socket.cc index 7d9441824666..567e4ba035e0 100644 --- a/www/chromium/files/patch-base_posix_unix__domain__socket.cc +++ b/www/chromium/files/patch-base_posix_unix__domain__socket.cc @@ -1,49 +1,49 @@ ---- base/posix/unix_domain_socket.cc.orig 2021-03-12 23:57:15 UTC +--- base/posix/unix_domain_socket.cc.orig 2021-04-14 18:40:48 UTC +++ base/posix/unix_domain_socket.cc @@ -5,7 +5,10 @@ #include "base/posix/unix_domain_socket.h" #include +#include #include +#include +#include a #if !defined(OS_NACL_NONSFI) #include #endif @@ -29,6 +32,14 @@ namespace base { const size_t UnixDomainSocket::kMaxFileDescriptors = 16; +#ifndef SCM_CREDENTIALS +# define SCM_CREDENTIALS 0x9001 +#endif + +#ifndef SO_PASSCRED +# define SO_PASSCRED 0x9002 +#endif + #if !defined(OS_NACL_NONSFI) bool CreateSocketPair(ScopedFD* one, ScopedFD* two) { int raw_socks[2]; @@ -151,7 +162,7 @@ ssize_t UnixDomainSocket::RecvMsgWithFlags(int fd, #if !defined(OS_NACL_NONSFI) && !defined(OS_APPLE) // The PNaCl toolchain for Non-SFI binary build and macOS do not support // ucred. macOS supports xucred, but this structure is insufficient. - + CMSG_SPACE(sizeof(struct ucred)) + + CMSG_SPACE(sizeof(struct cmsgcred)) #endif // !defined(OS_NACL_NONSFI) && !defined(OS_APPLE) ; char control_buffer[kControlBufferSize]; @@ -181,9 +192,9 @@ ssize_t UnixDomainSocket::RecvMsgWithFlags(int fd, // SCM_CREDENTIALS. if (cmsg->cmsg_level == SOL_SOCKET && cmsg->cmsg_type == SCM_CREDENTIALS) { - DCHECK_EQ(payload_len, sizeof(struct ucred)); + DCHECK_EQ(payload_len, sizeof(struct cmsgcred)); DCHECK_EQ(pid, -1); - pid = reinterpret_cast(CMSG_DATA(cmsg))->pid; + pid = getpid(); } #endif // !defined(OS_NACL_NONSFI) && !defined(OS_APPLE) } diff --git a/www/chromium/files/patch-base_posix_unix__domain__socket__unittest.cc b/www/chromium/files/patch-base_posix_unix__domain__socket__unittest.cc index b3944551d784..47dce76652a8 100644 --- a/www/chromium/files/patch-base_posix_unix__domain__socket__unittest.cc +++ b/www/chromium/files/patch-base_posix_unix__domain__socket__unittest.cc @@ -1,12 +1,12 @@ ---- base/posix/unix_domain_socket_unittest.cc.orig 2021-03-12 23:57:15 UTC +--- base/posix/unix_domain_socket_unittest.cc.orig 2021-04-14 18:40:48 UTC +++ base/posix/unix_domain_socket_unittest.cc @@ -8,6 +8,9 @@ #include #include #include +#if defined(OS_BSD) +#include +#endif #include #include "base/bind.h" diff --git a/www/chromium/files/patch-base_process_internal__linux.cc b/www/chromium/files/patch-base_process_internal__linux.cc index f8e0799d3d6a..d0dba67d9274 100644 --- a/www/chromium/files/patch-base_process_internal__linux.cc +++ b/www/chromium/files/patch-base_process_internal__linux.cc @@ -1,97 +1,97 @@ ---- base/process/internal_linux.cc.orig 2021-03-12 23:57:15 UTC +--- base/process/internal_linux.cc.orig 2021-04-14 18:40:48 UTC +++ base/process/internal_linux.cc @@ -30,7 +30,11 @@ namespace internal { const char kProcDir[] = "/proc"; +#if defined(OS_BSD) +const char kStatFile[] = "status"; +#else const char kStatFile[] = "stat"; +#endif FilePath GetProcPidDir(pid_t pid) { return FilePath(kProcDir).Append(NumberToString(pid)); @@ -66,6 +70,7 @@ bool ReadProcFile(const FilePath& file, std::string* b DLOG(WARNING) << "Failed to read " << file.MaybeAsASCII(); return false; } + return !buffer->empty(); } @@ -81,6 +86,22 @@ bool ParseProcStats(const std::string& stats_data, if (stats_data.empty()) return false; +#if defined(OS_BSD) + proc_stats->clear(); + + std::vector other_stats = SplitString( + stats_data, " ", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); + + for (const auto& i : other_stats) { + auto pos = i.find(','); + + if (pos == std::string::npos) { + proc_stats->push_back(i); + } else { + proc_stats->push_back(i.substr(0, pos)); + } + } +#else // The stat file is formatted as: // pid (process name) data1 data2 .... dataN // Look for the closing paren by scanning backwards, to avoid being fooled by @@ -110,6 +131,7 @@ bool ParseProcStats(const std::string& stats_data, base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); for (const auto& i : other_stats) proc_stats->push_back(i); +#endif return true; } @@ -157,7 +179,11 @@ int64_t ReadProcStatsAndGetFieldAsInt64(pid_t pid, Pro } int64_t ReadProcSelfStatsAndGetFieldAsInt64(ProcStatsFields field_num) { +#if defined(OS_BSD) + FilePath stat_file = FilePath(kProcDir).Append("curproc").Append(kStatFile); +#else FilePath stat_file = FilePath(kProcDir).Append("self").Append(kStatFile); +#endif return ReadStatFileAndGetFieldAsInt64(stat_file, field_num); } @@ -173,6 +199,9 @@ size_t ReadProcStatsAndGetFieldAsSizeT(pid_t pid, } Time GetBootTime() { +#if defined(OS_BSD) + return Time(); +#else FilePath path("/proc/stat"); std::string contents; if (!ReadProcFile(path, &contents)) @@ -186,9 +215,13 @@ Time GetBootTime() { if (!StringToInt(btime_it->second, &btime)) return Time(); return Time::FromTimeT(btime); +#endif } TimeDelta GetUserCpuTimeSinceBoot() { +#if defined(OS_BSD) + return TimeDelta(); +#else FilePath path("/proc/stat"); std::string contents; if (!ReadProcFile(path, &contents)) @@ -212,6 +245,7 @@ TimeDelta GetUserCpuTimeSinceBoot() { return TimeDelta(); return ClockTicksToTimeDelta(user + nice); +#endif } TimeDelta ClockTicksToTimeDelta(int clock_ticks) { diff --git a/www/chromium/files/patch-base_process_internal__linux.h b/www/chromium/files/patch-base_process_internal__linux.h index b8a5fa684b9c..7a3c69cb475f 100644 --- a/www/chromium/files/patch-base_process_internal__linux.h +++ b/www/chromium/files/patch-base_process_internal__linux.h @@ -1,34 +1,34 @@ ---- base/process/internal_linux.h.orig 2021-03-12 23:57:15 UTC +--- base/process/internal_linux.h.orig 2021-04-14 18:40:48 UTC +++ base/process/internal_linux.h @@ -18,6 +18,8 @@ #include "base/strings/string_number_conversions.h" #include "base/threading/platform_thread.h" +#include /* pid_t */ + namespace base { class Time; @@ -59,6 +61,14 @@ bool ParseProcStats(const std::string& stats_data, // If the ordering ever changes, carefully review functions that use these // values. enum ProcStatsFields { +#if defined(OS_BSD) + VM_COMM = 0, // Command name. + VM_PPID = 2, // Parent process id. + VM_PGRP = 3, // Process group id. + VM_STARTTIME = 7, // The process start time. + VM_UTIME = 8, // The user time. + VM_STIME = 9, // The system time +#else VM_COMM = 1, // Filename of executable, without parentheses. VM_STATE = 2, // Letter indicating the state of the process. VM_PPID = 3, // PID of the parent. @@ -71,6 +81,7 @@ enum ProcStatsFields { VM_STARTTIME = 21, // The time the process started in clock ticks. VM_VSIZE = 22, // Virtual memory size in bytes. VM_RSS = 23, // Resident Set Size in pages. +#endif }; // Reads the |field_num|th field from |proc_stats|. Returns 0 on failure. diff --git a/www/chromium/files/patch-base_process_kill.h b/www/chromium/files/patch-base_process_kill.h index 197258681b45..b135b44d2e28 100644 --- a/www/chromium/files/patch-base_process_kill.h +++ b/www/chromium/files/patch-base_process_kill.h @@ -1,16 +1,16 @@ ---- base/process/kill.h.orig 2021-03-12 23:57:15 UTC +--- base/process/kill.h.orig 2021-04-14 18:40:48 UTC +++ base/process/kill.h @@ -113,11 +113,11 @@ BASE_EXPORT TerminationStatus GetTerminationStatus(Pro BASE_EXPORT TerminationStatus GetKnownDeadTerminationStatus( ProcessHandle handle, int* exit_code); -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) // Spawns a thread to wait asynchronously for the child |process| to exit // and then reaps it. BASE_EXPORT void EnsureProcessGetsReaped(Process process); -#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) +#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) #endif // defined(OS_POSIX) // Registers |process| to be asynchronously monitored for termination, forcibly diff --git a/www/chromium/files/patch-base_process_kill__posix.cc b/www/chromium/files/patch-base_process_kill__posix.cc index 71f59db89ba7..6aaac4f25cc0 100644 --- a/www/chromium/files/patch-base_process_kill__posix.cc +++ b/www/chromium/files/patch-base_process_kill__posix.cc @@ -1,20 +1,20 @@ ---- base/process/kill_posix.cc.orig 2021-03-12 23:57:15 UTC +--- base/process/kill_posix.cc.orig 2021-04-14 18:40:48 UTC +++ base/process/kill_posix.cc @@ -160,7 +160,7 @@ void EnsureProcessTerminated(Process process) { 0, new BackgroundReaper(std::move(process), TimeDelta::FromSeconds(2))); } -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) void EnsureProcessGetsReaped(Process process) { DCHECK(!process.is_current()); @@ -171,7 +171,7 @@ void EnsureProcessGetsReaped(Process process) { PlatformThread::CreateNonJoinable( 0, new BackgroundReaper(std::move(process), TimeDelta())); } -#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) +#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) #endif // !defined(OS_APPLE) #endif // !defined(OS_NACL_NONSFI) diff --git a/www/chromium/files/patch-base_process_launch.cc b/www/chromium/files/patch-base_process_launch.cc index 3abc9079ab29..59944e45465b 100644 --- a/www/chromium/files/patch-base_process_launch.cc +++ b/www/chromium/files/patch-base_process_launch.cc @@ -1,11 +1,11 @@ ---- base/process/launch.cc.orig 2021-03-12 23:57:15 UTC +--- base/process/launch.cc.orig 2021-04-14 18:40:48 UTC +++ base/process/launch.cc @@ -15,7 +15,7 @@ LaunchOptions::~LaunchOptions() = default; LaunchOptions LaunchOptionsForTest() { LaunchOptions options; -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) // To prevent accidental privilege sharing to an untrusted child, processes // are started with PR_SET_NO_NEW_PRIVS. Do not set that here, since this // new child will be used for testing only. diff --git a/www/chromium/files/patch-base_process_launch.h b/www/chromium/files/patch-base_process_launch.h index 84f428750a77..f9695cb9f7f7 100644 --- a/www/chromium/files/patch-base_process_launch.h +++ b/www/chromium/files/patch-base_process_launch.h @@ -1,29 +1,29 @@ ---- base/process/launch.h.orig 2021-03-12 23:57:15 UTC +--- base/process/launch.h.orig 2021-04-14 18:40:48 UTC +++ base/process/launch.h -@@ -182,7 +182,7 @@ struct BASE_EXPORT LaunchOptions { +@@ -190,7 +190,7 @@ struct BASE_EXPORT LaunchOptions { bool clear_environment = false; #endif // OS_WIN || OS_POSIX || OS_FUCHSIA -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) // If non-zero, start the process using clone(), using flags as provided. // Unlike in clone, clone_flags may not contain a custom termination signal // that is sent to the parent when the child dies. The termination signal will -@@ -195,7 +195,7 @@ struct BASE_EXPORT LaunchOptions { +@@ -203,7 +203,7 @@ struct BASE_EXPORT LaunchOptions { // Sets parent process death signal to SIGKILL. bool kill_on_parent_death = false; -#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) +#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) #if defined(OS_MAC) // Mach ports that will be accessible to the child process. These are not -@@ -410,7 +410,7 @@ BASE_EXPORT void RaiseProcessToHighPriority(); +@@ -418,7 +418,7 @@ BASE_EXPORT void RaiseProcessToHighPriority(); // binary. This should not be called in production/released code. BASE_EXPORT LaunchOptions LaunchOptionsForTest(); -#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_NACL_NONSFI) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_NACL_NONSFI) || defined(OS_BSD) // A wrapper for clone with fork-like behavior, meaning that it returns the // child's pid in the parent and 0 in the child. |flags|, |ptid|, and |ctid| are // as in the clone system call (the CLONE_VM flag is not supported). diff --git a/www/chromium/files/patch-base_process_launch__posix.cc b/www/chromium/files/patch-base_process_launch__posix.cc index b55eb2ddc7f7..f312ca87e251 100644 --- a/www/chromium/files/patch-base_process_launch__posix.cc +++ b/www/chromium/files/patch-base_process_launch__posix.cc @@ -1,80 +1,80 @@ ---- base/process/launch_posix.cc.orig 2021-03-12 23:57:15 UTC +--- base/process/launch_posix.cc.orig 2021-04-14 18:40:48 UTC +++ base/process/launch_posix.cc @@ -59,12 +59,14 @@ #if defined(OS_FREEBSD) #include #include +#include #endif #if defined(OS_APPLE) #error "macOS should use launch_mac.cc" #endif +#pragma weak environ extern char** environ; namespace base { @@ -221,6 +223,28 @@ void CloseSuperfluousFds(const base::InjectiveMultimap DirReaderPosix fd_dir(kFDDir); if (!fd_dir.IsValid()) { // Fallback case: Try every possible fd. + +#if defined(OS_FREEBSD) + // CEM: blast away most of the range with closefrom(). A common use case + // of this function only maps STDIN/STDOUT/STDERR and closefrom(3) is much + // cheaper than x00,000 close(2) invocations with a high RLIMIT_NOFILE. + // + // In the other caller, it is still very likely that the fds we care about + // are in relatively low number space and we can save hundreds of thousands + // of syscalls. + int max_valid_fd = -1; + for (size_t j = 0; j < saved_mapping.size(); j++) { + int fd = saved_mapping[j].dest; + if (fd > max_valid_fd) + max_valid_fd = fd; + } + if (max_valid_fd < STDERR_FILENO) + max_valid_fd = STDERR_FILENO; + + closefrom(max_valid_fd + 1); + max_fds = static_cast(max_valid_fd) + 1; +#endif + for (size_t i = 0; i < max_fds; ++i) { const int fd = static_cast(i); if (fd == STDIN_FILENO || fd == STDOUT_FILENO || fd == STDERR_FILENO) @@ -444,22 +468,32 @@ Process LaunchProcess(const std::vector& // Set NO_NEW_PRIVS by default. Since NO_NEW_PRIVS only exists in kernel // 3.5+, do not check the return value of prctl here. -#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_AIX) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_AIX) || defined(OS_FREEBSD) #ifndef PR_SET_NO_NEW_PRIVS #define PR_SET_NO_NEW_PRIVS 38 #endif +#if !defined(OS_FREEBSD) if (!options.allow_new_privs) { if (prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0) && errno != EINVAL) { // Only log if the error is not EINVAL (i.e. not supported). RAW_LOG(FATAL, "prctl(PR_SET_NO_NEW_PRIVS) failed"); } } +#endif if (options.kill_on_parent_death) { +#if defined(OS_FREEBSD) + int procctl_value = SIGKILL; + if (procctl(P_PID, 0, PROC_PDEATHSIG_CTL, &procctl_value)) { + RAW_LOG(ERROR, "procctl(PROC_PDEATHSIG_CTL) failed"); + _exit(127); + } +#else if (prctl(PR_SET_PDEATHSIG, SIGKILL) != 0) { RAW_LOG(ERROR, "prctl(PR_SET_PDEATHSIG) failed"); _exit(127); } +#endif } #endif diff --git a/www/chromium/files/patch-base_process_memory.cc b/www/chromium/files/patch-base_process_memory.cc index 9427d265694f..a51cddeb2ed4 100644 --- a/www/chromium/files/patch-base_process_memory.cc +++ b/www/chromium/files/patch-base_process_memory.cc @@ -1,20 +1,11 @@ ---- base/process/memory.cc.orig 2021-03-12 23:57:15 UTC +--- base/process/memory.cc.orig 2021-04-14 18:40:48 UTC +++ base/process/memory.cc -@@ -55,7 +55,7 @@ NOINLINE void OnNoMemoryInternal(size_t size) { - } // namespace internal - - // Defined in memory_win.cc for Windows. --#if !defined(OS_WIN) -+#if !defined(OS_WIN) && !defined(OS_BSD) - - namespace { - -@@ -74,7 +74,7 @@ void TerminateBecauseOutOfMemory(size_t size) { - #endif // !defined(OS_WIN) +@@ -68,7 +68,7 @@ void TerminateBecauseOutOfMemory(size_t size) { + } // Defined in memory_mac.mm for Mac. -#if !defined(OS_APPLE) +#if !defined(OS_APPLE) && !defined(OS_BSD) bool UncheckedCalloc(size_t num_items, size_t size, void** result) { const size_t alloc_size = num_items * size; diff --git a/www/chromium/files/patch-base_process_memory.h b/www/chromium/files/patch-base_process_memory.h index ce431beeb301..03eff8b25b5a 100644 --- a/www/chromium/files/patch-base_process_memory.h +++ b/www/chromium/files/patch-base_process_memory.h @@ -1,11 +1,11 @@ ---- base/process/memory.h.orig 2021-03-12 23:57:15 UTC +--- base/process/memory.h.orig 2021-04-14 18:40:48 UTC +++ base/process/memory.h -@@ -24,7 +24,7 @@ BASE_EXPORT void EnableTerminationOnOutOfMemory(); - // Crash reporting classifies such crashes as OOM. - BASE_EXPORT void TerminateBecauseOutOfMemory(size_t size); +@@ -31,7 +31,7 @@ BASE_EXPORT void TerminateBecauseOutOfMemory(size_t si + // TODO: this can be removed when Breakpad is no longer supported. + BASE_EXPORT extern size_t g_oom_size; -#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) || \ +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) || defined(OS_BSD) || \ defined(OS_AIX) - BASE_EXPORT extern size_t g_oom_size; - + // The maximum allowed value for the OOM score. + const int kMaxOomScore = 1000; diff --git a/www/chromium/files/patch-base_process_memory__stubs.cc b/www/chromium/files/patch-base_process_memory__stubs.cc new file mode 100644 index 000000000000..80ef5e08c505 --- /dev/null +++ b/www/chromium/files/patch-base_process_memory__stubs.cc @@ -0,0 +1,14 @@ +--- base/process/memory_stubs.cc.orig 2021-04-22 13:13:03 UTC ++++ base/process/memory_stubs.cc +@@ -19,9 +19,11 @@ bool AdjustOOMScore(ProcessId process, int score) { + return false; + } + ++#if !defined(OS_BSD) + void TerminateBecauseOutOfMemory(size_t size) { + abort(); + } ++#endif + + // UncheckedMalloc and Calloc exist so that platforms making use of + // EnableTerminationOnOutOfMemory have a way to allocate memory without diff --git a/www/chromium/files/patch-base_process_memory__unittest.cc b/www/chromium/files/patch-base_process_memory__unittest.cc index ebd8ce1dc915..ec0df47ff011 100644 --- a/www/chromium/files/patch-base_process_memory__unittest.cc +++ b/www/chromium/files/patch-base_process_memory__unittest.cc @@ -1,66 +1,66 @@ ---- base/process/memory_unittest.cc.orig 2021-03-12 23:57:15 UTC +--- base/process/memory_unittest.cc.orig 2021-04-14 18:40:48 UTC +++ base/process/memory_unittest.cc @@ -38,6 +38,8 @@ #if defined(OS_LINUX) || defined(OS_CHROMEOS) #include #include "base/test/malloc_wrapper.h" +#elif defined(OS_BSD) +#include "base/test/malloc_wrapper.h" #endif #if defined(OS_WIN) -@@ -105,9 +107,9 @@ TEST(MemoryTest, AllocatorShimWorking) { +@@ -110,9 +112,9 @@ TEST(MemoryTest, AllocatorShimWorking) { #endif } -// OpenBSD does not support these tests. Don't test these on ASan/TSan/MSan +// BSD does not support these tests. Don't test these on ASan/TSan/MSan // configurations: only test the real allocator. -#if !defined(OS_OPENBSD) && BUILDFLAG(USE_ALLOCATOR_SHIM) && \ +#if !defined(OS_BSD) && BUILDFLAG(USE_ALLOCATOR_SHIM) && \ !defined(MEMORY_TOOL_REPLACES_ALLOCATOR) namespace { -@@ -299,7 +301,7 @@ TEST_F(OutOfMemoryDeathTest, SecurityAlignedRealloc) { +@@ -307,7 +309,7 @@ TEST_F(OutOfMemoryDeathTest, SecurityAlignedRealloc) { #endif // defined(OS_WIN) #endif // !defined(OS_MAC) && !defined(OS_ANDROID) -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) TEST_F(OutOfMemoryDeathTest, Valloc) { ASSERT_OOM_DEATH({ -@@ -345,7 +347,7 @@ TEST_F(OutOfMemoryDeathTest, ViaSharedLibraries) { +@@ -353,7 +355,7 @@ TEST_F(OutOfMemoryDeathTest, ViaSharedLibraries) { value_ = MallocWrapper(test_size_); }); } -#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) +#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) // Android doesn't implement posix_memalign(). #if defined(OS_POSIX) && !defined(OS_ANDROID) -@@ -496,7 +498,7 @@ TEST_F(OutOfMemoryTest, TerminateBecauseOutOfMemoryRep +@@ -504,7 +506,7 @@ TEST_F(OutOfMemoryTest, TerminateBecauseOutOfMemoryRep #endif // OS_WIN #if defined(ARCH_CPU_32_BITS) && \ - (defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS)) + (defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)) void TestAllocationsReleaseReservation(void* (*alloc_fn)(size_t), void (*free_fn)(void*)) { -@@ -554,7 +556,7 @@ TEST_F(OutOfMemoryHandledTest, NewReleasesReservation) +@@ -562,7 +564,7 @@ TEST_F(OutOfMemoryHandledTest, NewReleasesReservation) [](size_t size) { return static_cast(new char[size]); }, [](void* ptr) { delete[] static_cast(ptr); }); } -#endif // defined(ARCH_CPU_32_BITS) && (defined(OS_WIN) || defined(OS_LINUX) || +#endif // defined(ARCH_CPU_32_BITS) && (defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD) || // defined(OS_CHROMEOS)) // See the comment in |UncheckedMalloc()|, it behaves as malloc() in these -@@ -616,5 +618,5 @@ TEST_F(OutOfMemoryHandledTest, UncheckedCalloc) { +@@ -624,5 +626,5 @@ TEST_F(OutOfMemoryHandledTest, UncheckedCalloc) { #endif // BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) || defined(OS_ANDROID) -#endif // !defined(OS_OPENBSD) && BUILDFLAG(USE_ALLOCATOR_SHIM) && +#endif // !defined(OS_BSD) && BUILDFLAG(USE_ALLOCATOR_SHIM) && // !defined(MEMORY_TOOL_REPLACES_ALLOCATOR) diff --git a/www/chromium/files/patch-base_process_process__handle.cc b/www/chromium/files/patch-base_process_process__handle.cc index 28e99ae6c9d4..781e7bafa948 100644 --- a/www/chromium/files/patch-base_process_process__handle.cc +++ b/www/chromium/files/patch-base_process_process__handle.cc @@ -1,11 +1,11 @@ ---- base/process/process_handle.cc.orig 2021-03-12 23:57:15 UTC +--- base/process/process_handle.cc.orig 2021-04-14 18:40:48 UTC +++ base/process/process_handle.cc @@ -30,7 +30,7 @@ UniqueProcId GetUniqueIdForProcess() { : UniqueProcId(GetCurrentProcId()); } -#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_AIX) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_AIX) || defined(OS_BSD) void InitUniqueIdForProcessInPidNamespace(ProcessId pid_outside_of_namespace) { DCHECK(pid_outside_of_namespace != kNullProcessId); diff --git a/www/chromium/files/patch-base_process_process__handle.h b/www/chromium/files/patch-base_process_process__handle.h index 18238683a05f..962a580a10a9 100644 --- a/www/chromium/files/patch-base_process_process__handle.h +++ b/www/chromium/files/patch-base_process_process__handle.h @@ -1,11 +1,11 @@ ---- base/process/process_handle.h.orig 2021-03-12 23:57:15 UTC +--- base/process/process_handle.h.orig 2021-04-14 18:40:48 UTC +++ base/process/process_handle.h @@ -103,7 +103,7 @@ BASE_EXPORT ProcessId GetCurrentProcId(); // processes may be reused. BASE_EXPORT UniqueProcId GetUniqueIdForProcess(); -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) // When a process is started in a different PID namespace from the browser // process, this function must be called with the process's PID in the browser's // PID namespace in order to initialize its unique ID. Not thread safe. diff --git a/www/chromium/files/patch-base_process_process__handle__freebsd.cc b/www/chromium/files/patch-base_process_process__handle__freebsd.cc index 76936bbfe294..20a4c07237c3 100644 --- a/www/chromium/files/patch-base_process_process__handle__freebsd.cc +++ b/www/chromium/files/patch-base_process_process__handle__freebsd.cc @@ -1,17 +1,17 @@ ---- base/process/process_handle_freebsd.cc.orig 2021-03-12 23:57:15 UTC +--- base/process/process_handle_freebsd.cc.orig 2021-04-14 18:40:48 UTC +++ base/process/process_handle_freebsd.cc @@ -16,10 +16,13 @@ namespace base { ProcessId GetParentProcessId(ProcessHandle process) { struct kinfo_proc info; - size_t length; + size_t length = sizeof(struct kinfo_proc); int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, process }; if (sysctl(mib, base::size(mib), &info, &length, NULL, 0) < 0) + return -1; + + if (length < sizeof(struct kinfo_proc)) return -1; return info.ki_ppid; diff --git a/www/chromium/files/patch-base_process_process__iterator__freebsd.cc b/www/chromium/files/patch-base_process_process__iterator__freebsd.cc index a85419c8c54d..c83ab74f2678 100644 --- a/www/chromium/files/patch-base_process_process__iterator__freebsd.cc +++ b/www/chromium/files/patch-base_process_process__iterator__freebsd.cc @@ -1,53 +1,53 @@ ---- base/process/process_iterator_freebsd.cc.orig 2021-03-12 23:57:15 UTC +--- base/process/process_iterator_freebsd.cc.orig 2021-04-14 18:40:48 UTC +++ base/process/process_iterator_freebsd.cc @@ -10,6 +10,10 @@ #include #include +/* getuid() */ +#include +#include + #include "base/logging.h" #include "base/stl_util.h" #include "base/strings/string_split.h" @@ -40,7 +44,7 @@ ProcessIterator::ProcessIterator(const ProcessFilter* num_of_kinfo_proc += 16; kinfo_procs_.resize(num_of_kinfo_proc); len = num_of_kinfo_proc * sizeof(struct kinfo_proc); - if (sysctl(mib, base::size(mib), &kinfo_procs_[0], &len, NULL, 0) < 0) { + if (sysctl(mib, base::size(mib), kinfo_procs_.data(), &len, NULL, 0) < 0) { // If we get a mem error, it just means we need a bigger buffer, so // loop around again. Anything else is a real error and give up. if (errno != ENOMEM) { @@ -50,7 +54,7 @@ ProcessIterator::ProcessIterator(const ProcessFilter* } } else { // Got the list, just make sure we're sized exactly right - size_t num_of_kinfo_proc = len / sizeof(struct kinfo_proc); + num_of_kinfo_proc = len / sizeof(struct kinfo_proc); kinfo_procs_.resize(num_of_kinfo_proc); done = true; } @@ -72,18 +76,13 @@ bool ProcessIterator::CheckForNextProcess() { for (; index_of_kinfo_proc_ < kinfo_procs_.size(); ++index_of_kinfo_proc_) { size_t length; struct kinfo_proc kinfo = kinfo_procs_[index_of_kinfo_proc_]; - int mib[] = { CTL_KERN, KERN_PROC_ARGS, kinfo.ki_pid }; + int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_ARGS, kinfo.ki_pid }; if ((kinfo.ki_pid > 0) && (kinfo.ki_stat == SZOMB)) continue; - length = 0; - if (sysctl(mib, base::size(mib), NULL, &length, NULL, 0) < 0) { - LOG(ERROR) << "failed to figure out the buffer size for a command line"; - continue; - } - - data.resize(length); + data.resize(ARG_MAX); + length = ARG_MAX; if (sysctl(mib, base::size(mib), &data[0], &length, NULL, 0) < 0) { LOG(ERROR) << "failed to fetch a commandline"; diff --git a/www/chromium/files/patch-base_process_process__linux.cc b/www/chromium/files/patch-base_process_process__linux.cc index a0a20c0f87a3..b91800cecacc 100644 --- a/www/chromium/files/patch-base_process_process__linux.cc +++ b/www/chromium/files/patch-base_process_process__linux.cc @@ -1,48 +1,48 @@ ---- base/process/process_linux.cc.orig 2021-03-12 23:57:15 UTC +--- base/process/process_linux.cc.orig 2021-04-14 18:40:48 UTC +++ base/process/process_linux.cc @@ -24,7 +24,9 @@ namespace base { namespace { +#if !defined(OS_BSD) const int kForegroundPriority = 0; +#endif #if BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS) // We are more aggressive in our lowering of background process priority @@ -69,7 +71,7 @@ struct CGroups { return groups; } }; -#else +#elif !defined(OS_BSD) const int kBackgroundPriority = 5; #endif // BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS) -@@ -96,13 +98,18 @@ Time Process::CreationTime() const { +@@ -85,13 +87,18 @@ Time Process::CreationTime() const { if (!start_ticks) return Time(); +#if defined(OS_BSD) + return Time::FromTimeT(start_ticks); +#else TimeDelta start_offset = internal::ClockTicksToTimeDelta(start_ticks); Time boot_time = internal::GetBootTime(); if (boot_time.is_null()) return Time(); return Time(boot_time + start_offset); +#endif } +#if !defined(OS_BSD) // static bool Process::CanBackgroundProcesses() { #if BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS) -@@ -154,6 +161,7 @@ bool Process::SetProcessBackgrounded(bool background) +@@ -143,6 +150,7 @@ bool Process::SetProcessBackgrounded(bool background) DPCHECK(result == 0); return result == 0; } +#endif // !defined(OS_BSD) #if BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS) bool IsProcessBackgroundedCGroup(const StringPiece& cgroup_contents) { diff --git a/www/chromium/files/patch-base_process_process__metrics.cc b/www/chromium/files/patch-base_process_process__metrics.cc index b1789fe4854a..e8b37cab59d8 100644 --- a/www/chromium/files/patch-base_process_process__metrics.cc +++ b/www/chromium/files/patch-base_process_process__metrics.cc @@ -1,38 +1,38 @@ ---- base/process/process_metrics.cc.orig 2021-03-12 23:57:15 UTC +--- base/process/process_metrics.cc.orig 2021-04-14 18:40:48 UTC +++ base/process/process_metrics.cc @@ -50,7 +50,7 @@ SystemMetrics SystemMetrics::Sample() { SystemMetrics system_metrics; system_metrics.committed_memory_ = GetSystemCommitCharge(); -#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) || defined(OS_BSD) GetSystemMemoryInfo(&system_metrics.memory_info_); GetVmStatInfo(&system_metrics.vmstat_info_); GetSystemDiskInfo(&system_metrics.disk_info_); @@ -69,7 +69,7 @@ std::unique_ptr SystemMetrics::ToValue() const std::unique_ptr res(new DictionaryValue()); res->SetIntKey("committed_memory", static_cast(committed_memory_)); -#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) || defined(OS_BSD) std::unique_ptr meminfo = memory_info_.ToValue(); std::unique_ptr vmstat = vmstat_info_.ToValue(); meminfo->MergeDictionary(vmstat.get()); @@ -120,7 +120,7 @@ double ProcessMetrics::GetPlatformIndependentCPUUsage( } #endif -#if defined(OS_APPLE) || defined(OS_LINUX) || defined(OS_CHROMEOS) || \ +#if defined(OS_APPLE) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) || \ defined(OS_AIX) int ProcessMetrics::CalculateIdleWakeupsPerSecond( uint64_t absolute_idle_wakeups) { @@ -133,7 +133,7 @@ int ProcessMetrics::GetIdleWakeupsPerSecond() { NOTIMPLEMENTED(); // http://crbug.com/120488 return 0; } -#endif // defined(OS_APPLE) || defined(OS_LINUX) || defined(OS_CHROMEOS) || +#endif // defined(OS_APPLE) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) || // defined(OS_AIX) #if defined(OS_APPLE) diff --git a/www/chromium/files/patch-base_process_process__metrics.h b/www/chromium/files/patch-base_process_process__metrics.h index cfbd2005c4ad..2705a62eb1a9 100644 --- a/www/chromium/files/patch-base_process_process__metrics.h +++ b/www/chromium/files/patch-base_process_process__metrics.h @@ -1,163 +1,163 @@ ---- base/process/process_metrics.h.orig 2021-03-12 23:57:15 UTC +--- base/process/process_metrics.h.orig 2021-04-14 18:40:48 UTC +++ base/process/process_metrics.h @@ -47,7 +47,7 @@ namespace base { // Full declaration is in process_metrics_iocounters.h. struct IoCounters; -#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) || defined(OS_BSD) // Minor and major page fault counts since the process creation. // Both counts are process-wide, and exclude child processes. // @@ -57,7 +57,7 @@ struct PageFaultCounts { int64_t minor; int64_t major; }; -#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) +#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) || defined(OS_BSD) // Convert a POSIX timeval to microseconds. BASE_EXPORT int64_t TimeValToMicroseconds(const struct timeval& tv); @@ -98,7 +98,7 @@ class BASE_EXPORT ProcessMetrics { // convenience wrapper for CreateProcessMetrics(). static std::unique_ptr CreateCurrentProcessMetrics(); -#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) || defined(OS_BSD) // Resident Set Size is a Linux/Android specific memory concept. Do not // attempt to extend this to other platforms. BASE_EXPORT size_t GetResidentSetSize() const; @@ -124,7 +124,7 @@ class BASE_EXPORT ProcessMetrics { // will result in a time delta of 2 seconds/per 1 wall-clock second. TimeDelta GetCumulativeCPUUsage(); -#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) || \ +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) || defined(OS_BSD) || \ defined(OS_AIX) // Emits the cumulative CPU usage for all currently active threads since they // were started into the output parameter (replacing its current contents). @@ -159,7 +159,7 @@ class BASE_EXPORT ProcessMetrics { bool ParseProcTimeInState(const std::string& content, PlatformThreadId tid, TimeInStatePerThread& time_in_state_per_thread); -#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) || +#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) || defined(OS_BSD) || // defined(OS_AIX) // Returns the number of average idle cpu wakeups per second since the last @@ -216,14 +216,14 @@ class BASE_EXPORT ProcessMetrics { int GetOpenFdSoftLimit() const; #endif // defined(OS_POSIX) -#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) || defined(OS_BSD) // Bytes of swap as reported by /proc/[pid]/status. uint64_t GetVmSwapBytes() const; // Minor and major page fault count as reported by /proc/[pid]/stat. // Returns true for success. bool GetPageFaultCounts(PageFaultCounts* counts) const; -#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) +#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) || defined(OS_BSD) // Returns total memory usage of malloc. size_t GetMallocUsage(); @@ -235,7 +235,7 @@ class BASE_EXPORT ProcessMetrics { ProcessMetrics(ProcessHandle process, PortProvider* port_provider); #endif // !defined(OS_MAC) -#if defined(OS_APPLE) || defined(OS_LINUX) || defined(OS_CHROMEOS) || \ +#if defined(OS_APPLE) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) || \ defined(OS_AIX) int CalculateIdleWakeupsPerSecond(uint64_t absolute_idle_wakeups); #endif @@ -246,10 +246,10 @@ class BASE_EXPORT ProcessMetrics { uint64_t absolute_package_idle_wakeups); #endif -#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) || \ +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) || defined(OS_BSD) || \ defined(OS_AIX) CPU::CoreType GetCoreType(int core_index); -#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) || +#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) || defined(OS_BSD) || // defined(OS_AIX) #if defined(OS_WIN) @@ -271,7 +271,7 @@ class BASE_EXPORT ProcessMetrics { // Number of bytes transferred to/from disk in bytes. uint64_t last_cumulative_disk_usage_ = 0; -#if defined(OS_APPLE) || defined(OS_LINUX) || defined(OS_CHROMEOS) || \ +#if defined(OS_APPLE) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) || \ defined(OS_AIX) // Same thing for idle wakeups. TimeTicks last_idle_wakeups_time_; @@ -323,7 +323,7 @@ BASE_EXPORT size_t GetHandleLimit(); BASE_EXPORT void IncreaseFdLimitTo(unsigned int max_descriptors); #endif // defined(OS_POSIX) -#if defined(OS_WIN) || defined(OS_APPLE) || defined(OS_LINUX) || \ +#if defined(OS_WIN) || defined(OS_APPLE) || defined(OS_LINUX) || defined(OS_BSD) || \ defined(OS_CHROMEOS) || defined(OS_ANDROID) || defined(OS_AIX) || \ defined(OS_FUCHSIA) // Data about system-wide memory consumption. Values are in KB. Available on @@ -358,7 +358,7 @@ struct BASE_EXPORT SystemMemoryInfoKB { int avail_phys = 0; #endif -#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) || \ +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) || defined(OS_BSD) || \ defined(OS_AIX) // This provides an estimate of available memory as described here: // https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=34e431b0ae398fc54ea69ff85ec700722c9da773 @@ -373,7 +373,7 @@ struct BASE_EXPORT SystemMemoryInfoKB { int swap_free = 0; #endif -#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS) || \ +#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) || \ defined(OS_AIX) || defined(OS_FUCHSIA) int buffers = 0; int cached = 0; @@ -383,7 +383,7 @@ struct BASE_EXPORT SystemMemoryInfoKB { int inactive_file = 0; int dirty = 0; int reclaimable = 0; -#endif // defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS) || +#endif // defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) || // defined(OS_AIX) defined(OS_FUCHSIA) #if BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS) @@ -406,11 +406,11 @@ struct BASE_EXPORT SystemMemoryInfoKB { // Exposed for memory debugging widget. BASE_EXPORT bool GetSystemMemoryInfo(SystemMemoryInfoKB* meminfo); -#endif // defined(OS_WIN) || defined(OS_APPLE) || defined(OS_LINUX) || +#endif // defined(OS_WIN) || defined(OS_APPLE) || defined(OS_LINUX) || defined(OS_BSD) || // defined(OS_CHROMEOS) defined(OS_ANDROID) || defined(OS_AIX) || // defined(OS_FUCHSIA) -#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) || \ +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) || defined(OS_BSD) || \ defined(OS_AIX) // Parse the data found in /proc//stat and return the sum of the // CPU-related ticks. Returns -1 on parse error. @@ -485,7 +485,7 @@ BASE_EXPORT bool GetSystemDiskInfo(SystemDiskInfo* dis // Returns the amount of time spent in user space since boot across all CPUs. BASE_EXPORT TimeDelta GetUserCpuTimeSinceBoot(); -#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) || +#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) || defined(OS_BSD) || // defined(OS_AIX) #if BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS) @@ -597,7 +597,7 @@ class BASE_EXPORT SystemMetrics { FRIEND_TEST_ALL_PREFIXES(SystemMetricsTest, SystemMetrics); size_t committed_memory_; -#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) || defined(OS_BSD) SystemMemoryInfoKB memory_info_; VmStatInfo vmstat_info_; SystemDiskInfo disk_info_; 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 f6df9a5b3396..b3cfd3d4c3c2 100644 --- a/www/chromium/files/patch-base_process_process__metrics__freebsd.cc +++ b/www/chromium/files/patch-base_process_process__metrics__freebsd.cc @@ -1,262 +1,262 @@ ---- base/process/process_metrics_freebsd.cc.orig 2021-03-12 23:57:15 UTC +--- base/process/process_metrics_freebsd.cc.orig 2021-04-14 18:40:48 UTC +++ base/process/process_metrics_freebsd.cc @@ -3,8 +3,10 @@ // found in the LICENSE file. #include "base/process/process_metrics.h" +#include "base/notreached.h" #include +#include #include #include #include @@ -14,11 +16,29 @@ #include "base/process/process_metrics_iocounters.h" #include "base/stl_util.h" +#include /* getpagesize() */ +#include /* O_RDONLY */ +#include +#include + namespace base { +namespace { +int GetPageShift() { + int pagesize = getpagesize(); + int pageshift = 0; + + while (pagesize > 1) { + pageshift++; + pagesize >>= 1; + } + + return pageshift; +} +} + ProcessMetrics::ProcessMetrics(ProcessHandle process) - : process_(process), - last_cpu_(0) {} + : process_(process) {} // static std::unique_ptr ProcessMetrics::CreateProcessMetrics( @@ -69,4 +89,216 @@ size_t GetSystemCommitCharge() { return mem_total - (mem_free*pagesize) - (mem_inactive*pagesize); } +int GetNumberOfThreads(ProcessHandle process) { + // Taken from FreeBSD top (usr.bin/top/machine.c) + + kvm_t* kd = kvm_open(NULL, "/dev/null", NULL, O_RDONLY, "kvm_open"); + if (kd == NULL) + return 0; + + struct kinfo_proc* pbase; + int nproc; + pbase = kvm_getprocs(kd, KERN_PROC_PID, process, &nproc); + if (pbase == NULL) + return 0; + + if (kvm_close(kd) == -1) + return 0; + + return nproc; +} + +bool GetSystemMemoryInfo(SystemMemoryInfoKB *meminfo) { + unsigned int mem_total, mem_free, swap_total, swap_used; + size_t length; + int pagesizeKB; + + pagesizeKB = getpagesize() / 1024; + + length = sizeof(mem_total); + if (sysctlbyname("vm.stats.vm.v_page_count", &mem_total, + &length, NULL, 0) != 0 || length != sizeof(mem_total)) + return false; + + length = sizeof(mem_free); + if (sysctlbyname("vm.stats.vm.v_free_count", &mem_free, &length, NULL, 0) + != 0 || length != sizeof(mem_free)) + return false; + + length = sizeof(swap_total); + if (sysctlbyname("vm.swap_size", &swap_total, &length, NULL, 0) + != 0 || length != sizeof(swap_total)) + return false; + + length = sizeof(swap_used); + if (sysctlbyname("vm.swap_anon_use", &swap_used, &length, NULL, 0) + != 0 || length != sizeof(swap_used)) + return false; + + meminfo->total = mem_total * pagesizeKB; + meminfo->free = mem_free * pagesizeKB; + meminfo->swap_total = swap_total * pagesizeKB; + meminfo->swap_free = (swap_total - swap_used) * pagesizeKB; + + return true; +} + +int ProcessMetrics::GetOpenFdCount() const { + struct kinfo_file * kif; + int cnt; + + if ((kif = kinfo_getfile(process_, &cnt)) == NULL) + return -1; + + free(kif); + + return cnt; +} + +int ProcessMetrics::GetOpenFdSoftLimit() const { + size_t length; + int total_count = 0; + int mib[] = { CTL_KERN, KERN_MAXFILESPERPROC }; + + length = sizeof(total_count); + + if (sysctl(mib, base::size(mib), &total_count, &length, NULL, 0) < 0) { + total_count = -1; + } + + return total_count; +} + +size_t ProcessMetrics::GetResidentSetSize() const { + kvm_t *kd = kvm_open(nullptr, "/dev/null", nullptr, O_RDONLY, "kvm_open"); + + if (kd == nullptr) + return 0; + + struct kinfo_proc *pp; + int nproc; + + if ((pp = kvm_getprocs(kd, KERN_PROC_PID, process_, &nproc)) == nullptr) { + kvm_close(kd); + return 0; + } + + size_t rss; + + if (nproc > 0) { + rss = pp->ki_rssize << GetPageShift(); + } else { + rss = 0; + } + + kvm_close(kd); + return rss; +} + +uint64_t ProcessMetrics::GetVmSwapBytes() const { + kvm_t *kd = kvm_open(nullptr, "/dev/null", nullptr, O_RDONLY, "kvm_open"); + + if (kd == nullptr) + return 0; + + struct kinfo_proc *pp; + int nproc; + + if ((pp = kvm_getprocs(kd, KERN_PROC_PID, process_, &nproc)) == nullptr) { + kvm_close(kd); + return 0; + } + + size_t swrss; + + if (nproc > 0) { + swrss = pp->ki_swrss > pp->ki_rssize + ? (pp->ki_swrss - pp->ki_rssize) << GetPageShift() + : 0; + } else { + swrss = 0; + } + + kvm_close(kd); + return swrss; +} + +int ProcessMetrics::GetIdleWakeupsPerSecond() { + NOTIMPLEMENTED(); + return 0; +} + +bool GetSystemDiskInfo(SystemDiskInfo* diskinfo) { + NOTIMPLEMENTED(); + return false; +} + +bool GetVmStatInfo(VmStatInfo* vmstat) { + NOTIMPLEMENTED(); + return false; +} + +SystemDiskInfo::SystemDiskInfo() { + reads = 0; + reads_merged = 0; + sectors_read = 0; + read_time = 0; + writes = 0; + writes_merged = 0; + sectors_written = 0; + write_time = 0; + io = 0; + io_time = 0; + weighted_io_time = 0; +} + +SystemDiskInfo::SystemDiskInfo(const SystemDiskInfo& other) = default; + +std::unique_ptr SystemDiskInfo::ToValue() const { + auto res = std::make_unique(); + + // Write out uint64_t variables as doubles. + // Note: this may discard some precision, but for JS there's no other option. + res->SetDouble("reads", static_cast(reads)); + res->SetDouble("reads_merged", static_cast(reads_merged)); + res->SetDouble("sectors_read", static_cast(sectors_read)); + res->SetDouble("read_time", static_cast(read_time)); + res->SetDouble("writes", static_cast(writes)); + res->SetDouble("writes_merged", static_cast(writes_merged)); + res->SetDouble("sectors_written", static_cast(sectors_written)); + res->SetDouble("write_time", static_cast(write_time)); + res->SetDouble("io", static_cast(io)); + res->SetDouble("io_time", static_cast(io_time)); + res->SetDouble("weighted_io_time", static_cast(weighted_io_time)); + + return std::move(res); +} + +std::unique_ptr SystemMemoryInfoKB::ToValue() const { + auto res = std::make_unique(); + res->SetIntKey("total", total); + res->SetIntKey("free", free); + res->SetIntKey("available", available); + res->SetIntKey("buffers", buffers); + res->SetIntKey("cached", cached); + res->SetIntKey("active_anon", active_anon); + res->SetIntKey("inactive_anon", inactive_anon); + res->SetIntKey("active_file", active_file); + res->SetIntKey("inactive_file", inactive_file); + res->SetIntKey("swap_total", swap_total); + res->SetIntKey("swap_free", swap_free); + res->SetIntKey("swap_used", swap_total - swap_free); + res->SetIntKey("dirty", dirty); + res->SetIntKey("reclaimable", reclaimable); + + return res; +} + +std::unique_ptr VmStatInfo::ToValue() const { + auto res = std::make_unique(); + res->SetIntKey("pswpin", pswpin); + res->SetIntKey("pswpout", pswpout); + res->SetIntKey("pgmajfault", pgmajfault); + return res; +} } // namespace base diff --git a/www/chromium/files/patch-base_process_process__metrics__posix.cc b/www/chromium/files/patch-base_process_process__metrics__posix.cc index 69540cbc8d25..b476b607f81e 100644 --- a/www/chromium/files/patch-base_process_process__metrics__posix.cc +++ b/www/chromium/files/patch-base_process_process__metrics__posix.cc @@ -1,20 +1,20 @@ ---- base/process/process_metrics_posix.cc.orig 2021-03-12 23:57:15 UTC +--- base/process/process_metrics_posix.cc.orig 2021-04-14 18:40:48 UTC +++ base/process/process_metrics_posix.cc @@ -20,6 +20,8 @@ #if defined(OS_APPLE) #include +#elif defined(OS_FREEBSD) +#include #else #include #endif @@ -126,7 +128,7 @@ size_t ProcessMetrics::GetMallocUsage() { #else return minfo.hblkhd + minfo.arena; #endif -#elif defined(OS_FUCHSIA) +#elif defined(OS_FUCHSIA) || defined(OS_BSD) // TODO(fuchsia): Not currently exposed. https://crbug.com/735087. return 0; #endif diff --git a/www/chromium/files/patch-base_process_process__unittest.cc b/www/chromium/files/patch-base_process_process__unittest.cc index e2c0cca7cdd6..684f1fe44457 100644 --- a/www/chromium/files/patch-base_process_process__unittest.cc +++ b/www/chromium/files/patch-base_process_process__unittest.cc @@ -1,11 +1,27 @@ ---- base/process/process_unittest.cc.orig 2021-03-12 23:57:15 UTC +--- base/process/process_unittest.cc.orig 2021-04-20 18:58:23 UTC +++ base/process/process_unittest.cc -@@ -138,7 +138,7 @@ TEST_F(ProcessTest, CreationTimeOtherProcess) { +@@ -139,7 +139,7 @@ TEST_F(ProcessTest, CreationTimeOtherProcess) { // was spawned and a time recorded after it was spawned. However, since the // base::Time and process creation clocks don't match, tolerate some error. constexpr base::TimeDelta kTolerance = -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) // On Linux, process creation time is relative to boot time which has a // 1-second resolution. Tolerate 1 second for the imprecise boot time and // 100 ms for the imprecise clock. +@@ -287,6 +287,7 @@ TEST_F(ProcessTest, WaitForExitOrEventWithEventSet) { + } + #endif // OS_WIN + ++#if !defined(OS_BSD) + // Ensure that the priority of a process is restored correctly after + // backgrounding and restoring. + // Note: a platform may not be willing or able to lower the priority of +@@ -344,6 +345,7 @@ TEST_F(ProcessTest, SetProcessBackgroundedSelf) { + int new_priority = process.GetPriority(); + EXPECT_EQ(old_priority, new_priority); + } ++#endif + + // Consumers can use WaitForExitWithTimeout(base::TimeDelta(), nullptr) to check + // whether the process is still running. This may not be safe because of the diff --git a/www/chromium/files/patch-base_process_process__util__unittest.cc b/www/chromium/files/patch-base_process_process__util__unittest.cc index 0b9f07e4fac8..cd120fcde687 100644 --- a/www/chromium/files/patch-base_process_process__util__unittest.cc +++ b/www/chromium/files/patch-base_process_process__util__unittest.cc @@ -1,16 +1,16 @@ ---- base/process/process_util_unittest.cc.orig 2021-03-12 23:57:15 UTC +--- base/process/process_util_unittest.cc.orig 2021-04-14 18:40:48 UTC +++ base/process/process_util_unittest.cc -@@ -1308,11 +1308,11 @@ std::string TestLaunchProcess(const CommandLine& cmdli +@@ -1337,11 +1337,11 @@ std::string TestLaunchProcess(const CommandLine& cmdli options.fds_to_remap.emplace_back(fds[1], STDOUT_FILENO); #endif // defined(OS_WIN) -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) options.clone_flags = clone_flags; #else CHECK_EQ(0, clone_flags); -#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) +#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) EXPECT_TRUE(LaunchProcess(cmdline, options).IsValid()); write_pipe.Close(); diff --git a/www/chromium/files/patch-base_profiler_register__context.h b/www/chromium/files/patch-base_profiler_register__context.h index 20c522c39c13..1b5f72e3189a 100644 --- a/www/chromium/files/patch-base_profiler_register__context.h +++ b/www/chromium/files/patch-base_profiler_register__context.h @@ -1,60 +1,60 @@ ---- base/profiler/register_context.h.orig 2021-03-12 23:57:15 UTC +--- base/profiler/register_context.h.orig 2021-04-14 18:40:48 UTC +++ base/profiler/register_context.h @@ -17,7 +17,7 @@ #include #elif defined(OS_APPLE) #include -#elif defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS) +#elif defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) #include #endif @@ -190,6 +190,48 @@ inline uintptr_t& RegisterContextInstructionPointer(mc } #endif // #if defined(ARCH_CPU_ARM_FAMILY) && defined(ARCH_CPU_32_BITS) + +#elif defined(OS_FREEBSD) + +using RegisterContext = mcontext_t; + +#if defined(ARCH_CPU_X86_64) +inline uintptr_t& RegisterContextStackPointer(mcontext_t* context) { + return AsUintPtr(&context->mc_rsp); +} + +inline uintptr_t& RegisterContextFramePointer(mcontext_t* context) { + return AsUintPtr(&context->mc_rbp); +} + +inline uintptr_t& RegisterContextInstructionPointer(mcontext_t* context) { + return AsUintPtr(&context->mc_rip); +} +#elif defined(ARCH_CPU_X86) +inline uintptr_t& RegisterContextStackPointer(mcontext_t* context) { + return AsUintPtr(&context->mc_esp); +} + +inline uintptr_t& RegisterContextFramePointer(mcontext_t* context) { + return AsUintPtr(&context->mc_ebp); +} + +inline uintptr_t& RegisterContextInstructionPointer(mcontext_t* context) { + return AsUintPtr(&context->mc_eip); +} +#elif defined(ARCH_CPU_ARM64) +inline uintptr_t& RegisterContextStackPointer(mcontext_t* context) { + return AsUintPtr(&context->mc_gpregs.gp_sp); +} + +inline uintptr_t& RegisterContextFramePointer(mcontext_t* context) { + return AsUintPtr(&context->mc_gpregs.gp_x[29]); +} + +inline uintptr_t& RegisterContextInstructionPointer(mcontext_t* context) { + return AsUintPtr(&context->mc_gpregs.gp_elr); +} +#endif #else // #if defined(OS_WIN) diff --git a/www/chromium/files/patch-base_profiler_sampling__profiler__thread__token.cc b/www/chromium/files/patch-base_profiler_sampling__profiler__thread__token.cc index cb734b35baa1..fb64e59d8b3f 100644 --- a/www/chromium/files/patch-base_profiler_sampling__profiler__thread__token.cc +++ b/www/chromium/files/patch-base_profiler_sampling__profiler__thread__token.cc @@ -1,11 +1,11 @@ ---- base/profiler/sampling_profiler_thread_token.cc.orig 2021-03-12 23:57:15 UTC +--- base/profiler/sampling_profiler_thread_token.cc.orig 2021-04-14 18:40:48 UTC +++ base/profiler/sampling_profiler_thread_token.cc @@ -7,7 +7,7 @@ namespace base { SamplingProfilerThreadToken GetSamplingProfilerCurrentThreadToken() { -#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) return {PlatformThread::CurrentId(), pthread_self()}; #else return {PlatformThread::CurrentId()}; diff --git a/www/chromium/files/patch-base_profiler_sampling__profiler__thread__token.h b/www/chromium/files/patch-base_profiler_sampling__profiler__thread__token.h index 6a8db9bde841..b9f665289555 100644 --- a/www/chromium/files/patch-base_profiler_sampling__profiler__thread__token.h +++ b/www/chromium/files/patch-base_profiler_sampling__profiler__thread__token.h @@ -1,20 +1,20 @@ ---- base/profiler/sampling_profiler_thread_token.h.orig 2021-03-12 23:57:15 UTC +--- base/profiler/sampling_profiler_thread_token.h.orig 2021-04-14 18:40:48 UTC +++ base/profiler/sampling_profiler_thread_token.h @@ -9,7 +9,7 @@ #include "base/threading/platform_thread.h" #include "build/build_config.h" -#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) #include #endif @@ -21,7 +21,7 @@ namespace base { // functions used to obtain the stack base address. struct SamplingProfilerThreadToken { PlatformThreadId id; -#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) pthread_t pthread_id; #endif }; diff --git a/www/chromium/files/patch-base_profiler_stack__copier__signal.cc b/www/chromium/files/patch-base_profiler_stack__copier__signal.cc index 0e9a2eb0fe93..60f317885f8b 100644 --- a/www/chromium/files/patch-base_profiler_stack__copier__signal.cc +++ b/www/chromium/files/patch-base_profiler_stack__copier__signal.cc @@ -1,63 +1,63 @@ ---- base/profiler/stack_copier_signal.cc.orig 2021-03-12 23:57:15 UTC +--- base/profiler/stack_copier_signal.cc.orig 2021-04-14 18:40:48 UTC +++ base/profiler/stack_copier_signal.cc @@ -4,7 +4,14 @@ #include "base/profiler/stack_copier_signal.h" +#if defined(OS_LINUX) #include +#include +#elif defined(OS_FREEBSD) +#include +#include +#include +#endif #include #include #include @@ -35,8 +42,13 @@ class AsyncSafeWaitableEvent { // for a pthread mutex. So, also check the condition. while (true) { int res = +#if defined(OS_LINUX) syscall(SYS_futex, futex_int_ptr(), FUTEX_WAIT | FUTEX_PRIVATE_FLAG, 0, nullptr, nullptr, 0); +#elif defined(OS_FREEBSD) + _umtx_op(futex_int_ptr(), UMTX_OP_WAIT_UINT_PRIVATE, 0, nullptr, + nullptr); +#endif if (futex_.load(std::memory_order_acquire) != 0) return true; if (res != 0) @@ -46,8 +58,12 @@ class AsyncSafeWaitableEvent { void Signal() { futex_.store(1, std::memory_order_release); +#if defined(OS_LINUX) syscall(SYS_futex, futex_int_ptr(), FUTEX_WAKE | FUTEX_PRIVATE_FLAG, 1, nullptr, nullptr, 0); +#elif defined(OS_FREEBSD) + _umtx_op(futex_int_ptr(), UMTX_OP_WAKE_PRIVATE, 1, nullptr, nullptr); +#endif } private: @@ -221,11 +237,18 @@ bool StackCopierSignal::CopyStack(StackBuffer* stack_b if (!scoped_sigaction.succeeded()) return false; +#if defined(OS_LINUX) if (syscall(SYS_tgkill, getpid(), thread_delegate_->GetThreadId(), SIGURG) != 0) { NOTREACHED(); return false; } +#elif defined(OS_FREEBSD) + if (thr_kill2(getpid(), thread_delegate_->GetThreadId(), SIGURG) != 0) { + NOTREACHED(); + return false; + } +#endif bool finished_waiting = wait_event.Wait(); TRACE_EVENT_END0(TRACE_DISABLED_BY_DEFAULT("cpu_profiler.debug"), "StackCopierSignal copy stack"); diff --git a/www/chromium/files/patch-base_profiler_stack__sampling__profiler__test__util.cc b/www/chromium/files/patch-base_profiler_stack__sampling__profiler__test__util.cc index 3f2832f89006..039d8c363856 100644 --- a/www/chromium/files/patch-base_profiler_stack__sampling__profiler__test__util.cc +++ b/www/chromium/files/patch-base_profiler_stack__sampling__profiler__test__util.cc @@ -1,11 +1,11 @@ ---- base/profiler/stack_sampling_profiler_test_util.cc.orig 2021-03-12 23:57:15 UTC +--- base/profiler/stack_sampling_profiler_test_util.cc.orig 2021-04-14 18:40:48 UTC +++ base/profiler/stack_sampling_profiler_test_util.cc @@ -32,7 +32,7 @@ // Fortunately, it provides _alloca, which functions identically. #include #define alloca _alloca -#else +#elif !defined(OS_BSD) #include #endif diff --git a/www/chromium/files/patch-base_profiler_stack__sampling__profiler__unittest.cc b/www/chromium/files/patch-base_profiler_stack__sampling__profiler__unittest.cc index 643ce4378303..a0fe47642167 100644 --- a/www/chromium/files/patch-base_profiler_stack__sampling__profiler__unittest.cc +++ b/www/chromium/files/patch-base_profiler_stack__sampling__profiler__unittest.cc @@ -1,11 +1,11 @@ ---- base/profiler/stack_sampling_profiler_unittest.cc.orig 2021-03-12 23:57:15 UTC +--- base/profiler/stack_sampling_profiler_unittest.cc.orig 2021-04-14 18:40:48 UTC +++ base/profiler/stack_sampling_profiler_unittest.cc @@ -42,7 +42,7 @@ #include #include #include -#else +#elif !defined(OS_BSD) #include #endif diff --git a/www/chromium/files/patch-base_profiler_thread__delegate__posix.cc b/www/chromium/files/patch-base_profiler_thread__delegate__posix.cc index e98382c18800..ad992a5c09a0 100644 --- a/www/chromium/files/patch-base_profiler_thread__delegate__posix.cc +++ b/www/chromium/files/patch-base_profiler_thread__delegate__posix.cc @@ -1,67 +1,67 @@ ---- base/profiler/thread_delegate_posix.cc.orig 2021-03-12 23:57:15 UTC +--- base/profiler/thread_delegate_posix.cc.orig 2021-04-14 18:40:48 UTC +++ base/profiler/thread_delegate_posix.cc @@ -12,6 +12,9 @@ #include "base/profiler/thread_delegate_posix.h" #include "base/stl_util.h" #include "build/build_config.h" +#if defined(OS_FREEBSD) +#include +#endif #if defined(OS_ANDROID) #include "base/files/file_util.h" @@ -43,7 +46,12 @@ base::Optional GetAndroidMainThreadStackBas uintptr_t GetThreadStackBaseAddressImpl( SamplingProfilerThreadToken thread_token) { pthread_attr_t attr; +#if defined(OS_FREEBSD) + pthread_attr_init(&attr); + pthread_attr_get_np(thread_token.pthread_id, &attr); +#elif defined(OS_LINUX) pthread_getattr_np(thread_token.pthread_id, &attr); +#endif // See crbug.com/617730 for limitations of this approach on Linux. void* address; size_t size; @@ -130,16 +138,33 @@ std::vector ThreadDelegatePosix::GetRegist return { // Return the set of callee-save registers per the i386 System V ABI // section 2.2.3, plus the stack pointer. +#if defined(OS_FREEBSD) + reinterpret_cast(&thread_context->mc_ebx), + reinterpret_cast(&thread_context->mc_ebp), + reinterpret_cast(&thread_context->mc_esi), + reinterpret_cast(&thread_context->mc_edi), + reinterpret_cast(&thread_context->mc_esp), +#else reinterpret_cast(&thread_context->gregs[REG_EBX]), reinterpret_cast(&thread_context->gregs[REG_EBP]), reinterpret_cast(&thread_context->gregs[REG_ESI]), reinterpret_cast(&thread_context->gregs[REG_EDI]), reinterpret_cast(&thread_context->gregs[REG_ESP]), +#endif }; #elif defined(ARCH_CPU_X86_FAMILY) && defined(ARCH_CPU_64_BITS) return { // Return the set of callee-save registers per the x86-64 System V ABI // section 3.2.1, plus the stack pointer. +#if defined(OS_FREEBSD) + reinterpret_cast(&thread_context->mc_rbp), + reinterpret_cast(&thread_context->mc_rbx), + reinterpret_cast(&thread_context->mc_r12), + reinterpret_cast(&thread_context->mc_r13), + reinterpret_cast(&thread_context->mc_r14), + reinterpret_cast(&thread_context->mc_r15), + reinterpret_cast(&thread_context->mc_rsp), +#else reinterpret_cast(&thread_context->gregs[REG_RBP]), reinterpret_cast(&thread_context->gregs[REG_RBX]), reinterpret_cast(&thread_context->gregs[REG_R12]), @@ -147,6 +172,7 @@ std::vector ThreadDelegatePosix::GetRegist reinterpret_cast(&thread_context->gregs[REG_R14]), reinterpret_cast(&thread_context->gregs[REG_R15]), reinterpret_cast(&thread_context->gregs[REG_RSP]), +#endif }; #else // #if defined(ARCH_CPU_ARM_FAMILY) && defined(ARCH_CPU_32_BITS) // Unimplemented for other architectures. diff --git a/www/chromium/files/patch-base_sampling__heap__profiler_sampling__heap__profiler.cc b/www/chromium/files/patch-base_sampling__heap__profiler_sampling__heap__profiler.cc index c194af3d33d5..147615bfbf75 100644 --- a/www/chromium/files/patch-base_sampling__heap__profiler_sampling__heap__profiler.cc +++ b/www/chromium/files/patch-base_sampling__heap__profiler_sampling__heap__profiler.cc @@ -1,24 +1,24 @@ ---- base/sampling_heap_profiler/sampling_heap_profiler.cc.orig 2021-03-12 23:57:15 UTC +--- base/sampling_heap_profiler/sampling_heap_profiler.cc.orig 2021-04-14 18:40:48 UTC +++ base/sampling_heap_profiler/sampling_heap_profiler.cc @@ -30,6 +30,10 @@ #include #endif +#if defined(OS_BSD) +#include +#endif + #if defined(OS_ANDROID) && BUILDFLAG(CAN_UNWIND_WITH_CFI_TABLE) && \ defined(OFFICIAL_BUILD) #include "base/trace_event/cfi_backtrace_android.h" // no-presubmit-check @@ -65,6 +69,10 @@ const char* GetAndLeakThreadName() { #elif defined(OS_APPLE) int err = pthread_getname_np(pthread_self(), name, kBufferLen); if (err == 0 && *name != '\0') + return strdup(name); +#elif defined(OS_BSD) && __FreeBSD__ >= 12 + pthread_get_name_np(pthread_self(), name, kBufferLen); + if (*name != '\0') return strdup(name); #endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) diff --git a/www/chromium/files/patch-base_security__unittest.cc b/www/chromium/files/patch-base_security__unittest.cc index 91d05f550115..c8628452c1ee 100644 --- a/www/chromium/files/patch-base_security__unittest.cc +++ b/www/chromium/files/patch-base_security__unittest.cc @@ -1,28 +1,28 @@ ---- base/security_unittest.cc.orig 2021-03-12 23:57:15 UTC +--- base/security_unittest.cc.orig 2021-04-14 18:40:48 UTC +++ base/security_unittest.cc @@ -61,7 +61,7 @@ NOINLINE Type HideValueFromCompiler(volatile Type valu void OverflowTestsSoftExpectTrue(bool overflow_detected) { if (!overflow_detected) { #if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) || \ - defined(OS_APPLE) + defined(OS_APPLE) || defined(OS_BSD) // Sadly, on Linux, Android, and OSX we don't have a good story yet. Don't // fail the test, but report. printf("Platform has overflow: %s\n", @@ -123,7 +123,7 @@ TEST(SecurityTest, MAYBE_NewOverflow) { #endif // !defined(OS_WIN) || !defined(ARCH_CPU_64_BITS) } -#if (defined(OS_LINUX) || defined(OS_CHROMEOS)) && defined(__x86_64__) +#if (defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)) && defined(__x86_64__) // Check if ptr1 and ptr2 are separated by less than size chars. bool ArePointersToSameArea(void* ptr1, void* ptr2, size_t size) { ptrdiff_t ptr_diff = reinterpret_cast(std::max(ptr1, ptr2)) - @@ -177,6 +177,6 @@ TEST(SecurityTest, MALLOC_OVERFLOW_TEST(RandomMemoryAl EXPECT_FALSE(impossible_random_address); } -#endif // (defined(OS_LINUX) || defined(OS_CHROMEOS)) && defined(__x86_64__) +#endif // (defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)) && defined(__x86_64__) } // namespace diff --git a/www/chromium/files/patch-base_strings_sys__string__conversions__unittest.cc b/www/chromium/files/patch-base_strings_sys__string__conversions__unittest.cc index f1d7377c58d2..61769926edcc 100644 --- a/www/chromium/files/patch-base_strings_sys__string__conversions__unittest.cc +++ b/www/chromium/files/patch-base_strings_sys__string__conversions__unittest.cc @@ -1,19 +1,19 @@ ---- base/strings/sys_string_conversions_unittest.cc.orig 2021-03-12 23:57:15 UTC +--- base/strings/sys_string_conversions_unittest.cc.orig 2021-04-14 18:40:48 UTC +++ base/strings/sys_string_conversions_unittest.cc @@ -76,7 +76,7 @@ TEST(SysStrings, SysUTF8ToWide) { } // Tests depend on setting a specific Linux locale. -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) TEST(SysStrings, SysWideToNativeMB) { #if !defined(SYSTEM_NATIVE_UTF8) ScopedLocale locale("en_US.UTF-8"); @@ -191,6 +191,6 @@ TEST(SysStrings, SysNativeMBAndWide) { EXPECT_EQ(wide, trip); } } -#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) +#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) } // namespace base diff --git a/www/chromium/files/patch-base_synchronization_lock__impl.h b/www/chromium/files/patch-base_synchronization_lock__impl.h index 08323a1eeeee..e8f6b7219bfa 100644 --- a/www/chromium/files/patch-base_synchronization_lock__impl.h +++ b/www/chromium/files/patch-base_synchronization_lock__impl.h @@ -1,19 +1,19 @@ ---- base/synchronization/lock_impl.h.orig 2021-03-12 23:57:15 UTC +--- base/synchronization/lock_impl.h.orig 2021-04-14 18:40:48 UTC +++ base/synchronization/lock_impl.h @@ -105,6 +105,8 @@ void LockImpl::Unlock() { } #elif defined(OS_POSIX) || defined(OS_FUCHSIA) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wthread-safety-analysis" bool LockImpl::Try() { int rv = pthread_mutex_trylock(&native_handle_); @@ -116,6 +118,7 @@ void LockImpl::Unlock() { int rv = pthread_mutex_unlock(&native_handle_); DCHECK_EQ(rv, 0) << ". " << strerror(rv); } +#pragma GCC diagnostic pop #endif // This is an implementation used for AutoLock templated on the lock type. diff --git a/www/chromium/files/patch-base_syslog__logging.cc b/www/chromium/files/patch-base_syslog__logging.cc index 3c3a7a71f3f6..b4460c41a14b 100644 --- a/www/chromium/files/patch-base_syslog__logging.cc +++ b/www/chromium/files/patch-base_syslog__logging.cc @@ -1,20 +1,20 @@ ---- base/syslog_logging.cc.orig 2021-03-12 23:57:15 UTC +--- base/syslog_logging.cc.orig 2021-04-14 18:40:48 UTC +++ base/syslog_logging.cc @@ -13,7 +13,7 @@ #include "base/strings/string_util.h" #include "base/win/scoped_handle.h" #include "base/win/win_util.h" -#elif defined(OS_LINUX) || defined(OS_CHROMEOS) +#elif defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) // defines LOG_INFO, LOG_WARNING macros that could conflict with // base::LOG_INFO, base::LOG_WARNING. #include @@ -134,7 +134,7 @@ EventLogMessage::~EventLogMessage() { if (user_sid != nullptr) ::LocalFree(user_sid); -#elif defined(OS_LINUX) || defined(OS_CHROMEOS) +#elif defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) const char kEventSource[] = "chrome"; openlog(kEventSource, LOG_NOWAIT | LOG_PID, LOG_USER); // We can't use the defined names for the logging severity from syslog.h diff --git a/www/chromium/files/patch-base_system_sys__info.cc b/www/chromium/files/patch-base_system_sys__info.cc index 6567dc430f4e..d2be91728b01 100644 --- a/www/chromium/files/patch-base_system_sys__info.cc +++ b/www/chromium/files/patch-base_system_sys__info.cc @@ -1,11 +1,11 @@ ---- base/system/sys_info.cc.orig 2021-03-12 23:57:15 UTC +--- base/system/sys_info.cc.orig 2021-04-14 18:40:48 UTC +++ base/system/sys_info.cc @@ -94,7 +94,7 @@ void SysInfo::GetHardwareInfo(base::OnceCallback #include "base/notreached.h" +#include "base/process/process_metrics.h" +#include "base/strings/string_util.h" namespace base { int64_t SysInfo::AmountOfPhysicalMemoryImpl() { - int pages, page_size; + int pages, page_size, r = 0; size_t size = sizeof(pages); - sysctlbyname("vm.stats.vm.v_page_count", &pages, &size, NULL, 0); - sysctlbyname("vm.stats.vm.v_page_size", &page_size, &size, NULL, 0); - if (pages == -1 || page_size == -1) { + + if (r == 0) + r = sysctlbyname("vm.stats.vm.v_page_count", &pages, &size, NULL, 0); + if (r == 0) + r = sysctlbyname("vm.stats.vm.v_page_size", &page_size, &size, NULL, 0); + + if (r == -1) { NOTREACHED(); return 0; } + return static_cast(pages) * page_size; } +int64_t SysInfo::AmountOfAvailablePhysicalMemoryImpl() { + int page_size, r = 0; + unsigned int pgfree, pginact, pgcache; + size_t size = sizeof(page_size); + size_t szpg = sizeof(pgfree); + + if (r == 0) + r = sysctlbyname("vm.stats.vm.v_page_size", &page_size, &size, NULL, 0); + if (r == 0) + r = sysctlbyname("vm.stats.vm.v_free_count", &pgfree, &szpg, NULL, 0); + if (r == 0) + r = sysctlbyname("vm.stats.vm.v_inactive_count", &pginact, &szpg, NULL, 0); + if (r == 0) + r = sysctlbyname("vm.stats.vm.v_cache_count", &pgcache, &szpg, NULL, 0); + + if (r == -1) { + NOTREACHED(); + return 0; + } + + return static_cast((pgfree + pginact + pgcache) * page_size); +} + // static +int64_t SysInfo::AmountOfAvailablePhysicalMemory(const SystemMemoryInfoKB& info) { + int64_t res_kb = info.available != 0 + ? info.available - info.active_file + : info.free + info.reclaimable + info.inactive_file; + return res_kb * 1024; +} + +// static +std::string SysInfo::CPUModelName() { + int mib[] = { CTL_HW, HW_MODEL }; + char name[256]; + size_t size = base::size(name); + + if (sysctl(mib, base::size(mib), &name, &size, NULL, 0) == 0) { + return name; + } + + return std::string(); +} + +// static uint64_t SysInfo::MaxSharedMemorySize() { size_t limit; size_t size = sizeof(limit); + if (sysctlbyname("kern.ipc.shmmax", &limit, &size, NULL, 0) < 0) { NOTREACHED(); return 0; } + return static_cast(limit); +} + +SysInfo::HardwareInfo SysInfo::GetHardwareInfoSync() { + HardwareInfo info; + + info.manufacturer = "FreeBSD"; + info.model = HardwareModelName(); + + DCHECK(IsStringUTF8(info.manufacturer)); + DCHECK(IsStringUTF8(info.model)); + + return info; } } // namespace base diff --git a/www/chromium/files/patch-base_system_sys__info__posix.cc b/www/chromium/files/patch-base_system_sys__info__posix.cc index 4f5d25393487..46bca98b2550 100644 --- a/www/chromium/files/patch-base_system_sys__info__posix.cc +++ b/www/chromium/files/patch-base_system_sys__info__posix.cc @@ -1,23 +1,23 @@ ---- base/system/sys_info_posix.cc.orig 2021-03-12 23:57:15 UTC +--- base/system/sys_info_posix.cc.orig 2021-04-14 18:40:48 UTC +++ base/system/sys_info_posix.cc -@@ -25,6 +25,11 @@ +@@ -26,6 +26,11 @@ #if defined(OS_ANDROID) #include #define statvfs statfs // Android uses a statvfs-like statfs struct and call. +#elif defined(OS_BSD) +#include +#include +#define statvfs statfs +#define f_frsize f_bsize #else #include #endif -@@ -224,6 +229,8 @@ std::string SysInfo::OperatingSystemArchitecture() { +@@ -239,6 +244,8 @@ std::string SysInfo::OperatingSystemArchitecture() { arch = "x86"; } else if (arch == "amd64") { arch = "x86_64"; + } else if (arch == "arm64") { + arch = "aarch64"; } else if (std::string(info.sysname) == "AIX") { arch = "ppc64"; } diff --git a/www/chromium/files/patch-base_system_sys__info__unittest.cc b/www/chromium/files/patch-base_system_sys__info__unittest.cc index 75ea1a02ee4e..d0e725d262d7 100644 --- a/www/chromium/files/patch-base_system_sys__info__unittest.cc +++ b/www/chromium/files/patch-base_system_sys__info__unittest.cc @@ -1,46 +1,46 @@ ---- base/system/sys_info_unittest.cc.orig 2021-03-12 23:57:15 UTC +--- base/system/sys_info_unittest.cc.orig 2021-04-14 18:40:48 UTC +++ base/system/sys_info_unittest.cc -@@ -62,13 +62,13 @@ TEST_F(SysInfoTest, AmountOfMem) { +@@ -63,13 +63,13 @@ TEST_F(SysInfoTest, AmountOfMem) { EXPECT_GE(SysInfo::AmountOfVirtualMemory(), 0); } -#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) || defined(OS_BSD) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) #define MAYBE_AmountOfAvailablePhysicalMemory \ DISABLED_AmountOfAvailablePhysicalMemory #else #define MAYBE_AmountOfAvailablePhysicalMemory AmountOfAvailablePhysicalMemory -#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) +#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) TEST_F(SysInfoTest, MAYBE_AmountOfAvailablePhysicalMemory) { // Note: info is in _K_bytes. SystemMemoryInfoKB info; -@@ -99,7 +99,7 @@ TEST_F(SysInfoTest, MAYBE_AmountOfAvailablePhysicalMem +@@ -100,7 +100,7 @@ TEST_F(SysInfoTest, MAYBE_AmountOfAvailablePhysicalMem EXPECT_GT(amount, static_cast(info.free) * 1024); EXPECT_LT(amount / 1024, info.total); } -#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) +#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) || defined(OS_BSD) TEST_F(SysInfoTest, AmountOfFreeDiskSpace) { // We aren't actually testing that it's correct, just that it's sane. -@@ -149,7 +149,7 @@ TEST_F(SysInfoTest, NestedVolumesAmountOfTotalDiskSpac +@@ -150,7 +150,7 @@ TEST_F(SysInfoTest, NestedVolumesAmountOfTotalDiskSpac } #endif // defined(OS_FUCHSIA) -#if defined(OS_WIN) || defined(OS_APPLE) || defined(OS_LINUX) || \ +#if defined(OS_WIN) || defined(OS_APPLE) || defined(OS_LINUX) || defined(OS_BSD) || \ defined(OS_CHROMEOS) || defined(OS_FUCHSIA) TEST_F(SysInfoTest, OperatingSystemVersionNumbers) { int32_t os_major_version = -1; -@@ -210,7 +210,7 @@ TEST_F(SysInfoTest, GetHardwareInfo) { +@@ -236,7 +236,7 @@ TEST_F(SysInfoTest, GetHardwareInfo) { EXPECT_TRUE(IsStringUTF8(hardware_info->model)); bool empty_result_expected = #if defined(OS_ANDROID) || defined(OS_APPLE) || defined(OS_WIN) || \ - defined(OS_LINUX) || defined(OS_CHROMEOS) + defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) false; #else true; diff --git a/www/chromium/files/patch-base_task_thread__pool_environment__config__unittest.cc b/www/chromium/files/patch-base_task_thread__pool_environment__config__unittest.cc index 32c3cb7fe7bc..af894c771972 100644 --- a/www/chromium/files/patch-base_task_thread__pool_environment__config__unittest.cc +++ b/www/chromium/files/patch-base_task_thread__pool_environment__config__unittest.cc @@ -1,11 +1,11 @@ ---- base/task/thread_pool/environment_config_unittest.cc.orig 2021-03-12 23:57:15 UTC +--- base/task/thread_pool/environment_config_unittest.cc.orig 2021-04-14 18:40:48 UTC +++ base/task/thread_pool/environment_config_unittest.cc @@ -14,7 +14,7 @@ namespace internal { TEST(ThreadPoolEnvironmentConfig, CanUseBackgroundPriorityForWorker) { #if defined(OS_WIN) || defined(OS_APPLE) EXPECT_TRUE(CanUseBackgroundPriorityForWorkerThread()); -#elif defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FUCHSIA) || \ +#elif defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FUCHSIA) || defined(OS_BSD) || \ defined(OS_CHROMEOS) || defined(OS_NACL) EXPECT_FALSE(CanUseBackgroundPriorityForWorkerThread()); #else diff --git a/www/chromium/files/patch-base_test_BUILD.gn b/www/chromium/files/patch-base_test_BUILD.gn index 77c53a07d8d9..18f8ca8e64a4 100644 --- a/www/chromium/files/patch-base_test_BUILD.gn +++ b/www/chromium/files/patch-base_test_BUILD.gn @@ -1,15 +1,15 @@ ---- base/test/BUILD.gn.orig 2021-03-12 23:57:15 UTC +--- base/test/BUILD.gn.orig 2021-04-14 18:40:48 UTC +++ base/test/BUILD.gn -@@ -428,7 +428,11 @@ if (is_linux || is_chromeos) { +@@ -421,7 +421,11 @@ if (is_linux || is_chromeos) { copy("fonts_conf") { sources = [ "fonts.conf" ] - outputs = [ "${root_build_dir}/etc/fonts/{{source_file_part}}" ] + if (is_bsd) { + outputs = [ "${root_build_dir}/usr/local/etc/fonts/{{source_file_part}}" ] + } else { + outputs = [ "${root_build_dir}/etc/fonts/{{source_file_part}}" ] + } } if (current_toolchain == host_toolchain) { diff --git a/www/chromium/files/patch-base_test_launcher_test__launcher.cc b/www/chromium/files/patch-base_test_launcher_test__launcher.cc index a383ea3c7641..d5ecd16fb2f8 100644 --- a/www/chromium/files/patch-base_test_launcher_test__launcher.cc +++ b/www/chromium/files/patch-base_test_launcher_test__launcher.cc @@ -1,28 +1,28 @@ ---- base/test/launcher/test_launcher.cc.orig 2021-03-12 23:57:15 UTC +--- base/test/launcher/test_launcher.cc.orig 2021-04-14 18:40:48 UTC +++ base/test/launcher/test_launcher.cc @@ -58,6 +58,7 @@ #include "testing/gtest/include/gtest/gtest.h" #if defined(OS_POSIX) +#include #include #include "base/files/file_descriptor_watcher_posix.h" @@ -599,7 +600,7 @@ ChildProcessResults DoLaunchChildTestProcess( #if !defined(OS_FUCHSIA) options.new_process_group = true; #endif -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) options.kill_on_parent_death = true; #endif -@@ -1516,7 +1517,7 @@ bool TestLauncher::Init(CommandLine* command_line) { +@@ -1515,7 +1516,7 @@ bool TestLauncher::Init(CommandLine* command_line) { results_tracker_.AddGlobalTag("OS_IOS"); #endif -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) results_tracker_.AddGlobalTag("OS_LINUX"); #endif diff --git a/www/chromium/files/patch-base_test_test__file__util__posix.cc b/www/chromium/files/patch-base_test_test__file__util__posix.cc index 137f48dbf98e..2bd4c0452c6b 100644 --- a/www/chromium/files/patch-base_test_test__file__util__posix.cc +++ b/www/chromium/files/patch-base_test_test__file__util__posix.cc @@ -1,11 +1,11 @@ ---- base/test/test_file_util_posix.cc.orig 2021-03-12 23:57:15 UTC +--- base/test/test_file_util_posix.cc.orig 2021-04-14 18:40:48 UTC +++ base/test/test_file_util_posix.cc @@ -87,7 +87,7 @@ void SyncPageCacheToDisk() { sync(); } -#if !defined(OS_LINUX) && !defined(OS_CHROMEOS) && !defined(OS_APPLE) && \ +#if !defined(OS_LINUX) && !defined(OS_CHROMEOS) && !defined(OS_APPLE) && !defined(OS_BSD) && \ !defined(OS_ANDROID) bool EvictFileFromSystemCache(const FilePath& file) { // There doesn't seem to be a POSIX way to cool the disk cache. diff --git a/www/chromium/files/patch-base_test_test__suite.cc b/www/chromium/files/patch-base_test_test__suite.cc index c4d114600fe2..db96223b4238 100644 --- a/www/chromium/files/patch-base_test_test__suite.cc +++ b/www/chromium/files/patch-base_test_test__suite.cc @@ -1,37 +1,55 @@ ---- base/test/test_suite.cc.orig 2021-03-12 23:57:15 UTC +--- base/test/test_suite.cc.orig 2021-04-20 18:58:23 UTC +++ base/test/test_suite.cc -@@ -66,7 +66,7 @@ +@@ -68,7 +68,7 @@ #include "base/test/test_support_android.h" #endif -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) #include "base/test/fontconfig_util_linux.h" #endif -@@ -382,14 +382,14 @@ void TestSuite::PreInitialize() { +@@ -214,7 +214,7 @@ class CheckForLeakedGlobals : public testing::EmptyTes + }; + + // base::Process is not available on iOS +-#if !defined(OS_IOS) ++#if !defined(OS_IOS) && !defined(OS_BSD) + class CheckProcessPriority : public testing::EmptyTestEventListener { + public: + CheckProcessPriority() { CHECK(!IsProcessBackgrounded()); } +@@ -384,14 +384,14 @@ void TestSuite::PreInitialize() { testing::GTEST_FLAG(catch_exceptions) = false; #endif EnableTerminationOnHeapCorruption(); -#if (defined(OS_LINUX) || defined(OS_CHROMEOS)) && defined(USE_AURA) +#if (defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)) && defined(USE_AURA) // When calling native char conversion functions (e.g wrctomb) we need to // have the locale set. In the absence of such a call the "C" locale is the // default. In the gtk code (below) gtk_init() implicitly sets a locale. setlocale(LC_ALL, ""); // We still need number to string conversions to be locale insensitive. setlocale(LC_NUMERIC, "C"); -#endif // (defined(OS_LINUX) || defined(OS_CHROMEOS)) && defined(USE_AURA) +#endif // (defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)) && defined(USE_AURA) // On Android, AtExitManager is created in // testing/android/native_test_wrapper.cc before main() is called. -@@ -650,7 +650,7 @@ void TestSuite::Initialize() { +@@ -657,7 +657,7 @@ void TestSuite::Initialize() { // TODO(jshin): Should we set the locale via an OS X locale API here? i18n::SetICUDefaultLocale("en_US"); -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) SetUpFontconfig(); #endif +@@ -670,7 +670,7 @@ void TestSuite::Initialize() { + if (check_for_leaked_globals_) + listeners.Append(new CheckForLeakedGlobals); + if (check_for_thread_and_process_priority_) { +-#if !defined(OS_IOS) ++#if !defined(OS_IOS) && !defined(OS_BSD) + listeners.Append(new CheckProcessPriority); + #endif + } diff --git a/www/chromium/files/patch-base_third__party_libevent_BUILD.gn b/www/chromium/files/patch-base_third__party_libevent_BUILD.gn index 5ef582ab80d9..95d998da0943 100644 --- a/www/chromium/files/patch-base_third__party_libevent_BUILD.gn +++ b/www/chromium/files/patch-base_third__party_libevent_BUILD.gn @@ -1,24 +1,24 @@ ---- base/third_party/libevent/BUILD.gn.orig 2021-03-12 23:57:15 UTC +--- base/third_party/libevent/BUILD.gn.orig 2021-04-14 18:40:48 UTC +++ base/third_party/libevent/BUILD.gn @@ -43,13 +43,20 @@ static_library("libevent") { "mac/event-config.h", ] include_dirs = [ "mac" ] - } else if (is_linux || is_chromeos) { + } else if ((is_linux || is_chromeos) && !is_bsd) { sources += [ "epoll.c", "linux/config.h", "linux/event-config.h", ] include_dirs = [ "linux" ] + } else if (is_bsd) { + sources += [ + "kqueue.c", + "freebsd/config.h", + "freebsd/event-config.h", + ] + include_dirs = [ "freebsd" ] } else if (is_android) { sources += [ "android/config.h", diff --git a/www/chromium/files/patch-base_threading_platform__thread.h b/www/chromium/files/patch-base_threading_platform__thread.h index ec417fb772f6..1b335ea99b35 100644 --- a/www/chromium/files/patch-base_threading_platform__thread.h +++ b/www/chromium/files/patch-base_threading_platform__thread.h @@ -1,11 +1,11 @@ ---- base/threading/platform_thread.h.orig 2021-03-12 23:57:15 UTC +--- base/threading/platform_thread.h.orig 2021-04-14 18:40:48 UTC +++ base/threading/platform_thread.h @@ -231,7 +231,7 @@ class BASE_EXPORT PlatformThread { // Returns a realtime period provided by |delegate|. static TimeDelta GetRealtimePeriod(Delegate* delegate); -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) // Toggles a specific thread's priority at runtime. This can be used to // change the priority of a thread in a different process and will fail // if the calling process does not have proper permissions. The diff --git a/www/chromium/files/patch-base_threading_platform__thread__internal__posix.h b/www/chromium/files/patch-base_threading_platform__thread__internal__posix.h index 1d75cd4cd16d..aa814ce4c670 100644 --- a/www/chromium/files/patch-base_threading_platform__thread__internal__posix.h +++ b/www/chromium/files/patch-base_threading_platform__thread__internal__posix.h @@ -1,18 +1,18 @@ ---- base/threading/platform_thread_internal_posix.h.orig 2021-03-12 23:57:15 UTC +--- base/threading/platform_thread_internal_posix.h.orig 2021-04-14 18:40:48 UTC +++ base/threading/platform_thread_internal_posix.h @@ -47,13 +47,13 @@ bool SetCurrentThreadPriorityForPlatform(ThreadPriorit // of CanIncreaseThreadPriority(). Optional GetCurrentThreadPriorityForPlatform(); -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) // Current thread id is cached in thread local storage for performance reasons. // In some rare cases it's important to clear that cache explicitly (e.g. after // going through clone() syscall which does not call pthread_atfork() // handlers). BASE_EXPORT void ClearTidCache(); -#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) +#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) } // namespace internal diff --git a/www/chromium/files/patch-base_threading_platform__thread__linux.cc b/www/chromium/files/patch-base_threading_platform__thread__linux.cc index 354fb7c81799..8a5b4291b007 100644 --- a/www/chromium/files/patch-base_threading_platform__thread__linux.cc +++ b/www/chromium/files/patch-base_threading_platform__thread__linux.cc @@ -1,30 +1,30 @@ ---- base/threading/platform_thread_linux.cc.orig 2021-03-12 23:57:15 UTC +--- base/threading/platform_thread_linux.cc.orig 2021-04-14 18:40:48 UTC +++ base/threading/platform_thread_linux.cc @@ -27,7 +27,9 @@ #if !defined(OS_NACL) && !defined(OS_AIX) #include +#if !defined(OS_BSD) #include +#endif #include #include #include @@ -298,7 +300,7 @@ const ThreadPriorityToNiceValuePair kThreadPriorityToN Optional CanIncreaseCurrentThreadPriorityForPlatform( ThreadPriority priority) { -#if !defined(OS_NACL) +#if !defined(OS_NACL) && !defined(OS_BSD) // A non-zero soft-limit on RLIMIT_RTPRIO is required to be allowed to invoke // pthread_setschedparam in SetCurrentThreadPriorityForPlatform(). struct rlimit rlim; @@ -348,7 +350,7 @@ Optional GetCurrentThreadPriorityForPl void PlatformThread::SetName(const std::string& name) { ThreadIdNameManager::GetInstance()->SetName(name); -#if !defined(OS_NACL) && !defined(OS_AIX) +#if !defined(OS_NACL) && !defined(OS_AIX) && !defined(OS_BSD) // On linux we can get the thread names to show up in the debugger by setting // the process name for the LWP. We don't want to do this for the main // thread because that would rename the process, causing tools like killall diff --git a/www/chromium/files/patch-base_threading_platform__thread__posix.cc b/www/chromium/files/patch-base_threading_platform__thread__posix.cc index 6df053313128..73d12e31ceb6 100644 --- a/www/chromium/files/patch-base_threading_platform__thread__posix.cc +++ b/www/chromium/files/patch-base_threading_platform__thread__posix.cc @@ -1,54 +1,54 @@ ---- base/threading/platform_thread_posix.cc.orig 2021-03-12 23:57:15 UTC +--- base/threading/platform_thread_posix.cc.orig 2021-04-14 18:40:48 UTC +++ base/threading/platform_thread_posix.cc @@ -32,6 +32,10 @@ #include #endif +#if defined(OS_BSD) +#include +#endif + #if defined(OS_FUCHSIA) #include #else @@ -141,7 +145,7 @@ bool CreateThread(size_t stack_size, return success; } -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) // Store the thread ids in local storage since calling the SWI can be // expensive and PlatformThread::CurrentId is used liberally. Clear @@ -159,11 +163,11 @@ class InitAtFork { InitAtFork() { pthread_atfork(nullptr, nullptr, internal::ClearTidCache); } }; -#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) +#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) } // namespace -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) namespace internal { @@ -173,7 +177,7 @@ void ClearTidCache() { } // namespace internal -#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) +#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) // static PlatformThreadId PlatformThread::CurrentId() { @@ -181,6 +185,8 @@ PlatformThreadId PlatformThread::CurrentId() { // into the kernel. #if defined(OS_APPLE) return pthread_mach_thread_np(pthread_self()); +#elif defined(OS_BSD) + return pthread_getthreadid_np(); #elif defined(OS_LINUX) || defined(OS_CHROMEOS) static NoDestructor init_at_fork; if (g_thread_id == -1) { diff --git a/www/chromium/files/patch-base_threading_platform__thread__unittest.cc b/www/chromium/files/patch-base_threading_platform__thread__unittest.cc index 8f58f5244228..f69b6c17844a 100644 --- a/www/chromium/files/patch-base_threading_platform__thread__unittest.cc +++ b/www/chromium/files/patch-base_threading_platform__thread__unittest.cc @@ -1,24 +1,24 @@ ---- base/threading/platform_thread_unittest.cc.orig 2021-03-12 23:57:15 UTC +--- base/threading/platform_thread_unittest.cc.orig 2021-04-14 18:40:48 UTC +++ base/threading/platform_thread_unittest.cc -@@ -312,7 +312,7 @@ TEST(PlatformThreadTest, +@@ -313,7 +313,7 @@ TEST(PlatformThreadTest, // and hardcodes what we know. Please inform scheduler-dev@chromium.org if this // proprerty changes for a given platform. TEST(PlatformThreadTest, CanIncreaseThreadPriority) { -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) // On Ubuntu, RLIMIT_NICE and RLIMIT_RTPRIO are 0 by default, so we won't be // able to increase priority to any level. constexpr bool kCanIncreasePriority = false; -@@ -406,9 +406,9 @@ TEST(PlatformThreadTest, SetHugeThreadName) { +@@ -407,9 +407,9 @@ TEST(PlatformThreadTest, SetHugeThreadName) { TEST(PlatformThreadTest, GetDefaultThreadStackSize) { size_t stack_size = PlatformThread::GetDefaultThreadStackSize(); -#if defined(OS_WIN) || defined(OS_IOS) || defined(OS_FUCHSIA) || \ - ((defined(OS_LINUX) || defined(OS_CHROMEOS)) && \ - !defined(THREAD_SANITIZER)) || \ +#if defined(OS_WIN) || defined(OS_IOS) || defined(OS_FUCHSIA) || \ + ((defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)) && \ + !defined(THREAD_SANITIZER)) || \ (defined(OS_ANDROID) && !defined(ADDRESS_SANITIZER)) EXPECT_EQ(0u, stack_size); #else diff --git a/www/chromium/files/patch-base_threading_scoped__blocking__call__unittest.cc b/www/chromium/files/patch-base_threading_scoped__blocking__call__unittest.cc index 7a59470f065d..0507cf7347c6 100644 --- a/www/chromium/files/patch-base_threading_scoped__blocking__call__unittest.cc +++ b/www/chromium/files/patch-base_threading_scoped__blocking__call__unittest.cc @@ -1,20 +1,20 @@ ---- base/threading/scoped_blocking_call_unittest.cc.orig 2021-03-12 23:57:15 UTC +--- base/threading/scoped_blocking_call_unittest.cc.orig 2021-04-14 18:40:48 UTC +++ base/threading/scoped_blocking_call_unittest.cc @@ -273,7 +273,7 @@ TEST_F(ScopedBlockingCallIOJankMonitoringTest, ManyInA } TEST_F(ScopedBlockingCallIOJankMonitoringTest, OverlappingMultipleWindows) { - constexpr auto kJankTiming = + auto kJankTiming = internal::IOJankMonitoringWindow::kMonitoringWindow * 3 + internal::IOJankMonitoringWindow::kIOJankInterval * 5; @@ -530,7 +530,7 @@ TEST_F(ScopedBlockingCallIOJankMonitoringTest, MultiTh // First one starting at 10 seconds (can't start later than that or we'll trip // the kTimeDiscrepancyTimeout per TaskEnvironment's inability to RunUntilIdle() // with pending blocked tasks). -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) // https://crbug.com/1071166 #define MAYBE_MultiThreadedOverlappedWindows \ DISABLED_MultiThreadedOverlappedWindows diff --git a/www/chromium/files/patch-base_threading_thread__task__runner__handle.cc b/www/chromium/files/patch-base_threading_thread__task__runner__handle.cc index 009859798e28..bc03e79e565a 100644 --- a/www/chromium/files/patch-base_threading_thread__task__runner__handle.cc +++ b/www/chromium/files/patch-base_threading_thread__task__runner__handle.cc @@ -1,26 +1,26 @@ ---- base/threading/thread_task_runner_handle.cc.orig 2021-03-12 23:57:15 UTC +--- base/threading/thread_task_runner_handle.cc.orig 2021-04-14 18:40:48 UTC +++ base/threading/thread_task_runner_handle.cc @@ -8,6 +8,7 @@ #include #include "base/bind.h" +#include "base/callback_helpers.h" #include "base/check_op.h" #include "base/lazy_instance.h" #include "base/run_loop.h" @@ -33,6 +34,7 @@ const scoped_refptr& ThreadTas return current->task_runner_; } +#if defined(OS_BSD) // static bool ThreadTaskRunnerHandle::IsSet() { return !!thread_task_runner_tls.Pointer()->Get(); @@ -80,6 +82,7 @@ ThreadTaskRunnerHandleOverride::ThreadTaskRunnerHandle if (!allow_nested_runloop) no_running_during_override_.emplace(); } +#endif ThreadTaskRunnerHandleOverride::~ThreadTaskRunnerHandleOverride() { if (task_runner_to_restore_) { diff --git a/www/chromium/files/patch-base_time_time__unittest.cc b/www/chromium/files/patch-base_time_time__unittest.cc index c0cabcc11f62..79f46256e239 100644 --- a/www/chromium/files/patch-base_time_time__unittest.cc +++ b/www/chromium/files/patch-base_time_time__unittest.cc @@ -1,18 +1,18 @@ ---- base/time/time_unittest.cc.orig 2021-03-12 23:57:15 UTC +--- base/time/time_unittest.cc.orig 2021-04-14 18:40:48 UTC +++ base/time/time_unittest.cc @@ -1969,6 +1969,7 @@ TEST(TimeDelta, Overflows) { EXPECT_TRUE((kLargeDelta / 0.5).is_max()); EXPECT_TRUE((kLargeDelta / -0.5).is_min()); +#if !defined(OS_BSD) static_assert( TimeDelta::Max() / kOneSecond == std::numeric_limits::infinity(), ""); @@ -1997,6 +1998,7 @@ TEST(TimeDelta, Overflows) { static_assert(TimeDelta::Max() % -kOneSecond == TimeDelta::Max(), ""); static_assert(TimeDelta::Min() % kOneSecond == TimeDelta::Min(), ""); static_assert(TimeDelta::Min() % -kOneSecond == TimeDelta::Min(), ""); +#endif // Division by zero. static_assert((kOneSecond / 0).is_max(), ""); diff --git a/www/chromium/files/patch-base_trace__event_heap__profiler__allocation__context__tracker.cc b/www/chromium/files/patch-base_trace__event_heap__profiler__allocation__context__tracker.cc index 08477d7b3b80..db289fa7ecc6 100644 --- a/www/chromium/files/patch-base_trace__event_heap__profiler__allocation__context__tracker.cc +++ b/www/chromium/files/patch-base_trace__event_heap__profiler__allocation__context__tracker.cc @@ -1,38 +1,38 @@ ---- base/trace_event/heap_profiler_allocation_context_tracker.cc.orig 2021-03-12 23:57:15 UTC +--- base/trace_event/heap_profiler_allocation_context_tracker.cc.orig 2021-04-14 18:40:48 UTC +++ base/trace_event/heap_profiler_allocation_context_tracker.cc @@ -30,6 +30,10 @@ #include #endif +#if defined(OS_BSD) +#include +#endif + namespace base { namespace trace_event { @@ -61,13 +65,23 @@ ThreadLocalStorage::Slot& AllocationContextTrackerTLS( // with id. This function intentionally leaks the allocated strings since they // are used to tag allocations even after the thread dies. const char* GetAndLeakThreadName() { - char name[16]; +#if defined(OS_BSD) + constexpr size_t kBufferLen = 64; +#else + constexpr size_t kBufferLen = 16; +#endif + char name[kBufferLen]; #if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) // If the thread name is not set, try to get it from prctl. Thread name might // not be set in cases where the thread started before heap profiling was // enabled. int err = prctl(PR_GET_NAME, name); if (!err) { + return strdup(name); + } +#elif defined(OS_BSD) && __FreeBSD__ >= 12 + pthread_get_name_np(pthread_self(), name, kBufferLen); + if (*name != '\0') { return strdup(name); } #endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) diff --git a/www/chromium/files/patch-base_trace__event_malloc__dump__provider.cc b/www/chromium/files/patch-base_trace__event_malloc__dump__provider.cc index afbf97a668d0..4f094d046bd0 100644 --- a/www/chromium/files/patch-base_trace__event_malloc__dump__provider.cc +++ b/www/chromium/files/patch-base_trace__event_malloc__dump__provider.cc @@ -1,21 +1,21 @@ ---- base/trace_event/malloc_dump_provider.cc.orig 2021-03-12 23:57:15 UTC +--- base/trace_event/malloc_dump_provider.cc.orig 2021-04-14 18:40:48 UTC +++ base/trace_event/malloc_dump_provider.cc @@ -17,6 +17,8 @@ #if defined(OS_APPLE) #include +#elif defined(OS_BSD) +#include #else #include #endif -@@ -184,6 +186,9 @@ bool MallocDumpProvider::OnMemoryDump(const MemoryDump +@@ -185,6 +187,9 @@ bool MallocDumpProvider::OnMemoryDump(const MemoryDump } #elif defined(OS_FUCHSIA) // TODO(fuchsia): Port, see https://crbug.com/706592. +#elif defined(OS_BSD) + total_virtual_size = 0; + allocated_objects_size = 0; #else struct mallinfo info = mallinfo(); // In case of Android's jemalloc |arena| is 0 and the outer pages size is diff --git a/www/chromium/files/patch-base_trace__event_process__memory__dump.cc b/www/chromium/files/patch-base_trace__event_process__memory__dump.cc index a6931d12baf3..2d3d5a52f78c 100644 --- a/www/chromium/files/patch-base_trace__event_process__memory__dump.cc +++ b/www/chromium/files/patch-base_trace__event_process__memory__dump.cc @@ -1,11 +1,11 @@ ---- base/trace_event/process_memory_dump.cc.orig 2021-03-12 23:57:15 UTC +--- base/trace_event/process_memory_dump.cc.orig 2021-04-14 18:40:48 UTC +++ base/trace_event/process_memory_dump.cc @@ -101,7 +101,7 @@ base::Optional ProcessMemoryDump::CountResiden #if defined(OS_WIN) std::unique_ptr vec( new PSAPI_WORKING_SET_EX_INFORMATION[max_vec_size]); -#elif defined(OS_APPLE) +#elif defined(OS_APPLE) || defined(OS_BSD) std::unique_ptr vec(new char[max_vec_size]); #elif defined(OS_POSIX) || defined(OS_FUCHSIA) std::unique_ptr vec(new unsigned char[max_vec_size]); diff --git a/www/chromium/files/patch-base_util_memory__pressure_system__memory__pressure__evaluator.cc b/www/chromium/files/patch-base_util_memory__pressure_system__memory__pressure__evaluator.cc index a7a50b33f4cd..9c506c990d39 100644 --- a/www/chromium/files/patch-base_util_memory__pressure_system__memory__pressure__evaluator.cc +++ b/www/chromium/files/patch-base_util_memory__pressure_system__memory__pressure__evaluator.cc @@ -1,20 +1,20 @@ ---- base/util/memory_pressure/system_memory_pressure_evaluator.cc.orig 2021-03-12 23:57:15 UTC +--- base/util/memory_pressure/system_memory_pressure_evaluator.cc.orig 2021-04-14 18:40:48 UTC +++ base/util/memory_pressure/system_memory_pressure_evaluator.cc @@ -17,7 +17,7 @@ #include "base/win/windows_version.h" // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch // of lacros-chrome is complete. -#elif defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) +#elif defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || defined(OS_BSD) #include "base/util/memory_pressure/system_memory_pressure_evaluator_linux.h" #endif @@ -50,7 +50,7 @@ SystemMemoryPressureEvaluator::CreateDefaultSystemEval return evaluator; // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch // of lacros-chrome is complete. -#elif defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) +#elif defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || defined(OS_BSD) return std::make_unique( monitor->CreateVoter()); #endif diff --git a/www/chromium/files/patch-build_config_BUILD.gn b/www/chromium/files/patch-build_config_BUILD.gn index 516a836ec2a5..35b0684f9256 100644 --- a/www/chromium/files/patch-build_config_BUILD.gn +++ b/www/chromium/files/patch-build_config_BUILD.gn @@ -1,21 +1,21 @@ ---- build/config/BUILD.gn.orig 2021-03-12 23:57:15 UTC +--- build/config/BUILD.gn.orig 2021-04-14 18:40:48 UTC +++ build/config/BUILD.gn @@ -232,9 +232,7 @@ config("default_libs") { ] } else if (is_linux || is_chromeos) { libs = [ - "dl", "pthread", - "rt", ] } } @@ -313,7 +311,7 @@ config("executable_config") { "//build/config/ios:ios_dynamic_flags", "//build/config/ios:ios_executable_flags", ] - } else if (is_linux || is_chromeos || is_android || current_os == "aix") { + } else if (is_linux || is_bsd || is_chromeos || is_android || current_os == "aix") { configs += [ "//build/config/gcc:executable_config" ] if (is_chromecast) { configs += [ "//build/config/chromecast:executable_config" ] diff --git a/www/chromium/files/patch-build_config_BUILDCONFIG.gn b/www/chromium/files/patch-build_config_BUILDCONFIG.gn index e434d1df8b05..a9a78e5cf361 100644 --- a/www/chromium/files/patch-build_config_BUILDCONFIG.gn +++ b/www/chromium/files/patch-build_config_BUILDCONFIG.gn @@ -1,35 +1,35 @@ ---- build/config/BUILDCONFIG.gn.orig 2021-03-12 23:57:15 UTC +--- build/config/BUILDCONFIG.gn.orig 2021-04-14 18:40:48 UTC +++ build/config/BUILDCONFIG.gn -@@ -194,8 +194,8 @@ if (host_toolchain == "") { +@@ -183,8 +183,8 @@ if (host_toolchain == "") { # TODO(dpranke): Add some sort of assert here that verifies that # no toolchain omitted host_toolchain from its toolchain_args(). - if (host_os == "linux") { - if (target_os != "linux") { + if (host_os == "linux" || host_os == "freebsd") { + if (target_os != "linux" && target_os != "freebsd") { host_toolchain = "//build/toolchain/linux:clang_$host_cpu" } else if (is_clang) { host_toolchain = "//build/toolchain/linux:clang_$host_cpu" -@@ -232,7 +232,7 @@ if (target_os == "android") { +@@ -221,7 +221,7 @@ if (target_os == "android") { 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 == "freebsd") { # See comments in build/toolchain/cros/BUILD.gn about board compiles. if (is_clang) { _default_toolchain = "//build/toolchain/linux:clang_$target_cpu" -@@ -293,10 +293,11 @@ if (custom_toolchain != "") { +@@ -282,10 +282,11 @@ if (custom_toolchain != "") { # current_os value directly. is_android = current_os == "android" +is_bsd = current_os == "freebsd" is_chromeos = current_os == "chromeos" is_fuchsia = current_os == "fuchsia" is_ios = current_os == "ios" -is_linux = current_os == "linux" +is_linux = current_os == "linux" || current_os == "freebsd" is_mac = current_os == "mac" is_nacl = current_os == "nacl" is_win = current_os == "win" || current_os == "winuwp" diff --git a/www/chromium/files/patch-build_config_compiler_BUILD.gn b/www/chromium/files/patch-build_config_compiler_BUILD.gn index 2a92a5062dd3..13b39bd99279 100644 --- a/www/chromium/files/patch-build_config_compiler_BUILD.gn +++ b/www/chromium/files/patch-build_config_compiler_BUILD.gn @@ -1,120 +1,120 @@ ---- build/config/compiler/BUILD.gn.orig 2021-03-12 23:57:15 UTC +--- build/config/compiler/BUILD.gn.orig 2021-04-14 18:40:48 UTC +++ build/config/compiler/BUILD.gn @@ -132,7 +132,7 @@ declare_args() { # # TODO(crbug.com/977230): Enabling this when 'use_xcode_clang' is true may # call an old clang that doesn't support auto-init. - init_stack_vars = !is_android && !use_xcode_clang + init_stack_vars = !is_android && !use_xcode_clang && !is_bsd # This argument is to control whether enabling text section splitting in the # final binary. When enabled, the separated text sections with prefix -@@ -316,7 +316,7 @@ config("compiler") { +@@ -324,7 +324,7 @@ config("compiler") { } # Linker warnings. - if (fatal_linker_warnings && !is_apple && current_os != "aix") { + if (fatal_linker_warnings && !is_apple && !is_bsd && current_os != "aix") { ldflags += [ "-Wl,--fatal-warnings" ] } if (fatal_linker_warnings && is_apple) { -@@ -411,7 +411,7 @@ config("compiler") { +@@ -419,7 +419,7 @@ config("compiler") { # Compiler instrumentation can introduce dependencies in DSOs to symbols in # the executable they are loaded into, so they are unresolved at link-time. - if (!using_sanitizer) { + if (!using_sanitizer && !is_bsd) { ldflags += [ "-Wl,-z,defs", "-Wl,--as-needed", -@@ -501,7 +501,7 @@ config("compiler") { +@@ -509,7 +509,7 @@ config("compiler") { ldflags += [ "-Wl,-z,keep-text-section-prefix" ] } - if (is_clang && !is_nacl && !use_xcode_clang) { + if (is_clang && !is_nacl && !use_xcode_clang && !is_bsd) { cflags += [ "-fcrash-diagnostics-dir=" + clang_diagnostic_dir ] - cflags += [ -@@ -796,7 +796,7 @@ config("compiler_cpu_abi") { + # TODO(hans): Remove this once Clang generates better optimized debug info +@@ -848,7 +848,7 @@ config("compiler_cpu_abi") { cflags += [ "-mtune=$arm_tune" ] } } else if (current_cpu == "arm64") { - if (is_clang && !is_android && !is_nacl && !is_fuchsia) { + if (is_clang && !is_android && !is_nacl && !is_fuchsia && !is_bsd) { cflags += [ "--target=aarch64-linux-gnu" ] ldflags += [ "--target=aarch64-linux-gnu" ] } -@@ -1146,7 +1146,7 @@ config("compiler_deterministic") { +@@ -1198,7 +1198,7 @@ config("compiler_deterministic") { "-Xclang", ".", ] - if (!is_win) { + if (!is_win && !is_bsd) { # We don't use clang -cc1as on Windows (yet? https://crbug.com/762167) asmflags = [ "-Wa,-fdebug-compilation-dir,." ] } -@@ -1529,7 +1529,7 @@ config("default_warnings") { +@@ -1581,7 +1581,7 @@ config("default_warnings") { cflags += [ "-Wno-nonportable-include-path" ] } - if (current_toolchain == host_toolchain || !use_xcode_clang) { + if ((current_toolchain == host_toolchain || !use_xcode_clang) && !is_bsd) { # Flags NaCl (Clang 3.7) and Xcode 9.2 (Clang clang-900.0.39.2) do not # recognize. cflags += [ -@@ -1570,6 +1570,18 @@ config("default_warnings") { +@@ -1622,6 +1622,18 @@ config("default_warnings") { cflags += [ "-Wno-max-tokens" ] } } + + if (is_clang && is_bsd) { + cflags += [ + "-Wno-ignored-pragma-optimize", + "-Wno-implicit-int-float-conversion", + "-Wno-final-dtor-non-final-class", + "-Wno-builtin-assume-aligned-alignment", + "-Wno-deprecated-copy", + "-Wno-thread-safety-analysis", + "-Wno-thread-safety-attributes", + ] + } } } } -@@ -1699,7 +1711,7 @@ config("no_chromium_code") { +@@ -1751,7 +1763,7 @@ config("no_chromium_code") { # suppressing them individually, we just blanket suppress them here. "-Wno-unused-variable", ] - if (!is_nacl && (current_toolchain == host_toolchain || !use_xcode_clang)) { + if (!is_nacl && (current_toolchain == host_toolchain || !use_xcode_clang) && !is_bsd) { cflags += [ # TODO(https://crbug.com/1031169): Clean up and enable. "-Wno-misleading-indentation", -@@ -1777,7 +1789,7 @@ config("export_dynamic") { +@@ -1829,7 +1841,7 @@ config("export_dynamic") { config("thin_archive") { # The macOS and iOS default linker ld64 does not support reading thin # archives. - if ((is_posix && !is_nacl && (!is_apple || use_lld)) || is_fuchsia) { + if ((is_posix && !is_nacl && (!is_apple || use_lld) && !is_bsd) || is_fuchsia) { arflags = [ "-T" ] } else if (is_win && use_lld) { arflags = [ "/llvmlibthin" ] -@@ -2318,7 +2330,7 @@ config("symbols") { +@@ -2374,7 +2386,7 @@ config("symbols") { # flag, so we can use use -g1 for pnacl and nacl-clang compiles. # gcc nacl is is_nacl && !is_clang, pnacl and nacl-clang are && is_clang. if (!is_nacl || is_clang) { - cflags += [ "-g2" ] + cflags += [ "-g0" ] } # TODO(https://crbug.com/1050118): Investigate missing debug info on mac. -@@ -2350,7 +2362,7 @@ config("symbols") { +@@ -2407,7 +2419,7 @@ config("symbols") { # 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_apple && !is_nacl && current_cpu != "x86" && - (use_gold || use_lld)) { + (use_gold || use_lld) && !is_bsd) { if (is_clang) { # This flag enables the GNU-format pubnames and pubtypes sections, # which lld needs in order to generate a correct GDB index. diff --git a/www/chromium/files/patch-build_config_compiler_compiler.gni b/www/chromium/files/patch-build_config_compiler_compiler.gni index 712d36e592b0..653a3fce454e 100644 --- a/www/chromium/files/patch-build_config_compiler_compiler.gni +++ b/www/chromium/files/patch-build_config_compiler_compiler.gni @@ -1,11 +1,11 @@ ---- build/config/compiler/compiler.gni.orig 2021-03-12 23:57:15 UTC +--- build/config/compiler/compiler.gni.orig 2021-04-14 18:40:48 UTC +++ build/config/compiler/compiler.gni @@ -201,7 +201,7 @@ declare_args() { declare_args() { # Whether to use the gold linker from binutils instead of lld or bfd. - use_gold = !use_lld && !(is_chromecast && is_linux && + use_gold = !is_bsd && !use_lld && !(is_chromecast && is_linux && (current_cpu == "arm" || current_cpu == "mipsel")) && (((is_linux || is_chromeos_lacros) && (current_cpu == "x64" || current_cpu == "x86" || diff --git a/www/chromium/files/patch-build_config_features.gni b/www/chromium/files/patch-build_config_features.gni index a40d39ee555d..282ec208bed4 100644 --- a/www/chromium/files/patch-build_config_features.gni +++ b/www/chromium/files/patch-build_config_features.gni @@ -1,11 +1,11 @@ ---- build/config/features.gni.orig 2021-03-12 23:57:15 UTC +--- build/config/features.gni.orig 2021-04-14 18:40:48 UTC +++ build/config/features.gni @@ -26,7 +26,7 @@ declare_args() { proprietary_codecs = is_chrome_branded || is_chromecast # libudev usage. This currently only affects the content layer. - use_udev = (is_linux || is_chromeos) && !is_chromecast + use_udev = (is_linux || is_chromeos) && !is_chromecast && !is_bsd use_dbus = (is_linux || is_chromeos) && !is_chromecast diff --git a/www/chromium/files/patch-build_config_freetype_freetype.gni b/www/chromium/files/patch-build_config_freetype_freetype.gni index b0cafcefb260..0db577fe0459 100644 --- a/www/chromium/files/patch-build_config_freetype_freetype.gni +++ b/www/chromium/files/patch-build_config_freetype_freetype.gni @@ -1,9 +1,9 @@ ---- build/config/freetype/freetype.gni.orig 2021-03-19 11:22:27 UTC +--- build/config/freetype/freetype.gni.orig 2021-04-14 18:40:48 UTC +++ build/config/freetype/freetype.gni @@ -10,5 +10,5 @@ declare_args() { # than version 2.7.1 and have color bitmap support compiled in. WARNING: # System FreeType configurations other than as described WILL INTRODUCE TEXT # RENDERING AND SECURITY REGRESSIONS. - use_system_freetype = false + use_system_freetype = true } diff --git a/www/chromium/files/patch-build_config_linux_BUILD.gn b/www/chromium/files/patch-build_config_linux_BUILD.gn index 3b27fbfea43e..573507ef09e7 100644 --- a/www/chromium/files/patch-build_config_linux_BUILD.gn +++ b/www/chromium/files/patch-build_config_linux_BUILD.gn @@ -1,11 +1,11 @@ ---- build/config/linux/BUILD.gn.orig 2021-03-12 23:57:15 UTC +--- build/config/linux/BUILD.gn.orig 2021-04-14 18:40:48 UTC +++ build/config/linux/BUILD.gn -@@ -32,7 +32,7 @@ config("runtime_library") { +@@ -30,7 +30,7 @@ config("runtime_library") { if ((!(is_chromeos_ash || is_chromeos_lacros) || default_toolchain != "//build/toolchain/cros:target") && - (!use_custom_libcxx || current_cpu == "mipsel")) { + (!use_custom_libcxx || current_cpu == "mipsel") && !is_bsd) { libs = [ "atomic" ] } } diff --git a/www/chromium/files/patch-build_config_linux_pkg-config.py b/www/chromium/files/patch-build_config_linux_pkg-config.py index aa7ca0f75d5b..7ed4de72c661 100644 --- a/www/chromium/files/patch-build_config_linux_pkg-config.py +++ b/www/chromium/files/patch-build_config_linux_pkg-config.py @@ -1,26 +1,26 @@ ---- build/config/linux/pkg-config.py.orig 2021-03-12 23:57:15 UTC +--- build/config/linux/pkg-config.py.orig 2021-04-14 18:40:48 UTC +++ build/config/linux/pkg-config.py @@ -59,8 +59,12 @@ def SetConfigPath(options): print("You must specify an architecture via -a if using a sysroot.") sys.exit(1) - libdir = sysroot + '/usr/' + options.system_libdir + '/pkgconfig' - libdir += ':' + sysroot + '/usr/share/pkgconfig' + if "linux" in sys.platform: + libdir = sysroot + '/libdata/' + options.system_libdir + '/pkgconfig' + libdir += ':' + sysroot + '/usr/share/pkgconfig' + elif "bsd" in sys.platform: + libdir = sysroot + '/libdata/pkgconfig' + libdir += ':' + '/usr/libdata/pkgconfig' os.environ['PKG_CONFIG_LIBDIR'] = libdir return libdir @@ -109,7 +113,7 @@ def main(): # If this is run on non-Linux platforms, just return nothing and indicate # success. This allows us to "kind of emulate" a Linux build from other # platforms. - if "linux" not in sys.platform: + if "bsd" not in sys.platform: print("[[],[],[],[],[]]") return 0 diff --git a/www/chromium/files/patch-build_config_ozone.gni b/www/chromium/files/patch-build_config_ozone.gni index add2a94c9b2b..28f294c8de21 100644 --- a/www/chromium/files/patch-build_config_ozone.gni +++ b/www/chromium/files/patch-build_config_ozone.gni @@ -1,12 +1,12 @@ ---- build/config/ozone.gni.orig 2021-03-12 23:57:15 UTC +--- build/config/ozone.gni.orig 2021-04-14 18:40:48 UTC +++ build/config/ozone.gni -@@ -70,6 +70,9 @@ declare_args() { +@@ -79,6 +79,9 @@ declare_args() { ozone_platform = "x11" ozone_platform_drm = true ozone_platform_x11 = true + } else if (is_bsd) { + ozone_platform = "x11" + ozone_platform_x11 = true } else if (is_linux || is_chromeos_lacros) { ozone_platform = "x11" ozone_platform_wayland = true diff --git a/www/chromium/files/patch-build_config_sysroot.gni b/www/chromium/files/patch-build_config_sysroot.gni index 65b672a9c63e..b68650b4abf9 100644 --- a/www/chromium/files/patch-build_config_sysroot.gni +++ b/www/chromium/files/patch-build_config_sysroot.gni @@ -1,14 +1,14 @@ ---- build/config/sysroot.gni.orig 2021-03-12 23:57:15 UTC +--- build/config/sysroot.gni.orig 2021-04-14 18:40:48 UTC +++ build/config/sysroot.gni @@ -21,9 +21,9 @@ declare_args() { # Controls default is_linux sysroot. If set to true, and sysroot # is empty, default sysroot is calculated. - use_sysroot = current_cpu == "x86" || current_cpu == "x64" || + use_sysroot = !is_bsd && (current_cpu == "x86" || current_cpu == "x64" || current_cpu == "arm" || current_cpu == "arm64" || - current_cpu == "mipsel" || current_cpu == "mips64el" + current_cpu == "mipsel" || current_cpu == "mips64el") } if (sysroot == "") { diff --git a/www/chromium/files/patch-build_detect__host__arch.py b/www/chromium/files/patch-build_detect__host__arch.py index 84b6ece317b6..9d8ad2c44d2b 100644 --- a/www/chromium/files/patch-build_detect__host__arch.py +++ b/www/chromium/files/patch-build_detect__host__arch.py @@ -1,11 +1,11 @@ ---- build/detect_host_arch.py.orig 2021-03-12 23:57:15 UTC +--- build/detect_host_arch.py.orig 2021-04-14 18:40:48 UTC +++ build/detect_host_arch.py @@ -21,6 +21,8 @@ def HostArch(): host_arch = 'ia32' elif host_arch in ['x86_64', 'amd64']: host_arch = 'x64' + elif host_arch.startswith('arm64'): + host_arch = 'arm64' elif host_arch.startswith('arm'): host_arch = 'arm' elif host_arch.startswith('aarch64'): diff --git a/www/chromium/files/patch-build_gn__run__binary.py b/www/chromium/files/patch-build_gn__run__binary.py index c56ad6ea285f..905ddf57f5d1 100644 --- a/www/chromium/files/patch-build_gn__run__binary.py +++ b/www/chromium/files/patch-build_gn__run__binary.py @@ -1,11 +1,11 @@ ---- build/gn_run_binary.py.orig 2021-03-12 23:57:15 UTC +--- build/gn_run_binary.py.orig 2021-04-14 18:40:48 UTC +++ build/gn_run_binary.py @@ -24,7 +24,7 @@ if not os.path.isabs(path): # The rest of the arguments are passed directly to the executable. args = [path] + sys.argv[2:] -ret = subprocess.call(args) +ret = subprocess.call(args, env={"CHROME_EXE_PATH":"${WRKSRC}/out/Release/chrome"}) if ret != 0: if ret <= -100: # Windows error codes such as 0xC0000005 and 0xC0000409 are much easier to diff --git a/www/chromium/files/patch-build_linux_chrome.map b/www/chromium/files/patch-build_linux_chrome.map index 8e4f0f67de55..444c645ca7df 100644 --- a/www/chromium/files/patch-build_linux_chrome.map +++ b/www/chromium/files/patch-build_linux_chrome.map @@ -1,29 +1,29 @@ ---- build/linux/chrome.map.orig 2021-03-12 23:57:15 UTC +--- build/linux/chrome.map.orig 2021-04-14 18:40:48 UTC +++ build/linux/chrome.map @@ -1,4 +1,7 @@ { +local: + *; + global: __bss_start; __data_start; @@ -20,6 +23,10 @@ global: # Program entry point. _start; + # FreeBSD specific variables. + __progname; + environ; + # Memory allocation symbols. We want chrome and any libraries to # share the same heap, so it is correct to export these symbols. calloc; @@ -83,7 +90,4 @@ global: localtime_r; v8dbg_*; - -local: - *; }; diff --git a/www/chromium/files/patch-build_linux_libpci_BUILD.gn b/www/chromium/files/patch-build_linux_libpci_BUILD.gn index e0f1b0b5e658..fa8f9032e351 100644 --- a/www/chromium/files/patch-build_linux_libpci_BUILD.gn +++ b/www/chromium/files/patch-build_linux_libpci_BUILD.gn @@ -1,53 +1,53 @@ ---- build/linux/libpci/BUILD.gn.orig 2021-03-12 23:57:15 UTC +--- build/linux/libpci/BUILD.gn.orig 2021-04-14 18:40:48 UTC +++ build/linux/libpci/BUILD.gn @@ -3,20 +3,36 @@ # found in the LICENSE file. import("//tools/generate_library_loader/generate_library_loader.gni") +import("//build/config/linux/pkg_config.gni") -# This generates a target named "libpci". -generate_library_loader("libpci") { - name = "LibPciLoader" - output_h = "libpci.h" - output_cc = "libpci_loader.cc" - header = "" +declare_args() { + use_system_libpci = is_bsd +} - functions = [ - "pci_alloc", - "pci_init", - "pci_cleanup", - "pci_scan_bus", - "pci_fill_info", - "pci_lookup_name", - ] +if (use_system_libpci) { + pkg_config("system_libpci") { + packages = [ "libpci" ] + } + + source_set("libpci") { + public_configs = [ ":system_libpci" ] + } + +} else { + # This generates a target named "libpci". + generate_library_loader("libpci") { + name = "LibPciLoader" + output_h = "libpci.h" + output_cc = "libpci_loader.cc" + header = "" + + functions = [ + "pci_alloc", + "pci_init", + "pci_cleanup", + "pci_scan_bus", + "pci_fill_info", + "pci_lookup_name", + ] + } } diff --git a/www/chromium/files/patch-build_linux_unbundle_libusb.gn b/www/chromium/files/patch-build_linux_unbundle_libusb.gn index e164aa294eb4..db96d613cad6 100644 --- a/www/chromium/files/patch-build_linux_unbundle_libusb.gn +++ b/www/chromium/files/patch-build_linux_unbundle_libusb.gn @@ -1,27 +1,27 @@ ---- build/linux/unbundle/libusb.gn.orig 2021-03-15 11:01:22 UTC +--- build/linux/unbundle/libusb.gn.orig 2021-04-15 08:12:30 UTC +++ build/linux/unbundle/libusb.gn @@ -0,0 +1,24 @@ +# Copyright 2016 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. + +import("//build/config/linux/pkg_config.gni") +import("//build/shim_headers.gni") + +pkg_config("system_libusb") { + packages = [ "libusb-1.0" ] +} + +shim_headers("libusb_shim") { + root_path = "src/libusb" + headers = [ + "libusb.h", + ] +} + +source_set("libusb") { + deps = [ + ":libusb_shim", + ] + public_configs = [ ":system_libusb" ] +} diff --git a/www/chromium/files/patch-build_linux_unbundle_replace__gn__files.py b/www/chromium/files/patch-build_linux_unbundle_replace__gn__files.py index e49e1e7edfd8..7513f8ebb1fc 100644 --- a/www/chromium/files/patch-build_linux_unbundle_replace__gn__files.py +++ b/www/chromium/files/patch-build_linux_unbundle_replace__gn__files.py @@ -1,10 +1,10 @@ ---- build/linux/unbundle/replace_gn_files.py.orig 2021-03-12 23:57:15 UTC +--- build/linux/unbundle/replace_gn_files.py.orig 2021-04-14 18:40:48 UTC +++ build/linux/unbundle/replace_gn_files.py @@ -27,6 +27,7 @@ REPLACEMENTS = { 'libevent': 'base/third_party/libevent/BUILD.gn', 'libjpeg': 'third_party/libjpeg.gni', 'libpng': 'third_party/libpng/BUILD.gn', + 'libusb': 'third_party/libusb/BUILD.gn', 'libvpx': 'third_party/libvpx/BUILD.gn', 'libwebp': 'third_party/libwebp/BUILD.gn', 'libxml': 'third_party/libxml/BUILD.gn', diff --git a/www/chromium/files/patch-build_toolchain_gcc__toolchain.gni b/www/chromium/files/patch-build_toolchain_gcc__toolchain.gni index e4843269c23a..5fc7d6d58dc3 100644 --- a/www/chromium/files/patch-build_toolchain_gcc__toolchain.gni +++ b/www/chromium/files/patch-build_toolchain_gcc__toolchain.gni @@ -1,45 +1,45 @@ ---- build/toolchain/gcc_toolchain.gni.orig 2021-03-12 23:57:15 UTC +--- build/toolchain/gcc_toolchain.gni.orig 2021-04-14 18:40:48 UTC +++ build/toolchain/gcc_toolchain.gni @@ -51,6 +51,11 @@ if (enable_resource_allowlist_generation) { "enable_resource_allowlist_generation=true does not work for target_os=$target_os") } +declare_args() { + extra_cxxflags = "" + extra_ldflags = "" +} + # This template defines a toolchain for something that works like gcc # (including clang). # -@@ -639,13 +644,23 @@ template("clang_toolchain") { +@@ -646,13 +651,23 @@ template("clang_toolchain") { } gcc_toolchain(target_name) { - prefix = rebase_path("$clang_base_path/bin", root_build_dir) - cc = "$prefix/clang" - cxx = "$prefix/clang++" - ld = cxx - readelf = "${toolprefix}readelf" - ar = "${prefix}/llvm-ar" - nm = "${toolprefix}nm" + if (is_bsd) { + prefix = "/usr/local/bin" + cc = "cc" + cxx = "c++" + ld = cxx + readelf = "readelf" + ar = "${prefix}/ar" + nm = "${toolprefix}nm" + } else { + prefix = rebase_path("$clang_base_path/bin", root_build_dir) + cc = "$prefix/clang" + cxx = "$prefix/clang++" + ld = cxx + readelf = "${toolprefix}readelf" + ar = "${prefix}/llvm-ar" + nm = "${toolprefix}nm" + } forward_variables_from(invoker, [ diff --git a/www/chromium/files/patch-build_toolchain_get__concurrent__links.py b/www/chromium/files/patch-build_toolchain_get__concurrent__links.py index c886e27c241f..991cf22f96c3 100644 --- a/www/chromium/files/patch-build_toolchain_get__concurrent__links.py +++ b/www/chromium/files/patch-build_toolchain_get__concurrent__links.py @@ -1,17 +1,17 @@ ---- build/toolchain/get_concurrent_links.py.orig 2021-03-12 23:57:15 UTC +--- build/toolchain/get_concurrent_links.py.orig 2021-04-14 18:40:48 UTC +++ build/toolchain/get_concurrent_links.py @@ -53,6 +53,14 @@ def _GetTotalMemoryInBytes(): return int(subprocess.check_output(['sysctl', '-n', 'hw.memsize'])) except Exception: return 0 + elif sys.platform.startswith('freebsd'): + try: + avail_bytes = int(subprocess.check_output(['sysctl', '-n', 'hw.physmem'])) + # With -fuse-lld it doesn't take a lot of ram, feel free to change that + # 1 * ... to needed amount + return max(1, avail_bytes / (1 * (2 ** 30))) # total / 4GB + except Exception: + return 1 # TODO(scottmg): Implement this for other platforms. return 0 diff --git a/www/chromium/files/patch-build_toolchain_linux_BUILD.gn b/www/chromium/files/patch-build_toolchain_linux_BUILD.gn index cf2cfe07758f..e2710a5019fd 100644 --- a/www/chromium/files/patch-build_toolchain_linux_BUILD.gn +++ b/www/chromium/files/patch-build_toolchain_linux_BUILD.gn @@ -1,10 +1,10 @@ ---- build/toolchain/linux/BUILD.gn.orig 2021-03-12 23:57:15 UTC +--- build/toolchain/linux/BUILD.gn.orig 2021-04-14 18:40:48 UTC +++ build/toolchain/linux/BUILD.gn @@ -23,7 +23,6 @@ clang_toolchain("clang_arm") { } clang_toolchain("clang_arm64") { - toolprefix = "aarch64-linux-gnu-" toolchain_args = { current_cpu = "arm64" current_os = "linux" diff --git a/www/chromium/files/patch-cc_BUILD.gn b/www/chromium/files/patch-cc_BUILD.gn index fa5dd4befc5d..266840d1ea45 100644 --- a/www/chromium/files/patch-cc_BUILD.gn +++ b/www/chromium/files/patch-cc_BUILD.gn @@ -1,19 +1,19 @@ ---- cc/BUILD.gn.orig 2021-03-12 23:57:15 UTC +--- cc/BUILD.gn.orig 2021-04-14 18:40:48 UTC +++ cc/BUILD.gn -@@ -633,7 +633,7 @@ cc_test_static_library("test_support") { +@@ -639,7 +639,7 @@ cc_test_static_library("test_support") { if (enable_vulkan) { deps += [ "//gpu/vulkan/init" ] } - if (!is_android) { + if (!is_android && !is_bsd) { data_deps = [ "//third_party/mesa_headers" ] } } -@@ -848,7 +848,6 @@ cc_test("cc_unittests") { +@@ -856,7 +856,6 @@ cc_test("cc_unittests") { ] data_deps = [ "//testing/buildbot/filters:cc_unittests_filters", - "//third_party/mesa_headers", ] if (is_fuchsia) { diff --git a/www/chromium/files/patch-cc_layers_scrollbar__layer__impl__base.cc b/www/chromium/files/patch-cc_layers_scrollbar__layer__impl__base.cc index 95fb45333324..1fb0ba72b6da 100644 --- a/www/chromium/files/patch-cc_layers_scrollbar__layer__impl__base.cc +++ b/www/chromium/files/patch-cc_layers_scrollbar__layer__impl__base.cc @@ -1,13 +1,13 @@ ---- cc/layers/scrollbar_layer_impl_base.cc.orig 2021-03-12 23:57:15 UTC +--- cc/layers/scrollbar_layer_impl_base.cc.orig 2021-04-14 18:40:48 UTC +++ cc/layers/scrollbar_layer_impl_base.cc @@ -219,8 +219,8 @@ gfx::Rect ScrollbarLayerImplBase::ComputeThumbQuadRect int thumb_offset = TrackStart(); if (maximum > 0) { float ratio = clamped_current_pos / maximum; - float max_offset = track_length - thumb_length; - thumb_offset += static_cast(ratio * max_offset); + float _max_offset = track_length - thumb_length; + thumb_offset += static_cast(ratio * _max_offset); } float thumb_thickness_adjustment = diff --git a/www/chromium/files/patch-cc_test_layer__tree__test.cc b/www/chromium/files/patch-cc_test_layer__tree__test.cc index 8f25479fa63f..840d38108045 100644 --- a/www/chromium/files/patch-cc_test_layer__tree__test.cc +++ b/www/chromium/files/patch-cc_test_layer__tree__test.cc @@ -1,11 +1,11 @@ ---- cc/test/layer_tree_test.cc.orig 2021-03-12 23:57:15 UTC +--- cc/test/layer_tree_test.cc.orig 2021-04-14 18:40:48 UTC +++ cc/test/layer_tree_test.cc -@@ -673,7 +673,7 @@ LayerTreeTest::LayerTreeTest(viz::RendererType rendere +@@ -674,7 +674,7 @@ LayerTreeTest::LayerTreeTest(viz::RendererType rendere init_vulkan = true; } else if (renderer_type_ == viz::RendererType::kSkiaDawn) { scoped_feature_list_.InitAndEnableFeature(features::kSkiaDawn); -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) init_vulkan = true; #elif defined(OS_WIN) // TODO(sgilhuly): Initialize D3D12 for Windows. diff --git a/www/chromium/files/patch-cc_test_pixel__test.cc b/www/chromium/files/patch-cc_test_pixel__test.cc index 279686d88712..f1ce98713c03 100644 --- a/www/chromium/files/patch-cc_test_pixel__test.cc +++ b/www/chromium/files/patch-cc_test_pixel__test.cc @@ -1,11 +1,11 @@ ---- cc/test/pixel_test.cc.orig 2021-03-12 23:57:15 UTC +--- cc/test/pixel_test.cc.orig 2021-04-14 18:40:48 UTC +++ cc/test/pixel_test.cc -@@ -69,7 +69,7 @@ PixelTest::PixelTest(GraphicsBackend backend) +@@ -71,7 +71,7 @@ PixelTest::PixelTest(GraphicsBackend backend) init_vulkan = true; } else if (backend == kSkiaDawn) { scoped_feature_list_.InitAndEnableFeature(features::kSkiaDawn); -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) init_vulkan = true; #elif defined(OS_WIN) // TODO(sgilhuly): Initialize D3D12 for Windows. diff --git a/www/chromium/files/patch-cc_trees_frame__rate__estimator.cc b/www/chromium/files/patch-cc_trees_frame__rate__estimator.cc index 9665897d0736..f70fd5aaebe8 100644 --- a/www/chromium/files/patch-cc_trees_frame__rate__estimator.cc +++ b/www/chromium/files/patch-cc_trees_frame__rate__estimator.cc @@ -1,11 +1,11 @@ ---- cc/trees/frame_rate_estimator.cc.orig 2021-03-12 23:57:15 UTC +--- cc/trees/frame_rate_estimator.cc.orig 2021-04-14 18:40:48 UTC +++ cc/trees/frame_rate_estimator.cc @@ -48,7 +48,7 @@ void FrameRateEstimator::WillDraw(base::TimeTicks now) // frequency is lower than that, then using a lower frame rate is permitted. // The delta below is to account for minor offsets in frame times. constexpr auto kFudgeDelta = base::TimeDelta::FromMilliseconds(1); - constexpr auto kMinDelta = + auto kMinDelta = (viz::BeginFrameArgs::DefaultInterval() * 2) + kFudgeDelta; if (draw_delta < kMinDelta) num_of_consecutive_frames_with_min_delta_++; diff --git a/www/chromium/files/patch-cc_trees_property__tree.cc b/www/chromium/files/patch-cc_trees_property__tree.cc index c3572792efbe..1211a5a74f8f 100644 --- a/www/chromium/files/patch-cc_trees_property__tree.cc +++ b/www/chromium/files/patch-cc_trees_property__tree.cc @@ -1,20 +1,20 @@ ---- cc/trees/property_tree.cc.orig 2021-03-12 23:57:15 UTC +--- cc/trees/property_tree.cc.orig 2021-04-14 18:40:48 UTC +++ cc/trees/property_tree.cc -@@ -1300,13 +1300,13 @@ gfx::ScrollOffset ScrollTree::MaxScrollOffset(int scro +@@ -1299,13 +1299,13 @@ gfx::ScrollOffset ScrollTree::MaxScrollOffset(int scro gfx::Size clip_layer_bounds = container_bounds(scroll_node->id); - gfx::ScrollOffset max_offset( + gfx::ScrollOffset _max_offset( scaled_scroll_bounds.width() - clip_layer_bounds.width(), scaled_scroll_bounds.height() - clip_layer_bounds.height()); - max_offset.Scale(1 / scale_factor); - max_offset.SetToMax(gfx::ScrollOffset()); - return max_offset; + _max_offset.Scale(1 / scale_factor); + _max_offset.SetToMax(gfx::ScrollOffset()); + return _max_offset; } gfx::SizeF ScrollTree::scroll_bounds(int scroll_node_id) const { diff --git a/www/chromium/files/patch-chrome_BUILD.gn b/www/chromium/files/patch-chrome_BUILD.gn index a3a298b884ac..6df141ba9bcf 100644 --- a/www/chromium/files/patch-chrome_BUILD.gn +++ b/www/chromium/files/patch-chrome_BUILD.gn @@ -1,13 +1,13 @@ ---- chrome/BUILD.gn.orig 2021-03-12 23:57:15 UTC +--- chrome/BUILD.gn.orig 2021-04-14 18:40:48 UTC +++ chrome/BUILD.gn -@@ -1243,6 +1243,10 @@ group("browser_dependencies") { +@@ -1249,6 +1249,10 @@ group("browser_dependencies") { public_deps += [ "//chromeos/lacros" ] } + if (is_bsd) { + public_deps -= [ "//components/crash/core/app" ] + } + if (is_chromeos_ash) { public_deps += [ - "//chrome/browser/chromeos", + "//ash/constants", diff --git a/www/chromium/files/patch-chrome_app_BUILD.gn b/www/chromium/files/patch-chrome_app_BUILD.gn index 84e99450b90e..24fe0c956d1d 100644 --- a/www/chromium/files/patch-chrome_app_BUILD.gn +++ b/www/chromium/files/patch-chrome_app_BUILD.gn @@ -1,11 +1,11 @@ ---- chrome/app/BUILD.gn.orig 2021-03-12 23:57:16 UTC +--- chrome/app/BUILD.gn.orig 2021-04-14 18:40:49 UTC +++ chrome/app/BUILD.gn -@@ -143,7 +143,7 @@ static_library("test_support") { +@@ -140,7 +140,7 @@ static_library("test_support") { "//v8:v8_headers", ] - if (!is_fuchsia) { + if (!is_fuchsia && !is_bsd) { # TODO(crbug.com/753619): Enable crash reporting on Fuchsia. deps += [ "//components/crash/core/app", diff --git a/www/chromium/files/patch-chrome_app_chrome__command__ids.h b/www/chromium/files/patch-chrome_app_chrome__command__ids.h index 8e1c8d63efa2..9fec5c2c859d 100644 --- a/www/chromium/files/patch-chrome_app_chrome__command__ids.h +++ b/www/chromium/files/patch-chrome_app_chrome__command__ids.h @@ -1,11 +1,11 @@ ---- chrome/app/chrome_command_ids.h.orig 2021-03-12 23:57:16 UTC +--- chrome/app/chrome_command_ids.h.orig 2021-04-14 18:40:49 UTC +++ chrome/app/chrome_command_ids.h -@@ -64,7 +64,7 @@ +@@ -65,7 +65,7 @@ #define IDC_NAME_WINDOW 34049 // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch of lacros-chrome is complete. -#if defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) +#if defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || defined(OS_BSD) #define IDC_USE_SYSTEM_TITLE_BAR 34051 #define IDC_RESTORE_WINDOW 34052 #endif diff --git a/www/chromium/files/patch-chrome_app_chrome__main.cc b/www/chromium/files/patch-chrome_app_chrome__main.cc index 0bf1ec5473f5..1febcb3b46a0 100644 --- a/www/chromium/files/patch-chrome_app_chrome__main.cc +++ b/www/chromium/files/patch-chrome_app_chrome__main.cc @@ -1,17 +1,17 @@ ---- chrome/app/chrome_main.cc.orig 2021-03-12 23:57:16 UTC +--- chrome/app/chrome_main.cc.orig 2021-04-14 18:40:49 UTC +++ chrome/app/chrome_main.cc @@ -130,12 +130,12 @@ int ChromeMain(int argc, const char** argv) { MainThreadStackSamplingProfiler scoped_sampling_profiler; // Chrome-specific process modes. -#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_MAC) || \ +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_MAC) || defined(OS_BSD) || \ defined(OS_WIN) if (command_line->HasSwitch(switches::kHeadless)) { return headless::HeadlessShellMain(params); } -#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_MAC) || +#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_MAC) || defined(OS_BSD) || // defined(OS_WIN) int rv = content::ContentMain(params); 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 faa92dea9bb5..0a4f96b13554 100644 --- a/www/chromium/files/patch-chrome_app_chrome__main__delegate.cc +++ b/www/chromium/files/patch-chrome_app_chrome__main__delegate.cc @@ -1,170 +1,170 @@ ---- chrome/app/chrome_main_delegate.cc.orig 2021-03-12 23:57:16 UTC +--- chrome/app/chrome_main_delegate.cc.orig 2021-04-14 18:40:49 UTC +++ chrome/app/chrome_main_delegate.cc -@@ -149,12 +149,12 @@ +@@ -150,12 +150,12 @@ #include "v8/include/v8.h" #endif -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) #include "base/environment.h" #endif #if defined(OS_MAC) || defined(OS_WIN) || defined(OS_ANDROID) || \ - defined(OS_LINUX) || defined(OS_CHROMEOS) + defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) #include "chrome/browser/policy/policy_path_parser.h" #include "components/crash/core/app/crashpad.h" #endif -@@ -260,7 +260,7 @@ void SetUpExtendedCrashReporting(bool is_browser_proce +@@ -259,7 +259,7 @@ void SetUpExtendedCrashReporting(bool is_browser_proce #endif // defined(OS_WIN) -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if (defined(OS_LINUX) || defined(OS_CHROMEOS)) void AdjustLinuxOOMScore(const std::string& process_type) { int score = -1; -@@ -295,7 +295,7 @@ void AdjustLinuxOOMScore(const std::string& process_ty +@@ -294,7 +294,7 @@ void AdjustLinuxOOMScore(const std::string& process_ty if (score > -1) base::AdjustOOMScore(base::GetCurrentProcId(), score); } -#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) +#endif // (defined(OS_LINUX) || defined(OS_CHROMEOS)) // Returns true if this subprocess type needs the ResourceBundle initialized // and resources loaded. -@@ -341,7 +341,7 @@ bool HandleVersionSwitches(const base::CommandLine& co +@@ -340,7 +340,7 @@ bool HandleVersionSwitches(const base::CommandLine& co // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch // of lacros-chrome is complete. -#if defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) +#if defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || defined(OS_BSD) // Show the man page if --help or -h is on the command line. void HandleHelpSwitches(const base::CommandLine& command_line) { if (command_line.HasSwitch(switches::kHelp) || -@@ -351,7 +351,7 @@ void HandleHelpSwitches(const base::CommandLine& comma +@@ -350,7 +350,7 @@ void HandleHelpSwitches(const base::CommandLine& comma PLOG(FATAL) << "execlp failed"; } } -#endif // defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) +#endif // defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || defined(OS_BSD) #if !defined(OS_MAC) && !defined(OS_ANDROID) void SIGTERMProfilingShutdown(int signal) { -@@ -405,7 +405,7 @@ void InitializeUserDataDir(base::CommandLine* command_ +@@ -404,7 +404,7 @@ void InitializeUserDataDir(base::CommandLine* command_ std::string process_type = command_line->GetSwitchValueASCII(switches::kProcessType); -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) // On Linux, Chrome does not support running multiple copies under different // DISPLAYs, so the profile directory can be specified in the environment to // support the virtual desktop use-case. -@@ -417,7 +417,7 @@ void InitializeUserDataDir(base::CommandLine* command_ +@@ -416,7 +416,7 @@ void InitializeUserDataDir(base::CommandLine* command_ user_data_dir = base::FilePath::FromUTF8Unsafe(user_data_dir_string); } } -#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) +#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) #if defined(OS_MAC) policy::path_parser::CheckUserDataDirPolicy(&user_data_dir); #endif // OS_MAC -@@ -488,7 +488,7 @@ void RecordMainStartupMetrics(base::TimeTicks applicat +@@ -487,7 +487,7 @@ void RecordMainStartupMetrics(base::TimeTicks applicat startup_metric_utils::RecordApplicationStartTime(now); #endif -#if defined(OS_MAC) || defined(OS_WIN) || defined(OS_LINUX) || \ +#if defined(OS_MAC) || defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD) || \ defined(OS_CHROMEOS) // Record the startup process creation time on supported platforms. On Android // this is recorded in ChromeMainDelegateAndroid. -@@ -723,7 +723,7 @@ bool ChromeMainDelegate::BasicStartupComplete(int* exi +@@ -730,7 +730,7 @@ bool ChromeMainDelegate::BasicStartupComplete(int* exi v8_crashpad_support::SetUp(); #endif -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if (defined(OS_LINUX) || defined(OS_CHROMEOS)) if (!crash_reporter::IsCrashpadEnabled()) { breakpad::SetFirstChanceExceptionHandler(v8::TryHandleWebAssemblyTrapPosix); } -@@ -736,7 +736,7 @@ bool ChromeMainDelegate::BasicStartupComplete(int* exi +@@ -743,7 +743,7 @@ bool ChromeMainDelegate::BasicStartupComplete(int* exi } // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch // of lacros-chrome is complete. -#if defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) +#if defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || defined(OS_BSD) // This will directly exit if the user asked for help. HandleHelpSwitches(command_line); #endif -@@ -945,7 +945,7 @@ void ChromeMainDelegate::PreSandboxStartup() { +@@ -952,7 +952,7 @@ void ChromeMainDelegate::PreSandboxStartup() { crash_reporter::InitializeCrashKeys(); -#if defined(OS_POSIX) +#if defined(OS_POSIX) && !defined(OS_BSD) ChromeCrashReporterClient::Create(); #endif -@@ -958,7 +958,7 @@ void ChromeMainDelegate::PreSandboxStartup() { +@@ -965,7 +965,7 @@ void ChromeMainDelegate::PreSandboxStartup() { child_process_logging::Init(); #endif #if defined(ARCH_CPU_ARM_FAMILY) && \ - (defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS)) + (defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)) // Create an instance of the CPU class to parse /proc/cpuinfo and cache // cpu_brand info. base::CPU cpu_info; -@@ -1075,7 +1075,7 @@ void ChromeMainDelegate::PreSandboxStartup() { +@@ -1083,7 +1083,7 @@ void ChromeMainDelegate::PreSandboxStartup() { locale; } -#if defined(OS_POSIX) && !defined(OS_MAC) +#if defined(OS_POSIX) && !defined(OS_MAC) && !defined(OS_BSD) // Zygote needs to call InitCrashReporter() in RunZygote(). if (process_type != switches::kZygoteProcess) { #if defined(OS_ANDROID) -@@ -1096,7 +1096,7 @@ void ChromeMainDelegate::PreSandboxStartup() { +@@ -1104,7 +1104,7 @@ void ChromeMainDelegate::PreSandboxStartup() { } #endif // defined(OS_ANDROID) } -#endif // defined(OS_POSIX) && !defined(OS_MAC) +#endif // defined(OS_POSIX) && !defined(OS_MAC) && !defined(OS_BSD) #if defined(OS_ANDROID) CHECK_EQ(base::android::GetLibraryProcessType(), -@@ -1116,7 +1116,7 @@ void ChromeMainDelegate::PreSandboxStartup() { +@@ -1124,7 +1124,7 @@ void ChromeMainDelegate::PreSandboxStartup() { 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) || defined(OS_CHROMEOS) +#if (defined(OS_LINUX) || defined(OS_CHROMEOS)) AdjustLinuxOOMScore(process_type); #endif #if defined(OS_WIN) -@@ -1158,7 +1158,7 @@ int ChromeMainDelegate::RunProcess( +@@ -1166,7 +1166,7 @@ int ChromeMainDelegate::RunProcess( // This entry is not needed on Linux, where the NaCl loader // process is launched via nacl_helper instead. -#if BUILDFLAG(ENABLE_NACL) && !defined(OS_LINUX) && !defined(OS_CHROMEOS) +#if BUILDFLAG(ENABLE_NACL) && !defined(OS_LINUX) && !defined(OS_CHROMEOS) && !defined(OS_BSD) {switches::kNaClLoaderProcess, NaClMain}, #else {"", nullptr}, // To avoid constant array of size 0 -@@ -1186,7 +1186,7 @@ void ChromeMainDelegate::ProcessExiting(const std::str +@@ -1194,7 +1194,7 @@ void ChromeMainDelegate::ProcessExiting(const std::str #endif // !defined(OS_ANDROID) } -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if (defined(OS_LINUX) || defined(OS_CHROMEOS)) void ChromeMainDelegate::ZygoteStarting( std::vector>* delegates) { #if BUILDFLAG(IS_CHROMEOS_ASH) -@@ -1223,7 +1223,7 @@ void ChromeMainDelegate::ZygoteForked() { +@@ -1231,7 +1231,7 @@ void ChromeMainDelegate::ZygoteForked() { crash_keys::SetCrashKeysFromCommandLine(*command_line); } -#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) +#endif // (defined(OS_LINUX) || defined(OS_CHROMEOS)) content::ContentClient* ChromeMainDelegate::CreateContentClient() { return &chrome_content_client_; diff --git a/www/chromium/files/patch-chrome_app_chromium__strings.grd b/www/chromium/files/patch-chrome_app_chromium__strings.grd index 79ef78560180..1f414e0346fa 100644 --- a/www/chromium/files/patch-chrome_app_chromium__strings.grd +++ b/www/chromium/files/patch-chrome_app_chromium__strings.grd @@ -1,29 +1,20 @@ ---- chrome/app/chromium_strings.grd.orig 2021-03-12 23:57:16 UTC +--- chrome/app/chromium_strings.grd.orig 2021-04-14 18:40:49 UTC +++ chrome/app/chromium_strings.grd -@@ -716,7 +716,7 @@ Chromium is unable to recover your settings. +@@ -722,7 +722,7 @@ Chromium is unable to recover your settings. - + Your system administrator has configured Chromium to open an alternative browser to access $1example.com. -@@ -839,7 +839,7 @@ Chromium is unable to recover your settings. +@@ -851,7 +851,7 @@ Chromium is unable to recover your settings. - + The profile appears to be in use by another Chromium process ($112345) on another computer ($2example.com). Chromium has locked the profile so that it doesn't get corrupted. If you are sure no other processes are using this profile, you can unlock the profile and relaunch Chromium. -@@ -1058,7 +1058,7 @@ Chromium is unable to recover your settings. - - - -- -+ - - Restart Chromium to enable $1Flash - diff --git a/www/chromium/files/patch-chrome_app_generated__resources.grd b/www/chromium/files/patch-chrome_app_generated__resources.grd index 44276de08dce..677c44f8549e 100644 --- a/www/chromium/files/patch-chrome_app_generated__resources.grd +++ b/www/chromium/files/patch-chrome_app_generated__resources.grd @@ -1,29 +1,29 @@ ---- chrome/app/generated_resources.grd.orig 2021-03-12 23:57:16 UTC +--- chrome/app/generated_resources.grd.orig 2021-04-14 18:40:49 UTC +++ chrome/app/generated_resources.grd -@@ -5255,7 +5255,7 @@ Keep your key file in a safe place. You will need it t +@@ -5254,7 +5254,7 @@ Keep your key file in a safe place. You will need it t - + Legacy Browser Support -@@ -7305,7 +7305,7 @@ Keep your key file in a safe place. You will need it t +@@ -7345,7 +7345,7 @@ Keep your key file in a safe place. You will need it t Google Pay - + Use system title bar and borders -@@ -8296,7 +8296,7 @@ Please help our engineers fix this problem. Tell us wh +@@ -8336,7 +8336,7 @@ Please help our engineers fix this problem. Tell us wh Set as default - + Minimize diff --git a/www/chromium/files/patch-chrome_app_google__chrome__strings.grd b/www/chromium/files/patch-chrome_app_google__chrome__strings.grd index 64089b9cd81c..9b525aa17e80 100644 --- a/www/chromium/files/patch-chrome_app_google__chrome__strings.grd +++ b/www/chromium/files/patch-chrome_app_google__chrome__strings.grd @@ -1,29 +1,20 @@ ---- chrome/app/google_chrome_strings.grd.orig 2021-03-12 23:57:16 UTC +--- chrome/app/google_chrome_strings.grd.orig 2021-04-14 18:40:49 UTC +++ chrome/app/google_chrome_strings.grd -@@ -723,7 +723,7 @@ Google Chrome is unable to recover your settings. +@@ -729,7 +729,7 @@ Google Chrome is unable to recover your settings. - + Your system administrator has configured Google Chrome to open an alternative browser to access $1example.com. -@@ -846,7 +846,7 @@ Google Chrome is unable to recover your settings. +@@ -858,7 +858,7 @@ Google Chrome is unable to recover your settings. - + The profile appears to be in use by another Google Chrome process ($112345) on another computer ($2example.com). Chrome has locked the profile so that it doesn't get corrupted. If you are sure no other processes are using this profile, you can unlock the profile and relaunch Chrome. -@@ -1072,7 +1072,7 @@ Google Chrome is unable to recover your settings. - - - -- -+ - - Restart Chrome to enable $1Flash - diff --git a/www/chromium/files/patch-chrome_app_profiles__strings.grdp b/www/chromium/files/patch-chrome_app_profiles__strings.grdp index 99d7594ad959..895264e079dd 100644 --- a/www/chromium/files/patch-chrome_app_profiles__strings.grdp +++ b/www/chromium/files/patch-chrome_app_profiles__strings.grdp @@ -1,11 +1,11 @@ ---- chrome/app/profiles_strings.grdp.orig 2021-03-12 23:57:16 UTC +--- chrome/app/profiles_strings.grdp.orig 2021-04-14 18:40:49 UTC +++ chrome/app/profiles_strings.grdp -@@ -87,7 +87,7 @@ +@@ -81,7 +81,7 @@ Add Profile... - + Add profile... diff --git a/www/chromium/files/patch-chrome_app_settings__strings.grdp b/www/chromium/files/patch-chrome_app_settings__strings.grdp index 323a398dbcf5..9fde56f272f5 100644 --- a/www/chromium/files/patch-chrome_app_settings__strings.grdp +++ b/www/chromium/files/patch-chrome_app_settings__strings.grdp @@ -1,20 +1,20 @@ ---- chrome/app/settings_strings.grdp.orig 2021-03-12 23:57:17 UTC +--- chrome/app/settings_strings.grdp.orig 2021-04-14 18:40:52 UTC +++ chrome/app/settings_strings.grdp @@ -117,7 +117,7 @@ Theme - + GTK+ @@ -131,7 +131,7 @@ Use Classic - + Reset to default diff --git a/www/chromium/files/patch-chrome_app_shutdown__signal__handlers__posix.cc b/www/chromium/files/patch-chrome_app_shutdown__signal__handlers__posix.cc index 669e2bacbb7d..8ca6abaeb397 100644 --- a/www/chromium/files/patch-chrome_app_shutdown__signal__handlers__posix.cc +++ b/www/chromium/files/patch-chrome_app_shutdown__signal__handlers__posix.cc @@ -1,21 +1,21 @@ ---- chrome/app/shutdown_signal_handlers_posix.cc.orig 2021-03-12 23:57:17 UTC +--- chrome/app/shutdown_signal_handlers_posix.cc.orig 2021-04-14 18:40:52 UTC +++ chrome/app/shutdown_signal_handlers_posix.cc @@ -186,12 +186,18 @@ void InstallShutdownSignalHandlers( g_pipe_pid = getpid(); g_shutdown_pipe_read_fd = pipefd[0]; g_shutdown_pipe_write_fd = pipefd[1]; +#if defined(OS_BSD) + // PTHREAD_STACK_MIN causes chromium to crash under FreeBSD, + // we request the default pthread stack size by specifying 0 here. + const size_t kShutdownDetectorThreadStackSize = 0; +#else #if !defined(ADDRESS_SANITIZER) const size_t kShutdownDetectorThreadStackSize = PTHREAD_STACK_MIN * 2; #else // ASan instrumentation bloats the stack frames, so we need to increase the // stack size to avoid hitting the guard page. const size_t kShutdownDetectorThreadStackSize = PTHREAD_STACK_MIN * 4; +#endif #endif ShutdownDetector* detector = new ShutdownDetector( g_shutdown_pipe_read_fd, std::move(shutdown_callback), task_runner); diff --git a/www/chromium/files/patch-chrome_app_theme_chrome__unscaled__resources.grd b/www/chromium/files/patch-chrome_app_theme_chrome__unscaled__resources.grd index 04cf7d9e24f7..bdec0f7504f8 100644 --- a/www/chromium/files/patch-chrome_app_theme_chrome__unscaled__resources.grd +++ b/www/chromium/files/patch-chrome_app_theme_chrome__unscaled__resources.grd @@ -1,11 +1,11 @@ ---- chrome/app/theme/chrome_unscaled_resources.grd.orig 2021-03-12 23:57:17 UTC +--- chrome/app/theme/chrome_unscaled_resources.grd.orig 2021-04-14 18:40:52 UTC +++ chrome/app/theme/chrome_unscaled_resources.grd @@ -18,7 +18,7 @@ - + diff --git a/www/chromium/files/patch-chrome_app_theme_theme__resources.grd b/www/chromium/files/patch-chrome_app_theme_theme__resources.grd index a5f75e71519e..c060bac563b8 100644 --- a/www/chromium/files/patch-chrome_app_theme_theme__resources.grd +++ b/www/chromium/files/patch-chrome_app_theme_theme__resources.grd @@ -1,11 +1,11 @@ ---- chrome/app/theme/theme_resources.grd.orig 2021-03-12 23:57:17 UTC +--- chrome/app/theme/theme_resources.grd.orig 2021-04-14 18:40:52 UTC +++ chrome/app/theme/theme_resources.grd @@ -25,7 +25,7 @@ - + diff --git a/www/chromium/files/patch-chrome_browser_BUILD.gn b/www/chromium/files/patch-chrome_browser_BUILD.gn index 5cf14a0f2114..224e5620b074 100644 --- a/www/chromium/files/patch-chrome_browser_BUILD.gn +++ b/www/chromium/files/patch-chrome_browser_BUILD.gn @@ -1,11 +1,49 @@ ---- chrome/browser/BUILD.gn.orig 2021-03-12 23:57:17 UTC +--- chrome/browser/BUILD.gn.orig 2021-04-20 18:58:25 UTC +++ chrome/browser/BUILD.gn -@@ -5277,7 +5277,7 @@ static_library("browser") { +@@ -2458,9 +2458,18 @@ static_library("browser") { + ] + } + } +- if (is_linux || is_chromeos) { ++ if ((is_linux || is_chromeos) && !is_bsd) { + deps += [ "//chrome/browser/error_reporting" ] + } ++ if (is_bsd) { ++ sources -= [ ++ "crash_upload_list/crash_upload_list.cc", ++ "crash_upload_list/crash_upload_list.h", ++ ] ++ deps -= [ ++ "//components/crash/core/browser", ++ ] ++ } + if (use_ozone) { + deps += [ + "//ui/events/ozone", +@@ -5123,6 +5132,17 @@ static_library("browser") { + } + } + ++ if (is_bsd) { ++ sources -= [ ++ "enterprise/signals/device_info_fetcher_linux.cc", ++ "enterprise/signals/device_info_fetcher_linux.h", ++ ] ++ sources += [ ++ "enterprise/signals/device_info_fetcher_freebsd.cc", ++ "enterprise/signals/device_info_fetcher_freebsd.h", ++ ] ++ } ++ + if (is_chromeos_ash) { + if (use_allocator == "tcmalloc") { + deps += [ "//chrome/common/performance_manager/mojom" ] +@@ -5350,7 +5370,7 @@ static_library("browser") { ] } - if (is_posix && !is_mac) { + if (is_posix && !is_mac && !is_bsd) { # TODO(crbug.com / 753619): Enable crash reporting on Fuchsia. sources += [ "//chrome/app/chrome_crash_reporter_client.cc", diff --git a/www/chromium/files/patch-chrome_browser_about__flags.cc b/www/chromium/files/patch-chrome_browser_about__flags.cc index 15cee06705af..2956ec69e1c6 100644 --- a/www/chromium/files/patch-chrome_browser_about__flags.cc +++ b/www/chromium/files/patch-chrome_browser_about__flags.cc @@ -1,180 +1,189 @@ ---- chrome/browser/about_flags.cc.orig 2021-03-12 23:57:17 UTC +--- chrome/browser/about_flags.cc.orig 2021-04-20 18:58:25 UTC +++ chrome/browser/about_flags.cc -@@ -191,7 +191,7 @@ - #include "ui/gl/gl_switches.h" - #include "ui/native_theme/native_theme_features.h" - --#if defined(OS_LINUX) || defined(OS_CHROMEOS) -+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) - #include "base/allocator/buildflags.h" - #endif - -@@ -918,7 +918,7 @@ const FeatureEntry::Choice kMemlogSamplingRateChoices[ +@@ -967,7 +967,7 @@ const FeatureEntry::Choice kMemlogSamplingRateChoices[ heap_profiling::kMemlogSamplingRate5MB}, }; -#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_MAC) || \ +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_MAC) || defined(OS_BSD) || \ defined(OS_WIN) const FeatureEntry::FeatureParam kOmniboxDocumentProviderServerScoring[] = { {"DocumentUseServerScore", "true"}, -@@ -1268,7 +1268,7 @@ const FeatureEntry::FeatureVariation kOmniboxBookmarkP +@@ -1239,7 +1239,7 @@ const FeatureEntry::FeatureVariation kOmniboxBookmarkP }, }; -#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_MAC) || +#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_MAC) || defined(OS_BSD) || // defined(OS_WIN) const FeatureEntry::FeatureVariation -@@ -3009,7 +3009,7 @@ const FeatureEntry kFeatureEntries[] = { - FEATURE_VALUE_TYPE(ash::features::kSystemTrayMicGainSetting)}, +@@ -3074,7 +3074,7 @@ const FeatureEntry kFeatureEntries[] = { + FEATURE_VALUE_TYPE(media::kDeprecateLowUsageCodecs)}, #endif // BUILDFLAG(IS_CHROMEOS_ASH) -#if (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) && !defined(OS_ANDROID) +#if (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || defined(OS_BSD)) && !defined(OS_ANDROID) { "enable-accelerated-video-decode", flag_descriptions::kAcceleratedVideoDecodeName, -@@ -3025,7 +3025,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -3090,7 +3090,7 @@ const FeatureEntry kFeatureEntries[] = { kOsMac | kOsWin | kOsCrOS | kOsAndroid, SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode), }, -#endif // (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) && +#endif // (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || defined(OS_BSD)) && // !defined(OS_ANDROID) { "disable-accelerated-video-encode", -@@ -3367,7 +3367,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -3456,7 +3456,7 @@ const FeatureEntry kFeatureEntries[] = { {"enable-login-detection", flag_descriptions::kEnableLoginDetectionName, flag_descriptions::kEnableLoginDetectionDescription, kOsAll, FEATURE_VALUE_TYPE(login_detection::kLoginDetection)}, -#if defined(OS_CHROMEOS) || defined(OS_LINUX) +#if defined(OS_CHROMEOS) || defined(OS_LINUX) || defined(OS_BSD) {"enable-save-data", flag_descriptions::kEnableSaveDataName, flag_descriptions::kEnableSaveDataDescription, kOsCrOS | kOsLinux, SINGLE_VALUE_TYPE( -@@ -3381,7 +3381,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -3470,7 +3470,7 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kEnableNavigationPredictorRendererWarmupName, flag_descriptions::kEnableNavigationPredictorRendererWarmupDescription, kOsAll, FEATURE_VALUE_TYPE(features::kNavigationPredictorRendererWarmup)}, -#endif // BUILDFLAG(IS_CHROMEOS_ASH) || OS_LINUX +#endif // BUILDFLAG(IS_CHROMEOS_ASH) || OS_LINUX || defined(OS_BSD) {"enable-preconnect-to-search", flag_descriptions::kEnablePreconnectToSearchName, flag_descriptions::kEnablePreconnectToSearchDescription, kOsAll, -@@ -4173,7 +4173,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -4308,7 +4308,7 @@ const FeatureEntry kFeatureEntries[] = { kOsAll, FEATURE_VALUE_TYPE(omnibox::kOmniboxTrendingZeroPrefixSuggestionsOnNTP)}, -#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_MAC) || \ +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_MAC) || defined(OS_BSD) || \ defined(OS_WIN) {"omnibox-experimental-keyword-mode", flag_descriptions::kOmniboxExperimentalKeywordModeName, -@@ -4254,7 +4254,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -4398,7 +4398,7 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kOmniboxDisableCGIParamMatchingName, flag_descriptions::kOmniboxDisableCGIParamMatchingDescription, kOsDesktop, FEATURE_VALUE_TYPE(omnibox::kDisableCGIParamMatching)}, -#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_MAC) || +#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_MAC) || defined(OS_BSD) || // defined(OS_WIN) {"enable-speculative-service-worker-start-on-query-input", -@@ -4563,14 +4563,14 @@ const FeatureEntry kFeatureEntries[] = { - flag_descriptions::kClickToOpenPDFDescription, kOsAll, - FEATURE_VALUE_TYPE(features::kClickToOpenPDFPlaceholder)}, +@@ -4715,14 +4715,14 @@ const FeatureEntry kFeatureEntries[] = { + FEATURE_VALUE_TYPE(chrome::android::kReaderModeInCCT)}, + #endif // !defined(OS_ANDROID) -#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || \ +#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || defined(OS_BSD) || \ defined(OS_CHROMEOS) {"direct-manipulation-stylus", flag_descriptions::kDirectManipulationStylusName, flag_descriptions::kDirectManipulationStylusDescription, kOsWin | kOsMac | kOsLinux, FEATURE_VALUE_TYPE(features::kDirectManipulationStylus)}, -#endif // defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || +#endif // defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || defined(OS_BSD) || // defined(OS_CHROMEOS) #if !defined(OS_ANDROID) -@@ -5258,7 +5258,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -5381,7 +5381,7 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(kClickToCallUI)}, #endif // BUILDFLAG(ENABLE_CLICK_TO_CALL) -#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || \ +#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || defined(OS_BSD) || \ defined(OS_CHROMEOS) {"remote-copy-receiver", flag_descriptions::kRemoteCopyReceiverName, flag_descriptions::kRemoteCopyReceiverDescription, kOsDesktop, -@@ -5275,7 +5275,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -5398,7 +5398,7 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kRemoteCopyProgressNotificationName, flag_descriptions::kRemoteCopyProgressNotificationDescription, kOsDesktop, FEATURE_VALUE_TYPE(kRemoteCopyProgressNotification)}, -#endif // defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || +#endif // defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || defined(OS_BSD) || // defined(OS_CHROMEOS) {"restrict-gamepad-access", flag_descriptions::kRestrictGamepadAccessName, -@@ -5852,7 +5852,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -5955,7 +5955,7 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kMouseSubframeNoImplicitCaptureDescription, kOsAll, FEATURE_VALUE_TYPE(features::kMouseSubframeNoImplicitCapture)}, -#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || \ +#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || defined(OS_BSD) || \ defined(OS_CHROMEOS) {"global-media-controls", flag_descriptions::kGlobalMediaControlsName, flag_descriptions::kGlobalMediaControlsDescription, -@@ -5893,7 +5893,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -5996,7 +5996,7 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kGlobalMediaControlsOverlayControlsDescription, kOsWin | kOsMac | kOsLinux, FEATURE_VALUE_TYPE(media::kGlobalMediaControlsOverlayControls)}, -#endif // defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || +#endif // defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || defined(OS_BSD) || // defined(OS_CHROMEOS) #if BUILDFLAG(ENABLE_SPELLCHECK) && defined(OS_WIN) -@@ -6072,7 +6072,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -6191,7 +6191,7 @@ const FeatureEntry kFeatureEntries[] = { kPasswordsAccountStorageVariations, "ButterForPasswords")}, -#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || \ +#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || defined(OS_BSD) || \ defined(OS_CHROMEOS) {"passwords-account-storage-iph", flag_descriptions::kEnablePasswordsAccountStorageIPHName, -@@ -6080,7 +6080,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -6199,7 +6199,7 @@ const FeatureEntry kFeatureEntries[] = { kOsWin | kOsMac | kOsLinux, FEATURE_VALUE_TYPE( feature_engagement::kIPHPasswordsAccountStorageFeature)}, -#endif // defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || +#endif // defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || defined(OS_BSD) || // defined(OS_CHROMEOS) {"autofill-always-return-cloud-tokenized-card", -@@ -6794,7 +6794,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -6858,7 +6858,7 @@ const FeatureEntry kFeatureEntries[] = { + FEATURE_VALUE_TYPE(language::kDetailedLanguageSettings)}, + #endif + +-#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) ++#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || defined(OS_BSD) + {"commander", flag_descriptions::kCommanderName, + flag_descriptions::kCommanderDescription, kOsDesktop, + FEATURE_VALUE_TYPE(features::kCommander)}, +@@ -6895,7 +6895,7 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(ash::features::kEnhancedDeskAnimations)}, #endif -#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || \ +#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || defined(OS_BSD) || \ defined(OS_CHROMEOS) {"enable-oop-print-drivers", flag_descriptions::kEnableOopPrintDriversName, flag_descriptions::kEnableOopPrintDriversDescription, kOsDesktop, -@@ -6833,14 +6833,14 @@ const FeatureEntry kFeatureEntries[] = { +@@ -6927,14 +6927,14 @@ const FeatureEntry kFeatureEntries[] = { // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch // of lacros-chrome is complete. -#if defined(OS_WIN) || (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || \ +#if defined(OS_WIN) || (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || defined(OS_BSD) || \ defined(OS_MAC) {"enable-ephemeral-guest-profiles-on-desktop", flag_descriptions::kEnableEphemeralGuestProfilesOnDesktopName, flag_descriptions::kEnableEphemeralGuestProfilesOnDesktopDescription, kOsWin | kOsLinux | kOsMac, FEATURE_VALUE_TYPE(features::kEnableEphemeralGuestProfilesOnDesktop)}, -#endif // defined(OS_WIN) || (defined(OS_LINUX) || +#endif // defined(OS_WIN) || (defined(OS_LINUX) || defined(OS_BSD) || // BUILDFLAG(IS_CHROMEOS_LACROS)) || defined(OS_MAC) #if defined(OS_ANDROID) +@@ -7215,7 +7215,7 @@ const FeatureEntry kFeatureEntries[] = { + FEATURE_VALUE_TYPE(media::kVaapiAV1Decoder)}, + #endif // BUILDFLAG(IS_CHROMEOS_ASH) + +-#if defined(OS_WIN) || (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || \ ++#if defined(OS_WIN) || (defined(OS_LINUX) || defined(OS_BSD) || BUILDFLAG(IS_CHROMEOS_LACROS)) || \ + defined(OS_MAC) + { + "ui-debug-tools", diff --git a/www/chromium/files/patch-chrome_browser_after__startup__task__utils.cc b/www/chromium/files/patch-chrome_browser_after__startup__task__utils.cc index 07af7718ddbe..795304853d01 100644 --- a/www/chromium/files/patch-chrome_browser_after__startup__task__utils.cc +++ b/www/chromium/files/patch-chrome_browser_after__startup__task__utils.cc @@ -1,38 +1,38 @@ ---- chrome/browser/after_startup_task_utils.cc.orig 2021-03-12 23:57:17 UTC +--- chrome/browser/after_startup_task_utils.cc.orig 2021-04-14 18:40:52 UTC +++ chrome/browser/after_startup_task_utils.cc @@ -35,7 +35,7 @@ // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch // of lacros-chrome is complete. -#if defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) +#if defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || defined(OS_BSD) #include "ui/views/linux_ui/linux_ui.h" #endif @@ -122,7 +122,7 @@ void QueueTask(std::unique_ptr queue void SetBrowserStartupIsComplete() { DCHECK_CURRENTLY_ON(BrowserThread::UI); -#if defined(OS_MAC) || defined(OS_WIN) || defined(OS_LINUX) || \ +#if defined(OS_MAC) || defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD) || \ defined(OS_CHROMEOS) // Process::Current().CreationTime() is not available on all platforms. const base::Time process_creation_time = @@ -131,7 +131,7 @@ void SetBrowserStartupIsComplete() { UMA_HISTOGRAM_LONG_TIMES("Startup.AfterStartupTaskDelayedUntilTime", base::Time::Now() - process_creation_time); } -#endif // defined(OS_MAC) || defined(OS_WIN) || defined(OS_LINUX) || +#endif // defined(OS_MAC) || defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD) || // defined(OS_CHROMEOS) UMA_HISTOGRAM_COUNTS_10000("Startup.AfterStartupTaskCount", g_after_startup_tasks.Get().size()); @@ -143,7 +143,7 @@ void SetBrowserStartupIsComplete() { // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch // of lacros-chrome is complete. -#if defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) +#if defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || defined(OS_BSD) // Make sure we complete the startup notification sequence, or launchers will // get confused by not receiving the expected message from the main process. views::LinuxUI* linux_ui = views::LinuxUI::instance(); diff --git a/www/chromium/files/patch-chrome_browser_apps_platform__apps_api_media__galleries_media__galleries__apitest.cc b/www/chromium/files/patch-chrome_browser_apps_platform__apps_api_media__galleries_media__galleries__apitest.cc index 7360aeda73c0..bf8c003c3fe7 100644 --- a/www/chromium/files/patch-chrome_browser_apps_platform__apps_api_media__galleries_media__galleries__apitest.cc +++ b/www/chromium/files/patch-chrome_browser_apps_platform__apps_api_media__galleries_media__galleries__apitest.cc @@ -1,20 +1,20 @@ ---- chrome/browser/apps/platform_apps/api/media_galleries/media_galleries_apitest.cc.orig 2021-03-12 23:57:17 UTC +--- chrome/browser/apps/platform_apps/api/media_galleries/media_galleries_apitest.cc.orig 2021-04-14 18:40:52 UTC +++ chrome/browser/apps/platform_apps/api/media_galleries/media_galleries_apitest.cc @@ -294,7 +294,7 @@ IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppPpapiT // Test is flaky, it fails on certain bots, namely WinXP Tests(1) and Linux // (dbg)(1)(32). See crbug.com/354425. -#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) #define MAYBE_MediaGalleriesNoAccess DISABLED_MediaGalleriesNoAccess #else #define MAYBE_MediaGalleriesNoAccess MediaGalleriesNoAccess @@ -332,7 +332,7 @@ IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppBrowse // Test is flaky, it fails on certain bots, namely WinXP Tests(1) and Linux // (dbg)(1)(32). See crbug.com/354425. -#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) #define MAYBE_MediaGalleriesCopyTo DISABLED_MediaGalleriesCopyTo #else #define MAYBE_MediaGalleriesCopyTo MediaGalleriesCopyTo diff --git a/www/chromium/files/patch-chrome_browser_apps_platform__apps_api_media__galleries_media__galleries__watch__apitest.cc b/www/chromium/files/patch-chrome_browser_apps_platform__apps_api_media__galleries_media__galleries__watch__apitest.cc index 03e99a4b1f8c..e244d0669bc1 100644 --- a/www/chromium/files/patch-chrome_browser_apps_platform__apps_api_media__galleries_media__galleries__watch__apitest.cc +++ b/www/chromium/files/patch-chrome_browser_apps_platform__apps_api_media__galleries_media__galleries__watch__apitest.cc @@ -1,11 +1,11 @@ ---- chrome/browser/apps/platform_apps/api/media_galleries/media_galleries_watch_apitest.cc.orig 2021-03-12 23:57:17 UTC +--- chrome/browser/apps/platform_apps/api/media_galleries/media_galleries_watch_apitest.cc.orig 2021-04-14 18:40:52 UTC +++ chrome/browser/apps/platform_apps/api/media_galleries/media_galleries_watch_apitest.cc @@ -224,7 +224,7 @@ IN_PROC_BROWSER_TEST_F(MediaGalleriesGalleryWatchApiTe // Test is flaky on windows and linux: crbug.com/1150017. // TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is // complete. -#if defined(OS_WIN) || (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) +#if defined(OS_WIN) || (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || defined(OS_BSD) #define MAYBE_RemoveListenerAndModifyGallery \ DISABLED_RemoveListenerAndModifyGallery #else diff --git a/www/chromium/files/patch-chrome_browser_apps_platform__apps_api_music__manager__private_device__id__linux.cc b/www/chromium/files/patch-chrome_browser_apps_platform__apps_api_music__manager__private_device__id__linux.cc index 8f5d4515a675..922f5898b3ba 100644 --- a/www/chromium/files/patch-chrome_browser_apps_platform__apps_api_music__manager__private_device__id__linux.cc +++ b/www/chromium/files/patch-chrome_browser_apps_platform__apps_api_music__manager__private_device__id__linux.cc @@ -1,70 +1,70 @@ ---- chrome/browser/apps/platform_apps/api/music_manager_private/device_id_linux.cc.orig 2021-03-12 23:57:17 UTC +--- chrome/browser/apps/platform_apps/api/music_manager_private/device_id_linux.cc.orig 2021-04-14 18:40:52 UTC +++ chrome/browser/apps/platform_apps/api/music_manager_private/device_id_linux.cc @@ -4,6 +4,11 @@ #include "chrome/browser/apps/platform_apps/api/music_manager_private/device_id.h" +#if defined(OS_FREEBSD) +#include +#include +#endif + #include #include #include @@ -105,9 +110,36 @@ class MacAddressProcessor { const char* const prefixes[], size_t prefixes_count) { const int MAC_LENGTH = 6; +#if defined(OS_FREEBSD) + struct ifaddrs *ifap, *ifinfo; +#else struct ifreq ifinfo; +#endif memset(&ifinfo, 0, sizeof(ifinfo)); + +#if defined(OS_FREEBSD) + int result = getifaddrs(&ifap); + + if (result != 0) + return true; + + result = 1; // no MAC found yet + + for (ifinfo = ifap; ifinfo != NULL; ifinfo = ifinfo->ifa_next) { + struct sockaddr* sa = ifinfo->ifa_addr; + if (sa->sa_family == AF_LINK && + !strncmp(ifinfo->ifa_name, ifaddr->ifa_name, + sizeof(ifinfo->ifa_name) - 1)) { + result = 0; + break; + } + } + + char mac_address[6]; + + strncpy(mac_address, (const char*)LLADDR((struct sockaddr_dl*)ifinfo->ifa_addr), sizeof(mac_address)); +#else strncpy(ifinfo.ifr_name, ifaddr->ifa_name, sizeof(ifinfo.ifr_name) - 1); int sd = socket(AF_INET, SOCK_DGRAM, 0); @@ -119,11 +151,18 @@ class MacAddressProcessor { const char* mac_address = static_cast(ifinfo.ifr_hwaddr.sa_data); +#endif + if (!is_valid_mac_address_.Run(mac_address, MAC_LENGTH)) return true; +#if defined(OS_FREEBSD) + if (!IsValidPrefix(ifinfo->ifa_name, prefixes, prefixes_count)) + return true; +#else if (!IsValidPrefix(ifinfo.ifr_name, prefixes, prefixes_count)) return true; +#endif // Got one! found_mac_address_ = diff --git a/www/chromium/files/patch-chrome_browser_autocomplete_chrome__autocomplete__scheme__classifier.cc b/www/chromium/files/patch-chrome_browser_autocomplete_chrome__autocomplete__scheme__classifier.cc index 1fcfaa6ec285..5e0738a0586d 100644 --- a/www/chromium/files/patch-chrome_browser_autocomplete_chrome__autocomplete__scheme__classifier.cc +++ b/www/chromium/files/patch-chrome_browser_autocomplete_chrome__autocomplete__scheme__classifier.cc @@ -1,20 +1,20 @@ ---- chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.cc.orig 2021-03-12 23:57:17 UTC +--- chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.cc.orig 2021-04-14 18:40:52 UTC +++ chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.cc @@ -87,7 +87,7 @@ ChromeAutocompleteSchemeClassifier::GetInputTypeForSch return metrics::OmniboxInputType::QUERY; case ExternalProtocolHandler::UNKNOWN: { -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) // Linux impl of GetApplicationNameForProtocol doesn't distinguish // between URL schemes with handers and those without. This will // make the default behaviour be search on Linux. @@ -100,7 +100,7 @@ ChromeAutocompleteSchemeClassifier::GetInputTypeForSch shell_integration::GetApplicationNameForProtocol(url); return application_name.empty() ? metrics::OmniboxInputType::EMPTY : metrics::OmniboxInputType::URL; -#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) +#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) } } NOTREACHED(); diff --git a/www/chromium/files/patch-chrome_browser_background_background__mode__manager.cc b/www/chromium/files/patch-chrome_browser_background_background__mode__manager.cc index 3ef4068aa5dd..7070f4f94f60 100644 --- a/www/chromium/files/patch-chrome_browser_background_background__mode__manager.cc +++ b/www/chromium/files/patch-chrome_browser_background_background__mode__manager.cc @@ -1,11 +1,11 @@ ---- chrome/browser/background/background_mode_manager.cc.orig 2021-03-12 23:57:17 UTC +--- chrome/browser/background/background_mode_manager.cc.orig 2021-04-14 18:40:52 UTC +++ chrome/browser/background/background_mode_manager.cc -@@ -873,7 +873,7 @@ gfx::ImageSkia GetStatusTrayIcon() { +@@ -871,7 +871,7 @@ gfx::ImageSkia GetStatusTrayIcon() { return gfx::ImageSkia(); return family->CreateExact(size).AsImageSkia(); -#elif defined(OS_LINUX) || defined(OS_CHROMEOS) +#elif defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) return *ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed( IDR_PRODUCT_LOGO_128); #elif defined(OS_MAC) diff --git a/www/chromium/files/patch-chrome_browser_background_background__mode__optimizer.cc b/www/chromium/files/patch-chrome_browser_background_background__mode__optimizer.cc index 12fbf70b31a1..fbb447ec1a82 100644 --- a/www/chromium/files/patch-chrome_browser_background_background__mode__optimizer.cc +++ b/www/chromium/files/patch-chrome_browser_background_background__mode__optimizer.cc @@ -1,15 +1,15 @@ ---- chrome/browser/background/background_mode_optimizer.cc.orig 2021-03-12 23:57:17 UTC +--- chrome/browser/background/background_mode_optimizer.cc.orig 2021-04-14 18:40:52 UTC +++ chrome/browser/background/background_mode_optimizer.cc @@ -30,10 +30,10 @@ std::unique_ptr BackgroundMod switches::kKeepAliveForTest)) return nullptr; -#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) if (base::FeatureList::IsEnabled(features::kBackgroundModeAllowRestart)) return base::WrapUnique(new BackgroundModeOptimizer()); -#endif // defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS) +#endif // defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) return nullptr; } diff --git a/www/chromium/files/patch-chrome_browser_browser__resources.grd b/www/chromium/files/patch-chrome_browser_browser__resources.grd index 08b5e8f551fd..edee9a8f2b22 100644 --- a/www/chromium/files/patch-chrome_browser_browser__resources.grd +++ b/www/chromium/files/patch-chrome_browser_browser__resources.grd @@ -1,11 +1,11 @@ ---- chrome/browser/browser_resources.grd.orig 2021-03-12 23:57:17 UTC +--- chrome/browser/browser_resources.grd.orig 2021-04-14 18:40:52 UTC +++ chrome/browser/browser_resources.grd -@@ -89,7 +89,7 @@ +@@ -115,7 +115,7 @@ - + diff --git a/www/chromium/files/patch-chrome_browser_browsing__data_chrome__browsing__data__remover__delegate.cc b/www/chromium/files/patch-chrome_browser_browsing__data_chrome__browsing__data__remover__delegate.cc new file mode 100644 index 000000000000..30503001330b --- /dev/null +++ b/www/chromium/files/patch-chrome_browser_browsing__data_chrome__browsing__data__remover__delegate.cc @@ -0,0 +1,12 @@ +--- chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc.orig 2021-04-23 20:21:42 UTC ++++ chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc +@@ -640,7 +640,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedder + } + #endif + ++#if !defined(OS_BSD) + CreateCrashUploadList()->Clear(delete_begin_, delete_end_); ++#endif + + FindBarStateFactory::GetForBrowserContext(profile_)->SetLastSearchText( + base::string16()); diff --git a/www/chromium/files/patch-chrome_browser_chrome__browser__interface__binders.cc b/www/chromium/files/patch-chrome_browser_chrome__browser__interface__binders.cc index be2b16e342f9..9cc31760eb57 100644 --- a/www/chromium/files/patch-chrome_browser_chrome__browser__interface__binders.cc +++ b/www/chromium/files/patch-chrome_browser_chrome__browser__interface__binders.cc @@ -1,20 +1,20 @@ ---- chrome/browser/chrome_browser_interface_binders.cc.orig 2021-03-12 23:57:17 UTC +--- chrome/browser/chrome_browser_interface_binders.cc.orig 2021-04-14 18:40:52 UTC +++ chrome/browser/chrome_browser_interface_binders.cc -@@ -138,7 +138,7 @@ +@@ -144,7 +144,7 @@ #include "mojo/public/cpp/bindings/self_owned_receiver.h" #endif // defined(OS_ANDROID) -#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || \ +#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || defined(OS_BSD) || \ defined(OS_CHROMEOS) #include "chrome/browser/ui/webui/discards/discards.mojom.h" #include "chrome/browser/ui/webui/discards/discards_ui.h" -@@ -835,7 +835,7 @@ void PopulateChromeWebUIFrameBinders( +@@ -841,7 +841,7 @@ void PopulateChromeWebUIFrameBinders( } #endif -#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || \ +#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || defined(OS_BSD) || \ defined(OS_CHROMEOS) RegisterWebUIControllerInterfaceBinder(map); diff --git a/www/chromium/files/patch-chrome_browser_chrome__browser__main.cc b/www/chromium/files/patch-chrome_browser_chrome__browser__main.cc index ace685c2ed75..c549c86141d9 100644 --- a/www/chromium/files/patch-chrome_browser_chrome__browser__main.cc +++ b/www/chromium/files/patch-chrome_browser_chrome__browser__main.cc @@ -1,54 +1,54 @@ ---- chrome/browser/chrome_browser_main.cc.orig 2021-03-12 23:57:17 UTC +--- chrome/browser/chrome_browser_main.cc.orig 2021-04-14 18:40:52 UTC +++ chrome/browser/chrome_browser_main.cc -@@ -251,7 +251,7 @@ +@@ -250,7 +250,7 @@ // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch // of lacros-chrome is complete. #if defined(OS_WIN) || defined(OS_MAC) || \ - (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) + (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || defined(OS_BSD) #include "chrome/browser/metrics/desktop_session_duration/desktop_session_duration_tracker.h" #include "chrome/browser/metrics/desktop_session_duration/touch_mode_stats_tracker.h" #include "chrome/browser/profiles/profile_activity_metrics_recorder.h" -@@ -935,7 +935,7 @@ int ChromeBrowserMainParts::PreCreateThreadsImpl() { +@@ -932,7 +932,7 @@ int ChromeBrowserMainParts::PreCreateThreadsImpl() { AddFirstRunNewTabs(browser_creator_.get(), master_prefs_->new_tabs); } -#if defined(OS_MAC) || defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_MAC) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) // Create directory for user-level Native Messaging manifest files. This // makes it less likely that the directory will be created by third-party // software with incorrect owner or permission. See crbug.com/725513 . -@@ -944,7 +944,7 @@ int ChromeBrowserMainParts::PreCreateThreadsImpl() { +@@ -941,7 +941,7 @@ int ChromeBrowserMainParts::PreCreateThreadsImpl() { &user_native_messaging_dir)); if (!base::PathExists(user_native_messaging_dir)) base::CreateDirectory(user_native_messaging_dir); -#endif // defined(OS_MAC) || defined(OS_LINUX) || defined(OS_CHROMEOS) +#endif // defined(OS_MAC) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) } #endif // !defined(OS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_ASH) -@@ -968,7 +968,7 @@ int ChromeBrowserMainParts::PreCreateThreadsImpl() { +@@ -965,7 +965,7 @@ int ChromeBrowserMainParts::PreCreateThreadsImpl() { // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch // of lacros-chrome is complete. #if defined(OS_WIN) || defined(OS_MAC) || \ - (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) + (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || defined(OS_BSD) metrics::DesktopSessionDurationTracker::Initialize(); ProfileActivityMetricsRecorder::Initialize(); TouchModeStatsTracker::Initialize( @@ -1125,6 +1125,7 @@ void ChromeBrowserMainParts::PostBrowserStart() { base::TimeDelta::FromMinutes(1)); #if !defined(OS_ANDROID) +#if !defined(OS_BSD) if (base::FeatureList::IsEnabled(features::kWebUsb)) { web_usb_detector_.reset(new WebUsbDetector()); content::GetUIThreadTaskRunner({base::TaskPriority::BEST_EFFORT}) @@ -1132,6 +1133,7 @@ void ChromeBrowserMainParts::PostBrowserStart() { base::BindOnce(&WebUsbDetector::Initialize, base::Unretained(web_usb_detector_.get()))); } +#endif if (base::FeatureList::IsEnabled(features::kTabMetricsLogging)) { // Initialize the TabActivityWatcher to begin logging tab activity events. resource_coordinator::TabActivityWatcher::GetInstance(); diff --git a/www/chromium/files/patch-chrome_browser_chrome__browser__main__linux.cc b/www/chromium/files/patch-chrome_browser_chrome__browser__main__linux.cc index 0350cb5daff0..7daf039ec9dd 100644 --- a/www/chromium/files/patch-chrome_browser_chrome__browser__main__linux.cc +++ b/www/chromium/files/patch-chrome_browser_chrome__browser__main__linux.cc @@ -1,32 +1,29 @@ ---- chrome/browser/chrome_browser_main_linux.cc.orig 2021-03-12 23:57:17 UTC +--- chrome/browser/chrome_browser_main_linux.cc.orig 2021-04-14 18:40:52 UTC +++ chrome/browser/chrome_browser_main_linux.cc -@@ -82,6 +82,7 @@ void ChromeBrowserMainPartsLinux::PreProfileInit() { - void ChromeBrowserMainPartsLinux::PostProfileInit() { - ChromeBrowserMainPartsPosix::PostProfileInit(); - -+#if !defined(OS_BSD) - bool breakpad_registered; - if (crash_reporter::IsCrashpadEnabled()) { - // If we're using crashpad, there's no breakpad and crashpad is always -@@ -99,10 +100,11 @@ void ChromeBrowserMainPartsLinux::PostProfileInit() { - } - g_browser_process->metrics_service()->RecordBreakpadRegistration( - breakpad_registered); -+#endif +@@ -47,7 +47,7 @@ ChromeBrowserMainPartsLinux::~ChromeBrowserMainPartsLi } + void ChromeBrowserMainPartsLinux::PreProfileInit() { +-#if !BUILDFLAG(IS_CHROMEOS_ASH) ++#if !BUILDFLAG(IS_CHROMEOS_ASH) && !defined(OS_BSD) + // Needs to be called after we have chrome::DIR_USER_DATA and + // g_browser_process. This happens in PreCreateThreads. + // base::GetLinuxDistro() will initialize its value if needed. +@@ -79,7 +79,7 @@ void ChromeBrowserMainPartsLinux::PreProfileInit() { + + void ChromeBrowserMainPartsLinux::PostMainMessageLoopStart() { -#if !BUILDFLAG(IS_CHROMEOS_ASH) +#if !BUILDFLAG(IS_CHROMEOS_ASH) && !defined(OS_BSD) bluez::BluezDBusManager::Initialize(nullptr /* system_bus */); #endif -@@ -110,7 +112,7 @@ void ChromeBrowserMainPartsLinux::PostMainMessageLoopS +@@ -87,7 +87,7 @@ void ChromeBrowserMainPartsLinux::PostMainMessageLoopS } void ChromeBrowserMainPartsLinux::PostDestroyThreads() { -#if !BUILDFLAG(IS_CHROMEOS_ASH) +#if !BUILDFLAG(IS_CHROMEOS_ASH) && !defined(OS_BSD) bluez::BluezDBusManager::Shutdown(); bluez::BluezDBusThreadManager::Shutdown(); #endif diff --git a/www/chromium/files/patch-chrome_browser_chrome__browser__main__posix.cc b/www/chromium/files/patch-chrome_browser_chrome__browser__main__posix.cc index 761d10956b15..2badd2d02b9e 100644 --- a/www/chromium/files/patch-chrome_browser_chrome__browser__main__posix.cc +++ b/www/chromium/files/patch-chrome_browser_chrome__browser__main__posix.cc @@ -1,11 +1,11 @@ ---- chrome/browser/chrome_browser_main_posix.cc.orig 2021-03-12 23:57:17 UTC +--- chrome/browser/chrome_browser_main_posix.cc.orig 2021-04-14 18:40:52 UTC +++ chrome/browser/chrome_browser_main_posix.cc @@ -72,7 +72,7 @@ void ExitHandler::ExitWhenPossibleOnUIThread(int signa } else { // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch // of lacros-chrome is complete. -#if defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) +#if defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || defined(OS_BSD) switch (signal) { case SIGINT: case SIGHUP: 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 87c0062c22f3..24ac8dc37b4d 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,106 +1,106 @@ ---- chrome/browser/chrome_content_browser_client.cc.orig 2021-03-12 23:57:17 UTC +--- chrome/browser/chrome_content_browser_client.cc.orig 2021-04-14 18:40:52 UTC +++ chrome/browser/chrome_content_browser_client.cc -@@ -448,7 +448,7 @@ +@@ -450,7 +450,7 @@ #include "components/user_manager/user.h" #include "components/user_manager/user_manager.h" #include "services/service_manager/public/mojom/interface_provider_spec.mojom.h" -#elif defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) +#elif defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || defined(OS_BSD) #include "chrome/browser/chrome_browser_main_linux.h" #elif defined(OS_ANDROID) #include "base/android/application_status_listener.h" -@@ -508,7 +508,7 @@ +@@ -510,7 +510,7 @@ // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch // of lacros-chrome is complete. #if defined(OS_WIN) || defined(OS_MAC) || \ - (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) + (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || defined(OS_BSD) #include "chrome/browser/browser_switcher/browser_switcher_navigation_throttle.h" #endif -@@ -542,7 +542,7 @@ +@@ -543,7 +543,7 @@ // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch // of lacros-chrome is complete. -#if defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) +#if defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || defined(OS_BSD) #include "chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.h" #endif -@@ -866,11 +866,13 @@ breakpad::CrashHandlerHostLinux* CreateCrashHandlerHos +@@ -903,11 +903,13 @@ breakpad::CrashHandlerHostLinux* CreateCrashHandlerHos } int GetCrashSignalFD(const base::CommandLine& command_line) { +#if !defined(OS_BSD) if (crash_reporter::IsCrashpadEnabled()) { int fd; pid_t pid; return crash_reporter::GetHandlerSocket(&fd, &pid) ? fd : -1; } +#endif // Extensions have the same process type as renderers. if (command_line.HasSwitch(extensions::switches::kExtensionProcess)) { -@@ -1417,7 +1419,7 @@ ChromeContentBrowserClient::CreateBrowserMainParts( +@@ -1325,7 +1327,7 @@ ChromeContentBrowserClient::CreateBrowserMainParts( #elif BUILDFLAG(IS_CHROMEOS_LACROS) main_parts = std::make_unique(parameters, &startup_data_); -#elif defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) +#elif defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || defined(OS_BSD) main_parts = std::make_unique(parameters, &startup_data_); #elif defined(OS_ANDROID) -@@ -1448,7 +1450,7 @@ ChromeContentBrowserClient::CreateBrowserMainParts( +@@ -1356,7 +1358,7 @@ ChromeContentBrowserClient::CreateBrowserMainParts( std::make_unique()); // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch // of lacros-chrome is complete. -#elif defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) +#elif defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || defined(OS_BSD) main_parts->AddParts( std::make_unique()); #else -@@ -2205,7 +2207,7 @@ void ChromeContentBrowserClient::AppendExtraCommandLin +@@ -2137,7 +2139,7 @@ void ChromeContentBrowserClient::AppendExtraCommandLin command_line->AppendSwitchASCII(switches::kMetricsClientID, client_info->client_id); } -#elif defined(OS_POSIX) +#elif defined(OS_POSIX) && !defined(OS_BSD) #if defined(OS_ANDROID) bool enable_crash_reporter = true; #else -@@ -2499,7 +2501,7 @@ void ChromeContentBrowserClient::AppendExtraCommandLin +@@ -2431,7 +2433,7 @@ void ChromeContentBrowserClient::AppendExtraCommandLin ThreadProfilerConfiguration::Get()->AppendCommandLineSwitchForChildProcess( command_line); -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) // Processes may only query perf_event_open with the BPF sandbox disabled. if (browser_command_line.HasSwitch(switches::kEnableThreadInstructionCount) && command_line->HasSwitch(sandbox::policy::switches::kNoSandbox)) { -@@ -3806,7 +3808,7 @@ void ChromeContentBrowserClient::GetAdditionalFileSyst +@@ -3747,7 +3749,7 @@ void ChromeContentBrowserClient::GetAdditionalFileSyst } } -#if defined(OS_POSIX) && !defined(OS_MAC) +#if defined(OS_POSIX) && !defined(OS_MAC) && !defined(OS_BSD) void ChromeContentBrowserClient::GetAdditionalMappedFilesForChildProcess( const base::CommandLine& command_line, int child_process_id, -@@ -3841,7 +3843,7 @@ void ChromeContentBrowserClient::GetAdditionalMappedFi +@@ -3782,7 +3784,7 @@ void ChromeContentBrowserClient::GetAdditionalMappedFi mappings->Share(kCrashDumpSignal, crash_signal_fd); } } -#endif // defined(OS_POSIX) && !defined(OS_MAC) +#endif // defined(OS_POSIX) && !defined(OS_MAC) && !defined(OS_BSD) #if defined(OS_WIN) - base::string16 ChromeContentBrowserClient::GetAppContainerSidForSandboxType( -@@ -4165,7 +4167,7 @@ ChromeContentBrowserClient::CreateThrottlesForNavigati + std::wstring ChromeContentBrowserClient::GetAppContainerSidForSandboxType( +@@ -4143,7 +4145,7 @@ ChromeContentBrowserClient::CreateThrottlesForNavigati // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch // of lacros-chrome is complete. #if defined(OS_WIN) || defined(OS_MAC) || \ - (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) + (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || defined(OS_BSD) MaybeAddThrottle(browser_switcher::BrowserSwitcherNavigationThrottle:: MaybeCreateThrottleFor(handle), &throttles); diff --git a/www/chromium/files/patch-chrome_browser_chrome__content__browser__client.h b/www/chromium/files/patch-chrome_browser_chrome__content__browser__client.h index 31cda22750d7..bf28d2ce6a19 100644 --- a/www/chromium/files/patch-chrome_browser_chrome__content__browser__client.h +++ b/www/chromium/files/patch-chrome_browser_chrome__content__browser__client.h @@ -1,17 +1,17 @@ ---- chrome/browser/chrome_content_browser_client.h.orig 2021-03-12 23:57:17 UTC +--- chrome/browser/chrome_content_browser_client.h.orig 2021-04-14 18:40:52 UTC +++ chrome/browser/chrome_content_browser_client.h -@@ -407,12 +407,12 @@ class ChromeContentBrowserClient : public content::Con +@@ -401,12 +401,12 @@ class ChromeContentBrowserClient : public content::Con void OverridePageVisibilityState( content::RenderFrameHost* render_frame_host, content::PageVisibilityState* visibility_state) override; -#if defined(OS_POSIX) && !defined(OS_MAC) +#if defined(OS_POSIX) && !defined(OS_MAC) && !defined(OS_BSD) void GetAdditionalMappedFilesForChildProcess( const base::CommandLine& command_line, int child_process_id, content::PosixFileDescriptorInfo* mappings) override; -#endif // defined(OS_POSIX) && !defined(OS_MAC) +#endif // defined(OS_POSIX) && !defined(OS_MAC) && !defined(OS_BSD) #if defined(OS_WIN) - bool PreSpawnRenderer(sandbox::TargetPolicy* policy, - RendererSpawnFlags flags) override; + bool PreSpawnChild(sandbox::TargetPolicy* policy, + sandbox::policy::SandboxType sandbox_type, diff --git a/www/chromium/files/patch-chrome_browser_crash__upload__list_crash__upload__list.cc b/www/chromium/files/patch-chrome_browser_crash__upload__list_crash__upload__list.cc index 273043a7a182..cd4be27a0a22 100644 --- a/www/chromium/files/patch-chrome_browser_crash__upload__list_crash__upload__list.cc +++ b/www/chromium/files/patch-chrome_browser_crash__upload__list_crash__upload__list.cc @@ -1,11 +1,11 @@ ---- chrome/browser/crash_upload_list/crash_upload_list.cc.orig 2021-03-12 23:57:17 UTC +--- chrome/browser/crash_upload_list/crash_upload_list.cc.orig 2021-04-14 18:40:53 UTC +++ chrome/browser/crash_upload_list/crash_upload_list.cc @@ -39,7 +39,7 @@ scoped_refptr CreateCrashUploadList() { // ChromeOS uses crash_sender as its uploader even when Crashpad is enabled, // which isn't compatible with CrashUploadListCrashpad. crash_sender continues // to log uploads in CrashUploadList::kReporterLogFilename. --#if !BUILDFLAG(IS_CHROMEOS_ASH) -+#if !BUILDFLAG(IS_CHROMEOS_ASH) && !defined(OS_BSD) +-#if !(BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS)) ++#if !(BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS) || defined(OS_BSD)) if (crash_reporter::IsCrashpadEnabled()) { return new CrashUploadListCrashpad(); } diff --git a/www/chromium/files/patch-chrome_browser_crash__upload__list_crash__upload__list__crashpad.cc b/www/chromium/files/patch-chrome_browser_crash__upload__list_crash__upload__list__crashpad.cc deleted file mode 100644 index 8ad947b9b75b..000000000000 --- a/www/chromium/files/patch-chrome_browser_crash__upload__list_crash__upload__list__crashpad.cc +++ /dev/null @@ -1,31 +0,0 @@ ---- chrome/browser/crash_upload_list/crash_upload_list_crashpad.cc.orig 2021-03-12 23:57:17 UTC -+++ chrome/browser/crash_upload_list/crash_upload_list_crashpad.cc -@@ -42,6 +42,9 @@ CrashUploadListCrashpad::CrashUploadListCrashpad() = d - CrashUploadListCrashpad::~CrashUploadListCrashpad() = default; - - std::vector CrashUploadListCrashpad::LoadUploadList() { -+#if defined(OS_BSD) -+ return std::vector(); -+#else - std::vector reports; - crash_reporter::GetReports(&reports); - -@@ -53,13 +56,18 @@ std::vector CrashUploadListCra - ReportUploadStateToUploadInfoState(report.state))); - } - return uploads; -+#endif - } - - void CrashUploadListCrashpad::ClearUploadList(const base::Time& begin, - const base::Time& end) { -+#if !defined(OS_BSD) - crash_reporter::ClearReportsBetween(begin, end); -+#endif - } - - void CrashUploadListCrashpad::RequestSingleUpload(const std::string& local_id) { -+#if !defined(OS_BSD) - crash_reporter::RequestSingleCrashUpload(local_id); -+#endif - } diff --git a/www/chromium/files/patch-chrome_browser_custom__handlers_protocol__handler__registry.cc b/www/chromium/files/patch-chrome_browser_custom__handlers_protocol__handler__registry.cc index c0a5999f8613..ef3e8c247889 100644 --- a/www/chromium/files/patch-chrome_browser_custom__handlers_protocol__handler__registry.cc +++ b/www/chromium/files/patch-chrome_browser_custom__handlers_protocol__handler__registry.cc @@ -1,11 +1,11 @@ ---- chrome/browser/custom_handlers/protocol_handler_registry.cc.orig 2021-03-12 23:57:17 UTC +--- chrome/browser/custom_handlers/protocol_handler_registry.cc.orig 2021-04-14 18:40:53 UTC +++ chrome/browser/custom_handlers/protocol_handler_registry.cc @@ -45,7 +45,7 @@ const ProtocolHandler& LookupHandler( // If true default protocol handlers will be removed if the OS level // registration for a protocol is no longer Chrome. bool ShouldRemoveHandlersNotInOS() { -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) // We don't do this on Linux as the OS registration there is not reliable, // and Chrome OS doesn't have any notion of OS registration. // TODO(benwells): When Linux support is more reliable remove this diff --git a/www/chromium/files/patch-chrome_browser_defaults.cc b/www/chromium/files/patch-chrome_browser_defaults.cc index c0d44968bfd0..36b4139448f3 100644 --- a/www/chromium/files/patch-chrome_browser_defaults.cc +++ b/www/chromium/files/patch-chrome_browser_defaults.cc @@ -1,11 +1,11 @@ ---- chrome/browser/defaults.cc.orig 2021-03-12 23:57:17 UTC +--- chrome/browser/defaults.cc.orig 2021-04-14 18:40:53 UTC +++ chrome/browser/defaults.cc @@ -46,7 +46,7 @@ const bool kSyncAutoStarts = false; // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch // of lacros-chrome is complete. -#if defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) +#if defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || defined(OS_BSD) const bool kScrollEventChangesTab = true; #else const bool kScrollEventChangesTab = false; diff --git a/www/chromium/files/patch-chrome_browser_dev__ui__browser__resources.grd b/www/chromium/files/patch-chrome_browser_dev__ui__browser__resources.grd index 59053815c2d7..efb531c3a5cd 100644 --- a/www/chromium/files/patch-chrome_browser_dev__ui__browser__resources.grd +++ b/www/chromium/files/patch-chrome_browser_dev__ui__browser__resources.grd @@ -1,11 +1,11 @@ ---- chrome/browser/dev_ui_browser_resources.grd.orig 2021-03-12 23:57:17 UTC +--- chrome/browser/dev_ui_browser_resources.grd.orig 2021-04-14 18:40:53 UTC +++ chrome/browser/dev_ui_browser_resources.grd @@ -55,7 +55,7 @@ This file specifies browser resources for developer-fa - + diff --git a/www/chromium/files/patch-chrome_browser_device__identity_device__oauth2__token__service__factory.cc b/www/chromium/files/patch-chrome_browser_device__identity_device__oauth2__token__service__factory.cc index 1df6bcb563c4..fe349a509975 100644 --- a/www/chromium/files/patch-chrome_browser_device__identity_device__oauth2__token__service__factory.cc +++ b/www/chromium/files/patch-chrome_browser_device__identity_device__oauth2__token__service__factory.cc @@ -1,11 +1,11 @@ ---- chrome/browser/device_identity/device_oauth2_token_service_factory.cc.orig 2021-03-12 23:57:17 UTC +--- chrome/browser/device_identity/device_oauth2_token_service_factory.cc.orig 2021-04-14 18:40:53 UTC +++ chrome/browser/device_identity/device_oauth2_token_service_factory.cc -@@ -30,7 +30,7 @@ std::unique_ptr CreatePlatform +@@ -29,7 +29,7 @@ std::unique_ptr CreatePlatform return std::make_unique( local_state); #elif defined(OS_WIN) || defined(OS_MAC) || \ - (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) + (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || defined(OS_BSD) DCHECK( base::FeatureList::IsEnabled(policy::features::kCBCMPolicyInvalidations)); return std::make_unique(local_state); diff --git a/www/chromium/files/patch-chrome_browser_devtools_devtools__eye__dropper.cc b/www/chromium/files/patch-chrome_browser_devtools_devtools__eye__dropper.cc index 231300fd95fc..41cb3b945507 100644 --- a/www/chromium/files/patch-chrome_browser_devtools_devtools__eye__dropper.cc +++ b/www/chromium/files/patch-chrome_browser_devtools_devtools__eye__dropper.cc @@ -1,11 +1,11 @@ ---- chrome/browser/devtools/devtools_eye_dropper.cc.orig 2021-03-12 23:57:17 UTC +--- chrome/browser/devtools/devtools_eye_dropper.cc.orig 2021-04-14 18:40:53 UTC +++ chrome/browser/devtools/devtools_eye_dropper.cc -@@ -165,7 +165,7 @@ void DevToolsEyeDropper::UpdateCursor() { +@@ -187,7 +187,7 @@ void DevToolsEyeDropper::UpdateCursor() { // magnified projection only with centered hotspot. // Mac Retina requires cursor to be > 120px in order to render smoothly. -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) const float kCursorSize = 63; const float kDiameter = 63; const float kHotspotOffset = 32; diff --git a/www/chromium/files/patch-chrome_browser_diagnostics_diagnostics__writer.h b/www/chromium/files/patch-chrome_browser_diagnostics_diagnostics__writer.h index 9373fba60358..0940068eb221 100644 --- a/www/chromium/files/patch-chrome_browser_diagnostics_diagnostics__writer.h +++ b/www/chromium/files/patch-chrome_browser_diagnostics_diagnostics__writer.h @@ -1,11 +1,11 @@ ---- chrome/browser/diagnostics/diagnostics_writer.h.orig 2021-03-12 23:57:17 UTC +--- chrome/browser/diagnostics/diagnostics_writer.h.orig 2021-04-14 18:40:53 UTC +++ chrome/browser/diagnostics/diagnostics_writer.h @@ -15,6 +15,8 @@ namespace diagnostics { // Console base class used internally. class SimpleConsole; +#undef MACHINE + class DiagnosticsWriter : public DiagnosticsModel::Observer { public: // The type of formatting done by this writer. diff --git a/www/chromium/files/patch-chrome_browser_download_chrome__download__manager__delegate.cc b/www/chromium/files/patch-chrome_browser_download_chrome__download__manager__delegate.cc index aa0c0b995969..4f56136f04f9 100644 --- a/www/chromium/files/patch-chrome_browser_download_chrome__download__manager__delegate.cc +++ b/www/chromium/files/patch-chrome_browser_download_chrome__download__manager__delegate.cc @@ -1,29 +1,38 @@ ---- chrome/browser/download/chrome_download_manager_delegate.cc.orig 2021-03-12 23:57:17 UTC +--- chrome/browser/download/chrome_download_manager_delegate.cc.orig 2021-04-20 18:58:26 UTC +++ chrome/browser/download/chrome_download_manager_delegate.cc -@@ -1443,7 +1443,7 @@ void ChromeDownloadManagerDelegate::OnDownloadTargetDe +@@ -1444,7 +1444,7 @@ void ChromeDownloadManagerDelegate::OnDownloadTargetDe target_info->is_filetype_handled_safely) DownloadItemModel(item).SetShouldPreferOpeningInBrowser(true); -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) if (item->GetOriginalMimeType() == "application/x-x509-user-cert") DownloadItemModel(item).SetShouldPreferOpeningInBrowser(true); #endif -@@ -1496,7 +1496,7 @@ void ChromeDownloadManagerDelegate::OnDownloadTargetDe +@@ -1497,7 +1497,7 @@ void ChromeDownloadManagerDelegate::OnDownloadTargetDe bool ChromeDownloadManagerDelegate::IsOpenInBrowserPreferreredForFile( const base::FilePath& path) { -#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS) || \ +#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) || \ defined(OS_MAC) if (path.MatchesExtension(FILE_PATH_LITERAL(".pdf"))) { return !download_prefs_->ShouldOpenPdfInSystemReader(); -@@ -1593,7 +1593,7 @@ void ChromeDownloadManagerDelegate::CheckDownloadAllow +@@ -1594,7 +1594,7 @@ void ChromeDownloadManagerDelegate::CheckDownloadAllow bool content_initiated, content::CheckDownloadAllowedCallback check_download_allowed_cb) { DCHECK_CURRENTLY_ON(BrowserThread::UI); -#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS) || \ +#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) || \ defined(OS_MAC) // Don't download pdf if it is a file URL, as that might cause an infinite // download loop if Chrome is not the system pdf viewer. +@@ -1636,7 +1636,7 @@ ChromeDownloadManagerDelegate::GetQuarantineConnection + std::unique_ptr + ChromeDownloadManagerDelegate::GetRenameHandlerForDownload( + download::DownloadItem* download_item) { +-#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS) || \ ++#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) || \ + defined(OS_MAC) + return enterprise_connectors::FileSystemRenameHandler::CreateIfNeeded( + download_item); diff --git a/www/chromium/files/patch-chrome_browser_download_download__commands.cc b/www/chromium/files/patch-chrome_browser_download_download__commands.cc index e59032af5729..e4b987862928 100644 --- a/www/chromium/files/patch-chrome_browser_download_download__commands.cc +++ b/www/chromium/files/patch-chrome_browser_download_download__commands.cc @@ -1,35 +1,35 @@ ---- chrome/browser/download/download_commands.cc.orig 2021-03-12 23:57:17 UTC +--- chrome/browser/download/download_commands.cc.orig 2021-04-14 18:40:53 UTC +++ chrome/browser/download/download_commands.cc @@ -27,7 +27,7 @@ #include "net/base/url_util.h" #include "ui/base/clipboard/scoped_clipboard_writer.h" -#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS) || \ +#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) || \ defined(OS_MAC) #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_finder.h" @@ -155,7 +155,7 @@ void DownloadCommands::ExecuteCommand(Command command) model_->ExecuteCommand(this, command); } -#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || \ +#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || defined(OS_BSD) || \ defined(OS_CHROMEOS) Browser* DownloadCommands::GetBrowser() const { @@ -179,12 +179,12 @@ bool DownloadCommands::CanOpenPdfInSystemViewer() cons return IsDownloadPdf() && (IsAdobeReaderDefaultPDFViewer() ? is_adobe_pdf_reader_up_to_date : true); -#elif defined(OS_MAC) || defined(OS_LINUX) || defined(OS_CHROMEOS) +#elif defined(OS_MAC) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) return IsDownloadPdf(); #endif } -#endif // defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || +#endif // defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || defined(OS_BSD) || // defined(OS_CHROMEOS) void DownloadCommands::CopyFileAsImageToClipboard() { diff --git a/www/chromium/files/patch-chrome_browser_download_download__commands.h b/www/chromium/files/patch-chrome_browser_download_download__commands.h index ceaa75f9c2ef..beb145301193 100644 --- a/www/chromium/files/patch-chrome_browser_download_download__commands.h +++ b/www/chromium/files/patch-chrome_browser_download_download__commands.h @@ -1,11 +1,11 @@ ---- chrome/browser/download/download_commands.h.orig 2021-03-12 23:57:17 UTC +--- chrome/browser/download/download_commands.h.orig 2021-04-14 18:40:53 UTC +++ chrome/browser/download/download_commands.h @@ -48,7 +48,7 @@ class DownloadCommands { bool IsCommandVisible(Command command) const; void ExecuteCommand(Command command); -#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS) || \ +#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) || \ defined(OS_MAC) bool IsDownloadPdf() const; bool CanOpenPdfInSystemViewer() const; diff --git a/www/chromium/files/patch-chrome_browser_download_download__item__model.cc b/www/chromium/files/patch-chrome_browser_download_download__item__model.cc index cff9400d5423..e6274a4c4041 100644 --- a/www/chromium/files/patch-chrome_browser_download_download__item__model.cc +++ b/www/chromium/files/patch-chrome_browser_download_download__item__model.cc @@ -1,20 +1,20 @@ ---- chrome/browser/download/download_item_model.cc.orig 2021-03-12 23:57:17 UTC +--- chrome/browser/download/download_item_model.cc.orig 2021-04-14 18:40:53 UTC +++ chrome/browser/download/download_item_model.cc @@ -571,7 +571,7 @@ bool DownloadItemModel::IsCommandChecked( return download_->GetOpenWhenComplete() || download_crx_util::IsExtensionDownload(*download_); case DownloadCommands::ALWAYS_OPEN_TYPE: -#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS) || \ +#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) || \ defined(OS_MAC) if (download_commands->CanOpenPdfInSystemViewer()) { DownloadPrefs* prefs = DownloadPrefs::FromBrowserContext(profile()); @@ -612,7 +612,7 @@ void DownloadItemModel::ExecuteCommand(DownloadCommand bool is_checked = IsCommandChecked(download_commands, DownloadCommands::ALWAYS_OPEN_TYPE); DownloadPrefs* prefs = DownloadPrefs::FromBrowserContext(profile()); -#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS) || \ +#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) || \ defined(OS_MAC) if (download_commands->CanOpenPdfInSystemViewer()) { prefs->SetShouldOpenPdfInSystemReader(!is_checked); diff --git a/www/chromium/files/patch-chrome_browser_download_download__prefs.cc b/www/chromium/files/patch-chrome_browser_download_download__prefs.cc index bbdb1e796d3c..a9678b6e36a7 100644 --- a/www/chromium/files/patch-chrome_browser_download_download__prefs.cc +++ b/www/chromium/files/patch-chrome_browser_download_download__prefs.cc @@ -1,65 +1,65 @@ ---- chrome/browser/download/download_prefs.cc.orig 2021-03-12 23:57:17 UTC +--- chrome/browser/download/download_prefs.cc.orig 2021-04-14 18:40:53 UTC +++ chrome/browser/download/download_prefs.cc @@ -68,7 +68,7 @@ namespace { // Consider downloads 'dangerous' if they go to the home directory on Linux and // to the desktop on any platform. bool DownloadPathIsDangerous(const base::FilePath& download_path) { -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) base::FilePath home_dir = base::GetHomeDir(); if (download_path == home_dir) { return true; @@ -173,7 +173,7 @@ DownloadPrefs::DownloadPrefs(Profile* profile) : profi GetDefaultDownloadDirectoryForProfile())); #endif // BUILDFLAG(IS_CHROMEOS_ASH) -#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS) || \ +#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) || \ defined(OS_MAC) should_open_pdf_in_system_reader_ = prefs->GetBoolean(prefs::kOpenPdfDownloadInSystemReader); @@ -301,7 +301,7 @@ void DownloadPrefs::RegisterProfilePrefs( default_download_path); registry->RegisterFilePathPref(prefs::kSaveFileDefaultDirectory, default_download_path); -#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS) || \ +#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) || \ defined(OS_MAC) registry->RegisterBooleanPref(prefs::kOpenPdfDownloadInSystemReader, false); #endif @@ -431,7 +431,7 @@ bool DownloadPrefs::IsDownloadPathManaged() const { } bool DownloadPrefs::IsAutoOpenByUserUsed() const { -#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS) || \ +#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) || \ defined(OS_MAC) if (ShouldOpenPdfInSystemReader()) return true; @@ -446,7 +446,7 @@ bool DownloadPrefs::IsAutoOpenEnabled(const GURL& url, return false; DCHECK(extension[0] == base::FilePath::kExtensionSeparator); extension.erase(0, 1); -#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS) || \ +#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) || \ defined(OS_MAC) if (base::FilePath::CompareEqualIgnoreCase(extension, FILE_PATH_LITERAL("pdf")) && @@ -497,7 +497,7 @@ void DownloadPrefs::DisableAutoOpenByUserBasedOnExtens SaveAutoOpenState(); } -#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS) || \ +#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) || \ defined(OS_MAC) void DownloadPrefs::SetShouldOpenPdfInSystemReader(bool should_open) { if (should_open_pdf_in_system_reader_ == should_open) @@ -519,7 +519,7 @@ bool DownloadPrefs::ShouldOpenPdfInSystemReader() cons #endif void DownloadPrefs::ResetAutoOpenByUser() { -#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS) || \ +#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) || \ defined(OS_MAC) SetShouldOpenPdfInSystemReader(false); #endif diff --git a/www/chromium/files/patch-chrome_browser_download_download__prefs.h b/www/chromium/files/patch-chrome_browser_download_download__prefs.h index d6bc6675807d..26ce4d0b2163 100644 --- a/www/chromium/files/patch-chrome_browser_download_download__prefs.h +++ b/www/chromium/files/patch-chrome_browser_download_download__prefs.h @@ -1,20 +1,20 @@ ---- chrome/browser/download/download_prefs.h.orig 2021-03-12 23:57:17 UTC +--- chrome/browser/download/download_prefs.h.orig 2021-04-14 18:40:53 UTC +++ chrome/browser/download/download_prefs.h @@ -117,7 +117,7 @@ class DownloadPrefs { // Disables auto-open based on file extension. void DisableAutoOpenByUserBasedOnExtension(const base::FilePath& file_name); -#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS) || \ +#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) || \ defined(OS_MAC) // Store the user preference to disk. If |should_open| is true, also disable // the built-in PDF plugin. If |should_open| is false, enable the PDF plugin. @@ -176,7 +176,7 @@ class DownloadPrefs { std::unique_ptr auto_open_allowed_by_urls_; -#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS) || \ +#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) || \ defined(OS_MAC) bool should_open_pdf_in_system_reader_; #endif diff --git a/www/chromium/files/patch-chrome_browser_download_download__query.cc b/www/chromium/files/patch-chrome_browser_download_download__query.cc index 9888563b9532..87e3b7dc8e0a 100644 --- a/www/chromium/files/patch-chrome_browser_download_download__query.cc +++ b/www/chromium/files/patch-chrome_browser_download_download__query.cc @@ -1,14 +1,14 @@ ---- chrome/browser/download/download_query.cc.orig 2021-03-12 23:57:17 UTC +--- chrome/browser/download/download_query.cc.orig 2021-04-14 18:40:53 UTC +++ chrome/browser/download/download_query.cc @@ -28,7 +28,11 @@ #include "components/download/public/common/download_item.h" #include "components/url_formatter/url_formatter.h" #include "content/public/browser/content_browser_client.h" +#if defined(OS_BSD) +#include +#else #include "third_party/re2/src/re2/re2.h" +#endif #include "url/gurl.h" using download::DownloadDangerType; diff --git a/www/chromium/files/patch-chrome_browser_download_download__shelf__context__menu.cc b/www/chromium/files/patch-chrome_browser_download_download__shelf__context__menu.cc index bd3f723c96dc..6f46d677272f 100644 --- a/www/chromium/files/patch-chrome_browser_download_download__shelf__context__menu.cc +++ b/www/chromium/files/patch-chrome_browser_download_download__shelf__context__menu.cc @@ -1,11 +1,11 @@ ---- chrome/browser/download/download_shelf_context_menu.cc.orig 2021-03-12 23:57:17 UTC +--- chrome/browser/download/download_shelf_context_menu.cc.orig 2021-04-14 18:40:53 UTC +++ chrome/browser/download/download_shelf_context_menu.cc @@ -146,7 +146,7 @@ base::string16 DownloadShelfContextMenu::GetLabelForCo : IDS_DOWNLOAD_MENU_PLATFORM_OPEN_ALWAYS; break; } -#elif defined(OS_MAC) || defined(OS_LINUX) || defined(OS_CHROMEOS) +#elif defined(OS_MAC) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) if (can_open_pdf_in_system_viewer) { id = IDS_DOWNLOAD_MENU_PLATFORM_OPEN_ALWAYS; break; diff --git a/www/chromium/files/patch-chrome_browser_enterprise_signals_device__info__fetcher.cc b/www/chromium/files/patch-chrome_browser_enterprise_signals_device__info__fetcher.cc new file mode 100644 index 000000000000..98202b98e279 --- /dev/null +++ b/www/chromium/files/patch-chrome_browser_enterprise_signals_device__info__fetcher.cc @@ -0,0 +1,20 @@ +--- chrome/browser/enterprise/signals/device_info_fetcher.cc.orig 2021-04-22 07:41:36 UTC ++++ chrome/browser/enterprise/signals/device_info_fetcher.cc +@@ -12,6 +12,8 @@ + #include "chrome/browser/enterprise/signals/device_info_fetcher_win.h" + #elif defined(OS_LINUX) || defined(OS_CHROMEOS) + #include "chrome/browser/enterprise/signals/device_info_fetcher_linux.h" ++#elif defined(OS_FREEBSD) ++#include "chrome/browser/enterprise/signals/device_info_fetcher_freebsd.h" + #endif + + namespace enterprise_signals { +@@ -60,6 +62,8 @@ std::unique_ptr DeviceInfoFetcher:: + return std::make_unique(); + #elif defined(OS_LINUX) || defined(OS_CHROMEOS) + return std::make_unique(); ++#elif defined(OS_FREEBSD) ++ return std::make_unique(); + #else + return std::make_unique(); + #endif diff --git a/www/chromium/files/patch-chrome_browser_error__reporting_BUILD.gn b/www/chromium/files/patch-chrome_browser_error__reporting_BUILD.gn deleted file mode 100644 index 1d5b25c51816..000000000000 --- a/www/chromium/files/patch-chrome_browser_error__reporting_BUILD.gn +++ /dev/null @@ -1,42 +0,0 @@ ---- chrome/browser/error_reporting/BUILD.gn.orig 2021-03-12 23:57:17 UTC -+++ chrome/browser/error_reporting/BUILD.gn -@@ -25,6 +25,13 @@ static_library("error_reporting") { - "//services/network:network_service", - "//services/network/public/cpp", - ] -+ -+ if (is_bsd) { -+ deps -= [ -+ "//components/crash/content/browser/error_reporting", -+ "//components/crash/core/app", -+ ] -+ } - } - - source_set("test_support") { -@@ -42,6 +49,12 @@ source_set("test_support") { - "//components/crash/content/browser/error_reporting", - "//components/crash/content/browser/error_reporting:mock_crash_endpoint", - ] -+ -+ if (is_bsd) { -+ deps -= [ -+ "//components/crash/content/browser/error_reporting:mock_crash_endpoint", -+ ] -+ } - } - - source_set("unit_test") { -@@ -60,4 +73,12 @@ source_set("unit_test") { - "//net:test_support", - "//testing/gtest", - ] -+ -+ if (is_bsd) { -+ deps -= [ -+ "//components/crash/content/browser/error_reporting", -+ "//components/crash/content/browser/error_reporting:mock_crash_endpoint", -+ "//components/crash/core/app", -+ ] -+ } - } diff --git a/www/chromium/files/patch-chrome_browser_extensions_BUILD.gn b/www/chromium/files/patch-chrome_browser_extensions_BUILD.gn index ed7c6f3d7bd7..d0feb92bfc22 100644 --- a/www/chromium/files/patch-chrome_browser_extensions_BUILD.gn +++ b/www/chromium/files/patch-chrome_browser_extensions_BUILD.gn @@ -1,15 +1,15 @@ ---- chrome/browser/extensions/BUILD.gn.orig 2021-03-12 23:57:17 UTC +--- chrome/browser/extensions/BUILD.gn.orig 2021-04-14 18:40:53 UTC +++ chrome/browser/extensions/BUILD.gn -@@ -1248,6 +1248,12 @@ static_library("extensions") { +@@ -1249,6 +1249,12 @@ static_library("extensions") { ] } + if (is_bsd) { + sources -= [ + "api/image_writer_private/removable_storage_provider_linux.cc", + ] + } + if (enable_service_discovery) { sources += [ "api/mdns/mdns_api.cc", diff --git a/www/chromium/files/patch-chrome_browser_extensions_activity__log_activity__log.cc b/www/chromium/files/patch-chrome_browser_extensions_activity__log_activity__log.cc index a717fdad027c..89d76d4d8d34 100644 --- a/www/chromium/files/patch-chrome_browser_extensions_activity__log_activity__log.cc +++ b/www/chromium/files/patch-chrome_browser_extensions_activity__log_activity__log.cc @@ -1,14 +1,14 @@ ---- chrome/browser/extensions/activity_log/activity_log.cc.orig 2021-03-12 23:57:17 UTC +--- chrome/browser/extensions/activity_log/activity_log.cc.orig 2021-04-14 18:40:53 UTC +++ chrome/browser/extensions/activity_log/activity_log.cc @@ -49,7 +49,11 @@ #include "extensions/common/extension.h" #include "extensions/common/extension_messages.h" #include "extensions/common/mojom/renderer.mojom.h" +#if defined(OS_BSD) +#include +#else #include "third_party/re2/src/re2/re2.h" +#endif #include "url/gurl.h" namespace constants = activity_log_constants; diff --git a/www/chromium/files/patch-chrome_browser_extensions_api_enterprise__reporting__private_device__info__fetcher.cc b/www/chromium/files/patch-chrome_browser_extensions_api_enterprise__reporting__private_device__info__fetcher.cc deleted file mode 100644 index 3a882dddbcee..000000000000 --- a/www/chromium/files/patch-chrome_browser_extensions_api_enterprise__reporting__private_device__info__fetcher.cc +++ /dev/null @@ -1,20 +0,0 @@ ---- chrome/browser/extensions/api/enterprise_reporting_private/device_info_fetcher.cc.orig 2021-03-12 23:57:17 UTC -+++ chrome/browser/extensions/api/enterprise_reporting_private/device_info_fetcher.cc -@@ -10,7 +10,7 @@ - #include "chrome/browser/extensions/api/enterprise_reporting_private/device_info_fetcher_mac.h" - #elif defined(OS_WIN) - #include "chrome/browser/extensions/api/enterprise_reporting_private/device_info_fetcher_win.h" --#elif defined(OS_LINUX) || defined(OS_CHROMEOS) -+#elif defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) - #include "chrome/browser/extensions/api/enterprise_reporting_private/device_info_fetcher_linux.h" - #endif - -@@ -58,7 +58,7 @@ std::unique_ptr DeviceInfoFetcher:: - return std::make_unique(); - #elif defined(OS_WIN) - return std::make_unique(); --#elif defined(OS_LINUX) || defined(OS_CHROMEOS) -+#elif defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) - return std::make_unique(); - #else - return std::make_unique(); diff --git a/www/chromium/files/patch-chrome_browser_extensions_api_enterprise__reporting__private_device__info__fetcher__linux.cc b/www/chromium/files/patch-chrome_browser_extensions_api_enterprise__reporting__private_device__info__fetcher__linux.cc deleted file mode 100644 index 5aa9ea53fa8b..000000000000 --- a/www/chromium/files/patch-chrome_browser_extensions_api_enterprise__reporting__private_device__info__fetcher__linux.cc +++ /dev/null @@ -1,67 +0,0 @@ ---- chrome/browser/extensions/api/enterprise_reporting_private/device_info_fetcher_linux.cc.orig 2021-03-12 23:57:17 UTC -+++ chrome/browser/extensions/api/enterprise_reporting_private/device_info_fetcher_linux.cc -@@ -8,7 +8,9 @@ - #include - #endif // defined(USE_GIO) - #include -+#if !defined(OS_BSD) - #include -+#endif - - #include - -@@ -36,7 +38,11 @@ std::string GetDeviceModel() { - } - - std::string GetOsVersion() { -+#if defined(OS_BSD) -+ base::FilePath os_release_file("/usr/local/etc/os-release"); -+#else - base::FilePath os_release_file("/etc/os-release"); -+#endif - std::string release_info; - base::StringPairs values; - if (base::PathExists(os_release_file) && -@@ -107,6 +113,7 @@ enterprise_reporting_private::SettingValue GetScreenlo - // Implements the logic from the native host installation script. First find the - // root device identifier, then locate its parent and get its type. - enterprise_reporting_private::SettingValue GetDiskEncrypted() { -+#if !defined(OS_BSD) - struct stat info; - // First figure out the device identifier. Fail fast if this fails. - if (stat("/", &info) != 0) -@@ -131,10 +138,14 @@ enterprise_reporting_private::SettingValue GetDiskEncr - return enterprise_reporting_private::SETTING_VALUE_UNKNOWN; - } - return enterprise_reporting_private::SETTING_VALUE_DISABLED; -+#else -+ return enterprise_reporting_private::SETTING_VALUE_UNKNOWN; -+#endif - } - - std::vector GetMacAddresses() { - std::vector result; -+#if !defined(OS_BSD) - base::DirReaderPosix reader("/sys/class/net"); - if (!reader.IsValid()) - return result; -@@ -157,6 +168,7 @@ std::vector GetMacAddresses() { - &address); - result.push_back(address); - } -+#endif - return result; - } - -@@ -168,7 +180,11 @@ DeviceInfoFetcherLinux::~DeviceInfoFetcherLinux() = de - - DeviceInfo DeviceInfoFetcherLinux::Fetch() { - DeviceInfo device_info; -+#if defined(OS_FREEBSD) -+ device_info.os_name = "freebsd"; -+#else - device_info.os_name = "linux"; -+#endif - device_info.os_version = GetOsVersion(); - device_info.device_host_name = GetDeviceHostName(); - device_info.device_model = GetDeviceModel(); diff --git a/www/chromium/files/patch-chrome_browser_extensions_api_erp_chrome_desktop_report_request_helper.cc b/www/chromium/files/patch-chrome_browser_extensions_api_erp_chrome_desktop_report_request_helper.cc index d05d040aca65..1543833016c1 100644 --- a/www/chromium/files/patch-chrome_browser_extensions_api_erp_chrome_desktop_report_request_helper.cc +++ b/www/chromium/files/patch-chrome_browser_extensions_api_erp_chrome_desktop_report_request_helper.cc @@ -1,29 +1,29 @@ ---- chrome/browser/extensions/api/enterprise_reporting_private/chrome_desktop_report_request_helper.cc.orig 2021-03-12 23:57:17 UTC +--- chrome/browser/extensions/api/enterprise_reporting_private/chrome_desktop_report_request_helper.cc.orig 2021-04-20 18:58:26 UTC +++ chrome/browser/extensions/api/enterprise_reporting_private/chrome_desktop_report_request_helper.cc @@ -22,7 +22,7 @@ #include "base/win/registry.h" #endif -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) #include "base/environment.h" #include "base/nix/xdg_util.h" #endif @@ -238,7 +238,7 @@ base::FilePath GetEndpointVerificationDir() { return *GetEndpointVerificationDirOverride(); #if defined(OS_WIN) if (!base::PathService::Get(base::DIR_LOCAL_APP_DATA, &path)) -#elif defined(OS_LINUX) || defined(OS_CHROMEOS) +#elif defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) std::unique_ptr env(base::Environment::Create()); path = base::nix::GetXDGDirectory(env.get(), base::nix::kXdgConfigHomeEnvVar, base::nix::kDotConfigDir); @@ -249,7 +249,7 @@ base::FilePath GetEndpointVerificationDir() { if (true) #endif return path; -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) path = path.AppendASCII("google"); #else path = path.AppendASCII("Google"); diff --git a/www/chromium/files/patch-chrome_browser_extensions_api_extension__action_browser__action__interactive__test.cc b/www/chromium/files/patch-chrome_browser_extensions_api_extension__action_browser__action__interactive__test.cc index 319d165d57a1..0852451ff108 100644 --- a/www/chromium/files/patch-chrome_browser_extensions_api_extension__action_browser__action__interactive__test.cc +++ b/www/chromium/files/patch-chrome_browser_extensions_api_extension__action_browser__action__interactive__test.cc @@ -1,11 +1,11 @@ ---- chrome/browser/extensions/api/extension_action/browser_action_interactive_test.cc.orig 2021-03-12 23:57:17 UTC +--- chrome/browser/extensions/api/extension_action/browser_action_interactive_test.cc.orig 2021-04-14 18:40:53 UTC +++ chrome/browser/extensions/api/extension_action/browser_action_interactive_test.cc @@ -281,7 +281,7 @@ IN_PROC_BROWSER_TEST_F(BrowserActionInteractiveTest, T frame_observer.Wait(); // Non-Aura Linux uses a singleton for the popup, so it looks like all windows // have popups if there is any popup open. -#if !((defined(OS_LINUX) || defined(OS_CHROMEOS)) && !defined(USE_AURA)) +#if !((defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)) && !defined(USE_AURA)) // Starting window does not have a popup. EXPECT_FALSE(ExtensionActionTestHelper::Create(browser())->HasPopup()); #endif diff --git a/www/chromium/files/patch-chrome_browser_extensions_api_image__writer__private_removable__storage__provider.cc b/www/chromium/files/patch-chrome_browser_extensions_api_image__writer__private_removable__storage__provider.cc index d5212afd6b17..cec9c02cb102 100644 --- a/www/chromium/files/patch-chrome_browser_extensions_api_image__writer__private_removable__storage__provider.cc +++ b/www/chromium/files/patch-chrome_browser_extensions_api_image__writer__private_removable__storage__provider.cc @@ -1,20 +1,20 @@ ---- chrome/browser/extensions/api/image_writer_private/removable_storage_provider.cc.orig 2021-03-12 23:57:17 UTC +--- chrome/browser/extensions/api/image_writer_private/removable_storage_provider.cc.orig 2021-04-14 18:40:53 UTC +++ chrome/browser/extensions/api/image_writer_private/removable_storage_provider.cc @@ -22,6 +22,7 @@ static base::LazyInstancePostTask( FROM_HERE, @@ -35,6 +36,9 @@ void RemovableStorageProvider::GetAllDevices(DeviceLis base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN}, base::BindOnce(&RemovableStorageProvider::PopulateDeviceList), std::move(callback)); +#else + NOTIMPLEMENTED(); +#endif } // static diff --git a/www/chromium/files/patch-chrome_browser_extensions_api_runtime_chrome__runtime__api__delegate.cc b/www/chromium/files/patch-chrome_browser_extensions_api_runtime_chrome__runtime__api__delegate.cc index 1f7a5b0cdb8b..17797250a1e9 100644 --- a/www/chromium/files/patch-chrome_browser_extensions_api_runtime_chrome__runtime__api__delegate.cc +++ b/www/chromium/files/patch-chrome_browser_extensions_api_runtime_chrome__runtime__api__delegate.cc @@ -1,11 +1,11 @@ ---- chrome/browser/extensions/api/runtime/chrome_runtime_api_delegate.cc.orig 2021-03-12 23:57:17 UTC +--- chrome/browser/extensions/api/runtime/chrome_runtime_api_delegate.cc.orig 2021-04-14 18:40:53 UTC +++ chrome/browser/extensions/api/runtime/chrome_runtime_api_delegate.cc @@ -286,6 +286,8 @@ bool ChromeRuntimeAPIDelegate::GetPlatformInfo(Platfor info->os = extensions::api::runtime::PLATFORM_OS_CROS; } else if (strcmp(os, "linux") == 0) { info->os = extensions::api::runtime::PLATFORM_OS_LINUX; + } else if (strcmp(os, "freebsd") == 0) { + info->os = extensions::api::runtime::PLATFORM_OS_FREEBSD; } else if (strcmp(os, "openbsd") == 0) { info->os = extensions::api::runtime::PLATFORM_OS_OPENBSD; } else { diff --git a/www/chromium/files/patch-chrome_browser_extensions_api_settings__private_prefs__util.cc b/www/chromium/files/patch-chrome_browser_extensions_api_settings__private_prefs__util.cc index 57214f0e3892..dbea0f3529c3 100644 --- a/www/chromium/files/patch-chrome_browser_extensions_api_settings__private_prefs__util.cc +++ b/www/chromium/files/patch-chrome_browser_extensions_api_settings__private_prefs__util.cc @@ -1,20 +1,20 @@ ---- chrome/browser/extensions/api/settings_private/prefs_util.cc.orig 2021-03-12 23:57:17 UTC +--- chrome/browser/extensions/api/settings_private/prefs_util.cc.orig 2021-04-14 18:40:53 UTC +++ chrome/browser/extensions/api/settings_private/prefs_util.cc @@ -176,7 +176,7 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlist // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch // of lacros-chrome is complete. -#if defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) +#if defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || defined(OS_BSD) (*s_allowlist)[::prefs::kUseCustomChromeFrame] = settings_api::PrefType::PREF_TYPE_BOOLEAN; #endif @@ -188,7 +188,7 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlist settings_api::PrefType::PREF_TYPE_STRING; // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch // of lacros-chrome is complete. -#if defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) +#if defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || defined(OS_BSD) (*s_allowlist)[::prefs::kUsesSystemTheme] = settings_api::PrefType::PREF_TYPE_BOOLEAN; #endif diff --git a/www/chromium/files/patch-chrome_browser_extensions_api_webrtc__logging__private_webrtc__logging__private__api.cc b/www/chromium/files/patch-chrome_browser_extensions_api_webrtc__logging__private_webrtc__logging__private__api.cc index 6d8ab9650cdb..e75d7cb276d0 100644 --- a/www/chromium/files/patch-chrome_browser_extensions_api_webrtc__logging__private_webrtc__logging__private__api.cc +++ b/www/chromium/files/patch-chrome_browser_extensions_api_webrtc__logging__private_webrtc__logging__private__api.cc @@ -1,41 +1,41 @@ ---- chrome/browser/extensions/api/webrtc_logging_private/webrtc_logging_private_api.cc.orig 2021-03-12 23:57:17 UTC +--- chrome/browser/extensions/api/webrtc_logging_private/webrtc_logging_private_api.cc.orig 2021-04-14 18:40:53 UTC +++ chrome/browser/extensions/api/webrtc_logging_private/webrtc_logging_private_api.cc @@ -30,7 +30,7 @@ #include "extensions/browser/process_manager.h" #include "extensions/common/error_utils.h" -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) #include "extensions/common/permissions/permissions_data.h" #endif @@ -39,7 +39,7 @@ namespace { bool CanEnableAudioDebugRecordingsFromExtension( const extensions::Extension* extension) { bool enabled_by_permissions = false; -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) if (extension) { enabled_by_permissions = extension->permissions_data()->active_permissions().HasAPIPermission( @@ -571,7 +571,7 @@ void WebrtcLoggingPrivateStartEventLoggingFunction::Fi ExtensionFunction::ResponseAction WebrtcLoggingPrivateGetLogsDirectoryFunction::Run() { -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) // Unlike other WebrtcLoggingPrivate functions that take a RequestInfo object, // this function shouldn't be called by a component extension on behalf of // some web code. It returns a DirectoryEntry for use directly in the calling @@ -594,9 +594,9 @@ WebrtcLoggingPrivateGetLogsDirectoryFunction::Run() { &WebrtcLoggingPrivateGetLogsDirectoryFunction::FireErrorCallback, this)); return RespondLater(); -#else // defined(OS_LINUX) || defined(OS_CHROMEOS) +#else // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) return RespondNow(Error("Not supported on the current OS")); -#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) +#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) } void WebrtcLoggingPrivateGetLogsDirectoryFunction::FireCallback( diff --git a/www/chromium/files/patch-chrome_browser_extensions_browser__context__keyed__service__factories.cc b/www/chromium/files/patch-chrome_browser_extensions_browser__context__keyed__service__factories.cc index f00c82fb7496..23768dc6f847 100644 --- a/www/chromium/files/patch-chrome_browser_extensions_browser__context__keyed__service__factories.cc +++ b/www/chromium/files/patch-chrome_browser_extensions_browser__context__keyed__service__factories.cc @@ -1,11 +1,11 @@ ---- chrome/browser/extensions/browser_context_keyed_service_factories.cc.orig 2021-03-12 23:57:17 UTC +--- chrome/browser/extensions/browser_context_keyed_service_factories.cc.orig 2021-04-14 18:40:53 UTC +++ chrome/browser/extensions/browser_context_keyed_service_factories.cc @@ -54,7 +54,7 @@ #include "extensions/browser/api/networking_private/networking_private_delegate_factory.h" #include "ppapi/buildflags/buildflags.h" -#if defined(OS_CHROMEOS) || defined(OS_LINUX) || defined(OS_WIN) +#if defined(OS_CHROMEOS) || defined(OS_LINUX) || defined(OS_WIN) || defined(OS_BSD) #include "chrome/browser/extensions/api/input_ime/input_ime_api.h" #endif diff --git a/www/chromium/files/patch-chrome_browser_extensions_external__provider__impl.cc b/www/chromium/files/patch-chrome_browser_extensions_external__provider__impl.cc index e76cbaed81eb..7bbf834f4b59 100644 --- a/www/chromium/files/patch-chrome_browser_extensions_external__provider__impl.cc +++ b/www/chromium/files/patch-chrome_browser_extensions_external__provider__impl.cc @@ -1,20 +1,20 @@ ---- chrome/browser/extensions/external_provider_impl.cc.orig 2021-03-12 23:57:18 UTC +--- chrome/browser/extensions/external_provider_impl.cc.orig 2021-04-14 18:40:53 UTC +++ chrome/browser/extensions/external_provider_impl.cc -@@ -792,7 +792,7 @@ void ExternalProviderImpl::CreateExternalProviders( +@@ -794,7 +794,7 @@ void ExternalProviderImpl::CreateExternalProviders( if (!profile->GetPrefs()->GetBoolean(pref_names::kBlockExternalExtensions)) { // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch // of lacros-chrome is complete. -#if defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) +#if defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || defined(OS_BSD) provider_list->push_back(std::make_unique( service, base::MakeRefCounted( -@@ -819,7 +819,7 @@ void ExternalProviderImpl::CreateExternalProviders( - bundled_extension_creation_flags)); +@@ -820,7 +820,7 @@ void ExternalProviderImpl::CreateExternalProviders( + bundled_extension_creation_flags)); - // Define a per-user source of external extensions. + // Define a per-user source of external extensions. -#if defined(OS_MAC) || ((defined(OS_LINUX) || defined(OS_CHROMEOS)) && \ +#if defined(OS_MAC) || defined(OS_BSD) || ((defined(OS_LINUX) || defined(OS_CHROMEOS)) && \ BUILDFLAG(CHROMIUM_BRANDING)) - provider_list->push_back(std::make_unique( - service, + provider_list->push_back(std::make_unique( + service, diff --git a/www/chromium/files/patch-chrome_browser_feedback_system__logs_log__sources_crash__ids__source.cc b/www/chromium/files/patch-chrome_browser_feedback_system__logs_log__sources_crash__ids__source.cc new file mode 100644 index 000000000000..cddf94d69da2 --- /dev/null +++ b/www/chromium/files/patch-chrome_browser_feedback_system__logs_log__sources_crash__ids__source.cc @@ -0,0 +1,12 @@ +--- chrome/browser/feedback/system_logs/log_sources/crash_ids_source.cc.orig 2021-04-23 20:22:19 UTC ++++ chrome/browser/feedback/system_logs/log_sources/crash_ids_source.cc +@@ -42,7 +42,9 @@ constexpr base::TimeDelta k120DaysTimeDelta = base::Ti + + CrashIdsSource::CrashIdsSource() + : SystemLogsSource("CrashId"), ++#if !defined(OS_BSD) + crash_upload_list_(CreateCrashUploadList()), ++#endif + pending_crash_list_loading_(false) {} + + CrashIdsSource::~CrashIdsSource() {} diff --git a/www/chromium/files/patch-chrome_browser_file__system__access_chrome__file__system__access__permission__context.cc b/www/chromium/files/patch-chrome_browser_file__system__access_chrome__file__system__access__permission__context.cc index bfb1783f908d..4f6a7f31bd46 100644 --- a/www/chromium/files/patch-chrome_browser_file__system__access_chrome__file__system__access__permission__context.cc +++ b/www/chromium/files/patch-chrome_browser_file__system__access_chrome__file__system__access__permission__context.cc @@ -1,11 +1,11 @@ ---- chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc.orig 2021-03-12 23:57:18 UTC +--- chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc.orig 2021-04-14 18:40:53 UTC +++ chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc -@@ -144,7 +144,7 @@ const struct { +@@ -190,7 +190,7 @@ const struct { {base::DIR_APP_DATA, nullptr, kBlockAllChildren}, {base::DIR_HOME, FILE_PATH_LITERAL("Library"), kBlockAllChildren}, #endif -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) // On Linux also block access to devices via /dev, as well as security // sensitive data in /sys and /proc. {kNoBasePathKey, FILE_PATH_LITERAL("/dev"), kBlockAllChildren}, diff --git a/www/chromium/files/patch-chrome_browser_first__run_first__run__dialog.h b/www/chromium/files/patch-chrome_browser_first__run_first__run__dialog.h index c86ce4f8c056..d0700ee0815a 100644 --- a/www/chromium/files/patch-chrome_browser_first__run_first__run__dialog.h +++ b/www/chromium/files/patch-chrome_browser_first__run_first__run__dialog.h @@ -1,11 +1,11 @@ ---- chrome/browser/first_run/first_run_dialog.h.orig 2021-03-12 23:57:18 UTC +--- chrome/browser/first_run/first_run_dialog.h.orig 2021-04-14 18:40:53 UTC +++ chrome/browser/first_run/first_run_dialog.h @@ -12,7 +12,7 @@ // Hide this function on platforms where the dialog does not exist. // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch // of lacros-chrome is complete. -#if defined(OS_MAC) || (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) +#if defined(OS_MAC) || (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || defined(OS_BSD) class Profile; diff --git a/www/chromium/files/patch-chrome_browser_first__run_first__run__internal.h b/www/chromium/files/patch-chrome_browser_first__run_first__run__internal.h index 8af510712cfa..d14ceeaa5903 100644 --- a/www/chromium/files/patch-chrome_browser_first__run_first__run__internal.h +++ b/www/chromium/files/patch-chrome_browser_first__run_first__run__internal.h @@ -1,19 +1,19 @@ ---- chrome/browser/first_run/first_run_internal.h.orig 2021-03-12 23:57:18 UTC +--- chrome/browser/first_run/first_run_internal.h.orig 2021-04-14 18:40:53 UTC +++ chrome/browser/first_run/first_run_internal.h @@ -58,14 +58,13 @@ FirstRunState DetermineFirstRunState(bool has_sentinel // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch // of lacros-chrome is complete. -#if defined(OS_MAC) || (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) +#if defined(OS_MAC) || (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || defined(OS_BSD) // For testing, forces the first run dialog to either be shown or not. If not // called, the decision to show the dialog or not will be made by Chrome based // on a number of factors (such as install type, whether it's a Chrome-branded // build, etc). void ForceFirstRunDialogShownForTesting(bool shown); -#endif // defined(OS_MAC) || (defined(OS_LINUX) || - // BUILDFLAG(IS_CHROMEOS_LACROS)) +#endif // defined(OS_MAC) || (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || defined(OS_BSD) } // namespace internal } // namespace first_run 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 60672eda45a6..cfcab5adb88e 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,20 +1,20 @@ ---- chrome/browser/first_run/first_run_internal_posix.cc.orig 2021-03-12 23:57:18 UTC +--- chrome/browser/first_run/first_run_internal_posix.cc.orig 2021-04-14 18:40:53 UTC +++ chrome/browser/first_run/first_run_internal_posix.cc @@ -46,7 +46,7 @@ enum class ForcedShowDialogState { ForcedShowDialogState g_forced_show_dialog_state = ForcedShowDialogState::kNotForced; -#if !BUILDFLAG(IS_CHROMEOS_ASH) +#if !BUILDFLAG(IS_CHROMEOS_ASH) && !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 @@ -97,7 +97,7 @@ void ForceFirstRunDialogShownForTesting(bool shown) { } void DoPostImportPlatformSpecificTasks(Profile* profile) { -#if !BUILDFLAG(IS_CHROMEOS_ASH) +#if !BUILDFLAG(IS_CHROMEOS_ASH) && !defined(OS_BSD) if (!ShouldShowFirstRunDialog()) return; diff --git a/www/chromium/files/patch-chrome_browser_flag__descriptions.cc b/www/chromium/files/patch-chrome_browser_flag__descriptions.cc index cfc4b0641408..a8133b9ed86c 100644 --- a/www/chromium/files/patch-chrome_browser_flag__descriptions.cc +++ b/www/chromium/files/patch-chrome_browser_flag__descriptions.cc @@ -1,69 +1,79 @@ ---- chrome/browser/flag_descriptions.cc.orig 2021-03-12 23:57:18 UTC +--- chrome/browser/flag_descriptions.cc.orig 2021-04-14 18:40:53 UTC +++ chrome/browser/flag_descriptions.cc -@@ -4772,7 +4772,7 @@ const char kEnableNewBadgeOnMenuItemsDescription[] = +@@ -4949,7 +4949,7 @@ const char kEnableNewBadgeOnMenuItemsDescription[] = // Random platform combinations ----------------------------------------------- -#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || \ +#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || defined(OS_BSD) || \ defined(OS_CHROMEOS) const char kEnableMediaFeedsName[] = "Enables Media Feeds"; -@@ -4816,27 +4816,27 @@ const char kRemoteCopyProgressNotificationDescription[ +@@ -4993,20 +4993,20 @@ const char kRemoteCopyProgressNotificationDescription[ "Enables progress notifications to be shown for the remote copy feature " "when receiving a message."; -#endif // defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || +#endif // defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || defined(OS_BSD) || // defined(OS_CHROMEOS) -#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || \ +#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || defined(OS_BSD) || \ defined(OS_CHROMEOS) const char kDirectManipulationStylusName[] = "Direct Manipulation Stylus"; const char kDirectManipulationStylusDescription[] = "If enabled, Chrome will scroll web pages on stylus drag."; -#endif // defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || -+#endif // defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || defined(OS_BSD) || ++#endif // defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || defined(OS_BSD) // defined(OS_CHROMEOS) --#if defined(OS_CHROMEOS) || defined(OS_LINUX) -+#if defined(OS_CHROMEOS) || defined(OS_LINUX) || defined(OS_BSD) +-#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) ++#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || defined(OS_BSD) + + const char kCommanderName[] = "Commander"; + const char kCommanderDescription[] = +@@ -5022,7 +5022,7 @@ const char kDesktopDetailedLanguageSettingsName[] = + const char kDesktopDetailedLanguageSettingsDescription[] = + "Enable the new detailed language settings page"; + +-#endif // defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) ++#endif // defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || defined(OS_BSD) + + #if defined(OS_CHROMEOS) || defined(OS_LINUX) #if BUILDFLAG(USE_TCMALLOC) - const char kDynamicTcmallocName[] = "Dynamic Tcmalloc Tuning"; - const char kDynamicTcmallocDescription[] = - "Allows tcmalloc to dynamically adjust tunables based on system resource " - "utilization."; - #endif // BUILDFLAG(USE_TCMALLOC) --#endif // #if defined(OS_CHROMEOS) || defined(OS_LINUX) -+#endif // #if defined(OS_CHROMEOS) || defined(OS_LINUX) || defined(OS_BSD) - - #if !defined(OS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_ASH) - const char kUserDataSnapshotName[] = "Enable user data snapshots"; -@@ -4854,13 +4854,13 @@ const char kWebShareDescription[] = +@@ -5049,13 +5049,13 @@ const char kWebShareDescription[] = // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch // of lacros-chrome is complete. -#if defined(OS_WIN) || (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || \ +#if defined(OS_WIN) || (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || defined(OS_BSD) || \ defined(OS_MAC) const char kEnableEphemeralGuestProfilesOnDesktopName[] = "Enable ephemeral Guest profiles on Desktop"; const char kEnableEphemeralGuestProfilesOnDesktopDescription[] = "Enables ephemeral Guest profiles on Windows, Linux, and Mac."; -#endif // defined(OS_WIN) || (defined(OS_LINUX) || +#endif // defined(OS_WIN) || (defined(OS_LINUX) || defined(OS_BSD) || // BUILDFLAG(IS_CHROMEOS_LACROS)) || defined(OS_MAC) // Feature flags -------------------------------------------------------------- -@@ -4953,7 +4953,7 @@ const char kAutofillCreditCardUploadDescription[] = +@@ -5139,7 +5139,7 @@ const char kAutofillCreditCardUploadDescription[] = #endif // defined(TOOLKIT_VIEWS) || defined(OS_ANDROID) -#if !defined(OS_WIN) && !defined(OS_FUCHSIA) +#if !defined(OS_WIN) && !defined(OS_FUCHSIA) && !defined(OS_BSD) const char kSendWebUIJavaScriptErrorReportsName[] = "Send WebUI JavaScript Error Reports"; const char kSendWebUIJavaScriptErrorReportsDescription[] = +@@ -5148,7 +5148,7 @@ const char kSendWebUIJavaScriptErrorReportsDescription + "will be sent to Google."; + #endif + +-#if defined(OS_WIN) || (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || \ ++#if defined(OS_WIN) || (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || defined(OS_BSD) || \ + defined(OS_MAC) + const char kUIDebugToolsName[] = "Debugging tools for UI"; + const char kUIDebugToolsDescription[] = diff --git a/www/chromium/files/patch-chrome_browser_flag__descriptions.h b/www/chromium/files/patch-chrome_browser_flag__descriptions.h index 28ba171c144e..409546d0dbfd 100644 --- a/www/chromium/files/patch-chrome_browser_flag__descriptions.h +++ b/www/chromium/files/patch-chrome_browser_flag__descriptions.h @@ -1,65 +1,74 @@ ---- chrome/browser/flag_descriptions.h.orig 2021-03-12 23:57:18 UTC +--- chrome/browser/flag_descriptions.h.orig 2021-04-14 18:40:53 UTC +++ chrome/browser/flag_descriptions.h -@@ -20,9 +20,9 @@ +@@ -21,9 +21,9 @@ #include "ppapi/buildflags/buildflags.h" #include "printing/buildflags/buildflags.h" -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) #include "base/allocator/buildflags.h" -#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) +#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) // This file declares strings used in chrome://flags. These messages are not // translated, because instead of end-users they target Chromium developers and -@@ -2790,7 +2790,7 @@ extern const char kEnableNewBadgeOnMenuItemsDescriptio +@@ -2900,7 +2900,7 @@ extern const char kEnableNewBadgeOnMenuItemsDescriptio // Random platform combinations ----------------------------------------------- -#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || \ +#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || defined(OS_BSD) || \ defined(OS_CHROMEOS) extern const char kEnableMediaFeedsName[]; -@@ -2817,15 +2817,15 @@ extern const char kRemoteCopyProgressNotificationDescr +@@ -2927,10 +2927,10 @@ extern const char kRemoteCopyProgressNotificationDescr extern const char kDirectManipulationStylusName[]; extern const char kDirectManipulationStylusDescription[]; -#endif // defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || +#endif // defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || defined(OS_BSD) || // defined(OS_CHROMEOS) --#if defined(OS_CHROMEOS) || defined(OS_LINUX) -+#if defined(OS_CHROMEOS) || defined(OS_LINUX) || defined(OS_BSD) - #if BUILDFLAG(USE_TCMALLOC) - extern const char kDynamicTcmallocName[]; - extern const char kDynamicTcmallocDescription[]; - #endif // BUILDFLAG(USE_TCMALLOC) --#endif // #if defined(OS_CHROMEOS) || defined(OS_LINUX) -+#endif // #if defined(OS_CHROMEOS) || defined(OS_LINUX) || defined(OS_BSD) +-#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) ++#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || defined(OS_BSD) + + extern const char kCommanderName[]; + extern const char kCommanderDescription[]; +@@ -2941,7 +2941,7 @@ extern const char kDesktopRestructuredLanguageSettings + extern const char kDesktopDetailedLanguageSettingsName[]; + extern const char kDesktopDetailedLanguageSettingsDescription[]; - #if !defined(OS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_ASH) - extern const char kUserDataSnapshotName[]; -@@ -2839,11 +2839,11 @@ extern const char kWebShareDescription[]; +-#endif // defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) ++#endif // defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || defined(OS_BSD) + + #if defined(OS_CHROMEOS) || defined(OS_LINUX) + #if BUILDFLAG(USE_TCMALLOC) +@@ -2962,11 +2962,11 @@ extern const char kWebShareDescription[]; // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch // of lacros-chrome is complete. -#if defined(OS_WIN) || (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || \ +#if defined(OS_WIN) || (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || defined(OS_BSD) || \ defined(OS_MAC) extern const char kEnableEphemeralGuestProfilesOnDesktopName[]; extern const char kEnableEphemeralGuestProfilesOnDesktopDescription[]; -#endif // defined(OS_WIN) || (defined(OS_LINUX) || +#endif // defined(OS_WIN) || (defined(OS_LINUX) || defined(OS_BSD) || // BUILDFLAG(IS_CHROMEOS_LACROS)) || defined(OS_MAC) // Feature flags -------------------------------------------------------------- -@@ -2906,7 +2906,7 @@ extern const char kAutofillCreditCardUploadDescription +@@ -3023,12 +3023,12 @@ extern const char kAutofillCreditCardUploadDescription #endif // defined(TOOLKIT_VIEWS) || defined(OS_ANDROID) -#if !defined(OS_WIN) && !defined(OS_FUCHSIA) +#if !defined(OS_WIN) && !defined(OS_FUCHSIA) && !defined(OS_BSD) extern const char kSendWebUIJavaScriptErrorReportsName[]; extern const char kSendWebUIJavaScriptErrorReportsDescription[]; #endif + +-#if defined(OS_WIN) || (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || \ ++#if defined(OS_WIN) || (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || defined(OS_BSD) || \ + defined(OS_MAC) + extern const char kUIDebugToolsName[]; + extern const char kUIDebugToolsDescription[]; diff --git a/www/chromium/files/patch-chrome_browser_intranet__redirect__detector.h b/www/chromium/files/patch-chrome_browser_intranet__redirect__detector.h index f5e4258b7e67..ce008bcd179e 100644 --- a/www/chromium/files/patch-chrome_browser_intranet__redirect__detector.h +++ b/www/chromium/files/patch-chrome_browser_intranet__redirect__detector.h @@ -1,11 +1,11 @@ ---- chrome/browser/intranet_redirect_detector.h.orig 2021-03-12 23:57:18 UTC +--- chrome/browser/intranet_redirect_detector.h.orig 2021-04-14 18:40:53 UTC +++ chrome/browser/intranet_redirect_detector.h @@ -27,7 +27,7 @@ class SimpleURLLoader; class PrefRegistrySimple; -#if !(defined(OS_MAC) || defined(OS_WIN) || defined(OS_LINUX) || \ +#if !(defined(OS_MAC) || defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD) ||\ defined(OS_CHROMEOS)) #error "IntranetRedirectDetector should only be built on Desktop platforms." #endif diff --git a/www/chromium/files/patch-chrome_browser_media__galleries_fileapi_mtp__device__map__service.cc b/www/chromium/files/patch-chrome_browser_media__galleries_fileapi_mtp__device__map__service.cc index 87ee148fcfab..009e6ccaea2e 100644 --- a/www/chromium/files/patch-chrome_browser_media__galleries_fileapi_mtp__device__map__service.cc +++ b/www/chromium/files/patch-chrome_browser_media__galleries_fileapi_mtp__device__map__service.cc @@ -1,15 +1,15 @@ ---- chrome/browser/media_galleries/fileapi/mtp_device_map_service.cc.orig 2021-03-12 23:57:18 UTC +--- chrome/browser/media_galleries/fileapi/mtp_device_map_service.cc.orig 2021-04-14 18:40:53 UTC +++ chrome/browser/media_galleries/fileapi/mtp_device_map_service.cc @@ -39,10 +39,12 @@ void MTPDeviceMapService::RegisterMTPFileSystem( // Note that this initializes the delegate asynchronously, but since // the delegate will only be used from the IO thread, it is guaranteed // to be created before use of it expects it to be there. +#if !defined(OS_FREEBSD) CreateMTPDeviceAsyncDelegate( device_location, read_only, base::BindOnce(&MTPDeviceMapService::AddAsyncDelegate, base::Unretained(this), device_location, read_only)); +#endif mtp_device_usage_map_[key] = 0; } diff --git a/www/chromium/files/patch-chrome_browser_media__galleries_media__file__system__registry.cc b/www/chromium/files/patch-chrome_browser_media__galleries_media__file__system__registry.cc index 1d0354461ad5..6701da8634f4 100644 --- a/www/chromium/files/patch-chrome_browser_media__galleries_media__file__system__registry.cc +++ b/www/chromium/files/patch-chrome_browser_media__galleries_media__file__system__registry.cc @@ -1,14 +1,14 @@ ---- chrome/browser/media_galleries/media_file_system_registry.cc.orig 2021-03-12 23:57:18 UTC +--- chrome/browser/media_galleries/media_file_system_registry.cc.orig 2021-04-14 18:40:53 UTC +++ chrome/browser/media_galleries/media_file_system_registry.cc -@@ -736,7 +736,10 @@ class MediaFileSystemRegistry::MediaFileSystemContextI +@@ -737,7 +737,10 @@ class MediaFileSystemRegistry::MediaFileSystemContextI // Constructor in 'private' section because depends on private class definition. MediaFileSystemRegistry::MediaFileSystemRegistry() : file_system_context_(new MediaFileSystemContextImpl) { - StorageMonitor::GetInstance()->AddObserver(this); + // This conditional is needed for shutdown. Destructors + // try to get the media file system registry. + if (StorageMonitor::GetInstance()) + StorageMonitor::GetInstance()->AddObserver(this); } MediaFileSystemRegistry::~MediaFileSystemRegistry() { diff --git a/www/chromium/files/patch-chrome_browser_media_audio__service__util.cc b/www/chromium/files/patch-chrome_browser_media_audio__service__util.cc index c34939baeee8..9353e243748b 100644 --- a/www/chromium/files/patch-chrome_browser_media_audio__service__util.cc +++ b/www/chromium/files/patch-chrome_browser_media_audio__service__util.cc @@ -1,11 +1,20 @@ ---- chrome/browser/media/audio_service_util.cc.orig 2021-03-12 23:57:18 UTC +--- chrome/browser/media/audio_service_util.cc.orig 2021-04-14 18:40:53 UTC +++ chrome/browser/media/audio_service_util.cc -@@ -24,7 +24,7 @@ bool IsAudioServiceSandboxEnabled() { - // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch - // of lacros-chrome is complete. +@@ -21,7 +21,7 @@ + namespace { + #if defined(OS_WIN) || defined(OS_MAC) || \ -- (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) -+ (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || defined(OS_BSD) +- (defined(OS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)) ++ (defined(OS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)) || defined(OS_BSD) + bool GetPolicyOrFeature(const char* policy_name, const base::Feature& feature) { const policy::PolicyMap& policies = g_browser_process->browser_policy_connector() - ->GetPolicyService() +@@ -43,7 +43,7 @@ bool IsAudioServiceSandboxEnabled() { + // TODO(crbug.com/1052397): Remove !IS_CHROMEOS_LACROS once lacros starts being + // built with OS_CHROMEOS instead of OS_LINUX. + #if defined(OS_WIN) || defined(OS_MAC) || \ +- (defined(OS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)) ++ (defined(OS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)) || defined(OS_BSD) + return GetPolicyOrFeature(policy::key::kAudioSandboxEnabled, + features::kAudioServiceSandbox); + #else diff --git a/www/chromium/files/patch-chrome_browser_media_router_discovery_discovery__network__list__posix.cc b/www/chromium/files/patch-chrome_browser_media_router_discovery_discovery__network__list__posix.cc index 61a8f93f7274..9ddef768a051 100644 --- a/www/chromium/files/patch-chrome_browser_media_router_discovery_discovery__network__list__posix.cc +++ b/www/chromium/files/patch-chrome_browser_media_router_discovery_discovery__network__list__posix.cc @@ -1,34 +1,34 @@ ---- chrome/browser/media/router/discovery/discovery_network_list_posix.cc.orig 2021-03-12 23:57:18 UTC +--- chrome/browser/media/router/discovery/discovery_network_list_posix.cc.orig 2021-04-14 18:40:53 UTC +++ chrome/browser/media/router/discovery/discovery_network_list_posix.cc @@ -10,6 +10,7 @@ #include #include #include +#include #include @@ -18,7 +19,7 @@ #include "chrome/browser/media/router/discovery/discovery_network_list_wifi.h" #include "net/base/net_errors.h" -#if !defined(OS_MAC) +#if !defined(OS_MAC) && !defined(OS_BSD) #include #else #include @@ -27,12 +28,12 @@ namespace media_router { namespace { -#if !defined(OS_MAC) +#if !defined(OS_MAC) && !defined(OS_BSD) using sll = struct sockaddr_ll; #define SOCKET_ARP_TYPE(s) ((s)->sll_hatype) #define SOCKET_ADDRESS_LEN(s) ((s)->sll_halen) #define SOCKET_ADDRESS(s) ((s)->sll_addr) -#else // defined(OS_MAC) +#else // defined(OS_MAC) || defined(OS_BSD) #define AF_PACKET AF_LINK using sll = struct sockaddr_dl; #define SOCKET_ARP_TYPE(s) ((s)->sdl_type) diff --git a/www/chromium/files/patch-chrome_browser_media_router_discovery_discovery__network__list__wifi__linux.cc b/www/chromium/files/patch-chrome_browser_media_router_discovery_discovery__network__list__wifi__linux.cc index c42ffa495a4c..bf6fc5cf1a6f 100644 --- a/www/chromium/files/patch-chrome_browser_media_router_discovery_discovery__network__list__wifi__linux.cc +++ b/www/chromium/files/patch-chrome_browser_media_router_discovery_discovery__network__list__wifi__linux.cc @@ -1,30 +1,30 @@ ---- chrome/browser/media/router/discovery/discovery_network_list_wifi_linux.cc.orig 2021-03-12 23:57:18 UTC +--- chrome/browser/media/router/discovery/discovery_network_list_wifi_linux.cc.orig 2021-04-14 18:40:53 UTC +++ chrome/browser/media/router/discovery/discovery_network_list_wifi_linux.cc @@ -9,7 +9,11 @@ #include #include +#include "build/build_config.h" + +#if !defined(OS_BSD) #include +#endif #include "base/check.h" #include "base/files/scoped_file.h" @@ -20,6 +24,7 @@ namespace media_router { bool MaybeGetWifiSSID(const std::string& if_name, std::string* ssid_out) { DCHECK(ssid_out); +#if !defined(OS_BSD) base::ScopedFD ioctl_socket(socket(AF_INET, SOCK_DGRAM, 0)); if (!ioctl_socket.is_valid()) { // AF_INET is for IPv4, so it may fail for IPv6-only hosts even when there @@ -41,6 +46,7 @@ bool MaybeGetWifiSSID(const std::string& if_name, std: ssid_out->assign(ssid); return true; } +#endif return false; } diff --git a/www/chromium/files/patch-chrome_browser_media_router_providers_wired__display_wired__display__media__route__provider.cc b/www/chromium/files/patch-chrome_browser_media_router_providers_wired__display_wired__display__media__route__provider.cc index b883b109864a..4c9207a126d2 100644 --- a/www/chromium/files/patch-chrome_browser_media_router_providers_wired__display_wired__display__media__route__provider.cc +++ b/www/chromium/files/patch-chrome_browser_media_router_providers_wired__display_wired__display__media__route__provider.cc @@ -1,23 +1,23 @@ ---- chrome/browser/media/router/providers/wired_display/wired_display_media_route_provider.cc.orig 2021-03-12 23:57:18 UTC +--- chrome/browser/media/router/providers/wired_display/wired_display_media_route_provider.cc.orig 2021-04-14 18:40:53 UTC +++ chrome/browser/media/router/providers/wired_display/wired_display_media_route_provider.cc @@ -105,6 +105,12 @@ void WiredDisplayMediaRouteProvider::CreateRoute( bool off_the_record, CreateRouteCallback callback) { DCHECK(!base::Contains(presentations_, presentation_id)); +#if defined(OS_BSD) + std::move(callback).Run(base::nullopt, nullptr, + std::string("Not implemented"), + RouteRequestResult::UNKNOWN_ERROR); + return; +#else base::Optional display = GetDisplayBySinkId(sink_id); if (!display) { std::move(callback).Run(base::nullopt, nullptr, @@ -131,6 +137,7 @@ void WiredDisplayMediaRouteProvider::CreateRoute( std::move(callback).Run(route, nullptr, base::nullopt, RouteRequestResult::OK); NotifyRouteObservers(); +#endif } void WiredDisplayMediaRouteProvider::JoinRoute( diff --git a/www/chromium/files/patch-chrome_browser_media_webrtc_webrtc__event__log__uploader.cc b/www/chromium/files/patch-chrome_browser_media_webrtc_webrtc__event__log__uploader.cc index 0336df512390..1dede6d286ce 100644 --- a/www/chromium/files/patch-chrome_browser_media_webrtc_webrtc__event__log__uploader.cc +++ b/www/chromium/files/patch-chrome_browser_media_webrtc_webrtc__event__log__uploader.cc @@ -1,11 +1,11 @@ ---- chrome/browser/media/webrtc/webrtc_event_log_uploader.cc.orig 2021-03-12 23:57:18 UTC +--- chrome/browser/media/webrtc/webrtc_event_log_uploader.cc.orig 2021-04-14 18:40:53 UTC +++ chrome/browser/media/webrtc/webrtc_event_log_uploader.cc @@ -41,6 +41,8 @@ const char kProduct[] = "Chrome_Mac"; const char kProduct[] = "Chrome_ChromeOS"; #elif defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) const char kProduct[] = "Chrome_Linux"; +#elif defined(OS_FREEBSD) +const char kProduct[] = "Chrome_FreeBSD"; #elif defined(OS_ANDROID) const char kProduct[] = "Chrome_Android"; #else diff --git a/www/chromium/files/patch-chrome_browser_media_webrtc_webrtc__log__uploader.cc b/www/chromium/files/patch-chrome_browser_media_webrtc_webrtc__log__uploader.cc index 2e65e602bbb9..87d35945d84a 100644 --- a/www/chromium/files/patch-chrome_browser_media_webrtc_webrtc__log__uploader.cc +++ b/www/chromium/files/patch-chrome_browser_media_webrtc_webrtc__log__uploader.cc @@ -1,11 +1,11 @@ ---- chrome/browser/media/webrtc/webrtc_log_uploader.cc.orig 2021-03-12 23:57:18 UTC +--- chrome/browser/media/webrtc/webrtc_log_uploader.cc.orig 2021-04-14 18:40:53 UTC +++ chrome/browser/media/webrtc/webrtc_log_uploader.cc @@ -360,6 +360,8 @@ void WebRtcLogUploader::SetupMultipart( const char product[] = "Chrome_Android"; #elif BUILDFLAG(IS_CHROMEOS_ASH) const char product[] = "Chrome_ChromeOS"; +#elif defined(OS_FREEBSD) + const char product[] = "Chrome_FreeBSD"; #else #error Platform not supported. #endif diff --git a/www/chromium/files/patch-chrome_browser_media_webrtc_webrtc__logging__controller.cc b/www/chromium/files/patch-chrome_browser_media_webrtc_webrtc__logging__controller.cc index 72f24793cc14..da2275f69a1f 100644 --- a/www/chromium/files/patch-chrome_browser_media_webrtc_webrtc__logging__controller.cc +++ b/www/chromium/files/patch-chrome_browser_media_webrtc_webrtc__logging__controller.cc @@ -1,33 +1,33 @@ ---- chrome/browser/media/webrtc/webrtc_logging_controller.cc.orig 2021-03-12 23:57:18 UTC +--- chrome/browser/media/webrtc/webrtc_logging_controller.cc.orig 2021-04-14 18:40:53 UTC +++ chrome/browser/media/webrtc/webrtc_logging_controller.cc @@ -23,10 +23,10 @@ #include "content/public/browser/browser_context.h" #include "content/public/browser/render_process_host.h" -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) #include "content/public/browser/child_process_security_policy.h" #include "storage/browser/file_system/isolated_context.h" -#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) +#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) using webrtc_event_logging::WebRtcEventLogManager; @@ -272,7 +272,7 @@ void WebRtcLoggingController::StartEventLogging( web_app_id, callback); } -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) void WebRtcLoggingController::GetLogsDirectory( LogsDirectoryCallback callback, LogsDirectoryErrorCallback error_callback) { @@ -318,7 +318,7 @@ void WebRtcLoggingController::GrantLogsDirectoryAccess FROM_HERE, base::BindOnce(std::move(callback), file_system.id(), registered_name)); } -#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) +#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) void WebRtcLoggingController::OnRtpPacket( std::unique_ptr packet_header, diff --git a/www/chromium/files/patch-chrome_browser_media_webrtc_webrtc__logging__controller.h b/www/chromium/files/patch-chrome_browser_media_webrtc_webrtc__logging__controller.h index ae65167a1515..8423490e074c 100644 --- a/www/chromium/files/patch-chrome_browser_media_webrtc_webrtc__logging__controller.h +++ b/www/chromium/files/patch-chrome_browser_media_webrtc_webrtc__logging__controller.h @@ -1,36 +1,36 @@ ---- chrome/browser/media/webrtc/webrtc_logging_controller.h.orig 2021-03-12 23:57:18 UTC +--- chrome/browser/media/webrtc/webrtc_logging_controller.h.orig 2021-04-14 18:40:53 UTC +++ chrome/browser/media/webrtc/webrtc_logging_controller.h @@ -129,13 +129,13 @@ class WebRtcLoggingController size_t web_app_id, const StartEventLoggingCallback& callback); -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) // Ensures that the WebRTC Logs directory exists and then grants render // process access to the 'WebRTC Logs' directory, and invokes |callback| with // the ids necessary to create a DirectoryEntry object. void GetLogsDirectory(LogsDirectoryCallback callback, LogsDirectoryErrorCallback error_callback); -#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) +#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) // chrome::mojom::WebRtcLoggingClient methods: void OnAddMessages( @@ -188,7 +188,7 @@ class WebRtcLoggingController bool success, const std::string& error_message); -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) // Grants the render process access to the 'WebRTC Logs' directory, and // invokes |callback| with the ids necessary to create a DirectoryEntry // object. If the |logs_path| couldn't be created or found, |error_callback| @@ -196,7 +196,7 @@ class WebRtcLoggingController void GrantLogsDirectoryAccess(LogsDirectoryCallback callback, LogsDirectoryErrorCallback error_callback, const base::FilePath& logs_path); -#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) +#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) static base::FilePath GetLogDirectoryAndEnsureExists( const base::FilePath& browser_context_directory_path); diff --git a/www/chromium/files/patch-chrome_browser_memory__details.cc b/www/chromium/files/patch-chrome_browser_memory__details.cc index 0ca5d7cd708d..85f7e8c0d7a5 100644 --- a/www/chromium/files/patch-chrome_browser_memory__details.cc +++ b/www/chromium/files/patch-chrome_browser_memory__details.cc @@ -1,20 +1,20 @@ ---- chrome/browser/memory_details.cc.orig 2021-03-12 23:57:18 UTC +--- chrome/browser/memory_details.cc.orig 2021-04-14 18:40:53 UTC +++ chrome/browser/memory_details.cc @@ -38,7 +38,7 @@ #include "services/resource_coordinator/public/cpp/memory_instrumentation/memory_instrumentation.h" #include "ui/base/l10n/l10n_util.h" -#if defined(OS_POSIX) && !defined(OS_MAC) && !defined(OS_ANDROID) +#if defined(OS_POSIX) && !defined(OS_MAC) && !defined(OS_ANDROID) && !defined(OS_BSD) #include "content/public/browser/zygote_host/zygote_host_linux.h" #endif @@ -339,7 +339,7 @@ void MemoryDetails::CollectChildInfoOnUIThread() { process.titles.push_back(title); } -#if defined(OS_POSIX) && !defined(OS_MAC) && !defined(OS_ANDROID) +#if defined(OS_POSIX) && !defined(OS_MAC) && !defined(OS_ANDROID) && !defined(OS_BSD) if (content::ZygoteHost::GetInstance()->IsZygotePid(process.pid)) { process.process_type = content::PROCESS_TYPE_ZYGOTE; } diff --git a/www/chromium/files/patch-chrome_browser_memory__details__linux.cc b/www/chromium/files/patch-chrome_browser_memory__details__linux.cc index db0d3691e531..d6ac4e08b257 100644 --- a/www/chromium/files/patch-chrome_browser_memory__details__linux.cc +++ b/www/chromium/files/patch-chrome_browser_memory__details__linux.cc @@ -1,13 +1,13 @@ ---- chrome/browser/memory_details_linux.cc.orig 2021-03-12 23:57:18 UTC +--- chrome/browser/memory_details_linux.cc.orig 2021-04-14 18:40:53 UTC +++ chrome/browser/memory_details_linux.cc @@ -70,8 +70,10 @@ ProcessData GetProcessDataMemoryInformation( std::unique_ptr metrics( base::ProcessMetrics::CreateProcessMetrics(pid)); +#if !defined(OS_BSD) pmi.num_open_fds = metrics->GetOpenFdCount(); pmi.open_fds_soft_limit = metrics->GetOpenFdSoftLimit(); +#endif process_data.processes.push_back(pmi); } diff --git a/www/chromium/files/patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.cc b/www/chromium/files/patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.cc index 128c217f37eb..eddecc0854fd 100644 --- a/www/chromium/files/patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.cc +++ b/www/chromium/files/patch-chrome_browser_metrics_chrome__browser__main__extra__parts__metrics.cc @@ -1,21 +1,21 @@ ---- chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc.orig 2021-03-12 23:57:18 UTC +--- chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc.orig 2021-04-14 18:40:53 UTC +++ chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc -@@ -56,7 +56,9 @@ +@@ -59,7 +59,9 @@ // of lacros-chrome is complete. #if defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) #include +#endif +#if (defined(OS_LINUX) && !defined(OS_CHROMEOS)) || defined(OS_BSD) #include "base/linux_util.h" #include "base/strings/string_split.h" #include "base/strings/string_util.h" -@@ -65,7 +67,7 @@ +@@ -68,7 +70,7 @@ #include "ui/base/ui_base_features.h" #include "ui/base/x/x11_util.h" #endif -#endif // defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) +#endif // defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || defined(OS_BSD) #if defined(USE_OZONE) || defined(USE_X11) #include "ui/events/devices/device_data_manager.h" diff --git a/www/chromium/files/patch-chrome_browser_metrics_chrome__metrics__service__client.cc b/www/chromium/files/patch-chrome_browser_metrics_chrome__metrics__service__client.cc index f61540727dc9..a3d3fb66fac8 100644 --- a/www/chromium/files/patch-chrome_browser_metrics_chrome__metrics__service__client.cc +++ b/www/chromium/files/patch-chrome_browser_metrics_chrome__metrics__service__client.cc @@ -1,24 +1,24 @@ ---- chrome/browser/metrics/chrome_metrics_service_client.cc.orig 2021-03-12 23:57:18 UTC +--- chrome/browser/metrics/chrome_metrics_service_client.cc.orig 2021-04-14 18:40:53 UTC +++ chrome/browser/metrics/chrome_metrics_service_client.cc -@@ -697,10 +697,10 @@ void ChromeMetricsServiceClient::RegisterMetricsServic +@@ -707,10 +707,10 @@ void ChromeMetricsServiceClient::RegisterMetricsServic // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch // of lacros-chrome is complete. #if defined(OS_WIN) || defined(OS_MAC) || \ - (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) + (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || defined(OS_BSD) metrics_service_->RegisterMetricsProvider( std::make_unique()); -#endif // defined(OS_WIN) || defined(OS_MAC) || (defined(OS_LINUX) || +#endif // defined(OS_WIN) || defined(OS_MAC) || (defined(OS_LINUX) || defined(OS_BSD) || // BUILDFLAG(IS_CHROMEOS_LACROS)) #if BUILDFLAG(ENABLE_PLUGINS) -@@ -978,7 +978,7 @@ bool ChromeMetricsServiceClient::RegisterForProfileEve +@@ -998,7 +998,7 @@ bool ChromeMetricsServiceClient::RegisterForProfileEve // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch // of lacros-chrome is complete. #if defined(OS_WIN) || defined(OS_MAC) || \ - (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) + (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || defined(OS_BSD) // This creates the DesktopProfileSessionDurationsServices if it didn't exist // already. metrics::DesktopProfileSessionDurationsServiceFactory::GetForBrowserContext( diff --git a/www/chromium/files/patch-chrome_browser_metrics_process__memory__metrics__emitter.cc b/www/chromium/files/patch-chrome_browser_metrics_process__memory__metrics__emitter.cc index 13065dafb06a..2103bcac5a1d 100644 --- a/www/chromium/files/patch-chrome_browser_metrics_process__memory__metrics__emitter.cc +++ b/www/chromium/files/patch-chrome_browser_metrics_process__memory__metrics__emitter.cc @@ -1,20 +1,20 @@ ---- chrome/browser/metrics/process_memory_metrics_emitter.cc.orig 2021-03-12 23:57:18 UTC +--- chrome/browser/metrics/process_memory_metrics_emitter.cc.orig 2021-04-14 18:40:53 UTC +++ chrome/browser/metrics/process_memory_metrics_emitter.cc -@@ -509,7 +509,7 @@ void EmitProcessUmaAndUkm(const GlobalMemoryDump::Proc +@@ -514,7 +514,7 @@ void EmitProcessUmaAndUkm(const GlobalMemoryDump::Proc builder->SetPrivateMemoryFootprint(pmd.os_dump().private_footprint_kb / kKiB); builder->SetSharedMemoryFootprint(pmd.os_dump().shared_footprint_kb / kKiB); -#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) || defined(OS_BSD) builder->SetPrivateSwapFootprint(pmd.os_dump().private_footprint_swap_kb / kKiB); #endif -@@ -532,7 +532,7 @@ void EmitProcessUmaAndUkm(const GlobalMemoryDump::Proc +@@ -537,7 +537,7 @@ void EmitProcessUmaAndUkm(const GlobalMemoryDump::Proc MEMORY_METRICS_HISTOGRAM_MB(std::string(kMemoryHistogramPrefix) + process_name + ".SharedMemoryFootprint", pmd.os_dump().shared_footprint_kb / kKiB); -#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) || defined(OS_BSD) MEMORY_METRICS_HISTOGRAM_MB(std::string(kMemoryHistogramPrefix) + process_name + ".PrivateSwapFootprint", pmd.os_dump().private_footprint_swap_kb / kKiB); diff --git a/www/chromium/files/patch-chrome_browser_net_system__network__context__manager.cc b/www/chromium/files/patch-chrome_browser_net_system__network__context__manager.cc index 6995743b2d87..5c3f621d83c1 100644 --- a/www/chromium/files/patch-chrome_browser_net_system__network__context__manager.cc +++ b/www/chromium/files/patch-chrome_browser_net_system__network__context__manager.cc @@ -1,64 +1,64 @@ ---- chrome/browser/net/system_network_context_manager.cc.orig 2021-03-12 23:57:18 UTC +--- chrome/browser/net/system_network_context_manager.cc.orig 2021-04-14 18:40:53 UTC +++ chrome/browser/net/system_network_context_manager.cc -@@ -81,11 +81,11 @@ +@@ -80,11 +80,11 @@ // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch // of lacros-chrome is complete. -#if defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) +#if defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || defined(OS_BSD) #include "chrome/common/chrome_paths_internal.h" #include "chrome/grit/chromium_strings.h" #include "ui/base/l10n/l10n_util.h" -#endif // defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) +#endif // defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || defined(OS_BSD) #if BUILDFLAG(ENABLE_EXTENSIONS) #include "extensions/common/constants.h" -@@ -146,10 +146,10 @@ network::mojom::HttpAuthDynamicParamsPtr CreateHttpAut +@@ -145,10 +145,10 @@ network::mojom::HttpAuthDynamicParamsPtr CreateHttpAut auth_dynamic_params->basic_over_http_enabled = local_state->GetBoolean(prefs::kBasicAuthOverHttpEnabled); -#if defined(OS_LINUX) || defined(OS_MAC) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_MAC) || defined(OS_CHROMEOS) || defined(OS_BSD) auth_dynamic_params->delegate_by_kdc_policy = local_state->GetBoolean(prefs::kAuthNegotiateDelegateByKdcPolicy); -#endif // defined(OS_LINUX) || defined(OS_MAC) || defined(OS_CHROMEOS) +#endif // defined(OS_LINUX) || defined(OS_MAC) || defined(OS_CHROMEOS) || defined(OS_BSD) #if defined(OS_POSIX) auth_dynamic_params->ntlm_v2_enabled = -@@ -364,10 +364,10 @@ SystemNetworkContextManager::SystemNetworkContextManag +@@ -363,10 +363,10 @@ SystemNetworkContextManager::SystemNetworkContextManag pref_change_registrar_.Add(prefs::kBasicAuthOverHttpEnabled, auth_pref_callback); -#if defined(OS_LINUX) || defined(OS_MAC) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_MAC) || defined(OS_CHROMEOS) || defined(OS_BSD) pref_change_registrar_.Add(prefs::kAuthNegotiateDelegateByKdcPolicy, auth_pref_callback); -#endif // defined(OS_LINUX) || defined(OS_MAC) || defined(OS_CHROMEOS) +#endif // defined(OS_LINUX) || defined(OS_MAC) || defined(OS_CHROMEOS) || defined(OS_BSD) #if defined(OS_POSIX) pref_change_registrar_.Add(prefs::kNtlmV2Enabled, auth_pref_callback); -@@ -416,10 +416,10 @@ void SystemNetworkContextManager::RegisterPrefs(PrefRe +@@ -415,10 +415,10 @@ void SystemNetworkContextManager::RegisterPrefs(PrefRe registry->RegisterStringPref(prefs::kAuthServerAllowlist, std::string()); registry->RegisterStringPref(prefs::kAuthNegotiateDelegateAllowlist, std::string()); -#if defined(OS_LINUX) || defined(OS_MAC) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_MAC) || defined(OS_CHROMEOS) || defined(OS_BSD) registry->RegisterBooleanPref(prefs::kAuthNegotiateDelegateByKdcPolicy, false); -#endif // defined(OS_LINUX) || defined(OS_MAC) || defined(OS_CHROMEOS) +#endif // defined(OS_LINUX) || defined(OS_MAC) || defined(OS_CHROMEOS) || defined(OS_BSD) #if defined(OS_POSIX) registry->RegisterBooleanPref( -@@ -513,7 +513,7 @@ void SystemNetworkContextManager::OnNetworkServiceCrea +@@ -512,7 +512,7 @@ void SystemNetworkContextManager::OnNetworkServiceCrea // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch // of lacros-chrome is complete. -#if defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) +#if defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || defined(OS_BSD) const base::CommandLine& command_line = *base::CommandLine::ForCurrentProcess(); diff --git a/www/chromium/files/patch-chrome_browser_notifications_notification__display__service__impl.cc b/www/chromium/files/patch-chrome_browser_notifications_notification__display__service__impl.cc index 2df862c7a918..1af8bb9914fd 100644 --- a/www/chromium/files/patch-chrome_browser_notifications_notification__display__service__impl.cc +++ b/www/chromium/files/patch-chrome_browser_notifications_notification__display__service__impl.cc @@ -1,29 +1,29 @@ ---- chrome/browser/notifications/notification_display_service_impl.cc.orig 2021-03-12 23:57:18 UTC +--- chrome/browser/notifications/notification_display_service_impl.cc.orig 2021-04-14 18:40:53 UTC +++ chrome/browser/notifications/notification_display_service_impl.cc @@ -30,7 +30,7 @@ #include "chrome/browser/extensions/api/notifications/extension_notification_handler.h" #endif -#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_MAC) || \ +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_MAC) || defined(OS_BSD) || \ defined(OS_WIN) #include "chrome/browser/send_tab_to_self/desktop_notification_handler.h" #include "chrome/browser/sharing/sharing_notification_handler.h" @@ -66,7 +66,7 @@ void NotificationDisplayServiceImpl::RegisterProfilePr user_prefs::PrefRegistrySyncable* registry) { // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch // of lacros-chrome is complete. -#if defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) +#if defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || defined(OS_BSD) registry->RegisterBooleanPref(prefs::kAllowNativeNotifications, true); + registry->RegisterBooleanPref(prefs::kAllowSystemNotifications, true); #endif - } -@@ -81,7 +81,7 @@ NotificationDisplayServiceImpl::NotificationDisplaySer +@@ -82,7 +82,7 @@ NotificationDisplayServiceImpl::NotificationDisplaySer AddNotificationHandler(NotificationHandler::Type::WEB_PERSISTENT, std::make_unique()); -#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_MAC) || \ +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_MAC) || defined(OS_BSD) || \ defined(OS_WIN) AddNotificationHandler( NotificationHandler::Type::SEND_TAB_TO_SELF, diff --git a/www/chromium/files/patch-chrome_browser_notifications_notification__platform__bridge__delegator.cc b/www/chromium/files/patch-chrome_browser_notifications_notification__platform__bridge__delegator.cc index 604c62522ab0..10d386cd81da 100644 --- a/www/chromium/files/patch-chrome_browser_notifications_notification__platform__bridge__delegator.cc +++ b/www/chromium/files/patch-chrome_browser_notifications_notification__platform__bridge__delegator.cc @@ -1,11 +1,20 @@ ---- chrome/browser/notifications/notification_platform_bridge_delegator.cc.orig 2021-03-12 23:57:18 UTC +--- chrome/browser/notifications/notification_platform_bridge_delegator.cc.orig 2021-04-14 18:40:53 UTC +++ chrome/browser/notifications/notification_platform_bridge_delegator.cc -@@ -56,7 +56,7 @@ bool NativeNotificationsEnabled(Profile* profile) { - return true; +@@ -57,7 +57,7 @@ bool SystemNotificationsEnabled(Profile* profile) { #elif defined(OS_WIN) - return NotificationPlatformBridgeWin::NativeNotificationEnabled(); --#elif defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) -+#elif defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || defined(OS_BSD) + return NotificationPlatformBridgeWin::SystemNotificationEnabled(); + #else +-#if defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || defined(OS_BSD) if (profile) { // Prefs take precedence over flags. PrefService* prefs = profile->GetPrefs(); +@@ -66,7 +66,7 @@ bool SystemNotificationsEnabled(Profile* profile) { + return false; + } + } +-#endif // defined(OS_LINUX) ++#endif // defined(OS_LINUX) || defined(OS_BSD) + return base::FeatureList::IsEnabled(features::kNativeNotifications) && + base::FeatureList::IsEnabled(features::kSystemNotifications); + #endif // defined(OS_CHROMEOS) || defined(OS_ANDROID) diff --git a/www/chromium/files/patch-chrome_browser_password__manager_chrome__password__manager__client.cc b/www/chromium/files/patch-chrome_browser_password__manager_chrome__password__manager__client.cc index 362cb84d8915..a0fe22fac790 100644 --- a/www/chromium/files/patch-chrome_browser_password__manager_chrome__password__manager__client.cc +++ b/www/chromium/files/patch-chrome_browser_password__manager_chrome__password__manager__client.cc @@ -1,26 +1,26 @@ ---- chrome/browser/password_manager/chrome_password_manager_client.cc.orig 2021-03-12 23:57:18 UTC +--- chrome/browser/password_manager/chrome_password_manager_client.cc.orig 2021-04-14 18:40:54 UTC +++ chrome/browser/password_manager/chrome_password_manager_client.cc @@ -9,6 +9,10 @@ #include #include +#if defined(OS_BSD) +#include +#endif + #include "base/bind.h" #include "base/callback_helpers.h" #include "base/command_line.h" @@ -101,8 +105,11 @@ #include "net/cert/cert_status_flags.h" #include "services/metrics/public/cpp/ukm_recorder.h" #include "services/network/public/cpp/is_potentially_trustworthy.h" -#include "third_party/re2/src/re2/re2.h" #include "url/url_constants.h" + +#if !defined(OS_BSD) +#include "third_party/re2/src/re2/re2.h" +#endif #if BUILDFLAG(FULL_SAFE_BROWSING) #include "chrome/browser/safe_browsing/advanced_protection_status_manager.h" diff --git a/www/chromium/files/patch-chrome_browser_password__manager_password__store__factory.cc b/www/chromium/files/patch-chrome_browser_password__manager_password__store__factory.cc index de9c680b0432..969cc1b4f37c 100644 --- a/www/chromium/files/patch-chrome_browser_password__manager_password__store__factory.cc +++ b/www/chromium/files/patch-chrome_browser_password__manager_password__store__factory.cc @@ -1,11 +1,11 @@ ---- chrome/browser/password_manager/password_store_factory.cc.orig 2021-03-12 23:57:18 UTC +--- chrome/browser/password_manager/password_store_factory.cc.orig 2021-04-14 18:40:54 UTC +++ chrome/browser/password_manager/password_store_factory.cc -@@ -163,7 +163,7 @@ PasswordStoreFactory::BuildServiceInstanceFor( +@@ -166,7 +166,7 @@ PasswordStoreFactory::BuildServiceInstanceFor( // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch // of lacros-chrome is complete. #if defined(OS_WIN) || defined(OS_MAC) || \ - (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) + (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || defined(OS_BSD) std::unique_ptr notifier = std::make_unique( IdentityManagerFactory::GetForProfile(profile)); diff --git a/www/chromium/files/patch-chrome_browser_pdf_pdf__extension__test.cc b/www/chromium/files/patch-chrome_browser_pdf_pdf__extension__test.cc index b2754c5da7c1..feff7c1b7e14 100644 --- a/www/chromium/files/patch-chrome_browser_pdf_pdf__extension__test.cc +++ b/www/chromium/files/patch-chrome_browser_pdf_pdf__extension__test.cc @@ -1,20 +1,20 @@ ---- chrome/browser/pdf/pdf_extension_test.cc.orig 2021-03-12 23:57:18 UTC +--- chrome/browser/pdf/pdf_extension_test.cc.orig 2021-04-14 18:40:54 UTC +++ chrome/browser/pdf/pdf_extension_test.cc -@@ -2188,7 +2188,7 @@ class PDFExtensionClipboardTest : public PDFExtensionT +@@ -2162,7 +2162,7 @@ class PDFExtensionClipboardTest : public PDFExtensionT const std::string& expected) { // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch // of lacros-chrome is complete. -#if defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) +#if defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || defined(OS_BSD) DoActionAndCheckClipboard(std::move(action), ui::ClipboardBuffer::kSelection, expected); #else -@@ -2320,7 +2320,7 @@ IN_PROC_BROWSER_TEST_P(PDFExtensionClipboardTest, +@@ -2294,7 +2294,7 @@ IN_PROC_BROWSER_TEST_F(PDFExtensionClipboardTest, // Flaky on ChromeOS (https://crbug.com/1121446) // TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is // complete. -#if defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) +#if defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || defined(OS_BSD) #define MAYBE_CombinedShiftArrowPresses DISABLED_CombinedShiftArrowPresses #else #define MAYBE_CombinedShiftArrowPresses CombinedShiftArrowPresses diff --git a/www/chromium/files/patch-chrome_browser_performance__manager_policies_policy__features.cc b/www/chromium/files/patch-chrome_browser_performance__manager_policies_policy__features.cc index fa4a7c73ddef..ca0285da5f06 100644 --- a/www/chromium/files/patch-chrome_browser_performance__manager_policies_policy__features.cc +++ b/www/chromium/files/patch-chrome_browser_performance__manager_policies_policy__features.cc @@ -1,11 +1,11 @@ ---- chrome/browser/performance_manager/policies/policy_features.cc.orig 2021-03-12 23:57:18 UTC +--- chrome/browser/performance_manager/policies/policy_features.cc.orig 2021-04-14 18:40:54 UTC +++ chrome/browser/performance_manager/policies/policy_features.cc -@@ -125,7 +125,7 @@ const base::Feature kPageFreezingFromPerformanceManage - +@@ -126,7 +126,7 @@ const base::Feature kPageFreezingFromPerformanceManage const base::Feature kUrgentDiscardingFromPerformanceManager{ "UrgentDiscardingFromPerformanceManager", --#if BUILDFLAG(IS_CHROMEOS_ASH) || defined(OS_LINUX) -+#if BUILDFLAG(IS_CHROMEOS_ASH) || defined(OS_LINUX) || defined(OS_BSD) + #if BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS) || \ +- defined(OS_LINUX) ++ defined(OS_LINUX) || defined(OS_BSD) base::FEATURE_DISABLED_BY_DEFAULT #else base::FEATURE_ENABLED_BY_DEFAULT diff --git a/www/chromium/files/patch-chrome_browser_performance__monitor_process__metrics__history.cc b/www/chromium/files/patch-chrome_browser_performance__monitor_process__metrics__history.cc index fc5c3d110f1a..cc7af4945e4d 100644 --- a/www/chromium/files/patch-chrome_browser_performance__monitor_process__metrics__history.cc +++ b/www/chromium/files/patch-chrome_browser_performance__monitor_process__metrics__history.cc @@ -1,38 +1,11 @@ ---- chrome/browser/performance_monitor/process_metrics_history.cc.orig 2021-03-12 23:57:18 UTC +--- chrome/browser/performance_monitor/process_metrics_history.cc.orig 2021-04-14 18:40:54 UTC +++ chrome/browser/performance_monitor/process_metrics_history.cc -@@ -47,7 +47,7 @@ void ProcessMetricsHistory::SampleMetrics() { +@@ -42,7 +42,7 @@ ProcessMonitor::Metrics ProcessMetricsHistory::SampleM #if defined(OS_WIN) - disk_usage_ = process_metrics_->GetDiskUsageBytesPerSecond(); + metrics.disk_usage = process_metrics_->GetDiskUsageBytesPerSecond(); #endif -#if defined(OS_MAC) || defined(OS_LINUX) || defined(OS_CHROMEOS) || \ +#if defined(OS_MAC) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) || \ defined(OS_AIX) - idle_wakeups_ = process_metrics_->GetIdleWakeupsPerSecond(); + metrics.idle_wakeups = process_metrics_->GetIdleWakeupsPerSecond(); #endif -@@ -91,7 +91,7 @@ void ProcessMetricsHistory::UpdateHistograms() { - kDiskUsageHistogramMin, kDiskUsageHistogramMax, - kDiskUsageHistogramBucketCount); - #endif --#if defined(OS_MAC) || defined(OS_LINUX) || defined(OS_CHROMEOS) || \ -+#if defined(OS_MAC) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) || \ - defined(OS_AIX) - UMA_HISTOGRAM_COUNTS_10000( - "PerformanceMonitor.IdleWakeups.BrowserProcess", idle_wakeups_); -@@ -113,7 +113,7 @@ void ProcessMetricsHistory::UpdateHistograms() { - UMA_HISTOGRAM_BOOLEAN("PerformanceMonitor.HighCPU.RendererProcess", - true); - } --#if defined(OS_MAC) || defined(OS_LINUX) || defined(OS_CHROMEOS) || \ -+#if defined(OS_MAC) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) || \ - defined(OS_AIX) - UMA_HISTOGRAM_COUNTS_10000( - "PerformanceMonitor.IdleWakeups.RendererProcess", idle_wakeups_); -@@ -134,7 +134,7 @@ void ProcessMetricsHistory::UpdateHistograms() { - kHistogramBucketCount); - if (cpu_usage_ > kHighCPUUtilizationThreshold) - UMA_HISTOGRAM_BOOLEAN("PerformanceMonitor.HighCPU.GPUProcess", true); --#if defined(OS_MAC) || defined(OS_LINUX) || defined(OS_CHROMEOS) || \ -+#if defined(OS_MAC) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) || \ - defined(OS_AIX) - UMA_HISTOGRAM_COUNTS_10000("PerformanceMonitor.IdleWakeups.GPUProcess", - idle_wakeups_); diff --git a/www/chromium/files/patch-chrome_browser_performance__monitor_process__metrics__history.h b/www/chromium/files/patch-chrome_browser_performance__monitor_process__metrics__history.h deleted file mode 100644 index af0c64060238..000000000000 --- a/www/chromium/files/patch-chrome_browser_performance__monitor_process__metrics__history.h +++ /dev/null @@ -1,11 +0,0 @@ ---- chrome/browser/performance_monitor/process_metrics_history.h.orig 2021-03-12 23:57:18 UTC -+++ chrome/browser/performance_monitor/process_metrics_history.h -@@ -71,7 +71,7 @@ class ProcessMetricsHistory { - uint64_t disk_usage_ = 0; - #endif - --#if defined(OS_MAC) || defined(OS_LINUX) || defined(OS_CHROMEOS) || \ -+#if defined(OS_MAC) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) || \ - defined(OS_AIX) - int idle_wakeups_ = 0; - #endif diff --git a/www/chromium/files/patch-chrome_browser_performance__monitor_process__metrics__recorder.cc b/www/chromium/files/patch-chrome_browser_performance__monitor_process__metrics__recorder.cc new file mode 100644 index 000000000000..e55b3b7db91b --- /dev/null +++ b/www/chromium/files/patch-chrome_browser_performance__monitor_process__metrics__recorder.cc @@ -0,0 +1,29 @@ +--- chrome/browser/performance_monitor/process_metrics_recorder.cc.orig 2021-04-22 07:55:58 UTC ++++ chrome/browser/performance_monitor/process_metrics_recorder.cc +@@ -58,7 +58,7 @@ void ProcessMetricsRecorder::OnMetricsSampled( + kDiskUsageHistogramMin, kDiskUsageHistogramMax, + kDiskUsageHistogramBucketCount); + #endif +-#if defined(OS_MAC) || defined(OS_LINUX) || defined(OS_CHROMEOS) || \ ++#if defined(OS_MAC) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) || \ + defined(OS_AIX) + UMA_HISTOGRAM_COUNTS_10000( + "PerformanceMonitor.IdleWakeups.BrowserProcess", +@@ -82,7 +82,7 @@ void ProcessMetricsRecorder::OnMetricsSampled( + UMA_HISTOGRAM_BOOLEAN("PerformanceMonitor.HighCPU.RendererProcess", + true); + } +-#if defined(OS_MAC) || defined(OS_LINUX) || defined(OS_CHROMEOS) || \ ++#if defined(OS_MAC) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) || \ + defined(OS_AIX) + UMA_HISTOGRAM_COUNTS_10000( + "PerformanceMonitor.IdleWakeups.RendererProcess", +@@ -105,7 +105,7 @@ void ProcessMetricsRecorder::OnMetricsSampled( + kHistogramMax, kHistogramBucketCount); + if (metrics.cpu_usage > kHighCPUUtilizationThreshold) + UMA_HISTOGRAM_BOOLEAN("PerformanceMonitor.HighCPU.GPUProcess", true); +-#if defined(OS_MAC) || defined(OS_LINUX) || defined(OS_CHROMEOS) || \ ++#if defined(OS_MAC) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) || \ + defined(OS_AIX) + UMA_HISTOGRAM_COUNTS_10000("PerformanceMonitor.IdleWakeups.GPUProcess", + metrics.idle_wakeups); diff --git a/www/chromium/files/patch-chrome_browser_performance__monitor_process__monitor.cc b/www/chromium/files/patch-chrome_browser_performance__monitor_process__monitor.cc new file mode 100644 index 000000000000..f361a737689c --- /dev/null +++ b/www/chromium/files/patch-chrome_browser_performance__monitor_process__monitor.cc @@ -0,0 +1,11 @@ +--- chrome/browser/performance_monitor/process_monitor.cc.orig 2021-04-22 07:56:37 UTC ++++ chrome/browser/performance_monitor/process_monitor.cc +@@ -82,7 +82,7 @@ ProcessMonitor::Metrics& operator+=(ProcessMonitor::Me + lhs.disk_usage += rhs.disk_usage; + #endif + +-#if defined(OS_MAC) || defined(OS_LINUX) || defined(OS_CHROMEOS) || \ ++#if defined(OS_MAC) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) || \ + defined(OS_AIX) + lhs.idle_wakeups += rhs.idle_wakeups; + #endif diff --git a/www/chromium/files/patch-chrome_browser_performance__monitor_process__monitor.h b/www/chromium/files/patch-chrome_browser_performance__monitor_process__monitor.h new file mode 100644 index 000000000000..c4ab8f7e27c7 --- /dev/null +++ b/www/chromium/files/patch-chrome_browser_performance__monitor_process__monitor.h @@ -0,0 +1,11 @@ +--- chrome/browser/performance_monitor/process_monitor.h.orig 2021-04-22 07:56:51 UTC ++++ chrome/browser/performance_monitor/process_monitor.h +@@ -51,7 +51,7 @@ class ProcessMonitor { + uint64_t disk_usage = 0; + #endif + +-#if defined(OS_MAC) || defined(OS_LINUX) || defined(OS_CHROMEOS) || \ ++#if defined(OS_MAC) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) || \ + defined(OS_AIX) + // Returns the number of average idle cpu wakeups per second since the last + // time the metric was sampled. diff --git a/www/chromium/files/patch-chrome_browser_plugins_plugin__info__host__impl.cc b/www/chromium/files/patch-chrome_browser_plugins_plugin__info__host__impl.cc deleted file mode 100644 index 98274b15c1fc..000000000000 --- a/www/chromium/files/patch-chrome_browser_plugins_plugin__info__host__impl.cc +++ /dev/null @@ -1,11 +0,0 @@ ---- chrome/browser/plugins/plugin_info_host_impl.cc.orig 2021-03-12 23:57:18 UTC -+++ chrome/browser/plugins/plugin_info_host_impl.cc -@@ -379,7 +379,7 @@ void PluginInfoHostImpl::ComponentPluginLookupDone( - std::unique_ptr cus_plugin_info) { - if (cus_plugin_info) { - output->status = chrome::mojom::PluginStatus::kComponentUpdateRequired; --#if defined(OS_LINUX) || defined(OS_CHROMEOS) -+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) - if (cus_plugin_info->version != base::Version("0")) { - output->status = chrome::mojom::PluginStatus::kRestartRequired; - } diff --git a/www/chromium/files/patch-chrome_browser_plugins_plugins__resource__service.cc b/www/chromium/files/patch-chrome_browser_plugins_plugins__resource__service.cc index 089a8c4da522..c741db0784ac 100644 --- a/www/chromium/files/patch-chrome_browser_plugins_plugins__resource__service.cc +++ b/www/chromium/files/patch-chrome_browser_plugins_plugins__resource__service.cc @@ -1,11 +1,11 @@ ---- chrome/browser/plugins/plugins_resource_service.cc.orig 2021-03-12 23:57:18 UTC +--- chrome/browser/plugins/plugins_resource_service.cc.orig 2021-04-14 18:40:54 UTC +++ chrome/browser/plugins/plugins_resource_service.cc @@ -62,7 +62,7 @@ GURL GetPluginsServerURL() { filename = "plugins_win.json"; #elif BUILDFLAG(IS_CHROMEOS_ASH) filename = "plugins_chromeos.json"; -#elif defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) +#elif defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || defined(OS_BSD) filename = "plugins_linux.json"; #elif defined(OS_MAC) filename = "plugins_mac.json"; diff --git a/www/chromium/files/patch-chrome_browser_policy_browser__signin__policy__handler.cc b/www/chromium/files/patch-chrome_browser_policy_browser__signin__policy__handler.cc index 1ffba3d3fb9b..163f35d9d676 100644 --- a/www/chromium/files/patch-chrome_browser_policy_browser__signin__policy__handler.cc +++ b/www/chromium/files/patch-chrome_browser_policy_browser__signin__policy__handler.cc @@ -1,11 +1,11 @@ ---- chrome/browser/policy/browser_signin_policy_handler.cc.orig 2021-03-12 23:57:18 UTC +--- chrome/browser/policy/browser_signin_policy_handler.cc.orig 2021-04-14 18:40:54 UTC +++ chrome/browser/policy/browser_signin_policy_handler.cc @@ -52,7 +52,7 @@ void BrowserSigninPolicyHandler::ApplyPolicySettings(c } switch (static_cast(int_value)) { case BrowserSigninMode::kForced: -#if !defined(OS_LINUX) && !defined(OS_CHROMEOS) +#if !defined(OS_LINUX) && !defined(OS_CHROMEOS) && !defined(OS_BSD) prefs->SetValue(prefs::kForceBrowserSignin, base::Value(true)); #endif FALLTHROUGH; diff --git a/www/chromium/files/patch-chrome_browser_policy_chrome__browser__cloud__management__controller__desktop.cc b/www/chromium/files/patch-chrome_browser_policy_chrome__browser__cloud__management__controller__desktop.cc index 279da02a8aa0..6adc6fb7993f 100644 --- a/www/chromium/files/patch-chrome_browser_policy_chrome__browser__cloud__management__controller__desktop.cc +++ b/www/chromium/files/patch-chrome_browser_policy_chrome__browser__cloud__management__controller__desktop.cc @@ -1,23 +1,23 @@ ---- chrome/browser/policy/chrome_browser_cloud_management_controller_desktop.cc.orig 2021-03-12 23:57:18 UTC +--- chrome/browser/policy/chrome_browser_cloud_management_controller_desktop.cc.orig 2021-04-14 18:40:54 UTC +++ chrome/browser/policy/chrome_browser_cloud_management_controller_desktop.cc -@@ -43,9 +43,9 @@ +@@ -45,9 +45,9 @@ #include "chrome/browser/policy/browser_dm_token_storage_mac.h" #endif // defined(OS_MAC) -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) #include "chrome/browser/policy/browser_dm_token_storage_linux.h" -#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) +#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) #if defined(OS_WIN) #include "chrome/browser/policy/browser_dm_token_storage_win.h" -@@ -176,7 +176,7 @@ void ChromeBrowserCloudManagementControllerDesktop:: +@@ -178,7 +178,7 @@ void ChromeBrowserCloudManagementControllerDesktop:: #if defined(OS_MAC) storage_delegate = std::make_unique(); -#elif defined(OS_LINUX) || defined(OS_CHROMEOS) +#elif defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) storage_delegate = std::make_unique(); #elif defined(OS_WIN) storage_delegate = std::make_unique(); diff --git a/www/chromium/files/patch-chrome_browser_policy_configuration__policy__handler__list__factory.cc b/www/chromium/files/patch-chrome_browser_policy_configuration__policy__handler__list__factory.cc index 9df20861015c..920247d2dfe6 100644 --- a/www/chromium/files/patch-chrome_browser_policy_configuration__policy__handler__list__factory.cc +++ b/www/chromium/files/patch-chrome_browser_policy_configuration__policy__handler__list__factory.cc @@ -1,30 +1,68 @@ ---- chrome/browser/policy/configuration_policy_handler_list_factory.cc.orig 2021-03-12 23:57:18 UTC +--- chrome/browser/policy/configuration_policy_handler_list_factory.cc.orig 2021-04-14 18:40:54 UTC +++ chrome/browser/policy/configuration_policy_handler_list_factory.cc -@@ -1233,11 +1233,11 @@ const PolicyToPreferenceMapEntry kSimplePolicyMap[] = +@@ -1242,11 +1242,11 @@ const PolicyToPreferenceMapEntry kSimplePolicyMap[] = base::Value::Type::BOOLEAN }, #endif // !defined(OS_MAC) && !BUILDFLAG(IS_CHROMEOS_ASH) -#if defined(OS_LINUX) || defined(OS_MAC) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_MAC) || defined(OS_CHROMEOS) || defined(OS_BSD) { key::kAuthNegotiateDelegateByKdcPolicy, prefs::kAuthNegotiateDelegateByKdcPolicy, base::Value::Type::BOOLEAN }, -#endif // defined(OS_LINUX) || defined(OS_MAC) || defined(OS_CHROMEOS) +#endif // defined(OS_LINUX) || defined(OS_MAC) || defined(OS_CHROMEOS) || defined(OS_BSD) #if !defined(OS_MAC) { key::kFullscreenAllowed, -@@ -1282,11 +1282,11 @@ const PolicyToPreferenceMapEntry kSimplePolicyMap[] = - #endif // BUILDFLAG(ENABLE_SPELLCHECK) +@@ -1594,7 +1594,7 @@ std::unique_ptr BuildH - // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch of lacros-chrome is complete. + // TODO(crbug/1169547) Remove `BUILDFLAG(IS_CHROMEOS_LACROS)` once the + // migration is complete. +-#if defined(OS_LINUX) || defined(OS_MAC) || defined(OS_WIN) || \ ++#if defined(OS_LINUX) || defined(OS_MAC) || defined(OS_WIN) || defined(OS_BSD) || \ + BUILDFLAG(IS_CHROMEOS_LACROS) + handlers->AddHandler( + std::make_unique< +@@ -1602,7 +1602,7 @@ std::unique_ptr BuildH + key::kContextAwareAccessSignalsAllowlist, + enterprise_connectors::kContextAwareAccessSignalsAllowlistPref, + chrome_schema)); +-#endif // defined(OS_LINUX) || defined(OS_MAC) || defined(OS_WIN) ++#endif // defined(OS_LINUX) || defined(OS_MAC) || defined(OS_WIN) || defined(OS_BSD) + + #if BUILDFLAG(IS_CHROMEOS_ASH) + std::vector> +@@ -1950,13 +1950,13 @@ std::unique_ptr BuildH + SimpleSchemaValidatingPolicyHandler::MANDATORY_ALLOWED)); + + // TODO(crbug.com/1175651): Remove BUILDFLAG(IS_CHROMEOS_LACROS) +-#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || defined(OS_BSD) + handlers->AddHandler(std::make_unique( + key::kWebAppSettings, prefs::kWebAppSettings, chrome_schema, + SCHEMA_ALLOW_UNKNOWN, + SimpleSchemaValidatingPolicyHandler::RECOMMENDED_PROHIBITED, + SimpleSchemaValidatingPolicyHandler::MANDATORY_ALLOWED)); +-#endif // defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) ++#endif // defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || defined(OS_BSD) + + #endif // BUILDFLAG(ENABLE_EXTENSIONS) + +@@ -1969,7 +1969,7 @@ std::unique_ptr BuildH + + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. -#if defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) +#if defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || defined(OS_BSD) - { key::kAllowNativeNotifications, - prefs::kAllowNativeNotifications, - base::Value::Type::BOOLEAN }, --#endif // defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) -+#endif // defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || deined(OS_BSD) + handlers->AddHandler(std::make_unique( + std::make_unique(key::kAllowNativeNotifications, + prefs::kAllowNativeNotifications, +@@ -1977,7 +1977,7 @@ std::unique_ptr BuildH + std::make_unique(key::kAllowSystemNotifications, + prefs::kAllowSystemNotifications, + base::Value::Type::BOOLEAN))); +-#endif // defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#endif // defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || defined(OS_BSD) - { key::kScrollToTextFragmentEnabled, - prefs::kScrollToTextFragmentEnabled, + return handlers; + } diff --git a/www/chromium/files/patch-chrome_browser_policy_device__management__service__configuration.cc b/www/chromium/files/patch-chrome_browser_policy_device__management__service__configuration.cc index 1e914d8434c2..56bd7bddd290 100644 --- a/www/chromium/files/patch-chrome_browser_policy_device__management__service__configuration.cc +++ b/www/chromium/files/patch-chrome_browser_policy_device__management__service__configuration.cc @@ -1,20 +1,20 @@ ---- chrome/browser/policy/device_management_service_configuration.cc.orig 2021-03-12 23:57:18 UTC +--- chrome/browser/policy/device_management_service_configuration.cc.orig 2021-04-14 18:40:54 UTC +++ chrome/browser/policy/device_management_service_configuration.cc @@ -20,7 +20,7 @@ #endif #if defined(OS_WIN) || defined(OS_MAC) || \ - ((defined(OS_LINUX) || defined(OS_CHROMEOS)) && !defined(OS_ANDROID)) + ((defined(OS_LINUX) || defined(OS_CHROMEOS)) && !defined(OS_ANDROID)) || defined(OS_BSD) #include "chrome/browser/enterprise/connectors/common.h" #include "chrome/browser/enterprise/connectors/connectors_service.h" #endif @@ -98,7 +98,7 @@ std::string DeviceManagementServiceConfiguration::GetReportingConnectorServerUrl( content::BrowserContext* context) { #if defined(OS_WIN) || defined(OS_MAC) || \ - ((defined(OS_LINUX) || defined(OS_CHROMEOS)) && !defined(OS_ANDROID)) + ((defined(OS_LINUX) || defined(OS_CHROMEOS)) && !defined(OS_ANDROID)) || defined(OS_BSD) auto* service = enterprise_connectors::ConnectorsServiceFactory::GetForBrowserContext( context); diff --git a/www/chromium/files/patch-chrome_browser_prefs_browser__prefs.cc b/www/chromium/files/patch-chrome_browser_prefs_browser__prefs.cc index bcd864746b74..d01c259ba409 100644 --- a/www/chromium/files/patch-chrome_browser_prefs_browser__prefs.cc +++ b/www/chromium/files/patch-chrome_browser_prefs_browser__prefs.cc @@ -1,20 +1,37 @@ ---- chrome/browser/prefs/browser_prefs.cc.orig 2021-03-12 23:57:18 UTC +--- chrome/browser/prefs/browser_prefs.cc.orig 2021-04-20 18:58:26 UTC +++ chrome/browser/prefs/browser_prefs.cc -@@ -388,7 +388,7 @@ +@@ -383,14 +383,14 @@ + #endif + + #if defined(OS_WIN) || defined(OS_MAC) || \ +- (defined(OS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)) ++ (defined(OS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)) || defined(OS_BSD) + #include "chrome/browser/web_applications/components/url_handler_prefs.h" + #endif + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch // of lacros-chrome is complete. #if defined(OS_WIN) || defined(OS_MAC) || \ - (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) + (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || defined(OS_BSD) #include "chrome/browser/browser_switcher/browser_switcher_prefs.h" #endif -@@ -1080,7 +1080,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySync +@@ -865,7 +865,7 @@ void RegisterLocalState(PrefRegistrySimple* registry) + #endif // defined(OS_WIN) + + #if defined(OS_WIN) || defined(OS_MAC) || \ +- (defined(OS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)) ++ (defined(OS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS)) || defined(OS_BSD) + web_app::UrlHandlerPrefs::RegisterLocalStatePrefs(registry); + #endif + +@@ -1140,7 +1140,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySync // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch // of lacros-chrome is complete. #if defined(OS_WIN) || defined(OS_MAC) || \ - (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) + (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || defined(OS_BSD) browser_switcher::BrowserSwitcherPrefs::RegisterProfilePrefs(registry); #endif diff --git a/www/chromium/files/patch-chrome_browser_prefs_pref__service__incognito__allowlist.cc b/www/chromium/files/patch-chrome_browser_prefs_pref__service__incognito__allowlist.cc index b75c93b9a804..e3ce555560e9 100644 --- a/www/chromium/files/patch-chrome_browser_prefs_pref__service__incognito__allowlist.cc +++ b/www/chromium/files/patch-chrome_browser_prefs_pref__service__incognito__allowlist.cc @@ -1,11 +1,11 @@ ---- chrome/browser/prefs/pref_service_incognito_allowlist.cc.orig 2021-03-12 23:57:18 UTC +--- chrome/browser/prefs/pref_service_incognito_allowlist.cc.orig 2021-04-14 18:40:54 UTC +++ chrome/browser/prefs/pref_service_incognito_allowlist.cc -@@ -136,7 +136,7 @@ const char* const kPersistentPrefNames[] = { +@@ -138,7 +138,7 @@ const char* const kPersistentPrefNames[] = { // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch // of lacros-chrome is complete. -#if defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) +#if defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || defined(OS_BSD) // Toggleing custom frames affects all open windows in the profile, hence // should be written to the regular profile when changed in incognito mode. prefs::kUseCustomChromeFrame, diff --git a/www/chromium/files/patch-chrome_browser_printing_print__job__worker.cc b/www/chromium/files/patch-chrome_browser_printing_print__job__worker.cc index a459cd5e7693..a6255af471a6 100644 --- a/www/chromium/files/patch-chrome_browser_printing_print__job__worker.cc +++ b/www/chromium/files/patch-chrome_browser_printing_print__job__worker.cc @@ -1,20 +1,20 @@ ---- chrome/browser/printing/print_job_worker.cc.orig 2021-03-12 23:57:18 UTC +--- chrome/browser/printing/print_job_worker.cc.orig 2021-04-14 18:40:54 UTC +++ chrome/browser/printing/print_job_worker.cc @@ -224,7 +224,7 @@ void PrintJobWorker::UpdatePrintSettings(base::Value n crash_key = std::make_unique( print_backend->GetPrinterDriverInfo(printer_name)); -#if (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) && defined(USE_CUPS) +#if (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || defined(OS_BSD)) && defined(USE_CUPS) PrinterBasicInfo basic_info; if (print_backend->GetPrinterBasicInfo(printer_name, &basic_info)) { base::Value advanced_settings(base::Value::Type::DICTIONARY); @@ -234,7 +234,7 @@ void PrintJobWorker::UpdatePrintSettings(base::Value n new_settings.SetKey(kSettingAdvancedSettings, std::move(advanced_settings)); } -#endif // (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) && +#endif // (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || defined(OS_BSD)) && // defined(USE_CUPS) } diff --git a/www/chromium/files/patch-chrome_browser_process__singleton__posix.cc b/www/chromium/files/patch-chrome_browser_process__singleton__posix.cc index f78dd938359c..6d673f8961bc 100644 --- a/www/chromium/files/patch-chrome_browser_process__singleton__posix.cc +++ b/www/chromium/files/patch-chrome_browser_process__singleton__posix.cc @@ -1,35 +1,35 @@ ---- chrome/browser/process_singleton_posix.cc.orig 2021-03-12 23:57:18 UTC +--- chrome/browser/process_singleton_posix.cc.orig 2021-04-14 18:40:54 UTC +++ chrome/browser/process_singleton_posix.cc @@ -95,12 +95,12 @@ #include "net/base/network_interfaces.h" #include "ui/base/l10n/l10n_util.h" -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) #include "chrome/browser/ui/process_singleton_dialog_linux.h" #endif #if defined(TOOLKIT_VIEWS) && \ - (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) + (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || defined(OS_BSD)) #include "ui/views/linux_ui/linux_ui.h" #endif @@ -297,7 +297,7 @@ bool DisplayProfileInUseError(const base::FilePath& lo if (g_disable_prompt) return g_user_opted_unlock_in_use_profile; -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) base::string16 relaunch_button_text = l10n_util::GetStringUTF16( IDS_PROFILE_IN_USE_LINUX_RELAUNCH); return ShowProcessSingletonDialog(error, relaunch_button_text); @@ -874,7 +874,7 @@ ProcessSingleton::NotifyResult ProcessSingleton::Notif return PROCESS_NONE; } else if (strncmp(buf, kACKToken, base::size(kACKToken) - 1) == 0) { #if defined(TOOLKIT_VIEWS) && \ - (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) + (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || defined(OS_BSD)) // Likely NULL in unit tests. views::LinuxUI* linux_ui = views::LinuxUI::instance(); if (linux_ui) diff --git a/www/chromium/files/patch-chrome_browser_profiles_chrome__browser__main__extra__parts__profiles.cc b/www/chromium/files/patch-chrome_browser_profiles_chrome__browser__main__extra__parts__profiles.cc index d6e69643b0fc..c34407ab3782 100644 --- a/www/chromium/files/patch-chrome_browser_profiles_chrome__browser__main__extra__parts__profiles.cc +++ b/www/chromium/files/patch-chrome_browser_profiles_chrome__browser__main__extra__parts__profiles.cc @@ -1,11 +1,11 @@ ---- chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc.orig 2021-03-12 23:57:18 UTC +--- chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc.orig 2021-04-14 18:40:54 UTC +++ chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc -@@ -337,7 +337,7 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -345,7 +345,7 @@ void ChromeBrowserMainExtraPartsProfiles:: // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch // of lacros-chrome is complete. #if defined(OS_WIN) || defined(OS_MAC) || \ - (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) + (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || defined(OS_BSD) metrics::DesktopProfileSessionDurationsServiceFactory::GetInstance(); #endif ModelTypeStoreServiceFactory::GetInstance(); diff --git a/www/chromium/files/patch-chrome_browser_profiles_profile.cc b/www/chromium/files/patch-chrome_browser_profiles_profile.cc index 7a0eb7be5283..412795ec22f9 100644 --- a/www/chromium/files/patch-chrome_browser_profiles_profile.cc +++ b/www/chromium/files/patch-chrome_browser_profiles_profile.cc @@ -1,11 +1,11 @@ ---- chrome/browser/profiles/profile.cc.orig 2021-03-12 23:57:18 UTC +--- chrome/browser/profiles/profile.cc.orig 2021-04-14 18:40:54 UTC +++ chrome/browser/profiles/profile.cc -@@ -360,7 +360,7 @@ bool Profile::IsIncognitoProfile() const { +@@ -356,7 +356,7 @@ bool Profile::IsIncognitoProfile() const { bool Profile::IsEphemeralGuestProfileEnabled() { // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch // of lacros-chrome is complete. -#if defined(OS_WIN) || (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || \ +#if defined(OS_WIN) || (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || defined(OS_BSD) || \ defined(OS_MAC) return base::FeatureList::IsEnabled( features::kEnableEphemeralGuestProfilesOnDesktop); diff --git a/www/chromium/files/patch-chrome_browser_profiles_profile__attributes__entry.cc b/www/chromium/files/patch-chrome_browser_profiles_profile__attributes__entry.cc index 951c83a99ba1..9bae83b9550b 100644 --- a/www/chromium/files/patch-chrome_browser_profiles_profile__attributes__entry.cc +++ b/www/chromium/files/patch-chrome_browser_profiles_profile__attributes__entry.cc @@ -1,11 +1,11 @@ ---- chrome/browser/profiles/profile_attributes_entry.cc.orig 2021-03-12 23:57:18 UTC +--- chrome/browser/profiles/profile_attributes_entry.cc.orig 2021-04-14 18:40:54 UTC +++ chrome/browser/profiles/profile_attributes_entry.cc -@@ -159,7 +159,7 @@ void ProfileAttributesEntry::Initialize(ProfileInfoCac +@@ -157,7 +157,7 @@ void ProfileAttributesEntry::Initialize(ProfileInfoCac if (is_force_signin_enabled_) { if (!IsAuthenticated()) is_force_signin_profile_locked_ = true; -#if defined(OS_MAC) || defined(OS_LINUX) || defined(OS_CHROMEOS) || \ +#if defined(OS_MAC) || defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) || \ defined(OS_WIN) } else if (IsSigninRequired()) { // Profiles that require signin in the absence of an enterprise policy are diff --git a/www/chromium/files/patch-chrome_browser_profiles_profiles__state.cc b/www/chromium/files/patch-chrome_browser_profiles_profiles__state.cc index 43c751460e17..1ad037961f9b 100644 --- a/www/chromium/files/patch-chrome_browser_profiles_profiles__state.cc +++ b/www/chromium/files/patch-chrome_browser_profiles_profiles__state.cc @@ -1,11 +1,11 @@ ---- chrome/browser/profiles/profiles_state.cc.orig 2021-03-12 23:57:18 UTC +--- chrome/browser/profiles/profiles_state.cc.orig 2021-04-14 18:40:54 UTC +++ chrome/browser/profiles/profiles_state.cc -@@ -180,7 +180,7 @@ bool IsRegularOrGuestSession(Browser* browser) { +@@ -179,7 +179,7 @@ bool IsRegularOrGuestSession(Browser* browser) { bool IsGuestModeRequested(const base::CommandLine& command_line, PrefService* local_state, bool show_warning) { -#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_WIN) || \ +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_WIN) || defined(OS_BSD) || \ defined(OS_MAC) DCHECK(local_state); diff --git a/www/chromium/files/patch-chrome_browser_renderer__context__menu_render__view__context__menu.cc b/www/chromium/files/patch-chrome_browser_renderer__context__menu_render__view__context__menu.cc index 802cb76d4d9f..13da6c20f8e0 100644 --- a/www/chromium/files/patch-chrome_browser_renderer__context__menu_render__view__context__menu.cc +++ b/www/chromium/files/patch-chrome_browser_renderer__context__menu_render__view__context__menu.cc @@ -1,11 +1,11 @@ ---- chrome/browser/renderer_context_menu/render_view_context_menu.cc.orig 2021-03-12 23:57:18 UTC +--- chrome/browser/renderer_context_menu/render_view_context_menu.cc.orig 2021-04-14 18:40:54 UTC +++ chrome/browser/renderer_context_menu/render_view_context_menu.cc -@@ -2117,7 +2117,7 @@ bool RenderViewContextMenu::IsCommandIdEnabled(int id) +@@ -2144,7 +2144,7 @@ bool RenderViewContextMenu::IsCommandIdEnabled(int id) case IDC_CHECK_SPELLING_WHILE_TYPING: return prefs->GetBoolean(spellcheck::prefs::kSpellCheckEnable); -#if !defined(OS_MAC) && defined(OS_POSIX) +#if !defined(OS_MAC) && !defined(OS_BSD) && defined(OS_POSIX) // TODO(suzhe): this should not be enabled for password fields. case IDC_INPUT_METHODS_MENU: return true; diff --git a/www/chromium/files/patch-chrome_browser_renderer__preferences__util.cc b/www/chromium/files/patch-chrome_browser_renderer__preferences__util.cc index 85d0d7208ee7..0b18255916a3 100644 --- a/www/chromium/files/patch-chrome_browser_renderer__preferences__util.cc +++ b/www/chromium/files/patch-chrome_browser_renderer__preferences__util.cc @@ -1,29 +1,29 @@ ---- chrome/browser/renderer_preferences_util.cc.orig 2021-03-12 23:57:18 UTC +--- chrome/browser/renderer_preferences_util.cc.orig 2021-04-14 18:40:54 UTC +++ chrome/browser/renderer_preferences_util.cc -@@ -35,7 +35,7 @@ +@@ -38,7 +38,7 @@ #include "ui/base/cocoa/defaults_utils.h" #endif -#if defined(USE_AURA) && (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) +#if defined(USE_AURA) && (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || defined(OS_BSD)) #include "chrome/browser/themes/theme_service.h" #include "chrome/browser/themes/theme_service_factory.h" #include "ui/views/linux_ui/linux_ui.h" -@@ -154,7 +154,7 @@ void UpdateFromSystemSettings(blink::RendererPreferenc +@@ -167,7 +167,7 @@ void UpdateFromSystemSettings(blink::RendererPreferenc prefs->caret_blink_interval = interval; #endif -#if defined(USE_AURA) && (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) +#if defined(USE_AURA) && (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || defined(OS_BSD)) views::LinuxUI* linux_ui = views::LinuxUI::instance(); if (linux_ui) { if (ThemeServiceFactory::GetForProfile(profile)->UsingSystemTheme()) { -@@ -173,7 +173,7 @@ void UpdateFromSystemSettings(blink::RendererPreferenc +@@ -186,7 +186,7 @@ void UpdateFromSystemSettings(blink::RendererPreferenc } #endif -#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) || \ +#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) || defined(OS_BSD) || \ defined(OS_WIN) content::UpdateFontRendererPreferencesFromSystemSettings(prefs); #endif diff --git a/www/chromium/files/patch-chrome_browser_resources_settings_appearance__page_appearance__browser__proxy.js b/www/chromium/files/patch-chrome_browser_resources_settings_appearance__page_appearance__browser__proxy.js index 40e53f4f6dd7..c797763f4518 100644 --- a/www/chromium/files/patch-chrome_browser_resources_settings_appearance__page_appearance__browser__proxy.js +++ b/www/chromium/files/patch-chrome_browser_resources_settings_appearance__page_appearance__browser__proxy.js @@ -1,20 +1,20 @@ ---- chrome/browser/resources/settings/appearance_page/appearance_browser_proxy.js.orig 2021-03-12 23:57:18 UTC +--- chrome/browser/resources/settings/appearance_page/appearance_browser_proxy.js.orig 2021-04-14 18:40:54 UTC +++ chrome/browser/resources/settings/appearance_page/appearance_browser_proxy.js @@ -23,7 +23,7 @@ export class AppearanceBrowserProxy { useDefaultTheme() {} - // + // useSystemTheme() {} // @@ -63,7 +63,7 @@ export class AppearanceBrowserProxyImpl { chrome.send('useDefaultTheme'); } - // + // /** @override */ useSystemTheme() { chrome.send('useSystemTheme'); diff --git a/www/chromium/files/patch-chrome_browser_resources_settings_appearance__page_appearance__page.html b/www/chromium/files/patch-chrome_browser_resources_settings_appearance__page_appearance__page.html index 752d4a350d5f..7c0f76e70945 100644 --- a/www/chromium/files/patch-chrome_browser_resources_settings_appearance__page_appearance__page.html +++ b/www/chromium/files/patch-chrome_browser_resources_settings_appearance__page_appearance__page.html @@ -1,29 +1,29 @@ ---- chrome/browser/resources/settings/appearance_page/appearance_page.html.orig 2021-03-12 23:57:18 UTC +--- chrome/browser/resources/settings/appearance_page/appearance_page.html.orig 2021-04-14 18:40:54 UTC +++ chrome/browser/resources/settings/appearance_page/appearance_page.html @@ -27,7 +27,7 @@ - + - +