0

I'm learning add-ons (browser extensions) development for Mozilla Firefox. I want to create an add-on that lets the user open a new Firefox window containing multiple tabs when he/she presses a keyboard key combination. I'm using windows.create(), since it seems to be the perfect choice. Currently, my manifest.json file is:

{
  "manifest_version": 2,
  ...
  "content_scripts": [
    {
      "matches": ["<all_urls>"],
      "js": ["test.js"]
    }
  ]
}

and the test.js file is:

(function () {
    document.addEventListener("keydown", function (e) {
        if (e.ctrlKey && e.shiftKey && e.code === "KeyU") {

            alert("A");

            function onCreated(windowInfo) {
                alert(`Created window: ${windowInfo.id}`);
            }

            function onError(error) {
                alert(`Error: ${error}`);
            }

            let creating = browser.windows.create({
                url: ["https://translate.google.com/"]
            });

            creating.then(onCreated, onError);

            alert("C");

        }
    });
})();

However, it doesn't work. alert("A"); shows a popup, while alert("C"); doesn't. The error is clearly in the middle, among those browser.windows.create lines, but I'm not able to figure out what's wrong. I'm following the tutorial from Firefox docs.

Pine Code
  • 2,466
  • 3
  • 18
  • 43

1 Answers1

0

The browser.windows API is not available in content scripts, it's only in background scripts. There is only a very limited set of APIs directly available to content scripts.

evilpie
  • 2,718
  • 20
  • 21