diff --git a/devel/electron41/Makefile b/devel/electron41/Makefile index 6535339b4256..0935cc80d476 100644 --- a/devel/electron41/Makefile +++ b/devel/electron41/Makefile @@ -1,457 +1,469 @@ PORTNAME= electron DISTVERSIONPREFIX= v DISTVERSION= ${ELECTRON_VER} PULSEMV= 16 PULSEV= ${PULSEMV}.1 CATEGORIES= devel -MASTER_SITES= https://commondatastorage.googleapis.com/chromium-browser-official/:chromium \ +MASTER_SITES= https://github.com/tagattie/FreeBSD-Electron/releases/download/v41.2.1/:chromium \ https://freedesktop.org/software/pulseaudio/releases/:pulseaudio PKGNAMESUFFIX= ${ELECTRON_VER_MAJOR} -DISTFILES= chromium-${CHROMIUM_VER}-lite${EXTRACT_SUFX}:chromium \ +DISTFILES= chromium-${CHROMIUM_VER}${EXTRACT_SUFX}.0:chromium \ + chromium-${CHROMIUM_VER}${EXTRACT_SUFX}.1:chromium \ + chromium-${CHROMIUM_VER}${EXTRACT_SUFX}.2:chromium \ pulseaudio-${PULSEV}.tar.gz:pulseaudio DIST_SUBDIR= ${PORTNAME} +EXTRACT_ONLY= ${DISTFILES:C/:[^:]+$//:C/chromium-${CHROMIUM_VER}${EXTRACT_SUFX}\.[0-9]//} 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= git:devel/git \ npm${NODEJS_SUFFIX}>0:www/npm${NODEJS_SUFFIX} PATCH_DEPENDS= git:devel/git \ jq:textproc/jq BUILD_DEPENDS= esbuild:devel/esbuild \ gperf:devel/gperf \ bindgen:devel/rust-bindgen-cli \ yasm:devel/yasm \ ${LOCALBASE}/libdata/pkgconfig/dri.pc:graphics/mesa-dri \ ${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} USES= bison cargo compiler:c++17-lang cpe display:test electron:env \ gettext-tools gl gmake gnome iconv:wchar_t jpeg \ localbase:ldflags ninja nodejs:24,build pkgconfig \ python:build,test qt:5 shebangfix tar:xz xorg CPE_VENDOR= electronjs USE_GITHUB= nodefault GH_TUPLE= electron:electron:${DISTVERSIONFULL}:electron \ 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 \ rollup:rollup:v${ROLLUP_VER}:rollup \ evanw:esbuild:v${ESBUILD_VER}:esbuild 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 USE_ELECTRON= npm:yarn4 prefetch extract NPM_EXTRACT_WRKSRC= ${WRKDIR}/${PORTNAME}-${ELECTRON_VER} SHEBANG_FILES= chrome/tools/build/linux/chrome-wrapper buildtools/linux64/clang-format # rollup CARGO_CARGOTOML= ${WRKSRC}/rollup/rust/Cargo.toml CARGO_CARGOLOCK= ${WRKSRC}/rollup/rust/Cargo.lock CARGO_BUILD= no CARGO_INSTALL= no CARGO_TEST= no CARGO_TARGET_DIR= ${WRKSRC}/rollup/rust/target 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 TARGET_ORDER_OVERRIDE= 750:cargo-extract WRKSRC= ${WRKDIR}/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_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_USES= gssapi:heimdal HEIMDAL_BASE_USES= gssapi:base 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_USES= gssapi:mit 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${WRKDIR}/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= 146.0.7680.179 +CHROMIUM_VER= 146.0.7680.188 # See ${WRKSRC}/electron/DEPS for NODE_VER -NODE_VER= 24.14.0 +NODE_VER= 24.14.1 # See ${WRKSRC}/electron/DEPS for NAN_VER NAN_VER= 675cefebca42410733da8a454c8d9391fcebfbc2 # 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 # See ${WRKSRC}/third_party/devtools-frontend/src/node_modules/rollup/package.json ROLLUP_VER= 4.22.4 # Keep in sync with devel/esbuild ESBUILD_VER= 0.27.1 .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+= ${MAKE_ENV} \ ELECTRON_OUT_DIR=${BUILDTYPE} \ LOCAL_GIT_DIRECTORY=${LOCALBASE} \ DISABLE_CRASH_REPORTER_TESTS=1 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-extract: +# Chromium source tarball is splitted into multiple fragments. Concatenate them +# into a single one and manually extract it into WRKDIR. + @${CAT} ${DISTDIR}/${DIST_SUBDIR}/chromium-${CHROMIUM_VER}${EXTRACT_SUFX}.? > \ + ${WRKDIR}/chromium-${CHROMIUM_VER}${EXTRACT_SUFX} + @cd ${WRKDIR} && \ + ${EXTRACT_CMD} ${EXTRACT_BEFORE_ARGS} \ + chromium-${CHROMIUM_VER}${EXTRACT_SUFX} ${EXTRACT_AFTER_ARGS} + post-extract: # Move extracted sources to appropriate locations ${MV} ${WRKDIR}/chromium-${CHROMIUM_VER} \ ${WRKSRC} ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER} \ ${WRKSRC}/electron ${MV} ${WRKDIR}/${GH_PROJECT_nan}-${NAN_VER} \ ${WRKSRC}/third_party/nan ${MV} ${WRKDIR}/${GH_PROJECT_node}-${NODE_VER} \ ${WRKSRC}/third_party/electron_node ${MV} ${WRKDIR}/${GH_PROJECT_squirrel_mac}-${SQUIRREL_MAC_VER} \ ${WRKSRC}/third_party/squirrel.mac @${MKDIR} ${WRKSRC}/third_party/squirrel.mac/vendor ${MV} ${WRKDIR}/${GH_PROJECT_reactiveobjc}-${REACTIVEOBJC_VER} \ ${WRKSRC}/third_party/squirrel.mac/vendor/ReactiveObjC ${MV} ${WRKDIR}/${GH_PROJECT_mantle}-${MANTLE_VER} \ ${WRKSRC}/third_party/squirrel.mac/vendor/Mantle ${MV} ${WRKDIR}/${GH_PROJECT_reclient_configs}-${ENGFLOW_RECLIENT_CONFIGS_VER} \ ${WRKSRC}/third_party/engflow-reclient-configs ${MV} ${WRKDIR}/${GH_PROJECT_rollup}-${ROLLUP_VER} \ ${WRKSRC}/rollup ${MV} ${WRKDIR}/${GH_PROJECT_esbuild}-${ESBUILD_VER} \ ${WRKSRC}/esbuild 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.asm config_components.h libavcodec libavformat libavutil -${CP} -pR ${FFMPEG_BDIR}/${_e} ${FFMPEG_CDIR} .endfor touch ${WRKDIR}/pulseaudio-${PULSEV}/src/pulse/version.h @${REINPLACE_CMD} -e 's|$${LOCALBASE}|${LOCALBASE}|;s|$${MODCLANG_VERSION}|${LLVM_DEFAULT}|' \ ${WRKSRC}/build/config/rust.gni \ ${WRKSRC}/build/linux/strip_binary.gni \ ${WRKSRC}/build/rust/rust_bindgen.gni \ ${WRKSRC}/build/rust/rust_bindgen_generator.gni do-configure: cd ${WRKSRC}/esbuild && \ ${LOCALBASE}/bin/node scripts/esbuild.js \ ${LOCALBASE}/bin/esbuild --neutral && \ ${RM} -r ${WRKSRC}/third_party/devtools-frontend/src/node_modules/esbuild && \ ${LN} -sf ${WRKSRC}/esbuild/npm/esbuild \ ${WRKSRC}/third_party/devtools-frontend/src/node_modules/esbuild \ # 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 esbuild dependency ${LN} -sf ${LOCALBASE}/bin/esbuild ${WRKSRC}/third_party/devtools-frontend/src/third_party/esbuild/esbuild # 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 pre-build: @${CARGO_CARGO_RUN} build \ --manifest-path ${CARGO_CARGOTOML} \ --verbose \ --verbose \ ${CARGO_BUILD_ARGS} (cd ${WRKSRC}/third_party/devtools-frontend/src/node_modules/@rollup && \ ${MKDIR} rollup-freebsd && \ ${CP} ${CARGO_TARGET_DIR}/*/libbindings_napi.so \ rollup-freebsd/rollup.freebsd.node && \ ${ECHO_CMD} '{ "main": "./rollup.freebsd.node" }' \ > rollup-freebsd/package.json) 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: cd ${WRKSRC}/electron && \ ${SETENV} ${TEST_ENV} yarn run test -- --ci .include diff --git a/devel/electron41/Makefile.version b/devel/electron41/Makefile.version index 6750b4c6d762..e3f227113177 100644 --- a/devel/electron41/Makefile.version +++ b/devel/electron41/Makefile.version @@ -1,2 +1,2 @@ -ELECTRON_VER= 41.2.0 +ELECTRON_VER= 41.2.1 ELECTRON_VER_MAJOR= ${ELECTRON_VER:C/\..*//} diff --git a/devel/electron41/distinfo b/devel/electron41/distinfo index fe85f95bb508..e93d98d79814 100644 --- a/devel/electron41/distinfo +++ b/devel/electron41/distinfo @@ -1,359 +1,363 @@ -TIMESTAMP = 1776245935 -SHA256 (electron/chromium-146.0.7680.179-lite.tar.xz) = 16800d0b92057f0014cbfb91c88bd66206c7624e3a8634a90dd6c87f37f20f58 -SIZE (electron/chromium-146.0.7680.179-lite.tar.xz) = 1476941696 +TIMESTAMP = 1776597735 +SHA256 (electron/chromium-146.0.7680.188.tar.xz.0) = fe0dd625b47d1a0594b20d8c748da45c023da315b4a8f2fc3944b96149330cc6 +SIZE (electron/chromium-146.0.7680.188.tar.xz.0) = 2000000000 +SHA256 (electron/chromium-146.0.7680.188.tar.xz.1) = 3a0320e66c708c527dbc39a9e21051d6146e039a50b57209ec069e808369e6ce +SIZE (electron/chromium-146.0.7680.188.tar.xz.1) = 2000000000 +SHA256 (electron/chromium-146.0.7680.188.tar.xz.2) = 08c4ae08a2605728ed16524bcd0c930434c09f1aee9342344a2e632d25ade73a +SIZE (electron/chromium-146.0.7680.188.tar.xz.2) = 740905224 SHA256 (electron/pulseaudio-16.1.tar.gz) = 027266c62f2a84422ac45fa721a649508f0f1628fb1fd9242315ac54ce2d7c92 SIZE (electron/pulseaudio-16.1.tar.gz) = 2763111 SHA256 (electron/rust/crates/Inflector-0.11.4.crate) = fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3 SIZE (electron/rust/crates/Inflector-0.11.4.crate) = 17438 SHA256 (electron/rust/crates/ahash-0.8.11.crate) = e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011 SIZE (electron/rust/crates/ahash-0.8.11.crate) = 43607 SHA256 (electron/rust/crates/aho-corasick-1.1.3.crate) = 8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916 SIZE (electron/rust/crates/aho-corasick-1.1.3.crate) = 183311 SHA256 (electron/rust/crates/allocator-api2-0.2.18.crate) = 5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f SIZE (electron/rust/crates/allocator-api2-0.2.18.crate) = 62504 SHA256 (electron/rust/crates/anyhow-1.0.89.crate) = 86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6 SIZE (electron/rust/crates/anyhow-1.0.89.crate) = 47078 SHA256 (electron/rust/crates/arrayvec-0.7.6.crate) = 7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50 SIZE (electron/rust/crates/arrayvec-0.7.6.crate) = 31237 SHA256 (electron/rust/crates/ast_node-0.10.0.crate) = 9f8486443b68ecc17b8b45c6161b0194142f74622ed8dade227480a20291fc91 SIZE (electron/rust/crates/ast_node-0.10.0.crate) = 8073 SHA256 (electron/rust/crates/autocfg-1.3.0.crate) = 0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0 SIZE (electron/rust/crates/autocfg-1.3.0.crate) = 16524 SHA256 (electron/rust/crates/base-encode-0.3.1.crate) = a17bd29f7c70f32e9387f4d4acfa5ea7b7749ef784fb78cf382df97069337b8c SIZE (electron/rust/crates/base-encode-0.3.1.crate) = 3630 SHA256 (electron/rust/crates/base64-0.21.7.crate) = 9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567 SIZE (electron/rust/crates/base64-0.21.7.crate) = 82576 SHA256 (electron/rust/crates/base64-simd-0.7.0.crate) = 781dd20c3aff0bd194fe7d2a977dd92f21c173891f3a03b677359e5fa457e5d5 SIZE (electron/rust/crates/base64-simd-0.7.0.crate) = 9966 SHA256 (electron/rust/crates/better_scoped_tls-0.1.1.crate) = 794edcc9b3fb07bb4aecaa11f093fd45663b4feadb782d68303a2268bc2701de SIZE (electron/rust/crates/better_scoped_tls-0.1.1.crate) = 1874 SHA256 (electron/rust/crates/bitflags-2.6.0.crate) = b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de SIZE (electron/rust/crates/bitflags-2.6.0.crate) = 45357 SHA256 (electron/rust/crates/bitvec-1.0.1.crate) = 1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c SIZE (electron/rust/crates/bitvec-1.0.1.crate) = 224375 SHA256 (electron/rust/crates/bumpalo-3.16.0.crate) = 79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c SIZE (electron/rust/crates/bumpalo-3.16.0.crate) = 85677 SHA256 (electron/rust/crates/cc-1.1.21.crate) = 07b1695e2c7e8fc85310cde85aeaab7e3097f593c91d209d3f9df76c928100f0 SIZE (electron/rust/crates/cc-1.1.21.crate) = 83463 SHA256 (electron/rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd SIZE (electron/rust/crates/cfg-if-1.0.0.crate) = 7934 SHA256 (electron/rust/crates/convert_case-0.6.0.crate) = ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca SIZE (electron/rust/crates/convert_case-0.6.0.crate) = 18675 SHA256 (electron/rust/crates/ctor-0.2.8.crate) = edb49164822f3ee45b17acd4a208cfc1251410cf0cad9a833234c9890774dd9f SIZE (electron/rust/crates/ctor-0.2.8.crate) = 11053 SHA256 (electron/rust/crates/cty-0.2.2.crate) = b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35 SIZE (electron/rust/crates/cty-0.2.2.crate) = 7230 SHA256 (electron/rust/crates/dashmap-5.5.3.crate) = 978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856 SIZE (electron/rust/crates/dashmap-5.5.3.crate) = 24061 SHA256 (electron/rust/crates/data-encoding-2.6.0.crate) = e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2 SIZE (electron/rust/crates/data-encoding-2.6.0.crate) = 20769 SHA256 (electron/rust/crates/debugid-0.8.0.crate) = bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d SIZE (electron/rust/crates/debugid-0.8.0.crate) = 12757 SHA256 (electron/rust/crates/either-1.13.0.crate) = 60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0 SIZE (electron/rust/crates/either-1.13.0.crate) = 19169 SHA256 (electron/rust/crates/equivalent-1.0.1.crate) = 5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5 SIZE (electron/rust/crates/equivalent-1.0.1.crate) = 6615 SHA256 (electron/rust/crates/fixedbitset-0.4.2.crate) = 0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80 SIZE (electron/rust/crates/fixedbitset-0.4.2.crate) = 15954 SHA256 (electron/rust/crates/form_urlencoded-1.2.1.crate) = e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456 SIZE (electron/rust/crates/form_urlencoded-1.2.1.crate) = 8969 SHA256 (electron/rust/crates/from_variant-0.1.9.crate) = 32016f1242eb82af5474752d00fd8ebcd9004bd69b462b1c91de833972d08ed4 SIZE (electron/rust/crates/from_variant-0.1.9.crate) = 1617 SHA256 (electron/rust/crates/funty-2.0.0.crate) = e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c SIZE (electron/rust/crates/funty-2.0.0.crate) = 13160 SHA256 (electron/rust/crates/getrandom-0.2.15.crate) = c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7 SIZE (electron/rust/crates/getrandom-0.2.15.crate) = 37163 SHA256 (electron/rust/crates/hashbrown-0.14.5.crate) = e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1 SIZE (electron/rust/crates/hashbrown-0.14.5.crate) = 141498 SHA256 (electron/rust/crates/hermit-abi-0.3.9.crate) = d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024 SIZE (electron/rust/crates/hermit-abi-0.3.9.crate) = 16165 SHA256 (electron/rust/crates/hstr-0.2.12.crate) = dae404c0c5d4e95d4858876ab02eecd6a196bb8caa42050dfa809938833fc412 SIZE (electron/rust/crates/hstr-0.2.12.crate) = 22307 SHA256 (electron/rust/crates/idna-0.5.0.crate) = 634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6 SIZE (electron/rust/crates/idna-0.5.0.crate) = 271940 SHA256 (electron/rust/crates/if_chain-1.0.2.crate) = cb56e1aa765b4b4f3aadfab769793b7087bb03a4ea4920644a6d238e2df5b9ed SIZE (electron/rust/crates/if_chain-1.0.2.crate) = 8062 SHA256 (electron/rust/crates/indexmap-2.5.0.crate) = 68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5 SIZE (electron/rust/crates/indexmap-2.5.0.crate) = 85919 SHA256 (electron/rust/crates/is-macro-0.3.6.crate) = 2069faacbe981460232f880d26bf3c7634e322d49053aa48c27e3ae642f728f1 SIZE (electron/rust/crates/is-macro-0.3.6.crate) = 9068 SHA256 (electron/rust/crates/itoa-1.0.11.crate) = 49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b SIZE (electron/rust/crates/itoa-1.0.11.crate) = 10563 SHA256 (electron/rust/crates/js-sys-0.3.70.crate) = 1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a SIZE (electron/rust/crates/js-sys-0.3.70.crate) = 53863 SHA256 (electron/rust/crates/libc-0.2.158.crate) = d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439 SIZE (electron/rust/crates/libc-0.2.158.crate) = 751340 SHA256 (electron/rust/crates/libloading-0.8.5.crate) = 4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4 SIZE (electron/rust/crates/libloading-0.8.5.crate) = 28902 SHA256 (electron/rust/crates/lock_api-0.4.12.crate) = 07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17 SIZE (electron/rust/crates/lock_api-0.4.12.crate) = 27591 SHA256 (electron/rust/crates/log-0.4.22.crate) = a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24 SIZE (electron/rust/crates/log-0.4.22.crate) = 44027 SHA256 (electron/rust/crates/memchr-2.7.4.crate) = 78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3 SIZE (electron/rust/crates/memchr-2.7.4.crate) = 96670 SHA256 (electron/rust/crates/mimalloc-rust-0.2.1.crate) = 5eb726c8298efb4010b2c46d8050e4be36cf807b9d9e98cb112f830914fc9bbe SIZE (electron/rust/crates/mimalloc-rust-0.2.1.crate) = 5327 SHA256 (electron/rust/crates/mimalloc-rust-sys-1.7.9-source.crate) = 6413e13241a9809f291568133eca6694572cf528c1a6175502d090adce5dd5db SIZE (electron/rust/crates/mimalloc-rust-sys-1.7.9-source.crate) = 134952 SHA256 (electron/rust/crates/napi-2.16.11.crate) = 53575dfa17f208dd1ce3a2da2da4659aae393b256a472f2738a8586a6c4107fd SIZE (electron/rust/crates/napi-2.16.11.crate) = 85909 SHA256 (electron/rust/crates/napi-build-2.1.3.crate) = e1c0f5d67ee408a4685b61f5ab7e58605c8ae3f2b4189f0127d804ff13d5560a SIZE (electron/rust/crates/napi-build-2.1.3.crate) = 2096 SHA256 (electron/rust/crates/napi-derive-2.16.12.crate) = 17435f7a00bfdab20b0c27d9c56f58f6499e418252253081bfff448099da31d1 SIZE (electron/rust/crates/napi-derive-2.16.12.crate) = 17184 SHA256 (electron/rust/crates/napi-derive-backend-1.0.74.crate) = 967c485e00f0bf3b1bdbe510a38a4606919cf1d34d9a37ad41f25a81aa077abe SIZE (electron/rust/crates/napi-derive-backend-1.0.74.crate) = 21755 SHA256 (electron/rust/crates/napi-sys-2.4.0.crate) = 427802e8ec3a734331fec1035594a210ce1ff4dc5bc1950530920ab717964ea3 SIZE (electron/rust/crates/napi-sys-2.4.0.crate) = 6582 SHA256 (electron/rust/crates/new_debug_unreachable-1.0.6.crate) = 650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086 SIZE (electron/rust/crates/new_debug_unreachable-1.0.6.crate) = 2582 SHA256 (electron/rust/crates/num-bigint-0.4.6.crate) = a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9 SIZE (electron/rust/crates/num-bigint-0.4.6.crate) = 102801 SHA256 (electron/rust/crates/num-integer-0.1.46.crate) = 7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f SIZE (electron/rust/crates/num-integer-0.1.46.crate) = 22331 SHA256 (electron/rust/crates/num-traits-0.2.19.crate) = 071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841 SIZE (electron/rust/crates/num-traits-0.2.19.crate) = 51631 SHA256 (electron/rust/crates/num_cpus-1.16.0.crate) = 4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43 SIZE (electron/rust/crates/num_cpus-1.16.0.crate) = 15713 SHA256 (electron/rust/crates/once_cell-1.19.0.crate) = 3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92 SIZE (electron/rust/crates/once_cell-1.19.0.crate) = 33046 SHA256 (electron/rust/crates/outref-0.1.0.crate) = 7f222829ae9293e33a9f5e9f440c6760a3d450a64affe1846486b140db81c1f4 SIZE (electron/rust/crates/outref-0.1.0.crate) = 3067 SHA256 (electron/rust/crates/parking_lot-0.12.3.crate) = f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27 SIZE (electron/rust/crates/parking_lot-0.12.3.crate) = 41860 SHA256 (electron/rust/crates/parking_lot_core-0.9.10.crate) = 1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8 SIZE (electron/rust/crates/parking_lot_core-0.9.10.crate) = 32406 SHA256 (electron/rust/crates/pathdiff-0.2.1.crate) = 8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd SIZE (electron/rust/crates/pathdiff-0.2.1.crate) = 7142 SHA256 (electron/rust/crates/percent-encoding-2.3.1.crate) = e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e SIZE (electron/rust/crates/percent-encoding-2.3.1.crate) = 10235 SHA256 (electron/rust/crates/petgraph-0.6.5.crate) = b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db SIZE (electron/rust/crates/petgraph-0.6.5.crate) = 710970 SHA256 (electron/rust/crates/phf-0.11.2.crate) = ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc SIZE (electron/rust/crates/phf-0.11.2.crate) = 21569 SHA256 (electron/rust/crates/phf_generator-0.11.2.crate) = 48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0 SIZE (electron/rust/crates/phf_generator-0.11.2.crate) = 14190 SHA256 (electron/rust/crates/phf_macros-0.11.2.crate) = 3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b SIZE (electron/rust/crates/phf_macros-0.11.2.crate) = 4748 SHA256 (electron/rust/crates/phf_shared-0.11.2.crate) = 90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b SIZE (electron/rust/crates/phf_shared-0.11.2.crate) = 14284 SHA256 (electron/rust/crates/pin-project-lite-0.2.14.crate) = bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02 SIZE (electron/rust/crates/pin-project-lite-0.2.14.crate) = 28817 SHA256 (electron/rust/crates/proc-macro2-1.0.86.crate) = 5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77 SIZE (electron/rust/crates/proc-macro2-1.0.86.crate) = 48958 SHA256 (electron/rust/crates/psm-0.1.23.crate) = aa37f80ca58604976033fae9515a8a2989fc13797d953f7c04fb8fa36a11f205 SIZE (electron/rust/crates/psm-0.1.23.crate) = 23318 SHA256 (electron/rust/crates/ptr_meta-0.1.4.crate) = 0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1 SIZE (electron/rust/crates/ptr_meta-0.1.4.crate) = 5754 SHA256 (electron/rust/crates/ptr_meta_derive-0.1.4.crate) = 16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac SIZE (electron/rust/crates/ptr_meta_derive-0.1.4.crate) = 2302 SHA256 (electron/rust/crates/quote-1.0.37.crate) = b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af SIZE (electron/rust/crates/quote-1.0.37.crate) = 28558 SHA256 (electron/rust/crates/radium-0.7.0.crate) = dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09 SIZE (electron/rust/crates/radium-0.7.0.crate) = 10906 SHA256 (electron/rust/crates/radix_fmt-1.0.0.crate) = ce082a9940a7ace2ad4a8b7d0b1eac6aa378895f18be598230c5f2284ac05426 SIZE (electron/rust/crates/radix_fmt-1.0.0.crate) = 8743 SHA256 (electron/rust/crates/rand-0.8.5.crate) = 34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404 SIZE (electron/rust/crates/rand-0.8.5.crate) = 87113 SHA256 (electron/rust/crates/rand_core-0.6.4.crate) = ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c SIZE (electron/rust/crates/rand_core-0.6.4.crate) = 22666 SHA256 (electron/rust/crates/redox_syscall-0.5.4.crate) = 0884ad60e090bf1345b93da0a5de8923c93884cd03f40dfcfddd3b4bee661853 SIZE (electron/rust/crates/redox_syscall-0.5.4.crate) = 25977 SHA256 (electron/rust/crates/regex-1.10.6.crate) = 4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619 SIZE (electron/rust/crates/regex-1.10.6.crate) = 253894 SHA256 (electron/rust/crates/regex-automata-0.4.7.crate) = 38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df SIZE (electron/rust/crates/regex-automata-0.4.7.crate) = 617582 SHA256 (electron/rust/crates/regex-syntax-0.8.4.crate) = 7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b SIZE (electron/rust/crates/regex-syntax-0.8.4.crate) = 347577 SHA256 (electron/rust/crates/rustc-hash-1.1.0.crate) = 08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2 SIZE (electron/rust/crates/rustc-hash-1.1.0.crate) = 9331 SHA256 (electron/rust/crates/rustc_version-0.2.3.crate) = 138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a SIZE (electron/rust/crates/rustc_version-0.2.3.crate) = 10210 SHA256 (electron/rust/crates/ryu-1.0.18.crate) = f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f SIZE (electron/rust/crates/ryu-1.0.18.crate) = 47713 SHA256 (electron/rust/crates/ryu-js-1.0.1.crate) = ad97d4ce1560a5e27cec89519dc8300d1aa6035b099821261c651486a19e44d5 SIZE (electron/rust/crates/ryu-js-1.0.1.crate) = 74220 SHA256 (electron/rust/crates/scoped-tls-1.0.1.crate) = e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294 SIZE (electron/rust/crates/scoped-tls-1.0.1.crate) = 8202 SHA256 (electron/rust/crates/scopeguard-1.2.0.crate) = 94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49 SIZE (electron/rust/crates/scopeguard-1.2.0.crate) = 11619 SHA256 (electron/rust/crates/semver-0.9.0.crate) = 1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403 SIZE (electron/rust/crates/semver-0.9.0.crate) = 17344 SHA256 (electron/rust/crates/semver-1.0.23.crate) = 61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b SIZE (electron/rust/crates/semver-1.0.23.crate) = 30622 SHA256 (electron/rust/crates/semver-parser-0.7.0.crate) = 388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3 SIZE (electron/rust/crates/semver-parser-0.7.0.crate) = 10268 SHA256 (electron/rust/crates/serde-1.0.210.crate) = c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a SIZE (electron/rust/crates/serde-1.0.210.crate) = 78338 SHA256 (electron/rust/crates/serde_derive-1.0.210.crate) = 243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f SIZE (electron/rust/crates/serde_derive-1.0.210.crate) = 56020 SHA256 (electron/rust/crates/serde_json-1.0.128.crate) = 6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8 SIZE (electron/rust/crates/serde_json-1.0.128.crate) = 149520 SHA256 (electron/rust/crates/shlex-1.3.0.crate) = 0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64 SIZE (electron/rust/crates/shlex-1.3.0.crate) = 18713 SHA256 (electron/rust/crates/simd-abstraction-0.7.1.crate) = 9cadb29c57caadc51ff8346233b5cec1d240b68ce55cf1afc764818791876987 SIZE (electron/rust/crates/simd-abstraction-0.7.1.crate) = 9170 SHA256 (electron/rust/crates/siphasher-0.3.11.crate) = 38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d SIZE (electron/rust/crates/siphasher-0.3.11.crate) = 10442 SHA256 (electron/rust/crates/smallvec-1.13.2.crate) = 3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67 SIZE (electron/rust/crates/smallvec-1.13.2.crate) = 35216 SHA256 (electron/rust/crates/smartstring-1.0.1.crate) = 3fb72c633efbaa2dd666986505016c32c3044395ceaf881518399d2f4127ee29 SIZE (electron/rust/crates/smartstring-1.0.1.crate) = 29555 SHA256 (electron/rust/crates/sourcemap-9.0.0.crate) = dab08a862c70980b8e23698b507e272317ae52a608a164a844111f5372374f1f SIZE (electron/rust/crates/sourcemap-9.0.0.crate) = 43857 SHA256 (electron/rust/crates/stable_deref_trait-1.2.0.crate) = a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3 SIZE (electron/rust/crates/stable_deref_trait-1.2.0.crate) = 8054 SHA256 (electron/rust/crates/stacker-0.1.17.crate) = 799c883d55abdb5e98af1a7b3f23b9b6de8ecada0ecac058672d7635eb48ca7b SIZE (electron/rust/crates/stacker-0.1.17.crate) = 14699 SHA256 (electron/rust/crates/static_assertions-1.1.0.crate) = a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f SIZE (electron/rust/crates/static_assertions-1.1.0.crate) = 18480 SHA256 (electron/rust/crates/string_enum-0.4.4.crate) = 05e383308aebc257e7d7920224fa055c632478d92744eca77f99be8fa1545b90 SIZE (electron/rust/crates/string_enum-0.4.4.crate) = 3861 SHA256 (electron/rust/crates/swc_allocator-0.1.8.crate) = adc8bd3075d1c6964010333fae9ddcd91ad422a4f8eb8b3206a9b2b6afb4209e SIZE (electron/rust/crates/swc_allocator-0.1.8.crate) = 12576 SHA256 (electron/rust/crates/swc_atoms-0.7.0.crate) = 8ff4ad2795eabc349fb7ac1bdccb2625858a8be5545703ef31d5b5dc7a9f37f4 SIZE (electron/rust/crates/swc_atoms-0.7.0.crate) = 3503 SHA256 (electron/rust/crates/swc_cached-0.3.20.crate) = 83406221c501860fce9c27444f44125eafe9e598b8b81be7563d7036784cd05c SIZE (electron/rust/crates/swc_cached-0.3.20.crate) = 1958 SHA256 (electron/rust/crates/swc_common-0.39.0.crate) = 04012755fd21334086b5ee2467a6236afea869d0aff3bdf8b20dc07ee5f676c6 SIZE (electron/rust/crates/swc_common-0.39.0.crate) = 80673 SHA256 (electron/rust/crates/swc_compiler_base-0.22.0.crate) = 72452f40c7bc9c133b060cbc73f032d0c5ce87843d301e4ef33faa09008b83be SIZE (electron/rust/crates/swc_compiler_base-0.22.0.crate) = 5051 SHA256 (electron/rust/crates/swc_config-0.1.15.crate) = 4740e53eaf68b101203c1df0937d5161a29f3c13bceed0836ddfe245b72dd000 SIZE (electron/rust/crates/swc_config-0.1.15.crate) = 4839 SHA256 (electron/rust/crates/swc_config_macro-0.1.4.crate) = 7c5f56139042c1a95b54f5ca48baa0e0172d369bcc9d3d473dad1de36bae8399 SIZE (electron/rust/crates/swc_config_macro-0.1.4.crate) = 1717 SHA256 (electron/rust/crates/swc_ecma_ast-0.120.0.crate) = bb7f7d4a08f9a413b27506903a5a893a51bd0df6c8b91203fbb76aa217472ed6 SIZE (electron/rust/crates/swc_ecma_ast-0.120.0.crate) = 34640 SHA256 (electron/rust/crates/swc_ecma_codegen-0.157.0.crate) = 78ce83228e9304008f2df1d21e0e88d70232c438337f5faad27024974e2d3a09 SIZE (electron/rust/crates/swc_ecma_codegen-0.157.0.crate) = 52829 SHA256 (electron/rust/crates/swc_ecma_codegen_macros-0.7.7.crate) = 859fabde36db38634f3fad548dd5e3410c1aebba1b67a3c63e67018fa57a0bca SIZE (electron/rust/crates/swc_ecma_codegen_macros-0.7.7.crate) = 2945 SHA256 (electron/rust/crates/swc_ecma_minifier-0.207.0.crate) = 15739c02dff0b2b3fe10146b0105b7842b7f71e9340f226b6f1862db15a680f6 SIZE (electron/rust/crates/swc_ecma_minifier-0.207.0.crate) = 225454 SHA256 (electron/rust/crates/swc_ecma_parser-0.151.0.crate) = 3c23f8288f6a38f84a1b82896917eac3adf92e37dee19cbc1c42cebab7b48590 SIZE (electron/rust/crates/swc_ecma_parser-0.151.0.crate) = 150827 SHA256 (electron/rust/crates/swc_ecma_transforms_base-0.148.0.crate) = 0231922ee5391a452ea47f7bf6ffde401fd7ceb201b8ac6343c885758e33551e SIZE (electron/rust/crates/swc_ecma_transforms_base-0.148.0.crate) = 72533 SHA256 (electron/rust/crates/swc_ecma_transforms_macros-0.5.5.crate) = 500a1dadad1e0e41e417d633b3d6d5de677c9e0d3159b94ba3348436cdb15aab SIZE (electron/rust/crates/swc_ecma_transforms_macros-0.5.5.crate) = 3827 SHA256 (electron/rust/crates/swc_ecma_transforms_optimization-0.211.0.crate) = 5966e6e631795b350441fcfea34dd00d6ad637d182033697f606c82a74d64894 SIZE (electron/rust/crates/swc_ecma_transforms_optimization-0.211.0.crate) = 61838 SHA256 (electron/rust/crates/swc_ecma_usage_analyzer-0.32.0.crate) = ae003379b4b3f0ef1b149014a9bac0db7261ebd8b8abe03e51be3fd2b0134fe4 SIZE (electron/rust/crates/swc_ecma_usage_analyzer-0.32.0.crate) = 11954 SHA256 (electron/rust/crates/swc_ecma_utils-0.136.0.crate) = df9b03b44d3342bcf4e3f8a4c05605e07c642b537198a5534314c433a3767fe5 SIZE (electron/rust/crates/swc_ecma_utils-0.136.0.crate) = 32888 SHA256 (electron/rust/crates/swc_ecma_visit-0.106.0.crate) = f4ee9335a4ad1a78587d5cb0d75a8c718a53d40eaf37475e3eda9c4ed1741da0 SIZE (electron/rust/crates/swc_ecma_visit-0.106.0.crate) = 318891 SHA256 (electron/rust/crates/swc_eq_ignore_macros-0.1.4.crate) = 63db0adcff29d220c3d151c5b25c0eabe7e32dd936212b84cdaa1392e3130497 SIZE (electron/rust/crates/swc_eq_ignore_macros-0.1.4.crate) = 2741 SHA256 (electron/rust/crates/swc_fast_graph-0.27.0.crate) = accc67d03a5b88d5d8fc4ba051738075ba0e12194d1dc26f9f88a776026fe938 SIZE (electron/rust/crates/swc_fast_graph-0.27.0.crate) = 7100 SHA256 (electron/rust/crates/swc_macros_common-0.3.13.crate) = f486687bfb7b5c560868f69ed2d458b880cebc9babebcb67e49f31b55c5bf847 SIZE (electron/rust/crates/swc_macros_common-0.3.13.crate) = 6666 SHA256 (electron/rust/crates/swc_timer-0.27.0.crate) = f53899e4ab3f9ce3db83b4c845f8a27f37bf700b233febbc9a6da749651c2fbb SIZE (electron/rust/crates/swc_timer-0.27.0.crate) = 1680 SHA256 (electron/rust/crates/swc_visit-0.6.2.crate) = 1ceb044142ba2719ef9eb3b6b454fce61ab849eb696c34d190f04651955c613d SIZE (electron/rust/crates/swc_visit-0.6.2.crate) = 5188 SHA256 (electron/rust/crates/syn-1.0.109.crate) = 72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237 SIZE (electron/rust/crates/syn-1.0.109.crate) = 237611 SHA256 (electron/rust/crates/syn-2.0.77.crate) = 9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed SIZE (electron/rust/crates/syn-2.0.77.crate) = 268784 SHA256 (electron/rust/crates/tap-1.0.1.crate) = 55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369 SIZE (electron/rust/crates/tap-1.0.1.crate) = 11316 SHA256 (electron/rust/crates/tinyvec-1.8.0.crate) = 445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938 SIZE (electron/rust/crates/tinyvec-1.8.0.crate) = 46796 SHA256 (electron/rust/crates/tinyvec_macros-0.1.1.crate) = 1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20 SIZE (electron/rust/crates/tinyvec_macros-0.1.1.crate) = 5865 SHA256 (electron/rust/crates/tracing-0.1.40.crate) = c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef SIZE (electron/rust/crates/tracing-0.1.40.crate) = 79459 SHA256 (electron/rust/crates/tracing-attributes-0.1.27.crate) = 34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7 SIZE (electron/rust/crates/tracing-attributes-0.1.27.crate) = 32241 SHA256 (electron/rust/crates/tracing-core-0.1.32.crate) = c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54 SIZE (electron/rust/crates/tracing-core-0.1.32.crate) = 61221 SHA256 (electron/rust/crates/triomphe-0.1.13.crate) = e6631e42e10b40c0690bf92f404ebcfe6e1fdb480391d15f17cc8e96eeed5369 SIZE (electron/rust/crates/triomphe-0.1.13.crate) = 29568 SHA256 (electron/rust/crates/typed-arena-2.0.2.crate) = 6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a SIZE (electron/rust/crates/typed-arena-2.0.2.crate) = 11848 SHA256 (electron/rust/crates/unicode-bidi-0.3.15.crate) = 08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75 SIZE (electron/rust/crates/unicode-bidi-0.3.15.crate) = 56811 SHA256 (electron/rust/crates/unicode-id-0.3.5.crate) = 10103c57044730945224467c09f71a4db0071c123a0648cc3e818913bde6b561 SIZE (electron/rust/crates/unicode-id-0.3.5.crate) = 16807 SHA256 (electron/rust/crates/unicode-id-start-1.3.0.crate) = 97e2a3c5fc9de285c0e805d98eba666adb4b2d9e1049ce44821ff7707cc34e91 SIZE (electron/rust/crates/unicode-id-start-1.3.0.crate) = 43825 SHA256 (electron/rust/crates/unicode-ident-1.0.13.crate) = e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe SIZE (electron/rust/crates/unicode-ident-1.0.13.crate) = 43279 SHA256 (electron/rust/crates/unicode-normalization-0.1.24.crate) = 5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956 SIZE (electron/rust/crates/unicode-normalization-0.1.24.crate) = 126536 SHA256 (electron/rust/crates/unicode-segmentation-1.12.0.crate) = f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493 SIZE (electron/rust/crates/unicode-segmentation-1.12.0.crate) = 106323 SHA256 (electron/rust/crates/unicode-width-0.1.14.crate) = 7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af SIZE (electron/rust/crates/unicode-width-0.1.14.crate) = 271615 SHA256 (electron/rust/crates/url-2.5.2.crate) = 22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c SIZE (electron/rust/crates/url-2.5.2.crate) = 79704 SHA256 (electron/rust/crates/uuid-1.10.0.crate) = 81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314 SIZE (electron/rust/crates/uuid-1.10.0.crate) = 47648 SHA256 (electron/rust/crates/version_check-0.9.5.crate) = 0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a SIZE (electron/rust/crates/version_check-0.9.5.crate) = 15554 SHA256 (electron/rust/crates/wasi-0.11.0+wasi-snapshot-preview1.crate) = 9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423 SIZE (electron/rust/crates/wasi-0.11.0+wasi-snapshot-preview1.crate) = 28131 SHA256 (electron/rust/crates/wasm-bindgen-0.2.93.crate) = a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5 SIZE (electron/rust/crates/wasm-bindgen-0.2.93.crate) = 43769 SHA256 (electron/rust/crates/wasm-bindgen-backend-0.2.93.crate) = 9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b SIZE (electron/rust/crates/wasm-bindgen-backend-0.2.93.crate) = 30344 SHA256 (electron/rust/crates/wasm-bindgen-macro-0.2.93.crate) = 585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf SIZE (electron/rust/crates/wasm-bindgen-macro-0.2.93.crate) = 6822 SHA256 (electron/rust/crates/wasm-bindgen-macro-support-0.2.93.crate) = afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836 SIZE (electron/rust/crates/wasm-bindgen-macro-support-0.2.93.crate) = 20642 SHA256 (electron/rust/crates/wasm-bindgen-shared-0.2.93.crate) = c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484 SIZE (electron/rust/crates/wasm-bindgen-shared-0.2.93.crate) = 7527 SHA256 (electron/rust/crates/windows-sys-0.59.0.crate) = 1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b SIZE (electron/rust/crates/windows-sys-0.59.0.crate) = 2387323 SHA256 (electron/rust/crates/windows-targets-0.52.6.crate) = 9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973 SIZE (electron/rust/crates/windows-targets-0.52.6.crate) = 6403 SHA256 (electron/rust/crates/windows_aarch64_gnullvm-0.52.6.crate) = 32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3 SIZE (electron/rust/crates/windows_aarch64_gnullvm-0.52.6.crate) = 435718 SHA256 (electron/rust/crates/windows_aarch64_msvc-0.52.6.crate) = 09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469 SIZE (electron/rust/crates/windows_aarch64_msvc-0.52.6.crate) = 832615 SHA256 (electron/rust/crates/windows_i686_gnu-0.52.6.crate) = 8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b SIZE (electron/rust/crates/windows_i686_gnu-0.52.6.crate) = 880402 SHA256 (electron/rust/crates/windows_i686_gnullvm-0.52.6.crate) = 0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66 SIZE (electron/rust/crates/windows_i686_gnullvm-0.52.6.crate) = 475940 SHA256 (electron/rust/crates/windows_i686_msvc-0.52.6.crate) = 240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66 SIZE (electron/rust/crates/windows_i686_msvc-0.52.6.crate) = 901163 SHA256 (electron/rust/crates/windows_x86_64_gnu-0.52.6.crate) = 147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78 SIZE (electron/rust/crates/windows_x86_64_gnu-0.52.6.crate) = 836363 SHA256 (electron/rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d SIZE (electron/rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 435707 SHA256 (electron/rust/crates/windows_x86_64_msvc-0.52.6.crate) = 589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec SIZE (electron/rust/crates/windows_x86_64_msvc-0.52.6.crate) = 832564 SHA256 (electron/rust/crates/wyz-0.5.1.crate) = 05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed SIZE (electron/rust/crates/wyz-0.5.1.crate) = 18790 SHA256 (electron/rust/crates/xxhash-rust-0.8.12.crate) = 6a5cbf750400958819fb6178eaa83bee5cd9c29a26a40cc241df8c70fdd46984 SIZE (electron/rust/crates/xxhash-rust-0.8.12.crate) = 21329 SHA256 (electron/rust/crates/zerocopy-0.7.35.crate) = 1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0 SIZE (electron/rust/crates/zerocopy-0.7.35.crate) = 152645 SHA256 (electron/rust/crates/zerocopy-derive-0.7.35.crate) = fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e SIZE (electron/rust/crates/zerocopy-derive-0.7.35.crate) = 37829 SHA256 (electron/yarn-4.12.0.tgz) = bd58d06826ce9542c4cd904fe10bab7bc718ea2cc39a45d9fbd15f2edb45761c SIZE (electron/yarn-4.12.0.tgz) = 1056794 -SHA256 (electron/electron41-41.2.0-node-modules.tar.xz) = 9ded0bbcd3c5db0b211a670695a5cd39b06240eb3cde395fcc8990702f45da14 -SIZE (electron/electron41-41.2.0-node-modules.tar.xz) = 63583255 -SHA256 (electron/electron-electron-v41.2.0_GH0.tar.gz) = 0da74eda01b0db686a0bd916ed287b6f85f6b705f2666cddd10ebb93639cadbf -SIZE (electron/electron-electron-v41.2.0_GH0.tar.gz) = 17211528 -SHA256 (electron/nodejs-node-v24.14.0_GH0.tar.gz) = f3a7374f7d0a3b3dcd1b612dd2bf1ffbe7ace778c02c027efaaacbad1e17390a -SIZE (electron/nodejs-node-v24.14.0_GH0.tar.gz) = 126199657 +SHA256 (electron/electron41-41.2.1-node-modules.tar.xz) = 9ded0bbcd3c5db0b211a670695a5cd39b06240eb3cde395fcc8990702f45da14 +SIZE (electron/electron41-41.2.1-node-modules.tar.xz) = 63583255 +SHA256 (electron/electron-electron-v41.2.1_GH0.tar.gz) = ca1d8c95ec295f2945f6dc8cc0ddc4be6a2f38a2e661f4ab8e03f94ec2c0a83a +SIZE (electron/electron-electron-v41.2.1_GH0.tar.gz) = 17239327 +SHA256 (electron/nodejs-node-v24.14.1_GH0.tar.gz) = dd9da50596e7b1c4edeb56daf0e81f57e1b61e43c36f40eadeee77be7d779e08 +SIZE (electron/nodejs-node-v24.14.1_GH0.tar.gz) = 126384322 SHA256 (electron/nodejs-nan-675cefebca42410733da8a454c8d9391fcebfbc2_GH0.tar.gz) = 3983c68f19ed75dd37dc228eab385093ae2533132730f253f0c3d19ff10788e3 SIZE (electron/nodejs-nan-675cefebca42410733da8a454c8d9391fcebfbc2_GH0.tar.gz) = 111323 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 SHA256 (electron/rollup-rollup-v4.22.4_GH0.tar.gz) = a7e5c09f00fe50adabe27fef8455510f156cf73fee8aef1faf3804b653988e4c SIZE (electron/rollup-rollup-v4.22.4_GH0.tar.gz) = 1732642 SHA256 (electron/evanw-esbuild-v0.27.1_GH0.tar.gz) = bcc3abdc911961ef04340714dc69ddc34af6d2e2c60a1c4036d1c7f1a3fc4a23 SIZE (electron/evanw-esbuild-v0.27.1_GH0.tar.gz) = 1978868 diff --git a/devel/electron41/files/patch-electron_BUILD.gn b/devel/electron41/files/patch-electron_BUILD.gn index 13e84ef73413..07a399eabb58 100644 --- a/devel/electron41/files/patch-electron_BUILD.gn +++ b/devel/electron41/files/patch-electron_BUILD.gn @@ -1,62 +1,62 @@ ---- electron/BUILD.gn.orig 2026-03-17 08:46:52 UTC +--- electron/BUILD.gn.orig 2026-04-15 14:10:25 UTC +++ electron/BUILD.gn -@@ -552,7 +552,7 @@ source_set("electron_lib") { +@@ -553,7 +553,7 @@ source_set("electron_lib") { defines += [ "GDK_DISABLE_DEPRECATION_WARNINGS" ] } - if (!is_mas_build) { + if (!is_mas_build && !is_bsd) { deps += [ "//components/crash/core/app", "//components/crash/core/browser", -@@ -651,6 +651,12 @@ source_set("electron_lib") { +@@ -652,6 +652,12 @@ source_set("electron_lib") { cflags_objcc = [ "-fobjc-weak" ] } } + if (is_bsd) { + sources -= [ + "shell/common/crash_keys.cc", + "shell/common/crash_keys.h", + ] + } if (is_linux) { libs = [ "xshmfence" ] deps += [ -@@ -1236,7 +1242,7 @@ if (is_mac) { +@@ -1237,7 +1243,7 @@ if (is_mac) { ":electron_lib", ":electron_win32_resources", ":packed_resources", - "//components/crash/core/app", + # "//components/crash/core/app", "//content:sandbox_helper_win", "//electron/buildflags", "//third_party/electron_node:libnode", -@@ -1263,7 +1269,7 @@ if (is_mac) { +@@ -1264,7 +1270,7 @@ if (is_mac) { public_deps = [ "//tools/v8_context_snapshot" ] } - if (is_linux) { + if (is_linux && !is_bsd) { data_deps += [ "//components/crash/core/app:chrome_crashpad_handler" ] } -@@ -1330,7 +1336,7 @@ if (is_mac) { +@@ -1331,7 +1337,7 @@ if (is_mac) { configs += [ "//build/config/gcc:rpath_for_built_shared_libraries" ] } - if (is_linux) { + if (is_linux && !is_bsd) { deps += [ "//sandbox/linux:chrome_sandbox" ] } } -@@ -1451,7 +1457,9 @@ dist_zip("electron_dist_zip") { +@@ -1452,7 +1458,9 @@ dist_zip("electron_dist_zip") { ] } - data_deps += [ "//sandbox/linux:chrome_sandbox" ] + if (!is_bsd) { + data_deps += [ "//sandbox/linux:chrome_sandbox" ] + } } deps = data_deps outputs = [ "$root_build_dir/dist.zip" ] diff --git a/devel/electron41/files/patch-electron_default__app_default__app.ts b/devel/electron41/files/patch-electron_default__app_default__app.ts index 8af59e14c83f..60b7c1ac688b 100644 --- a/devel/electron41/files/patch-electron_default__app_default__app.ts +++ b/devel/electron41/files/patch-electron_default__app_default__app.ts @@ -1,11 +1,11 @@ ---- electron/default_app/default_app.ts.orig 2024-10-09 13:53:06 UTC +--- electron/default_app/default_app.ts.orig 2026-04-15 14:10:25 UTC +++ electron/default_app/default_app.ts -@@ -61,7 +61,7 @@ async function createWindow (backgroundColor?: string) +@@ -101,7 +101,7 @@ async function createWindow (backgroundColor?: string) show: false }; - if (process.platform === 'linux') { + if (process.platform === 'linux' || process.platform === 'freebsd') { options.icon = url.fileURLToPath(new URL('icon.png', import.meta.url)); } diff --git a/devel/electron41/files/patch-electron_shell_app_node__main.cc b/devel/electron41/files/patch-electron_shell_app_node__main.cc index 80376104ca3f..9f82dd18173f 100644 --- a/devel/electron41/files/patch-electron_shell_app_node__main.cc +++ b/devel/electron41/files/patch-electron_shell_app_node__main.cc @@ -1,37 +1,37 @@ ---- electron/shell/app/node_main.cc.orig 2026-01-15 18:39:20 UTC +--- electron/shell/app/node_main.cc.orig 2026-04-15 14:10:25 UTC +++ electron/shell/app/node_main.cc @@ -53,7 +53,7 @@ #include "shell/common/mac/codesign_util.h" #endif -#if !IS_MAS_BUILD() +#if !IS_MAS_BUILD() && !BUILDFLAG(IS_BSD) #include "components/crash/core/app/crashpad.h" // nogncheck #include "shell/app/electron_crash_reporter_client.h" #include "shell/common/crash_keys.h" @@ -105,14 +105,14 @@ bool UnsetHijackableEnvs(base::Environment* env) { } #endif -#if IS_MAS_BUILD() +#if IS_MAS_BUILD() || BUILDFLAG(IS_BSD) void SetCrashKeyStub(const std::string& key, const std::string& value) {} void ClearCrashKeyStub(const std::string& key) {} #endif v8::Local GetParameters(v8::Isolate* isolate) { std::map keys; -#if !IS_MAS_BUILD() +#if !IS_MAS_BUILD() && !BUILDFLAG(IS_BSD) electron::crash_keys::GetCrashKeys(&keys); #endif return gin::ConvertToV8(isolate, keys); -@@ -291,7 +291,7 @@ int NodeMain() { +@@ -296,7 +296,7 @@ int NodeMain() { // Setup process.crashReporter in child node processes auto reporter = gin_helper::Dictionary::CreateEmpty(isolate); reporter.SetMethod("getParameters", &GetParameters); -#if IS_MAS_BUILD() +#if IS_MAS_BUILD() || BUILDFLAG(IS_BSD) reporter.SetMethod("addExtraParameter", &SetCrashKeyStub); reporter.SetMethod("removeExtraParameter", &ClearCrashKeyStub); #else diff --git a/devel/electron41/files/patch-electron_shell_browser_api_electron__api__app.cc b/devel/electron41/files/patch-electron_shell_browser_api_electron__api__app.cc index 298ca85172d2..7e6775952bde 100644 --- a/devel/electron41/files/patch-electron_shell_browser_api_electron__api__app.cc +++ b/devel/electron41/files/patch-electron_shell_browser_api_electron__api__app.cc @@ -1,74 +1,74 @@ ---- electron/shell/browser/api/electron_api_app.cc.orig 2026-03-17 08:46:52 UTC +--- electron/shell/browser/api/electron_api_app.cc.orig 2026-04-15 14:10:25 UTC +++ electron/shell/browser/api/electron_api_app.cc -@@ -100,7 +100,7 @@ +@@ -101,7 +101,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 -@@ -428,7 +428,7 @@ bool NotificationCallbackWrapper( +@@ -429,7 +429,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. -@@ -613,7 +613,7 @@ void App::OnFinishLaunching(base::DictValue launch_inf +@@ -614,7 +614,7 @@ void App::OnFinishLaunching(base::DictValue launch_inf } void App::OnFinishLaunching(base::DictValue 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()); -@@ -962,7 +962,7 @@ void App::SetDesktopName(const std::string& desktop_na +@@ -963,7 +963,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 -@@ -1066,7 +1066,7 @@ bool App::RequestSingleInstanceLock(gin::Arguments* ar +@@ -1065,7 +1065,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. -@@ -1453,7 +1453,7 @@ std::vector App::GetAppMetrics +@@ -1452,7 +1452,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); -@@ -1855,7 +1855,7 @@ gin::ObjectTemplateBuilder App::GetObjectTemplateBuild +@@ -1854,7 +1854,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)) -@@ -1913,7 +1913,7 @@ gin::ObjectTemplateBuilder App::GetObjectTemplateBuild +@@ -1912,7 +1912,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/electron41/files/patch-electron_shell_browser_api_electron__api__base__window.h b/devel/electron41/files/patch-electron_shell_browser_api_electron__api__base__window.h index 2e7f9d9cd469..874f3557cf1b 100644 --- a/devel/electron41/files/patch-electron_shell_browser_api_electron__api__base__window.h +++ b/devel/electron41/files/patch-electron_shell_browser_api_electron__api__base__window.h @@ -1,11 +1,11 @@ ---- electron/shell/browser/api/electron_api_base_window.h.orig 2026-03-31 13:26:31 UTC +--- electron/shell/browser/api/electron_api_base_window.h.orig 2026-04-15 14:10:25 UTC +++ electron/shell/browser/api/electron_api_base_window.h -@@ -262,7 +262,7 @@ class BaseWindow : public gin_helper::TrackableObject< +@@ -264,7 +264,7 @@ class BaseWindow : public gin_helper::TrackableObject< v8::Local GetAccentColor() const; #endif -#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) void SetTitleBarOverlay(const gin_helper::Dictionary& options, gin::Arguments* args); #endif diff --git a/devel/electron41/files/patch-electron_shell_browser_api_electron__api__web__contents.cc b/devel/electron41/files/patch-electron_shell_browser_api_electron__api__web__contents.cc index 15c69ba61b09..74df305bd0f2 100644 --- a/devel/electron41/files/patch-electron_shell_browser_api_electron__api__web__contents.cc +++ b/devel/electron41/files/patch-electron_shell_browser_api_electron__api__web__contents.cc @@ -1,77 +1,77 @@ ---- electron/shell/browser/api/electron_api_web_contents.cc.orig 2026-04-07 01:35:50 UTC +--- electron/shell/browser/api/electron_api_web_contents.cc.orig 2026-04-15 14:10:25 UTC +++ electron/shell/browser/api/electron_api_web_contents.cc @@ -164,11 +164,11 @@ #include "ui/base/cocoa/defaults_utils.h" #endif -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) #include "ui/linux/linux_ui.h" #endif -#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) #include "ui/aura/window.h" #include "ui/gfx/font_render_params.h" #endif @@ -200,7 +200,7 @@ #include "content/public/browser/plugin_service.h" #endif -#if !IS_MAS_BUILD() +#if !IS_MAS_BUILD() && !BUILDFLAG(IS_BSD) #include "chrome/browser/hang_monitor/hang_crash_dump.h" // nogncheck #endif @@ -635,7 +635,7 @@ std::optional GetCursorBlinkInterval( ui::TextInsertionCaretBlinkPeriodFromDefaults()); if (system_value) return *system_value; -#elif BUILDFLAG(IS_LINUX) +#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) if (auto* native_theme = ui::NativeTheme::GetInstanceForNativeUi()) return native_theme->caret_blink_interval(); #elif BUILDFLAG(IS_WIN) @@ -1005,7 +1005,7 @@ void WebContents::InitWithSessionAndOptions( accept_languages.pop_back(); prefs->accept_languages = accept_languages; -#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) // Update font settings. static const gfx::FontRenderParams params( gfx::GetFontRenderParams(gfx::FontRenderParamsQuery(), nullptr)); -@@ -2824,13 +2824,13 @@ void WebContents::ForcefullyCrashRenderer() { +@@ -2830,13 +2830,13 @@ void WebContents::ForcefullyCrashRenderer() { content::RenderProcessHost* rph = rwh->GetProcess(); if (rph) { -#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) // A generic |CrashDumpHungChildProcess()| is not implemented for Linux. // Instead we send an explicit IPC to crash on the renderer's IO thread. rph->ForceCrash(); #else // Try to generate a crash report for the hung process. -#if !IS_MAS_BUILD() +#if !IS_MAS_BUILD() && !BUILDFLAG(IS_BSD) CrashDumpHungChildProcess(rph->GetProcess().Handle()); #endif rph->Shutdown(content::RESULT_CODE_HUNG); -@@ -3532,7 +3532,7 @@ void WebContents::Focus() { +@@ -3540,7 +3540,7 @@ void WebContents::Focus() { void WebContents::Focus() { // Focusing on WebContents does not automatically focus the window on macOS // and Linux, do it manually to match the behavior on Windows. -#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) if (owner_window()) owner_window()->Focus(true); #endif -@@ -4429,7 +4429,7 @@ ui::ImageModel WebContents::GetDevToolsWindowIcon() { +@@ -4437,7 +4437,7 @@ ui::ImageModel WebContents::GetDevToolsWindowIcon() { } #endif -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) void WebContents::GetDevToolsWindowWMClass(std::string* name, std::string* class_name) { *class_name = Browser::Get()->GetName(); diff --git a/devel/electron41/files/patch-electron_shell_browser_browser__process__impl.cc b/devel/electron41/files/patch-electron_shell_browser_browser__process__impl.cc index 65ad8a016001..5e019336ebad 100644 --- a/devel/electron41/files/patch-electron_shell_browser_browser__process__impl.cc +++ b/devel/electron41/files/patch-electron_shell_browser_browser__process__impl.cc @@ -1,20 +1,20 @@ ---- electron/shell/browser/browser_process_impl.cc.orig 2026-03-17 08:46:52 UTC +--- electron/shell/browser/browser_process_impl.cc.orig 2026-04-15 14:10:25 UTC +++ electron/shell/browser/browser_process_impl.cc -@@ -356,7 +356,7 @@ electron::ResolveProxyHelper* BrowserProcessImpl::GetR +@@ -368,7 +368,7 @@ electron::ResolveProxyHelper* BrowserProcessImpl::GetR return resolve_proxy_helper_.get(); } -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) void BrowserProcessImpl::SetLinuxStorageBackend( os_crypt::SelectedLinuxBackend selected_backend) { switch (selected_backend) { -@@ -379,7 +379,7 @@ void BrowserProcessImpl::SetLinuxStorageBackend( +@@ -391,7 +391,7 @@ void BrowserProcessImpl::SetLinuxStorageBackend( NOTREACHED(); } } -#endif // BUILDFLAG(IS_LINUX) +#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) void BrowserProcessImpl::SetApplicationLocale(const std::string& locale) { locale_ = locale; diff --git a/devel/electron41/files/patch-electron_shell_browser_browser__process__impl.h b/devel/electron41/files/patch-electron_shell_browser_browser__process__impl.h index b908063e459b..7a550250d201 100644 --- a/devel/electron41/files/patch-electron_shell_browser_browser__process__impl.h +++ b/devel/electron41/files/patch-electron_shell_browser_browser__process__impl.h @@ -1,29 +1,29 @@ ---- electron/shell/browser/browser_process_impl.h.orig 2026-03-17 08:46:52 UTC +--- electron/shell/browser/browser_process_impl.h.orig 2026-04-15 14:10:25 UTC +++ electron/shell/browser/browser_process_impl.h @@ -22,7 +22,7 @@ #include "shell/browser/net/system_network_context_manager.h" #include "ui/base/unowned_user_data/unowned_user_data_host.h" -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) #include "components/os_crypt/sync/key_storage_util_linux.h" #endif -@@ -61,7 +61,7 @@ class BrowserProcessImpl : public BrowserProcess { +@@ -65,7 +65,7 @@ class BrowserProcessImpl : public BrowserProcess { const std::string& GetSystemLocale() const; electron::ResolveProxyHelper* GetResolveProxyHelper(); -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) void SetLinuxStorageBackend(os_crypt::SelectedLinuxBackend selected_backend); [[nodiscard]] const std::string& linux_storage_backend() const { return selected_linux_storage_backend_; -@@ -153,7 +153,7 @@ class BrowserProcessImpl : public BrowserProcess { +@@ -158,7 +158,7 @@ class BrowserProcessImpl : public BrowserProcess { std::unique_ptr local_state_; std::string locale_; std::string system_locale_; -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) std::string selected_linux_storage_backend_; #endif embedder_support::OriginTrialsSettingsStorage origin_trials_settings_storage_; diff --git a/devel/electron41/files/patch-electron_shell_browser_native__window__views.cc b/devel/electron41/files/patch-electron_shell_browser_native__window__views.cc index 26017a41bfb9..e0d50c4e03e1 100644 --- a/devel/electron41/files/patch-electron_shell_browser_native__window__views.cc +++ b/devel/electron41/files/patch-electron_shell_browser_native__window__views.cc @@ -1,209 +1,209 @@ ---- electron/shell/browser/native_window_views.cc.orig 2026-03-17 08:46:52 UTC +--- electron/shell/browser/native_window_views.cc.orig 2026-04-15 14:10:25 UTC +++ electron/shell/browser/native_window_views.cc @@ -58,7 +58,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" @@ -291,7 +291,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"; @@ -318,7 +318,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); @@ -439,7 +439,7 @@ NativeWindowViews::NativeWindowViews(const gin_helper: if (window) window->AddPreTargetHandler(this); --#if BUILDFLAG(IS_LINUX) -+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) - // We need to set bounds again after widget init for two reasons: - // 1. For CSD windows, user-specified bounds need to be inflated by frame - // insets, but the frame view isn't available at first. -@@ -516,7 +516,7 @@ void NativeWindowViews::SetGTKDarkThemeEnabled(bool us +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + // The initial params.bounds was applied before the frame view existed, so + // non-client insets weren't accounted for and bounds need to be set again. + if (!GetRestoredFrameBorderInsets().IsEmpty()) +@@ -514,7 +514,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(); -@@ -577,7 +577,7 @@ void NativeWindowViews::Show() { +@@ -575,7 +575,7 @@ void NativeWindowViews::Show() { NotifyWindowShow(); -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) if (global_menu_bar_) global_menu_bar_->OnWindowMapped(); -@@ -593,7 +593,7 @@ void NativeWindowViews::ShowInactive() { +@@ -591,7 +591,7 @@ void NativeWindowViews::ShowInactive() { NotifyWindowShow(); -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) if (global_menu_bar_) global_menu_bar_->OnWindowMapped(); -@@ -612,7 +612,7 @@ void NativeWindowViews::Hide() { +@@ -610,7 +610,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 -@@ -643,7 +643,7 @@ bool NativeWindowViews::IsEnabled() const { +@@ -641,7 +641,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(); -@@ -868,7 +868,7 @@ void NativeWindowViews::SetBounds(const gfx::Rect& bou +@@ -866,7 +866,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()) { @@ -921,7 +921,7 @@ void NativeWindowViews::SetContentSizeConstraints( // of this to determine whether native widget has initialized. if (widget() && widget()->widget_delegate()) widget()->OnSizeConstraintsChanged(); -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) if (resizable_) old_size_constraints_ = GetSizeConstraints(); #endif @@ -1128,7 +1128,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 } @@ -1168,7 +1168,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(); @@ -1272,7 +1272,7 @@ void NativeWindowViews::SetBackgroundColor(SkColor bac InvalidateRect(GetAcceleratedWidget(), nullptr, 1); #endif SkColor compositor_color = background_color; -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) // Widget background needs to stay transparent for CSD shadow regions. LinuxFrameLayout* frame_layout = GetLinuxFrameLayout(); const bool uses_csd = @@ -1394,7 +1394,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(); @@ -1450,7 +1450,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( @@ -1512,7 +1512,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); } @@ -1638,7 +1638,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 = -@@ -1761,7 +1761,7 @@ void NativeWindowViews::SetIcon(HICON window_icon, HIC +@@ -1768,7 +1768,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()); -@@ -1882,7 +1882,7 @@ bool NativeWindowViews::CanMinimize() const { +@@ -1889,7 +1889,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 } -@@ -1924,7 +1924,7 @@ std::unique_ptr NativeWindowViews::C +@@ -1931,7 +1931,7 @@ std::unique_ptr NativeWindowViews::C #endif } -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) LinuxFrameLayout* NativeWindowViews::GetLinuxFrameLayout() { auto* ncv = widget()->non_client_view(); if (!ncv) -@@ -1944,7 +1944,7 @@ void NativeWindowViews::HandleKeyboardEvent( +@@ -1951,7 +1951,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) -@@ -1963,7 +1963,7 @@ void NativeWindowViews::OnMouseEvent(ui::MouseEvent* e +@@ -1970,7 +1970,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/electron41/files/patch-electron_shell_browser_native__window__views.h b/devel/electron41/files/patch-electron_shell_browser_native__window__views.h index 8e0568c6964c..f22526b7e275 100644 --- a/devel/electron41/files/patch-electron_shell_browser_native__window__views.h +++ b/devel/electron41/files/patch-electron_shell_browser_native__window__views.h @@ -1,38 +1,38 @@ ---- electron/shell/browser/native_window_views.h.orig 2026-03-17 08:46:52 UTC +--- electron/shell/browser/native_window_views.h.orig 2026-04-15 14:10:25 UTC +++ electron/shell/browser/native_window_views.h @@ -32,7 +32,7 @@ namespace electron { namespace electron { -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) class ClientFrameViewLinux; class GlobalMenuBarX11; class LinuxFrameLayout; @@ -181,7 +181,7 @@ class NativeWindowViews : public NativeWindow, LPARAM l_param, LRESULT* result); void SetIcon(HICON small_icon, HICON app_icon); -#elif BUILDFLAG(IS_LINUX) +#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) void SetIcon(const gfx::ImageSkia& icon); #endif -@@ -198,7 +198,7 @@ class NativeWindowViews : public NativeWindow, +@@ -199,7 +199,7 @@ class NativeWindowViews : public NativeWindow, SkColor overlay_button_color() const { return overlay_button_color_; } SkColor overlay_symbol_color() const { return overlay_symbol_color_; } -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) LinuxFrameLayout* GetLinuxFrameLayout(); #endif -@@ -276,7 +276,7 @@ class NativeWindowViews : public NativeWindow, +@@ -277,7 +277,7 @@ class NativeWindowViews : public NativeWindow, // events from resizing the window. extensions::SizeConstraints old_size_constraints_; -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) std::unique_ptr global_menu_bar_; #endif diff --git a/devel/electron41/files/patch-electron_shell_browser_osr_osr__host__display__client.cc b/devel/electron41/files/patch-electron_shell_browser_osr_osr__host__display__client.cc index 5d81b8439962..0f3bfbc89873 100644 --- a/devel/electron41/files/patch-electron_shell_browser_osr_osr__host__display__client.cc +++ b/devel/electron41/files/patch-electron_shell_browser_osr_osr__host__display__client.cc @@ -1,11 +1,11 @@ ---- electron/shell/browser/osr/osr_host_display_client.cc.orig 2026-01-15 18:39:20 UTC +--- electron/shell/browser/osr/osr_host_display_client.cc.orig 2026-04-15 14:10:25 UTC +++ electron/shell/browser/osr/osr_host_display_client.cc -@@ -94,7 +94,7 @@ void OffScreenHostDisplayClient::CreateLayeredWindowUp +@@ -102,7 +102,7 @@ void OffScreenHostDisplayClient::CreateLayeredWindowUp layered_window_updater_->SetActive(active_); } -#if BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) +#if (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)) || BUILDFLAG(IS_BSD) void OffScreenHostDisplayClient::DidCompleteSwapWithNewSize( const gfx::Size& size) {} #endif diff --git a/devel/electron41/files/patch-electron_shell_browser_osr_osr__video__consumer.cc b/devel/electron41/files/patch-electron_shell_browser_osr_osr__video__consumer.cc index 9f2c135923f4..fa58911e1093 100644 --- a/devel/electron41/files/patch-electron_shell_browser_osr_osr__video__consumer.cc +++ b/devel/electron41/files/patch-electron_shell_browser_osr_osr__video__consumer.cc @@ -1,11 +1,11 @@ ---- electron/shell/browser/osr/osr_video_consumer.cc.orig 2026-03-17 08:46:52 UTC +--- electron/shell/browser/osr/osr_video_consumer.cc.orig 2026-04-15 14:10:25 UTC +++ electron/shell/browser/osr/osr_video_consumer.cc -@@ -129,7 +129,7 @@ void OffScreenVideoConsumer::OnFrameCaptured( +@@ -130,7 +130,7 @@ void OffScreenVideoConsumer::OnFrameCaptured( #elif BUILDFLAG(IS_APPLE) texture.shared_texture_handle = reinterpret_cast(gmb_handle.io_surface().get()); -#elif BUILDFLAG(IS_LINUX) +#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) const auto& native_pixmap = gmb_handle.native_pixmap_handle(); texture.modifier = native_pixmap.modifier; texture.supports_zero_copy_webgpu_import = diff --git a/devel/electron41/files/patch-electron_shell_browser_ui_inspectable__web__contents.cc b/devel/electron41/files/patch-electron_shell_browser_ui_inspectable__web__contents.cc index 558968941a0e..eae4187bd261 100644 --- a/devel/electron41/files/patch-electron_shell_browser_ui_inspectable__web__contents.cc +++ b/devel/electron41/files/patch-electron_shell_browser_ui_inspectable__web__contents.cc @@ -1,11 +1,11 @@ ---- electron/shell/browser/ui/inspectable_web_contents.cc.orig 2026-04-07 01:35:50 UTC +--- electron/shell/browser/ui/inspectable_web_contents.cc.orig 2026-04-15 14:10:25 UTC +++ electron/shell/browser/ui/inspectable_web_contents.cc -@@ -575,7 +575,7 @@ void InspectableWebContents::LoadCompleted() { - dock_state_ = "right"; +@@ -590,7 +590,7 @@ void InspectableWebContents::LoadCompleted() { + dock_state_ = "right"; + } } - } -#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 = + auto* api_web_contents = api::WebContents::From(GetWebContents()); + if (api_web_contents) { + auto* win = diff --git a/devel/electron41/files/patch-electron_spec_api-browser-window-spec.ts b/devel/electron41/files/patch-electron_spec_api-browser-window-spec.ts index 3361e70ccf53..26d498cf8b42 100644 --- a/devel/electron41/files/patch-electron_spec_api-browser-window-spec.ts +++ b/devel/electron41/files/patch-electron_spec_api-browser-window-spec.ts @@ -1,191 +1,191 @@ ---- electron/spec/api-browser-window-spec.ts.orig 2026-04-07 01:35:50 UTC +--- electron/spec/api-browser-window-spec.ts.orig 2026-04-15 14:10:25 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 }); @@ -1886,7 +1886,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'); @@ -2096,7 +2096,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'); @@ -3164,7 +3164,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); @@ -3190,7 +3190,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); @@ -3401,7 +3401,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(); @@ -3467,7 +3467,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(); @@ -4160,7 +4160,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 { @@ -4665,7 +4665,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 }); @@ -4936,7 +4936,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(); @@ -4951,7 +4951,7 @@ describe('BrowserWindow module', () => { expect(w.isMaximized()).to.equal(true); }); - ifit(process.platform !== 'linux')('should not break fullscreen state', async () => { + ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('should not break fullscreen state', async () => { const w = new BrowserWindow({ show: false }); w.show(); @@ -4974,7 +4974,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 }); @@ -5011,7 +5011,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(); @@ -5497,7 +5497,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'); @@ -5751,7 +5751,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); -@@ -6981,7 +6981,7 @@ describe('BrowserWindow module', () => { +@@ -7001,7 +7001,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/electron41/files/patch-electron_spec_api-crash-reporter-spec.ts b/devel/electron41/files/patch-electron_spec_api-crash-reporter-spec.ts index 484c399c9179..ec0516c0bfac 100644 --- a/devel/electron41/files/patch-electron_spec_api-crash-reporter-spec.ts +++ b/devel/electron41/files/patch-electron_spec_api-crash-reporter-spec.ts @@ -1,56 +1,56 @@ ---- electron/spec/api-crash-reporter-spec.ts.orig 2024-10-22 02:29:46 UTC +--- electron/spec/api-crash-reporter-spec.ts.orig 2026-04-15 14:10:25 UTC +++ electron/spec/api-crash-reporter-spec.ts @@ -14,7 +14,7 @@ const isWindowsOnArm = process.platform === 'win32' && import { ifdescribe, ifit, defer, startRemoteControlApp, repeatedly, listen } from './lib/spec-helpers'; const isWindowsOnArm = process.platform === 'win32' && process.arch === 'arm64'; -const isLinuxOnArm = process.platform === 'linux' && process.arch.includes('arm'); +const isLinuxOnArm = ((process.platform === 'linux' || process.platform === 'freebsd') && process.arch.includes('arm')); type CrashInfo = { prod: string @@ -47,7 +47,7 @@ function checkCrash (expectedProcessType: string, fiel // TODO(nornagon): minidumps are sometimes (not always) turning up empty on // 32-bit Linux. Figure out why. - if (!(process.platform === 'linux' && process.arch === 'ia32')) { + if (!((process.platform === 'linux' || process.platform === 'freebsd') && process.arch === 'ia32')) { expect(fields.upload_file_minidump.length).to.be.greaterThan(0); } } @@ -184,7 +184,7 @@ ifdescribe(!isLinuxOnArm && !process.mas && !process.e // Ensures that passing in crashpadHandlerPID flag for Linx child processes // does not affect child process args. - ifit(process.platform === 'linux')('ensure linux child process args are not modified', async () => { + ifit(process.platform === 'linux' || process.platform === 'freebsd')('ensure linux child process args are not modified', async () => { const { port, waitForCrash } = await startServer(); let exitCode: number | null = null; const appPath = path.join(__dirname, 'fixtures', 'apps', 'crash'); -@@ -533,7 +533,7 @@ ifdescribe(!isLinuxOnArm && !process.mas && !process.e +@@ -561,7 +561,7 @@ ifdescribe(!isLinuxOnArm && !process.mas && !process.e } } - const processList = process.platform === 'linux' + const processList = (process.platform === 'linux' || process.platform === 'freebsd') ? ['main', 'renderer', 'sandboxed-renderer'] : ['main', 'renderer', 'sandboxed-renderer', 'node']; for (const crashingProcess of processList) { -@@ -546,7 +546,7 @@ ifdescribe(!isLinuxOnArm && !process.mas && !process.e +@@ -574,7 +574,7 @@ ifdescribe(!isLinuxOnArm && !process.mas && !process.e return app.getPath('crashDumps'); }); let reportsDir = crashesDir; - if (process.platform === 'darwin' || process.platform === 'linux') { + if (process.platform === 'darwin' || process.platform === 'linux' || process.platform === 'freebsd') { reportsDir = path.join(crashesDir, 'completed'); } else if (process.platform === 'win32') { reportsDir = path.join(crashesDir, 'reports'); -@@ -570,7 +570,7 @@ ifdescribe(!isLinuxOnArm && !process.mas && !process.e +@@ -598,7 +598,7 @@ ifdescribe(!isLinuxOnArm && !process.mas && !process.e expect(remoteCrashesDir).to.equal(crashesDir); let reportsDir = crashesDir; - if (process.platform === 'darwin' || process.platform === 'linux') { + if (process.platform === 'darwin' || process.platform === 'linux' || process.platform === 'freebsd') { reportsDir = path.join(crashesDir, 'completed'); } else if (process.platform === 'win32') { reportsDir = path.join(crashesDir, 'reports'); diff --git a/devel/electron41/files/patch-electron_spec_api-desktop-capturer-spec.ts b/devel/electron41/files/patch-electron_spec_api-desktop-capturer-spec.ts index ad4474e50b31..7ed497e61213 100644 --- a/devel/electron41/files/patch-electron_spec_api-desktop-capturer-spec.ts +++ b/devel/electron41/files/patch-electron_spec_api-desktop-capturer-spec.ts @@ -1,65 +1,74 @@ ---- electron/spec/api-desktop-capturer-spec.ts.orig 2025-07-02 10:12:01 UTC +--- electron/spec/api-desktop-capturer-spec.ts.orig 2026-04-15 14:10:25 UTC +++ electron/spec/api-desktop-capturer-spec.ts @@ -9,7 +9,7 @@ function getSourceTypes (): ('window' | 'screen')[] { import { closeAllWindows } from './lib/window-helpers'; function getSourceTypes (): ('window' | 'screen')[] { - if (process.platform === 'linux') { + if (process.platform === 'linux' || process.platform === 'freebsd') { return ['screen']; } return ['window', 'screen']; -@@ -35,7 +35,7 @@ ifdescribe(!process.arch.includes('arm') && process.pl +@@ -35,7 +35,7 @@ describe('desktopCapturer', () => { }); // Linux doesn't return any window sources. - ifit(process.platform !== 'linux')('responds to subsequent calls of different options', async () => { + ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('responds to subsequent calls of different options', async () => { const promise1 = desktopCapturer.getSources({ types: ['window'] }); await expect(promise1).to.eventually.be.fulfilled(); -@@ -44,7 +44,7 @@ ifdescribe(!process.arch.includes('arm') && process.pl +@@ -44,7 +44,7 @@ describe('desktopCapturer', () => { }); // Linux doesn't return any window sources. - ifit(process.platform !== 'linux')('returns an empty display_id for window sources', async () => { + ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('returns an empty display_id for window sources', async () => { const w2 = new BrowserWindow({ width: 200, height: 200 }); await w2.loadURL('about:blank'); -@@ -56,7 +56,7 @@ ifdescribe(!process.arch.includes('arm') && process.pl +@@ -56,7 +56,7 @@ describe('desktopCapturer', () => { } }); - ifit(process.platform !== 'linux')('returns display_ids matching the Screen API', async () => { + ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('returns display_ids matching the Screen API', async () => { const displays = screen.getAllDisplays(); const sources = await desktopCapturer.getSources({ types: ['screen'] }); expect(sources).to.be.an('array').of.length(displays.length); -@@ -99,7 +99,7 @@ ifdescribe(!process.arch.includes('arm') && process.pl +@@ -99,7 +99,7 @@ describe('desktopCapturer', () => { }); // Linux doesn't return any window sources. - ifit(process.platform !== 'linux')('getMediaSourceId should match DesktopCapturerSource.id', async function () { + ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('getMediaSourceId should match DesktopCapturerSource.id', async function () { const w2 = new BrowserWindow({ show: false, width: 100, height: 100, webPreferences: { contextIsolation: false } }); const wShown = once(w2, 'show'); const wFocused = once(w2, 'focus'); -@@ -123,7 +123,7 @@ ifdescribe(!process.arch.includes('arm') && process.pl +@@ -123,7 +123,7 @@ describe('desktopCapturer', () => { }); // Linux doesn't return any window sources. - ifit(process.platform !== 'linux')('getSources should not incorrectly duplicate window_id', async function () { + ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('getSources should not incorrectly duplicate window_id', async function () { const w2 = new BrowserWindow({ show: false, width: 100, height: 100, webPreferences: { contextIsolation: false } }); const wShown = once(w2, 'show'); const wFocused = once(w2, 'focus'); -@@ -169,7 +169,7 @@ ifdescribe(!process.arch.includes('arm') && process.pl +@@ -169,7 +169,7 @@ describe('desktopCapturer', () => { }); // Linux doesn't return any window sources. - ifit(process.platform !== 'linux')('moveAbove should move the window at the requested place', async function () { + ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('moveAbove should move the window at the requested place', async function () { // DesktopCapturer.getSources() is guaranteed to return in the correct // z-order from foreground to background. const MAX_WIN = 4; +@@ -256,7 +256,7 @@ describe('desktopCapturer', () => { + }); + + // Linux doesn't return any window sources. +- ifdescribe(process.platform !== 'linux')('fetchWindowIcons', function () { ++ ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('fetchWindowIcons', function () { + // Tests are sequentially dependent + this.bail(true); + let w: BrowserWindow; diff --git a/devel/electron41/files/patch-electron_spec_api-web-contents-spec.ts b/devel/electron41/files/patch-electron_spec_api-web-contents-spec.ts index 3c93d8efc3fe..52a64b51e27f 100644 --- a/devel/electron41/files/patch-electron_spec_api-web-contents-spec.ts +++ b/devel/electron41/files/patch-electron_spec_api-web-contents-spec.ts @@ -1,11 +1,20 @@ ---- electron/spec/api-web-contents-spec.ts.orig 2026-03-17 08:46:52 UTC +--- electron/spec/api-web-contents-spec.ts.orig 2026-04-15 14:10:25 UTC +++ electron/spec/api-web-contents-spec.ts -@@ -2935,7 +2935,7 @@ describe('webContents module', () => { +@@ -1266,7 +1266,7 @@ describe('webContents module', () => { + // back to OpenFolder() which does a blocking DirectoryExists() on the UI + // thread (pre-existing behavior). Workspace-gating is covered by the test + // above. +- ifit(process.platform !== 'linux')('reveals paths under a registered workspace folder without executing them', async () => { ++ ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('reveals paths under a registered workspace folder without executing them', async () => { + const w = new BrowserWindow({ show: false }); + await openDevTools(w); + +@@ -3013,7 +3013,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/electron41/files/patch-electron_spec_chromium-spec.ts b/devel/electron41/files/patch-electron_spec_chromium-spec.ts index f771f29d1fac..85e181095b2e 100644 --- a/devel/electron41/files/patch-electron_spec_chromium-spec.ts +++ b/devel/electron41/files/patch-electron_spec_chromium-spec.ts @@ -1,44 +1,44 @@ ---- electron/spec/chromium-spec.ts.orig 2026-04-07 01:35:50 UTC +--- electron/spec/chromium-spec.ts.orig 2026-04-15 14:10:25 UTC +++ electron/spec/chromium-spec.ts @@ -475,13 +475,13 @@ describe('command line switches', () => { it('should not set an invalid locale', async () => testLocale('asdfkl', `${currentLocale}|${currentSystemLocale}|${currentPreferredLanguages}`)); const lcAll = String(process.env.LC_ALL); - ifit(process.platform === 'linux')('current process has a valid LC_ALL env', async () => { + ifit(process.platform === 'linux' || process.platform === 'freebsd')('current process has a valid LC_ALL env', async () => { // The LC_ALL env should not be set to DOM locale string. expect(lcAll).to.not.equal(app.getLocale()); }); - ifit(process.platform === 'linux')('should not change LC_ALL', async () => testLocale('fr', lcAll, true)); - ifit(process.platform === 'linux')('should not change LC_ALL when setting invalid locale', async () => testLocale('asdfkl', lcAll, true)); - ifit(process.platform === 'linux')('should not change LC_ALL when --lang is not set', async () => testLocale('', lcAll, true)); + ifit(process.platform === 'linux' || process.platform === 'freebsd')('should not change LC_ALL', async () => testLocale('fr', lcAll, true)); + ifit(process.platform === 'linux' || process.platform === 'freebsd')('should not change LC_ALL when setting invalid locale', async () => testLocale('asdfkl', lcAll, true)); + ifit(process.platform === 'linux' || process.platform === 'freebsd')('should not change LC_ALL when --lang is not set', async () => testLocale('', lcAll, true)); }); describe('--remote-debugging-pipe switch', () => { -@@ -3471,12 +3471,12 @@ describe('font fallback', () => { +@@ -3479,12 +3479,12 @@ describe('font fallback', () => { expect(fonts[0].familyName).to.equal('Arial'); } else if (process.platform === 'darwin') { expect(fonts[0].familyName).to.equal('Helvetica'); - } else if (process.platform === 'linux') { + } else if (process.platform === 'linux' || process.platform === 'freebsd') { expect(fonts[0].familyName).to.equal('DejaVu Sans'); } // I think this depends on the distro? We don't specify a default. }); - ifit(process.platform !== 'linux')('should fall back to Japanese font for sans-serif Japanese script', async function () { + ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('should fall back to Japanese font for sans-serif Japanese script', async function () { const html = ` -@@ -4029,7 +4029,7 @@ describe('paste execCommand', () => { +@@ -4037,7 +4037,7 @@ describe('paste execCommand', () => { }); }); -ifdescribe((process.platform !== 'linux' || app.isUnityRunning()))('navigator.setAppBadge/clearAppBadge', () => { +ifdescribe(((process.platform !== 'linux' && process.platform !== 'freebsd') || app.isUnityRunning()))('navigator.setAppBadge/clearAppBadge', () => { let w: BrowserWindow; const expectedBadgeCount = 42; diff --git a/devel/electron41/files/patch-third__party_blink_renderer_platform_runtime__enabled__features.json5 b/devel/electron41/files/patch-third__party_blink_renderer_platform_runtime__enabled__features.json5 index 8b18163e7d9f..fbd10d49c010 100644 --- a/devel/electron41/files/patch-third__party_blink_renderer_platform_runtime__enabled__features.json5 +++ b/devel/electron41/files/patch-third__party_blink_renderer_platform_runtime__enabled__features.json5 @@ -1,146 +1,146 @@ ---- third_party/blink/renderer/platform/runtime_enabled_features.json5.orig 2026-04-15 09:45:39 UTC +--- third_party/blink/renderer/platform/runtime_enabled_features.json5.orig 2026-04-19 11:49:09 UTC +++ third_party/blink/renderer/platform/runtime_enabled_features.json5 @@ -372,7 +372,7 @@ "default": "", }, origin_trial_feature_name: "AIPromptAPIMultimodalInput", - origin_trial_os: ["win", "mac", "linux", "chromeos"], + origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd"], origin_trial_allows_third_party: true, implied_by: ["AIPromptAPIMultimodalInput"], }, @@ -402,7 +402,7 @@ "default": "", }, origin_trial_feature_name: "AIPromptAPIMultimodalInput", - origin_trial_os: ["win", "mac", "linux", "chromeos"], + origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd"], origin_trial_allows_third_party: true, base_feature_status: "enabled", copied_from_base_feature_if: "overridden", @@ -436,7 +436,7 @@ "default": "", }, origin_trial_feature_name: "AIProofreaderAPI", - origin_trial_os: ["win", "mac", "linux", "chromeos"], + origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd"], origin_trial_allows_third_party: true, base_feature_status: "enabled", copied_from_base_feature_if: "overridden", @@ -451,7 +451,7 @@ "default": "", }, origin_trial_feature_name: "AIRewriterAPI", - origin_trial_os: ["win", "mac", "linux", "chromeos"], + origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd"], origin_trial_allows_third_party: true, base_feature_status: "enabled", copied_from_base_feature_if: "overridden", @@ -484,7 +484,7 @@ "default": "", }, origin_trial_feature_name: "AIWriterAPI", - origin_trial_os: ["win", "mac", "linux", "chromeos"], + origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd"], origin_trial_allows_third_party: true, base_feature_status: "enabled", copied_from_base_feature_if: "overridden", @@ -616,7 +616,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", }, { @@ -1328,7 +1328,7 @@ name: "CSPHashesV1", base_feature: "none", origin_trial_feature_name: "CSPExtendedScriptSrcHashes", - origin_trial_os: ["win", "linux", "mac", "android", "chromeos"], + origin_trial_os: ["win", "linux", "mac", "android", "chromeos", "openbsd", "freebsd"], status: "experimental", public: true, }, @@ -1921,7 +1921,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", @@ -1929,7 +1929,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", @@ -2092,7 +2092,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", }, { @@ -2419,7 +2419,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, }, { @@ -4094,7 +4094,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", -@@ -5660,7 +5660,7 @@ +@@ -5665,7 +5665,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 -@@ -5751,7 +5751,7 @@ +@@ -5756,7 +5756,7 @@ status: "experimental", origin_trial_feature_name: "UserMediaElement", public: true, - origin_trial_os: ["win", "mac", "linux", "fuchsia", "chromeos", "android"], + origin_trial_os: ["win", "mac", "linux", "fuchsia", "chromeos", "android", "openbsd", "freebsd"], base_feature_status: "enabled", copied_from_base_feature_if: "overridden", }, -@@ -5867,7 +5867,7 @@ +@@ -5872,7 +5872,7 @@ name: "WebAppInstallation", status: {"Android": "", "default": "test"}, origin_trial_feature_name: "WebAppInstallation", - origin_trial_os: ["win", "mac", "linux", "chromeos"], + origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd"], base_feature_status: "enabled", copied_from_base_feature_if: "overridden", }, -@@ -5879,7 +5879,7 @@ +@@ -5884,7 +5884,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", }, diff --git a/devel/electron41/files/patch-ui_gtk_select__file__dialog__linux__gtk.cc b/devel/electron41/files/patch-ui_gtk_select__file__dialog__linux__gtk.cc index 46575e910b1e..2422a52c0906 100644 --- a/devel/electron41/files/patch-ui_gtk_select__file__dialog__linux__gtk.cc +++ b/devel/electron41/files/patch-ui_gtk_select__file__dialog__linux__gtk.cc @@ -1,12 +1,12 @@ ---- ui/gtk/select_file_dialog_linux_gtk.cc.orig 2026-04-04 05:40:57 UTC +--- ui/gtk/select_file_dialog_linux_gtk.cc.orig 2026-04-19 11:49:10 UTC +++ ui/gtk/select_file_dialog_linux_gtk.cc -@@ -49,7 +49,8 @@ namespace { +@@ -50,7 +50,8 @@ namespace { // GTK_RESPONSE_ACCEPT as the default button, which should be avoided to prevent // an exploit where the user is instructed to hold Enter before the dialog // appears. -constexpr GtkResponseType kResponseTypeAccept = static_cast(0); +// My god ^^^^^ WTF +constexpr GtkResponseType kResponseTypeAccept = static_cast(GTK_RESPONSE_ACCEPT); // TODO(crbug.com/41469294): These getters will be unnecessary after // migrating to GtkFileChooserNative.