From 26a029d407be480d791972afb5975cf62c9360a6 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 19 Apr 2024 02:47:55 +0200 Subject: Adding upstream version 124.0.1. Signed-off-by: Daniel Baumann --- .../linters/eslint-plugin-mozilla/environment.rst | 91 ++++++++++++++++++++++ .../rules/avoid-Date-timing.rst | 30 +++++++ .../rules/avoid-removeChild.rst | 20 +++++ .../rules/balanced-listeners.rst | 20 +++++ .../rules/balanced-observers.rst | 20 +++++ .../rules/consistent-if-bracing.rst | 23 ++++++ .../rules/import-browser-window-globals.rst | 8 ++ .../rules/import-content-task-globals.rst | 14 ++++ .../rules/import-globals-from.rst | 18 +++++ .../eslint-plugin-mozilla/rules/import-globals.rst | 5 ++ .../rules/import-headjs-globals.rst | 26 +++++++ .../rules/lazy-getter-object-name.rst | 25 ++++++ .../rules/mark-exported-symbols-as-used.rst | 23 ++++++ .../rules/mark-test-function-used.rst | 8 ++ .../eslint-plugin-mozilla/rules/no-aArgs.rst | 22 ++++++ .../rules/no-addtask-setup.rst | 27 +++++++ .../rules/no-arbitrary-setTimeout.rst | 23 ++++++ .../rules/no-browser-refs-in-toolkit.rst | 24 ++++++ .../rules/no-compare-against-boolean-literals.rst | 23 ++++++ .../no-comparison-or-assignment-inside-ok.rst | 69 ++++++++++++++++ .../rules/no-cu-reportError.rst | 23 ++++++ .../rules/no-define-cc-etc.rst | 23 ++++++ .../rules/no-redeclare-with-import-autofix.rst | 21 +++++ .../rules/no-throw-cr-literal.rst | 38 +++++++++ .../rules/no-useless-parameters.rst | 26 +++++++ .../rules/no-useless-removeEventListener.rst | 20 +++++ .../rules/no-useless-run-test.rst | 6 ++ .../rules/prefer-boolean-length-check.rst | 24 ++++++ .../rules/prefer-formatValues.rst | 23 ++++++ .../rules/reject-addtask-only.rst | 6 ++ .../rules/reject-chromeutils-import-params.rst | 22 ++++++ .../rules/reject-chromeutils-import.rst | 27 +++++++ .../rules/reject-eager-module-in-lazy-getter.rst | 30 +++++++ .../rules/reject-global-this.rst | 29 +++++++ .../rules/reject-globalThis-modification.rst | 19 +++++ ...reject-import-system-module-from-non-system.rst | 36 +++++++++ .../rules/reject-importGlobalProperties.rst | 48 ++++++++++++ .../rules/reject-lazy-imports-into-globals.rst | 33 ++++++++ .../rules/reject-mixing-eager-and-lazy.rst | 22 ++++++ .../rules/reject-multiple-getters-calls.rst | 27 +++++++ .../rules/reject-relative-requires.rst | 22 ++++++ .../rules/reject-requires-await.rst | 20 +++++ .../rules/reject-scriptableunicodeconverter.rst | 13 ++++ .../rules/reject-some-requires.rst | 6 ++ .../rules/reject-top-level-await.rst | 26 +++++++ .../eslint-plugin-mozilla/rules/use-cc-etc.rst | 26 +++++++ .../rules/use-chromeutils-definelazygetter.rst | 22 ++++++ .../rules/use-chromeutils-generateqi.rst | 33 ++++++++ .../rules/use-chromeutils-import.rst | 19 +++++ .../rules/use-console-createInstance.rst | 20 +++++ .../rules/use-default-preference-values.rst | 19 +++++ .../rules/use-includes-instead-of-indexOf.rst | 21 +++++ .../eslint-plugin-mozilla/rules/use-isInstance.rst | 41 ++++++++++ .../rules/use-ownerGlobal.rst | 20 +++++ .../rules/use-returnValue.rst | 20 +++++ .../eslint-plugin-mozilla/rules/use-services.rst | 21 +++++ .../rules/use-static-import.rst | 21 +++++ .../eslint-plugin-mozilla/rules/valid-ci-uses.rst | 42 ++++++++++ .../eslint-plugin-mozilla/rules/valid-lazy.rst | 55 +++++++++++++ .../rules/valid-services-property.rst | 30 +++++++ .../eslint-plugin-mozilla/rules/valid-services.rst | 24 ++++++ .../rules/var-only-at-top-level.rst | 21 +++++ 62 files changed, 1564 insertions(+) create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/environment.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/avoid-Date-timing.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/avoid-removeChild.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/balanced-listeners.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/balanced-observers.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/consistent-if-bracing.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/import-browser-window-globals.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/import-content-task-globals.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/import-globals-from.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/import-globals.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/import-headjs-globals.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/lazy-getter-object-name.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/mark-exported-symbols-as-used.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/mark-test-function-used.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/no-aArgs.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/no-addtask-setup.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/no-arbitrary-setTimeout.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/no-browser-refs-in-toolkit.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/no-compare-against-boolean-literals.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/no-comparison-or-assignment-inside-ok.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/no-cu-reportError.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/no-define-cc-etc.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/no-redeclare-with-import-autofix.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/no-throw-cr-literal.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/no-useless-parameters.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/no-useless-removeEventListener.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/no-useless-run-test.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/prefer-boolean-length-check.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/prefer-formatValues.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/reject-addtask-only.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/reject-chromeutils-import-params.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/reject-chromeutils-import.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/reject-eager-module-in-lazy-getter.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/reject-global-this.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/reject-globalThis-modification.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/reject-import-system-module-from-non-system.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/reject-importGlobalProperties.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/reject-lazy-imports-into-globals.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/reject-mixing-eager-and-lazy.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/reject-multiple-getters-calls.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/reject-relative-requires.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/reject-requires-await.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/reject-scriptableunicodeconverter.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/reject-some-requires.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/reject-top-level-await.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/use-cc-etc.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/use-chromeutils-definelazygetter.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/use-chromeutils-generateqi.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/use-chromeutils-import.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/use-console-createInstance.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/use-default-preference-values.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/use-includes-instead-of-indexOf.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/use-isInstance.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/use-ownerGlobal.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/use-returnValue.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/use-services.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/use-static-import.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/valid-ci-uses.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/valid-lazy.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/valid-services-property.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/valid-services.rst create mode 100644 docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/var-only-at-top-level.rst (limited to 'docs/code-quality/lint/linters/eslint-plugin-mozilla') diff --git a/docs/code-quality/lint/linters/eslint-plugin-mozilla/environment.rst b/docs/code-quality/lint/linters/eslint-plugin-mozilla/environment.rst new file mode 100644 index 0000000000..928fa3bc8b --- /dev/null +++ b/docs/code-quality/lint/linters/eslint-plugin-mozilla/environment.rst @@ -0,0 +1,91 @@ +Environment +=========== + +These environments are available by specifying a comment at the top of the file, +e.g. + +.. code-block:: js + + /* eslint-env mozilla/chrome-worker */ + +There are also built-in ESLint environments available as well. Find them here: http://eslint.org/docs/user-guide/configuring#specifying-environments + +browser-window +-------------- + +Defines the environment for scripts that are in the main browser.xhtml scope. + +chrome-script +------------- + +Defines the environment for scripts loaded by +``SpecialPowers.loadChromeScript``. + +chrome-worker +------------- + +Defines the environment for chrome workers. This differs from normal workers by +the fact that `ctypes` can be accessed as well. + +frame-script +------------ + +Defines the environment for scripts loaded by ``Services.mm.loadFrameScript``. + +jsm +--- + +Defines the environment for jsm files (javascript modules). + +privileged +---------- + +Defines the environment for privileged JS files. + +process-script +-------------- + +Defines the environment for scripts loaded by +``Services.ppmm.loadProcessScript``. + +remote-page +----------- + +Defines the environment for scripts loaded with `` + +It may need to be included manually in JavaScript files which are loaded into +the same scope. + +xpcshell +-------- + +Defines the environment for xpcshell test files. diff --git a/docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/avoid-Date-timing.rst b/docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/avoid-Date-timing.rst new file mode 100644 index 0000000000..b01b568a28 --- /dev/null +++ b/docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/avoid-Date-timing.rst @@ -0,0 +1,30 @@ +avoid-Date-timing +================= + +Rejects grabbing the current time via Date.now() or new Date() for timing +purposes when the less problematic performance.now() can be used instead. + +The performance.now() function returns milliseconds since page load. To +convert that to milliseconds since the epoch, use: + +.. code-block:: js + + performance.timing.navigationStart + performance.now() + +Often timing relative to the page load is adequate and that conversion may not +be necessary. + +Examples of incorrect code for this rule: +----------------------------------------- + +.. code-block:: js + + Date.now() + +Examples of correct code for this rule: +--------------------------------------- + +.. code-block:: js + + new Date('2017-07-11'); + performance.now() diff --git a/docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/avoid-removeChild.rst b/docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/avoid-removeChild.rst new file mode 100644 index 0000000000..15ece94d0d --- /dev/null +++ b/docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/avoid-removeChild.rst @@ -0,0 +1,20 @@ +avoid-removeChild +================= + +Rejects using ``element.parentNode.removeChild(element)`` when ``element.remove()`` +can be used instead. + +Examples of incorrect code for this rule: +----------------------------------------- + +.. code-block:: js + + elt.parentNode.removeChild(elt); + +Examples of correct code for this rule: +--------------------------------------- + +.. code-block:: js + + elt.remove(); + elt.parentNode.removeChild(elt2); diff --git a/docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/balanced-listeners.rst b/docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/balanced-listeners.rst new file mode 100644 index 0000000000..f53c11e7aa --- /dev/null +++ b/docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/balanced-listeners.rst @@ -0,0 +1,20 @@ +balanced-listeners +================== + +Checks that for every occurrence of 'addEventListener' or 'on' there is an +occurrence of 'removeEventListener' or 'off' with the same event name. + +Examples of incorrect code for this rule: +----------------------------------------- + +.. code-block:: js + + elt.addEventListener('click', handler, false); + +Examples of correct code for this rule: +--------------------------------------- + +.. code-block:: js + + elt.addEventListener('event', handler); + elt.removeEventListener('event', handler); diff --git a/docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/balanced-observers.rst b/docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/balanced-observers.rst new file mode 100644 index 0000000000..b169a520a3 --- /dev/null +++ b/docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/balanced-observers.rst @@ -0,0 +1,20 @@ +balanced-observers +================== + +Checks that for every occurrence of ``addObserver`` there is an +occurrence of ``removeObserver`` with the same topic. + +Examples of incorrect code for this rule: +----------------------------------------- + +.. code-block:: js + + Services.obs.addObserver(observer, 'observable'); + +Examples of correct code for this rule: +--------------------------------------- + +.. code-block:: js + + Services.obs.addObserver(observer, 'observable'); + Services.obs.removeObserver(observer, 'observable'); diff --git a/docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/consistent-if-bracing.rst b/docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/consistent-if-bracing.rst new file mode 100644 index 0000000000..7bf6b796ef --- /dev/null +++ b/docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/consistent-if-bracing.rst @@ -0,0 +1,23 @@ +consistent-if-bracing +===================== + +Checks that if/elseif/else bodies are braced consistently, so either all bodies +are braced or unbraced. Doesn't enforce either of those styles though. + +Examples of incorrect code for this rule: +----------------------------------------- + +.. code-block:: js + + if (true) {1} else 0 + if (true) 1; else {0} + if (true) {1} else if (true) 2; else {0} + +Examples of correct code for this rule: +--------------------------------------- + +.. code-block:: js + + if (true) {1} else {0} + if (false) 1; else 0 + if (true) {1} else if (true) {2} else {0} diff --git a/docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/import-browser-window-globals.rst b/docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/import-browser-window-globals.rst new file mode 100644 index 0000000000..35c09cc8fd --- /dev/null +++ b/docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/import-browser-window-globals.rst @@ -0,0 +1,8 @@ +import-browser-window-globals +============================= + +For scripts included in browser-window, this will automatically inject the +browser-window global scopes into the file. + +This is a rule rather than an environment, as it allowed us to automatically +select the files to include. diff --git a/docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/import-content-task-globals.rst b/docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/import-content-task-globals.rst new file mode 100644 index 0000000000..f2550a1412 --- /dev/null +++ b/docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/import-content-task-globals.rst @@ -0,0 +1,14 @@ +import-content-task-globals +=========================== + +For files containing ContentTask.spawn calls, this will automatically declare +the frame script variables in the global scope. ContentTask is only available +to test files, so by default the configs only specify it for the mochitest based +configurations. + +This saves setting the file as a mozilla/frame-script environment. + +Note: due to the way ESLint works, it appears it is only easy to declare these +variables on a file global scope, rather than function global. This may mean that +they are incorrectly allowed, but given they are test files, this should be +detected during testing. diff --git a/docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/import-globals-from.rst b/docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/import-globals-from.rst new file mode 100644 index 0000000000..c2956ba05a --- /dev/null +++ b/docs/code-quality/lint/linters/eslint-plugin-mozilla/rules/import-globals-from.rst @@ -0,0 +1,18 @@ +import-globals-from +=================== + +Parses a file for globals defined in various unique Mozilla ways. + +When a ``/* import-globals-from */`` comment is found in a file, then all +globals from the file at will be imported in the current scope. This will +also operate recursively. + +This is useful for scripts that are loaded as