more attempts for v3 and v2 simultaneous support
so far v3 works in firefox but doesn't work with chrome, for some reason it refuses to import the webpack chunk
This commit is contained in:
parent
5ec8bcb822
commit
60bdc0ae15
|
@ -50,6 +50,7 @@ def main():
|
||||||
'TARGET' : target,
|
'TARGET' : target,
|
||||||
'RELEASE': 'YES' if args.release else 'NO',
|
'RELEASE': 'YES' if args.release else 'NO',
|
||||||
'PUBLISH': 'YES' if args.publish else 'NO',
|
'PUBLISH': 'YES' if args.publish else 'NO',
|
||||||
|
'EXT_ID' : IDS[target],
|
||||||
**os.environ,
|
**os.environ,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,8 @@
|
||||||
// I assume this is only processed with webpack
|
// I assume this is only processed with webpack
|
||||||
// import * as browser from "./browser-polyfill"
|
// import * as browser from "./browser-polyfill"
|
||||||
|
|
||||||
// this works with v3 if you need to
|
// this works with v3 but NOT if type: module
|
||||||
|
// also unclear how to make it work with webpack??
|
||||||
// const manifestVersion = chrome.runtime.getManifest().manifest_version
|
// const manifestVersion = chrome.runtime.getManifest().manifest_version
|
||||||
// if (manifestVersion == 3) {
|
// if (manifestVersion == 3) {
|
||||||
// // for v3 it's provided via manifest
|
// // for v3 it's provided via manifest
|
||||||
|
@ -18,6 +19,14 @@
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
// this works for v2 both in chrome and firefox
|
||||||
|
// for v3
|
||||||
|
// - in chrome it works if type: module, but somehow NOT if we define chunks??
|
||||||
|
// without type: module this isn't working
|
||||||
|
// - in firefox it just works :shrug:
|
||||||
|
// but firefox foesn't allow type: module??
|
||||||
|
// could it be bug in chrome??
|
||||||
import * as browser from "webextension-polyfill"
|
import * as browser from "webextension-polyfill"
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -14,10 +14,11 @@ const T = {
|
||||||
const v3 = false
|
const v3 = false
|
||||||
|
|
||||||
const env = {
|
const env = {
|
||||||
TARGET : process.env.TARGET, // TODO assert not null?
|
TARGET : process.env.TARGET,
|
||||||
RELEASE: process.env.RELEASE,
|
RELEASE: process.env.RELEASE,
|
||||||
PUBLISH: process.env.PUBLISH,
|
PUBLISH: process.env.PUBLISH,
|
||||||
};
|
}
|
||||||
|
const ext_id = process.env.EXT_ID
|
||||||
|
|
||||||
const pkg = require('./package.json');
|
const pkg = require('./package.json');
|
||||||
const baseManifest = require('./src/manifest.json');
|
const baseManifest = require('./src/manifest.json');
|
||||||
|
@ -90,11 +91,10 @@ const permissions = [
|
||||||
|
|
||||||
const optional_permissions = []
|
const optional_permissions = []
|
||||||
|
|
||||||
|
if (target === T.FIREFOX || v3) {
|
||||||
if (target === T.FIREFOX) {
|
|
||||||
// chrome v2 doesn't support scripting api
|
// chrome v2 doesn't support scripting api
|
||||||
// code has a fallback just for that
|
// code has a fallback just for that
|
||||||
// need to get selected text
|
// (needed to get selected text)
|
||||||
permissions.push("scripting")
|
permissions.push("scripting")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -118,7 +118,9 @@ const manifestExtra = {
|
||||||
manifest_version: v3 ? 3 : 2,
|
manifest_version: v3 ? 3 : 2,
|
||||||
background: (v3 ? {
|
background: (v3 ? {
|
||||||
service_worker: 'background.js',
|
service_worker: 'background.js',
|
||||||
type: 'module',
|
// wtf -- firefox doesn't support module??
|
||||||
|
// it just fails to load manifest in this case atm
|
||||||
|
...(target === T.FIREFOX? {} : {type: 'module'}),
|
||||||
} : {
|
} : {
|
||||||
scripts: [
|
scripts: [
|
||||||
'webextension-polyfill.js',
|
'webextension-polyfill.js',
|
||||||
|
@ -135,7 +137,13 @@ manifestExtra[action_name] = action
|
||||||
if (v3) {
|
if (v3) {
|
||||||
manifestExtra['host_permissions'] = host_permissions
|
manifestExtra['host_permissions'] = host_permissions
|
||||||
manifestExtra['optional_host_permissions'] = optional_host_permissions
|
manifestExtra['optional_host_permissions'] = optional_host_permissions
|
||||||
manifestExtra.permissions.push("scripting")
|
if (target === T.FIREFOX) {
|
||||||
|
manifestExtra['browser_specific_settings'] = {
|
||||||
|
"gecko": {
|
||||||
|
"id": ext_id,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
manifestExtra.permissions.push(...host_permissions)
|
manifestExtra.permissions.push(...host_permissions)
|
||||||
manifestExtra.optional_permissions.push(...optional_host_permissions)
|
manifestExtra.optional_permissions.push(...optional_host_permissions)
|
||||||
|
|
Loading…
Reference in a new issue