diff --git a/devel/electron39/Makefile b/devel/electron39/Makefile index 0adb82d2a3fe..2ac294794dfb 100644 --- a/devel/electron39/Makefile +++ b/devel/electron39/Makefile @@ -1,452 +1,451 @@ PORTNAME= electron DISTVERSIONPREFIX= v DISTVERSION= ${ELECTRON_VER} -PORTREVISION= 1 PULSEMV= 16 PULSEV= ${PULSEMV}.1 CATEGORIES= devel MASTER_SITES= https://commondatastorage.googleapis.com/chromium-browser-official/:chromium \ https://freedesktop.org/software/pulseaudio/releases/:pulseaudio PKGNAMESUFFIX= ${ELECTRON_VER_MAJOR} DISTFILES= chromium-${CHROMIUM_VER}${EXTRACT_SUFX}:chromium \ pulseaudio-${PULSEV}.tar.gz:pulseaudio \ electron-yarn-cache-${ELECTRON_VER}${EXTRACT_SUFX}:prefetch DIST_SUBDIR= ${PORTNAME} MAINTAINER= tagattie@FreeBSD.org COMMENT= Build cross-platform desktop apps with JavaScript, HTML, and CSS WWW= https://electronjs.org/ LICENSE= BSD3CLAUSE LGPL21 MPL11 MIT LICENSE_COMB= multi LICENSE_FILE= ${WRKSRC}/electron/LICENSE BROKEN_i386= fetch fails: node process stalls during fetch phase and eats up all CPUs ONLY_FOR_ARCHS= aarch64 amd64 i386 FETCH_DEPENDS= yarn${NODEJS_SUFFIX}>0:www/yarn${NODEJS_SUFFIX} EXTRACT_DEPENDS=yarn${NODEJS_SUFFIX}>0:www/yarn${NODEJS_SUFFIX} PATCH_DEPENDS= git:devel/git \ jq:textproc/jq BUILD_DEPENDS= gperf:devel/gperf \ bindgen:devel/rust-bindgen-cli \ yasm:devel/yasm \ ${LOCALBASE}/libdata/pkgconfig/dri.pc:graphics/mesa-dri \ rustc:lang/rust \ ${LOCALBASE}/include/linux/videodev2.h:multimedia/v4l_compat \ node${NODEJS_VERSION}>0:www/node${NODEJS_VERSION} \ npm${NODEJS_SUFFIX}>0:www/npm${NODEJS_SUFFIX} LIB_DEPENDS= libatk-bridge-2.0.so:accessibility/at-spi2-core \ libatspi.so:accessibility/at-spi2-core \ libFLAC.so:audio/flac \ libopus.so:audio/opus \ libdbus-1.so:devel/dbus \ libepoll-shim.so:devel/libepoll-shim \ libevent.so:devel/libevent \ libffi.so:devel/libffi \ libnotify.so:devel/libnotify \ libpci.so:devel/libpci \ libnspr4.so:devel/nspr \ libre2.so:devel/re2 \ libdrm.so:graphics/libdrm \ libpng.so:graphics/png \ libwayland-client.so:graphics/wayland \ libwebp.so:graphics/webp \ libdav1d.so:multimedia/dav1d \ libva.so:multimedia/libva \ libopenh264.so:multimedia/openh264 \ libfreetype.so:print/freetype2 \ libharfbuzz.so:print/harfbuzz \ libsecret-1.so:security/libsecret \ libnss3.so:security/nss \ libexpat.so:textproc/expat2 \ libxkbcommon.so:x11/libxkbcommon \ libxshmfence.so:x11/libxshmfence \ libfontconfig.so:x11-fonts/fontconfig RUN_DEPENDS= xdg-open:devel/xdg-utils TEST_DEPENDS= git:devel/git \ ${PYTHON_PKGNAMEPREFIX}python-dbusmock>0:devel/py-python-dbusmock@${PY_FLAVOR} \ npm${NODEJS_SUFFIX}>0:www/npm${NODEJS_SUFFIX} USES= bison compiler:c++17-lang cpe display:test gettext-tools gl \ gmake gnome iconv:wchar_t jpeg localbase:ldflags ninja \ nodejs:22,build pkgconfig python:build,test qt:5 shebangfix \ tar:xz xorg CPE_VENDOR= electronjs USE_GITHUB= yes GH_TUPLE= nodejs:node:v${NODE_VER}:node \ nodejs:nan:${NAN_VER}:nan \ Squirrel:Squirrel.Mac:${SQUIRREL_MAC_VER}:squirrel_mac \ ReactiveCocoa:ReactiveObjC:${REACTIVEOBJC_VER}:reactiveobjc \ Mantle:Mantle:${MANTLE_VER}:mantle \ EngFlow:reclient-configs:${ENGFLOW_RECLIENT_CONFIGS_VER}:reclient_configs USE_GL= gbm gl glesv2 USE_GNOME= atk cairo gdkpixbuf gtk30 libxml2 libxslt pango USE_XORG= x11 xcb xcomposite xcursor xdamage xext xfixes xi xrandr \ xrender xscrnsaver xtst USE_QT= buildtools:build core:build widgets:build SHEBANG_FILES= chrome/tools/build/linux/chrome-wrapper buildtools/linux64/clang-format MAKE_ARGS= -C out/${BUILDTYPE} MAKE_ENV+= C_INCLUDE_PATH=${LOCALBASE}/include \ CPLUS_INCLUDE_PATH=${LOCALBASE}/include ALL_TARGET= electron electron:node_headers POST_BUILD_TARGETS= licenses version POST_BUILD_DIST_TARGETS=electron_dist_zip electron_chromedriver_zip \ electron_mksnapshot_zip DATADIR= ${PREFIX}/share/${PORTNAME}${PKGNAMESUFFIX} BINARY_ALIAS= python3=${PYTHON_CMD} BUNDLE_LIBS= yes NO_WRKSUBDIR= yes WRKSRC_SUBDIR= src GN_ARGS+= clang_use_chrome_plugins=false \ enable_backup_ref_ptr_support=false \ enable_hangout_services_extension=true \ enable_remoting=false \ fatal_linker_warnings=false \ icu_use_data_file=false \ is_clang=true \ moc_qt5_path="${QT_TOOLDIR}/moc" \ optimize_webui=true \ toolkit_views=true \ treat_warnings_as_errors=false \ use_allocator_shim=false \ use_aura=true \ use_custom_libcxx=true \ use_custom_libunwind=true \ use_lld=true \ use_partition_alloc=true \ use_partition_alloc_as_malloc=false \ use_qt5=true \ use_sysroot=false \ use_system_freetype=false \ use_system_harfbuzz=true \ use_system_libffi=true \ use_system_libjpeg=true \ use_udev=false \ chrome_pgo_phase=0 \ extra_cflags="${CFLAGS}" \ extra_cxxflags="${CXXFLAGS} -I${LOCALBASE}/include/libepoll-shim ${PINCLUDES}" \ extra_ldflags="${LDFLAGS}" \ ffmpeg_branding="${FFMPEG_BRAND}" \ override_electron_version="${ELECTRON_VER}" # TODO: investigate building with these options: # use_system_minigbm GN_BOOTSTRAP_FLAGS= --no-clean --no-rebuild --skip-generate-buildfiles PLIST_SUB= ELECTRON_VER=${ELECTRON_VER} \ ELECTRON_VER_MAJOR=${ELECTRON_VER_MAJOR} OPTIONS_DEFINE= CODECS CUPS DEBUG DIST DRIVER KERBEROS LTO PIPEWIRE OPTIONS_DEFAULT= CODECS CUPS DRIVER KERBEROS PIPEWIRE ALSA PULSEAUDIO SNDIO OPTIONS_EXCLUDE_aarch64=LTO 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 DIST_DESC= Build distribution zip files DRIVER_DESC= Install chromedriver HEIMDAL_BASE_DESC= Heimdal Kerberos (base) HEIMDAL_DESC= Heimdal Kerberos (security/heimdal) MIT_DESC= MIT Kerberos (security/krb5) PIPEWIRE_DESC= Screen capture via PipeWire 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+=proprietary_codecs=true \ FFMPEG_BRAND="Chrome" CODECS_VARS_OFF= GN_ARGS+=proprietary_codecs=false \ FFMPEG_BRAND="Chromium" CUPS_LIB_DEPENDS= libcups.so:print/cups CUPS_VARS= GN_ARGS+=use_cups=true CUPS_VARS_OFF= GN_ARGS+=use_cups=false DEBUG_BUILD_DEPENDS= esbuild:devel/esbuild DEBUG_MAKE_ENV= ELECTRON_OUT_DIR=Debug DEBUG_MAKE_ENV_OFF= ELECTRON_OUT_DIR=Release DEBUG_VARS= BUILDTYPE=Debug \ GN_FILE=testing.gn \ GN_ARGS+=is_debug=true \ GN_ARGS+=is_component_build=false \ GN_ARGS+=symbol_level=1 \ GN_BOOTSTRAP_FLAGS+=--debug \ WANTSPACE="21 GB" DEBUG_VARS_OFF= BUILDTYPE=Release \ GN_FILE=release.gn \ GN_ARGS+=blink_symbol_level=0 \ GN_ARGS+=is_debug=false \ GN_ARGS+=is_official_build=true \ GN_ARGS+=symbol_level=0 \ WANTSPACE="14 GB" DIST_IMPLIES= DRIVER DRIVER_MAKE_ARGS= chromedriver HEIMDAL_LIB_DEPENDS= libkrb5.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" LTO_VARS_OFF= GN_ARGS+=use_thin_lto=false MIT_LIB_DEPENDS= libkrb5.so.3:security/krb5 PIPEWIRE_LIB_DEPENDS= libpipewire-0.3.so:multimedia/pipewire PIPEWIRE_VARS= GN_ARGS+=rtc_use_pipewire=true \ GN_ARGS+=rtc_link_pipewire=true PIPEWIRE_VARS_OFF= GN_ARGS+=rtc_use_pipewire=false \ GN_ARGS+=rtc_link_pipewire=false PULSEAUDIO_VARS= GN_ARGS+=use_pulseaudio=true \ PINCLUDES="-I${WRKSRC:H}/pulseaudio-${PULSEV}/src -DPA_MAJOR=${PULSEMV}" PULSEAUDIO_VARS_OFF= GN_ARGS+=use_pulseaudio=false SNDIO_LIB_DEPENDS= libsndio.so:audio/sndio SNDIO_VARS= GN_ARGS+=use_sndio=true SNDIO_VARS_OFF= GN_ARGS+=use_sndio=false # See ${WRKSRC}/electron/DEPS for CHROMIUM_VER -CHROMIUM_VER= 142.0.7444.59 +CHROMIUM_VER= 142.0.7444.162 # See ${WRKSRC}/electron/DEPS for NODE_VER NODE_VER= 22.21.1 # See ${WRKSRC}/electron/DEPS for NAN_VER NAN_VER= e14bdcd1f72d62bca1d541b66da43130384ec213 # See ${WRKSRC}/electron/DEPS for SQUIRREL_MAC_VER SQUIRREL_MAC_VER= 0e5d146ba13101a1302d59ea6e6e0b3cace4ae38 # See ${WRKSRC}/electron/DEPS for REACTIVEOBJC_VER REACTIVEOBJC_VER= 74ab5baccc6f7202c8ac69a8d1e152c29dc1ea76 # See ${WRKSRC}/electron/DEPS for MANTLE_VER MANTLE_VER= 78d3966b3c331292ea29ec38661b25df0a245948 # See ${WRKSRC}/electron/DEPS for ENGFLOW_RECLIENT_CONFIGS_VER ENGFLOW_RECLIENT_CONFIGS_VER= 955335c30a752e9ef7bff375baab5e0819b6c00d YARN_TIMESTAMP= 61171200 .include "Makefile.version" .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 LLVM_DEFAULT= 21 BUILD_DEPENDS+= clang${LLVM_DEFAULT}:devel/llvm${LLVM_DEFAULT} BINARY_ALIAS+= cpp=${LOCALBASE}/bin/clang-cpp${LLVM_DEFAULT} \ cc=${LOCALBASE}/bin/clang${LLVM_DEFAULT} \ c++=${LOCALBASE}/bin/clang++${LLVM_DEFAULT} \ ar=${LOCALBASE}/bin/llvm-ar${LLVM_DEFAULT} \ nm=${LOCALBASE}/bin/llvm-nm${LLVM_DEFAULT} \ ld=${LOCALBASE}/bin/ld.lld${LLVM_DEFAULT} CFLAGS+= -Wno-error=implicit-function-declaration .if ${ARCH} == "aarch64" PLIST_SUB+= AARCH64="" \ AMD64="@comment " \ I386="@comment " \ NOT_AARCH64="@comment " FFMPEG_TARGET= arm64 .elif ${ARCH} == "amd64" BUILD_DEPENDS+= nasm:devel/nasm PLIST_SUB+= AARCH64="@comment " \ AMD64="" \ I386="@comment " \ NOT_AARCH64="" FFMPEG_TARGET= x64 .elif ${ARCH} == "i386" BUILD_DEPENDS+= nasm:devel/nasm PLIST_SUB+= AARCH64="@comment " \ AMD64="@comment " \ I386="" \ NOT_AARCH64="" FFMPEG_TARGET= ia32 .endif FFMPEG_BDIR= ${WRKSRC}/third_party/ffmpeg/build.${FFMPEG_TARGET}.freebsd/${FFMPEG_BRAND} FFMPEG_CDIR= ${WRKSRC}/third_party/ffmpeg/chromium/config/${FFMPEG_BRAND}/freebsd/${FFMPEG_TARGET} # 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 # rust MAKE_ENV+= RUSTC_BOOTSTRAP=1 GN_ARGS+= enable_rust=true \ rust_sysroot_absolute="${LOCALBASE}" TEST_ENV+= ELECTRON_OUT_DIR=${BUILDTYPE} \ LOCAL_GIT_DIRECTORY=${LOCALBASE} pre-everything:: @${ECHO_MSG} @${ECHO_MSG} "To build electron, you should have around 2GB of memory" @${ECHO_MSG} "and around ${WANTSPACE} of free disk space." @${ECHO_MSG} pre-fetch: @${MKDIR} ${DISTDIR}/${DIST_SUBDIR} if [ ! -f ${DISTDIR}/${DIST_SUBDIR}/electron-yarn-cache-${ELECTRON_VER}${EXTRACT_SUFX} ]; \ then ${MKDIR} ${WRKDIR}; \ ${ECHO_CMD} 'yarn-offline-mirror "./yarn-offline-cache"' >> \ ${WRKDIR}/.yarnrc; \ ${CP} ${FILESDIR}/package.json ${FILESDIR}/yarn.lock ${WRKDIR}; \ cd ${WRKDIR} && ${SETENV} HOME=${WRKDIR} XDG_CACHE_HOME=${WRKDIR}/.cache \ yarn --frozen-lockfile --ignore-scripts; \ ${MTREE_CMD} -cbnSp yarn-offline-cache | ${MTREE_CMD} -C | ${SED} \ -e 's:time=[0-9.]*:time=${YARN_TIMESTAMP}.000000000:' \ -e 's:\([gu]id\)=[0-9]*:\1=0:g' \ -e 's:mode=\([0-9]\)7[0-9][0-9]:mode=\1755:' \ -e 's:mode=\([0-9]\)6[0-9][0-9]:mode=\1644:' \ -e 's:flags=.*:flags=none:' \ -e 's:^\.:./yarn-offline-cache:' > yarn-offline-cache.mtree; \ ${TAR} cJf ${DISTDIR}/${DIST_SUBDIR}/electron-yarn-cache-${ELECTRON_VER}${EXTRACT_SUFX} \ @yarn-offline-cache.mtree; \ ${RM} -r ${WRKDIR}; \ fi post-extract: # Move extracted sources to appropriate locations ${MV} ${WRKSRC:H}/chromium-${CHROMIUM_VER} ${WRKSRC} ${MV} ${WRKSRC:H}/${PORTNAME}-${ELECTRON_VER} ${WRKSRC}/electron ${MV} ${WRKSRC:H}/${GH_PROJECT_nan}-${NAN_VER} ${WRKSRC}/third_party/nan ${MV} ${WRKSRC:H}/${GH_PROJECT_node}-${NODE_VER} \ ${WRKSRC}/third_party/electron_node ${MV} ${WRKSRC:H}/${GH_PROJECT_squirrel_mac}-${SQUIRREL_MAC_VER} \ ${WRKSRC}/third_party/squirrel.mac @${MKDIR} ${WRKSRC}/third_party/squirrel.mac/vendor ${MV} ${WRKSRC:H}/${GH_PROJECT_reactiveobjc}-${REACTIVEOBJC_VER} \ ${WRKSRC}/third_party/squirrel.mac/vendor/ReactiveObjC ${MV} ${WRKSRC:H}/${GH_PROJECT_mantle}-${MANTLE_VER} \ ${WRKSRC}/third_party/squirrel.mac/vendor/Mantle ${MV} ${WRKSRC:H}/${GH_PROJECT_reclient_configs}-${ENGFLOW_RECLIENT_CONFIGS_VER} \ ${WRKSRC}/third_party/engflow-reclient-configs # Install node modules for electron ${MV} ${WRKSRC:H}/yarn-offline-cache ${WRKDIR} ${ECHO_CMD} 'yarn-offline-mirror "../../../yarn-offline-cache"' >> ${WRKSRC}/electron/.yarnrc ${MV} ${WRKSRC}/electron/package.json ${WRKSRC}/electron/package.json.bak ${CP} ${FILESDIR}/package.json ${WRKSRC}/electron cd ${WRKSRC}/electron && \ ${SETENV} HOME=${WRKDIR} XDG_CACHE_HOME=${WRKDIR}/.cache yarn --frozen-lockfile --offline pre-patch: ${SH} ${FILESDIR}/apply-electron-patches.sh ${WRKSRC} # ${FIND} ${WRKSRC} -type f -name '*.orig' -print -delete # ${FIND} ${WRKSRC} -type f -name '*~' -print -delete 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 \ dav1d flac fontconfig harfbuzz-ng libdrm libpng \ libusb libwebp libxml libxslt openh264 opus || ${FALSE} # Chromium uses an unreleased version of FFmpeg, so configure it cd ${WRKSRC}/media/ffmpeg && \ ${PYTHON_CMD} scripts/build_ffmpeg.py freebsd ${FFMPEG_TARGET} \ --config-only --branding=${FFMPEG_BRAND} cd ${FFMPEG_BDIR} && ${GMAKE} ffversion.h ${MKDIR} ${FFMPEG_CDIR} .for _e in config.h config.asm config_components.h libavcodec libavformat libavutil -${CP} -pR ${FFMPEG_BDIR}/${_e} ${FFMPEG_CDIR} .endfor touch ${WRKSRC:H}/pulseaudio-${PULSEV}/src/pulse/version.h @${REINPLACE_CMD} -e 's|$${LOCALBASE}|${LOCALBASE}|;s|$${MODCLANG_VERSION}|${LLVM_DEFAULT}|' \ ${WRKSRC}/build/config/rust.gni \ ${WRKSRC}/build/rust/rust_bindgen.gni \ ${WRKSRC}/build/rust/rust_bindgen_generator.gni 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 out/${BUILDTYPE} \ --args='import("//electron/build/args/${GN_FILE}") ${GN_ARGS}' # Make GN available to python scripts called during build ${LN} -sf ${WRKSRC}/out/${BUILDTYPE}/gn ${WRKDIR}/.bin # Setup nodejs dependency @${MKDIR} ${WRKSRC}/third_party/node/freebsd/node-freebsd/bin ${LN} -sf ${LOCALBASE}/bin/node ${WRKSRC}/third_party/node/freebsd/node-freebsd/bin/node # 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 ${LN} -sf /usr/bin/strip ${WRKSRC}/buildtools/freebsd/strip post-build: cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} \ ${MAKE_CMD} ${MAKE_ARGS} ${POST_BUILD_TARGETS} post-build-DIST-on: cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} \ ${MAKE_CMD} ${MAKE_ARGS} ${POST_BUILD_DIST_TARGETS} cd ${WRKSRC}/out/${BUILDTYPE} && \ ${CP} chromedriver.zip chromedriver-v${ELECTRON_VER}-freebsd-${ARCH:S/amd64/x64/:S/i386/ia32/}.zip && \ ${CP} dist.zip electron-v${ELECTRON_VER}-freebsd-${ARCH:S/amd64/x64/:S/i386/ia32/}.zip && \ ${CP} mksnapshot.zip mksnapshot-v${ELECTRON_VER}-freebsd-${ARCH:S/amd64/x64/:S/i386/ia32/}.zip && \ ${SHA256} -r *-v${ELECTRON_VER}-freebsd-*.zip | ${SED} -e 's/ / */' > SHASUMS256.txt do-install: ${MKDIR} ${STAGEDIR}${DATADIR} .for f in electron mksnapshot v8_context_snapshot_generator ${INSTALL_PROGRAM} ${WRKSRC}/out/${BUILDTYPE}/${f} ${STAGEDIR}${DATADIR} .endfor .for f in libEGL.so libGLESv2.so libffmpeg.so libvk_swiftshader.so ${INSTALL_LIB} ${WRKSRC}/out/${BUILDTYPE}/${f} ${STAGEDIR}${DATADIR} .endfor ${INSTALL_LIB} ${WRKSRC}/out/${BUILDTYPE}/libvulkan.so.1 ${STAGEDIR}${DATADIR}/libvulkan.so .for f in LICENSE LICENSES.chromium.html snapshot_blob.bin v8_context_snapshot.bin version vk_swiftshader_icd.json ${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/${f} ${STAGEDIR}${DATADIR} .endfor .for f in chrome_100_percent.pak chrome_200_percent.pak resources.pak ${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/${f} ${STAGEDIR}${DATADIR} .endfor ${MKDIR} ${STAGEDIR}${DATADIR}/locales ${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/locales/*.pak ${STAGEDIR}${DATADIR}/locales ${MKDIR} ${STAGEDIR}${DATADIR}/resources .for f in default_app.asar ${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/resources/${f} ${STAGEDIR}${DATADIR}/resources .endfor cd ${WRKSRC}/out/${BUILDTYPE}/gen && ${COPYTREE_SHARE} node_headers ${STAGEDIR}${DATADIR} cd ${WRKSRC}/out/${BUILDTYPE} && ${COPYTREE_SHARE} gen/electron/buildflags ${STAGEDIR}${DATADIR} cd ${WRKSRC}/out/${BUILDTYPE} && ${COPYTREE_SHARE} gen/v8/embedded.S ${STAGEDIR}${DATADIR} ${RLN} ${STAGEDIR}${DATADIR}/electron ${STAGEDIR}${PREFIX}/bin/electron${PKGNAMESUFFIX} post-install-DIST-on: ${MKDIR} ${STAGEDIR}${DATADIR}/releases ${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/SHASUMS256.txt ${STAGEDIR}${DATADIR}/releases ${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/*-v${ELECTRON_VER}-freebsd-*.zip ${STAGEDIR}${DATADIR}/releases post-install-DRIVER-on: ${INSTALL_PROGRAM} ${WRKSRC}/out/${BUILDTYPE}/chromedriver.unstripped \ ${STAGEDIR}${DATADIR}/chromedriver do-test: # Note: "npm install" will run before actual tests are executed cd ${WRKSRC}/electron && \ ${SETENV} ${MAKE_ENV} ${TEST_ENV} npm run test -- --ci .include diff --git a/devel/electron39/Makefile.version b/devel/electron39/Makefile.version index 1d7d29652627..2f7d52362590 100644 --- a/devel/electron39/Makefile.version +++ b/devel/electron39/Makefile.version @@ -1,2 +1,2 @@ -ELECTRON_VER= 39.1.1 +ELECTRON_VER= 39.2.0 ELECTRON_VER_MAJOR= ${ELECTRON_VER:C/\..*//} diff --git a/devel/electron39/distinfo b/devel/electron39/distinfo index 5d7bb0a6be4e..d96cbd8cb16b 100644 --- a/devel/electron39/distinfo +++ b/devel/electron39/distinfo @@ -1,21 +1,21 @@ -TIMESTAMP = 1762590610 -SHA256 (electron/chromium-142.0.7444.59.tar.xz) = eaf6a4941d117b0ce0baaae0ad0111b2ad456be4e3abcdd05ec31d7046cdc192 -SIZE (electron/chromium-142.0.7444.59.tar.xz) = 7577315276 +TIMESTAMP = 1763110708 +SHA256 (electron/chromium-142.0.7444.162.tar.xz) = dbe84fedf3496ea1d47f0b19c60cbb442418f0f2191a78f54039cfd04b087b42 +SIZE (electron/chromium-142.0.7444.162.tar.xz) = 7577065240 SHA256 (electron/pulseaudio-16.1.tar.gz) = 027266c62f2a84422ac45fa721a649508f0f1628fb1fd9242315ac54ce2d7c92 SIZE (electron/pulseaudio-16.1.tar.gz) = 2763111 -SHA256 (electron/electron-yarn-cache-39.1.1.tar.xz) = bad00f2015309b6da8b15a50d32d4c9f9e585ca280956ad79006ae71a3a32611 -SIZE (electron/electron-yarn-cache-39.1.1.tar.xz) = 30418060 -SHA256 (electron/electron-electron-v39.1.1_GH0.tar.gz) = 79c5978e6cea9457414f2f0d4ea55b792d7408b7fccc3212d78c2cab3bfd2bf4 -SIZE (electron/electron-electron-v39.1.1_GH0.tar.gz) = 15901561 +SHA256 (electron/electron-yarn-cache-39.2.0.tar.xz) = bad00f2015309b6da8b15a50d32d4c9f9e585ca280956ad79006ae71a3a32611 +SIZE (electron/electron-yarn-cache-39.2.0.tar.xz) = 30418060 +SHA256 (electron/electron-electron-v39.2.0_GH0.tar.gz) = 9cf05344373dc6c6b4f53c5d313edb03d1c2af21310836eb4bfd46c4130f27ff +SIZE (electron/electron-electron-v39.2.0_GH0.tar.gz) = 15917542 SHA256 (electron/nodejs-node-v22.21.1_GH0.tar.gz) = 4b5ad1795fb6adfb1862df9a626bdca85185866fcd7d0313e87a347eec293fd8 SIZE (electron/nodejs-node-v22.21.1_GH0.tar.gz) = 129440814 SHA256 (electron/nodejs-nan-e14bdcd1f72d62bca1d541b66da43130384ec213_GH0.tar.gz) = 02edf8d5b3fef9af94d8a1355da60564a57e7f2c99cb422bce042400607ed2eb SIZE (electron/nodejs-nan-e14bdcd1f72d62bca1d541b66da43130384ec213_GH0.tar.gz) = 180646 SHA256 (electron/Squirrel-Squirrel.Mac-0e5d146ba13101a1302d59ea6e6e0b3cace4ae38_GH0.tar.gz) = f4ebb40a8d85dbb7ef02aa0571b2f8e22182c6d73b6992484a53c90047779d01 SIZE (electron/Squirrel-Squirrel.Mac-0e5d146ba13101a1302d59ea6e6e0b3cace4ae38_GH0.tar.gz) = 2112918 SHA256 (electron/ReactiveCocoa-ReactiveObjC-74ab5baccc6f7202c8ac69a8d1e152c29dc1ea76_GH0.tar.gz) = 88e65f116c7a06fccedb43970fba63080a57a4e5dc29147d2cdfe1ee58dd0546 SIZE (electron/ReactiveCocoa-ReactiveObjC-74ab5baccc6f7202c8ac69a8d1e152c29dc1ea76_GH0.tar.gz) = 1136238 SHA256 (electron/Mantle-Mantle-78d3966b3c331292ea29ec38661b25df0a245948_GH0.tar.gz) = a365df6d83e0be3cc000b70bd39734d80c28f0d9983ebe44698337a2ca464bb1 SIZE (electron/Mantle-Mantle-78d3966b3c331292ea29ec38661b25df0a245948_GH0.tar.gz) = 62962 SHA256 (electron/EngFlow-reclient-configs-955335c30a752e9ef7bff375baab5e0819b6c00d_GH0.tar.gz) = c148f76220fc41a89ffeaf370c2cc175577be184688b12aa6fec5f8ac6c714c4 SIZE (electron/EngFlow-reclient-configs-955335c30a752e9ef7bff375baab5e0819b6c00d_GH0.tar.gz) = 13014 diff --git a/devel/electron39/files/patch-ash_display_mirror__window__controller.cc b/devel/electron39/files/patch-ash_display_mirror__window__controller.cc deleted file mode 100644 index 2f730fc7eeda..000000000000 --- a/devel/electron39/files/patch-ash_display_mirror__window__controller.cc +++ /dev/null @@ -1,14 +0,0 @@ ---- ash/display/mirror_window_controller.cc.orig 2025-07-14 18:11:59 UTC -+++ ash/display/mirror_window_controller.cc -@@ -283,7 +283,11 @@ void MirrorWindowController::UpdateWindow( - if (!base::Contains(display_info_list, iter->first, - &display::ManagedDisplayInfo::id)) { - 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/devel/electron39/files/patch-chrome_browser_about__flags.cc b/devel/electron39/files/patch-chrome_browser_about__flags.cc index 37f2b32539a9..685f5b715226 100644 --- a/devel/electron39/files/patch-chrome_browser_about__flags.cc +++ b/devel/electron39/files/patch-chrome_browser_about__flags.cc @@ -1,403 +1,403 @@ ---- chrome/browser/about_flags.cc.orig 2025-10-21 20:19:54 UTC +--- chrome/browser/about_flags.cc.orig 2025-11-10 21:36:56 UTC +++ chrome/browser/about_flags.cc @@ -334,12 +334,12 @@ #include "components/stylus_handwriting/win/features.h" #endif -#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) #include "base/allocator/buildflags.h" #include "ui/ozone/public/ozone_switches.h" #endif -#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) #include "chrome/browser/contextual_cueing/contextual_cueing_features.h" // nogncheck #include "chrome/browser/enterprise/profile_management/profile_management_features.h" #include "chrome/browser/enterprise/webstore/features.h" @@ -896,6 +896,26 @@ const FeatureEntry::FeatureVariation std::size(kWebIdentityDigitalIdentityCredentialHighRiskDialogParam), nullptr}}; +#if BUILDFLAG(IS_BSD) +const FeatureEntry::FeatureParam kAudioBackendPulseAudio[] = { + { "audio-backend", "pulseaudio" }}; +const FeatureEntry::FeatureParam kAudioBackendSndio[] = { + { "audio-backend", "sndio" }}; +const FeatureEntry::FeatureParam kAudioBackendAlsa[] = { + { "audio-backend", "alsa" }}; +const FeatureEntry::FeatureVariation + kAudioBackendVariations[] = { + {"using PulseAudio by default if available", kAudioBackendPulseAudio, + std::size(kAudioBackendPulseAudio), + nullptr}, + {"using sndio by default if available", kAudioBackendSndio, + std::size(kAudioBackendSndio), + nullptr}, + {"using ALSA by default if available", kAudioBackendAlsa, + std::size(kAudioBackendAlsa), + nullptr}}; +#endif + const FeatureEntry::FeatureParam kClipboardMaximumAge60Seconds[] = { {"UIClipboardMaximumAge", "60"}}; const FeatureEntry::FeatureParam kClipboardMaximumAge90Seconds[] = { @@ -1265,7 +1285,7 @@ const FeatureEntry::FeatureVariation kRemotePageMetada }; #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \ - BUILDFLAG(IS_WIN) + BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) // A limited number of combinations of the rich autocompletion params. const FeatureEntry::FeatureParam kOmniboxRichAutocompletionAggressive1[] = { -@@ -3859,7 +3879,7 @@ const FeatureEntry::FeatureVariation +@@ -3870,7 +3890,7 @@ const FeatureEntry::FeatureVariation #endif // BUILDFLAG(IS_ANDROID) #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || \ - BUILDFLAG(IS_CHROMEOS) + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) const flags_ui::FeatureEntry::FeatureParam kPwaNavigationCapturingDefaultOn[] = {{"link_capturing_state", "on_by_default"}}; const flags_ui::FeatureEntry::FeatureParam kPwaNavigationCapturingDefaultOff[] = -@@ -4119,7 +4139,7 @@ const FeatureEntry::FeatureVariation kSkiaGraphiteVari +@@ -4130,7 +4150,7 @@ const FeatureEntry::FeatureVariation kSkiaGraphiteVari std::size(kSkiaGraphite_DebugLabelsEnabled), nullptr}, }; -#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) const FeatureEntry::FeatureParam kTranslationAPI_SkipLanguagePackLimit[] = { {"TranslationAPIAcceptLanguagesCheck", "false"}, {"TranslationAPILimitLanguagePackCount", "false"}}; -@@ -4139,7 +4159,7 @@ const FeatureEntry::FeatureVariation kSensitiveContent +@@ -4150,7 +4170,7 @@ const FeatureEntry::FeatureVariation kSensitiveContent }; #endif // BUILDFLAG(IS_ANDROID) -#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) const FeatureEntry::FeatureParam kContextualCueingEnabledNoEngagementCap[] = { {"BackoffTime", "0h"}, {"BackoffMultiplierBase", "0.0"}, -@@ -4888,7 +4908,7 @@ const FeatureEntry::FeatureVariation kMobilePromoOnDes +@@ -4899,7 +4919,7 @@ const FeatureEntry::FeatureVariation kMobilePromoOnDes }; #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || \ - BUILDFLAG(IS_CHROMEOS) + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) const FeatureEntry::FeatureParam kNtpEnterpriseShortcutsWithFakeData[] = { {"use_fake_data", "true"}}; const FeatureEntry::FeatureVariation kNtpEnterpriseShortcutsVariations[] = { -@@ -5534,7 +5554,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -5545,7 +5565,7 @@ const FeatureEntry kFeatureEntries[] = { }, #endif // BUILDFLAG(IS_WIN) -#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) { "fluent-overlay-scrollbars", flag_descriptions::kFluentOverlayScrollbarsName, -@@ -5829,7 +5849,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -5840,7 +5860,7 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kEnableIsolatedWebAppDevModeName, flag_descriptions::kEnableIsolatedWebAppDevModeDescription, kOsDesktop, FEATURE_VALUE_TYPE(features::kIsolatedWebAppDevMode)}, -#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) {"enable-iwa-key-distribution-component", flag_descriptions::kEnableIwaKeyDistributionComponentName, flag_descriptions::kEnableIwaKeyDistributionComponentDescription, -@@ -6021,7 +6041,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -6032,7 +6052,7 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(media::kUseSCContentSharingPicker)}, #endif // BUILDFLAG(IS_MAC) -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) {"pulseaudio-loopback-for-cast", flag_descriptions::kPulseaudioLoopbackForCastName, flag_descriptions::kPulseaudioLoopbackForCastDescription, kOsLinux, -@@ -6050,6 +6070,16 @@ const FeatureEntry kFeatureEntries[] = { +@@ -6061,6 +6081,16 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kWaylandSessionManagementName, flag_descriptions::kWaylandSessionManagementDescription, kOsLinux, FEATURE_VALUE_TYPE(features::kWaylandSessionManagement)}, + +#if BUILDFLAG(IS_BSD) + {"audio-backend", + flag_descriptions::kAudioBackendName, + flag_descriptions::kAudioBackendDescription, kOsLinux, + FEATURE_WITH_PARAMS_VALUE_TYPE( + media::kAudioBackend, + kAudioBackendVariations, + "AudioBackend")}, +#endif #endif // BUILDFLAG(IS_LINUX) #if BUILDFLAG(ENABLE_VR) -@@ -6916,7 +6946,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -6927,7 +6957,7 @@ const FeatureEntry kFeatureEntries[] = { "MlUrlScoring")}, #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \ - BUILDFLAG(IS_WIN) + BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) {"contextual-search-box-uses-contextual-search-provider", flag_descriptions::kContextualSearchBoxUsesContextualSearchProviderName, flag_descriptions:: -@@ -7326,7 +7356,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -7337,7 +7367,7 @@ const FeatureEntry kFeatureEntries[] = { kNumSrpZpsRelatedSearches, "PowerTools")}, #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \ - BUILDFLAG(IS_WIN) + BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) {"history-embeddings", flag_descriptions::kHistoryEmbeddingsName, flag_descriptions::kHistoryEmbeddingsDescription, kOsDesktop, FEATURE_VALUE_TYPE(history_embeddings::kHistoryEmbeddings)}, -@@ -7804,7 +7834,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -7815,7 +7845,7 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(printing::features::kAddPrinterViaPrintscanmgr)}, #endif // BUILDFLAG(IS_CHROMEOS) -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) {"cups-ipp-printing-backend", flag_descriptions::kCupsIppPrintingBackendName, flag_descriptions::kCupsIppPrintingBackendDescription, kOsDesktop, -@@ -8766,7 +8796,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -8777,7 +8807,7 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(media::kGlobalMediaControlsUpdatedUI)}, #endif // !BUILDFLAG(IS_CHROMEOS) -#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) {"enable-network-service-sandbox", flag_descriptions::kEnableNetworkServiceSandboxName, flag_descriptions::kEnableNetworkServiceSandboxDescription, -@@ -9344,7 +9374,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -9355,7 +9385,7 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(ash::features::kWallpaperGooglePhotosSharedAlbums)}, #endif // BUILDFLAG(IS_CHROMEOS) -#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) {"enable-get-all-screens-media", flag_descriptions::kGetAllScreensMediaName, flag_descriptions::kGetAllScreensMediaDescription, kOsCrOS | kOsLinux, FEATURE_VALUE_TYPE(blink::features::kGetAllScreensMedia)}, -@@ -9369,7 +9399,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -9380,7 +9410,7 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kGlobalVaapiLockDescription, kOsCrOS | kOsLinux, FEATURE_VALUE_TYPE(media::kGlobalVaapiLock)}, -#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) { "ui-debug-tools", flag_descriptions::kUIDebugToolsName, -@@ -9822,7 +9852,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -9833,7 +9863,7 @@ const FeatureEntry kFeatureEntries[] = { #endif #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \ - BUILDFLAG(IS_CHROMEOS) + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) {"media-session-enter-picture-in-picture", flag_descriptions::kMediaSessionEnterPictureInPictureName, flag_descriptions::kMediaSessionEnterPictureInPictureDescription, -@@ -10012,7 +10042,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -10023,7 +10053,7 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kReduceTransferSizeUpdatedIPCDescription, kOsAll, FEATURE_VALUE_TYPE(network::features::kReduceTransferSizeUpdatedIPC)}, -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) {"reduce-user-agent-data-linux-platform-version", flag_descriptions::kReduceUserAgentDataLinuxPlatformVersionName, flag_descriptions::kReduceUserAgentDataLinuxPlatformVersionDescription, -@@ -10484,7 +10514,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -10495,7 +10525,7 @@ const FeatureEntry kFeatureEntries[] = { kOsDesktop | kOsAndroid, FEATURE_VALUE_TYPE(features::kProcessPerSiteUpToMainFrameThreshold)}, -#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) {"camera-mic-effects", flag_descriptions::kCameraMicEffectsName, flag_descriptions::kCameraMicEffectsDescription, static_cast(kOsMac | kOsWin | kOsLinux), -@@ -10595,7 +10625,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -10606,7 +10636,7 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kRcapsDynamicProfileCountryDescription, kOsAll, FEATURE_VALUE_TYPE(switches::kDynamicProfileCountry)}, -#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) {"enable-generic-oidc-auth-profile-management", flag_descriptions::kEnableGenericOidcAuthProfileManagementName, flag_descriptions::kEnableGenericOidcAuthProfileManagementDescription, -@@ -10616,7 +10646,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -10627,7 +10657,7 @@ const FeatureEntry kFeatureEntries[] = { #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || \ - BUILDFLAG(IS_CHROMEOS) + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) {"enable-user-navigation-capturing-pwa", flag_descriptions::kPwaNavigationCapturingName, flag_descriptions::kPwaNavigationCapturingDescription, -@@ -11154,7 +11184,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -11165,7 +11195,7 @@ const FeatureEntry kFeatureEntries[] = { kStandardBoundSessionCredentialsFederatedSessionsVariations, "standard-device-bound-sessions-federated-sessions")}, -#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) {"replace-sync-promos-with-sign-in-promos-desktop", flag_descriptions::kReplaceSyncPromosWithSignInPromosName, flag_descriptions::kReplaceSyncPromosWithSignInPromosDescription, -@@ -11314,7 +11344,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -11325,7 +11355,7 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kCanvasHibernationDescription, kOsAll, FEATURE_VALUE_TYPE(blink::features::kCanvas2DHibernation)}, -#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) {"sync-enable-bookmarks-in-transport-mode", flag_descriptions::kSyncEnableBookmarksInTransportModeName, flag_descriptions::kSyncEnableBookmarksInTransportModeDescription, -@@ -11400,7 +11430,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -11411,7 +11441,7 @@ const FeatureEntry kFeatureEntries[] = { "HistoryOptInEducationalTipVariations")}, #endif // BUILDFLAG(IS_ANDROID) -#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) +#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) {"supervised-user-local-web-approvals", flag_descriptions::kSupervisedUserLocalWebApprovalsName, flag_descriptions::kSupervisedUserLocalWebApprovalsDescription, -@@ -11605,7 +11635,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -11616,7 +11646,7 @@ const FeatureEntry kFeatureEntries[] = { segmentation_platform::features::kSegmentationSurveyPage)}, #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ - BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) {"autofill-enable-buy-now-pay-later", flag_descriptions::kAutofillEnableBuyNowPayLaterName, flag_descriptions::kAutofillEnableBuyNowPayLaterDescription, -@@ -11693,7 +11723,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -11704,7 +11734,7 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE( autofill::features::kAutofillEnableCardInfoRuntimeRetrieval)}, -#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) {"translation-api", flag_descriptions::kTranslationAPIName, flag_descriptions::kTranslationAPIDescription, kOsMac | kOsWin | kOsLinux, FEATURE_WITH_PARAMS_VALUE_TYPE(blink::features::kTranslationAPI, -@@ -11727,7 +11757,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -11738,7 +11768,7 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE( password_manager::features::kPasswordFormClientsideClassifier)}, -#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) {"contextual-cueing", flag_descriptions::kContextualCueingName, flag_descriptions::kContextualCueingDescription, kOsLinux | kOsMac | kOsWin, -@@ -12091,7 +12121,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -12102,7 +12132,7 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(ui::kUseNewEtc1Encoder)}, #endif // !BUILDFLAG(IS_ANDROID) -#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) {"automatic-usb-detach", flag_descriptions::kAutomaticUsbDetachName, flag_descriptions::kAutomaticUsbDetachDescription, kOsAndroid | kOsLinux, FEATURE_VALUE_TYPE(features::kAutomaticUsbDetach)}, -@@ -12127,7 +12157,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -12138,7 +12168,7 @@ const FeatureEntry kFeatureEntries[] = { #endif // !BUILDFLAG(IS_ANDROID) #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ - BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) {"autofill-enable-amount-extraction", flag_descriptions::kAutofillEnableAmountExtractionName, flag_descriptions::kAutofillEnableAmountExtractionDescription, -@@ -12279,7 +12309,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -12290,7 +12320,7 @@ const FeatureEntry kFeatureEntries[] = { apps::chrome_app_deprecation::kAllowUserInstalledChromeApps)}, #endif // BUILDFLAG(IS_CHROMEOS) -#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) {"chrome-web-store-navigation-throttle", flag_descriptions::kChromeWebStoreNavigationThrottleName, flag_descriptions::kChromeWebStoreNavigationThrottleDescription, -@@ -12308,7 +12338,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -12319,7 +12349,7 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(supervised_user::kSupervisedUserBlockInterstitialV3)}, #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ - BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) {"autofill-enable-amount-extraction-testing", flag_descriptions::kAutofillEnableAmountExtractionTestingName, flag_descriptions::kAutofillEnableAmountExtractionTestingDescription, -@@ -12323,7 +12353,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -12334,7 +12364,7 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kEnableWebAppPredictableAppUpdatingDescription, kOsAll, FEATURE_VALUE_TYPE(features::kWebAppPredictableAppUpdating)}, -#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) {"root-scrollbar-follows-browser-theme", flag_descriptions::kRootScrollbarFollowsTheme, flag_descriptions::kRootScrollbarFollowsThemeDescription, -@@ -12596,7 +12626,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -12607,7 +12637,7 @@ const FeatureEntry kFeatureEntries[] = { #endif // BUILDFLAG(IS_ANDROID) #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || \ - BUILDFLAG(IS_CHROMEOS) + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) {"tab-group-home", tabs::flag_descriptions::kTabGroupHomeName, tabs::flag_descriptions::kTabGroupHomeDescription, kOsDesktop, FEATURE_VALUE_TYPE(tabs::kTabGroupHome)}, -@@ -12689,7 +12719,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -12700,7 +12730,7 @@ const FeatureEntry kFeatureEntries[] = { #endif // BUILDFLAG(IS_ANDROID) #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || \ - BUILDFLAG(IS_CHROMEOS) + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) {"enable-site-search-allow-user-override-policy", flag_descriptions::kEnableSiteSearchAllowUserOverridePolicyName, flag_descriptions::kEnableSiteSearchAllowUserOverridePolicyDescription, -@@ -12813,7 +12843,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -12824,7 +12854,7 @@ const FeatureEntry kFeatureEntries[] = { #endif // BUILDFLAG(IS_ANDROID) #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ - BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) {"autofill-enable-buy-now-pay-later-for-klarna", flag_descriptions::kAutofillEnableBuyNowPayLaterForKlarnaName, flag_descriptions::kAutofillEnableBuyNowPayLaterForKlarnaDescription, -@@ -12886,7 +12916,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -12897,7 +12927,7 @@ const FeatureEntry kFeatureEntries[] = { #endif // BUILDFLAG(ENABLE_DICE_SUPPORT) #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ - BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) {"autofill-enable-buy-now-pay-later-for-externally-linked", flag_descriptions::kAutofillEnableBuyNowPayLaterForExternallyLinkedName, flag_descriptions:: -@@ -13163,7 +13193,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -13174,7 +13204,7 @@ const FeatureEntry kFeatureEntries[] = { #endif // !BUILDFLAG(IS_ANDROID), #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || \ - BUILDFLAG(IS_CHROMEOS) + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) {"enable-ntp-enterprise-shortcuts", flag_descriptions::kEnableNtpEnterpriseShortcutsName, flag_descriptions::kEnableNtpEnterpriseShortcutsDescription, -@@ -13270,7 +13300,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -13281,7 +13311,7 @@ const FeatureEntry kFeatureEntries[] = { autofill::features::kAutofillAndPasswordsInSameSurface)}, #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \ - BUILDFLAG(IS_WIN) + BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) {"contextual-suggestion-ui-improvements", flag_descriptions::kContextualSuggestionsUiImprovementsName, flag_descriptions::kContextualSuggestionsUiImprovementsDescription, -@@ -13298,7 +13328,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -13309,7 +13339,7 @@ const FeatureEntry kFeatureEntries[] = { "EnableBlockCanvasReadback")}, #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ - BUILDFLAG(IS_CHROMEOS) + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) {"autofill-enable-ai-based-amount-extraction", flag_descriptions::kAutofillEnableAiBasedAmountExtractionName, flag_descriptions::kAutofillEnableAiBasedAmountExtractionDescription, -@@ -13343,7 +13373,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -13354,7 +13384,7 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(features::kCryptographyComplianceCnsa)}, #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ - BUILDFLAG(IS_CHROMEOS) + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) {"lens-reinvocation-affordance", flag_descriptions::kLensSearchReinvocationAffordanceName, flag_descriptions::kLensSearchReinvocationAffordanceDescription, diff --git a/devel/electron39/files/patch-chrome_browser_renderer__context__menu_render__view__context__menu.cc b/devel/electron39/files/patch-chrome_browser_renderer__context__menu_render__view__context__menu.cc index 4ec7d3546dde..a2ba427c6486 100644 --- a/devel/electron39/files/patch-chrome_browser_renderer__context__menu_render__view__context__menu.cc +++ b/devel/electron39/files/patch-chrome_browser_renderer__context__menu_render__view__context__menu.cc @@ -1,20 +1,20 @@ ---- chrome/browser/renderer_context_menu/render_view_context_menu.cc.orig 2025-10-21 20:19:54 UTC +--- chrome/browser/renderer_context_menu/render_view_context_menu.cc.orig 2025-11-10 21:36:56 UTC +++ chrome/browser/renderer_context_menu/render_view_context_menu.cc @@ -243,7 +243,7 @@ #include "url/origin.h" #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ - BUILDFLAG(IS_CHROMEOS) + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) #include "components/webapps/isolated_web_apps/scheme.h" #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || // BUILDFLAG(IS_CHROMEOS) -@@ -4987,7 +4987,7 @@ void RenderViewContextMenu::OpenLinkInSplitView() { +@@ -4985,7 +4985,7 @@ void RenderViewContextMenu::OpenLinkInSplitView() { #endif // !BUILDFLAG(IS_ANDROID) #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ - BUILDFLAG(IS_CHROMEOS) + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) bool RenderViewContextMenu::IsLinkToIsolatedWebApp() const { // Using `unfiltered_link_url`, because `link_url` is being replaced with // about:blank#blocked if the source is a normal site. diff --git a/devel/electron39/files/patch-chrome_browser_ui_browser__window_internal_browser__window__features.cc b/devel/electron39/files/patch-chrome_browser_ui_browser__window_internal_browser__window__features.cc index 2bbdb5ff0eba..b0c43bf35e6a 100644 --- a/devel/electron39/files/patch-chrome_browser_ui_browser__window_internal_browser__window__features.cc +++ b/devel/electron39/files/patch-chrome_browser_ui_browser__window_internal_browser__window__features.cc @@ -1,20 +1,20 @@ ---- chrome/browser/ui/browser_window/internal/browser_window_features.cc.orig 2025-10-21 20:19:54 UTC +--- chrome/browser/ui/browser_window/internal/browser_window_features.cc.orig 2025-11-10 21:36:56 UTC +++ chrome/browser/ui/browser_window/internal/browser_window_features.cc @@ -133,7 +133,7 @@ #include "chrome/browser/ui/startup/default_browser_prompt/pin_infobar/pin_infobar_controller.h" #endif -#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) #include "chrome/browser/ui/views/session_restore_infobar/session_restore_infobar_controller.h" #endif -@@ -373,7 +373,7 @@ void BrowserWindowFeatures::Init(BrowserWindowInterfac +@@ -374,7 +374,7 @@ void BrowserWindowFeatures::Init(BrowserWindowInterfac browser_select_file_dialog_controller_ = std::make_unique(profile); -#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) profile_customization_bubble_sync_controller_ = std::make_unique(browser, profile); diff --git a/devel/electron39/files/patch-chrome_browser_ui_browser__window_public_browser__window__features.h b/devel/electron39/files/patch-chrome_browser_ui_browser__window_public_browser__window__features.h index 2e19696d56b8..4696e04eec50 100644 --- a/devel/electron39/files/patch-chrome_browser_ui_browser__window_public_browser__window__features.h +++ b/devel/electron39/files/patch-chrome_browser_ui_browser__window_public_browser__window__features.h @@ -1,29 +1,29 @@ ---- chrome/browser/ui/browser_window/public/browser_window_features.h.orig 2025-10-21 20:19:54 UTC +--- chrome/browser/ui/browser_window/public/browser_window_features.h.orig 2025-11-10 21:36:56 UTC +++ chrome/browser/ui/browser_window/public/browser_window_features.h @@ -94,7 +94,7 @@ class PinInfoBarController; } // namespace default_browser #endif -#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) class ProfileCustomizationBubbleSyncController; namespace session_restore_infobar { class SessionRestoreInfobarController; -@@ -424,7 +424,7 @@ class BrowserWindowFeatures { +@@ -428,7 +428,7 @@ class BrowserWindowFeatures { return browser_select_file_dialog_controller_.get(); } -#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) ProfileCustomizationBubbleSyncController* profile_customization_bubble_sync_controller() { return profile_customization_bubble_sync_controller_.get(); -@@ -593,7 +593,7 @@ class BrowserWindowFeatures { +@@ -597,7 +597,7 @@ class BrowserWindowFeatures { std::unique_ptr browser_select_file_dialog_controller_; -#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) std::unique_ptr profile_customization_bubble_sync_controller_; diff --git a/devel/electron39/files/patch-chrome_browser_ui_views_location__bar_location__bar__view.cc b/devel/electron39/files/patch-chrome_browser_ui_views_location__bar_location__bar__view.cc index 9de1640ecfc5..eadd1bcd5683 100644 --- a/devel/electron39/files/patch-chrome_browser_ui_views_location__bar_location__bar__view.cc +++ b/devel/electron39/files/patch-chrome_browser_ui_views_location__bar_location__bar__view.cc @@ -1,11 +1,11 @@ ---- chrome/browser/ui/views/location_bar/location_bar_view.cc.orig 2025-10-21 20:19:54 UTC +--- chrome/browser/ui/views/location_bar/location_bar_view.cc.orig 2025-11-10 21:36:56 UTC +++ chrome/browser/ui/views/location_bar/location_bar_view.cc -@@ -527,7 +527,7 @@ void LocationBarView::OnPopupOpened() { +@@ -539,7 +539,7 @@ void LocationBarView::OnPopupOpened() { } void LocationBarView::OnPopupOpened() { -#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) // It's not great for promos to overlap the omnibox if the user opens the // drop-down after showing the promo. This especially causes issues on Mac and // Linux due to z-order/rendering issues, see crbug.com/1225046 and diff --git a/devel/electron39/files/patch-chrome_browser_ui_views_user__education_browser__user__education__service.cc b/devel/electron39/files/patch-chrome_browser_ui_views_user__education_browser__user__education__service.cc index 5749205a40a9..4b8fa5d9b938 100644 --- a/devel/electron39/files/patch-chrome_browser_ui_views_user__education_browser__user__education__service.cc +++ b/devel/electron39/files/patch-chrome_browser_ui_views_user__education_browser__user__education__service.cc @@ -1,20 +1,20 @@ ---- chrome/browser/ui/views/user_education/browser_user_education_service.cc.orig 2025-10-21 20:19:54 UTC +--- chrome/browser/ui/views/user_education/browser_user_education_service.cc.orig 2025-11-10 21:36:56 UTC +++ chrome/browser/ui/views/user_education/browser_user_education_service.cc -@@ -1131,7 +1131,7 @@ void MaybeRegisterChromeFeaturePromos( +@@ -1165,7 +1165,7 @@ void MaybeRegisterChromeFeaturePromos( "Triggered when a shared tab becomes the active tab."))); } -#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) // kIPHSupervisedUserProfileSigninFeature: registry.RegisterFeature(std::move( FeaturePromoSpecification::CreateForCustomAction( -@@ -1399,7 +1399,7 @@ void MaybeRegisterChromeFeaturePromos( +@@ -1433,7 +1433,7 @@ void MaybeRegisterChromeFeaturePromos( "Triggered to inform users of the availability of the " "new translate screen feature on the Lens Overlay."))); -#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) +#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) // kIPHDesktopPWAsLinkCapturingLaunch: registry.RegisterFeature(std::move( FeaturePromoSpecification::CreateForCustomAction( diff --git a/devel/electron39/files/patch-components_feature__engagement_public_feature__constants.cc b/devel/electron39/files/patch-components_feature__engagement_public_feature__constants.cc index 7f9b5ea15d2a..809373ea7da2 100644 --- a/devel/electron39/files/patch-components_feature__engagement_public_feature__constants.cc +++ b/devel/electron39/files/patch-components_feature__engagement_public_feature__constants.cc @@ -1,29 +1,29 @@ ---- components/feature_engagement/public/feature_constants.cc.orig 2025-10-21 20:19:54 UTC +--- components/feature_engagement/public/feature_constants.cc.orig 2025-11-10 21:36:56 UTC +++ components/feature_engagement/public/feature_constants.cc @@ -32,7 +32,7 @@ bool IsOnDeviceStorageEnabled() { } #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \ - BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) #if BUILDFLAG(GOOGLE_CHROME_BRANDING) BASE_FEATURE(kEsbDownloadRowPromoFeature, "EsbDownloadRowPromo", -@@ -843,7 +843,7 @@ BASE_FEATURE(kIPHiOSAIHubNewBadge, +@@ -846,7 +846,7 @@ BASE_FEATURE(kIPHiOSAIHubNewBadge, #endif // BUILDFLAG(IS_IOS) -#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \ +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) || \ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) BASE_FEATURE(kIPHAutofillBnplAffirmOrZipSuggestionFeature, "IPH_AutofillBnplAffirmOrZipSuggestion", -@@ -999,7 +999,7 @@ BASE_FEATURE(kIPHScalableIphGamingFeature, +@@ -1002,7 +1002,7 @@ BASE_FEATURE(kIPHScalableIphGamingFeature, base::FEATURE_DISABLED_BY_DEFAULT); #endif -#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) // This can be enabled by default, as the DesktopPWAsLinkCapturing // flag is needed for the IPH linked to this feature to work, and // use-cases to show the IPH are guarded by that flag. diff --git a/devel/electron39/files/patch-components_feature__engagement_public_feature__constants.h b/devel/electron39/files/patch-components_feature__engagement_public_feature__constants.h index 3df0cac29f05..91407b11c54a 100644 --- a/devel/electron39/files/patch-components_feature__engagement_public_feature__constants.h +++ b/devel/electron39/files/patch-components_feature__engagement_public_feature__constants.h @@ -1,29 +1,29 @@ ---- components/feature_engagement/public/feature_constants.h.orig 2025-10-21 20:19:54 UTC +--- components/feature_engagement/public/feature_constants.h.orig 2025-11-10 21:36:56 UTC +++ components/feature_engagement/public/feature_constants.h @@ -31,7 +31,7 @@ FEATURE_CONSTANTS_DECLARE_FEATURE(kIPHDummyFeature); FEATURE_CONSTANTS_DECLARE_FEATURE(kIPHDummyFeature); #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \ - BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) #if BUILDFLAG(GOOGLE_CHROME_BRANDING) FEATURE_CONSTANTS_DECLARE_FEATURE(kEsbDownloadRowPromoFeature); #endif -@@ -379,7 +379,7 @@ FEATURE_CONSTANTS_DECLARE_FEATURE(kIPHiOSAIHubNewBadge +@@ -380,7 +380,7 @@ FEATURE_CONSTANTS_DECLARE_FEATURE(kIPHiOSAIHubNewBadge #endif // BUILDFLAG(IS_IOS) -#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \ +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) || \ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) FEATURE_CONSTANTS_DECLARE_FEATURE(kIPHAutofillBnplAffirmOrZipSuggestionFeature); FEATURE_CONSTANTS_DECLARE_FEATURE( -@@ -443,7 +443,7 @@ FEATURE_CONSTANTS_DECLARE_FEATURE(kIPHScalableIphGamin +@@ -444,7 +444,7 @@ FEATURE_CONSTANTS_DECLARE_FEATURE(kIPHScalableIphGamin FEATURE_CONSTANTS_DECLARE_FEATURE(kIPHScalableIphGamingFeature); #endif -#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) FEATURE_CONSTANTS_DECLARE_FEATURE(kIPHDesktopPWAsLinkCapturingLaunch); FEATURE_CONSTANTS_DECLARE_FEATURE(kIPHDesktopPWAsLinkCapturingLaunchAppInTab); FEATURE_CONSTANTS_DECLARE_FEATURE(kIPHSignInBenefitsFeature); diff --git a/devel/electron39/files/patch-components_feature__engagement_public_feature__list.cc b/devel/electron39/files/patch-components_feature__engagement_public_feature__list.cc index e476ead7b246..6165908ccaa7 100644 --- a/devel/electron39/files/patch-components_feature__engagement_public_feature__list.cc +++ b/devel/electron39/files/patch-components_feature__engagement_public_feature__list.cc @@ -1,29 +1,29 @@ ---- components/feature_engagement/public/feature_list.cc.orig 2025-10-21 20:19:54 UTC +--- components/feature_engagement/public/feature_list.cc.orig 2025-11-10 21:36:56 UTC +++ components/feature_engagement/public/feature_list.cc @@ -203,7 +203,7 @@ const base::Feature* const kAllFeatures[] = { &kIPHiOSReaderModeOptionsFeature, #endif // BUILDFLAG(IS_IOS) #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \ - BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) #if BUILDFLAG(GOOGLE_CHROME_BRANDING) &kEsbDownloadRowPromoFeature, #endif -@@ -277,7 +277,7 @@ const base::Feature* const kAllFeatures[] = { +@@ -278,7 +278,7 @@ const base::Feature* const kAllFeatures[] = { #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) -#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \ +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) || \ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) &kIPHAutofillAiOptInFeature, &kIPHAutofillBnplAffirmOrZipSuggestionFeature, -@@ -335,7 +335,7 @@ const base::Feature* const kAllFeatures[] = { +@@ -336,7 +336,7 @@ const base::Feature* const kAllFeatures[] = { &kIPHScalableIphGamingFeature, #endif // BUILDFLAG(IS_CHROMEOS) -#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) &kIPHDesktopPWAsLinkCapturingLaunch, &kIPHDesktopPWAsLinkCapturingLaunchAppInTab, &kIPHSignInBenefitsFeature, diff --git a/devel/electron39/files/patch-components_feature__engagement_public_feature__list.h b/devel/electron39/files/patch-components_feature__engagement_public_feature__list.h index b9d944ae83e8..a52ec61f1e84 100644 --- a/devel/electron39/files/patch-components_feature__engagement_public_feature__list.h +++ b/devel/electron39/files/patch-components_feature__engagement_public_feature__list.h @@ -1,58 +1,58 @@ ---- components/feature_engagement/public/feature_list.h.orig 2025-10-21 20:19:54 UTC +--- components/feature_engagement/public/feature_list.h.orig 2025-11-10 21:36:56 UTC +++ components/feature_engagement/public/feature_list.h -@@ -359,7 +359,7 @@ DEFINE_VARIATION_PARAM(kIPHiOSAIHubNewBadge, "IPH_iOSA +@@ -357,7 +357,7 @@ DEFINE_VARIATION_PARAM(kIPHiOSAIHubNewBadge, "IPH_iOSA #endif // BUILDFLAG(IS_IOS) #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \ - BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) #if BUILDFLAG(GOOGLE_CHROME_BRANDING) DEFINE_VARIATION_PARAM(kEsbDownloadRowPromoFeature, "EsbDownloadRowPromo"); #endif -@@ -479,7 +479,8 @@ DEFINE_VARIATION_PARAM(kIPHTabGroupsSharedTabFeedbackF +@@ -478,7 +478,8 @@ DEFINE_VARIATION_PARAM(kIPHTabGroupsSharedTabFeedbackF // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \ - BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || \ + BUILDFLAG(IS_BSD) DEFINE_VARIATION_PARAM(kIPHAutofillAiOptInFeature, "IPH_AutofillAiOptIn"); DEFINE_VARIATION_PARAM(kIPHAutofillBnplAffirmOrZipSuggestionFeature, "IPH_AutofillBnplAffirmOrZipSuggestion"); -@@ -581,7 +582,7 @@ DEFINE_VARIATION_PARAM(kIPHScalableIphGamingFeature, " +@@ -580,7 +581,7 @@ DEFINE_VARIATION_PARAM(kIPHScalableIphGamingFeature, " DEFINE_VARIATION_PARAM(kIPHScalableIphGamingFeature, "IPH_ScalableIphGaming"); #endif // BUILDFLAG(IS_CHROMEOS) -#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) DEFINE_VARIATION_PARAM(kIPHDesktopPWAsLinkCapturingLaunch, "IPH_DesktopPWAsLinkCapturingLaunch"); DEFINE_VARIATION_PARAM(kIPHDesktopPWAsLinkCapturingLaunchAppInTab, -@@ -783,7 +784,7 @@ inline constexpr flags_ui::FeatureEntry::FeatureVariat +@@ -782,7 +783,7 @@ inline constexpr flags_ui::FeatureEntry::FeatureVariat VARIATION_ENTRY(kIPHIOSPageActionMenu), VARIATION_ENTRY(kIPHiOSAIHubNewBadge), #elif BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ - BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_BSD) VARIATION_ENTRY(kIPHBatterySaverModeFeature), VARIATION_ENTRY(kIPHCompanionSidePanelFeature), VARIATION_ENTRY(kIPHCompanionSidePanelRegionSearchFeature), @@ -844,7 +845,8 @@ inline constexpr flags_ui::FeatureEntry::FeatureVariat // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \ - BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || \ + BUILDFLAG(IS_BSD) VARIATION_ENTRY(kIPHAutofillAiOptInFeature), VARIATION_ENTRY(kIPHAutofillCreditCardBenefitFeature), VARIATION_ENTRY(kIPHAutofillCardInfoRetrievalSuggestionFeature), @@ -899,7 +901,7 @@ inline constexpr flags_ui::FeatureEntry::FeatureVariat VARIATION_ENTRY(kIPHScalableIphGamingFeature), #endif // BUILDFLAG(IS_CHROMEOS) -#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) VARIATION_ENTRY(kIPHDesktopPWAsLinkCapturingLaunch), VARIATION_ENTRY(kIPHDesktopPWAsLinkCapturingLaunchAppInTab), VARIATION_ENTRY(kIPHSignInBenefitsFeature), diff --git a/devel/electron39/files/patch-electron_shell_browser_api_electron__api__app.cc b/devel/electron39/files/patch-electron_shell_browser_api_electron__api__app.cc index 662298f7550c..a8893e5d33de 100644 --- a/devel/electron39/files/patch-electron_shell_browser_api_electron__api__app.cc +++ b/devel/electron39/files/patch-electron_shell_browser_api_electron__api__app.cc @@ -1,74 +1,74 @@ ---- electron/shell/browser/api/electron_api_app.cc.orig 2025-10-27 17:58:27 UTC +--- electron/shell/browser/api/electron_api_app.cc.orig 2025-11-13 22:50:46 UTC +++ electron/shell/browser/api/electron_api_app.cc @@ -98,7 +98,7 @@ #include "shell/common/process_util.h" #endif -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) #include "base/nix/scoped_xdg_activation_token_injector.h" #include "base/nix/xdg_util.h" #endif @@ -426,7 +426,7 @@ bool NotificationCallbackWrapper( base::CommandLine cmd, const base::FilePath& cwd, const std::vector additional_data) { -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) // Set the global activation token sent as a command line switch by another // electron app instance. This also removes the switch after use to prevent // any side effects of leaving it in the command line after this point. @@ -612,7 +612,7 @@ void App::OnFinishLaunching(base::Value::Dict launch_i } void App::OnFinishLaunching(base::Value::Dict launch_info) { -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) // Set the application name for audio streams shown in external // applications. Only affects pulseaudio currently. media::AudioManager::SetGlobalAppName(Browser::Get()->GetName()); @@ -955,7 +955,7 @@ void App::SetDesktopName(const std::string& desktop_na } void App::SetDesktopName(const std::string& desktop_name) { -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) auto env = base::Environment::Create(); env->SetVar("CHROME_DESKTOP", desktop_name); #endif @@ -1059,7 +1059,7 @@ bool App::RequestSingleInstanceLock(gin::Arguments* ar base::BindRepeating(NotificationCallbackWrapper, cb)); #endif -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) // Read the xdg-activation token and set it in the command line for the // duration of the notification in order to ensure this is propagated to an // already running electron app instance if it exists. -@@ -1436,7 +1436,7 @@ std::vector App::GetAppMetrics +@@ -1447,7 +1447,7 @@ std::vector App::GetAppMetrics pid_dict.Set("name", process_metric.second->name); } -#if !BUILDFLAG(IS_LINUX) +#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD) auto memory_info = process_metric.second->GetMemoryInfo(); auto memory_dict = gin_helper::Dictionary::CreateEmpty(isolate); -@@ -1833,7 +1833,7 @@ gin::ObjectTemplateBuilder App::GetObjectTemplateBuild +@@ -1844,7 +1844,7 @@ gin::ObjectTemplateBuilder App::GetObjectTemplateBuild .SetMethod( "removeAsDefaultProtocolClient", base::BindRepeating(&Browser::RemoveAsDefaultProtocolClient, browser)) -#if !BUILDFLAG(IS_LINUX) +#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD) .SetMethod( "getApplicationInfoForProtocol", base::BindRepeating(&Browser::GetApplicationInfoForProtocol, browser)) -@@ -1891,7 +1891,7 @@ gin::ObjectTemplateBuilder App::GetObjectTemplateBuild +@@ -1902,7 +1902,7 @@ gin::ObjectTemplateBuilder App::GetObjectTemplateBuild .SetMethod("getJumpListSettings", &App::GetJumpListSettings) .SetMethod("setJumpList", &App::SetJumpList) #endif -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) .SetMethod("isUnityRunning", base::BindRepeating(&Browser::IsUnityRunning, browser)) #endif diff --git a/devel/electron39/files/patch-electron_shell_browser_api_electron__api__base__window.cc b/devel/electron39/files/patch-electron_shell_browser_api_electron__api__base__window.cc index 5fd808005b17..e8d391922821 100644 --- a/devel/electron39/files/patch-electron_shell_browser_api_electron__api__base__window.cc +++ b/devel/electron39/files/patch-electron_shell_browser_api_electron__api__base__window.cc @@ -1,38 +1,38 @@ ---- electron/shell/browser/api/electron_api_base_window.cc.orig 2025-10-27 17:58:27 UTC +--- electron/shell/browser/api/electron_api_base_window.cc.orig 2025-11-13 22:50:46 UTC +++ electron/shell/browser/api/electron_api_base_window.cc -@@ -43,7 +43,7 @@ +@@ -44,7 +44,7 @@ #include "shell/browser/ui/views/win_frame_view.h" #include "shell/browser/ui/win/taskbar_host.h" #include "ui/base/win/shell.h" -#elif BUILDFLAG(IS_LINUX) +#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) #include "shell/browser/ui/views/opaque_frame_view.h" #endif -@@ -1033,7 +1033,7 @@ void BaseWindow::SetIconImpl(v8::Isolate* isolate, +@@ -1034,7 +1034,7 @@ void BaseWindow::SetIconImpl(v8::Isolate* isolate, static_cast(window_.get()) ->SetIcon(native_image->GetHICON(GetSystemMetrics(SM_CXSMICON)), native_image->GetHICON(GetSystemMetrics(SM_CXICON))); -#elif BUILDFLAG(IS_LINUX) +#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) static_cast(window_.get()) ->SetIcon(native_image->image().AsImageSkia()); #endif -@@ -1121,7 +1121,7 @@ v8::Local BaseWindow::GetAccentColor() cons +@@ -1126,7 +1126,7 @@ v8::Local BaseWindow::GetAccentColor() cons } #endif -#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) void BaseWindow::SetTitleBarOverlay(const gin_helper::Dictionary& options, gin_helper::Arguments* args) { static_cast(window_.get()) -@@ -1318,7 +1318,7 @@ void BaseWindow::BuildPrototype(v8::Isolate* isolate, +@@ -1323,7 +1323,7 @@ void BaseWindow::BuildPrototype(v8::Isolate* isolate, .SetMethod("setThumbnailToolTip", &BaseWindow::SetThumbnailToolTip) .SetMethod("setAppDetails", &BaseWindow::SetAppDetails) #endif -#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) .SetMethod("setTitleBarOverlay", &BaseWindow::SetTitleBarOverlay) #endif .SetProperty("id", &BaseWindow::GetID); diff --git a/devel/electron39/files/patch-electron_shell_browser_electron__browser__main__parts.cc b/devel/electron39/files/patch-electron_shell_browser_electron__browser__main__parts.cc index c3ef522381d5..92d61f60bf77 100644 --- a/devel/electron39/files/patch-electron_shell_browser_electron__browser__main__parts.cc +++ b/devel/electron39/files/patch-electron_shell_browser_electron__browser__main__parts.cc @@ -1,84 +1,84 @@ ---- electron/shell/browser/electron_browser_main_parts.cc.orig 2025-10-27 17:58:27 UTC +--- electron/shell/browser/electron_browser_main_parts.cc.orig 2025-11-13 22:50:46 UTC +++ electron/shell/browser/electron_browser_main_parts.cc -@@ -76,7 +76,7 @@ +@@ -77,7 +77,7 @@ #include "ui/wm/core/wm_state.h" #endif -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) #include "base/environment.h" #include "chrome/browser/ui/views/dark_mode_manager_linux.h" #include "device/bluetooth/bluetooth_adapter_factory.h" -@@ -129,7 +129,7 @@ namespace { +@@ -130,7 +130,7 @@ namespace { namespace { -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) class LinuxUiGetterImpl : public ui::LinuxUiGetter { public: LinuxUiGetterImpl() = default; -@@ -211,7 +211,7 @@ int ElectronBrowserMainParts::PreEarlyInitialization() +@@ -212,7 +212,7 @@ int ElectronBrowserMainParts::PreEarlyInitialization() #if BUILDFLAG(IS_OZONE) // Initialize Ozone platform and add required feature flags as per platform's // properties. -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) ui::SetOzonePlatformForLinuxIfNeeded(*base::CommandLine::ForCurrentProcess()); #endif ui::OzonePlatform::PreEarlyInitialization(); -@@ -304,7 +304,7 @@ int ElectronBrowserMainParts::PreCreateThreads() { +@@ -309,7 +309,7 @@ int ElectronBrowserMainParts::PreCreateThreads() { // happen before the ResourceBundle is loaded if (locale.empty()) l10n_util::OverrideLocaleWithCocoaLocale(); -#elif BUILDFLAG(IS_LINUX) +#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) // l10n_util::GetApplicationLocaleInternal uses g_get_language_names(), // which keys off of getenv("LC_ALL"). // We must set this env first to make ui::ResourceBundle accept the custom -@@ -333,7 +333,7 @@ int ElectronBrowserMainParts::PreCreateThreads() { +@@ -338,7 +338,7 @@ int ElectronBrowserMainParts::PreCreateThreads() { ElectronBrowserClient::SetApplicationLocale(app_locale); fake_browser_process_->SetApplicationLocale(app_locale); -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) // Reset to the original LC_ALL since we should not be changing it. if (!locale.empty()) { if (lc_all) -@@ -390,7 +390,7 @@ void ElectronBrowserMainParts::ToolkitInitialized() { +@@ -395,7 +395,7 @@ void ElectronBrowserMainParts::ToolkitInitialized() { } void ElectronBrowserMainParts::ToolkitInitialized() { -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) auto* linux_ui = ui::GetDefaultLinuxUi(); CHECK(linux_ui); linux_ui_getter_ = std::make_unique(); -@@ -497,7 +497,7 @@ void ElectronBrowserMainParts::PostCreateMainMessageLo +@@ -502,7 +502,7 @@ void ElectronBrowserMainParts::PostCreateMainMessageLo } void ElectronBrowserMainParts::PostCreateMainMessageLoop() { -#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) std::string app_name = electron::Browser::Get()->GetName(); #endif #if BUILDFLAG(IS_LINUX) -@@ -509,7 +509,9 @@ void ElectronBrowserMainParts::PostCreateMainMessageLo +@@ -514,7 +514,9 @@ void ElectronBrowserMainParts::PostCreateMainMessageLo if (!bluez::BluezDBusManager::IsInitialized()) bluez::DBusBluezManagerWrapperLinux::Initialize(); +#endif +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) // Set up crypt config. This needs to be done before anything starts the // network service, as the raw encryption key needs to be shared with the // network service for encrypted cookie storage. -@@ -604,7 +606,7 @@ void ElectronBrowserMainParts::PostMainMessageLoopRun( +@@ -609,7 +611,7 @@ void ElectronBrowserMainParts::PostMainMessageLoopRun( fake_browser_process_->PostMainMessageLoopRun(); content::DevToolsAgentHost::StopRemoteDebuggingPipeHandler(); -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) ui::OzonePlatform::GetInstance()->PostMainMessageLoopRun(); #endif } diff --git a/devel/electron39/files/patch-electron_shell_browser_native__window.cc b/devel/electron39/files/patch-electron_shell_browser_native__window.cc index c831d05393b9..1328f75e7c32 100644 --- a/devel/electron39/files/patch-electron_shell_browser_native__window.cc +++ b/devel/electron39/files/patch-electron_shell_browser_native__window.cc @@ -1,11 +1,11 @@ ---- electron/shell/browser/native_window.cc.orig 2025-09-02 20:56:04 UTC +--- electron/shell/browser/native_window.cc.orig 2025-11-13 22:50:46 UTC +++ electron/shell/browser/native_window.cc -@@ -184,7 +184,7 @@ void NativeWindow::InitFromOptions(const gin_helper::D +@@ -185,7 +185,7 @@ void NativeWindow::InitFromOptions(const gin_helper::D } else { SetSizeConstraints(size_constraints); } -#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) if (bool val; options.Get(options::kClosable, &val)) SetClosable(val); #endif diff --git a/devel/electron39/files/patch-electron_shell_browser_native__window__views.cc b/devel/electron39/files/patch-electron_shell_browser_native__window__views.cc index a2c99b2b5972..01f86420cf54 100644 --- a/devel/electron39/files/patch-electron_shell_browser_native__window__views.cc +++ b/devel/electron39/files/patch-electron_shell_browser_native__window__views.cc @@ -1,191 +1,191 @@ ---- electron/shell/browser/native_window_views.cc.orig 2025-10-27 17:58:27 UTC +--- electron/shell/browser/native_window_views.cc.orig 2025-11-13 22:50:46 UTC +++ electron/shell/browser/native_window_views.cc @@ -53,7 +53,7 @@ #include "ui/wm/core/shadow_types.h" #include "ui/wm/core/window_util.h" -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) #include "base/notimplemented.h" #include "shell/browser/browser.h" #include "shell/browser/linux/unity_service.h" @@ -283,7 +283,7 @@ NativeWindowViews::NativeWindowViews(const gin_helper: params.parent = parent->GetNativeWindow(); params.native_widget = new ElectronDesktopNativeWidgetAura{this, widget()}; -#elif BUILDFLAG(IS_LINUX) +#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) std::string name = Browser::Get()->GetName(); // Set WM_WINDOW_ROLE. params.wm_role_name = "browser-window"; @@ -308,7 +308,7 @@ NativeWindowViews::NativeWindowViews(const gin_helper: std::string window_type; options.Get(options::kType, &window_type); -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) // Set _GTK_THEME_VARIANT to dark if we have "dark-theme" option set. if (options.ValueOrDefault(options::kDarkTheme, false)) SetGTKDarkThemeEnabled(true); @@ -429,7 +429,7 @@ NativeWindowViews::NativeWindowViews(const gin_helper: if (window) window->AddPreTargetHandler(this); -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) // On linux after the widget is initialized we might have to force set the // bounds if the bounds are smaller than the current display SetBounds(gfx::Rect(GetPosition(), bounds.size()), false); @@ -503,7 +503,7 @@ void NativeWindowViews::SetGTKDarkThemeEnabled(bool us } void NativeWindowViews::SetGTKDarkThemeEnabled(bool use_dark_theme) { -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) if (x11_util::IsX11()) { const std::string color = use_dark_theme ? "dark" : "light"; auto* connection = x11::Connection::Get(); @@ -564,7 +564,7 @@ void NativeWindowViews::Show() { NotifyWindowShow(); -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) if (global_menu_bar_) global_menu_bar_->OnWindowMapped(); @@ -580,7 +580,7 @@ void NativeWindowViews::ShowInactive() { NotifyWindowShow(); -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) if (global_menu_bar_) global_menu_bar_->OnWindowMapped(); @@ -599,7 +599,7 @@ void NativeWindowViews::Hide() { NotifyWindowHide(); -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) if (global_menu_bar_) global_menu_bar_->OnWindowUnmapped(); #endif @@ -630,7 +630,7 @@ bool NativeWindowViews::IsEnabled() const { bool NativeWindowViews::IsEnabled() const { #if BUILDFLAG(IS_WIN) return ::IsWindowEnabled(GetAcceleratedWidget()); -#elif BUILDFLAG(IS_LINUX) +#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) if (x11_util::IsX11()) return !event_disabler_.get(); NOTIMPLEMENTED(); @@ -864,7 +864,7 @@ void NativeWindowViews::SetBounds(const gfx::Rect& bou } #endif -#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) // On Linux and Windows the minimum and maximum size should be updated with // window size when window is not resizable. if (!CanResize()) { @@ -1124,7 +1124,7 @@ bool NativeWindowViews::IsClosable() const { return false; } return !(info.fState & MFS_DISABLED); -#elif BUILDFLAG(IS_LINUX) +#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) return true; #endif } @@ -1164,7 +1164,7 @@ void NativeWindowViews::Center() { // for now to avoid breaking API contract, but should consider the long // term plan for this aligning with upstream. void NativeWindowViews::Center() { -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) auto display = display::Screen::Get()->GetDisplayNearestWindow(GetNativeWindow()); gfx::Rect window_bounds_in_screen = display.work_area(); -@@ -1380,7 +1380,7 @@ void NativeWindowViews::SetMenu(ElectronMenuModel* men +@@ -1381,7 +1381,7 @@ void NativeWindowViews::SetMenu(ElectronMenuModel* men } void NativeWindowViews::SetMenu(ElectronMenuModel* menu_model) { -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) // Remove global menu bar. if (global_menu_bar_ && menu_model == nullptr) { global_menu_bar_.reset(); -@@ -1436,7 +1436,7 @@ void NativeWindowViews::SetParentWindow(NativeWindow* +@@ -1437,7 +1437,7 @@ void NativeWindowViews::SetParentWindow(NativeWindow* void NativeWindowViews::SetParentWindow(NativeWindow* parent) { NativeWindow::SetParentWindow(parent); -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) if (x11_util::IsX11()) { auto* connection = x11::Connection::Get(); connection->SetProperty( -@@ -1482,7 +1482,7 @@ void NativeWindowViews::SetProgressBar(double progress +@@ -1483,7 +1483,7 @@ void NativeWindowViews::SetProgressBar(double progress NativeWindow::ProgressState state) { #if BUILDFLAG(IS_WIN) taskbar_host_.SetProgressBar(GetAcceleratedWidget(), progress, state); -#elif BUILDFLAG(IS_LINUX) +#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) if (unity::IsRunning()) { unity::SetProgressFraction(progress); } -@@ -1608,7 +1608,7 @@ content::DesktopMediaID NativeWindowViews::GetDesktopM +@@ -1609,7 +1609,7 @@ content::DesktopMediaID NativeWindowViews::GetDesktopM #if BUILDFLAG(IS_WIN) window_handle = reinterpret_cast(accelerated_widget); -#elif BUILDFLAG(IS_LINUX) +#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) window_handle = static_cast(accelerated_widget); #endif aura::WindowTreeHost* const host = -@@ -1706,7 +1706,7 @@ void NativeWindowViews::SetIcon(HICON window_icon, HIC +@@ -1707,7 +1707,7 @@ void NativeWindowViews::SetIcon(HICON window_icon, HIC SendMessage(hwnd, WM_SETICON, ICON_BIG, reinterpret_cast(app_icon_.get())); } -#elif BUILDFLAG(IS_LINUX) +#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) void NativeWindowViews::SetIcon(const gfx::ImageSkia& icon) { auto* tree_host = views::DesktopWindowTreeHostLinux::GetHostForWidget( GetAcceleratedWidget()); -@@ -1827,7 +1827,7 @@ bool NativeWindowViews::CanMinimize() const { +@@ -1828,7 +1828,7 @@ bool NativeWindowViews::CanMinimize() const { bool NativeWindowViews::CanMinimize() const { #if BUILDFLAG(IS_WIN) return minimizable_; -#elif BUILDFLAG(IS_LINUX) +#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) return true; #endif } -@@ -1869,7 +1869,7 @@ std::unique_ptr NativeWindowViews::C +@@ -1870,7 +1870,7 @@ std::unique_ptr NativeWindowViews::C #endif } -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) electron::ClientFrameViewLinux* NativeWindowViews::GetClientFrameViewLinux() { // Check to make sure this window's non-client frame view is a // ClientFrameViewLinux. If either has_frame() or has_client_frame() -@@ -1892,7 +1892,7 @@ void NativeWindowViews::HandleKeyboardEvent( +@@ -1893,7 +1893,7 @@ void NativeWindowViews::HandleKeyboardEvent( if (widget_destroyed_) return; -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) if (event.windows_key_code == ui::VKEY_BROWSER_BACK) NotifyWindowExecuteAppCommand(kBrowserBackward); else if (event.windows_key_code == ui::VKEY_BROWSER_FORWARD) -@@ -1911,7 +1911,7 @@ void NativeWindowViews::OnMouseEvent(ui::MouseEvent* e +@@ -1912,7 +1912,7 @@ void NativeWindowViews::OnMouseEvent(ui::MouseEvent* e // Alt+Click should not toggle menu bar. root_view_.ResetAltState(); -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) if (event->changed_button_flags() == ui::EF_BACK_MOUSE_BUTTON) NotifyWindowExecuteAppCommand(kBrowserBackward); else if (event->changed_button_flags() == ui::EF_FORWARD_MOUSE_BUTTON) diff --git a/devel/electron39/files/patch-electron_shell_browser_ui_inspectable__web__contents.cc b/devel/electron39/files/patch-electron_shell_browser_ui_inspectable__web__contents.cc index 0f8ee420a301..407fbfe7b4c6 100644 --- a/devel/electron39/files/patch-electron_shell_browser_ui_inspectable__web__contents.cc +++ b/devel/electron39/files/patch-electron_shell_browser_ui_inspectable__web__contents.cc @@ -1,11 +1,11 @@ ---- electron/shell/browser/ui/inspectable_web_contents.cc.orig 2025-10-27 17:58:27 UTC +--- electron/shell/browser/ui/inspectable_web_contents.cc.orig 2025-11-13 22:50:46 UTC +++ electron/shell/browser/ui/inspectable_web_contents.cc -@@ -549,7 +549,7 @@ void InspectableWebContents::LoadCompleted() { +@@ -555,7 +555,7 @@ void InspectableWebContents::LoadCompleted() { prefs.FindString("currentDockState"); base::RemoveChars(*current_dock_state, "\"", &dock_state_); } -#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) auto* api_web_contents = api::WebContents::From(GetWebContents()); if (api_web_contents) { auto* win = diff --git a/devel/electron39/files/patch-electron_shell_browser_ui_inspectable__web__contents__view.cc b/devel/electron39/files/patch-electron_shell_browser_ui_inspectable__web__contents__view.cc index 080d256f9b7a..fc0e7b844b29 100644 --- a/devel/electron39/files/patch-electron_shell_browser_ui_inspectable__web__contents__view.cc +++ b/devel/electron39/files/patch-electron_shell_browser_ui_inspectable__web__contents__view.cc @@ -1,11 +1,11 @@ ---- electron/shell/browser/ui/inspectable_web_contents_view.cc.orig 2025-09-02 20:56:04 UTC +--- electron/shell/browser/ui/inspectable_web_contents_view.cc.orig 2025-11-13 22:50:46 UTC +++ electron/shell/browser/ui/inspectable_web_contents_view.cc -@@ -181,7 +181,7 @@ void InspectableWebContentsView::SetIsDocked(bool dock +@@ -198,7 +198,7 @@ void InspectableWebContentsView::SetIsDocked(bool dock params.delegate = devtools_window_delegate_; params.bounds = inspectable_web_contents()->dev_tools_bounds(); -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) params.wm_role_name = "devtools"; if (GetDelegate()) GetDelegate()->GetDevToolsWindowWMClass(¶ms.wm_class_name, diff --git a/devel/electron39/files/patch-electron_shell_services_node_node__service.cc b/devel/electron39/files/patch-electron_shell_services_node_node__service.cc index ffdc4a1ce79b..a0639d57c40c 100644 --- a/devel/electron39/files/patch-electron_shell_services_node_node__service.cc +++ b/devel/electron39/files/patch-electron_shell_services_node_node__service.cc @@ -1,20 +1,20 @@ ---- electron/shell/services/node/node_service.cc.orig 2025-10-27 17:58:27 UTC +--- electron/shell/services/node/node_service.cc.orig 2025-11-13 22:50:46 UTC +++ electron/shell/services/node/node_service.cc -@@ -24,7 +24,7 @@ - #include "shell/common/node_includes.h" +@@ -26,7 +26,7 @@ + #include "shell/common/v8_util.h" #include "shell/services/node/parent_port.h" -#if !IS_MAS_BUILD() +#if !IS_MAS_BUILD() && !BUILDFLAG(IS_BSD) #include "shell/common/crash_keys.h" #endif -@@ -45,7 +45,7 @@ void V8FatalErrorCallback(const char* location, const +@@ -47,7 +47,7 @@ void V8FatalErrorCallback(const char* location, const GetRemote()->OnV8FatalError(location, outstream.str()); } -#if !IS_MAS_BUILD() +#if !IS_MAS_BUILD() && !BUILDFLAG(IS_BSD) electron::crash_keys::SetCrashKey("electron.v8-fatal.message", message); electron::crash_keys::SetCrashKey("electron.v8-fatal.location", location); #endif diff --git a/devel/electron39/files/patch-electron_spec_api-app-spec.ts b/devel/electron39/files/patch-electron_spec_api-app-spec.ts index 2d68e21081b7..5125e2072163 100644 --- a/devel/electron39/files/patch-electron_spec_api-app-spec.ts +++ b/devel/electron39/files/patch-electron_spec_api-app-spec.ts @@ -1,133 +1,133 @@ ---- electron/spec/api-app-spec.ts.orig 2025-10-28 14:56:59 UTC +--- electron/spec/api-app-spec.ts.orig 2025-11-13 22:50:46 UTC +++ electron/spec/api-app-spec.ts @@ -129,11 +129,11 @@ describe('app module', () => { }); describe('app.getPreferredSystemLanguages()', () => { - ifit(process.platform !== 'linux')('should not be empty', () => { + ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('should not be empty', () => { expect(app.getPreferredSystemLanguages().length).to.not.equal(0); }); - ifit(process.platform === 'linux')('should be empty or contain C entry', () => { + ifit(process.platform === 'linux' || process.platform === 'freebsd')('should be empty or contain C entry', () => { const languages = app.getPreferredSystemLanguages(); if (languages.length) { expect(languages).to.not.include('C'); -@@ -196,7 +196,7 @@ describe('app module', () => { +@@ -202,7 +202,7 @@ describe('app module', () => { expect(code).to.equal(123, 'exit code should be 123, if you see this please tag @MarshallOfSound'); }); - ifit(['darwin', 'linux'].includes(process.platform))('exits gracefully', async function () { + ifit(['darwin', 'linux', 'freebsd'].includes(process.platform))('exits gracefully', async function () { const electronPath = process.execPath; const appPath = path.join(fixturesPath, 'api', 'singleton'); appProcess = cp.spawn(electronPath, [appPath]); -@@ -360,7 +360,7 @@ describe('app module', () => { +@@ -366,7 +366,7 @@ describe('app module', () => { }); // GitHub Actions macOS-13 runners used for x64 seem to have a problem with this test. - ifdescribe(process.platform !== 'linux' && !isMacOSx64)('app.{add|get|clear}RecentDocument(s)', () => { + ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd' && !isMacOSx64)('app.{add|get|clear}RecentDocument(s)', () => { const tempFiles = [ path.join(fixturesPath, 'foo.txt'), path.join(fixturesPath, 'bar.txt'), -@@ -488,7 +488,7 @@ describe('app module', () => { +@@ -494,7 +494,7 @@ describe('app module', () => { // let w = null // before(function () { - // if (process.platform !== 'linux') { + // if (process.platform !== 'linux' && process.platform !== 'freebsd') { // this.skip() // } // }) -@@ -595,7 +595,7 @@ describe('app module', () => { +@@ -601,7 +601,7 @@ describe('app module', () => { describe('app.badgeCount', () => { const platformIsNotSupported = (process.platform === 'win32') || - (process.platform === 'linux' && !app.isUnityRunning()); + (process.platform === 'linux' && !app.isUnityRunning()) || (process.platform === 'freebsd'); const expectedBadgeCount = 42; -@@ -639,7 +639,7 @@ describe('app module', () => { +@@ -645,7 +645,7 @@ describe('app module', () => { }); }); - ifdescribe(process.platform !== 'linux' && !process.mas && (process.platform !== 'darwin' || process.arch === 'arm64'))('app.get/setLoginItemSettings API', function () { + ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd' && !process.mas && (process.platform !== 'darwin' || process.arch === 'arm64'))('app.get/setLoginItemSettings API', function () { const isMac = process.platform === 'darwin'; const isWin = process.platform === 'win32'; -@@ -1019,7 +1019,7 @@ describe('app module', () => { +@@ -1025,7 +1025,7 @@ describe('app module', () => { }); }); - ifdescribe(process.platform !== 'linux')('accessibility support functionality', () => { + ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('accessibility support functionality', () => { it('is mutable', () => { const values = [false, true, false]; const setters: Array<(arg: boolean) => void> = [ -@@ -1288,7 +1288,7 @@ describe('app module', () => { +@@ -1294,7 +1294,7 @@ describe('app module', () => { }); }); - ifdescribe(process.platform !== 'linux')('select-client-certificate event', () => { + ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('select-client-certificate event', () => { let w: BrowserWindow; before(function () { -@@ -1423,7 +1423,7 @@ describe('app module', () => { +@@ -1429,7 +1429,7 @@ describe('app module', () => { describe('getApplicationNameForProtocol()', () => { // TODO: Linux CI doesn't have registered http & https handlers - ifit(!(process.env.CI && process.platform === 'linux'))('returns application names for common protocols', function () { + ifit(!(process.env.CI && (process.platform === 'linux' || process.platform === 'freebsd')))('returns application names for common protocols', function () { // We can't expect particular app names here, but these protocols should // at least have _something_ registered. Except on our Linux CI // environment apparently. -@@ -1441,7 +1441,7 @@ describe('app module', () => { +@@ -1447,7 +1447,7 @@ describe('app module', () => { }); }); - ifdescribe(process.platform !== 'linux')('getApplicationInfoForProtocol()', () => { + ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('getApplicationInfoForProtocol()', () => { it('returns promise rejection for a bogus protocol', async function () { await expect( app.getApplicationInfoForProtocol('bogus-protocol://') -@@ -1491,7 +1491,7 @@ describe('app module', () => { +@@ -1497,7 +1497,7 @@ describe('app module', () => { }); // FIXME Get these specs running on Linux CI - ifdescribe(process.platform !== 'linux')('getFileIcon() API', () => { + ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('getFileIcon() API', () => { const iconPath = path.join(__dirname, 'fixtures/assets/icon.ico'); const sizes = { small: 16, -@@ -1573,7 +1573,7 @@ describe('app module', () => { +@@ -1579,7 +1579,7 @@ describe('app module', () => { expect(entry.memory).to.have.property('privateBytes').that.is.greaterThan(0); } - if (process.platform !== 'linux') { + if (process.platform !== 'linux' && process.platform !== 'freebsd') { expect(entry.sandboxed).to.be.a('boolean'); } -@@ -1647,7 +1647,7 @@ describe('app module', () => { +@@ -1653,7 +1653,7 @@ describe('app module', () => { it('succeeds with complete GPUInfo', async () => { const completeInfo = await getGPUInfo('complete'); - if (process.platform === 'linux') { + if (process.platform === 'linux' || process.platform === 'freebsd') { // For linux and macOS complete info is same as basic info await verifyBasicGPUInfo(completeInfo); const basicInfo = await getGPUInfo('basic'); -@@ -1671,7 +1671,7 @@ describe('app module', () => { +@@ -1677,7 +1677,7 @@ describe('app module', () => { }); }); - ifdescribe(!(process.platform === 'linux' && (process.arch === 'arm64' || process.arch === 'arm')))('sandbox options', () => { + ifdescribe(!((process.platform === 'linux' || process.platform === 'freebsd') && (process.arch === 'arm64' || process.arch === 'arm')))('sandbox options', () => { let appProcess: cp.ChildProcess = null as any; let server: net.Server = null as any; const socketPath = process.platform === 'win32' ? '\\\\.\\pipe\\electron-mixed-sandbox' : '/tmp/electron-mixed-sandbox'; diff --git a/devel/electron39/files/patch-electron_spec_api-browser-window-spec.ts b/devel/electron39/files/patch-electron_spec_api-browser-window-spec.ts index 1ffc60bcc24c..c74b14c0c005 100644 --- a/devel/electron39/files/patch-electron_spec_api-browser-window-spec.ts +++ b/devel/electron39/files/patch-electron_spec_api-browser-window-spec.ts @@ -1,182 +1,182 @@ ---- electron/spec/api-browser-window-spec.ts.orig 2025-10-27 17:58:27 UTC +--- electron/spec/api-browser-window-spec.ts.orig 2025-11-13 22:50:46 UTC +++ electron/spec/api-browser-window-spec.ts @@ -69,7 +69,7 @@ describe('BrowserWindow module', () => { }).not.to.throw(); }); - ifit(process.platform === 'linux')('does not crash when setting large window icons', async () => { + ifit(process.platform === 'linux' || process.platform === 'freebsd')('does not crash when setting large window icons', async () => { const appPath = path.join(fixtures, 'apps', 'xwindow-icon'); const appProcess = childProcess.spawn(process.execPath, [appPath]); await once(appProcess, 'exit'); @@ -326,7 +326,7 @@ describe('BrowserWindow module', () => { }); }); - ifdescribe(process.platform !== 'linux')('BrowserWindow.getContentProtection', () => { + ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('BrowserWindow.getContentProtection', () => { afterEach(closeAllWindows); it('can set content protection', async () => { const w = new BrowserWindow({ show: false }); @@ -1197,7 +1197,7 @@ describe('BrowserWindow module', () => { describe('BrowserWindow.minimize()', () => { // TODO(codebytere): Enable for Linux once maximize/minimize events work in CI. - ifit(process.platform !== 'linux')('should not be visible when the window is minimized', async () => { + ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('should not be visible when the window is minimized', async () => { const minimize = once(w, 'minimize'); w.minimize(); await minimize; @@ -1214,7 +1214,7 @@ describe('BrowserWindow module', () => { }); // TODO(dsanders11): Enable for Linux once CI plays nice with these kinds of tests - ifit(process.platform !== 'linux')('should not restore maximized windows', async () => { + ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('should not restore maximized windows', async () => { const maximize = once(w, 'maximize'); const shown = once(w, 'show'); w.maximize(); @@ -1279,7 +1279,7 @@ describe('BrowserWindow module', () => { expect(w.isFocused()).to.equal(true); }); - ifit(process.platform !== 'linux')('acquires focus status from the other windows', async () => { + ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('acquires focus status from the other windows', async () => { const w1 = new BrowserWindow({ show: false }); const w2 = new BrowserWindow({ show: false }); const w3 = new BrowserWindow({ show: false }); @@ -1381,7 +1381,7 @@ describe('BrowserWindow module', () => { expect(w.isFocused()).to.equal(false); }); - ifit(process.platform !== 'linux')('transfers focus status to the next window', async () => { + ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('transfers focus status to the next window', async () => { const w1 = new BrowserWindow({ show: false }); const w2 = new BrowserWindow({ show: false }); const w3 = new BrowserWindow({ show: false }); @@ -1840,7 +1840,7 @@ describe('BrowserWindow module', () => { }); }); - ifdescribe(process.platform !== 'linux')('Maximized state', () => { + ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('Maximized state', () => { it('checks normal bounds when maximized', async () => { const bounds = w.getBounds(); const maximize = once(w, 'maximize'); @@ -2050,7 +2050,7 @@ describe('BrowserWindow module', () => { }); }); - ifdescribe(process.platform !== 'linux')('Minimized state', () => { + ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('Minimized state', () => { it('checks normal bounds when minimized', async () => { const bounds = w.getBounds(); const minimize = once(w, 'minimize'); -@@ -3108,7 +3108,7 @@ describe('BrowserWindow module', () => { +@@ -3124,7 +3124,7 @@ describe('BrowserWindow module', () => { describe('BrowserWindow.setOpacity(opacity)', () => { afterEach(closeAllWindows); - ifdescribe(process.platform !== 'linux')(('Windows and Mac'), () => { + ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')(('Windows and Mac'), () => { it('make window with initial opacity', () => { const w = new BrowserWindow({ show: false, opacity: 0.5 }); expect(w.getOpacity()).to.equal(0.5); -@@ -3134,7 +3134,7 @@ describe('BrowserWindow module', () => { +@@ -3150,7 +3150,7 @@ describe('BrowserWindow module', () => { }); }); - ifdescribe(process.platform === 'linux')(('Linux'), () => { + ifdescribe(process.platform === 'linux' || process.platform === 'freebsd')(('Linux'), () => { it('sets 1 regardless of parameter', () => { const w = new BrowserWindow({ show: false }); w.setOpacity(0); -@@ -3345,7 +3345,7 @@ describe('BrowserWindow module', () => { +@@ -3361,7 +3361,7 @@ describe('BrowserWindow module', () => { expect(overlayRectPreMax.height).to.equal(size); // 'maximize' event is not emitted on Linux in CI. - if (process.platform !== 'linux' && !w.isMaximized()) { + if ((process.platform !== 'linux' && process.platform !== 'freebsd') && !w.isMaximized()) { const maximize = once(w, 'maximize'); w.show(); w.maximize(); -@@ -3411,7 +3411,7 @@ describe('BrowserWindow module', () => { +@@ -3427,7 +3427,7 @@ describe('BrowserWindow module', () => { expect(preMaxHeight).to.equal(size); // 'maximize' event is not emitted on Linux in CI. - if (process.platform !== 'linux' && !w.isMaximized()) { + if ((process.platform !== 'linux' && process.platform !== 'freebsd') && !w.isMaximized()) { const maximize = once(w, 'maximize'); w.show(); w.maximize(); -@@ -4082,7 +4082,7 @@ describe('BrowserWindow module', () => { +@@ -4098,7 +4098,7 @@ describe('BrowserWindow module', () => { expect(test.nodeTimers).to.equal(true); expect(test.nodeUrl).to.equal(true); - if (process.platform === 'linux' && test.osSandbox) { + if ((process.platform === 'linux' || process.platform === 'freebsd') && test.osSandbox) { expect(test.creationTime).to.be.null('creation time'); expect(test.systemMemoryInfo).to.be.null('system memory info'); } else { -@@ -4587,7 +4587,7 @@ describe('BrowserWindow module', () => { +@@ -4603,7 +4603,7 @@ describe('BrowserWindow module', () => { }); }); - ifdescribe(process.platform !== 'linux')('max/minimize events', () => { + ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('max/minimize events', () => { afterEach(closeAllWindows); it('emits an event when window is maximized', async () => { const w = new BrowserWindow({ show: false }); -@@ -4858,7 +4858,7 @@ describe('BrowserWindow module', () => { +@@ -4874,7 +4874,7 @@ describe('BrowserWindow module', () => { // TODO(zcbenz): // This test does not run on Linux CI. See: // https://github.com/electron/electron/issues/28699 - ifit(process.platform === 'linux' && !process.env.CI)('should bring a minimized maximized window back to maximized state', async () => { + ifit((process.platform === 'linux' || process.platform === 'freebsd') && !process.env.CI)('should bring a minimized maximized window back to maximized state', async () => { const w = new BrowserWindow({}); const maximize = once(w, 'maximize'); w.maximize(); -@@ -4875,7 +4875,7 @@ describe('BrowserWindow module', () => { +@@ -4891,7 +4891,7 @@ describe('BrowserWindow module', () => { }); // TODO(dsanders11): Enable once maximize event works on Linux again on CI - ifdescribe(process.platform !== 'linux')('BrowserWindow.maximize()', () => { + ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('BrowserWindow.maximize()', () => { afterEach(closeAllWindows); it('should show the window if it is not currently shown', async () => { const w = new BrowserWindow({ show: false }); -@@ -4912,7 +4912,7 @@ describe('BrowserWindow module', () => { +@@ -4928,7 +4928,7 @@ describe('BrowserWindow module', () => { // TODO(dsanders11): Enable once minimize event works on Linux again. // See https://github.com/electron/electron/issues/28699 - ifit(process.platform !== 'linux')('should not restore a minimized window', async () => { + ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('should not restore a minimized window', async () => { const w = new BrowserWindow(); const minimize = once(w, 'minimize'); w.minimize(); -@@ -5398,7 +5398,7 @@ describe('BrowserWindow module', () => { +@@ -5414,7 +5414,7 @@ describe('BrowserWindow module', () => { }); // On Linux there is no "resizable" property of a window. - ifit(process.platform !== 'linux')('does affect maximizability when disabled and enabled', () => { + ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('does affect maximizability when disabled and enabled', () => { const w = new BrowserWindow({ show: false }); expect(w.resizable).to.be.true('resizable'); -@@ -5638,7 +5638,7 @@ describe('BrowserWindow module', () => { +@@ -5654,7 +5654,7 @@ describe('BrowserWindow module', () => { }); }); - ifdescribe(process.platform !== 'linux')('window states (excluding Linux)', () => { + ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('window states (excluding Linux)', () => { // Not implemented on Linux. afterEach(closeAllWindows); -@@ -6809,7 +6809,7 @@ describe('BrowserWindow module', () => { +@@ -6825,7 +6825,7 @@ describe('BrowserWindow module', () => { describe('"transparent" option', () => { afterEach(closeAllWindows); - ifit(process.platform !== 'linux')('correctly returns isMaximized() when the window is maximized then minimized', async () => { + ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('correctly returns isMaximized() when the window is maximized then minimized', async () => { const w = new BrowserWindow({ frame: false, transparent: true diff --git a/devel/electron39/files/patch-electron_spec_api-native-image-spec.ts b/devel/electron39/files/patch-electron_spec_api-native-image-spec.ts index 006f42eaa4b9..a6b4b300e391 100644 --- a/devel/electron39/files/patch-electron_spec_api-native-image-spec.ts +++ b/devel/electron39/files/patch-electron_spec_api-native-image-spec.ts @@ -1,11 +1,11 @@ ---- electron/spec/api-native-image-spec.ts.orig 2025-05-07 07:36:13 UTC +--- electron/spec/api-native-image-spec.ts.orig 2025-11-13 22:50:46 UTC +++ electron/spec/api-native-image-spec.ts -@@ -434,7 +434,7 @@ describe('nativeImage module', () => { +@@ -439,7 +439,7 @@ describe('nativeImage module', () => { }); }); - ifdescribe(process.platform !== 'linux')('createThumbnailFromPath(path, size)', () => { + ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('createThumbnailFromPath(path, size)', () => { useRemoteContext({ webPreferences: { contextIsolation: false, nodeIntegration: true } }); it('throws when invalid size is passed', async () => { diff --git a/devel/electron39/files/patch-electron_spec_api-protocol-spec.ts b/devel/electron39/files/patch-electron_spec_api-protocol-spec.ts index 3195a7eabb74..b2edf10a7bc0 100644 --- a/devel/electron39/files/patch-electron_spec_api-protocol-spec.ts +++ b/devel/electron39/files/patch-electron_spec_api-protocol-spec.ts @@ -1,11 +1,11 @@ ---- electron/spec/api-protocol-spec.ts.orig 2024-11-07 16:14:43 UTC +--- electron/spec/api-protocol-spec.ts.orig 2025-11-13 22:50:46 UTC +++ electron/spec/api-protocol-spec.ts -@@ -1738,7 +1738,7 @@ describe('protocol module', () => { +@@ -1755,7 +1755,7 @@ describe('protocol module', () => { // TODO(nornagon): this test doesn't pass on Linux currently, investigate. // test is also flaky on CI on macOS so it is currently disabled there as well. - ifit(process.platform !== 'linux' && (!process.env.CI || process.platform !== 'darwin'))('is fast', async () => { + ifit((process.platform !== 'linux' && process.platform !== 'freebsd') && (!process.env.CI || process.platform !== 'darwin'))('is fast', async () => { // 128 MB of spaces. const chunk = new Uint8Array(128 * 1024 * 1024); chunk.fill(' '.charCodeAt(0)); diff --git a/devel/electron39/files/patch-electron_spec_api-web-contents-spec.ts b/devel/electron39/files/patch-electron_spec_api-web-contents-spec.ts index 8ebe51e25534..58e1a0d9e6e9 100644 --- a/devel/electron39/files/patch-electron_spec_api-web-contents-spec.ts +++ b/devel/electron39/files/patch-electron_spec_api-web-contents-spec.ts @@ -1,11 +1,11 @@ ---- electron/spec/api-web-contents-spec.ts.orig 2025-10-27 17:58:27 UTC +--- electron/spec/api-web-contents-spec.ts.orig 2025-11-13 22:50:46 UTC +++ electron/spec/api-web-contents-spec.ts -@@ -2815,7 +2815,7 @@ describe('webContents module', () => { +@@ -2850,7 +2850,7 @@ describe('webContents module', () => { }); // TODO(codebytere): OOPIF printing is disabled on Linux at the moment due to crashes. - ifit(process.platform !== 'linux')('can print cross-origin iframes', async () => { + ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('can print cross-origin iframes', async () => { server = http.createServer((_, res) => { res.writeHead(200); res.end(` diff --git a/devel/electron39/files/patch-services_on__device__model_ml_gpu__blocklist.cc b/devel/electron39/files/patch-services_on__device__model_ml_gpu__blocklist.cc new file mode 100644 index 000000000000..1b9104804fdc --- /dev/null +++ b/devel/electron39/files/patch-services_on__device__model_ml_gpu__blocklist.cc @@ -0,0 +1,11 @@ +--- services/on_device_model/ml/gpu_blocklist.cc.orig 2025-11-10 21:36:56 UTC ++++ services/on_device_model/ml/gpu_blocklist.cc +@@ -24,7 +24,7 @@ const base::FeatureParam kGpuBlockList{ + &optimization_guide::features::kOnDeviceModelPerformanceParams, + "on_device_model_gpu_block_list", + // These devices are nearly always crashing or have very low performance. +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + "8086:64a0|" // TODO(b/456603738): Remove when fixed. + #endif // BUILDFLAG(IS_LINUX) + "8086:412|8086:a16|8086:41e|8086:416|8086:402|8086:166|8086:1616|8086:22b1|" diff --git a/devel/electron39/files/patch-third__party_blink_renderer_platform_fonts_skia_font__cache__skia.cc b/devel/electron39/files/patch-third__party_blink_renderer_platform_fonts_skia_font__cache__skia.cc index 46b36850fe79..cd8224b9077c 100644 --- a/devel/electron39/files/patch-third__party_blink_renderer_platform_fonts_skia_font__cache__skia.cc +++ b/devel/electron39/files/patch-third__party_blink_renderer_platform_fonts_skia_font__cache__skia.cc @@ -1,20 +1,20 @@ ---- third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc.orig 2025-10-21 20:19:54 UTC +--- third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc.orig 2025-11-10 21:36:56 UTC +++ third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc @@ -66,7 +66,7 @@ AtomicString ToAtomicString(const SkString& str) { return AtomicString::FromUTF8(std::string_view(str.begin(), str.end())); } -#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) +#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) // This function is called on android or when we are emulating android fonts on // linux and the embedder has overriden the default fontManager with // WebFontRendering::setSkiaFontMgr. -@@ -259,7 +259,7 @@ const FontPlatformData* FontCache::CreateFontPlatformD +@@ -278,7 +278,7 @@ const FontPlatformData* FontCache::CreateFontPlatformD std::string name; sk_sp typeface; -#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) +#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) bool noto_color_emoji_from_gmscore = false; #if BUILDFLAG(IS_ANDROID) // Use the unique local matching pathway for fetching Noto Color Emoji Compat diff --git a/devel/electron39/files/patch-third__party_blink_renderer_platform_runtime__enabled__features.json5 b/devel/electron39/files/patch-third__party_blink_renderer_platform_runtime__enabled__features.json5 index f234f3006d7d..5dd9ba97353a 100644 --- a/devel/electron39/files/patch-third__party_blink_renderer_platform_runtime__enabled__features.json5 +++ b/devel/electron39/files/patch-third__party_blink_renderer_platform_runtime__enabled__features.json5 @@ -1,119 +1,119 @@ ---- third_party/blink/renderer/platform/runtime_enabled_features.json5.orig 2025-11-02 19:17:58 UTC +--- third_party/blink/renderer/platform/runtime_enabled_features.json5.orig 2025-11-14 09:16:34 UTC +++ third_party/blink/renderer/platform/runtime_enabled_features.json5 @@ -344,7 +344,7 @@ "default": "", }, origin_trial_feature_name: "AIPromptAPIMultimodalInput", - origin_trial_os: ["win", "mac", "linux"], + origin_trial_os: ["win", "mac", "linux", "openbsd", "freebsd"], origin_trial_allows_third_party: true, implied_by: ["AIPromptAPIMultimodalInput"], }, @@ -374,7 +374,7 @@ "default": "", }, origin_trial_feature_name: "AIPromptAPIMultimodalInput", - origin_trial_os: ["win", "mac", "linux"], + origin_trial_os: ["win", "mac", "linux", "openbsd", "freebsd"], origin_trial_allows_third_party: true, base_feature_status: "enabled", copied_from_base_feature_if: "overridden", @@ -410,7 +410,7 @@ "default": "", }, origin_trial_feature_name: "AIRewriterAPI", - origin_trial_os: ["win", "mac", "linux"], + origin_trial_os: ["win", "mac", "linux", "openbsd", "freebsd"], origin_trial_allows_third_party: true, base_feature_status: "enabled", copied_from_base_feature_if: "overridden", @@ -443,7 +443,7 @@ "default": "", }, origin_trial_feature_name: "AIWriterAPI", - origin_trial_os: ["win", "mac", "linux"], + origin_trial_os: ["win", "mac", "linux", "openbsd", "freebsd"], origin_trial_allows_third_party: true, base_feature_status: "enabled", copied_from_base_feature_if: "overridden", @@ -557,7 +557,7 @@ name: "AppTitle", status: "experimental", origin_trial_feature_name: "AppTitle", - origin_trial_os: ["win", "mac", "linux", "chromeos"], + origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd"], base_feature: "WebAppEnableAppTitle", }, { -@@ -1779,7 +1779,7 @@ +@@ -1785,7 +1785,7 @@ { name: "DeviceBoundSessionCredentials", origin_trial_feature_name: "DeviceBoundSessionCredentials", - origin_trial_os: ["win", "linux", "mac"], + origin_trial_os: ["win", "linux", "mac", "openbsd", "freebsd"], status: "experimental", // Killswitch is net::features::kDeviceBoundSessions base_feature: "none", -@@ -1787,7 +1787,7 @@ +@@ -1793,7 +1793,7 @@ { name: "DeviceBoundSessionCredentials2", origin_trial_feature_name: "DeviceBoundSessionCredentials2", - origin_trial_os: ["win", "linux", "mac"], + origin_trial_os: ["win", "linux", "mac", "openbsd", "freebsd"], status: "experimental", // Killswitch is net::features::kDeviceBoundSessions base_feature: "none", -@@ -1930,7 +1930,7 @@ +@@ -1936,7 +1936,7 @@ name: "DocumentIsolationPolicy", status: "experimental", origin_trial_feature_name: "DocumentIsolationPolicy", - origin_trial_os: ["win", "mac", "linux", "chromeos"], + origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd"], base_feature: "none", }, { -@@ -2173,7 +2173,7 @@ +@@ -2179,7 +2179,7 @@ base_feature: "none", public: true, origin_trial_feature_name: "FedCmMultipleIdentityProviders", - origin_trial_os: ["win", "mac", "linux", "chromeos"], + origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd"], origin_trial_allows_third_party: true, }, { -@@ -3718,7 +3718,7 @@ +@@ -3725,7 +3725,7 @@ // Tracking bug for the implementation: https://crbug.com/1462930 name: "PermissionElement", origin_trial_feature_name: "PermissionElement", - origin_trial_os: ["win", "mac", "linux", "fuchsia", "chromeos", "android"], + origin_trial_os: ["win", "mac", "linux", "fuchsia", "chromeos", "android", "openbsd", "freebsd"], status: "experimental", public: true, base_feature_status: "enabled", -@@ -5310,7 +5310,7 @@ +@@ -5316,7 +5316,7 @@ name: "UnrestrictedSharedArrayBuffer", base_feature: "none", origin_trial_feature_name: "UnrestrictedSharedArrayBuffer", - origin_trial_os: ["win", "mac", "linux", "fuchsia", "chromeos"], + origin_trial_os: ["win", "mac", "linux", "fuchsia", "chromeos", "openbsd", "freebsd"], }, // Enables using policy-controlled feature "usb-unrestricted" to allow // isolated context to access protected USB interface classes and to -@@ -5504,7 +5504,7 @@ +@@ -5510,7 +5510,7 @@ { name: "WebAppScopeExtensions", origin_trial_feature_name: "WebAppScopeExtensions", - origin_trial_os: ["win", "mac", "linux", "chromeos"], + origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd"], status: "experimental", base_feature: "none", }, -@@ -5612,7 +5612,7 @@ +@@ -5618,7 +5618,7 @@ { name: "WebAuthenticationImmediateGet", origin_trial_feature_name: "WebAuthenticationImmediateGet", - origin_trial_os: ["win", "mac", "linux", "chromeos"], + origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd"], base_feature: "none", public: true, },