mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
Previously all browser globals were allowed to be used anywhere by ESLint because we had set the `env` property to `browser` in the ESLint config. This has made it easy to accidentally use browser globals (e.g. #8338), so it has been removed. Instead we now have a short list of allowed globals. All browser globals are now accessed as properties on `window`. Unfortunately this change resulted in a few different confusing unit test errors, as some of our unit tests setup assumed that a particular global would be used via `window` or `global`. In particular, `window.fetch` didn't work correctly because it wasn't patched by the AbortController polyfill (only `global.fetch` was being patched). The `jsdom-global` package we were using complicated matters by setting all of the JSDOM `window` properties directly on `global`, overwriting the `AbortController` for example. The `helpers.js` test setup module has been simplified somewhat by removing `jsdom-global` and constructing the JSDOM instance manually. The JSDOM window is set on `window`, and a few properties are set on `global` as well as needed by various dependencies. `node-fetch` and the AbortController polyfill/patch now work as expected as well, though `fetch` is only available on `window` now. |
||
---|---|---|
.. | ||
build | ||
states | ||
announcer.js | ||
auto-changelog.sh | ||
backGroundConnectionModifiers.js | ||
generate-migration.sh | ||
genStates.js | ||
gource-viz.sh | ||
index.html | ||
metamaskbot-build-announce.js | ||
mock-3box.js | ||
mock-dev.js | ||
README.md | ||
require-react-devtools.js | ||
run-ganache | ||
selector.js | ||
sentry-publish.js | ||
sentry-upload-artifacts.sh | ||
shellcheck.sh | ||
show-deps-install-scripts.js | ||
source-map-explorer.sh | ||
sourcemap-validator.js | ||
static-server.js | ||
test.html | ||
verify-locale-strings.js |
Development
Several files which are needed for developing on(!) MetaMask.
Usually each files contains information about its scope / usage.