diff --git a/devel/electron42/Makefile b/devel/electron42/Makefile index 2b366855e7d1..1976a75b4ee9 100644 --- a/devel/electron42/Makefile +++ b/devel/electron42/Makefile @@ -1,471 +1,483 @@ 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/v42.4.0/: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} \ sentry-cli:devel/sentry-cli 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}" \ v8_builtins_profiling_log_file="" # 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= 148.0.7778.218 +CHROMIUM_VER= 148.0.7778.254 # See ${WRKSRC}/electron/DEPS for NODE_VER -NODE_VER= 24.15.0 +NODE_VER= 24.16.0 # 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= 2a8e2123a3931038179ee06105c9e6ec336b12ea # 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.28.0 .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= 22 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 \ SENTRYCLI_SKIP_DOWNLOAD=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 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 rustc dependency @${MKDIR} ${WRKSRC}/third_party/rust-toolchain/bin ${LN} -sf ${LOCALBASE}/bin/rustc ${WRKSRC}/third_party/rust-toolchain/bin/rustc # Setup esbuild dependency ${LN} -sf ${LOCALBASE}/bin/esbuild ${WRKSRC}/third_party/devtools-frontend/src/third_party/esbuild/esbuild # Setup gperf dependency ${LN} -sf ${LOCALBASE}/bin/gperf ${WRKSRC}/third_party/gperf/cipd/bin/gperf # 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 pre-test: ${CP} ${LOCALBASE}/bin/sentry-cli \ ${WRKSRC}/electron/node_modules/@sentry/cli do-test: cd ${WRKSRC}/electron && \ ${SETENV} ${TEST_ENV} yarn run test -- --ci .include diff --git a/devel/electron42/Makefile.version b/devel/electron42/Makefile.version index 328511e349d5..f438f45da71f 100644 --- a/devel/electron42/Makefile.version +++ b/devel/electron42/Makefile.version @@ -1,2 +1,2 @@ -ELECTRON_VER= 42.3.3 +ELECTRON_VER= 42.4.0 ELECTRON_VER_MAJOR= ${ELECTRON_VER:C/\..*//} diff --git a/devel/electron42/distinfo b/devel/electron42/distinfo index cc7ba38c6cc9..67260f2f2e8e 100644 --- a/devel/electron42/distinfo +++ b/devel/electron42/distinfo @@ -1,359 +1,363 @@ -TIMESTAMP = 1780902060 -SHA256 (electron/chromium-148.0.7778.218-lite.tar.xz) = 9ef5529ee99461ec74fca7582fbd9db81e88d702ff6c3d19d0db12944c0c0b35 -SIZE (electron/chromium-148.0.7778.218-lite.tar.xz) = 1593163700 +TIMESTAMP = 1781338455 +SHA256 (electron/chromium-148.0.7778.254.tar.xz.0) = 946b3281fd32725f4858da5a07232704011bc39d12023e847cfb6632e6ffd3da +SIZE (electron/chromium-148.0.7778.254.tar.xz.0) = 2000000000 +SHA256 (electron/chromium-148.0.7778.254.tar.xz.1) = b238ec3e80fb18f89f66eb6ef0adb98e005ef9ded8d96a2271b1024eeb1fe828 +SIZE (electron/chromium-148.0.7778.254.tar.xz.1) = 2000000000 +SHA256 (electron/chromium-148.0.7778.254.tar.xz.2) = c9f96d012ebc13ce01e54d30a654f037e4ef43f6f918b3203016df8123b45f3d +SIZE (electron/chromium-148.0.7778.254.tar.xz.2) = 777489584 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/electron42-42.3.3-node-modules.tar.xz) = fb701440d9f0c7f5e4a7d45c2365ffc64fab9bba66c5fdfe33f0a63397f96205 -SIZE (electron/electron42-42.3.3-node-modules.tar.xz) = 71016077 -SHA256 (electron/electron-electron-v42.3.3_GH0.tar.gz) = c019addb5d2f25c8570a2237be17fe5a3181220f19532986c5462c5e9c443428 -SIZE (electron/electron-electron-v42.3.3_GH0.tar.gz) = 18875958 -SHA256 (electron/nodejs-node-v24.15.0_GH0.tar.gz) = 5cfb169b21878f50876e0c6a77db1a5e40d733960232682bebb5e267246a2e80 -SIZE (electron/nodejs-node-v24.15.0_GH0.tar.gz) = 126716937 +SHA256 (electron/electron42-42.4.0-node-modules.tar.xz) = fb701440d9f0c7f5e4a7d45c2365ffc64fab9bba66c5fdfe33f0a63397f96205 +SIZE (electron/electron42-42.4.0-node-modules.tar.xz) = 71016077 +SHA256 (electron/electron-electron-v42.4.0_GH0.tar.gz) = 7adc30ead5be30b51d84388eea71b63974fd4d53c7b40c8aaa5de1869f5436fe +SIZE (electron/electron-electron-v42.4.0_GH0.tar.gz) = 18904909 +SHA256 (electron/nodejs-node-v24.16.0_GH0.tar.gz) = 6443d4d1ac5e5221293607ae625978d407745737c5d1a53cb10d5c927edfb20b +SIZE (electron/nodejs-node-v24.16.0_GH0.tar.gz) = 127279939 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-2a8e2123a3931038179ee06105c9e6ec336b12ea_GH0.tar.gz) = 9a6d683612d72c3d15e26a46451866ac01989665c0e2b74c61d28a78b6820f19 SIZE (electron/Mantle-Mantle-2a8e2123a3931038179ee06105c9e6ec336b12ea_GH0.tar.gz) = 81605 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.28.0_GH0.tar.gz) = 7aae83b197db3fd695e6f378d30fd6cbddeb93e4b1057b2c41d36ecb1dfebbc2 SIZE (electron/evanw-esbuild-v0.28.0_GH0.tar.gz) = 1993306 diff --git a/devel/electron42/files/packagejsons/npm/package.json b/devel/electron42/files/packagejsons/npm/package.json index 38ac890cff99..23fc312d3917 100644 --- a/devel/electron42/files/packagejsons/npm/package.json +++ b/devel/electron42/files/packagejsons/npm/package.json @@ -1,26 +1,26 @@ { "main": "index.js", "types": "electron.d.ts", "bin": { "electron": "cli.js", "install-electron": "install.js" }, "files": [ "LICENSE", "README.md", "abi_version", "checksums.json", "cli.js", "electron.d.ts", "index.js", "install.js" ], "dependencies": { + "@electron-internal/extract-zip": "^1.0.1", "@electron/get": "^5.0.0", - "@types/node": "^24.9.0", - "extract-zip": "^2.0.1" + "@types/node": "^24.9.0" }, "engines": { "node": ">= 22.12.0" } } diff --git a/devel/electron42/files/patch-chrome_browser_password__manager_chrome__password__manager__client.cc b/devel/electron42/files/patch-chrome_browser_password__manager_chrome__password__manager__client.cc index a47ffe3874d8..c07d304b049e 100644 --- a/devel/electron42/files/patch-chrome_browser_password__manager_chrome__password__manager__client.cc +++ b/devel/electron42/files/patch-chrome_browser_password__manager_chrome__password__manager__client.cc @@ -1,38 +1,38 @@ ---- chrome/browser/password_manager/chrome_password_manager_client.cc.orig 2026-04-28 21:06:17 UTC +--- chrome/browser/password_manager/chrome_password_manager_client.cc.orig 2026-06-02 17:55:02 UTC +++ chrome/browser/password_manager/chrome_password_manager_client.cc @@ -703,7 +703,7 @@ bool ChromePasswordManagerClient::IsReauthBeforeFillin bool ChromePasswordManagerClient::IsReauthBeforeFillingRequired( device_reauth::DeviceAuthenticator* authenticator) { #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || \ - BUILDFLAG(IS_CHROMEOS) + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) if (!GetLocalStatePrefs() || !GetPrefs() || !authenticator) { return false; } @@ -988,7 +988,7 @@ void ChromePasswordManagerClient::NotifyKeychainError( } void ChromePasswordManagerClient::NotifyKeychainError() { -#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) PasswordsClientUIDelegate* manage_passwords_ui_controller = PasswordsClientUIDelegateFromWebContents(web_contents()); if (manage_passwords_ui_controller) { -@@ -2033,7 +2033,7 @@ bool ChromePasswordManagerClient::IsPasswordManagement +@@ -2043,7 +2043,7 @@ bool ChromePasswordManagerClient::IsPasswordManagement bool ChromePasswordManagerClient::IsPasswordManagementEnabledForCurrentPage( const GURL& url) const { #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || \ - BUILDFLAG(IS_CHROMEOS) + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) if (IsPasswordManagerForUrlDisallowedByPolicy(url)) { return false; } -@@ -2072,7 +2072,7 @@ bool ChromePasswordManagerClient::IsPasswordManagement +@@ -2082,7 +2082,7 @@ bool ChromePasswordManagerClient::IsPasswordManagement } #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || \ - BUILDFLAG(IS_CHROMEOS) + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) bool ChromePasswordManagerClient::IsPasswordManagerForUrlDisallowedByPolicy( const GURL& url) const { if (!GetPrefs() || !GetPrefs()->HasPrefPath( diff --git a/devel/electron42/files/patch-components_autofill_core_common_autofill__payments__features.cc b/devel/electron42/files/patch-components_autofill_core_common_autofill__payments__features.cc index a43863e232f8..24423f4beb1a 100644 --- a/devel/electron42/files/patch-components_autofill_core_common_autofill__payments__features.cc +++ b/devel/electron42/files/patch-components_autofill_core_common_autofill__payments__features.cc @@ -1,110 +1,110 @@ ---- components/autofill/core/common/autofill_payments_features.cc.orig 2026-04-28 21:06:17 UTC +--- components/autofill/core/common/autofill_payments_features.cc.orig 2026-06-02 17:55:02 UTC +++ components/autofill/core/common/autofill_payments_features.cc -@@ -27,7 +27,7 @@ BASE_FEATURE(kAutofillEnableAiBasedAmountExtraction, +@@ -32,7 +32,7 @@ BASE_FEATURE(kAutofillEnableAiBasedAmountExtraction, // page using server-side AI. BASE_FEATURE(kAutofillEnableAiBasedAmountExtraction, #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ - BUILDFLAG(IS_CHROMEOS) + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) base::FEATURE_ENABLED_BY_DEFAULT); #else base::FEATURE_DISABLED_BY_DEFAULT); -@@ -38,7 +38,7 @@ BASE_FEATURE(kAutofillEnableAmountExtraction, +@@ -43,7 +43,7 @@ BASE_FEATURE(kAutofillEnableAmountExtraction, // of the allowlisted merchant websites. BASE_FEATURE(kAutofillEnableAmountExtraction, #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ - BUILDFLAG(IS_CHROMEOS) + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) base::FEATURE_ENABLED_BY_DEFAULT); #else base::FEATURE_DISABLED_BY_DEFAULT); -@@ -61,7 +61,7 @@ BASE_FEATURE(kAutofillEnableBuyNowPayLater, +@@ -66,7 +66,7 @@ BASE_FEATURE(kAutofillEnableBuyNowPayLater, // When enabled, buy now pay later (BNPL) in Autofill will be offered. BASE_FEATURE(kAutofillEnableBuyNowPayLater, #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ - BUILDFLAG(IS_CHROMEOS) + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) base::FEATURE_ENABLED_BY_DEFAULT); #else base::FEATURE_DISABLED_BY_DEFAULT); -@@ -72,7 +72,7 @@ BASE_FEATURE(kAutofillEnableBuyNowPayLaterForExternall +@@ -77,7 +77,7 @@ BASE_FEATURE(kAutofillEnableBuyNowPayLaterForExternall // (BNPL) issuers that are externally linked. BASE_FEATURE(kAutofillEnableBuyNowPayLaterForExternallyLinked, #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ - BUILDFLAG(IS_CHROMEOS) + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) base::FEATURE_ENABLED_BY_DEFAULT); #else base::FEATURE_DISABLED_BY_DEFAULT); -@@ -82,7 +82,7 @@ BASE_FEATURE(kAutofillEnableBuyNowPayLaterForKlarna, +@@ -87,7 +87,7 @@ BASE_FEATURE(kAutofillEnableBuyNowPayLaterForKlarna, // offered. BASE_FEATURE(kAutofillEnableBuyNowPayLaterForKlarna, #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ - BUILDFLAG(IS_CHROMEOS) + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) base::FEATURE_ENABLED_BY_DEFAULT); #else base::FEATURE_DISABLED_BY_DEFAULT); -@@ -91,7 +91,7 @@ BASE_FEATURE(kAutofillEnableBuyNowPayLaterSyncing, +@@ -96,7 +96,7 @@ BASE_FEATURE(kAutofillEnableBuyNowPayLaterSyncing, // When enabled, buy now pay later (BNPL) data will be synced to Chrome clients. BASE_FEATURE(kAutofillEnableBuyNowPayLaterSyncing, #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ - BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) base::FEATURE_ENABLED_BY_DEFAULT); #else base::FEATURE_DISABLED_BY_DEFAULT); -@@ -101,7 +101,7 @@ BASE_FEATURE(kAutofillEnableBuyNowPayLaterUpdatedSugge +@@ -106,7 +106,7 @@ BASE_FEATURE(kAutofillEnableBuyNowPayLaterUpdatedSugge // include the issuer names for better brand recognition. BASE_FEATURE(kAutofillEnableBuyNowPayLaterUpdatedSuggestionSecondLineString, #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ - BUILDFLAG(IS_CHROMEOS) + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) base::FEATURE_ENABLED_BY_DEFAULT); #else base::FEATURE_DISABLED_BY_DEFAULT); -@@ -121,7 +121,7 @@ BASE_FEATURE(kAutofillEnableCardBenefitsForBmo, +@@ -126,7 +126,7 @@ BASE_FEATURE(kAutofillEnableCardBenefitsForBmo, // UI. BASE_FEATURE(kAutofillEnableCardBenefitsForBmo, #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ - BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) base::FEATURE_ENABLED_BY_DEFAULT); #else base::FEATURE_DISABLED_BY_DEFAULT); -@@ -165,7 +165,7 @@ BASE_FEATURE(kAutofillEnableFlatRateCardBenefitsFromCu +@@ -170,7 +170,7 @@ BASE_FEATURE(kAutofillEnableFlatRateCardBenefitsFromCu // Payments Autofill UI. BASE_FEATURE(kAutofillEnableFlatRateCardBenefitsFromCurinos, #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ - BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD) base::FEATURE_ENABLED_BY_DEFAULT); #else base::FEATURE_DISABLED_BY_DEFAULT); -@@ -247,7 +247,7 @@ BASE_FEATURE(kAutofillEnableVcn3dsAuthentication, +@@ -252,7 +252,7 @@ BASE_FEATURE(kAutofillEnableVcn3dsAuthentication, // the card, and FIDO is not. BASE_FEATURE(kAutofillEnableVcn3dsAuthentication, #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ - BUILDFLAG(IS_CHROMEOS) + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) base::FEATURE_ENABLED_BY_DEFAULT); #else base::FEATURE_DISABLED_BY_DEFAULT); -@@ -276,7 +276,7 @@ BASE_FEATURE(kAutofillPreferBuyNowPayLaterBlocklists, +@@ -281,7 +281,7 @@ BASE_FEATURE(kAutofillPreferBuyNowPayLaterBlocklists, // eligibility. BASE_FEATURE(kAutofillPreferBuyNowPayLaterBlocklists, #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ - BUILDFLAG(IS_CHROMEOS) + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) base::FEATURE_ENABLED_BY_DEFAULT); #else base::FEATURE_DISABLED_BY_DEFAULT); -@@ -326,7 +326,7 @@ bool ShouldShowImprovedUserConsentForCreditCardSave() +@@ -331,7 +331,7 @@ bool ShouldShowImprovedUserConsentForCreditCardSave() /*default_value=*/180}; bool ShouldShowImprovedUserConsentForCreditCardSave() { -#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) // The new user consent UI is fully launched on MacOS, Windows and Linux. return true; #else diff --git a/devel/electron42/files/patch-content_browser_renderer__host_render__widget__host__view__aura.cc b/devel/electron42/files/patch-content_browser_renderer__host_render__widget__host__view__aura.cc index 9f58f9f0c651..bb4355e9c37e 100644 --- a/devel/electron42/files/patch-content_browser_renderer__host_render__widget__host__view__aura.cc +++ b/devel/electron42/files/patch-content_browser_renderer__host_render__widget__host__view__aura.cc @@ -1,47 +1,47 @@ ---- content/browser/renderer_host/render_widget_host_view_aura.cc.orig 2026-06-02 11:14:29 UTC +--- content/browser/renderer_host/render_widget_host_view_aura.cc.orig 2026-06-13 08:19:50 UTC +++ content/browser/renderer_host/render_widget_host_view_aura.cc @@ -130,7 +130,7 @@ #include "ui/gfx/win/gdi_util.h" #endif // BUILDFLAG(IS_WIN) -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) #include "ui/accessibility/platform/browser_accessibility_auralinux.h" #include "ui/base/ime/linux/text_edit_command_auralinux.h" #include "ui/base/ime/text_input_flags.h" @@ -555,7 +555,7 @@ gfx::NativeViewAccessible RenderWidgetHostViewAura::Ge return ToBrowserAccessibilityWin(manager->GetBrowserAccessibilityRoot()) ->GetCOM(); -#elif BUILDFLAG(IS_LINUX) +#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) ui::BrowserAccessibilityManager* manager = host()->GetOrCreateRootBrowserAccessibilityManager(); if (manager && manager->GetBrowserAccessibilityRoot()) -@@ -2003,7 +2003,7 @@ bool RenderWidgetHostViewAura::ShouldDoLearning() { +@@ -2010,7 +2010,7 @@ bool RenderWidgetHostViewAura::ShouldDoLearning() { return host() && host()->delegate() && host()->delegate()->ShouldDoLearning(); } -#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) bool RenderWidgetHostViewAura::SetCompositionFromExistingText( const gfx::Range& range, const std::vector& ui_ime_text_spans) { -@@ -3046,7 +3046,7 @@ bool RenderWidgetHostViewAura::NeedsMouseCapture() { +@@ -3053,7 +3053,7 @@ bool RenderWidgetHostViewAura::NeedsMouseCapture() { } bool RenderWidgetHostViewAura::NeedsMouseCapture() { -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) return NeedsInputGrab(); #else return false; -@@ -3256,7 +3256,7 @@ void RenderWidgetHostViewAura::ForwardKeyboardEventWit +@@ -3263,7 +3263,7 @@ void RenderWidgetHostViewAura::ForwardKeyboardEventWit if (!target_host) return; -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) auto* linux_ui = ui::LinuxUi::instance(); if (!event.skip_if_unhandled && linux_ui && event.os_event) { const auto command = linux_ui->GetTextEditCommandForEvent( diff --git a/devel/electron42/files/patch-electron_script_pgo_collect-profile.js b/devel/electron42/files/patch-electron_script_pgo_collect-profile.js index e19e0b4936f9..564ba453725c 100644 --- a/devel/electron42/files/patch-electron_script_pgo_collect-profile.js +++ b/devel/electron42/files/patch-electron_script_pgo_collect-profile.js @@ -1,11 +1,11 @@ ---- electron/script/pgo/collect-profile.js.orig 2026-06-02 11:33:02 UTC +--- electron/script/pgo/collect-profile.js.orig 2026-06-09 06:05:33 UTC +++ electron/script/pgo/collect-profile.js -@@ -71,7 +71,7 @@ function installTrustedCA(caCertPath) { +@@ -75,7 +75,7 @@ function installTrustedCA(caCertPath) { // network workload coverage degrades but collection still succeeds. function installTrustedCA(caCertPath) { try { - if (process.platform === 'linux') { + if (process.platform === 'linux' || process.platform === 'freebsd') { const nssDb = path.join(os.homedir(), '.pki', 'nssdb'); if (!fs.existsSync(nssDb)) { fs.mkdirSync(nssDb, { recursive: true }); diff --git a/devel/electron42/files/patch-electron_shell_browser_api_electron__api__web__contents.cc b/devel/electron42/files/patch-electron_shell_browser_api_electron__api__web__contents.cc index 74f5b28a5452..7f8f1b735609 100644 --- a/devel/electron42/files/patch-electron_shell_browser_api_electron__api__web__contents.cc +++ b/devel/electron42/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-06-03 19:18:10 UTC +--- electron/shell/browser/api/electron_api_web_contents.cc.orig 2026-06-09 06:05:33 UTC +++ electron/shell/browser/api/electron_api_web_contents.cc @@ -174,11 +174,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 @@ -210,7 +210,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 @@ -647,7 +647,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) @@ -1022,7 +1022,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)); -@@ -2968,13 +2968,13 @@ void WebContents::ForcefullyCrashRenderer() { +@@ -2982,13 +2982,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); -@@ -3684,7 +3684,7 @@ void WebContents::Focus() { +@@ -3698,7 +3698,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 -@@ -4585,7 +4585,7 @@ ui::ImageModel WebContents::GetDevToolsWindowIcon() { +@@ -4599,7 +4599,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/electron42/files/patch-electron_shell_browser_api_electron__api__web__contents.h b/devel/electron42/files/patch-electron_shell_browser_api_electron__api__web__contents.h index 67e9a78e02f3..4eb3a6322f3b 100644 --- a/devel/electron42/files/patch-electron_shell_browser_api_electron__api__web__contents.h +++ b/devel/electron42/files/patch-electron_shell_browser_api_electron__api__web__contents.h @@ -1,11 +1,11 @@ ---- electron/shell/browser/api/electron_api_web_contents.h.orig 2026-06-03 19:18:10 UTC +--- electron/shell/browser/api/electron_api_web_contents.h.orig 2026-06-09 06:05:33 UTC +++ electron/shell/browser/api/electron_api_web_contents.h -@@ -758,7 +758,7 @@ class WebContents final : public ExclusiveAccessContex +@@ -761,7 +761,7 @@ class WebContents final : public ExclusiveAccessContex #if defined(TOOLKIT_VIEWS) && !BUILDFLAG(IS_MAC) ui::ImageModel GetDevToolsWindowIcon() override; #endif -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) void GetDevToolsWindowWMClass(std::string* name, std::string* class_name) override; #endif diff --git a/devel/electron42/files/patch-electron_shell_browser_native__window__views.cc b/devel/electron42/files/patch-electron_shell_browser_native__window__views.cc index ac06069a2ff5..98ac0b5e2206 100644 --- a/devel/electron42/files/patch-electron_shell_browser_native__window__views.cc +++ b/devel/electron42/files/patch-electron_shell_browser_native__window__views.cc @@ -1,209 +1,191 @@ ---- electron/shell/browser/native_window_views.cc.orig 2026-05-26 16:24:13 UTC +--- electron/shell/browser/native_window_views.cc.orig 2026-06-09 06:05:33 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" -@@ -292,7 +292,7 @@ NativeWindowViews::NativeWindowViews(const int32_t bas +@@ -291,7 +291,7 @@ NativeWindowViews::NativeWindowViews(const int32_t bas params.parent = parent->GetNativeWindow(); params.native_widget = new ElectronDesktopNativeWidgetAura{this, widget()}; -#elif BUILDFLAG(IS_LINUX) +#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) // Set the WM_CLASS and XDG App ID to the same value // for best compatibility with both X11 and Wayland. const auto app_id = platform_util::GetXdgAppId(); -@@ -322,7 +322,7 @@ NativeWindowViews::NativeWindowViews(const int32_t bas +@@ -321,7 +321,7 @@ NativeWindowViews::NativeWindowViews(const int32_t bas 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); -@@ -443,7 +443,7 @@ NativeWindowViews::NativeWindowViews(const int32_t bas - if (window) - window->AddPreTargetHandler(this); - --#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()) -@@ -518,7 +518,7 @@ void NativeWindowViews::SetGTKDarkThemeEnabled(bool us +@@ -513,7 +513,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(); -@@ -579,7 +579,7 @@ void NativeWindowViews::Show() { +@@ -574,7 +574,7 @@ void NativeWindowViews::Show() { NotifyWindowShow(); -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) if (global_menu_bar_) global_menu_bar_->OnWindowMapped(); -@@ -595,7 +595,7 @@ void NativeWindowViews::ShowInactive() { +@@ -590,7 +590,7 @@ void NativeWindowViews::ShowInactive() { NotifyWindowShow(); -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) if (global_menu_bar_) global_menu_bar_->OnWindowMapped(); -@@ -614,7 +614,7 @@ void NativeWindowViews::Hide() { +@@ -609,7 +609,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 -@@ -645,7 +645,7 @@ bool NativeWindowViews::IsEnabled() const { +@@ -640,7 +640,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(); -@@ -870,7 +870,7 @@ void NativeWindowViews::SetBounds(const gfx::Rect& bou +@@ -865,7 +865,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()) { -@@ -925,7 +925,7 @@ void NativeWindowViews::SetContentSizeConstraints( +@@ -920,7 +920,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 -@@ -1140,7 +1140,7 @@ bool NativeWindowViews::IsClosable() const { +@@ -1135,7 +1135,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 } -@@ -1180,7 +1180,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(); -@@ -1284,7 +1284,7 @@ void NativeWindowViews::SetBackgroundColor(SkColor bac +@@ -1276,7 +1276,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 = -@@ -1406,7 +1406,7 @@ void NativeWindowViews::SetMenu(ElectronMenuModel* men +@@ -1398,7 +1398,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(); -@@ -1462,7 +1462,7 @@ void NativeWindowViews::SetParentWindow(NativeWindow* +@@ -1454,7 +1454,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( -@@ -1524,7 +1524,7 @@ void NativeWindowViews::SetProgressBar(double progress +@@ -1516,7 +1516,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); } -@@ -1650,7 +1650,7 @@ content::DesktopMediaID NativeWindowViews::GetDesktopM +@@ -1642,7 +1642,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 = -@@ -1780,7 +1780,7 @@ void NativeWindowViews::SetIcon(HICON window_icon, HIC +@@ -1772,7 +1772,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()); -@@ -1901,7 +1901,7 @@ bool NativeWindowViews::CanMinimize() const { +@@ -1893,7 +1893,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 } -@@ -1935,7 +1935,7 @@ std::unique_ptr NativeWindowViews::C +@@ -1927,7 +1927,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) -@@ -1955,7 +1955,7 @@ void NativeWindowViews::HandleKeyboardEvent( +@@ -1947,7 +1947,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) -@@ -1974,7 +1974,7 @@ void NativeWindowViews::OnMouseEvent(ui::MouseEvent* e +@@ -1966,7 +1966,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/electron42/files/patch-electron_shell_browser_ui_inspectable__web__contents.cc b/devel/electron42/files/patch-electron_shell_browser_ui_inspectable__web__contents.cc index eae4187bd261..ce4f709187f7 100644 --- a/devel/electron42/files/patch-electron_shell_browser_ui_inspectable__web__contents.cc +++ b/devel/electron42/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-15 14:10:25 UTC +--- electron/shell/browser/ui/inspectable_web_contents.cc.orig 2026-06-09 06:05:33 UTC +++ electron/shell/browser/ui/inspectable_web_contents.cc -@@ -590,7 +590,7 @@ void InspectableWebContents::LoadCompleted() { +@@ -592,7 +592,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 = diff --git a/devel/electron42/files/patch-electron_shell_browser_ui_inspectable__web__contents__view.cc b/devel/electron42/files/patch-electron_shell_browser_ui_inspectable__web__contents__view.cc index c8b166b3a9e4..0a7107f17596 100644 --- a/devel/electron42/files/patch-electron_shell_browser_ui_inspectable__web__contents__view.cc +++ b/devel/electron42/files/patch-electron_shell_browser_ui_inspectable__web__contents__view.cc @@ -1,11 +1,11 @@ ---- electron/shell/browser/ui/inspectable_web_contents_view.cc.orig 2026-05-08 13:54:01 UTC +--- electron/shell/browser/ui/inspectable_web_contents_view.cc.orig 2026-06-09 06:05:33 UTC +++ electron/shell/browser/ui/inspectable_web_contents_view.cc -@@ -215,7 +215,7 @@ void InspectableWebContentsView::SetIsDocked(bool dock +@@ -220,7 +220,7 @@ void InspectableWebContentsView::SetIsDocked(bool dock params.delegate = devtools_window_delegate_; params.bounds = inspectable_web_contents()->dev_tools_bounds(); -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) params.wm_role_name = "devtools"; if (GetDelegate()) GetDelegate()->GetDevToolsWindowWMClass(¶ms.wm_class_name, diff --git a/devel/electron42/files/patch-electron_spec_api-browser-window-spec.ts b/devel/electron42/files/patch-electron_spec_api-browser-window-spec.ts index ead7f7c80df5..4fa9740473dd 100644 --- a/devel/electron42/files/patch-electron_spec_api-browser-window-spec.ts +++ b/devel/electron42/files/patch-electron_spec_api-browser-window-spec.ts @@ -1,191 +1,191 @@ ---- electron/spec/api-browser-window-spec.ts.orig 2026-06-03 19:18:10 UTC +--- electron/spec/api-browser-window-spec.ts.orig 2026-06-09 06:05:33 UTC +++ electron/spec/api-browser-window-spec.ts -@@ -89,7 +89,7 @@ describe('BrowserWindow module', () => { +@@ -100,7 +100,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'); -@@ -346,7 +346,7 @@ describe('BrowserWindow module', () => { +@@ -365,7 +365,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 }); -@@ -1335,7 +1335,7 @@ describe('BrowserWindow module', () => { +@@ -1354,7 +1354,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; -@@ -1352,7 +1352,7 @@ describe('BrowserWindow module', () => { +@@ -1371,7 +1371,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(); -@@ -1417,7 +1417,7 @@ describe('BrowserWindow module', () => { +@@ -1436,7 +1436,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 }); -@@ -1520,7 +1520,7 @@ describe('BrowserWindow module', () => { +@@ -1539,7 +1539,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 }); -@@ -2039,7 +2039,7 @@ describe('BrowserWindow module', () => { +@@ -2072,7 +2072,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'); -@@ -2257,7 +2257,7 @@ describe('BrowserWindow module', () => { +@@ -2290,7 +2290,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'); -@@ -3365,7 +3365,7 @@ describe('BrowserWindow module', () => { +@@ -3398,7 +3398,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); -@@ -3391,7 +3391,7 @@ describe('BrowserWindow module', () => { +@@ -3424,7 +3424,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); -@@ -3631,7 +3631,7 @@ describe('BrowserWindow module', () => { +@@ -3664,7 +3664,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(); -@@ -3698,7 +3698,7 @@ describe('BrowserWindow module', () => { +@@ -3731,7 +3731,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(); -@@ -4593,7 +4593,7 @@ describe('BrowserWindow module', () => { +@@ -4650,7 +4650,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 { -@@ -5109,7 +5109,7 @@ describe('BrowserWindow module', () => { +@@ -5166,7 +5166,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 }); -@@ -5385,7 +5385,7 @@ describe('BrowserWindow module', () => { +@@ -5442,7 +5442,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)( + 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({}); -@@ -5403,7 +5403,7 @@ describe('BrowserWindow module', () => { +@@ -5460,7 +5460,7 @@ describe('BrowserWindow module', () => { } ); - 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(); -@@ -5426,7 +5426,7 @@ describe('BrowserWindow module', () => { +@@ -5483,7 +5483,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 }); -@@ -5463,7 +5463,7 @@ describe('BrowserWindow module', () => { +@@ -5520,7 +5520,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(); -@@ -5961,7 +5961,7 @@ describe('BrowserWindow module', () => { +@@ -6018,7 +6018,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'); -@@ -6214,7 +6214,7 @@ describe('BrowserWindow module', () => { +@@ -6271,7 +6271,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); -@@ -7532,7 +7532,7 @@ describe('BrowserWindow module', () => { +@@ -7589,7 +7589,7 @@ describe('BrowserWindow module', () => { describe('"transparent" option', () => { afterEach(closeAllWindows); - ifit(process.platform !== 'linux')( + ifit(process.platform !== 'linux' && process.platform !== 'freebsd')( 'correctly returns isMaximized() when the window is maximized then minimized', async () => { const w = new BrowserWindow({ diff --git a/devel/electron42/files/patch-electron_spec_api-menu-spec.ts b/devel/electron42/files/patch-electron_spec_api-menu-spec.ts index 8016e4ef1ebb..5a21975ec2b2 100644 --- a/devel/electron42/files/patch-electron_spec_api-menu-spec.ts +++ b/devel/electron42/files/patch-electron_spec_api-menu-spec.ts @@ -1,11 +1,11 @@ ---- electron/spec/api-menu-spec.ts.orig 2026-05-07 20:19:20 UTC +--- electron/spec/api-menu-spec.ts.orig 2026-06-09 06:05:33 UTC +++ electron/spec/api-menu-spec.ts -@@ -893,7 +893,7 @@ describe('Menu module', function () { +@@ -930,7 +930,7 @@ describe('Menu module', function () { // https://github.com/electron/electron/issues/35724 // Maximizing window is enough to trigger the bug // FIXME(dsanders11): Test always passes on CI, even pre-fix - ifit(process.platform === 'linux' && !process.env.CI)('does not trigger issue #35724', (done) => { + ifit((process.platform === 'linux' || process.platform === 'freebsd') && !process.env.CI)('does not trigger issue #35724', (done) => { const showAndCloseMenu = async () => { await setTimeout(1000); menu.popup({ window: w, x: 50, y: 50 }); diff --git a/devel/electron42/files/patch-electron_spec_api-web-contents-spec.ts b/devel/electron42/files/patch-electron_spec_api-web-contents-spec.ts index b0a97a5e45b3..ea77e5266e97 100644 --- a/devel/electron42/files/patch-electron_spec_api-web-contents-spec.ts +++ b/devel/electron42/files/patch-electron_spec_api-web-contents-spec.ts @@ -1,20 +1,20 @@ ---- electron/spec/api-web-contents-spec.ts.orig 2026-05-19 01:17:05 UTC +--- electron/spec/api-web-contents-spec.ts.orig 2026-06-09 06:05:33 UTC +++ electron/spec/api-web-contents-spec.ts @@ -1337,7 +1337,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')( + ifit(process.platform !== 'linux' && process.platform !== 'freebsd')( 'reveals paths under a registered workspace folder without executing them', async () => { const w = new BrowserWindow({ show: false }); -@@ -3163,7 +3163,7 @@ describe('webContents module', () => { +@@ -3215,7 +3215,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/electron42/files/patch-media_base_video__frame.cc b/devel/electron42/files/patch-media_base_video__frame.cc index 62a97c58dca7..cf9e3be61e20 100644 --- a/devel/electron42/files/patch-media_base_video__frame.cc +++ b/devel/electron42/files/patch-media_base_video__frame.cc @@ -1,38 +1,38 @@ ---- media/base/video_frame.cc.orig 2026-04-28 21:06:17 UTC +--- media/base/video_frame.cc.orig 2026-06-02 17:55:02 UTC +++ media/base/video_frame.cc @@ -86,7 +86,7 @@ std::string VideoFrame::StorageTypeToString( return "OWNED_MEMORY"; case VideoFrame::STORAGE_SHMEM: return "SHMEM"; -#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) case VideoFrame::STORAGE_DMABUFS: return "DMABUFS"; #endif @@ -441,7 +441,7 @@ scoped_refptr VideoFrame::WrapMappableShar plane_size.width() * VideoFrame::BytesPerElement(*format, plane); } uint64_t modifier = gfx::NativePixmapHandle::kNoModifier; -#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) bool is_native_buffer = !shared_image->IsSharedMemoryForVideoFrame(); if (is_native_buffer) { const auto gmb_handle = shared_image->CloneGpuMemoryBufferHandle(); @@ -705,7 +705,7 @@ scoped_refptr VideoFrame::WrapExternalYuva return frame; } -#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) // static scoped_refptr VideoFrame::WrapExternalDmabufs( const VideoFrameLayout& layout, -@@ -1421,7 +1421,7 @@ scoped_refptr VideoFrame::shar +@@ -1437,7 +1437,7 @@ scoped_refptr VideoFrame::shar return wrapped_frame_ ? wrapped_frame_->shared_image() : shared_image_; } -#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) size_t VideoFrame::NumDmabufFds() const { if (wrapped_frame_) { return wrapped_frame_->NumDmabufFds(); diff --git a/devel/electron42/files/patch-media_gpu_chromeos_libyuv__image__processor__backend.cc b/devel/electron42/files/patch-media_gpu_chromeos_libyuv__image__processor__backend.cc index c6206f335643..e4e9284a4032 100644 --- a/devel/electron42/files/patch-media_gpu_chromeos_libyuv__image__processor__backend.cc +++ b/devel/electron42/files/patch-media_gpu_chromeos_libyuv__image__processor__backend.cc @@ -1,29 +1,29 @@ ---- media/gpu/chromeos/libyuv_image_processor_backend.cc.orig 2026-03-13 16:54:03 UTC +--- media/gpu/chromeos/libyuv_image_processor_backend.cc.orig 2026-06-02 17:55:02 UTC +++ media/gpu/chromeos/libyuv_image_processor_backend.cc @@ -48,7 +48,7 @@ static constexpr struct { #define CONV(in, out, trans, result) \ {Fourcc::in, Fourcc::out, Transform::trans, SupportResult::result} // Conversion. -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) CONV(NV12, AR24, kConversion, Supported), #endif CONV(NV12, NV12, kConversion, Supported), -@@ -409,7 +409,7 @@ int LibYUVImageProcessorBackend::DoConversion(const Fr +@@ -422,7 +422,7 @@ int LibYUVImageProcessorBackend::DoConversion(const Fr fr->GetWritableVisibleData(VideoFrame::Plane::kUV)), \ fr->stride(VideoFrame::Plane::kUV) -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) #define ARGB_DATA(fr) \ fr->GetWritableVisibleData(VideoFrame::Plane::kARGB), \ fr->stride(VideoFrame::Plane::kARGB) -@@ -571,7 +571,7 @@ int LibYUVImageProcessorBackend::DoConversion(const Fr +@@ -584,7 +584,7 @@ int LibYUVImageProcessorBackend::DoConversion(const Fr } } -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) if (output->format() == PIXEL_FORMAT_ARGB) { if (input_config_.fourcc == Fourcc(Fourcc::NV12)) { return LIBYUV_FUNC(NV12ToARGB, Y_UV_DATA(input), diff --git a/devel/electron42/files/patch-third__party_electron__node_deps_uv_src_unix_pipe.c b/devel/electron42/files/patch-third__party_electron__node_deps_uv_src_unix_pipe.c index 7305f048dbfc..1f1af9e1afc2 100644 --- a/devel/electron42/files/patch-third__party_electron__node_deps_uv_src_unix_pipe.c +++ b/devel/electron42/files/patch-third__party_electron__node_deps_uv_src_unix_pipe.c @@ -1,18 +1,18 @@ ---- third_party/electron_node/deps/uv/src/unix/pipe.c.orig 2025-06-24 07:41:14 UTC +--- third_party/electron_node/deps/uv/src/unix/pipe.c.orig 2026-05-20 13:16:17 UTC +++ third_party/electron_node/deps/uv/src/unix/pipe.c -@@ -209,9 +209,13 @@ int uv_pipe_open(uv_pipe_t* handle, uv_file fd) { +@@ -208,9 +208,13 @@ int uv_pipe_open(uv_pipe_t* handle, uv_file fd) { if (mode == -1) return UV__ERR(errno); /* according to docs, must be EBADF */ + /* If ioctl(FIONBIO) reports ENOTTY, try fcntl(F_GETFL) + fcntl(F_SETFL). + * Workaround for e.g. kqueue fds not supporting ioctls. + */ err = uv__nonblock(fd, 1); - if (err) - return err; + if (err == UV_ENOTTY) + if (uv__nonblock == uv__nonblock_ioctl) + err = uv__nonblock_fcntl(fd, 1); #if defined(__APPLE__) err = uv__stream_try_select((uv_stream_t*) handle, &fd); diff --git a/devel/electron42/files/patch-ui_accessibility_ax__tree.cc b/devel/electron42/files/patch-ui_accessibility_ax__tree.cc index 09996675e053..581312ee7491 100644 --- a/devel/electron42/files/patch-ui_accessibility_ax__tree.cc +++ b/devel/electron42/files/patch-ui_accessibility_ax__tree.cc @@ -1,56 +1,56 @@ ---- ui/accessibility/ax_tree.cc.orig 2026-04-28 21:06:17 UTC +--- ui/accessibility/ax_tree.cc.orig 2026-06-02 17:55:02 UTC +++ ui/accessibility/ax_tree.cc @@ -699,7 +699,7 @@ struct AXTreeUpdateState { // (crrev.com/c/2892259). const raw_ref pending_tree_update; -#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) bool should_clear_extra_announcement_nodes = false; #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) @@ -854,7 +854,7 @@ bool AXTree::ComputeNodeIsIgnoredChanged( return old_node_is_ignored != new_node_is_ignored; } -#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) ExtraAnnouncementNodes::ExtraAnnouncementNodes(AXNode* root) { assertive_node_ = CreateNode("assertive", root); polite_node_ = CreateNode("polite", root); @@ -947,7 +947,7 @@ void AXTree::Destroy() { void AXTree::Destroy() { base::ElapsedThreadTimer timer; -#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) ClearExtraAnnouncementNodes(); #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) @@ -1601,7 +1601,7 @@ bool AXTree::Unserialize(const AXTreeUpdate& update) { observers_.Notify(&AXTreeObserver::OnAtomicUpdateFinished, this, root_->id() != old_root_id, changes); -#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) if (update_state.should_clear_extra_announcement_nodes) { ClearExtraAnnouncementNodes(); } -@@ -2198,7 +2198,7 @@ void AXTree::NotifyNodeAttributesWillChange( +@@ -2204,7 +2204,7 @@ void AXTree::NotifyNodeAttributesWillChange( new_data); } -#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) void AXTree::ClearExtraAnnouncementNodes() { if (!extra_announcement_nodes_) { return; -@@ -2599,7 +2599,7 @@ bool AXTree::CreateNewChildVector( +@@ -2605,7 +2605,7 @@ bool AXTree::CreateNewChildVector( AXTreeUpdateState* update_state) { DCHECK(GetTreeUpdateInProgressState()); bool success = true; -#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) // If the root node has children added, clear the extra announcement nodes, // which should always have their indices as the last two children of the root // node. They will be recreated if needed, and given the correct indices. diff --git a/devel/electron42/files/patch-ui_views_widget_desktop__aura_desktop__drag__drop__client__ozone.cc b/devel/electron42/files/patch-ui_views_widget_desktop__aura_desktop__drag__drop__client__ozone.cc index 7d8ea3b3e28f..3fe606b3c5b9 100644 --- a/devel/electron42/files/patch-ui_views_widget_desktop__aura_desktop__drag__drop__client__ozone.cc +++ b/devel/electron42/files/patch-ui_views_widget_desktop__aura_desktop__drag__drop__client__ozone.cc @@ -1,11 +1,11 @@ ---- ui/views/widget/desktop_aura/desktop_drag_drop_client_ozone.cc.orig 2025-03-24 20:50:14 UTC +--- ui/views/widget/desktop_aura/desktop_drag_drop_client_ozone.cc.orig 2026-06-02 17:55:02 UTC +++ ui/views/widget/desktop_aura/desktop_drag_drop_client_ozone.cc -@@ -203,7 +203,7 @@ DragOperation DesktopDragDropClientOzone::StartDragAnd +@@ -218,7 +218,7 @@ DragOperation DesktopDragDropClientOzone::StartDragAnd return selected_operation_; } -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) void DesktopDragDropClientOzone::UpdateDragImage(const gfx::ImageSkia& image, const gfx::Vector2d& offset) { DCHECK(drag_handler_); diff --git a/devel/electron42/files/patch-ui_views_widget_desktop__aura_desktop__window__tree__host__platform.cc b/devel/electron42/files/patch-ui_views_widget_desktop__aura_desktop__window__tree__host__platform.cc index 4ded11ac8e55..73e8b0e97c07 100644 --- a/devel/electron42/files/patch-ui_views_widget_desktop__aura_desktop__window__tree__host__platform.cc +++ b/devel/electron42/files/patch-ui_views_widget_desktop__aura_desktop__window__tree__host__platform.cc @@ -1,29 +1,29 @@ ---- ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc.orig 2026-05-18 23:17:45 UTC +--- ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc.orig 2026-06-13 08:19:50 UTC +++ ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc @@ -51,7 +51,7 @@ #include "ui/wm/core/window_util.h" #include "ui/wm/public/window_move_client.h" -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) #include "ui/views/widget/desktop_aura/desktop_drag_drop_client_ozone_linux.h" #endif @@ -357,7 +357,7 @@ DesktopWindowTreeHostPlatform::CreateDragDropClient() DesktopWindowTreeHostPlatform::CreateDragDropClient() { ui::WmDragHandler* drag_handler = ui::GetWmDragHandler(*(platform_window())); std::unique_ptr drag_drop_client = -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) std::make_unique(window(), drag_handler); #else std::make_unique(window(), drag_handler); -@@ -1239,7 +1239,7 @@ bool DesktopWindowTreeHostPlatform::RotateFocusForWidg +@@ -1243,7 +1243,7 @@ bool DesktopWindowTreeHostPlatform::RotateFocusForWidg // DesktopWindowTreeHost: // Linux subclasses this host and adds some Linux specific bits. -#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) +#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_BSD) // static DesktopWindowTreeHost* DesktopWindowTreeHost::Create( internal::NativeWidgetDelegate* native_widget_delegate,