-
-
Notifications
You must be signed in to change notification settings - Fork 386
/
manifest.js
executable file
·82 lines (77 loc) · 2.13 KB
/
manifest.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
import fs from 'node:fs';
import deepmerge from 'deepmerge';
const packageJson = JSON.parse(fs.readFileSync('../package.json', 'utf8'));
const isFirefox = process.env.__FIREFOX__ === 'true';
/**
* If you want to disable the sidePanel, you can delete withSidePanel function and remove the sidePanel HoC on the manifest declaration.
*
* ```js
* const manifest = { // remove `withSidePanel()`
* ```
*/
function withSidePanel(manifest) {
// Firefox does not support sidePanel
if (isFirefox) {
return manifest;
}
return deepmerge(manifest, {
side_panel: {
default_path: 'side-panel/index.html',
},
permissions: ['sidePanel'],
});
}
/**
* After changing, please reload the extension at `chrome://extensions`
* @type {chrome.runtime.ManifestV3}
*/
const manifest = withSidePanel({
manifest_version: 3,
default_locale: 'en',
/**
* if you want to support multiple languages, you can use the following reference
* https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Internationalization
*/
name: '__MSG_extensionName__',
version: packageJson.version,
description: '__MSG_extensionDescription__',
host_permissions: ['<all_urls>'],
permissions: ['storage', 'scripting', 'tabs', 'notifications'],
options_page: 'options/index.html',
background: {
service_worker: 'background.iife.js',
type: 'module',
},
action: {
default_popup: 'popup/index.html',
default_icon: 'icon-34.png',
},
chrome_url_overrides: {
newtab: 'new-tab/index.html',
},
icons: {
128: 'icon-128.png',
},
content_scripts: [
{
matches: ['http://*/*', 'https://*/*', '<all_urls>'],
js: ['content/index.iife.js'],
},
{
matches: ['http://*/*', 'https://*/*', '<all_urls>'],
js: ['content-ui/index.iife.js'],
},
{
matches: ['http://*/*', 'https://*/*', '<all_urls>'],
css: ['content.css'], // public folder
},
],
devtools_page: 'devtools/index.html',
web_accessible_resources: [
{
resources: ['*.js', '*.css', '*.svg', 'icon-128.png', 'icon-34.png'],
matches: ['*://*/*'],
},
],
});
export default manifest;