summaryrefslogtreecommitdiff
path: root/extension/background.js
diff options
context:
space:
mode:
Diffstat (limited to 'extension/background.js')
-rw-r--r--extension/background.js22
1 files changed, 19 insertions, 3 deletions
diff --git a/extension/background.js b/extension/background.js
index d2e2ac8..223cff2 100644
--- a/extension/background.js
+++ b/extension/background.js
@@ -1,3 +1,10 @@
+// This file is the heart of TabFS. Each route (synthetic file) is
+// defined by an entry in the Routes object. You can live-edit this
+// file by editing `runtime/background.js` in the mounted TabFS. I
+// recommend editing the real `extension/background.js` on disk, but
+// setting a hook to copy the file on top of runtime/background.js
+// every time you Save.
+
const unix = {
EPERM: 1,
ENOENT: 2,
@@ -614,14 +621,23 @@ Routes["/runtime/background.js"] = {
};
Routes["/runtime/routes.html"] = routeWithContents(async () => {
+ const jsLines = (await window.backgroundJS).split('\n');
+ function findRouteLineNumber(path) {
+ for (let i = 0; i < jsLines.length; i++) {
+ if (jsLines[i].includes(path)) { return i + 1; }
+ }
+ }
return `
<html>
<body>
<dl>
${Object.entries(Routes).map(([path, {usage}]) => {
- const usages = usage ? (Array.isArray(usage) ? usage : [usage]) : [];
+ path = path.substring(1); // drop leading /
+ let usages = usage ? (Array.isArray(usage) ? usage : [usage]) : [];
+ usages = usages.map(u => u.replace('\$0', path));
+ const href = `https://github.com/osnr/TabFS/blob/master/extension/background.js#L${findRouteLineNumber(path)}`;
return `
- <dt>${path}</dt>
+ <dt>${path} (<a href="${href}">source</a>)</dt>
<dd>Usage:
<ul>
${usages.map(u => `<li>${u}</li>`).join('\n')}
@@ -889,7 +905,7 @@ function tryConnect() {
}
port = chrome.runtime.connectNative('com.rsnous.tabfs');
- port.onConnect.addListener(() => { window.isConnected = true; });
+ window.isConnected = true;
port.onMessage.addListener(onMessage);
port.onDisconnect.addListener(p => {
window.isConnected = false;