about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorManeraKai <manerakai@protonmail.com>2022-03-15 21:55:03 +0300
committerManeraKai <manerakai@protonmail.com>2022-03-15 21:55:03 +0300
commit5582bde76b7c31275ae8e833e768ee52f2f11f48 (patch)
tree7670190806d4653d4b7239f5adfc7de0ce34cfb2
parentAdded a shortcut for chaning instance ALT+SHIFT+L #112 (diff)
downloadlibredirect-5582bde76b7c31275ae8e833e768ee52f2f11f48.zip
Implemented changeInstance shortcut in a different way #112
-rw-r--r--src/manifest.json8
-rw-r--r--src/pages/background/background.js28
-rw-r--r--src/pages/background/shortcuts.js13
3 files changed, 21 insertions, 28 deletions
diff --git a/src/manifest.json b/src/manifest.json
index 6d36be6c..c261e221 100644
--- a/src/manifest.json
+++ b/src/manifest.json
@@ -45,5 +45,13 @@
       "encoding": "UTF-8",
       "is_default": false
     }
+  },
+  "commands": {
+    "changeInstance": {
+      "suggested_key": {
+        "default": "Alt+Shift+L"
+      },
+      "description": "Change Instance"
+    }
   }
 }
\ No newline at end of file
diff --git a/src/pages/background/background.js b/src/pages/background/background.js
index 6b76177a..779d0e95 100644
--- a/src/pages/background/background.js
+++ b/src/pages/background/background.js
@@ -167,14 +167,6 @@ browser.tabs.onUpdated.addListener(
     if (instagramHelper.isBibliogram(url)) instagramHelper.initBibliogramCookies(url);
     // if (changeInfo.url && youtubeHelper.isPipedorInvidious(url, 'main_frame', 'pipedMaterial')) youtubeHelper.initPipedMaterialLocalStorage(tabId);
 
-    if (changeWholeInstance(url))
-      browser.tabs.executeScript(
-        tabId,
-        {
-          file: "/pages/background/shortcuts.js",
-          runAt: "document_start"
-        }
-      );
   });
 
 function changeWholeInstance(url) {
@@ -203,12 +195,18 @@ function changeWholeInstance(url) {
   return newUrl;
 }
 
-browser.runtime.onMessage.addListener(
-  message => {
-    if (message.function === 'changeInstance') {
-      const url = new URL(message.url);
-      let newUrl = changeWholeInstance(url);
-      if (newUrl) browser.tabs.update({ url: newUrl });
-    }
+browser.commands.onCommand.addListener(
+  command => {
+    if (command === 'changeInstance')
+      chrome.tabs.query(
+        { active: true, currentWindow: true },
+        tabs => {
+          let url;
+          try { url = new URL(tabs[0].url); }
+          catch (_) { return }
+          let newUrl = changeWholeInstance(url);
+          if (newUrl) browser.tabs.update({ url: newUrl });
+        }
+      );
   }
 )
\ No newline at end of file
diff --git a/src/pages/background/shortcuts.js b/src/pages/background/shortcuts.js
deleted file mode 100644
index 12885479..00000000
--- a/src/pages/background/shortcuts.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-window.browser = window.browser || window.chrome;
-
-document.addEventListener('keydown',
-    e => {
-        if (e.code === 'KeyL' && e.shiftKey && e.altKey)
-            browser.runtime.sendMessage({
-                function: "changeInstance",
-                url: window.location.href,
-            });
-    }
-)
\ No newline at end of file