From 9390015e1859070bdc1d29508b1474b1c7ab1bd5 Mon Sep 17 00:00:00 2001 From: SmAsHeD <6071159+smashedr@users.noreply.github.com> Date: Sun, 28 Apr 2024 18:51:27 -0700 Subject: [PATCH] Add externally_connectable for Chrome (#17) * Add externally_connectable for Chrome Users on Website * Formatting * Remove Optional Permissions from Chrome * Update * Streamline Chrome Permissions * Revert Permissions Change in This Branch --- .eslintrc.json | 4 +- manifest-chrome.json | 3 ++ manifest-firefox.json | 2 +- manifest.json | 2 +- package-lock.json | 95 ++++++++++++++++++---------------------- package.json | 14 +++--- src/js/service-worker.js | 7 +++ 7 files changed, 65 insertions(+), 62 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 60dbff4..6039b6f 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -11,7 +11,9 @@ "sourceType": "module" }, "rules": { + "no-empty": "off", "no-extra-semi": "off", - "no-undef": "off" + "no-undef": "off", + "no-unused-vars": "off" } } diff --git a/manifest-chrome.json b/manifest-chrome.json index 71f42ca..ba7a8ff 100644 --- a/manifest-chrome.json +++ b/manifest-chrome.json @@ -4,5 +4,8 @@ "type": "module" }, "optional_host_permissions": ["*://*.playdrift.com/*"], + "externally_connectable": { + "matches": ["*://playdrift-extension.cssnr.com/*"] + }, "minimum_chrome_version": "88" } diff --git a/manifest-firefox.json b/manifest-firefox.json index 7ff254f..36dafd6 100644 --- a/manifest-firefox.json +++ b/manifest-firefox.json @@ -7,7 +7,7 @@ "browser_specific_settings": { "gecko": { "id": "playdrift@cssnr.com", - "strict_min_version": "109.0" + "strict_min_version": "112.0" } } } diff --git a/manifest.json b/manifest.json index fc48fc4..1f333b5 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "description": "PlayDrift Web Extension.", "homepage_url": "https://github.com/cssnr/playdrift-extension", "author": "Shane", - "version": "0.4.6", + "version": "0.4.7", "manifest_version": 3, "commands": { "_execute_action": { diff --git a/package-lock.json b/package-lock.json index f083d21..04cc588 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,28 +6,19 @@ "": { "hasInstallScript": true, "dependencies": { - "@fortawesome/fontawesome-free": "^6.5.1", + "@fortawesome/fontawesome-free": "^6.5.2", "@popperjs/core": "^2.11.8", - "bootstrap": "^5.3.2", - "emoji-mart": "^5.5.2", - "emoji-picker-element": "^1.21.2", + "bootstrap": "^5.3.3", + "emoji-mart": "^5.6.0", + "emoji-picker-element": "^1.21.3", "jquery": "^3.7.1" }, "devDependencies": { - "eslint": "^8.51.0", + "eslint": "^8.57.0", "gulp": "^4.0.2", "json-merger": "^1.1.10", - "prettier": "^3.0.3", - "web-ext": "^7.8.0" - } - }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "prettier": "^3.2.5", + "web-ext": "^7.11.0" } }, "node_modules/@babel/code-frame": { @@ -256,9 +247,9 @@ } }, "node_modules/@fortawesome/fontawesome-free": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.5.1.tgz", - "integrity": "sha512-CNy5vSwN3fsUStPRLX7fUYojyuzoEMSXPl7zSLJ8TgtRfjv24LOnOWKT2zYwaHZCJGkdyRnTmstR0P+Ah503Gw==", + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.5.2.tgz", + "integrity": "sha512-hRILoInAx8GNT5IMkrtIt9blOdrqHOnPBH+k70aWUAqPZPgopb9G5EQJFpaBx/S8zp2fC+mPW349Bziuk1o28Q==", "hasInstallScript": true, "engines": { "node": ">=6" @@ -292,9 +283,9 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", - "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", "dev": true }, "node_modules/@isaacs/cliui": { @@ -479,9 +470,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.11.30", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.30.tgz", - "integrity": "sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==", + "version": "20.12.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz", + "integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -800,9 +791,9 @@ } }, "node_modules/addons-linter/node_modules/glob/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -2746,14 +2737,14 @@ } }, "node_modules/emoji-mart": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/emoji-mart/-/emoji-mart-5.5.2.tgz", - "integrity": "sha512-Sqc/nso4cjxhOwWJsp9xkVm8OF5c+mJLZJFoFfzRuKO+yWiN7K8c96xmtughYb0d/fZ8UC6cLIQ/p4BR6Pv3/A==" + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/emoji-mart/-/emoji-mart-5.6.0.tgz", + "integrity": "sha512-eJp3QRe79pjwa+duv+n7+5YsNhRcMl812EcFVwrnRvYKoNPoQb5qxU8DG6Bgwji0akHdp6D4Ln6tYLG58MFSow==" }, "node_modules/emoji-picker-element": { - "version": "1.21.2", - "resolved": "https://registry.npmjs.org/emoji-picker-element/-/emoji-picker-element-1.21.2.tgz", - "integrity": "sha512-DgeQdxHN/5vbUrmiDmGD7PZ2I6f5NOd1h8F2BV3oBbKl21dLbVetl9r5Q7859pgh8eksBmZDThHtjON6nXJwdQ==" + "version": "1.21.3", + "resolved": "https://registry.npmjs.org/emoji-picker-element/-/emoji-picker-element-1.21.3.tgz", + "integrity": "sha512-o1wQmPX0+8dmp/v4BfHVSMD2x32ZmCQd5LMHpHTw1M9ltDW99P+IIPbveI7nPxwGw74TW9E6jds6Kitf14UCOg==" }, "node_modules/emoji-regex": { "version": "9.2.2", @@ -6386,17 +6377,17 @@ } }, "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" }, "engines": { "node": ">= 0.8.0" @@ -6675,12 +6666,12 @@ } }, "node_modules/path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz", + "integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==", "dev": true, "dependencies": { - "lru-cache": "^9.1.1 || ^10.0.0", + "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { @@ -6691,9 +6682,9 @@ } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.1.tgz", + "integrity": "sha512-tS24spDe/zXhWbNPErCHs/AGOzbKGHT+ybSBqmdLm8WZ1xXLWvH8Qn71QPAlqVhd0qUTWjy+Kl9JmISgDdEjsA==", "dev": true, "engines": { "node": "14 || >=16.14" @@ -7960,9 +7951,9 @@ "dev": true }, "node_modules/sonic-boom": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.8.0.tgz", - "integrity": "sha512-ybz6OYOUjoQQCQ/i4LU8kaToD8ACtYP+Cj5qd2AO36bwbdewxWJ3ArmJ2cr6AvxlL2o0PqnCcPGUgkILbfkaCA==", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.8.1.tgz", + "integrity": "sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg==", "dev": true, "dependencies": { "atomic-sleep": "^1.0.0" @@ -8483,9 +8474,9 @@ } }, "node_modules/thread-stream": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.4.1.tgz", - "integrity": "sha512-d/Ex2iWd1whipbT681JmTINKw0ZwOUBZm7+Gjs64DHuX34mmw8vJL2bFAaNacaW72zYiTJxSHi5abUuOi5nsfg==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.7.0.tgz", + "integrity": "sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw==", "dev": true, "dependencies": { "real-require": "^0.2.0" diff --git a/package.json b/package.json index 929baff..f292fde 100644 --- a/package.json +++ b/package.json @@ -11,18 +11,18 @@ "build": "npm run build:chrome && npm run build:firefox" }, "dependencies": { - "@fortawesome/fontawesome-free": "^6.5.1", + "@fortawesome/fontawesome-free": "^6.5.2", "@popperjs/core": "^2.11.8", - "bootstrap": "^5.3.2", - "emoji-mart": "^5.5.2", - "emoji-picker-element": "^1.21.2", + "bootstrap": "^5.3.3", + "emoji-mart": "^5.6.0", + "emoji-picker-element": "^1.21.3", "jquery": "^3.7.1" }, "devDependencies": { - "eslint": "^8.51.0", + "eslint": "^8.57.0", "gulp": "^4.0.2", "json-merger": "^1.1.10", - "prettier": "^3.0.3", - "web-ext": "^7.8.0" + "prettier": "^3.2.5", + "web-ext": "^7.11.0" } } diff --git a/src/js/service-worker.js b/src/js/service-worker.js index ab18bdb..3c7e760 100644 --- a/src/js/service-worker.js +++ b/src/js/service-worker.js @@ -7,6 +7,7 @@ chrome.runtime.onInstalled.addListener(onInstalled) chrome.contextMenus.onClicked.addListener(onClicked) chrome.commands.onCommand.addListener(onCommand) chrome.runtime.onMessage.addListener(onMessage) +chrome.runtime.onMessageExternal.addListener(onMessageExternal) chrome.tabs.onUpdated.addListener(onUpdate) // chrome.alarms.onAlarm.addListener(onAlarm) chrome.storage.onChanged.addListener(onChanged) @@ -187,6 +188,12 @@ async function onMessage(message, sender, sendResponse) { // } } +async function onMessageExternal(message, sender, sendResponse) { + console.debug('onMessageExternal: message, sender:', message, sender) + const { profile } = await chrome.storage.sync.get(['profile']) + sendResponse(profile) +} + /** * On Changed Callback * TODO: This fires on ALL Tabs and not just the ones in optional host permissions