Flagfox 6.1 Beta 2

The second Flagfox 6.1 beta is ready for testing. You can now download and install from the downloads page here (it will not auto-update from the first beta, but will auto-update to the final release).

Flagfox 6.1b2 changelog:

  • Added local caching for all favicons (uses localStorage; clears with cache clear)
  • Added throttling to favicon fetching while editing an action’s template
  • Reimplemented default icon loading for missing favicons in menus
  • Fixed handling of raw IPs (e.g. router admin pages; regression in 6.1 beta)

Flagfox 6.1b1 changelog:

  • Reimplemented support for fetching IPs from the DNS cache, instead of only requests (new WebExt API)
  • Reimplemented support for customizable hotkeys for actions, instead of just one default (new WebExt API)
  • Reimplemented action availability check on menu open, instead of all tab changes (new WebExt API)
  • Improved startup to attempt to load icons into existing tabs, where possible
  • Rewrote IP/host cache, yet again (having the DNS API makes things way less complex now)
  • Added support for all action types in context menus, where now possible (IPs obtainable via DNS cache)
  • Changed hotkey pref save format to match new API; old ones from Flagfox 5.2.x will be imported
  • Added detection and indication of invalid or existing hotkeys, when setting (not 100%, due to iffy API)
  • Added ability to undo a hotkey change without having to cancel config, via escape key
  • Switched to PointerEvents where applicable (only minor use)
  • Improved opening of new tabs to use openerTabId; now opened next to subject, instead of end of strip
  • Support for Tree Style Tabs addon (and similar) is now available again due to openerTabId change
  • Dropped now-defunct XMarks action from defaults
  • Various code cleanups
  • Dropped support for Firefox 56-59, as Mozilla only finally added the new APIs used here in Firefox 60

The main changes in beta 2 are bugfixes and better handling of favicons. All previous versions of Flagfox relied on Firefox to handle the caching of action favicons. It had a tendency to check for updates to those icons way too often, and I think (not 100%) it is a little worse since the transition to WebExt. Including the default actions’ favicons in the installer is not really viable, due to the insane state of copyright law. What I’ve written here is a caching system that uses local storage. It’s not the same “storage” API as in WebExt; it’s using the “storage” API usable via websites. (:sigh: name your APIs better, people…) The former is uses for addon prefs and the latter is being used here for persistent caching. Note that this cache is cleared along with other browser caches when manually clearing your cache, as is intended. I have this new system set to only check for favicon updates once every 30 days, at the moment (I might extend this). An additional reason for doing all of this is that it makes it easy to reimplement support for showing a default icon in the menus when none is available, which was a feature that I dropped in the WebExt transition, as there was no easy way to do that anymore. (Flagfox 5.2.x just listened for an error on trying to load the image; the WebExt API provides no way to do this for menus, though the options page still did this)

Known Issues:

  • Keyboard shortcuts are limited to one of Ctrl/Alt (or Command, on Mac), potentially Shift, with a character key. (WebExt API restriction)
  • Keyboard shortcuts have not yet been tested on a Mac.
  • There is a limit of 100 keyboard shortcuts allowed at one time.

(See previous post for more detail on the keyboard shortcut known issues.)

As this is a beta test, bugs are always a possibility and should be reported in a comment below or via any other contact method. Please don’t assume an issue is known unless I state so in a blog post somewhere here. I’ll update this blog post with any significant known issues discovered before posting the next beta version. Also, please only use the latest beta version, which unfortunately must be done manually due to Mozilla killing the beta channel.