Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

firefox-client

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

firefox-client

Firefox remote debugging client

  • 0.0.3
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
1.9K
decreased by-30.84%
Maintainers
1
Weekly downloads
 
Created
Source

firefox-client

firefox-client is a node library for remote debugging Firefox.

Install

With node.js npm package manager:

npm install firefox-client

Connecting

Desktop Firefox

  1. Enable remote debugging (You'll only have to do this once)

  2. Open the DevTools. Web Developer > Toggle Tools

  3. Visit the settings panel (gear icon)

  4. Check "Enable remote debugging" under Advanced Settings

  5. Listen for a connection

  6. Open the Firefox command line with Tools > Web Developer > Developer Toolbar.

  7. Start a server by entering this command: listen 6000 (where 6000 is the port number)

Firefox for Android

Follow the instructions in this Hacks video

Usage

Use firefox-client from your node program with:

var FirefoxClient = require("firefox-client");

var client = new FirefoxClient();

client.connect(6000, function() {
  client.listTabs(function(err, tabs) {
    console.log("first tab:", tabs[0].url);
  });
});

Compatibility

This library is compatible with Firefox Nightly.

API

A FirefoxClient is the entry point to the API. After connecting, get a Tab object with listTabs() or selectedTab(). Once you have a Tab, you can call methods and listen to events from the tab's modules, Console or Network. There are also experimental DOM and StyleSheets tab modules.

Methods

Almost all API calls take a callback that will get called with an error as the first argument (or null if there is no error), and a return value as the second:

tab.Console.evaluateJS("6 + 7", function(err, resp) {
  if (err) throw err;

  console.log(resp.result);
});
Events

The modules are EventEmitters, listen for events with on or once, and stop listening with off:

tab.Console.on("page-error", function(event) {
  console.log("new error from tab:", event.errorMessage);
});

Summary of the offerings of the modules and objects:

FirefoxClient

Methods: connect(), disconnect(), listTabs(), selectedTab()

Events: "error", "timeout", "end"

Tab

Properties: url, title

Methods: reload(), navigateTo(), attach(), detach()

Events: "navigate", "before-navigate"

Tab.Console

Methods: evaluateJS(), startListening(), stopListening(), getCachedLogs()

Events: "page-error", "console-api-call"

JSObject

Properties: class, name, displayName

Methods: ownPropertyNames(), ownPropertyDescriptor(), ownProperties(), prototype()

Tab.Network

Methods: startLogging(), stopLogging(), sendHTTPRequest()

Events: "network-event"

NetworkEvent

Properties: url, method, isXHR

Methods: getRequestHeaders(), getRequestCookies(), getRequestPostData(), getResponseHeaders(), getResponseCookies(), getResponseContent(), getEventTimings()

Events: "request-headers", "request-cookies", "request-postdata", "response-start", "response-headers", "response-cookies", "event-timings"

Tab.DOM

Methods: document(), documentElement(), querySelector(), querySelectorAll()

DOMNode

Properties: nodeValue, nodeName, namespaceURI

Methods: parentNode(), parents(), siblings(), nextSibling(), previousSibling(), querySelector(), querySelectorAll(), innerHTML(), outerHTML(), setAttribute(), remove(), release()

Tab.StyleSheets

Methods: getStyleSheets(), addStyleSheet()

StyleSheet

Properties: href, disabled, ruleCount

Methods: update(), toggleDisabled()

Events: "disabled-changed", "ruleCount-changed"

Examples

fxconsole - a remote JavaScript console for Firefox

Feedback

What do you need from the API? File an issue.

Keywords

FAQs

Package last updated on 13 Aug 2013

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc