35 lines
1.2 KiB
TypeScript
35 lines
1.2 KiB
TypeScript
import tldEnum from "@lumeweb/tld-enum";
|
|
import { handleKernelMessage } from "./kernel.js";
|
|
import browser from "webextension-polyfill";
|
|
import { bridgeListener } from "./bridge.js";
|
|
import WebEngine from "../../webEngine.js";
|
|
import InternalProvider from "../../contentProviders/internalProvider.js";
|
|
import IpfsProvider from "../../contentProviders/ipfsProvider.js";
|
|
import ServerProvider from "../../contentProviders/serverProvider.js";
|
|
import { getKernelIframe, setKernelIframe, weAreBooted } from "../../vars.js";
|
|
import { init } from "@lumeweb/libkernel/kernel";
|
|
|
|
export async function boot() {
|
|
tldEnum.list.push("localhost");
|
|
window.addEventListener("message", handleKernelMessage);
|
|
browser.runtime.onConnect.addListener(bridgeListener);
|
|
|
|
const engine = new WebEngine();
|
|
engine.registerContentProvider(new InternalProvider(engine));
|
|
|
|
engine.registerContentProvider(new IpfsProvider(engine));
|
|
engine.registerContentProvider(new ServerProvider(engine));
|
|
|
|
setKernelIframe(document.createElement("iframe"));
|
|
getKernelIframe().src = "http://kernel.lume";
|
|
|
|
await new Promise((resolve) => {
|
|
getKernelIframe().onload = () => {
|
|
init().then(resolve);
|
|
};
|
|
document.body.appendChild(getKernelIframe());
|
|
});
|
|
|
|
weAreBooted();
|
|
}
|