|
|
@@ -49,9 +49,9 @@ this.FrameTree = this.FrameTree || (() => {
|
|
|
method: "FrameTree.getDataResponse",
|
|
|
windowId: message.windowId,
|
|
|
tabId: message.tabId,
|
|
|
- content: getDoctype(document) + document.documentElement.outerHTML,
|
|
|
- emptyStyleRulesText: getEmptyStyleRulesText(document),
|
|
|
- canvasData: getCanvasData(document),
|
|
|
+ content: common.getDoctype(document) + document.documentElement.outerHTML,
|
|
|
+ emptyStyleRulesText: common.getEmptyStyleRulesText(document),
|
|
|
+ canvasData: common.getCanvasData(document),
|
|
|
baseURI: document.baseURI,
|
|
|
title: document.title
|
|
|
}).catch(() => {/* ignored */ });
|
|
|
@@ -164,9 +164,9 @@ this.FrameTree = this.FrameTree || (() => {
|
|
|
if (message.method == "getDataRequest" && message.windowId == frameWinId) {
|
|
|
topWindow.removeEventListener("message", onMessage, false);
|
|
|
common.preProcessDoc(frameDoc, frameWindow, message.options);
|
|
|
- const content = getDoctype(frameDoc) + frameDoc.documentElement.outerHTML;
|
|
|
- const emptyStyleRulesText = getEmptyStyleRulesText(frameDoc);
|
|
|
- const canvasData = getCanvasData(frameDoc);
|
|
|
+ const content = common.getDoctype(frameDoc) + frameDoc.documentElement.outerHTML;
|
|
|
+ const emptyStyleRulesText = common.getEmptyStyleRulesText(frameDoc);
|
|
|
+ const canvasData = common.getCanvasData(frameDoc);
|
|
|
top.postMessage(MESSAGE_PREFIX + "::" + JSON.stringify({ method: "getDataResponse", windowId: message.windowId, content, baseURI: frameDoc.baseURI, title: document.title, emptyStyleRulesText, canvasData }), "*");
|
|
|
common.postProcessDoc(frameDoc, frameWindow, message.options);
|
|
|
}
|
|
|
@@ -188,50 +188,4 @@ this.FrameTree = this.FrameTree || (() => {
|
|
|
dataRequestCallbacks.get(message.windowId)(message);
|
|
|
}
|
|
|
|
|
|
- function getDoctype(doc) {
|
|
|
- const docType = doc.doctype;
|
|
|
- let docTypeStr;
|
|
|
- if (docType) {
|
|
|
- docTypeStr = "<!DOCTYPE " + docType.nodeName;
|
|
|
- if (docType.publicId) {
|
|
|
- docTypeStr += " PUBLIC \"" + docType.publicId + "\"";
|
|
|
- if (docType.systemId) {
|
|
|
- docTypeStr += " \"" + docType.systemId + "\"";
|
|
|
- }
|
|
|
- } else if (docType.systemId) {
|
|
|
- docTypeStr += " SYSTEM \"" + docType.systemId + "\"";
|
|
|
- } if (docType.internalSubset) {
|
|
|
- docTypeStr += " [" + docType.internalSubset + "]";
|
|
|
- }
|
|
|
- return docTypeStr + ">\n";
|
|
|
- }
|
|
|
- return "";
|
|
|
- }
|
|
|
-
|
|
|
- function getEmptyStyleRulesText(doc) {
|
|
|
- if (doc) {
|
|
|
- const textData = [];
|
|
|
- doc.querySelectorAll("style").forEach(styleElement => {
|
|
|
- if (!styleElement.textContent) {
|
|
|
- textData.push(Array.from(styleElement.sheet.cssRules).map(rule => rule.cssText).join("\n"));
|
|
|
- }
|
|
|
- });
|
|
|
- return textData;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- function getCanvasData(doc) {
|
|
|
- if (doc) {
|
|
|
- const canvasData = [];
|
|
|
- doc.querySelectorAll("canvas").forEach(canvasElement => {
|
|
|
- try {
|
|
|
- canvasData.push({ dataURI: canvasElement.toDataURL("image/png", ""), width: canvasElement.clientWidth, height: canvasElement.clientHeight });
|
|
|
- } catch (error) {
|
|
|
- canvasData.push(null);
|
|
|
- }
|
|
|
- });
|
|
|
- return canvasData;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
})();
|