Переглянути джерело

moved Blob dependency into DOM

Gildas 7 роки тому
батько
коміт
8a7aaecd8e

+ 5 - 1
lib/single-file/single-file-browser.js

@@ -18,7 +18,7 @@
  *   along with SingleFile.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-/* global SingleFileCore, base64, DOMParser, TextDecoder, fetch, superFetch, parseSrcset, uglifycss, htmlmini, rulesMinifier, lazyLoader, serializer, docHelper */
+/* global SingleFileCore, DOMParser, TextDecoder, Blob, fetch, base64, superFetch, parseSrcset, uglifycss, htmlmini, rulesMinifier, lazyLoader, serializer, docHelper */
 
 this.SingleFile = this.SingleFile || (() => {
 
@@ -102,6 +102,10 @@ this.SingleFile = this.SingleFile || (() => {
 			return DOMParser;
 		}
 
+		static getContentSize(content) {
+			return new Blob([content]).size;
+		}
+
 		static htmlminiProcess(doc, options) {
 			return htmlmini.process(doc, options);
 		}

+ 6 - 8
lib/single-file/single-file-core.js

@@ -18,8 +18,6 @@
  *   along with SingleFile.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-/* global Blob */
-
 this.SingleFileCore = this.SingleFileCore || (() => {
 
 	const SELECTED_CONTENT_ATTRIBUTE_NAME = "data-single-file-selected-content";
@@ -303,11 +301,11 @@ this.SingleFileCore = this.SingleFileCore || (() => {
 			const url = new URL(this.baseURI);
 			let size;
 			if (this.options.displayStats) {
-				size = new Blob([this.doc.documentElement.outerHTML]).size;
+				size = DOM.getContentSize(this.doc.documentElement.outerHTML);
 			}
 			const content = DOM.serialize(this.doc, this.options.compressHTML);
 			if (this.options.displayStats) {
-				this.stats.processed.htmlBytes = new Blob([content]).size;
+				this.stats.processed.htmlBytes = DOM.getContentSize(content);
 				this.stats.discarded.htmlBytes += size - this.stats.processed.htmlBytes;
 			}
 			return {
@@ -444,20 +442,20 @@ this.SingleFileCore = this.SingleFileCore || (() => {
 			if (postProcess) {
 				let size;
 				if (this.options.displayStats) {
-					size = new Blob([this.doc.documentElement.outerHTML]).size;
+					size = DOM.getContentSize(this.doc.documentElement.outerHTML);
 				}
 				DOM.htmlminiPostProcess(this.doc);
 				if (this.options.displayStats) {
-					this.stats.discarded.htmlBytes += size - (new Blob([this.doc.documentElement.outerHTML]).size);
+					this.stats.discarded.htmlBytes += size - DOM.getContentSize(this.doc.documentElement.outerHTML);
 				}
 			} else {
 				let size;
 				if (this.options.displayStats) {
-					size = new Blob([this.doc.documentElement.outerHTML]).size;
+					size = DOM.getContentSize(this.doc.documentElement.outerHTML);
 				}
 				DOM.htmlminiProcess(this.doc, { preservedSpaceAttributeName: DOM.preservedSpaceAttributeName() });
 				if (this.options.displayStats) {
-					this.stats.discarded.htmlBytes += size - (new Blob([this.doc.documentElement.outerHTML]).size);
+					this.stats.discarded.htmlBytes += size - DOM.getContentSize(this.doc.documentElement.outerHTML);
 				}
 			}
 		}