This builds on top of the work in bug 1775062, by using this new signature
everywhere, including IPDL struct members and in/outparams for IPDL messages.
This is done with relatively minimal changes by using two bindings, one of
which is a reference.
Differential Revision: https://phabricator.services.mozilla.com/D168880
This will be useful after part 3 where it will be used as part of implementing
Read based on Maybe for IPDL structs. Without this change, we'd need to copy to
construct an IPDL struct containing a non-default-constructable type.
Differential Revision: https://phabricator.services.mozilla.com/D169268
This combines the multiple fields or variants which were previously used to
track sided types like protocol types into a single field wrapped with a
SideVariant.
This will be used in the next part to avoid the need for default constructors
for actor types allowing the proper types to be used.
Differential Revision: https://phabricator.services.mozilla.com/D168879
After bug 1809084, the popup positioning code became more sound,
including reliably positioning once after opening.
This code was asynchronously reducing the size of the popup, sometimes
after popup positioning.
Which means that if the popup had to slide (due to having many one-off
buttons), and we then shrunk it, the popup would be mispositioned.
There's no reason the getBoundsWithoutFlushing call has to be async
afaict, so just size the popup up-front.
Differential Revision: https://phabricator.services.mozilla.com/D172928
This patch adds the ability to run manual logins for our websites since it can be simpler, and quicker in some cases. At the same time, a bug with the options handling is fixed.
Differential Revision: https://phabricator.services.mozilla.com/D164590
That gets the right behavior even with flex-shrink: 1. An alternative
would be to also set flex-shrink: 0, but I don't see how this min-height
is useful so may as well remove code. Either way.
Depends on D172767
Differential Revision: https://phabricator.services.mozilla.com/D172768
`DNRStore`'s `#getManifestStaticRulesets` method is currently using `extension.readJSON` to load the JSON files
for the DNR static rulesets enabled, but internally `extension.readJSON` calls `String.prototype.replace` with
a regular expression to remove inline comments from the JSON files data retrieved and that have a noticebeable
impact due to the size that the DNR rulesets size may likely have (especially compared to the usual size of
manifest.json and locale files may have).
Given that Chrome doesn't support inline comments in DNR rulesets, we can consider replacing the call to
`extension.readJSON` with `fetch`, which wouldn't allow inline comments in the rulesets JSON files but
it would have a smaller impact due to not going through a call to `String.prototype.replace` and through
the js RegExp evaluations.
Alternatively we may consider keeping the call to `extension.readJSON` but tweak it to make sure we opt
out from the call to `String.prototype.replace` for this particular call (by also tweaking readJSON
method to allow that).
Differential Revision: https://phabricator.services.mozilla.com/D172604
Otherwise the compiler tries to instantiate the generic version based on
its current architecture flags, which may not be enough, resulting in
error along those lines:
'xsimd::batch<float, xsimd::neon> vgainr' has incomplete type
Differential Revision: https://phabricator.services.mozilla.com/D172864
This is enabling the PLE and PLC rules across a much larger swatch of the code
base. The PLR and PLW are additionally enabled at the warning level (introduces
~2500 new warnings).
To avoid extraneous changes in people's patches, rules at the warning level are
excluded from --fix.
Differential Revision: https://phabricator.services.mozilla.com/D172358
This results in some changes from our current `isort` configuration. I'm
unclear if it's because ruff isn't at 100% parity with isort, they choose
different defaults or if I missed some configuration.
Either way, the changes all look reasonable to me (see child commit), so I'm
inclined to just accept the new import format it imposes.
Differential Revision: https://phabricator.services.mozilla.com/D172348
Ruff is a very fast linter implemented in Rust and it can act as a drop-in
replacement for flake8. When running the same set of rules across all files
in mozilla-central (without mozlint), flake8 takes 900 seconds whereas ruff
takes 0.9 seconds.
Ruff also implements rules from other popular Python linters such as pylint,
isort and pyupgrade. There are even plans to implement feature parity with
black in the future. Ultimately, it can become our one stop shop for all Python
linting and formatting.
This stack will swap out all our Python lint tools for ruff (excluding black
for now).
Differential Revision: https://phabricator.services.mozilla.com/D172313
- Create wheel transactions for wheel events handled by APZ.
- Group wheel events with the current wheel transaction, so that all
wheel events in a wheel transaction are fired to the same element.
- Store the current event target for the first event in a wheel
transaction to be used for subsequent events.
- Add the dom.event.wheel-event-groups.enabled preference as a feature
flag for this behavior.
Differential Revision: https://phabricator.services.mozilla.com/D163484
Since visibility: collapse can still end up with a non-zero size for
e.g., padding and so. display: none is a better fit for this.
I noticed this while investigating the overflow mentioned in the
previous patch.
Differential Revision: https://phabricator.services.mozilla.com/D172935
There are two bugs here:
* We're sizing the popup in a way such as there's a <1px scroll range,
even though there's space to position the popup in the screen without
it. That's a layout bug I'll look into.
* When you hit that situation, we never detect that we're scrolled to
the end (because we have overflow and we're scrolled to the start
even when scrolled to the end as well).
This patch fixes the second. As per above it's not a complete fix, but
it needs fixing as well, hypothetically you could've hit this with
enough bookmarks to just hit the screen, plus 1 pixel.
I'll look into the first bug too.
Differential Revision: https://phabricator.services.mozilla.com/D172933