@percy/dom 1.30.3-alpha.2 → 1.30.3-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/bundle.js +19 -6
  2. package/package.json +3 -3
package/dist/bundle.js CHANGED
@@ -518,7 +518,8 @@
518
518
  clone.shadowRoot.innerHTML = '';
519
519
  } else {
520
520
  clone.attachShadow({
521
- mode: 'open'
521
+ mode: 'open',
522
+ serializable: true
522
523
  });
523
524
  }
524
525
  // clone dom elements
@@ -547,14 +548,26 @@
547
548
  * Use `getInnerHTML()` to serialize shadow dom as <template> tags. `innerHTML` and `outerHTML` don't do this. Buzzword: "declarative shadow dom"
548
549
  */
549
550
  function getOuterHTML(docElement) {
550
- // firefox doesn't serialize shadow DOM, we're awaiting API's by firefox to become ready and are not polyfilling it.
551
- if (!docElement.getInnerHTML) {
551
+ // All major browsers in latest versions supports getHTML API to get serialized DOM
552
+ // https://developer.mozilla.org/en-US/docs/Web/API/Element/getHTML
553
+ // old firefox doesn't serialize shadow DOM, we're awaiting API's by firefox to become ready and are not polyfilling it.
554
+ // new firefox from 128 onwards serializes it using getHTML
555
+ /* istanbul ignore if: Only triggered in firefox <= 128 and tests runs on latest */
556
+ if (!docElement.getHTML) {
552
557
  return docElement.outerHTML;
553
558
  }
554
559
  // chromium gives us declarative shadow DOM serialization API
555
- let innerHTML = docElement.getInnerHTML({
556
- includeShadowRoots: true
557
- });
560
+ let innerHTML = '';
561
+ /* istanbul ignore else if: Only triggered in chrome <= 128 and tests runs on latest */
562
+ if (docElement.getHTML) {
563
+ innerHTML = docElement.getHTML({
564
+ serializableShadowRoots: true
565
+ });
566
+ } else if (docElement.getInnerHTML) {
567
+ innerHTML = docElement.getInnerHTML({
568
+ includeShadowRoots: true
569
+ });
570
+ }
558
571
  docElement.textContent = '';
559
572
  // Note: Here we are specifically passing replacer function to avoid any replacements due to
560
573
  // special characters in client's dom like $&
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@percy/dom",
3
- "version": "1.30.3-alpha.2",
3
+ "version": "1.30.3-beta.0",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -9,7 +9,7 @@
9
9
  },
10
10
  "publishConfig": {
11
11
  "access": "public",
12
- "tag": "alpha"
12
+ "tag": "beta"
13
13
  },
14
14
  "main": "dist/bundle.js",
15
15
  "browser": "dist/bundle.js",
@@ -35,5 +35,5 @@
35
35
  "devDependencies": {
36
36
  "interactor.js": "^2.0.0-beta.10"
37
37
  },
38
- "gitHead": "aeaba47044853e43b42e979a4e676916e4d95dff"
38
+ "gitHead": "8f5a9cb4b287900c4b053302452ea6f84d20c2f1"
39
39
  }