JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 8337
  • Score
    100M100P100Q133335F
  • License MIT

Detects where the current browser extension code is being run. Compatible with Firefox, Chrome and derivates.

Package Exports

  • webext-detect

Readme

webext-detect

Detects where the current browser extension code is being run.

This package was recently renamed from webext-detect-page to webext-detect

Install

You can download the standalone bundle and include it in your manifest.json.

Or use npm:

npm install webext-detect

Usage

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!');
}

API

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.

Testing

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();

License

MIT © Federico Brigante