Detects where the current browser extension code is being run.
This package was recently renamed from
webext-detect-page
towebext-detect
You can download the standalone bundle and include it in your manifest.json
.
Or use npm
:
npm install webext-detect
import {isBackground, isContentScript} from 'webext-detect';
if (isBackground()) {
// Run background code, e.g.
browser.runtime.onMessage.addListener(console.log);
} else if (isContentScript()) {
// Run content script code, e.g.
browser.runtime.sendMessage('wow!');
}
The functions are only ever evaluated once. This protects from future "invalidated context" errors. Read the note about testing if you're running this code in a tester.
To see all the available functions, check the index.d.ts file.
There are also a few helper functions based on the useragent string to loosely detect the current browser: isChrome()
, isFirefox()
, isSafari()
, isMobileSafari()
. They are not intended to detect forks, but just the main engines.
The calls are automatically cached so, if you're using this in a test environment, import and call this function first to ensure that the environment is "detected" every time:
import {disableWebextDetectPageCache} from 'webext-detect';
disableWebextDetectPageCache();
- webext-options-sync - Helps you manage and autosave your extension's options.
- webext-storage-cache - Map-like promised cache storage with expiration.
- webext-patterns - Utilities for patterns and globs.
- More…
MIT © Federico Brigante