Opening a new window from a Firefox Add-On
Cassey Lottman
Posted on March 15, 2020
Last year, I made my first couple browser extensions! Both were built to solve immediate needs I have: one to go between the various representations of a Glitch project (the project page at glitch.com/~projectname, the editor, and the running code at projectname.glitch.me), and one to add things to my Pinboard bookmarks.
The code that opens the Add to Pinboard page originated as code for a bookmarklet, provided by Pinboard, but I like extensions better. Bookmarklets show up in my browser's Bookmarks toolbar, which I usually keep hidden. Extensions show up right next to the address bar, in a single line.
I use my Pinboard extension pretty regularly1, in both Chrome and Firefox as an Add-On. But my Firefox version was annoying: when I clicked the extension, I'd see a little warning that a popup had been blocked, and would I like to allow it to be opened anyways? Yes, I would, every time. But the only options available in the little menu were to always allow popups on whatever site I was trying to save, or allow it just this once. That wasn't great- I might want to allow my Pinboard add-on to open a popup so I can save a link to a cute dress in an online shopping website, but I wouldn't want that shopping site to start sending me its own popups.
How can I allow my extension to always open a popup window in Firefox?
The answer turned out to be something I needed to change in code.
Previously, my extension used the exact same code as the bookmarklet, which called open('https://example.com')
to open the new tab.
If I changed my tab-opening code to use the APIs that exist especially for browser extensions, the popup would not be blocked.
chrome.tabs.create({ url: 'https://example.com' });
You can see the full source code for my extension on Glitch.
Thanks to these friends in a Mozilla forum question in 2018 for pointing me in the right direction!
Addendum
- Judging by the active user stats, I am probably the only person using my extension, albeit from two different computers. I agree with Robin Sloan that an app can be a home-cooked meal.
Posted on March 15, 2020
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.