I originally wrote IPvFoo for Chrome in 2011, to observe whether websites are served using IPv4 or IPv6:
https://github.com/pmarks-net/ipvfoo/
In 2017, Firefox added initial WebExtensions support, so I dropped the extension on addons.mozilla.org, technically functional but full of bugs, and hoped for the best.
This week, I finally sat down with Firefox and ironed out all the problems:
- Added a separate
manifest.json
that uses “scripts”, as Firefox Manifest V3 doesn’t support “service_worker” - Added a button to grant webRequest permissions, as Firefox Manifest V3 doesn’t do this automatically
- Hacked the popup dialog to avoid unnecessary scrollbars
- Added an in-RAM hostname-to-IP cache, as Firefox doesn’t remember the IP address of cached requests
- Examined
details.documentUrl
when handling requests from a Service Worker, as Firefox doesn’t usedetails.initiator
I’m pretty sure that covers everything, so IPvFoo now provides an equivalent user experience on Chrome and Firefox. Enjoy!
Ideally, the mobile version should just implement the same APIs, so no migration is needed. The mobile migration guide looks consistent with “implement Manifest V3”, which is a reasonable idea aside from Chrome’s removal of
webRequestBlocking
.The only questionable API I’m using is pageAction, which draws an icon in the address bar instead of on the extension itself. Chrome removed pageAction years ago, and it’s possible that Firefox will follow suit, but until then I intend to keep using it.