Skip to content

Add Firefox support to the browser extension #235

Closed
@wKovacs64

Description

@wKovacs64

Summary 💡

It would be great if the extension worked in Firefox as it does in Chrome.

Examples 🌈

See Chrome behavior.

Motivation 🔦

Not everyone uses Chrome. 🙂

Additional Information ℹ️

I don't know anything about browser extensions, so take this with a grain of salt.

I glanced around and it sounds like most extensions should work in both browsers (perhaps with a little tweaking). I ran the Testing Playground extension through https://www.extensiontest.com/ and it had no errors or compatibility problems, just a couple warnings (raw results are available at the bottom of this issue). Hoping it would Just Work™️, I temporarily installed a local copy in Firefox. This revealed a couple different warnings:

  • Reading manifest: Warning processing background.persistent: Event pages are not currently supported. This will run as a persistent background page.
  • Reading manifest: Warning processing version_name: An unexpected property was found in the WebExtension manifest.

image

While it does load, it doesn't seem to do anything. It just looks like this:

image

Clicking the "select element" button does highlight things and feels like it's allowing me to select an element, but once I click on an element, nothing changes in the dev tools panel.

Thanks for considering this request!

ExtensionTest.com Results
{
  "compat": [],
  "errors": [],
  "warnings": [
    {
      "message": "Using 'eval' has strong security and performance implications.",
      "description": "In most cases the same result can be achieved differently, therefore it is generally prohibited",
      "locations": [
        {
          "file": "manifest.json"
        }
      ]
    },
    {
      "message": "The Function constructor is eval.",
      "description": "Evaluation of strings as code can lead to security vulnerabilities and performance issues, even in the most innocuous of circumstances. Please avoid using `eval` and the `Function` constructor when at all possible.'",
      "locations": [
        {
          "file": "window/testing-library.js",
          "line": 90
        },
        {
          "file": "window/testing-library.js",
          "line": 90
        },
        {
          "file": "content-script/contentScript.js",
          "line": 1
        },
        {
          "file": "content-script/contentScript.js",
          "line": 90
        },
        {
          "file": "content-script/contentScript.js",
          "line": 90
        },
        {
          "file": "devtools/pane.js",
          "line": 1
        },
        {
          "file": "devtools/pane.js",
          "line": 90
        },
        {
          "file": "devtools/panel.js",
          "line": 1
        },
        {
          "file": "devtools/panel.js",
          "line": 90
        },
        {
          "file": "devtools/panel.js",
          "line": 90
        }
      ]
    },
    {
      "message": "Unsafe assignment to innerHTML",
      "description": "Due to both security and performance concerns, this may not be set using dynamic values which have not been adequately sanitized. This can lead to security issues or fairly serious performance degradation.",
      "locations": [
        {
          "file": "content-script/contentScript.js",
          "line": 90
        },
        {
          "file": "content-script/contentScript.js",
          "line": 90
        },
        {
          "file": "content-script/contentScript.js",
          "line": 90
        },
        {
          "file": "devtools/pane.js",
          "line": 1
        },
        {
          "file": "devtools/pane.js",
          "line": 1
        },
        {
          "file": "devtools/panel.js",
          "line": 1
        },
        {
          "file": "devtools/panel.js",
          "line": 1
        }
      ]
    }
  ]
}

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions