diff --git a/html/background.html b/html/background.html
new file mode 100644
index 0000000000..eda786e4cf
--- /dev/null
+++ b/html/background.html
@@ -0,0 +1,11 @@
+
+
+
+
+ Floccus
+
+
+
+
+
+
diff --git a/manifest.firefox.json b/manifest.firefox.json
index ff938cd17a..dd5761c7eb 100644
--- a/manifest.firefox.json
+++ b/manifest.firefox.json
@@ -1,8 +1,8 @@
{
- "manifest_version": 3,
+ "manifest_version": 2,
"name": "floccus bookmarks sync",
"short_name": "floccus",
- "version": "5.0.5",
+ "version": "5.0.6",
"description": "__MSG_DescriptionExtension__",
"icons": {
"48": "icons/logo.png",
@@ -10,30 +10,27 @@
"128": "icons/logo_128.png"
},
- "browser_specific_settings": {
+ "applications": {
"gecko": {
"id": "floccus@handmadeideas.org",
- "strict_min_version": "109.0"
+ "strict_min_version": "57.0"
}
},
"default_locale": "en",
- "permissions": ["alarms", "bookmarks", "storage", "unlimitedStorage", "tabs", "identity"],
- "host_permissions": [
- "*://*/*"
- ],
- "content_security_policy": {
- "extension_pages": "script-src 'self'; object-src 'self';"
- },
+ "permissions": ["https://*/", "http://*/", "alarms", "bookmarks", "storage", "unlimitedStorage", "tabs", "identity"],
+ "content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self';",
"options_ui": {
"page": "dist/html/options.html",
- "browser_style": false
+ "browser_style": false,
+ "chrome_style": false
},
- "action": {
+ "browser_action": {
"browser_style": false,
+ "chrome_style": false,
"default_icon": {
"48": "icons/logo.png"
},
@@ -42,6 +39,6 @@
},
"background": {
- "scripts": ["dist/js/background-script.js"]
+ "page": "dist/html/background.html"
}
}
diff --git a/src/lib/Controller.ts b/src/lib/Controller.ts
index 737067652d..7e87b20ddc 100644
--- a/src/lib/Controller.ts
+++ b/src/lib/Controller.ts
@@ -32,7 +32,7 @@ export default class Controller implements IController {
if (this.worker) {
return Promise.resolve(this.worker)
}
- if (navigator.serviceWorker?.controller) {
+ if (!navigator.userAgent.includes('Firefox') && navigator.serviceWorker?.controller) {
return navigator.serviceWorker.ready.then((registration) => ({
postMessage: (...args) => registration.active.postMessage(...args),
addEventListener: (fn) => {
diff --git a/src/lib/browser/BrowserController.js b/src/lib/browser/BrowserController.js
index 730eeba579..7f31ded893 100644
--- a/src/lib/browser/BrowserController.js
+++ b/src/lib/browser/BrowserController.js
@@ -107,7 +107,7 @@ export default class BrowserController {
// Setup service worker messaging
// eslint-disable-next-line no-undef
- if (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope) {
+ if (!navigator.userAgent.includes('Firefox') && typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope) {
addEventListener('message', (event) => this._receiveEvent(event.data, (data) => event.source.postMessage(data)))
} else {
browser.runtime.onMessage.addListener((data) => void (this._receiveEvent(data, (data) => browser.runtime.sendMessage(data))))
@@ -363,7 +363,11 @@ export default class BrowserController {
}
if (icon[status]) {
- await browser.action.setIcon(icon[status])
+ if (navigator.userAgent.includes('Firefox')) {
+ await browser.browserAction.setIcon(icon[status])
+ } else {
+ await browser.action.setIcon(icon[status])
+ }
}
}