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]) + } } }