2023-07-31 16:54:21 +00:00
|
|
|
import { awaitBooted, getTimer } from "../vars.js";
|
2023-07-17 15:39:16 +00:00
|
|
|
import browser from "webextension-polyfill";
|
2023-07-18 03:51:03 +00:00
|
|
|
import { logLargeObjects } from "./background/util.js";
|
|
|
|
import { queryKernel } from "./background/kernel.js";
|
|
|
|
import { boot } from "./background/boot.js";
|
2023-07-31 16:54:51 +00:00
|
|
|
import * as kernel from "@lumeweb/libkernel";
|
2023-04-03 17:29:20 +00:00
|
|
|
|
2022-08-14 18:36:26 +00:00
|
|
|
setTimeout(logLargeObjects, getTimer());
|
2022-07-29 10:37:20 +00:00
|
|
|
|
2023-07-17 19:28:58 +00:00
|
|
|
browser.runtime.onInstalled.addListener(() => {
|
|
|
|
browser.tabs.create({
|
|
|
|
url: browser.runtime.getURL("onboarding.html"),
|
|
|
|
active: true,
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2023-07-18 12:51:18 +00:00
|
|
|
browser.runtime.onMessage.addListener(async (request, sender) => {
|
|
|
|
if (sender.id !== browser.runtime.id) {
|
|
|
|
return Promise.reject("access denied");
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!("method" in request)) {
|
|
|
|
return Promise.reject("method required");
|
|
|
|
}
|
|
|
|
if (!("data" in request)) {
|
|
|
|
return Promise.reject("data required");
|
|
|
|
}
|
|
|
|
|
2023-07-25 15:48:10 +00:00
|
|
|
if (request.method === "waitForBoot") {
|
2023-07-31 16:54:21 +00:00
|
|
|
await awaitBooted();
|
2023-07-25 15:48:10 +00:00
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
2023-07-18 12:51:18 +00:00
|
|
|
const ret = await queryKernel({
|
|
|
|
method: request.method,
|
|
|
|
data: request.data,
|
|
|
|
});
|
|
|
|
|
|
|
|
if (ret?.err) {
|
|
|
|
throw new Error(ret.err);
|
|
|
|
}
|
|
|
|
|
|
|
|
return ret;
|
|
|
|
});
|
|
|
|
|
2023-07-17 19:28:58 +00:00
|
|
|
boot();
|
2023-07-31 16:54:51 +00:00
|
|
|
|
|
|
|
globalThis.kernel = kernel;
|