From 28f8f245d984c47b2be5d728295888273039697f Mon Sep 17 00:00:00 2001 From: Daniel James Smith Date: Thu, 8 Sep 2022 14:48:45 +0200 Subject: [PATCH] [PS-1184] Remove specific keyboard shortcut logic (#3173) * Removed logic for keyboard shortcuts specific to Vivaldi * Removed shortcut.ts and related parts * Removed dependency on mousetrap * Safari: Remove sidebar_action and_execute_sidebar_action from manifest.json * Rebuilt package-lock.json * Fixed merge issue from pulling master --- apps/browser/gulpfile.js | 13 +---- .../src/background/commands.background.ts | 6 +-- apps/browser/src/content/shortcuts.ts | 52 ------------------- apps/browser/src/manifest.json | 6 --- apps/browser/src/manifest.v3.json | 6 --- apps/browser/webpack.config.js | 1 - package-lock.json | 26 +--------- package.json | 2 - 8 files changed, 4 insertions(+), 108 deletions(-) delete mode 100644 apps/browser/src/content/shortcuts.ts diff --git a/apps/browser/gulpfile.js b/apps/browser/gulpfile.js index 29bca0f895..d54a4826fa 100644 --- a/apps/browser/gulpfile.js +++ b/apps/browser/gulpfile.js @@ -61,7 +61,6 @@ function distFirefox() { return dist("firefox", (manifest) => { delete manifest.content_security_policy; delete manifest.storage; - removeShortcuts(manifest); return manifest; }); } @@ -70,7 +69,6 @@ function distOpera() { return dist("opera", (manifest) => { delete manifest.applications; delete manifest.content_security_policy; - removeShortcuts(manifest); return manifest; }); } @@ -95,15 +93,6 @@ function distEdge() { }); } -function removeShortcuts(manifest) { - if (manifest.content_scripts && manifest.content_scripts.length > 1) { - const shortcutsScript = manifest.content_scripts[1]; - if (shortcutsScript.js.indexOf("content/shortcuts.js") > -1) { - manifest.content_scripts.splice(1, 1); - } - } -} - function distSafariMas(cb) { return distSafariApp(cb, "mas"); } @@ -212,6 +201,8 @@ function safariCopyBuild(source, dest) { gulpif( "manifest.json", jeditor((manifest) => { + delete manifest.sidebar_action; + delete manifest.commands._execute_sidebar_action; delete manifest.optional_permissions; manifest.permissions.push("nativeMessaging"); return manifest; diff --git a/apps/browser/src/background/commands.background.ts b/apps/browser/src/background/commands.background.ts index 05a83c8eb5..7303d790ec 100644 --- a/apps/browser/src/background/commands.background.ts +++ b/apps/browser/src/background/commands.background.ts @@ -34,14 +34,10 @@ export default class CommandsBackground { msg.data.commandToRetry.sender ); } - - if (this.isVivaldi && msg.command === "keyboardShortcutTriggered" && msg.shortcut) { - await this.processCommand(msg.shortcut, sender); - } } ); - if (!this.isVivaldi && chrome && chrome.commands) { + if (chrome && chrome.commands) { chrome.commands.onCommand.addListener(async (command: string) => { await this.processCommand(command); }); diff --git a/apps/browser/src/content/shortcuts.ts b/apps/browser/src/content/shortcuts.ts deleted file mode 100644 index 4832644082..0000000000 --- a/apps/browser/src/content/shortcuts.ts +++ /dev/null @@ -1,52 +0,0 @@ -import * as Mousetrap from "mousetrap"; - -document.addEventListener("DOMContentLoaded", (event) => { - const isSafari = - typeof safari !== "undefined" && - navigator.userAgent.indexOf(" Safari/") !== -1 && - navigator.userAgent.indexOf("Chrome") === -1; - const isVivaldi = !isSafari && navigator.userAgent.indexOf(" Vivaldi/") !== -1; - - if (!isSafari && !isVivaldi) { - return; - } - - if (isSafari && (window as any).__bitwardenFrameId == null) { - (window as any).__bitwardenFrameId = Math.floor(Math.random() * Math.floor(99999999)); - } - - Mousetrap.prototype.stopCallback = () => { - return false; - }; - - let autofillCommand = ["mod+shift+l"]; - if (isSafari) { - autofillCommand = ["mod+\\", "mod+8", "mod+shift+p"]; - } - Mousetrap.bind(autofillCommand, () => { - sendMessage("autofill_login"); - }); - - if (isSafari) { - Mousetrap.bind("mod+shift+y", () => { - sendMessage("open_popup"); - }); - - Mousetrap.bind("mod+shift+s", () => { - sendMessage("lock_vault"); - }); - } else { - Mousetrap.bind("mod+shift+9", () => { - sendMessage("generate_password"); - }); - } - - function sendMessage(shortcut: string) { - const msg: any = { - command: "keyboardShortcutTriggered", - shortcut: shortcut, - }; - - chrome.runtime.sendMessage(msg); - } -}); diff --git a/apps/browser/src/manifest.json b/apps/browser/src/manifest.json index 5bad5737fc..8172aefbd1 100644 --- a/apps/browser/src/manifest.json +++ b/apps/browser/src/manifest.json @@ -26,12 +26,6 @@ "matches": ["http://*/*", "https://*/*", "file:///*"], "run_at": "document_start" }, - { - "all_frames": false, - "js": ["content/shortcuts.js"], - "matches": ["http://*/*", "https://*/*", "file:///*"], - "run_at": "document_start" - }, { "all_frames": false, "js": ["content/message_handler.js"], diff --git a/apps/browser/src/manifest.v3.json b/apps/browser/src/manifest.v3.json index 8004f19979..a7f77ce1ee 100644 --- a/apps/browser/src/manifest.v3.json +++ b/apps/browser/src/manifest.v3.json @@ -27,12 +27,6 @@ "matches": ["http://*/*", "https://*/*", "file:///*"], "run_at": "document_start" }, - { - "all_frames": false, - "js": ["content/shortcuts.js"], - "matches": ["http://*/*", "https://*/*", "file:///*"], - "run_at": "document_start" - }, { "all_frames": false, "js": ["content/message_handler.js"], diff --git a/apps/browser/webpack.config.js b/apps/browser/webpack.config.js index 301e20a2c2..116ed19bd2 100644 --- a/apps/browser/webpack.config.js +++ b/apps/browser/webpack.config.js @@ -136,7 +136,6 @@ const config = { "content/autofiller": "./src/content/autofiller.ts", "content/notificationBar": "./src/content/notificationBar.ts", "content/contextMenuHandler": "./src/content/contextMenuHandler.ts", - "content/shortcuts": "./src/content/shortcuts.ts", "content/message_handler": "./src/content/message_handler.ts", "notification/bar": "./src/notification/bar.js", }, diff --git a/package-lock.json b/package-lock.json index bb37d6c63f..7d1dc1870b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -47,7 +47,6 @@ "koa-json": "^2.0.2", "lowdb": "^1.0.0", "lunr": "^2.3.9", - "mousetrap": "^1.6.5", "multer": "^1.4.5-lts.1", "ngx-infinite-scroll": "^14.0.0", "ngx-toastr": "^15.0.0", @@ -96,7 +95,6 @@ "@types/koa-json": "^2.0.20", "@types/lowdb": "^1.0.11", "@types/lunr": "^2.3.4", - "@types/mousetrap": "^1.6.8", "@types/node": "^16.11.12", "@types/node-fetch": "^2.6.1", "@types/node-forge": "^1.0.2", @@ -12922,12 +12920,6 @@ "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", "dev": true }, - "node_modules/@types/mousetrap": { - "version": "1.6.9", - "resolved": "https://registry.npmjs.org/@types/mousetrap/-/mousetrap-1.6.9.tgz", - "integrity": "sha512-HUAiN65VsRXyFCTicolwb5+I7FM6f72zjMWr+ajGk+YTvzBgXqa2A5U7d+rtsouAkunJ5U4Sb5lNJjo9w+nmXg==", - "dev": true - }, "node_modules/@types/ms": { "version": "0.7.31", "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", @@ -31840,11 +31832,6 @@ "node": ">= 0.8" } }, - "node_modules/mousetrap": { - "version": "1.6.5", - "resolved": "https://registry.npmjs.org/mousetrap/-/mousetrap-1.6.5.tgz", - "integrity": "sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA==" - }, "node_modules/move-concurrently": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", @@ -47226,7 +47213,7 @@ "postcss": "^7.0.36", "postcss-loader": "^4.2.0", "raw-loader": "^4.0.2", - "react": "^18.0.0", + "react": "^16.14.0", "react-dom": "^16.14.0", "read-pkg-up": "^7.0.1", "regenerator-runtime": "^0.13.7", @@ -52788,12 +52775,6 @@ "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", "dev": true }, - "@types/mousetrap": { - "version": "1.6.9", - "resolved": "https://registry.npmjs.org/@types/mousetrap/-/mousetrap-1.6.9.tgz", - "integrity": "sha512-HUAiN65VsRXyFCTicolwb5+I7FM6f72zjMWr+ajGk+YTvzBgXqa2A5U7d+rtsouAkunJ5U4Sb5lNJjo9w+nmXg==", - "dev": true - }, "@types/ms": { "version": "0.7.31", "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", @@ -67511,11 +67492,6 @@ } } }, - "mousetrap": { - "version": "1.6.5", - "resolved": "https://registry.npmjs.org/mousetrap/-/mousetrap-1.6.5.tgz", - "integrity": "sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA==" - }, "move-concurrently": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", diff --git a/package.json b/package.json index cf058e3bbe..0260152ce4 100644 --- a/package.json +++ b/package.json @@ -60,7 +60,6 @@ "@types/koa-json": "^2.0.20", "@types/lowdb": "^1.0.11", "@types/lunr": "^2.3.4", - "@types/mousetrap": "^1.6.8", "@types/node": "^16.11.12", "@types/node-fetch": "^2.6.1", "@types/node-forge": "^1.0.2", @@ -173,7 +172,6 @@ "koa-json": "^2.0.2", "lowdb": "^1.0.0", "lunr": "^2.3.9", - "mousetrap": "^1.6.5", "multer": "^1.4.5-lts.1", "ngx-infinite-scroll": "^14.0.0", "ngx-toastr": "^15.0.0",