Previously the handling for the IO thread was split between
BrowserProcessSubThread (a replication of the background thread infrastructure
used by Chromium during the IPC import, which is only used for the IO thread in
Gecko), and IOThreadChild (a wrapper around ChildThread, which was imported
from Chromium's source).
This meant that there was little code-sharing between the parent and child
processes, and that the lifecycle of the IO thread was perhaps less clear.
This refactors the code to centralize handling of these threads, and provide a
basic common interface. At the moment, actually hooking up async IO listeners
is still done using the Chromium interfaces.
Differential Revision: https://phabricator.services.mozilla.com/D227739
Mac OS Sequoia added a Local Network permission. It's very easy for users
to accidentally dismiss this vague prompt and then be confused when trying
to load a local web page.
This patch adds a warning message to the error page on OSX instructing
users to check the permissions.
Differential Revision: https://phabricator.services.mozilla.com/D228576
Generate and read ktlintFormat report instead of ktlint when running `./mach lint -l android-{fenix|focus|ac} --fix}` to accurately report the existing errors/warnings
Also fixes the issue where running AC linter from fenix directory would immediately output ✖ 0 problems (0 errors, 0 warnings, 0 fixed) without running the linter but the linter would run normally if run from root folder or AC subdirectory
Differential Revision: https://phabricator.services.mozilla.com/D226850
This patch fixes an issue where the suite-level description error wasn't being output. Instead of using the manifest from the yaml for this error, we'll output the failure to all changed files. Some additional changes are made for mozperftest to handle tests with periods in their names.
Differential Revision: https://phabricator.services.mozilla.com/D227378
This was accidentally disabled in bug 1920531 with the re-organisation of how eslint-plugin-mozilla worked.
The rule needs to be (re)enabled after eslint-config-prettier is applied, as eslint-config-prettier turns it off by default.
Differential Revision: https://phabricator.services.mozilla.com/D227621
This provides additional "flat/...." configurations which work with the flat config of ESLint. The changes in recommended.js make it easier to handle the two different types of configuration. The changes in index.js are to ensure that the resultant configurations are correct for legacy or flat configs. The index.js changes also inject the plugin object back into itself, as required by ESLint.
Once we have switched mozilla-central to flat configuration, we can drop support for the legacy config.
Differential Revision: https://phabricator.services.mozilla.com/D225705
This makes it easier for subscribers of eslint-plugin-mozilla to use it more generally as a set of recommended
rules. The only environment definitions are for mozilla-specific file types, where we should be safe to specify
them.
Differential Revision: https://phabricator.services.mozilla.com/D225704
This patch fixes an issue where having `skip-if` defined in the test manifests would prevent perfdocs from finding the test even though it exists.
Differential Revision: https://phabricator.services.mozilla.com/D225696
In addition to upgrding our Stylelint packages, this patch also introduces the @stylistic/stylelint-plugin to preserve a number of rules that were completely removed in v16. It also migrates the code for the custom plugin introduced in bug 1838298 to ES Modules.
Differential Revision: https://phabricator.services.mozilla.com/D224250
This patch turns the various nsIGfxInfo::FEATURE_* constants into macros
that can be included to generate C++ code at runtime. This has been done
to automatically generate the necessary bindings for the downloadable
blocklist. This way we will never miss adding the necessary
prerequisities as we have in the past.
Differential Revision: https://phabricator.services.mozilla.com/D224056
This patch lays the foundation for a Mozilla-specific Stylelint plugin that we can continue to expand on with new rules as needed. For the first rule I've implemented a simple check to ensure our color tokens are being used as intended.
Differential Revision: https://phabricator.services.mozilla.com/D223204
Requiring these in eslint-plugin-mozilla seems a bit unnecessary:
* The html plugin is used as a parser and is only required if a project is parsing html.
* Similary, we use the recommended config for the JSON parser, and it only applies for JSON files.
* The prettier option is only required if a project wants to use prettier. Whilst I think we should have prettier for all Mozilla projects, I don't think we need to enforce/require it here.
Differential Revision: https://phabricator.services.mozilla.com/D222628
Switched to library mode for generating bindings.
Updated our strategy for UniFFI components/fixtures. There's now a
crate for components and a crate for fixtures. These crates are a
dependency of gkrust-shared and also built as standalone libraries which
UniFFI uses to generate the bindings.
One upshot of this is that we no longer need the `crate_name` or
`udl_file` config values. library-mode can figure out the udl paths
automatically.
Differential Revision: https://phabricator.services.mozilla.com/D221824