UNPKG

webext-inject-on-install

Version:

Automatically add content scripts to existing tabs when your extension is installed

52 lines (33 loc) 2.2 kB
# webext-inject-on-install <!-- [![][badge-gzip]][link-bundlephobia] Disabled until https://github.com/pastelsky/bundlephobia/issues/379 --> [badge-gzip]: https://img.shields.io/bundlephobia/minzip/webext-inject-on-install.svg?label=gzipped [link-bundlephobia]: https://bundlephobia.com/result?p=webext-inject-on-install > Automatically add content scripts to existing tabs when your extension is installed. Firefox actually already does this natively, so this module is automatically disabled there. - Browsers: Chrome, Firefox, and Safari - Manifest: v2 and v3 - Permissions: `tabs` + explicit host permissions in `permissions`; in Manifest v3 you'll also need `scripting` - Context: `background` **Sponsored by [PixieBrix](https://www.pixiebrix.com)** :tada: ## Install ```sh npm install webext-inject-on-install ``` Or download the [standalone bundle](https://bundle.fregante.com/?pkg=webext-inject-on-install) to include in your `manifest.json`. ## Usage It registers automatically: ```js import "webext-inject-on-install"; ``` ## How it works 1. It gets the list of content scripts from the manifest 2. For each content script group, it looks for open tabs that are not discarded (discarded tabs are already handled by the browser) 3. It injects the script into the tabs matching the `matches` patterns (`exclude_matches` is not supported https://github.com/fregante/webext-inject-on-install/issues/5) 4. If the tab count exceeds 10 (each), it injects into the tabs only when they become active. (persistent background pages only https://github.com/fregante/webext-inject-on-install/issues/4) ## Related - [webext-dynamic-content-scripts](https://github.com/fregante/webext-dynamic-content-scripts) - Automatically registers your `content_scripts` on domains added via `permission.request` - [webext-content-scripts](https://github.com/fregante/webext-content-scripts) - Utility functions to inject content scripts in WebExtensions. - [webext-options-sync](https://github.com/fregante/webext-options-sync) - Helps you manage and autosave your extension's options. - [More…](https://github.com/fregante/webext-fun) ## License MIT © [Federico Brigante](https://fregante.com)