Note that although this builds, it would (by itself) result in some test breakage;
this is resolved in the following patches that build on this.
Differential Revision: https://phabricator.services.mozilla.com/D198790
Note that although this builds, it would (by itself) result in some test breakage;
this is resolved in the following patches that build on this.
Differential Revision: https://phabricator.services.mozilla.com/D198790
* Move the manual code outside the auto-generated animated_properties
file.
* Treat unregistered custom properties and universal-syntax properties
the same.
* A void a bunch of copy-pasta and extra unnecessary clone() calls.
* Fix animations with mismatched multipliers, custom property names,
etc. This isn't really testable, since afaict you can't create such
an animation (maybe if you override the registration dynamically?),
but seems better for consistency.
Differential Revision: https://phabricator.services.mozilla.com/D199365
Note that although this builds, it would (by itself) result in some test breakage;
this is resolved in the following patches that build on this.
Differential Revision: https://phabricator.services.mozilla.com/D198790
Dependencies between custom properties and font-* properties are
resolved in bug 1855110, so these TODOs for bug 1856522 can be removed.
Differential Revision: https://phabricator.services.mozilla.com/D199208
Resolution of such custom properties (And other properties depending on them)
must take place after font-related properties (Which are prioritary) are
resolved. Resolution of custom properties is therefore split into two phases,
before and after prioritary properties are resolved.
Differential Revision: https://phabricator.services.mozilla.com/D196195
Registered custom properties may utilize font-relative units such as `em`,
`ex`, etc. Font-related properties (More with `calc()` unit algebra), in
turn, may refer to such registered custom properties, leading to a cycle
(Note, unregistered properties are effectively copy-pastes, so it does not
suffer from this issue).
This patch:
1. Defers computation of registstered custom properties using font-relative
units
2. Keeps track of custom properties utilizing font-relative units
3. Keeps track of non-custom, font-related properties making variable
references
4. Expands the cycle detection to non-custom properties
Because of 1, this patch causes registered custom property using
font-relative units to resolve as if they're unregistered - this will be
addressed in the next patch.
Differential Revision: https://phabricator.services.mozilla.com/D196194
This implements a similar optimization as WebKit's, see the bug comment.
This should be specially useful for sites with lots of custom
properties.
This is a high-confidence win on this speedometer subtest:
* 1.9x faster in style updates.
* 4.2x faster in layout object destruction (we no longer free the huge
custom properties map).
* Also speeds up paint and layout a bit, probably from less memory
churn.
Differential Revision: https://phabricator.services.mozilla.com/D198308
After the regressing bug, first-line reparenting starts off with the
to-be-reparented style, so the display value is already the expected
(grid) rather than block.
Differential Revision: https://phabricator.services.mozilla.com/D197251
-moz-window-shadow is a chrome-only property (not exposed to the web),
and chrome stylesheets only use the none value to disable the default
behavior.
Split the style property (default/none) from the actual widget behavior.
This is useful because I want to add a distinction between
natively-styled menupopups and other panels in the following commit.
While at it rename default to "auto" which is a more common name in CSS
for something like this.
We have no use case for removing the shadow of a top-level window, so
remove it to simplify the code.
Differential Revision: https://phabricator.services.mozilla.com/D197454
-moz-user-focus: none didn't do anything useful for non-XUL until
bug 1868552. It seems nonetheless some sites specify it, which can cause
compat issues.
Let's hide this property from content, to avoid breaking those sites.
Differential Revision: https://phabricator.services.mozilla.com/D197253
1.76 added a warning when comparing pointers with metadata (e.g. a size
or trait vtable), and suggests to use explicit comparisons, either
std::ptr::addr_eq to only compare the address or std::ptr::eq to compare
address + metadata.
The current semantics of Arc::ptr_eq are to compare address + metadata,
but the intended semantics are to compare the address. So we do that.
Differential Revision: https://phabricator.services.mozilla.com/D197275
-moz-user-focus: none didn't do anything useful for non-XUL until
bug 1868552. It seems nonetheless some sites specify it, which can cause
compat issues.
Let's hide this property from content, to avoid breaking those sites.
Differential Revision: https://phabricator.services.mozilla.com/D197253
This got reviewed as part of D196842 (see diff 801914), but I rebased
before landing in a tree that didn't have that change.
MANUAL PUSH: Orange fix CLOSED TREE
Make NonCustomPropertyId an u16 (because it can, and it's more compact),
and use arrays for ShorthandId::longhands and LonghandId::shorthands.
Differential Revision: https://phabricator.services.mozilla.com/D196759