.eslintignore
author Kris Maglione <maglione.k@gmail.com>
Wed, 12 Jun 2019 16:06:40 -0700
changeset 540535 61fa2745733f3631488a3ecccc144823683b7b6d
parent 540288 a6fd4af8043d7291b8ef9dd1504e776db5c30f34
child 540859 c385e1de2be7392caff3a34e36f8b0b08420ba33
permissions -rw-r--r--
Bug 1541557: Part 1 - Use correct globals for JSWindowActors not in the shared JSM global. r=nika The current JSWindowActor code assumes that all actors will be created in the shared JSM global. This has a few problems: 1) For actors in other scopes, it enters the wrong compartment before decoding messages, which leads to a compartment checker error when trying to call message handlers. That could be fixed by just wrapping the result for the caller, but that would lead to other problems. Aside from the efficiency concerns of having to deal with cross-compartment wrappers, SpecialPowers in particular would not be able to pass the resulting objects to unprivileged scopes, since only SpecialPowers compartments have permissive CCWs enabled. 2) It also leads to the prototype objects for the actor instances being created in the shared JSM scope, even when the actors themselves are defined in other compartments. Again, aside from CCW efficiency issues, this prevents the SpecialPowers instances from being accessed by the unprivileged scopes that they're exposed to, since the prototype objects live in privileged scopes which don't have permissive CCWs enabled. This patch changes child actors to always create their objects in the global of their constructors. The parent objects are still created in the shared JSM global, but they now wrap values for the appropriate compartment before trying to call message handlers. Differential Revision: https://phabricator.services.mozilla.com/D35051

# Always ignore node_modules.
**/node_modules/**/*.*

# Always ignore crashtests - specially crafted files that originally caused a
# crash.
**/crashtests/**
# Also ignore reftest - specially crafted to produce expected output.
**/reftest/**
**/reftests/**

# Exclude expected objdirs.
obj*/**

# dom/ exclusions which should be removed (aka ESLint enabled)
dom/base/*.*
dom/media/test/**
!dom/media/test/marionette/yttest/*.js
dom/xhr/**

# build/ third-party code
build/pgo/js-input/**

# browser/ exclusions
browser/app/**
browser/branding/**/firefox-branding.js
# Gzipped test file.
browser/base/content/test/general/gZipOfflineChild.html
browser/base/content/test/urlbar/file_blank_but_not_blank.html
# Third-party code.
browser/components/payments/res/vendor/*
# Test files that are really json not js, and don't need to be linted.
browser/components/sessionstore/test/unit/data/sessionstore_valid.js
browser/components/sessionstore/test/unit/data/sessionstore_invalid.js
# This file is split into two in order to keep it as a valid json file
# for documentation purposes (policies.json) but to be accessed by the
# code as a .jsm (schema.jsm)
browser/components/enterprisepolicies/schemas/schema.jsm
# generated & special files in cld2
browser/components/translation/cld2/**
# Screenshots is imported as a system add-on and has
# their own lint rules currently.
browser/extensions/screenshots/**
browser/extensions/pdfjs/content/build**
browser/extensions/pdfjs/content/web**
# generated or library files in pocket
browser/components/pocket/content/panels/js/tmpl.js
browser/components/pocket/content/panels/js/vendor/**

# Ignore newtab files
# Kept in sync with browser/components/newtab/.eslintignore
browser/components/newtab/data/
browser/components/newtab/logs/
browser/components/newtab/prerendered/
browser/components/newtab/vendor/

# The only file in browser/locales/ is pre-processed.
browser/locales/**
# imported from chromium
browser/extensions/mortar/**
# Generated data files
browser/extensions/formautofill/phonenumberutils/PhoneNumberMetaData.jsm

# devtools/ exclusions
devtools/client/inspector/markup/test/doc_markup_events_*.html
devtools/client/inspector/rules/test/doc_media_queries.html
devtools/client/performance/components/test/test_jit_optimizations_01.html
devtools/client/responsive.html/test/browser/touch.html
devtools/client/shared/test/*.html
devtools/client/shared/test/code_*.js
devtools/client/shared/components/test/mochitest/*.html
!devtools/client/shared/components/test/mochitest/test_stack-trace.html
devtools/client/storage/test/*.html
!devtools/client/storage/test/storage-cookies.html
!devtools/client/storage/test/storage-overflow.html
!devtools/client/storage/test/storage-search.html
!devtools/client/storage/test/storage-unsecured-iframe.html
!devtools/client/storage/test/storage-unsecured-iframe-usercontextid.html
devtools/server/tests/browser/storage-*.html
!devtools/server/tests/browser/storage-unsecured-iframe.html
devtools/server/tests/browser/stylesheets-nested-iframes.html
devtools/client/shared/webpack/shims/test/test_clipboard.html
devtools/shared/qrcode/tests/mochitest/test_decode.html
devtools/shared/tests/mochitest/*.html
devtools/shared/webconsole/test/test_*.html
devtools/client/webreplay/mochitest/examples/*.html
devtools/server/tests/mochitest/test_inspector-inactive-property-helper.html

# Ignore devtools debugger files
# Keep in sync with devtools/client/debugger/.eslintignore
devtools/client/debugger/assets/*
devtools/client/debugger/src/test/examples/**
devtools/client/debugger/src/test/integration/**
devtools/client/debugger/src/test/unit-sources/**
devtools/client/debugger/src/**/fixtures/**
devtools/client/debugger/src/test/mochitest/**
devtools/client/debugger/bin/
devtools/client/debugger/packages/**/fixtures/**
devtools/client/debugger/node_modules
devtools/client/debugger/out

# Ignore devtools debugger files which aren't intended for linting, and also
# aren't included in any .eslintignore or .prettierignore file.
# See https://github.com/firefox-devtools/debugger/blob/master/package.json#L24
devtools/client/debugger/configs/**
devtools/client/debugger/dist/**
devtools/client/debugger/flow-typed/**
devtools/client/debugger/images/**
devtools/client/debugger/test/**
devtools/client/debugger/index.html

# Ignore devtools imported repositories
devtools/client/shared/components/reps/**

# Ignore devtools preferences files
devtools/client/preferences/**
devtools/client/webide/preferences/**
devtools/shared/preferences/**
devtools/startup/preferences/devtools-startup.js

# Ignore devtools generated code
devtools/shared/css/generated/properties-db.js
devtools/client/webconsole/test/fixtures/stubs/*.js
!devtools/client/webconsole/test/fixtures/stubs/index.js

# Ignore devtools third-party libs
devtools/shared/jsbeautify/*
devtools/shared/acorn/*
devtools/shared/node-properties/*
devtools/shared/pretty-fast/*
devtools/shared/sourcemap/*
devtools/shared/sprintfjs/*
devtools/shared/qrcode/decoder/*
devtools/shared/qrcode/encoder/*
devtools/client/inspector/markup/test/lib_*
devtools/client/jsonview/lib/require.js
devtools/client/shared/demangle.js
devtools/client/shared/source-map/*
devtools/client/shared/vendor/*
devtools/client/shared/sourceeditor/codemirror/*.js
devtools/client/shared/sourceeditor/codemirror/**/*.js
devtools/client/shared/sourceeditor/tern/*
devtools/client/shared/sourceeditor/test/cm_mode_ruby.js
devtools/client/shared/sourceeditor/test/codemirror/*
devtools/server/actors/utils/automation-timeline.js

# Ignore devtools files testing sourcemaps / code style
devtools/client/debugger/test/mochitest/code_*.js
devtools/client/framework/test/code_*
devtools/client/inspector/markup/test/events_bundle.js
devtools/client/netmonitor/test/xhr_bundle.js
devtools/client/webconsole/test/mochitest/code_bundle_nosource.js
devtools/client/webconsole/test/mochitest/code_bundle_invalidmap.js
devtools/server/tests/unit/babel_and_browserify_script_with_source_map.js
devtools/server/tests/unit/setBreakpoint*
devtools/server/tests/unit/sourcemapped.js

# devtools specific format test file
devtools/server/tests/unit/xpcshell_debugging_script.js

# Third-party
dom/canvas/test/webgl-conf/**
dom/imptests/**
dom/media/webaudio/test/blink/**
dom/media/webvtt/**
dom/svg/test/test_nonAnimStrings.xhtml
dom/svg/test/test_SVG_namespace_ids.html

# Strange encodings
dom/base/test/file_bug687859-16.js
dom/encoding/test/test_utf16_files.html
dom/encoding/test/file_utf16_be_bom.js
dom/encoding/test/file_utf16_le_bom.js

# Not parsable
dom/tests/mochitest/general/test_focusrings.xul
dom/html/test/test_bug677658.html

# Intentional broken files
dom/base/test/file_js_cache_syntax_error.js
dom/base/test/jsmodules/test_syntaxError.html
dom/base/test/jsmodules/test_syntaxErrorAsync.html
dom/base/test/jsmodules/module_badSyntax.js
dom/base/test/jsmodules/test_syntaxErrorInline.html
dom/base/test/jsmodules/test_syntaxErrorInlineAsync.html
dom/base/test/test_bug687859.html
dom/media/tests/mochitest/identity/idp-bad.js
dom/serviceworkers/test/file_js_cache_syntax_error.js
dom/serviceworkers/test/parse_error_worker.js
dom/tests/mochitest/bugs/test_bug531176.html
dom/webauthn/tests/cbor.js
dom/workers/test/importScripts_worker_imported3.js
dom/workers/test/invalid.js
dom/workers/test/threadErrors_worker1.js

# Third-party
editor/libeditor/tests/browserscope/**

# Third-party
gfx/ots/**
gfx/skia/**
gfx/wr/**

# intl/ exclusions
intl/icu/**
intl/locale/**
intl/strres/**
intl/uconv/**
# Bug 1527075: This directory is linted in github repository
intl/l10n/**

# Third-party
layout/mathml/imptests/**

# Exclude everything but self-hosted JS
js/ductwork/**
js/examples/**
js/ipc/**
js/public/**
js/xpconnect/**
js/src/devtools/**
js/src/octane/**
js/src/jit-test/**
js/src/jsapi-tests/binast/**
js/src/tests/**
js/src/Y.js

# Third-party
media/webrtc/trunk/**

# mobile/android/ exclusions
mobile/android/tests/browser/chrome/tp5/**

# Uses `#filter substitution`
mobile/android/app/mobile.js
mobile/android/app/geckoview-prefs.js

# Uses `#expand`
mobile/android/chrome/content/about.js

# Not much JS to lint and non-standard at that
mobile/android/installer/
mobile/android/locales/

# Pre-processed/pref files
modules/libpref/greprefs.js
modules/libpref/init/all.js
modules/libpref/test/unit/*data/**

# Only contains non-standard test files.
python/**

# Remote agent
remote/pref/remote.js
remote/Protocol.jsm
remote/server/HTTPD.jsm
remote/server/Packet.jsm
remote/server/Socket.jsm
remote/server/Stream.jsm
remote/test/browser/chrome-remote-interface.js
remote/test/demo.js

# security/ exclusions (pref files).
security/manager/ssl/security-prefs.js

# NSS / taskcluster only.
security/nss/**

# services/ exclusions

# Third party services
services/common/kinto-http-client.js
services/common/kinto-offline-client.js

# Webpack-bundled library
services/fxaccounts/FxAccountsPairingChannel.js

# Uses `#filter substitution`
services/sync/modules/constants.js
services/sync/services-sync.js

# Servo is imported.
servo/**

# Remote protocol exclusions
testing/marionette/atom.js
testing/marionette/legacyaction.js
testing/marionette/client
testing/marionette/doc
testing/marionette/harness

# other testing/ exclusions
# third party modules
testing/mochitest/tests/Harness_sanity/**
testing/mochitest/MochiKit/**
testing/mochitest/tests/MochiKit-1.4.2/**
testing/mochitest/tests/SimpleTest/**
testing/modules/ajv-4.1.1.js
testing/modules/sinon-7.2.7.js
# octothorpe used for pref file comment causes parsing error
testing/mozbase/mozprofile/tests/files/prefs_with_comments.js
testing/talos/talos/scripts/jszip.min.js
testing/talos/talos/startup_test/sessionrestore/profile/sessionstore.js
testing/talos/talos/startup_test/sessionrestore/profile-manywindows/sessionstore.js
testing/talos/talos/tests/devtools/addon/content/pages/**
testing/talos/talos/tests/dromaeo/**
testing/talos/talos/tests/v8_7/**
testing/talos/talos/tests/kraken/**
# Runing Talos may extract data here, see bug 1435677.
testing/talos/talos/tests/tp5n/**
# Raptor third party
testing/raptor/raptor/playback/scripts/catapult/**

testing/web-platform/**
testing/xpcshell/moz-http2/**
testing/xpcshell/node-http2/**
testing/xpcshell/dns-packet/**
testing/xpcshell/node-ip/**


# Third party.
third_party/**

# toolkit/ exclusions

# Ignore generated code from wasm-bindgen
toolkit/components/extensions/profiler_get_symbols.js

# Intentionally invalid JS
toolkit/components/workerloader/tests/moduleF-syntax-error.js

# External code:
toolkit/components/reader/Readability.js
toolkit/components/reader/JSDOMParser.js

# Uses preprocessing
toolkit/components/reader/Readerable.jsm

# Uses preprocessing
toolkit/mozapps/update/tests/data/xpcshellConstantsPP.js
toolkit/modules/AppConstants.jsm

# Tests old non-star function generators
toolkit/modules/tests/xpcshell/test_task.js

# Third party
toolkit/modules/third_party/**

tools/tryselect/selectors/chooser/templates/chooser.html

# Ignore preprocessed *(P)refs.js files in update-packaging.
tools/update-packaging/**/*refs.js