@percy/dom
Advanced tools
Comparing version 1.30.7-beta.1 to 1.30.7-beta.2
@@ -444,3 +444,3 @@ (function() { | ||
} | ||
function serializeBase64(node, resources) { | ||
function serializeBase64(node, resources, cache) { | ||
let src = node.src; | ||
@@ -459,10 +459,18 @@ let isHrefUsed = false; | ||
if (base64String == null) return; | ||
// create a resource from the serialized data url | ||
let resource = resourceFromText(uid(), mimetype, base64String); | ||
resources.add(resource); | ||
if (!cache.has(base64String)) { | ||
// create a resource from the serialized data url | ||
let resource = resourceFromText(uid(), mimetype, base64String); | ||
resources.add(resource); | ||
cache.set(base64String, resource.url); | ||
} | ||
if (isHrefUsed === true) { | ||
node.href.baseVal = resource.url; | ||
node.href.baseVal = cache.get(base64String); | ||
} else { | ||
node.src = resource.url; | ||
// we use data-percy-serialized-attribute-src here instead of `src`. | ||
// As soon as src is used the browser will try to load the resource, | ||
// thus making a network call which would fail as this is a | ||
// dynamic cached resource and not a resource that backend can serve. | ||
// we later post converting domtree to html replace this with src | ||
node.removeAttribute('src'); | ||
node.setAttribute('data-percy-serialized-attribute-src', cache.get(base64String)); | ||
} | ||
@@ -487,3 +495,4 @@ } | ||
disableShadowDOM, | ||
resources | ||
resources, | ||
cache | ||
} = ctx; | ||
@@ -508,3 +517,3 @@ // clones shadow DOM and light DOM for a given node | ||
applyElementTransformations(clone); | ||
serializeBase64(clone, resources); | ||
serializeBase64(clone, resources, cache); | ||
parent.appendChild(clone); | ||
@@ -511,0 +520,0 @@ |
{ | ||
"name": "@percy/dom", | ||
"version": "1.30.7-beta.1", | ||
"version": "1.30.7-beta.2", | ||
"license": "MIT", | ||
@@ -38,3 +38,3 @@ "repository": { | ||
}, | ||
"gitHead": "b9a15ba7853ff350b7d7b7c3364700e70ca66643" | ||
"gitHead": "01d95d0569e70d0291d36b3c5d8da224d3014ebf" | ||
} |
36820
328722
725