diff --git a/script/analyseFrame.js b/script/analyseFrame.js
index 84640e6..dabec09 100644
--- a/script/analyseFrame.js
+++ b/script/analyseFrame.js
@@ -16,6 +16,24 @@
* along with this program. If not, see .
*/
+function countShadom() {
+ const countElements = (element) => {
+ let count = 1;
+ Array.from(element.children).forEach(child => {
+ count += countElements(child);
+ });
+
+ if (element.shadowRoot) {
+ Array.from(element.shadowRoot.children).forEach(sChild => {
+ count += countElements(sChild);
+ });
+ }
+ return count;
+ };
+
+ return countElements(document.body)
+}
+
function start_analyse() {
const analyseStartingTime = Date.now();
const dom_size = getDomSizeWithoutSvg();
@@ -28,7 +46,7 @@ function start_analyse() {
}
function getDomSizeWithoutSvg(){
- let dom_size = document.getElementsByTagName("*").length;
+ let dom_size = countShadom();
const svgElements = document.getElementsByTagName("svg");
for (let i = 0 ; i< svgElements.length ; i++) {
dom_size -= getNbChildsExcludingNestedSvg(svgElements[i])-1;
diff --git a/script/analyseFrameWithBestPractices.js b/script/analyseFrameWithBestPractices.js
index 20ca136..cf8aa92 100644
--- a/script/analyseFrameWithBestPractices.js
+++ b/script/analyseFrameWithBestPractices.js
@@ -16,6 +16,24 @@
* along with this program. If not, see .
*/
+function countShadom() {
+ const countElements = (element) => {
+ let count = 1;
+ Array.from(element.children).forEach(child => {
+ count += countElements(child);
+ });
+
+ if (element.shadowRoot) {
+ Array.from(element.shadowRoot.children).forEach(sChild => {
+ count += countElements(sChild);
+ });
+ }
+ return count;
+ };
+
+ return countElements(document.body)
+}
+
function start_analyse() {
const analyseStartingTime = Date.now();
const dom_size = getDomSizeWithoutSvg();
@@ -42,7 +60,7 @@ function start_analyse() {
}
function getDomSizeWithoutSvg() {
- let dom_size = document.getElementsByTagName("*").length;
+ let dom_size = countShadom();
const svgElements = document.getElementsByTagName("svg");
for (let i = 0; i < svgElements.length; i++) {
dom_size -= getNbChildsExcludingNestedSvg(svgElements[i]) - 1;