diff --git a/.eslintrc b/.eslintrc index 1dd046d54..6dbbe75a1 100644 --- a/.eslintrc +++ b/.eslintrc @@ -4,6 +4,10 @@ "sourceType": "module", }, + "plugins": [ + "mozilla" + ], + "env": { "browser": true, "es6": true, @@ -18,6 +22,9 @@ }, "rules": { + // Plugins + "mozilla/avoid-removeChild": "error", + // Possible errors "for-direction": "error", "no-cond-assign": ["error", "except-parens"], diff --git a/src/shared/compatibility.js b/src/shared/compatibility.js index be761e26e..afa28218c 100644 --- a/src/shared/compatibility.js +++ b/src/shared/compatibility.js @@ -152,6 +152,7 @@ PDFJS.compatibilityChecked = true; } Element.prototype.remove = function () { if (this.parentNode) { + // eslint-disable-next-line mozilla/avoid-removeChild this.parentNode.removeChild(this); } }; diff --git a/test/driver.js b/test/driver.js index fa65afe8e..5f6131e3d 100644 --- a/test/driver.js +++ b/test/driver.js @@ -367,8 +367,7 @@ var Driver = (function DriverClosure() { // eslint-disable-line no-unused-vars while (styleSheet.cssRules.length > 0) { styleSheet.deleteRule(0); } - let ownerNode = styleSheet.ownerNode; - ownerNode.parentNode.removeChild(ownerNode); + styleSheet.ownerNode.remove(); } let body = document.body; while (body.lastChild !== this.end) { diff --git a/web/download_manager.js b/web/download_manager.js index c6f7da862..d4e7d5ec1 100644 --- a/web/download_manager.js +++ b/web/download_manager.js @@ -43,7 +43,7 @@ function download(blobUrl, filename) { // (otherwise .click() is ignored) (document.body || document.documentElement).appendChild(a); a.click(); - a.parentNode.removeChild(a); + a.remove(); } else { if (window.top === window && blobUrl.split('#')[0] === window.location.href.split('#')[0]) { diff --git a/web/pdf_print_service.js b/web/pdf_print_service.js index f71569a67..3fc172cd6 100644 --- a/web/pdf_print_service.js +++ b/web/pdf_print_service.js @@ -111,8 +111,8 @@ PDFPrintService.prototype = { return; } this.printContainer.textContent = ''; - if (this.pageStyleSheet && this.pageStyleSheet.parentNode) { - this.pageStyleSheet.parentNode.removeChild(this.pageStyleSheet); + if (this.pageStyleSheet) { + this.pageStyleSheet.remove(); this.pageStyleSheet = null; } this.scratchCanvas.width = this.scratchCanvas.height = 0;