From 4d398988230adfd1859d0122960faf4e891dd2b1 Mon Sep 17 00:00:00 2001 From: Jonas Jenwald Date: Sun, 12 Jun 2022 17:19:32 +0200 Subject: [PATCH] Enable the `unicorn/prefer-modern-dom-apis` ESLint plugin rule This rule will help enforce slightly shorter code, and according to MDN both `Element.replaceWith()` and `Element.before()` are available in all browsers that we currently support. Please find additional information here: - https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-modern-dom-apis.md - https://developer.mozilla.org/en-US/docs/Web/API/Element/replaceWith - https://developer.mozilla.org/en-US/docs/Web/API/Element/before --- .eslintrc | 1 + extensions/chromium/contentscript.js | 2 +- src/display/annotation_layer.js | 4 ++-- web/pdf_page_view.js | 4 ++-- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.eslintrc b/.eslintrc index 5570f8073..4ffd97b21 100644 --- a/.eslintrc +++ b/.eslintrc @@ -53,6 +53,7 @@ "unicorn/prefer-date-now": "error", "unicorn/prefer-dom-node-append": "error", "unicorn/prefer-dom-node-remove": "error", + "unicorn/prefer-modern-dom-apis": "error", "unicorn/prefer-string-starts-ends-with": "error", // Possible errors diff --git a/extensions/chromium/contentscript.js b/extensions/chromium/contentscript.js index 749e1ae03..b0aa55300 100644 --- a/extensions/chromium/contentscript.js +++ b/extensions/chromium/contentscript.js @@ -133,7 +133,7 @@ function updateEmbedElement(elem) { elem.type = "text/html"; elem.src = getEmbeddedViewerURL(elem.src); if (parentNode) { - parentNode.insertBefore(elem, nextSibling); + nextSibling.before(elem); } } diff --git a/src/display/annotation_layer.js b/src/display/annotation_layer.js index cd1bdb69a..a6f3eb23a 100644 --- a/src/display/annotation_layer.js +++ b/src/display/annotation_layer.js @@ -2559,9 +2559,9 @@ class AnnotationLayer { if (!firstChild) { element.append(canvas); } else if (firstChild.nodeName === "CANVAS") { - element.replaceChild(canvas, firstChild); + firstChild.replaceWith(canvas); } else { - element.insertBefore(canvas, firstChild); + firstChild.before(canvas); } } annotationCanvasMap.clear(); diff --git a/web/pdf_page_view.js b/web/pdf_page_view.js index acfdcf557..1bf374595 100644 --- a/web/pdf_page_view.js +++ b/web/pdf_page_view.js @@ -627,7 +627,7 @@ class PDFPageView { if (lastDivBeforeTextDiv) { // The annotation layer needs to stay on top. - div.insertBefore(canvasWrapper, lastDivBeforeTextDiv); + lastDivBeforeTextDiv.before(canvasWrapper); } else { div.append(canvasWrapper); } @@ -640,7 +640,7 @@ class PDFPageView { textLayerDiv.style.height = canvasWrapper.style.height; if (lastDivBeforeTextDiv) { // The annotation layer needs to stay on top. - div.insertBefore(textLayerDiv, lastDivBeforeTextDiv); + lastDivBeforeTextDiv.before(textLayerDiv); } else { div.append(textLayerDiv); }