|
1 | 1 | diff --git a/dist/rrweb-snapshot.js b/dist/rrweb-snapshot.js |
| 2 | +index 1c0fc62d7ede018a7797d3e707c73fa803166d2d..eadcceb088ac1deef08655eb2ed1cdb95fdb515b 100644 |
2 | 3 | --- a/dist/rrweb-snapshot.js |
3 | 4 | +++ b/dist/rrweb-snapshot.js |
4 | | -@@ -1536,6 +1536,18 @@ const pseudoClassPlugin = { |
| 5 | +@@ -603,7 +603,7 @@ function genId() { |
| 6 | + return _id++; |
| 7 | + } |
| 8 | + function getValidTagName(element) { |
| 9 | +- if (element instanceof HTMLFormElement) { |
| 10 | ++ if (Object.prototype.toString.call(element) === "[object HTMLFormElement]") { |
| 11 | + return "form"; |
| 12 | + } |
| 13 | + const processedTagName = toLowerCase(element.tagName); |
| 14 | +@@ -612,8 +612,16 @@ function getValidTagName(element) { |
| 15 | + } |
| 16 | + return processedTagName; |
| 17 | + } |
| 18 | +-let canvasService; |
| 19 | +-let canvasCtx; |
| 20 | ++const canvasServices = new WeakMap(); |
| 21 | ++function getCanvasService(doc) { |
| 22 | ++ let service = canvasServices.get(doc); |
| 23 | ++ if (!service) { |
| 24 | ++ const canvas = doc.createElement("canvas"); |
| 25 | ++ service = { canvas, context: canvas.getContext("2d") }; |
| 26 | ++ canvasServices.set(doc, service); |
| 27 | ++ } |
| 28 | ++ return service; |
| 29 | ++} |
| 30 | + const SRCSET_NOT_SPACES = /^[^ \t\n\r\u000c]+/; |
| 31 | + const SRCSET_COMMAS_OR_SPACES = /^[, \t\n\r\u000c]+/; |
| 32 | + function getAbsoluteSrcsetString(doc, attributeValue) { |
| 33 | +@@ -1056,10 +1064,7 @@ function serializeElementNode(n, options) { |
| 34 | + } |
| 35 | + } |
| 36 | + if (tagName === "img" && inlineImages) { |
| 37 | +- if (!canvasService) { |
| 38 | +- canvasService = doc.createElement("canvas"); |
| 39 | +- canvasCtx = canvasService.getContext("2d"); |
| 40 | +- } |
| 41 | ++ const { canvas: canvasService, context: canvasCtx } = getCanvasService(doc); |
| 42 | + const image = n; |
| 43 | + const imageSrc = image.currentSrc || image.getAttribute("src") || "<unknown-src>"; |
| 44 | + const priorCrossOrigin = image.crossOrigin; |
| 45 | +@@ -1536,6 +1541,18 @@ const pseudoClassPlugin = { |
5 | 46 | if (selector.includes(":hover")) { |
6 | 47 | rule2.selector += ",\n" + selector.replace(/:hover/g, ".\\:hover"); |
7 | 48 | } |
|
0 commit comments