puppeteer: [Bug]: puppeteer.connect crashes Chromium when using --load-extension with uBlock

Minimal, reproducible example

How I reproduce it:

1. Start Chromium with user-data-dir, and install uBlock (1.54.0_0).
2. Copy directory in `Default/Extensions/...`
3. Start Puppeteer with puppeteer.launch({ ... --load-extension=..., --remote-debugging-port=9000 }), pointing to that directory.
4. Attach with separate script: puppeteer.connect({ browserWSEndpoint:  ... })
This causes Chromium to crash.

It doesn’t crash when:

  • using other extensions, e.g. AdBlockPlus (but is missing a filter that is available in uBlock)
  • using a user-data-dir where the extension is preinstalled (and without using --load-extension)

Error string

crash without error message

Bug behavior

  • Flaky
  • PDF

Background

I’ve tried various launch args, but nothing prevents a crash.

Expectation

not crashing

Reality

crashing

Puppeteer configuration file (if used)

No response

Puppeteer version

21.6.1

Node version

18.19.0

Package manager

npm

Package manager version

10.2.3

Operating system

Linux

About this issue

  • Original URL
  • State: open
  • Created 6 months ago
  • Comments: 16

Most upvoted comments

Apologies for the confusion: I use puppeteer-core (i.e. connect instead of launch), so every crash (e.g. V8 OOM) looks like a disconnect.

where Chrome keeps running, but puppeteer is disconnected/loses connection sometimes, but where reconnecting is possible

Chrome is not running, and the process is terminated with the SIGSEGV.

To clarify: Is this the exact symptom you’re experiencing? But not 100% of the time?

I believe so. The thread resonated with me (and I was able to solve it by disabling ublock). It is not happening 100% of the time though (which makes it very hard to track down).

Chrome/Chromium do not provide arm64 binaries. Only Mac ARM is supported.

I can reproduce the crash in the latest Chrome Canary though (crash ID cb2e7d038f26b88c)