From 2befcb8db655431865cd07afbdb4e3171f840b12 Mon Sep 17 00:00:00 2001 From: Omar Rizwan Date: Thu, 5 Nov 2020 19:09:44 -0800 Subject: `close` should be `remove`. Make control allow arbitrary commands. --- extension/background.js | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'extension') diff --git a/extension/background.js b/extension/background.js index 8d6eb8a..6406eb4 100644 --- a/extension/background.js +++ b/extension/background.js @@ -106,14 +106,13 @@ router["/tabs/by-id/*/url"] = withTab(tab => tab.url + "\n"); router["/tabs/by-id/*/title"] = withTab(tab => tab.title + "\n"); router["/tabs/by-id/*/text"] = fromScript(`document.body.innerText`); router["/tabs/by-id/*/control"] = { - // echo close >> mnt/tabs/by-id/1644/control + // echo remove >> mnt/tabs/by-id/1644/control async write(path, buf) { const tabId = parseInt(pathComponent(path, -2)); - if (buf.trim() === 'close') { - await new Promise(resolve => chrome.tabs.remove(tabId, resolve)); - } else { - throw new UnixError(unix.EIO); - } + const command = buf.trim(); + // can use `discard`, `remove`, `reload`, `goForward`, `goBack`... + // see https://developer.chrome.com/extensions/tabs + await new Promise(resolve => chrome.tabs[command](tabId, resolve)); } }; @@ -176,7 +175,7 @@ for (let key in router) { } } } -if (TESTING) { +if (TESTING) { // I wish I could color this section with... a pink background, or something. const assert = require('assert'); (async () => { assert.deepEqual(await router['/tabs/by-id/*'].entries(), ['url', 'title', 'text', 'control']); -- cgit v1.2.3