// https://pegasus.pimpninjas.org/code/javascript/bitburner/browser.js
// for BitBurner - https://danielyxie.github.io/bitburner/
// by "The Almighty Pegasus Epsilon" <pegasus@pimpninjas.org>
// version 1.2 (C)opyright March 24 2022
// Distribute Unmodifed - https://pegasus.pimpninjas.org/license
/** @param {NS} ns **/
export async function main (ns) {
ns.disableLog("ALL");
ns.clearLog();
ns.tail();
const doc = globalThis["document"];
const style = globalThis.getComputedStyle(doc
.querySelector(".MuiTypography-root"));
const render = doc.createElement("iframe");
render.style.boxSizing = "border-box";
render.style.position = "relative";
render.style["width"] = "100%";
render.style["height"] = "100%";
const nav = doc.createElement("input");
nav.style.boxSizing = "border-box";
nav.style.position = "relative";
nav.style["width"] = "100%";
nav.style.outline = "none";
nav.style.padding = "2px";
nav.style.fontFamily = style.fontFamily;
nav.style.fontSize = style.fontSize;
nav.style.color = style.color;
nav.style.background = style.backgroundColor;
nav.addEventListener("keydown", e => {
e.cancelBubble = true;
if ("Enter" != e.code) return true;
render.src = (d => d.match("//") ? d : "https://" + d)(e.target.value);
});
render.onload = () => nav.value = render.src;
function rebuildBrowserWindow () {
let log = doc.querySelector("h6[title=\""
+ ns.getScriptName() + " " + ns.args.join(" ") + "\"]");
if (!log) return;
log = log.parentNode;
nav.style.marginRight = globalThis
.getComputedStyle(log.querySelector("div"))["width"];
if (log.querySelector("input")) return;
log.insertBefore(nav, log.firstChild.nextSibling);
log.removeChild(log.firstChild);
log = log.parentNode.parentNode.firstChild.nextSibling.firstChild;
log.querySelectorAll("div").forEach(n => n.parentNode.removeChild(n));
log.appendChild(render);
}
for (;;) {
rebuildBrowserWindow();
await ns.asleep(1000);
}
}