Well, it's fine to fire twice. (We're currently firing ... a billion times.) Happy to reduce it if you like.

(Still pondering that disconnect.me-esque UI change, which would make this irrelevant.)

As you maybe know: it doesn't really matter when we fire, so long as we have /one/ possibly applicable rule assigned to the tab (otherwise the icon won't display). The list of rules triggered is always build on-demand (when the user clicks -> loads popup.html -> popup.js parses the rule list).