diff options
author | Omar Rizwan <omar@omar.website> | 2021-01-04 03:40:51 -0800 |
---|---|---|
committer | Omar Rizwan <omar@omar.website> | 2021-01-04 03:40:51 -0800 |
commit | 683a3eb2339b27e8c0ff35834c6d3eb8b8f8da64 (patch) | |
tree | 56d43a7b4823a1414584bf077a80b2a9a4210a4f /extension | |
parent | a4390ecfdf625b28ff36c3531de5b10fc4136bf1 (diff) | |
parent | 6e829c1f17aca37810105d5f4408ff9466d5d7de (diff) |
Merge branch 'master' of github.com:osnr/tabfs
Diffstat (limited to 'extension')
-rw-r--r-- | extension/background.js | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/extension/background.js b/extension/background.js index 1b1cad0..179a2b8 100644 --- a/extension/background.js +++ b/extension/background.js @@ -344,6 +344,24 @@ router["/tabs/by-id/*/control"] = { }, async truncate({path, size}) { return {}; } }; +router["/tabs/by-id/*/active"] = { + // echo true > mnt/tabs/by-id/1644/active + // cat mnt/tabs/by-id/1644/active + async read({path, fh, offset, size}) { + const tabId = parseInt(pathComponent(path, -2)); + const tab = await browser.tabs.get(tabId); + const buf = (JSON.stringify(tab.active) + '\n').slice(offset, offset + size); + return { buf }; + }, + async write({path, buf}) { + if (buf.trim() === "true") { + const tabId = parseInt(pathComponent(path, -2)); + await browser.tabs.update(tabId, { active: true }); + } + return {size: stringToUtf8Array(buf).length}; + }, + async truncate({path, size}) { return {}; } +}; // debugger/ : debugger-API-dependent (Chrome-only) (function() { @@ -632,7 +650,7 @@ async function onMessage(req) { // timeout is very useful because some operations just hang // (like trying to take a screenshot, until the tab is focused) didTimeout = true; console.error('timeout'); - port.postMessage({ op: req.op, error: unix.ETIMEDOUT }); + port.postMessage({ id: req.id, op: req.op, error: unix.ETIMEDOUT }); }, 1000); /* console.time(req.op + ':' + req.path);*/ @@ -654,6 +672,7 @@ async function onMessage(req) { clearTimeout(timeout); console.log('resp', response); + response.id = req.id; port.postMessage(response); } }; |