bbpro
Version:
BrowserBox - remote browser isolation tool
123 lines (113 loc) • 4.26 kB
JavaScript
var $parcel$global = globalThis;
var $parcel$modules = {};
var $parcel$inits = {};
var parcelRequire = $parcel$global["parcelRequirec372"];
if (parcelRequire == null) {
parcelRequire = function(id) {
if (id in $parcel$modules) {
return $parcel$modules[id].exports;
}
if (id in $parcel$inits) {
var init = $parcel$inits[id];
delete $parcel$inits[id];
var module = {id: id, exports: {}};
$parcel$modules[id] = module;
init.call(module.exports, module, module.exports);
return module.exports;
}
var err = new Error("Cannot find module '" + id + "'");
err.code = 'MODULE_NOT_FOUND';
throw err;
};
parcelRequire.register = function register(id, init) {
$parcel$inits[id] = init;
};
$parcel$global["parcelRequirec372"] = parcelRequire;
}
var parcelRegister = parcelRequire.register;
var $iT6R0 = parcelRequire("iT6R0");
{
// const
const timers = [];
let running = false;
let repeat = true;
//window.addEventListener('load', resizeAndReport, {once:true});
window.addEventListener("message", ({ data: data, origin: origin })=>{
const target = new URL(location);
target.port = parseInt(location.port) - 1;
if (target.origin !== origin) (0, $iT6R0.DEBUG).val >= (0, $iT6R0.DEBUG).med && console.log(`Bad origin`);
const { ack: ack } = data;
if (ack && ack.viewport) {
(0, $iT6R0.DEBUG).val >= (0, $iT6R0.DEBUG).med && console.log(`Viewport received. Switching off send repeat`);
repeat = false;
}
});
if ((0, $iT6R0.deviceIsMobile)()) window.addEventListener("orientationchange", (e)=>{
//window._voodoo_asyncSizeTab();
try {
if (document.fullscreenElement) resizeAndReport();
else {
timers.forEach(clearTimeout);
timers.push(setTimeout(()=>{
(0, $iT6R0.DEBUG).val >= (0, $iT6R0.DEBUG).med && console.info("Device re-oriented! Updating remote viewport.");
resizeAndReport();
}, 50));
}
} catch (e) {
console.warn("Error on orientation change", e);
}
});
else window.addEventListener("resize", (e)=>{
try {
//window._voodoo_asyncSizeTab();
if (document.fullscreenElement) resizeAndReport();
else {
timers.forEach(clearTimeout);
timers.push(setTimeout(()=>{
(0, $iT6R0.DEBUG).val >= (0, $iT6R0.DEBUG).med && console.info(`Window resized! Updating remote viewport.`);
resizeAndReport();
}, 50));
}
} catch (e) {
console.warn("Error on resize", e);
}
});
resizeAndReport();
async function resizeAndReport() {
if (running) return;
await (0, $iT6R0.sleep)(500);
running = true;
repeat = true;
while(true){
let viewport;
try {
viewport = await window._voodoo_asyncSizeTab({
forceFrame: true
});
if (!viewport) throw new Error(`viewport did not load yet`);
else (0, $iT6R0.DEBUG).val && console.log({
resize_helper: "sized viewport",
viewport: viewport
});
} catch (e) {
(0, $iT6R0.DEBUG).val >= (0, $iT6R0.DEBUG).med && console.warn("Error on report loop", e);
await (0, $iT6R0.sleep)(500);
continue;
}
viewport.isMobile = (0, $iT6R0.deviceIsMobile)();
viewport.hasTouch = viewport.isMobile;
// need to repeat until ack
while(repeat && frames.pptr_console){
await (0, $iT6R0.sleep)(350);
frames.pptr_console && frames.pptr_console.postMessage({
viewport: viewport
}, "*");
}
break;
}
(0, $iT6R0.DEBUG).val >= (0, $iT6R0.DEBUG).med && console.log(`Done`);
running = false;
}
self._voodoo_resizeAndReport = resizeAndReport;
}
//# sourceMappingURL=image.952fbc09.js.map