Skip to content

Conversation

@ggodlewski
Copy link

This is a fix for deno compatibility while running firefox.

rdp-client.js uses domain for error handling.

const d = domain.create();

It is non-functional in deno and deprecated in node. https://nodejs.org/api/domain.html

It causes deno to fail while running firefox

Sample code:

import webExt from 'web-ext';
import * as webExtLogger from 'web-ext/util/logger';
webExtLogger.consoleStream.makeVerbose();
const __dirname = import.meta.dirname;

webExt.cmd
  .run(
    {
      firefox: '/bin/firefox-esr',
      sourceDir: __dirname + '/packages/extension/dist'
    }
  ).then((extensionRunner) => {
    console.log(extensionRunner);
  });

Gives output:

$ deno -A test.mjs 
[/home/user/test/node_modules/.deno/web-ext@8.10.0/node_modules/web-ext/lib/cmd/run.js][info] Running web extension from /home/user/test/packages/extension/dist
[/home/user/test/node_modules/.deno/web-ext@8.10.0/node_modules/web-ext/lib/util/manifest.js][debug] Validating manifest at /home/user/test/packages/extension/dist/manifest.json
[/home/user/test/node_modules/.deno/web-ext@8.10.0/node_modules/web-ext/lib/extension-runners/firefox-desktop.js][debug] Creating new Firefox profile
[/home/user/test/node_modules/.deno/web-ext@8.10.0/node_modules/web-ext/lib/firefox/index.js][debug] Running Firefox with profile at /tmp/firefox-profiletgp4Eu/
[/home/user/test/node_modules/.deno/web-ext@8.10.0/node_modules/web-ext/lib/firefox/index.js][debug] Executing Firefox binary: /bin/firefox-esr
[/home/user/test/node_modules/.deno/web-ext@8.10.0/node_modules/web-ext/lib/firefox/index.js][debug] Firefox args: -start-debugger-server 36095 -foreground -no-remote -profile /tmp/firefox-profiletgp4Eu/
[/home/user/test/node_modules/.deno/web-ext@8.10.0/node_modules/web-ext/lib/firefox/index.js][info] Use --verbose or --devtools to see logging
[/home/user/test/node_modules/.deno/web-ext@8.10.0/node_modules/web-ext/lib/firefox/remote.js][debug] Connecting to the remote Firefox debugger
[/home/user/test/node_modules/.deno/web-ext@8.10.0/node_modules/web-ext/lib/firefox/remote.js][debug] Connecting to Firefox on port 36095
error: Uncaught Error: Unhandled error. (undefined)
    at FirefoxRDPClient.emit (ext:deno_node/_events.mjs:424:17)
    at FirefoxRDPClient.emit (node:domain:133:14)
    at FirefoxRDPClient.onError (file:///home/user/test/node_modules/.deno/web-ext@8.10.0/node_modules/web-ext/lib/firefox/rdp-client.js:249:10)
    at FirefoxRDPClient._onError (file:///home/user/test/node_modules/.deno/web-ext@8.10.0/node_modules/web-ext/lib/firefox/rdp-client.js:68:39)
    at Socket.<anonymous> (file:///home/user/test/node_modules/.deno/web-ext@8.10.0/node_modules/web-ext/lib/firefox/rdp-client.js:91:10)
    at Socket.emit (ext:deno_node/_events.mjs:436:20)
    at Socket.emit (node:domain:133:14)
    at emitErrorNT (ext:deno_node/internal/streams/destroy.js:177:8)
    at emitErrorCloseNT (ext:deno_node/internal/streams/destroy.js:136:3)
    at processTicksAndRejections (ext:deno_node/_next_tick.ts:39:15)

@ggodlewski ggodlewski changed the title Fix deno compatibility fix: deno compatibility with firefox Oct 6, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant