single-file-core 1.0.38 → 1.0.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/single-file-core.js +11 -9
package/package.json
CHANGED
package/single-file-core.js
CHANGED
|
@@ -502,7 +502,7 @@ class Processor {
|
|
|
502
502
|
if (this.options.insertMetaCSP) {
|
|
503
503
|
const metaTag = this.doc.createElement("meta");
|
|
504
504
|
metaTag.httpEquiv = "content-security-policy";
|
|
505
|
-
metaTag.content = "default-src 'none'; font-src 'self' data:; img-src 'self' data:; style-src 'unsafe-inline'; media-src 'self' data:; script-src 'unsafe-inline' data:; object-src 'self' data:;";
|
|
505
|
+
metaTag.content = "default-src 'none'; font-src 'self' data:; img-src 'self' data:; style-src 'unsafe-inline'; media-src 'self' data:; script-src 'unsafe-inline' data:; object-src 'self' data:; frame-src 'self' data:;";
|
|
506
506
|
this.doc.head.appendChild(metaTag);
|
|
507
507
|
}
|
|
508
508
|
if (this.options.insertMetaNoIndex) {
|
|
@@ -764,7 +764,7 @@ class Processor {
|
|
|
764
764
|
placeholderElement.replaceWith(noscriptElement);
|
|
765
765
|
});
|
|
766
766
|
this.doc.querySelectorAll("meta[http-equiv=\"content-security-policy\"]").forEach(element => element.remove());
|
|
767
|
-
const objectElements = this.doc.querySelectorAll("applet, object[data]:not([type=\"image/svg+xml\"]):not([type=\"image/svg-xml\"]):not([type=\"text/html\"]), embed[src]:not([src*=\".svg\"]):not([src*=\".pdf\"])");
|
|
767
|
+
const objectElements = this.doc.querySelectorAll("applet, object[data]:not([type=\"image/svg+xml\"]):not([type=\"image/svg-xml\"]):not([type=\"text/html\"]):not([data*=\".svg\"]):not([data*=\".pdf\"]), embed[src]:not([src*=\".svg\"]):not([src*=\".pdf\"])");
|
|
768
768
|
this.stats.set("discarded", "objects", objectElements.length);
|
|
769
769
|
this.stats.set("processed", "objects", objectElements.length);
|
|
770
770
|
objectElements.forEach(element => element.remove());
|
|
@@ -791,14 +791,16 @@ class Processor {
|
|
|
791
791
|
replaceInvalidElements() {
|
|
792
792
|
this.doc.querySelectorAll("template[" + util.INVALID_ELEMENT_ATTRIBUTE_NAME + "]").forEach(templateElement => {
|
|
793
793
|
const placeHolderElement = this.doc.createElement("span");
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
if (originalElement
|
|
797
|
-
|
|
794
|
+
if (templateElement.content) {
|
|
795
|
+
const originalElement = templateElement.content.firstChild;
|
|
796
|
+
if (originalElement) {
|
|
797
|
+
if (originalElement.hasAttributes()) {
|
|
798
|
+
Array.from(originalElement.attributes).forEach(attribute => placeHolderElement.setAttribute(attribute.name, attribute.value));
|
|
799
|
+
}
|
|
800
|
+
originalElement.childNodes.forEach(childNode => placeHolderElement.appendChild(childNode.cloneNode(true)));
|
|
798
801
|
}
|
|
799
|
-
|
|
802
|
+
templateElement.replaceWith(placeHolderElement);
|
|
800
803
|
}
|
|
801
|
-
templateElement.replaceWith(placeHolderElement);
|
|
802
804
|
});
|
|
803
805
|
}
|
|
804
806
|
|
|
@@ -1222,7 +1224,7 @@ class Processor {
|
|
|
1222
1224
|
async processPageResources() {
|
|
1223
1225
|
const processAttributeArgs = [
|
|
1224
1226
|
["link[href][rel*=\"icon\"]", "href", false, true],
|
|
1225
|
-
["object[type=\"image/svg+xml\"], object[type=\"image/svg-xml\"]", "data"],
|
|
1227
|
+
["object[type=\"image/svg+xml\"], object[type=\"image/svg-xml\"], object[data*=\".svg\"], object[data*=\".pdf\"]", "data"],
|
|
1226
1228
|
["img[src], input[src][type=image]", "src", true],
|
|
1227
1229
|
["embed[src*=\".svg\"], embed[src*=\".pdf\"]", "src"],
|
|
1228
1230
|
["video[poster]", "poster"],
|