// console.log('main.js', location.href);
{
const port = document.createElement('span');
port.id = 'uas-port';
port.prepare = () => {
port.prefs = JSON.parse(decodeURIComponent(port.dataset.str));
port.dataset.ready = true;
port.dataset.type = port.prefs.type;
};
port.ogs = new Map();
port.addEventListener('register', e => {
const win = e.detail.hierarchy.reduce((p, c) => {
return p.frames[c];
}, parent);
port.ogs.set(e.detail.id, win);
});
document.documentElement.append(port);
// find user-agent data
for (const entry of performance.getEntriesByType('navigation')) {
for (const timing of entry.serverTiming || []) {
if (timing.name === 'uasw-json-data') {
port.dataset.str = timing.description;
}
}
}
// cached
for (const entry of performance.getEntriesByType('navigation')) {
if (entry.deliveryType === 'cache-storage') {
port.dataset.cached = true;
break;
}
}
if (port.dataset.str) {
port.prepare();
}
else {
// extension is not active for this tab or top-level request is from service worker
if (self.top === self) {
if (port.dataset.cached !== 'true') {
port.dataset.disabled = true;
}
}
}
}