.eslintignore
author Jan Henning <jh+bugzilla@buttercookie.de>
Thu, 07 Feb 2019 20:41:16 +0000
changeset 512996 95b884dcbd6f001b990a6353980280050fab9ac6
parent 511995 62947b5b105bb61f1875b98671ddfda082980356
child 515586 a291f111e24e9fa36e03823040fd3350a58067a3
permissions -rw-r--r--
Bug 1496684 - Dispatch commonly expected startup notifications when opening a GeckoView window. r=snorp a=lizzard Once a webextension using a blocking WebRequest listener has started loading, all network connections covered by the extension's manifest are held until the extension is ready the process them. One condition for the extension being ready apparently includes browser startup having progressed far enough, as signified by "browser-delayed-startup-finished" having been dispatched. Therefore, we have to start sending that notification when opening a new Gecko- View window, too, and copy Fennec's InitLater() system for that. Unlike Fennec, we cannot tie registration of those InitLater() runnables to the initial content load having progressed far enough because of a) e10s, which makes that approach neither easily possible nor really sensible, as content will load in a different process in that case, and b) because we're racing with extension startup here - if extensions are loaded quick enough to block even the initial page load, we'd be deadlocked: We cannot send the notification until the page finishes loading, but the page cannot load until we send the notification. Fennec isn't affected by the latter problem because "sessionstore-windows-restored", which Fennec will send in any case, serves as an alternative pathway for completing extension startup. And unlike Desktop, we don't really have any chrome content to paint, so we cannot tie delayed initialisation to a paint listener for that, either. Therefore, we simply fire off a runnable at the *end* of geckoview.js's startup() method, which should give more pressing initialisation tasks enough of a headstart. For completeness, we're also adding the "browser-idle-startup-tasks-finished" notification and thereby solve bug 1465832 as well, allowing the ScriptPreloader to detect which scripts are commonly loaded during GeckoView startup and to start caching and pre-parsing them. Differential Revision: https://phabricator.services.mozilla.com/D18865

# 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*/**

# We ignore all these directories by default, until we get them enabled.
# If you are enabling a directory, please add directory specific exclusions
# below.
docshell/test/browser/**
docshell/test/iframesandbox/**
docshell/test/mochitest/**
extensions/cookie/**
extensions/spellcheck/**
extensions/universalchardet/**
image/**
layout/**
modules/**
netwerk/cookie/test/browser/**
netwerk/test/browser/**
netwerk/test/mochitests/**
netwerk/test/unit*/**
tools/update-packaging/**
uriloader/exthandler/**
uriloader/exthandler/tests/mochitest/**
widget/headless/tests/**
widget/tests/**
xpfe/**

# We currently have no js files in these directories, so we ignore them by
# default to aid ESLint's performance.
build/**
config/**
db/**
embedding/**
gradle/**
hal/**
mfbt/**
mozglue/**
nsprpub/**
other-licenses/**
startupcache/**

# These directories only contain crashtests, but we still skip the whole
# directory to aid performance.
view/**

# 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
# 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/**
# Activity Stream has incompatible eslintrc. `npm run lint` from its directory
browser/components/newtab/**
# 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

# Soon to be removed, the new/ directory is explicitly excluded below due to
# also being an imported repository.
devtools/client/debugger/**

# Ignore devtools imported repositories
devtools/client/debugger/new/**
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/sourceeditor/codemirror/*.js
devtools/client/sourceeditor/codemirror/**/*.js
devtools/client/sourceeditor/tern/*
devtools/client/sourceeditor/test/cm_mode_ruby.js
devtools/client/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

# dom/ exclusions
dom/animation/**
dom/base/*.*
dom/base/test/*.*
dom/base/test/unit/test_serializers_entities*.js
dom/base/test/unit_ipc/**
dom/base/test/jsmodules/**
dom/bindings/**
dom/browser-element/**
dom/cache/test/mochitest/**
dom/cache/test/xpcshell/**
dom/canvas/**
dom/encoding/**
dom/events/**
dom/fetch/**
dom/file/**
dom/flex/**
dom/grid/**
dom/html/**
dom/jsurl/**
dom/media/test/**
dom/media/tests/**
dom/media/webaudio/**
dom/media/webspeech/**
dom/messagechannel/**
dom/midi/**
dom/network/**
dom/notification/Notification*.*
dom/notification/test/browser/**
dom/notification/test/mochitest/**
dom/payments/**
dom/performance/**
dom/permission/**
dom/plugins/test/mochitest/**
dom/plugins/test/unit/**
dom/promise/**
dom/push/**
dom/quota/**
dom/security/test/cors/**
dom/security/test/csp/**
dom/security/test/general/**
dom/security/test/mixedcontentblocker/**
dom/security/test/sri/**
dom/serviceworkers/**
dom/smil/**
dom/svg/**

dom/tests/html/**
dom/tests/mochitest/**
dom/u2f/**
dom/url/**
dom/vr/**
dom/webauthn/**
dom/webgpu/**
dom/websocket/**
dom/workers/**
dom/worklet/**
dom/xbl/**
dom/xhr/**
dom/xml/**
dom/xslt/**
dom/xul/**

# Third-party
dom/canvas/test/webgl-conf/**
dom/imptests/**
dom/media/webaudio/test/blink/**
dom/media/webvtt/**

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

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

# intl/ exclusions
intl/icu/**
intl/locale/**
intl/strres/**
intl/uconv/**

# 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/

# Non-standard `(catch ex if ...)`
mobile/android/chrome/content/browser.js

# 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/**

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

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

# services/ exclusions

# 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-2.3.2.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/**

testing/web-platform/**
testing/xpcshell/moz-http2/**
testing/xpcshell/node-http2/**

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

# toolkit/ exclusions

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

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

# External code:
browser/components/payments/res/vendor/*
toolkit/components/reader/Readability.js
toolkit/components/reader/JSDOMParser.js

# Uses preprocessing
toolkit/components/reader/Readerable.jsm
toolkit/content/widgets/wizard.xml
toolkit/modules/AppConstants.jsm
toolkit/mozapps/update/tests/data/xpcshellConstantsPP.js
tools/tryselect/selectors/chooser/templates/chooser.html

# Third party
toolkit/modules/third_party/**
third_party/**