Re: Is chromium-149.0.7827.196 crashing for you guys?
Robert Nagy <[email protected]> Wed, 29 Jul 2026 10:32:48 +0200
| Newsgroups | gmane.os.openbsd.ports |
|---|---|
| Message-ID | <[email protected]> |
I will look into this this week. On 28/07/26 20:54 +0000, Mikolaj Kucharski wrote: > Hi. > > Vinted is still crashing Chromium for me. Would it be possible to > bring in changes to mitigate the problem? > > > On Sun, Jul 12, 2026 at 06:18:36PM +0100, Fabien Romano wrote: > > I have enabled serial and returned an empty devices list. > > I have tested in electron (make test only). > > > > patch-services_device_BUILD_gn > > patch-services_device_serial_BUILD_gn > > patch-services_device_serial_serial_device_enumerator_cc > > patch-services_device_serial_serial_port_manager_impl_cc > > > > I also look how we could disable the feature. > > https://chromium.googlesource.com/chromium/src/+/main/third_party/blink/renderer/platform/RuntimeEnabledFeatures.md > > > > I didn't test this one, it could work. > > > > patch-third_party_blink_renderer_platform_runtime_enabled_features_override_json5 > > > > I'm going to test both in chromium. > > > > On 7/10/26 18:28, Fabien Romano wrote: > > > > > > > > > On 7/10/26 13:25, Kirill A. Korinsky wrote: > > >> On Fri, 10 Jul 2026 10:37:45 +0200, > > >> Fabien Romano <[email protected]> wrote: > > >>> > > >>> > > >>> An AI found the crash is related to a web serial. > > >>> > > >>> I have no idea why it randomly fails on my side. > > >>> But yes, after trying a few times, I also get the crash. > > >>> > > >>> Crash: > > >>> rm -rf /tmp/chrome-vinted-serial && \ > > >>> /usr/local/bin/chrome \ > > >>> --user-data-dir=/tmp/chrome-vinted-serial \ > > >>> --no-first-run \ > > >>> https://www.vinted.com/ > > >>> > > >>> No crash: > > >>> rm -rf /tmp/chrome-vinted-noserial && \ > > >>> /usr/local/bin/chrome \ > > >>> --user-data-dir=/tmp/chrome-vinted-noserial \ > > >>> --no-first-run \ > > >>> --disable-blink-features=Serial \ > > >>> --disable-features=WebSerialAPI \ > > >>> https://www.vinted.com/ > > >>> > > >>> From my first test, --disable-blink-features=Serial is enough. > > >>> > > >>> Please test those flags and confirm it fixes your issue. > > >>> > > >>> I also get this crash while looking for WASM stuff online. > > >>> https://patrickelectric.work/mavlink2rest-wasm/ > > >>> > > >>> This one crashes all the time as it explicitly tests the serial. > > >>> > > >>> rm -rf /tmp/chrome-serial && \ > > >>> /usr/local/bin/chrome \ > > >>> --user-data-dir=/tmp/chrome-serial \ > > >>> --no-first-run \ > > >>> https://patrickelectric.work/mavlink2rest-wasm/ > > >>> > > >>> Also, I do not understand why, but --js-flags=--jitless prevents the crash. > > >>> I guess this is specific to this test. > > >>> > > >>> The below diff isn't enough, but it show where to look. > > >>> Next we have to handle the failure and return / close properly. > > >>> Otherwise tests fail on a timeout, which sounds not correct. > > >>> > > >>> Except if someone wants to implement serial ... > > > > >> > > >> Am I reading it right: a some random website tries to use Web Serial API and > > >> because it is not implemented, it literally crashed the web browser? > > > > > > Yes, exactly. > > > > > > https://chromium.googlesource.com/chromium/src/+/HEAD/styleguide/c++/checks.md > > > > > > CHECK(), DCHECK() and NOTREACHED() are all used to ensure that invariants hold. > > > They document (and verify) programmer expectations that either some statement > > > always holds true at the point of (D)CHECKing or that a piece of code is > > > unreachable (for NOTREACHED). CHECK failures and reachable NOTREACHEDs result in > > > an application crash (generating a crash report). > > > > > > I don't remember when they switched NOTREACHED() to be fatal (recently, I think). > > > If you try to use BindSerialPortManager on OpenBSD, you crash. > > > > > >> > > >> Anyway, I had added robert@ in case if he missed it. > > >> > > > > > > > -- > > Fabien Romano > > > > Index: Makefile > > =================================================================== > > RCS file: /mnt/ext/cvs/ports/www/chromium/Makefile,v > > diff -u -p -r1.917 Makefile > > --- Makefile 10 Jul 2026 07:47:01 -0000 1.917 > > +++ Makefile 12 Jul 2026 16:41:29 -0000 > > @@ -13,6 +13,7 @@ DPB_PROPERTIES+= lonesome > > COMMENT= Chromium browser > > > > V= 150.0.7871.114 > > +REVISION= 0 > > > > DISTNAME= chromium-${V} > > > > Index: patches/patch-services_device_BUILD_gn > > =================================================================== > > RCS file: /mnt/ext/cvs/ports/www/chromium/patches/patch-services_device_BUILD_gn,v > > diff -u -p -r1.7 patch-services_device_BUILD_gn > > --- patches/patch-services_device_BUILD_gn 31 May 2025 05:14:03 -0000 1.7 > > +++ patches/patch-services_device_BUILD_gn 12 Jul 2026 16:36:22 -0000 > > @@ -6,7 +6,7 @@ Index: services/device/BUILD.gn > > > > is_serial_enabled_platform = > > - is_win || ((is_linux || is_chromeos) && use_udev) || is_mac || is_android > > -+ is_win || ((!is_bsd && is_linux || is_chromeos) && use_udev) || is_mac || is_android > > ++ is_win || ((!is_bsd && is_linux || is_chromeos) && use_udev) || is_mac || is_android || is_openbsd > > > > source_set("lib") { > > # This should be visible only to embedders of the Device Service, and the > > Index: patches/patch-services_device_serial_BUILD_gn > > =================================================================== > > RCS file: /mnt/ext/cvs/ports/www/chromium/patches/patch-services_device_serial_BUILD_gn,v > > diff -u -p -r1.12 patch-services_device_serial_BUILD_gn > > --- patches/patch-services_device_serial_BUILD_gn 13 Mar 2026 12:50:17 -0000 1.12 > > +++ patches/patch-services_device_serial_BUILD_gn 12 Jul 2026 16:36:22 -0000 > > @@ -6,7 +6,7 @@ Index: services/device/serial/BUILD.gn > > } > > > > -if (is_win || ((is_linux || is_chromeos) && use_udev) || is_mac || is_android) { > > -+if (is_win || ((!is_bsd && is_linux || is_chromeos) && use_udev) || is_mac || is_android) { > > ++if (is_win || ((!is_bsd && is_linux || is_chromeos) && use_udev) || is_mac || is_android || is_openbsd) { > > config("platform_support") { > > visibility = [ ":serial" ] > > if (is_win) { > > Index: patches/patch-services_device_serial_serial_device_enumerator_cc > > =================================================================== > > RCS file: /mnt/ext/cvs/ports/www/chromium/patches/patch-services_device_serial_serial_device_enumerator_cc,v > > diff -u -p -r1.11 patch-services_device_serial_serial_device_enumerator_cc > > --- patches/patch-services_device_serial_serial_device_enumerator_cc 2 Jul 2025 12:47:40 -0000 1.11 > > +++ patches/patch-services_device_serial_serial_device_enumerator_cc 12 Jul 2026 16:39:22 -0000 > > @@ -1,21 +1,27 @@ > > +un-break build, NOTREACHED() > > + > > Index: services/device/serial/serial_device_enumerator.cc > > --- services/device/serial/serial_device_enumerator.cc.orig > > +++ services/device/serial/serial_device_enumerator.cc > > -@@ -12,7 +12,7 @@ > > +@@ -12,7 +12,9 @@ > > #include "build/build_config.h" > > #include "components/device_event_log/device_event_log.h" > > > > -#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) > > -+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) > > ++#if BUILDFLAG(IS_OPENBSD) > > ++// none > > ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) > > #include "services/device/serial/serial_device_enumerator_linux.h" > > #elif BUILDFLAG(IS_MAC) > > #include "services/device/serial/serial_device_enumerator_mac.h" > > -@@ -27,7 +27,7 @@ namespace device { > > +@@ -27,7 +29,9 @@ namespace device { > > // static > > std::unique_ptr<SerialDeviceEnumerator> SerialDeviceEnumerator::Create( > > scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner) { > > -#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) > > -+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) > > ++#if BUILDFLAG(IS_OPENBSD) > > ++ NOTREACHED() << "SerialDeviceEnumerator not supported on this platform."; > > ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) > > return SerialDeviceEnumeratorLinux::Create(); > > #elif BUILDFLAG(IS_MAC) > > return std::make_unique<SerialDeviceEnumeratorMac>(); > > Index: patches/patch-services_device_serial_serial_port_manager_impl_cc > > =================================================================== > > RCS file: patches/patch-services_device_serial_serial_port_manager_impl_cc > > diff -N patches/patch-services_device_serial_serial_port_manager_impl_cc > > --- /dev/null 1 Jan 1970 00:00:00 -0000 > > +++ patches/patch-services_device_serial_serial_port_manager_impl_cc 12 Jul 2026 16:40:20 -0000 > > @@ -0,0 +1,39 @@ > > +Return empty devices list and fallback on mojo::NullRemote(). > > + > > +Index: services/device/serial/serial_port_manager_impl.cc > > +--- services/device/serial/serial_port_manager_impl.cc.orig > > ++++ services/device/serial/serial_port_manager_impl.cc > > +@@ -85,6 +85,9 @@ void SerialPortManagerImpl::SetClient( > > + void SerialPortManagerImpl::GetDevices(bool allow_bluetooth_system_prompt, > > + GetDevicesCallback callback) { > > + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); > > ++#if BUILDFLAG(IS_OPENBSD) > > ++ std::move(callback).Run({}); > > ++#else > > + if (!enumerator_) { > > + enumerator_ = SerialDeviceEnumerator::Create(ui_task_runner_); > > + observed_enumerator_.AddObservation(enumerator_.get()); > > +@@ -107,6 +110,7 @@ void SerialPortManagerImpl::GetDevices(bool allow_blue > > + } > > + bluetooth_enumerator_->GetDevicesAfterInitialEnumeration(base::BindOnce( > > + &FinishGetDevices, std::move(callback), std::move(devices))); > > ++#endif > > + } > > + > > + void SerialPortManagerImpl::OpenPort( > > +@@ -117,6 +121,7 @@ void SerialPortManagerImpl::OpenPort( > > + mojo::PendingRemote<mojom::SerialPortConnectionWatcher> watcher, > > + OpenPortCallback callback) { > > + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); > > ++#if !BUILDFLAG(IS_OPENBSD) > > + if (!enumerator_) { > > + enumerator_ = SerialDeviceEnumerator::Create(ui_task_runner_); > > + observed_enumerator_.AddObservation(enumerator_.get()); > > +@@ -156,6 +161,7 @@ void SerialPortManagerImpl::OpenPort( > > + base::SequencedTaskRunner::GetCurrentDefault()))); > > + return; > > + } > > ++#endif > > + > > + std::move(callback).Run(mojo::NullRemote()); > > + } > > Index: patches/patch-third_party_blink_renderer_platform_runtime_enabled_features_override_json5 > > =================================================================== > > RCS file: patches/patch-third_party_blink_renderer_platform_runtime_enabled_features_override_json5 > > diff -N patches/patch-third_party_blink_renderer_platform_runtime_enabled_features_override_json5 > > --- /dev/null 1 Jan 1970 00:00:00 -0000 > > +++ patches/patch-third_party_blink_renderer_platform_runtime_enabled_features_override_json5 12 Jul 2026 17:07:26 -0000 > > @@ -0,0 +1,20 @@ > > +Change Serial feature status from stable to test. > > +Serial will only be available with --run-web-tests, --enable-blink-test-features. > > + > > +Index: third_party/blink/renderer/platform/runtime_enabled_features.override.json5 > > +--- third_party/blink/renderer/platform/runtime_enabled_features.override.json5.orig > > ++++ third_party/blink/renderer/platform/runtime_enabled_features.override.json5 > > +@@ -45,6 +45,10 @@ > > + // ] > > + > > + data: [ > > +- // Entries go here. > > ++ { > > ++ name: "Serial", > > ++ status: "test", > > ++ base_feature: "WebSerialAPI", > > ++ }, > > + ] > > +-} > > +\ No newline at end of file > > ++} > > > Index: Makefile > > =================================================================== > > RCS file: /mnt/ext/cvs/ports/www/chromium/Makefile,v > > diff -u -p -r1.917 Makefile > > --- Makefile 10 Jul 2026 07:47:01 -0000 1.917 > > +++ Makefile 12 Jul 2026 16:41:29 -0000 > > @@ -13,6 +13,7 @@ DPB_PROPERTIES+= lonesome > > COMMENT= Chromium browser > > > > V= 150.0.7871.114 > > +REVISION= 0 > > > > DISTNAME= chromium-${V} > > > > Index: patches/patch-services_device_BUILD_gn > > =================================================================== > > RCS file: /mnt/ext/cvs/ports/www/chromium/patches/patch-services_device_BUILD_gn,v > > diff -u -p -r1.7 patch-services_device_BUILD_gn > > --- patches/patch-services_device_BUILD_gn 31 May 2025 05:14:03 -0000 1.7 > > +++ patches/patch-services_device_BUILD_gn 12 Jul 2026 16:36:22 -0000 > > @@ -6,7 +6,7 @@ Index: services/device/BUILD.gn > > > > is_serial_enabled_platform = > > - is_win || ((is_linux || is_chromeos) && use_udev) || is_mac || is_android > > -+ is_win || ((!is_bsd && is_linux || is_chromeos) && use_udev) || is_mac || is_android > > ++ is_win || ((!is_bsd && is_linux || is_chromeos) && use_udev) || is_mac || is_android || is_openbsd > > > > source_set("lib") { > > # This should be visible only to embedders of the Device Service, and the > > Index: patches/patch-services_device_serial_BUILD_gn > > =================================================================== > > RCS file: /mnt/ext/cvs/ports/www/chromium/patches/patch-services_device_serial_BUILD_gn,v > > diff -u -p -r1.12 patch-services_device_serial_BUILD_gn > > --- patches/patch-services_device_serial_BUILD_gn 13 Mar 2026 12:50:17 -0000 1.12 > > +++ patches/patch-services_device_serial_BUILD_gn 12 Jul 2026 16:36:22 -0000 > > @@ -6,7 +6,7 @@ Index: services/device/serial/BUILD.gn > > } > > > > -if (is_win || ((is_linux || is_chromeos) && use_udev) || is_mac || is_android) { > > -+if (is_win || ((!is_bsd && is_linux || is_chromeos) && use_udev) || is_mac || is_android) { > > ++if (is_win || ((!is_bsd && is_linux || is_chromeos) && use_udev) || is_mac || is_android || is_openbsd) { > > config("platform_support") { > > visibility = [ ":serial" ] > > if (is_win) { > > Index: patches/patch-services_device_serial_serial_device_enumerator_cc > > =================================================================== > > RCS file: /mnt/ext/cvs/ports/www/chromium/patches/patch-services_device_serial_serial_device_enumerator_cc,v > > diff -u -p -r1.11 patch-services_device_serial_serial_device_enumerator_cc > > --- patches/patch-services_device_serial_serial_device_enumerator_cc 2 Jul 2025 12:47:40 -0000 1.11 > > +++ patches/patch-services_device_serial_serial_device_enumerator_cc 12 Jul 2026 16:39:22 -0000 > > @@ -1,21 +1,27 @@ > > +un-break build, NOTREACHED() > > + > > Index: services/device/serial/serial_device_enumerator.cc > > --- services/device/serial/serial_device_enumerator.cc.orig > > +++ services/device/serial/serial_device_enumerator.cc > > -@@ -12,7 +12,7 @@ > > +@@ -12,7 +12,9 @@ > > #include "build/build_config.h" > > #include "components/device_event_log/device_event_log.h" > > > > -#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) > > -+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) > > ++#if BUILDFLAG(IS_OPENBSD) > > ++// none > > ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) > > #include "services/device/serial/serial_device_enumerator_linux.h" > > #elif BUILDFLAG(IS_MAC) > > #include "services/device/serial/serial_device_enumerator_mac.h" > > -@@ -27,7 +27,7 @@ namespace device { > > +@@ -27,7 +29,9 @@ namespace device { > > // static > > std::unique_ptr<SerialDeviceEnumerator> SerialDeviceEnumerator::Create( > > scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner) { > > -#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) > > -+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) > > ++#if BUILDFLAG(IS_OPENBSD) > > ++ NOTREACHED() << "SerialDeviceEnumerator not supported on this platform."; > > ++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) > > return SerialDeviceEnumeratorLinux::Create(); > > #elif BUILDFLAG(IS_MAC) > > return std::make_unique<SerialDeviceEnumeratorMac>(); > > Index: patches/patch-services_device_serial_serial_port_manager_impl_cc > > =================================================================== > > RCS file: patches/patch-services_device_serial_serial_port_manager_impl_cc > > diff -N patches/patch-services_device_serial_serial_port_manager_impl_cc > > --- /dev/null 1 Jan 1970 00:00:00 -0000 > > +++ patches/patch-services_device_serial_serial_port_manager_impl_cc 12 Jul 2026 16:40:20 -0000 > > @@ -0,0 +1,39 @@ > > +Return empty devices list and fallback on mojo::NullRemote(). > > + > > +Index: services/device/serial/serial_port_manager_impl.cc > > +--- services/device/serial/serial_port_manager_impl.cc.orig > > ++++ services/device/serial/serial_port_manager_impl.cc > > +@@ -85,6 +85,9 @@ void SerialPortManagerImpl::SetClient( > > + void SerialPortManagerImpl::GetDevices(bool allow_bluetooth_system_prompt, > > + GetDevicesCallback callback) { > > + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); > > ++#if BUILDFLAG(IS_OPENBSD) > > ++ std::move(callback).Run({}); > > ++#else > > + if (!enumerator_) { > > + enumerator_ = SerialDeviceEnumerator::Create(ui_task_runner_); > > + observed_enumerator_.AddObservation(enumerator_.get()); > > +@@ -107,6 +110,7 @@ void SerialPortManagerImpl::GetDevices(bool allow_blue > > + } > > + bluetooth_enumerator_->GetDevicesAfterInitialEnumeration(base::BindOnce( > > + &FinishGetDevices, std::move(callback), std::move(devices))); > > ++#endif > > + } > > + > > + void SerialPortManagerImpl::OpenPort( > > +@@ -117,6 +121,7 @@ void SerialPortManagerImpl::OpenPort( > > + mojo::PendingRemote<mojom::SerialPortConnectionWatcher> watcher, > > + OpenPortCallback callback) { > > + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); > > ++#if !BUILDFLAG(IS_OPENBSD) > > + if (!enumerator_) { > > + enumerator_ = SerialDeviceEnumerator::Create(ui_task_runner_); > > + observed_enumerator_.AddObservation(enumerator_.get()); > > +@@ -156,6 +161,7 @@ void SerialPortManagerImpl::OpenPort( > > + base::SequencedTaskRunner::GetCurrentDefault()))); > > + return; > > + } > > ++#endif > > + > > + std::move(callback).Run(mojo::NullRemote()); > > + } > > Index: patches/patch-third_party_blink_renderer_platform_runtime_enabled_features_override_json5 > > =================================================================== > > RCS file: patches/patch-third_party_blink_renderer_platform_runtime_enabled_features_override_json5 > > diff -N patches/patch-third_party_blink_renderer_platform_runtime_enabled_features_override_json5 > > --- /dev/null 1 Jan 1970 00:00:00 -0000 > > +++ patches/patch-third_party_blink_renderer_platform_runtime_enabled_features_override_json5 12 Jul 2026 17:07:26 -0000 > > @@ -0,0 +1,20 @@ > > +Change Serial feature status from stable to test. > > +Serial will only be available with --run-web-tests, --enable-blink-test-features. > > + > > +Index: third_party/blink/renderer/platform/runtime_enabled_features.override.json5 > > +--- third_party/blink/renderer/platform/runtime_enabled_features.override.json5.orig > > ++++ third_party/blink/renderer/platform/runtime_enabled_features.override.json5 > > +@@ -45,6 +45,10 @@ > > + // ] > > + > > + data: [ > > +- // Entries go here. > > ++ { > > ++ name: "Serial", > > ++ status: "test", > > ++ base_feature: "WebSerialAPI", > > ++ }, > > + ] > > +-} > > +\ No newline at end of file > > ++} > > > -- > Regards, > Mikolaj -- Regards, Robert Nagy