Specifically, the chrome.tabs.sendMessage(tabId, message, options, callback) API doesn't exist before Chrome 41, instead taking the form chrome.tabs.sendMessage(tabId, message, callback).
This uses the chrome.webRequest API to detect changes to page URL which *do not* cause the content script to refresh.
This reverts commit f0e0ccd. Ooops. Sorry. I didn't spot that the package-custom-crx target rewrites manifest.json. This replaces manifest.json. Unfortunately, it'll mess with any existing PRs which change manifest.json, and generates git junk.
These modes turn out to be almost identical. So they're better off in a single file.
- Add StateMode. - PasskeysMode is a StateMode. - BadgeUpdateMode is a StateMode. - Improve badge handling. - Add push method to Mode. - Document how modes work. - Cache badge on background page to reduce the number of updates. - Remove badge restriction on document.body?.tagName.toLowerCase() == "frameset". - Add ExitOnEscape mode, use it for ConstrainedMode and FindMode. - Move PostFindMode to its own file.
…nent-iframe Conflicts: content_scripts/vimium_frontend.coffee manifest.json