Aggregator
Aggregator
then((currentTab) => {
browser.runtime.sendMessage({
subject: "get-document",
tabId: currentTab.openerTabId
}).then((doc) => {
let contentDiv = document.getElementById("doc-content");
function setTitle(title) {
let titleElement = document.getElementById("doc-title");
titleElement.textContent = title;
document.title = title;
}
function revealAndDownload() {
document.getElementById("doc-loading").setAttribute("style",
"display:none;");
document.getElementById("doc-content").setAttribute("style", "");
browser.tabs.saveAsPDF({
showBackgroundColors: true,
headerLeft: "",
headerRight: "",
footerLeft: "&T",
footerRight: "&PT"
});
}
setTitle(doc.title);
setTimeout(() => {
// Create headers
let lowestHeader;
let lowestHeaderLevel;
for (let procedureLevel = 0; procedureLevel <
file.procedures.length; procedureLevel++) {
let headerLevel = procedureLevel + 2;
lowestHeaderLevel = headerLevel;
if (previousProcedures[procedureLevel] !==
file.procedures[procedureLevel]) {
let header = document.createElement("h" + headerLevel);
header.textContent = file.procedures[procedureLevel];
contentDiv.appendChild(header);
lowestHeader = header;
}
}
previousProcedures = file.procedures;
// Fetch content
fetch(file.url, { credentials: "include" }).then((fileResponse) =>
{
return fileResponse.text();
}).then((fileText) => {
let fileDoc = new DOMParser().parseFromString(fileText,
"text/html");
// Remove h1
let primaryHeader = fileDoc.querySelector("h1");
if (primaryHeader != null) {
primaryHeader.remove();
}
while (fileDoc.body.hasChildNodes())
contentDiv.appendChild(fileDoc.body.firstChild);
incrementProgress(filesCount, 1);
});