1- // @applitools /dom-snapshot@1.1.5
1+ // @applitools /dom-snapshot@1.2.4
22function __processPage ( ) {
33 var processPage = ( function ( ) {
44 'use strict' ;
@@ -17,6 +17,10 @@ function __processPage() {
1717 srcEl . getAttribute ( 'src' ) ,
1818 ) ;
1919
20+ const hrefUrls = [ ...doc . querySelectorAll ( 'image' ) ]
21+ . map ( hrefEl => hrefEl . getAttribute ( 'href' ) || hrefEl . getAttribute ( 'xlink:href' ) )
22+ . filter ( Boolean ) ;
23+
2024 const cssUrls = [ ...doc . querySelectorAll ( 'link[rel="stylesheet"]' ) ] . map ( link =>
2125 link . getAttribute ( 'href' ) ,
2226 ) ;
@@ -25,7 +29,7 @@ function __processPage() {
2529 videoEl . getAttribute ( 'poster' ) ,
2630 ) ;
2731
28- return [ ...srcsetUrls , ...srcUrls , ...cssUrls , ...videoPosterUrls ] ;
32+ return [ ...srcsetUrls , ...srcUrls , ...hrefUrls , ... cssUrls , ...videoPosterUrls ] ;
2933 }
3034
3135 var extractLinks_1 = extractLinks ;
@@ -64,21 +68,20 @@ function __processPage() {
6468 }
6569
6670 function elementNodeFactory ( domNodes , elementNode ) {
67- let node ;
71+ let node , manualChildNodeIndexes ;
6872 const { nodeType} = elementNode ;
6973 if ( [ NODE_TYPES . ELEMENT , NODE_TYPES . DOCUMENT_FRAGMENT_NODE ] . includes ( nodeType ) ) {
7074 if ( elementNode . nodeName !== 'SCRIPT' ) {
7175 if (
7276 elementNode . nodeName === 'STYLE' &&
73- ! elementNode . textContent &&
7477 elementNode . sheet &&
7578 elementNode . sheet . cssRules . length
7679 ) {
77- elementNode . appendChild (
78- docNode . createTextNode (
79- [ ...elementNode . sheet . cssRules ] . map ( rule => rule . cssText ) . join ( '' ) ,
80- ) ,
81- ) ;
80+ domNodes . push ( {
81+ nodeType : NODE_TYPES . TEXT ,
82+ nodeValue : [ ...elementNode . sheet . cssRules ] . map ( rule => rule . cssText ) . join ( '' ) ,
83+ } ) ;
84+ manualChildNodeIndexes = [ domNodes . length - 1 ] ;
8285 }
8386
8487 node = {
@@ -90,16 +93,24 @@ function __processPage() {
9093
9194 if ( / ^ b l o b : / . test ( value ) ) {
9295 value = value . replace ( / ^ b l o b : / , '' ) ;
96+ } else if (
97+ elementNode . nodeName === 'IFRAME' &&
98+ name === 'src' &&
99+ ! elementNode . contentDocument &&
100+ ! value . match ( / ^ \s * d a t a : / )
101+ ) {
102+ value = '' ;
93103 }
94-
95104 return {
96105 name,
97106 value,
98107 } ;
99108 } ) ,
100- childNodeIndexes : elementNode . childNodes . length
101- ? childrenFactory ( domNodes , elementNode . childNodes )
102- : [ ] ,
109+ childNodeIndexes :
110+ manualChildNodeIndexes ||
111+ ( elementNode . childNodes . length
112+ ? childrenFactory ( domNodes , elementNode . childNodes )
113+ : [ ] ) ,
103114 } ;
104115
105116 if ( elementNode . shadowRoot ) {
@@ -471,4 +482,4 @@ function __processPage() {
471482} ( ) ) ;
472483
473484 return processPage . apply ( this , arguments ) ;
474- }
485+ }
0 commit comments