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/[email protected]/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/[email protected]/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/[email protected]/node_modules/web-ext/lib/extension-runners/firefox-desktop.js][debug] Creating new Firefox profile
[/home/user/test/node_modules/.deno/[email protected]/node_modules/web-ext/lib/firefox/index.js][debug] Running Firefox with profile at /tmp/firefox-profiletgp4Eu/
[/home/user/test/node_modules/.deno/[email protected]/node_modules/web-ext/lib/firefox/index.js][debug] Executing Firefox binary: /bin/firefox-esr
[/home/user/test/node_modules/.deno/[email protected]/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/[email protected]/node_modules/web-ext/lib/firefox/index.js][info] Use --verbose or --devtools to see logging
[/home/user/test/node_modules/.deno/[email protected]/node_modules/web-ext/lib/firefox/remote.js][debug] Connecting to the remote Firefox debugger
[/home/user/test/node_modules/.deno/[email protected]/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/[email protected]/node_modules/web-ext/lib/firefox/rdp-client.js:249:10)
    at FirefoxRDPClient._onError (file:///home/user/test/node_modules/.deno/[email protected]/node_modules/web-ext/lib/firefox/rdp-client.js:68:39)
    at Socket.<anonymous> (file:///home/user/test/node_modules/.deno/[email protected]/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