mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-03 02:25:34 +00:00
22d4bb0074
Most of the ReaderMode.jsm and Readability.js code is only needed when we actually need to render a document in reader mode, but also winds up loaded into any process where we ever check if a page is readerable. This winds up wasting a huge amount of memory (and probably a huge amount of CPU time) loading code which is almost never used. This patch splits ReaderMode.jsm into two modules, one for checking readability, one for actually entering reader mode. It also separates out the isProbablyReaderable checks from Readability.js, since the overhead of loading that script before it's needed is unsupportable. This means we're probably going to need some effort to keep Readerable.jsm and Readability.js in sync, but the code in question is pretty trivial, so it shouldn't be too difficult. Differential Revision: https://phabricator.services.mozilla.com/D3687 --HG-- rename : toolkit/components/reader/Readability.js => toolkit/components/reader/Readability-readerable.js rename : toolkit/components/reader/ReaderMode.jsm => toolkit/components/reader/Readerable.js extra : rebase_source : 66712057591ae20dd66234e3dc78fbba90a6914e extra : amend_source : f908f62f49ea54b9099ddb87d9f2fc11f12d4dee
381 lines
10 KiB
Plaintext
381 lines
10 KiB
Plaintext
# 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/**
|
|
|
|
# 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/**
|
|
editor/**
|
|
extensions/cookie/**
|
|
extensions/spellcheck/**
|
|
extensions/universalchardet/**
|
|
gfx/layers/**
|
|
gfx/tests/browser/**
|
|
gfx/tests/chrome/**
|
|
gfx/tests/mochitest/**
|
|
image/**
|
|
layout/**
|
|
memory/replace/dmd/test/**
|
|
modules/**
|
|
netwerk/base/NetUtil.jsm
|
|
netwerk/cookie/test/browser/**
|
|
netwerk/cookie/test/unit/**
|
|
netwerk/protocol/**
|
|
netwerk/dns/**
|
|
netwerk/test/browser/**
|
|
netwerk/test/httpserver/**
|
|
netwerk/test/mochitests/**
|
|
netwerk/test/unit*/**
|
|
netwerk/wifi/**
|
|
parser/**
|
|
tools/update-packaging/**
|
|
uriloader/exthandler/**
|
|
uriloader/exthandler/tests/mochitest/**
|
|
widget/headless/tests/**
|
|
widget/tests/**
|
|
|
|
# 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/**
|
|
xpfe/**
|
|
|
|
# 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/extensions/pocket/content/panels/js/tmpl.js
|
|
browser/extensions/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/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
|
|
|
|
# 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
|
|
|
|
# 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/abort/**
|
|
dom/animation/**
|
|
dom/asmjscache/**
|
|
dom/audiochannel/**
|
|
dom/base/**
|
|
dom/battery/**
|
|
dom/bindings/**
|
|
dom/broadcastchannel/**
|
|
dom/browser-element/**
|
|
dom/cache/test/mochitest/**
|
|
dom/cache/test/xpcshell/**
|
|
dom/canvas/**
|
|
dom/commandhandler/**
|
|
dom/console/**
|
|
dom/crypto/**
|
|
dom/encoding/**
|
|
dom/events/**
|
|
dom/fetch/**
|
|
dom/file/**
|
|
dom/filehandle/**
|
|
dom/filesystem/**
|
|
dom/flex/**
|
|
dom/gamepad/**
|
|
dom/geolocation/**
|
|
dom/grid/**
|
|
dom/html/**
|
|
dom/imptests/**
|
|
dom/interfaces/**
|
|
dom/ipc/**
|
|
dom/jsurl/**
|
|
dom/locales/**
|
|
dom/manifest/**
|
|
dom/mathml/**
|
|
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/unit/**
|
|
dom/notification/test/mochitest/**
|
|
dom/offline/**
|
|
dom/payments/**
|
|
dom/performance/**
|
|
dom/permission/**
|
|
dom/plugins/test/mochitest/**
|
|
dom/plugins/test/unit/**
|
|
dom/power/**
|
|
dom/promise/**
|
|
dom/push/**
|
|
dom/quota/**
|
|
dom/res/**
|
|
dom/security/test/cors/**
|
|
dom/security/test/csp/**
|
|
dom/security/test/general/**
|
|
dom/security/test/mixedcontentblocker/**
|
|
dom/security/test/sri/**
|
|
dom/security/test/unit/**
|
|
dom/serviceworkers/**
|
|
dom/smil/**
|
|
dom/storage/**
|
|
dom/svg/**
|
|
dom/system/**
|
|
dom/tests/browser/**
|
|
dom/tests/html/**
|
|
dom/tests/js/**
|
|
dom/tests/mochitest/**
|
|
dom/tests/unit/**
|
|
dom/u2f/**
|
|
dom/url/**
|
|
dom/vr/**
|
|
dom/webauthn/**
|
|
dom/webbrowserpersist/**
|
|
dom/webgpu/**
|
|
dom/webidl/**
|
|
dom/websocket/**
|
|
dom/workers/**
|
|
dom/worklet/**
|
|
dom/xbl/**
|
|
dom/xhr/**
|
|
dom/xml/**
|
|
dom/xslt/**
|
|
dom/xul/**
|
|
|
|
# Third-party
|
|
dom/media/webvtt/**
|
|
|
|
# Third-party
|
|
gfx/ots/**
|
|
gfx/skia/**
|
|
|
|
# intl/ exclusions
|
|
intl/icu/**
|
|
intl/locale/**
|
|
intl/strres/**
|
|
intl/uconv/**
|
|
|
|
# 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
|
|
|
|
# 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/microformats/test/**
|
|
toolkit/components/microformats/microformat-shiv.js
|
|
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
|
|
|
|
# Third party
|
|
toolkit/modules/third_party/**
|
|
third_party/**
|