Граф коммитов

13717 Коммитов

Автор SHA1 Сообщение Дата
Tim Nguyen 1b7ef862e8 Bug 1679714 - Remove layout.css.conic-gradient.enabled preference. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D98126
2020-11-30 12:45:14 +00:00
Sunita Sen 663194d7fc Bug 1329241 - Add support for touch-action:pinch-zoom - Add pinch-zoom support to touchAction r=kats,emilio
Differential Revision: https://phabricator.services.mozilla.com/D97815
2020-11-24 13:33:51 +00:00
Sunita Sen 6542f9d999 Bug 1329241 - Add support for touch-action:pinch-zoom - Rewrite to_css and parse for touchAction r=kats,emilio
Differential Revision: https://phabricator.services.mozilla.com/D97650
2020-11-23 01:40:21 +00:00
Emilio Cobos Álvarez 9037439373 Bug 1678881 - Run latest rustfmt in servo/. r=xidorn
Differential Revision: https://phabricator.services.mozilla.com/D97855
2020-11-22 00:41:29 +00:00
Emilio Cobos Álvarez 31a5bb70b4 Bug 1678881 - Avoid some allocations in selector serialization. r=xidorn
The allocations in display_to_css_identifier show up in the profiles of
bug 1675628.

Differential Revision: https://phabricator.services.mozilla.com/D97856
2020-11-22 01:02:22 +00:00
Boris Chiou d494534798 Bug 1651776 - Move Compute{Inline|Block}SizeFromAspectRatio() into AspectRatio struct. r=TYLin
We add a new file, AspectRatio.cpp, to definte the method,
ComputeRatioDependentSize. So we don't have to move this function to
WritingModes.h

Besides, we miss the forward declaration of IPC::ParamTraits, so add it
into AspectRatio.h.

Differential Revision: https://phabricator.services.mozilla.com/D95822
2020-11-20 22:38:36 +00:00
Emilio Cobos Álvarez 5716498fbd Bug 1677073 - Update in-tree version of env_logger. r=janerik
Also update plist to avoid pulling a duplicate humantime version.

Differential Revision: https://phabricator.services.mozilla.com/D96995
2020-11-19 14:03:43 +00:00
Tim Nguyen eb259473ce Bug 1525737 - Remove support for XUL grid display values. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D53297
2020-11-17 01:20:33 +00:00
David Parks 1e71ef1cb8 Bug 1675349: Replace plugin behavior with a basic fallback r=jmathies,mixedpuppy
The browser currently only enables plugin behavior for Flash and our internal test plugins.  This patch replaces support for those plugins with a simple fallback that shows a transparent region where the plugin would have been.  It removes the file system search(es) for the plugin dynamic libraries and short-circuits the logic to determine if plugins should do something special -- all implementations now behave the same in the presence of plugin elements.

The new behavior is:
1. If the <object> or <embed> element lists a type of something other than "x-shockwave-flash" or "x-test" then the behavior is unchanged.  This means that non-plugin types behave properly and unknown types (for example, typos) are also unaffected (they reduce to 0x0 elements).
2. If the <object> element has an HTML fallback in the DOM (see spec for <object> elements) then the fallback is always shown.
3. Otherwise, the element is shown as a transparent region with the size specified in attributes.

Differential Revision: https://phabricator.services.mozilla.com/D95902
2020-11-18 15:55:34 +00:00
Bogdan Tara 56346a0425 Backed out 19 changesets (bug 1675349) for lint failures on browser_ext_browsingData_pluginData and test_archive CLOSED TREE
Backed out changeset 244e0f2b410c (bug 1675349)
Backed out changeset ba5724069dd4 (bug 1675349)
Backed out changeset 37fca259c7e9 (bug 1675349)
Backed out changeset f2b16caca1fc (bug 1675349)
Backed out changeset 28835d4935be (bug 1675349)
Backed out changeset eb913f58953a (bug 1675349)
Backed out changeset 19e3cb80f469 (bug 1675349)
Backed out changeset d9723f3a3a7e (bug 1675349)
Backed out changeset c888dfcdf70e (bug 1675349)
Backed out changeset 48f153341af6 (bug 1675349)
Backed out changeset 7fc67a9b2932 (bug 1675349)
Backed out changeset 1cee4d97f801 (bug 1675349)
Backed out changeset 59a0cb79c7c1 (bug 1675349)
Backed out changeset 43d349fa37b1 (bug 1675349)
Backed out changeset c84bfb6eae59 (bug 1675349)
Backed out changeset 38e9af69ae57 (bug 1675349)
Backed out changeset 3255c1ab3059 (bug 1675349)
Backed out changeset 2f3eaf9c342c (bug 1675349)
Backed out changeset 769e5c0db4c2 (bug 1675349)
2020-11-18 06:06:36 +02:00
David Parks ca8ad84d31 Bug 1675349: Replace plugin behavior with a basic fallback r=jmathies,mixedpuppy
The browser currently only enables plugin behavior for Flash and our internal test plugins.  This patch replaces support for those plugins with a simple fallback that shows a transparent region where the plugin would have been.  It removes the file system search(es) for the plugin dynamic libraries and short-circuits the logic to determine if plugins should do something special -- all implementations now behave the same in the presence of plugin elements.

The new behavior is:
1. If the <object> or <embed> element lists a type of something other than "x-shockwave-flash" or "x-test" then the behavior is unchanged.  This means that non-plugin types behave properly and unknown types (for example, typos) are also unaffected (they reduce to 0x0 elements).
2. If the <object> element has an HTML fallback in the DOM (see spec for <object> elements) then the fallback is always shown.
3. Otherwise, the element is shown as a transparent region with the size specified in attributes.

Differential Revision: https://phabricator.services.mozilla.com/D95902
2020-11-18 03:08:29 +00:00
Mihai Alexandru Michis 4085c9588d Bug 1676513 - Fix lint error in matching.rs a=lint-fix
CLOSED TREE
2020-11-17 14:48:54 +02:00
Sylvestre Ledru 0dee1b74e8 Bug 1676513 - Fix clippy warnings r=emilio,webdriver-reviewers,whimboo,rhunt
Depends on D96634

Differential Revision: https://phabricator.services.mozilla.com/D96636
2020-11-17 12:02:22 +00:00
Markus Stange 4a49a6612c Bug 1676434 - Replace obsolete -moz-mac-yosemite-theme media query with a new -moz-mac-big-sur-theme media query. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D97089
2020-11-16 20:43:35 +00:00
Emilio Cobos Álvarez ac6e97d5f9 Bug 1618639 - Make focus-visible match the spec more closely. r=edgar
The spec text has been improved a while ago, so I think we should do
this. This keeps the current moz-focusring behavior when the pref is
disabled, but when enabled it becomes effectively an alias of
focus-visible.

Differential Revision: https://phabricator.services.mozilla.com/D96697
2020-11-13 12:53:45 +00:00
Hiroyuki Ikezoe fc509369c5 Bug 1676062 - Use a dummy URL data in Servo_ParseEasing and drop Document* and URLExtraData* arguments from relevant functions. r=boris
Differential Revision: https://phabricator.services.mozilla.com/D96791
2020-11-12 20:34:01 +00:00
Emilio Cobos Álvarez fe41e970c4 Bug 1675514 - Fix declaration block serialization and logical properties. r=boris
As per https://github.com/w3c/csswg-drafts/issues/3030.

Also remove a system font special-case. It's generally handled in
shorthands/font.mako.rs, and when it's not, it's really the same issue
as https://github.com/w3c/csswg-drafts/issues/2515.

Browsers are all over the place for the system font case, so I think
it's fine.

Differential Revision: https://phabricator.services.mozilla.com/D96045
2020-11-08 14:01:50 +00:00
Emilio Cobos Álvarez 8bd419268c Bug 1664372 - Fix font loading invalidation to account for metrics coming from the parent style. r=jfkthame
We were only looking at the given frame's style, which is not
sufficient for this case.

Differential Revision: https://phabricator.services.mozilla.com/D96237
2020-11-06 22:30:28 +00:00
Emilio Cobos Álvarez f964a2fa6f Bug 1675639 - Shrink custom property maps before making them immutable. r=boris
Differential Revision: https://phabricator.services.mozilla.com/D96132
2020-11-06 02:37:44 +00:00
Emilio Cobos Álvarez e4d9bac157 Bug 1675639 - Update indexmap. r=boris
New versions have shrink_to_fit(). This also explicitly requests the
"std" feature, because otherwise autocfg fails to pass the panic=abort
flag to rustc and it chokes.

Depends on D96130

Differential Revision: https://phabricator.services.mozilla.com/D96131
2020-11-06 12:46:13 +00:00
Emilio Cobos Álvarez b8d518c220 Bug 1675639 - Don't waste string space before making values immutable. r=boris
Differential Revision: https://phabricator.services.mozilla.com/D96130
2020-11-06 02:37:44 +00:00
Narcis Beleuzu ba9ddd45c5 Backed out 3 changesets (bug 1675639) for Bpgo bustages. CLOSED TREE
Backed out changeset 9a7b394ca845 (bug 1675639)
Backed out changeset 270207ea42c1 (bug 1675639)
Backed out changeset 3d38566d80c6 (bug 1675639)
2020-11-06 03:32:33 +02:00
Emilio Cobos Álvarez 2bb4bb83ef Bug 1675639 - Shrink custom property maps before making them immutable. r=boris
Differential Revision: https://phabricator.services.mozilla.com/D96132
2020-11-05 23:24:13 +00:00
Emilio Cobos Álvarez c545098f4e Bug 1675639 - Don't waste string space before making values immutable. r=boris
Differential Revision: https://phabricator.services.mozilla.com/D96130
2020-11-05 23:09:11 +00:00
Dzmitry Malyshau 8d81c7e769 Bug 1674917 - Update parking_lot to 0.11 r=nika
Differential Revision: https://phabricator.services.mozilla.com/D95610
2020-11-02 22:56:40 +00:00
Boris Chiou 850434d326 Bug 1672793 - Treat 0 or infinity as auto for aspect-ratio on replaced elements. r=emilio
For replaced elements, if <ratio> is not finite, we should treat is as
auto and just use its intrinic ratio.

Differential Revision: https://phabricator.services.mozilla.com/D95412
2020-11-02 18:43:01 +00:00
Emilio Cobos Álvarez a44649b0ba Bug 1673930 - Use document quirks mode rather than sheet quirks mode for stylesheet invalidation. r=nordzilla
In order to determine whether classes or ids are case insensitive we
need the document quirks mode. The sheet quirks mode almost always
matches, but may not match when sheets are added by privileged APIs.

Differential Revision: https://phabricator.services.mozilla.com/D95061
2020-10-30 19:47:19 +00:00
Emilio Cobos Álvarez 82e837eb83 Bug 933562 - Implement complex :not(). r=jfkthame
This fixes the failures in bug 1671573 and just works thanks to the
invalidation improvements I did for :is / :where.

Added a couple tests for invalidation which is the tricky bit. 001 is a
very straight-forward test, 002 is the :is test but with :is() replaced
by double-:not().

This also fixes default namespaces inside :is() / :where(), which are
supposed to get ignored, but aren't. Added tests for that and for the
pre-existing :not() behavior which Chrome doesn't quite get right.

Differential Revision: https://phabricator.services.mozilla.com/D94142
2020-10-29 18:03:54 +00:00
Markus Stange af68ac4a30 Bug 1673132 - Use the -moz-default-appearance values "scrollbar-horizontal" and "scrollbar-vertical" on macOS and remove the now-unused value "scrollbar". r=emilio
Other platforms were already converted to scrollbar-horizontal and scrollbar-vertical in bug 1205643.

Differential Revision: https://phabricator.services.mozilla.com/D94674
2020-10-27 12:37:44 +00:00
Markus Stange cb8968058f Bug 1673132 - Remove "scrollbar-small" -moz-default-appearance value and replace its single use with scrollbar-width: thin. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D94673
2020-10-27 12:37:44 +00:00
Ricky Stewart 02a7b4ebdf Bug 1654103: Standardize on Black for Python code in `mozilla-central`.
Allow-list all Python code in tree for use with the black linter, and re-format all code in-tree accordingly.

To produce this patch I did all of the following:

1. Make changes to tools/lint/black.yml to remove include: stanza and update list of source extensions.

2. Run ./mach lint --linter black --fix

3. Make some ad-hoc manual updates to python/mozbuild/mozbuild/test/configure/test_configure.py -- it has some hard-coded line numbers that the reformat breaks.

4. Make some ad-hoc manual updates to `testing/marionette/client/setup.py`, `testing/marionette/harness/setup.py`, and `testing/firefox-ui/harness/setup.py`, which have hard-coded regexes that break after the reformat.

5. Add a set of exclusions to black.yml. These will be deleted in a follow-up bug (1672023).

# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D94045
2020-10-26 18:34:53 +00:00
Emilio Cobos Álvarez 4461cf30bf Bug 1673259 - Remove unused DeclarationBlock::get_at_importance. r=xidorn
Differential Revision: https://phabricator.services.mozilla.com/D94693
2020-10-26 09:58:31 +00:00
Bogdan Tara da1098d4aa Backed out 10 changesets (bug 1654103, bug 1672023, bug 1518999) for PanZoomControllerTest.touchEventForResult gv-junit failures CLOSED TREE
Backed out changeset ff3fb0b4a512 (bug 1672023)
Backed out changeset e7834b600201 (bug 1654103)
Backed out changeset 807893ca8069 (bug 1518999)
Backed out changeset 13e6b92440e9 (bug 1518999)
Backed out changeset 8b2ac5a6c98a (bug 1518999)
Backed out changeset 575748295752 (bug 1518999)
Backed out changeset 65f07ce7b39b (bug 1518999)
Backed out changeset 4bb80556158d (bug 1518999)
Backed out changeset 8ac8461d7bd7 (bug 1518999)
Backed out changeset e8ba13ee17f5 (bug 1518999)
2020-10-24 03:36:18 +03:00
Ricky Stewart c0cea3b0fa Bug 1654103: Standardize on Black for Python code in `mozilla-central`. r=remote-protocol-reviewers,marionette-reviewers,webdriver-reviewers,perftest-reviewers,devtools-backward-compat-reviewers,jgilbert,preferences-reviewers,sylvestre,maja_zf,webcompat-reviewers,denschub,ntim,whimboo,sparky
Allow-list all Python code in tree for use with the black linter, and re-format all code in-tree accordingly.

To produce this patch I did all of the following:

1. Make changes to tools/lint/black.yml to remove include: stanza and update list of source extensions.

2. Run ./mach lint --linter black --fix

3. Make some ad-hoc manual updates to python/mozbuild/mozbuild/test/configure/test_configure.py -- it has some hard-coded line numbers that the reformat breaks.

4. Make some ad-hoc manual updates to `testing/marionette/client/setup.py`, `testing/marionette/harness/setup.py`, and `testing/firefox-ui/harness/setup.py`, which have hard-coded regexes that break after the reformat.

5. Add a set of exclusions to black.yml. These will be deleted in a follow-up bug (1672023).

# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D94045
2020-10-23 20:40:42 +00:00
Dorel Luca 1ff59cb7a3 Backed out changeset 7558c8821a07 (bug 1654103) for multiple failures. CLOSED TREE 2020-10-22 03:51:06 +03:00
Ricky Stewart 50762dacab Bug 1654103: Standardize on Black for Python code in `mozilla-central`. r=remote-protocol-reviewers,marionette-reviewers,webdriver-reviewers,perftest-reviewers,devtools-backward-compat-reviewers,jgilbert,preferences-reviewers,sylvestre,maja_zf,webcompat-reviewers,denschub,ntim,whimboo,sparky
Allow-list all Python code in tree for use with the black linter, and re-format all code in-tree accordingly.

To produce this patch I did all of the following:

1. Make changes to tools/lint/black.yml to remove include: stanza and update list of source extensions.

2. Run ./mach lint --linter black --fix

3. Make some ad-hoc manual updates to python/mozbuild/mozbuild/test/configure/test_configure.py -- it has some hard-coded line numbers that the reformat breaks.

4. Add a set of exclusions to black.yml. These will be deleted in a follow-up bug (1672023).

# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D94045
2020-10-21 21:27:27 +00:00
Cameron McCormack d7eee82ba1 Bug 1671401 - Use separate Scrollbar and ThemedScrollbar ColorIDs. r=spohl
Otherwise on Windows, we have a ColorID::Scrollbar but not any of the other scrollbar part
colors, and the Windows-provided value for Scrollbar doesn't work well
with the default values for the other scrollbar parts that come from the
non-native theme.

Differential Revision: https://phabricator.services.mozilla.com/D93728
2020-10-16 12:49:47 +00:00
Jon Bauman ce053c88e0 Bug 1670341 - Update mp4parse-rust to eliminate multiple versions of hashbrown crate. r=emilio
Also update servo's `style` package to use hashbrown 0.9.

Differential Revision: https://phabricator.services.mozilla.com/D93616
2020-10-16 19:49:05 +00:00
Emilio Cobos Álvarez 329c0e92d6 Bug 1669742 - Always serialize ratio with both components. r=boris
Differential Revision: https://phabricator.services.mozilla.com/D93639
2020-10-15 16:12:16 +00:00
Cameron McCormack c529225214 Bug 1669368 - Use LookAndFeelCache to pass Gtk theme-derived scrollbar colors to content processes. r=spohl
Differential Revision: https://phabricator.services.mozilla.com/D93467
2020-10-15 04:54:41 +00:00
Razvan Maries 8d3a29c27b Backed out 4 changesets (bug 1670694, bug 1670853, bug 1669368, bug 1670145) for build bustages on nsNativeBasicTheme.h. CLOSED TREE
Backed out changeset fcb1b57645e0 (bug 1669368)
Backed out changeset 6ac5b674c3b6 (bug 1670853)
Backed out changeset 913fd041e5dd (bug 1670145)
Backed out changeset 89504c0fb0cd (bug 1670694)
2020-10-15 07:45:35 +03:00
Cameron McCormack 76b30e3307 Bug 1669368 - Use LookAndFeelCache to pass Gtk theme-derived scrollbar colors to content processes. r=spohl
Differential Revision: https://phabricator.services.mozilla.com/D93467
2020-10-15 00:24:09 +00:00
Boris Chiou 188264714b Bug 1669232 - Serialize a 0/0 ratio as 0/0 in all value stages. r=emilio
Based on the update of github.com/w3c/csswg-drafts/issues/5084,
a 0/0 ratio will serialize as 0/0 in all value stages.

Differential Revision: https://phabricator.services.mozilla.com/D93182
2020-10-12 15:05:46 +00:00
Emilio Cobos Álvarez e9e00c7007 Bug 1669459 - Introduce InspectorUtils.supports(). r=rcaliman,heycam
Which allows to run CSS.supports in chrome/user-agent context. We should
probably add a couple more tweaks for stuff like quirks or what not (the
`ParsingMode` enum), but that seem lower priority.

I only added the one-value version of CSS.supports because it should be enough
and supporting the two value version required a bit of awkward code due to when
we parse the CSS property name right now.

Differential Revision: https://phabricator.services.mozilla.com/D92585
2020-10-09 03:20:34 +00:00
Emilio Cobos Álvarez af00a62acd Bug 1669459 - Rustfmt glue.rs. r=jwatt
Just some drive-by cleanup.

Depends on D92583

Differential Revision: https://phabricator.services.mozilla.com/D92584
2020-10-07 08:40:59 +00:00
Emilio Cobos Álvarez ef5f4f8d29 Bug 1669600 - Properly distinguish between empty children and no children in rule iterator. r=heycam
So that skip_children(), which just pops the stack and is used by the
dynamic media query evaluation code, works as it should.

Differential Revision: https://phabricator.services.mozilla.com/D92717
2020-10-08 05:39:33 +00:00
Emilio Cobos Álvarez 67788d6893 Bug 1669858 - Use Option::as_deref() in style code. r=xidorn
And drive-by simplify another function that was only doing
Option::clone().

Differential Revision: https://phabricator.services.mozilla.com/D92839
2020-10-08 09:42:49 +00:00
Razvan Maries 365b429d6e Backed out changeset 20fadec3e9dc (bug 1187682) for perma failures on layout/reftests/mathml/stretchy-munderover-1c.html. CLOSED TREE 2020-10-02 17:11:33 +03:00
Frederic Wang 6391eed8cc Bug 1187682 - Use ScriptPercentScaleDown and ScriptScriptPercentScaleDown constants. r=emilio
The math-depth implementation is refined to take into account the
ScriptPercentScaleDown and ScriptScriptPercentScaleDown constants (if the
parent's first valid font has a MATH table) in order to calculate the
scale factor between math-deth 0 and 1, and between 0 and 2 respectively.

Behavior is unchanged if the legacy scriptsizemultiplier attribute is
specified or if no MATH table is available.

The preference layout.css.math-depth.enabled remains disabled in nightly
until the remaining bit (support for font-size: math) is implemented in
bug 1667090.

Differential Revision: https://phabricator.services.mozilla.com/D91604
2020-10-02 11:33:34 +00:00
Emilio Cobos Álvarez 0967845f95 Bug 1668029 - When resetting background color for high contrast, preserve alpha channel appropriately. r=morgan
But discard it when backplating behind text, so that text is readable.

This should be uncontroversial... Dealing with widgets is a bit harder
so TBD.

Differential Revision: https://phabricator.services.mozilla.com/D91779
2020-09-29 22:04:56 +00:00
Razvan Maries 396226431d Backed out changeset f1130dfcdbc4 (bug 1668029) for perma failures on backplate-select-001.html. CLOSED TREE 2020-09-30 00:20:09 +03:00
Emilio Cobos Álvarez d9e54ec4ae Bug 1668029 - When resetting background color for high contrast, preserve alpha channel appropriately. r=morgan
But discard it when backplating behind text, so that text is readable.

This should be uncontroversial... Dealing with widgets is a bit harder
so TBD.

Differential Revision: https://phabricator.services.mozilla.com/D91779
2020-09-29 17:33:55 +00:00
Frederic Wang 42b117ee83 Bug 1667527 - Implement CSS parsing for the math-depth property r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D91500
2020-09-28 10:42:49 +00:00
Frederic Wang 0eebca3c33 Bug 1667118 - Rename -moz-math-script-level to math-depth. r=emilio
This renames the internal -moz-math-script-level property in order to
prepare for full math-depth support. Currently, the property is guarded
under a disabled-by-default flag, so there should be no observable
behavior change.

Differential Revision: https://phabricator.services.mozilla.com/D91285
2020-09-26 03:04:56 +00:00
Narcis Beleuzu 679469fad8 Backed out changeset 239f29a99c4f (bug 1667118) for bc failure on browser_parsable_css.js . CLOSED TREE 2020-09-25 23:39:15 +03:00
Frederic Wang 5461921d85 Bug 1667118 - Rename -moz-math-script-level to math-depth. r=emilio
This renames the internal -moz-math-script-level property in order to
prepare for full math-depth support. Currently, the property is guarded
under a disabled-by-default flag, so there should be no observable
behavior change.

Differential Revision: https://phabricator.services.mozilla.com/D91285
2020-09-25 18:37:39 +00:00
Mihai Alexandru Michis cc04d2696e Backed out changeset b08319695e21 (bug 1667118) for causing xpcshell failures in test_css-properties-db.js
CLOSED TREE
2020-09-25 16:40:33 +03:00
Frederic Wang eb4b491896 Bug 1667118 - Rename -moz-math-script-level to math-depth. r=emilio
This renames the internal -moz-math-script-level property in order to
prepare for full math-depth support. Currently, the property is guarded
under a disabled-by-default flag, so there should be no observable
behavior change.

Differential Revision: https://phabricator.services.mozilla.com/D91285
2020-09-25 12:04:53 +00:00
tobar2018 9d2d6fb472 Bug 1659264 - Remove all references to the preference 'layout.css.moz-touch-enabled.enabled'. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D91401
2020-09-25 10:29:08 +00:00
Razvan Maries ed260c95a0 Backed out changeset 08538390d573 (bug 1667118) for perma failures on test_css-properties-db.js. CLOSED TREE 2020-09-25 00:12:10 +03:00
Frederic Wang c828ccef71 Bug 1667118 - Rename -moz-math-script-level to math-depth. r=emilio
This renames the internal -moz-math-script-level property in order to
prepare for full math-depth support. Currently, the property is guarded
under a disabled-by-default flag, so there should be no observable
behavior change.

Differential Revision: https://phabricator.services.mozilla.com/D91285
2020-09-24 18:44:41 +00:00
Frederic Wang 7ef35cabad Bug 1666075 - Implement displaystyle attribute on all MathML elements. r=emilio
Gecko implements the displaystyle attribute as defined by MathML 3 i.e.
only on the math, mstyle and mtable elements. This commit follows MathML
Core and instead define it as a global attribute mapped to math-style.
See https://mathml-refresh.github.io/mathml-core/#the-displaystyle-and-scriptlevel-attributes

Differential Revision: https://phabricator.services.mozilla.com/D90786
2020-09-24 15:34:17 +00:00
Frederic Wang aec8cecc03 Bug 1665975 - Implement the math-style property. r=emilio
This patch renames the internal -moz-math-display to math-style and
exposes it under the layout.css.math-style.enabled preference. The
initial value becomes "normal" but that does not affect the default
MathML behavior since the UA style sheet sets the math-style property
explicitly on <math> tags. WPT tests are updated to use the syntax
approved by the CSSWG.

Intent to prototype: https://groups.google.com/forum/#!msg/mozilla.dev.platform/1hQQ7ISudGo/_yLEckEeBQAJ

Differential Revision: https://phabricator.services.mozilla.com/D90731
2020-09-23 13:04:48 +00:00
Narcis Beleuzu 85b4b24cfc Backed out changeset 9480237e1e6f (bug 1665975) for xpcshell failure on test_css-properties-db.js. CLOSED TREE 2020-09-23 13:06:21 +03:00
Frederic Wang ff5e02320a Bug 1665975 - Implement the math-style property. r=emilio
This patch renames the internal -moz-math-display to math-style and
exposes it under the layout.css.math-style.enabled preference. The
initial value becomes "normal" but that does not affect the default
MathML behavior since the UA style sheet sets the math-style property
explicitly on <math> tags. WPT tests are updated to use the syntax
approved by the CSSWG.

Intent to prototype: https://groups.google.com/forum/#!msg/mozilla.dev.platform/1hQQ7ISudGo/_yLEckEeBQAJ

Differential Revision: https://phabricator.services.mozilla.com/D90731
2020-09-23 08:14:38 +00:00
Emilio Cobos Álvarez c9e95718ff Bug 1660804 - Don't optimize ::before/::after away if content/display have been specified via custom properties. r=jwatt
We need to treat them the same way as we treat content: inherit.

Differential Revision: https://phabricator.services.mozilla.com/D90222
2020-09-21 11:05:51 +00:00
Emilio Cobos Álvarez 3cfb419d00 Bug 1665816 - CSSOM should respect rule-level property restrictions. r=jwatt
Differential Revision: https://phabricator.services.mozilla.com/D90729
2020-09-21 09:57:46 +00:00
Bogdan Tara 2991b8c066 Backed out changeset 0da5103ba772 (bug 1665975) for mozglue_static::panic_hook mass crashes CLOSED TREE 2020-09-21 10:07:03 +03:00
Frederic Wang 1ac695dbdc Bug 1665975 - Implement the math-style property. r=emilio
This patch renames the internal -moz-math-display to math-style and
exposes it under the layout.css.math-style.enabled preference. The
initial value becomes "normal" but that does not affect the default
MathML behavior since the UA style sheet sets the math-style property
explicitly on <math> tags. WPT tests are updated to use the syntax
approved by the CSSWG.

Intent to prototype: https://groups.google.com/forum/#!msg/mozilla.dev.platform/1hQQ7ISudGo/_yLEckEeBQAJ

Differential Revision: https://phabricator.services.mozilla.com/D90731
2020-09-21 05:41:51 +00:00
Emilio Cobos Álvarez b58ca45005 Bug 1665823 - Consider display: none elements as having current style for animation-only traversal. r=hiro
This is mostly a band-aid, though it also serves sorta as an
optimization.

The issue here is basically bug 1393323. By re-cascading, right now we
can't come up with the right before-change style if CSSOM has mutated
the rules. We really need a better way to come up with the before-change
style, as the animation-only traversal is not really sustainable (nor
fast, for that matter...).

But this avoids crashing and prevents the regression easily, so let's do
that for now.

Differential Revision: https://phabricator.services.mozilla.com/D90700
2020-09-19 14:28:51 +00:00
Mats Palmgren a4b9f330ab Bug 1660358 - [css-lists-3][css-pseudo-4] Add support for 'text-transform' on ::marker. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D90329
2020-09-15 23:22:26 +00:00
Emilio Cobos Álvarez 8b0177b46a Bug 1664718 - Allow :is() and :where() to have better error recovery. r=xidorn
Adjust is-where-parsing.html to work with both the new and old behavior,
and add a test for the new behavior.

Depends on D90049

Differential Revision: https://phabricator.services.mozilla.com/D90050
2020-09-14 22:33:01 +00:00
Mihai Alexandru Michis 47b948eabc Backed out 2 changesets (bug 1664718) for causing wpt and bc failures.
CLOSED TREE

Backed out changeset 62e71d3b6b32 (bug 1664718)
Backed out changeset c8a8791a26ed (bug 1664718)
2020-09-14 20:32:50 +03:00
Emilio Cobos Álvarez eec23cefc5 Bug 1664718 - Fix selectors unit tests.
MANUAL PUSH: Fix BR bustage. CLOSED TREE
2020-09-14 17:37:51 +02:00
Emilio Cobos Álvarez 4c86d9e159 Bug 1664718 - Allow :is() and :where() to have better error recovery. r=xidorn
Adjust is-where-parsing.html to work with both the new and old behavior,
and add a test for the new behavior.

Depends on D90049

Differential Revision: https://phabricator.services.mozilla.com/D90050
2020-09-14 15:04:22 +00:00
Emilio Cobos Álvarez e9b7f73129 Bug 1664718 - Minor cleanup: Use shorthand initialization in selectors. r=xidorn
Differential Revision: https://phabricator.services.mozilla.com/D90049
2020-09-13 21:57:04 +00:00
Emilio Cobos Álvarez 948fa5c6d2 Bug 1664156 - Remove -moz-suppressed. r=edgar
Per spec we shouldn't behave differently depending on how we blocked the
image/object/etc.

This may have made sense in the past when ad blockers were implemented
via nsIContentPolicy, but I think nowadays it doesn't make sense, and
showing fallback is preferred.

There's a couple extra cleanups we can do after this lands, like
removing HTMLImageElement.imageBlockingStatus and simplifying a bit that
code. But I'll do that in a separate bug.

Differential Revision: https://phabricator.services.mozilla.com/D89912
2020-09-13 11:33:13 +00:00
Noemi Erli 733e3b440c Backed out changeset 64eb902728bc (bug 1664156) for causing mochitest failures in test_meta_csp_self.html CLOSED TREE 2020-09-12 22:56:18 +03:00
Emilio Cobos Álvarez 4b18c556e4 Bug 1664156 - Remove -moz-suppressed. r=edgar
Per spec we shouldn't behave differently depending on how we blocked the
image/object/etc.

This may have made sense in the past when ad blockers were implemented
via nsIContentPolicy, but I think nowadays it doesn't make sense, and
showing fallback is preferred.

There's a couple extra cleanups we can do after this lands, like
removing HTMLImageElement.imageBlockingStatus and simplifying a bit that
code. But I'll do that in a separate bug.

Differential Revision: https://phabricator.services.mozilla.com/D89912
2020-09-12 17:39:18 +00:00
Emilio Cobos Álvarez 1ef2a5628a Bug 1664432 - Remove -moz-user-disabled. r=edgar
We treat it exactly the same as -moz-broken. The pseudo-class is not
exposed to content, so I don't think we have a reason to keep it around.

Differential Revision: https://phabricator.services.mozilla.com/D89904
2020-09-11 19:26:40 +00:00
Emilio Cobos Álvarez a3c20c9800 Bug 1662703 - Make appearance: button behave like auto. r=heycam
As per https://github.com/w3c/csswg-drafts/issues/5174.

Differential Revision: https://phabricator.services.mozilla.com/D89119
2020-09-10 08:58:09 +00:00
Razvan Maries f0ac3ad62a Backed out changeset baab244deeb0 (bug 1662703) for perma failures on 482681.xhtml. CLOSED TREE 2020-09-10 04:50:23 +03:00
Emilio Cobos Álvarez af8bc3472b Bug 1662703 - Make appearance: button behave like auto. r=heycam
As per https://github.com/w3c/csswg-drafts/issues/5174.

Differential Revision: https://phabricator.services.mozilla.com/D89119
2020-09-08 23:03:58 +00:00
Emilio Cobos Álvarez 80159f3cf5 Bug 1663618 - Speed up custom property diffing. r=boris
When entering or leaving fullscreen in youtube, we spend most of the
restyle time diffing custom properties, under IndexMap::eq.

Turns out that IndexMap equality is not order-aware, and thus you
actually need to make a hashmap lookup for each entry in the map, which
is unnecessarily inefficient.

Instead, just compare the iterators.

See https://github.com/bluss/indexmap/issues/153.

Differential Revision: https://phabricator.services.mozilla.com/D89434
2020-09-08 10:33:03 +00:00
Emilio Cobos Álvarez 0cc4b1a206 Bug 1663231 - Make @font-face and @counter-style serialization closer other browsers and style rules. r=xidorn
Style rules serialize on one line and so should @font-face blocks.

Part of https://github.com/w3c/csswg-drafts/issues/4828.

Differential Revision: https://phabricator.services.mozilla.com/D89302
2020-09-05 00:42:43 +00:00
Emilio Cobos Álvarez 03baee9d8a Bug 1662478 - Rename ::file-chooser-button to ::file-selector-button, and enable it in all channels. r=jwatt
See https://github.com/w3c/csswg-drafts/issues/5049

Differential Revision: https://phabricator.services.mozilla.com/D88995
2020-09-01 22:58:10 +00:00
Emilio Cobos Álvarez 063c081360 Bug 1660857 - Only apply grayscale filter for printing on print preview. r=jwatt,dholbert
Differential Revision: https://phabricator.services.mozilla.com/D88065
2020-08-27 09:37:31 +00:00
Narcis Beleuzu 77bc01a5e1 Backed out 2 changesets (bug 1660857) for bc failures on browser_parsable_css.js . CLOSED TREE
Backed out changeset 1378546cc0db (bug 1660857)
Backed out changeset 6c8985ac1d4c (bug 1660857)
2020-08-27 00:28:58 +03:00
Emilio Cobos Álvarez 0686e31ea8 Bug 1660857 - Only apply grayscale filter for printing on print preview. r=jwatt,dholbert
Depends on D88064

Differential Revision: https://phabricator.services.mozilla.com/D88065
2020-08-26 19:12:15 +00:00
Masatoshi Kimura 4215d524dc Bug 1658690 - Replace :-moz-native-anonymous-no-specificity with :where(:-moz-native-anonymous). r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D88255
2020-08-26 11:45:35 +00:00
Emilio Cobos Álvarez 711e7aa60e Bug 1659718 - Bail out when collecting invalidations for nested rules if any of them make us fully invalid. r=jwatt
Differential Revision: https://phabricator.services.mozilla.com/D87446
2020-08-20 10:45:42 +00:00
Emilio Cobos Álvarez 7c7897149c Bug 1414600 - Make media queries and viewport units in print be evaluated against the default page size minus margins. r=dholbert,nordzilla
For that, move the default page margin computation to nsPresContext.

See https://github.com/w3c/csswg-drafts/issues/5437 as to why doing this
and other alternatives.

Differential Revision: https://phabricator.services.mozilla.com/D87311
2020-08-19 10:32:16 +00:00
Nicolas Silva 298e987b8e Bug 1656236 - Update euclid in stylo. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D85762
2020-08-18 17:28:27 +00:00
Nicolas Silva cebafe261f Bug 1656236 - Update to euclid 0.22. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D85549
2020-08-18 22:09:27 +00:00
Csoregi Natalia 9af7b6fe90 Backed out changeset b6d1532f6cd4 (bug 1414600) for failures on mq_print_height.xhtml . CLOSED TREE 2020-08-19 04:58:49 +03:00
Emilio Cobos Álvarez ae622cd8cd Bug 1414600 - Make media queries and viewport units in print be evaluated against the default page size minus margins. r=dholbert,nordzilla
For that, move the default page margin computation to nsPresContext.

See https://github.com/w3c/csswg-drafts/issues/5437 as to why doing this
and other alternatives.

Differential Revision: https://phabricator.services.mozilla.com/D87311
2020-08-19 00:02:34 +00:00
Csoregi Natalia fd9ca77e37 Backed out 3 changesets (bug 1656236) for wrench failures on filter-drop-shadow-clip-3.yaml. CLOSED TREE
Backed out changeset 78205b816ac8 (bug 1656236)
Backed out changeset dc4ccb5a8ea9 (bug 1656236)
Backed out changeset dcfa644ba078 (bug 1656236)
2020-08-18 20:22:57 +03:00
Nicolas Silva 0473064210 Bug 1656236 - Update euclid in stylo. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D85762
2020-08-18 16:06:19 +00:00
Nicolas Silva fc87bc960e Bug 1656236 - Update to euclid 0.22. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D85549
2020-08-18 16:06:07 +00:00
Zeke Medley a591e69aa0 Bug 1591204 - Support forced colors media feature r=emilio
Enabled behind layout.css.forced-colors.enabled pending finalization
of the spec:

<https://drafts.csswg.org/mediaqueries-5/#forced-colors>

Differential Revision: https://phabricator.services.mozilla.com/D87147
2020-08-17 20:50:49 +00:00
Sean Feng 85bfe3d376 Bug 1200896 - Make the document blocked by the topmost element in the top layer r=emilio
Spec: https://html.spec.whatwg.org/multipage/#blocked-by-a-modal-dialog

Depends on D86392

Differential Revision: https://phabricator.services.mozilla.com/D86227
2020-08-17 15:41:19 +00:00
Shinichi Morimoto bc916f4b16 Bug 1659265 - remove layout.css.offset-logical-properties.enabled. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D87297
2020-08-17 17:51:31 +00:00
Boris Chiou cb69cd917a Bug 1639963 - Drop redundant check of auto in nsImageFrame. r=emilio
Appearally, we don't have to check mAspectRatio.auto_ because we checked it
already in the same function.

Differential Revision: https://phabricator.services.mozilla.com/D79336
2020-08-17 07:08:16 +00:00
Boris Chiou b425a6022b Bug 1639963 - Calculate inline size and block size based on aspect-ratio. r=emilio
We calculate the size of ratio-dependent axis by aspect-ratio while
initializing its ReflowInput, for most of the basic block cases.

This patch doesn't include "Automatic content-based minimum sizes",
which will be handled later. Besides, replaced elements will be handled
later as well.

We don't pass abspos-004.tentative.html because there is still a
spec issue: https://github.com/w3c/csswg-drafts/issues/5151.
For other tests we didn't pass (e.g. block-aspect-ratio-009.tentative.html,
or replaced-element-00x.tentative.html), we fix them later.

Besides, in this patch, we don't handle the case if the size of
ratio-determining axis uses intrinsic size keywords (which needs to be
calculated by its content size). We will fix this in the following bug
(Bug 1646100).

Differential Revision: https://phabricator.services.mozilla.com/D78964
2020-08-17 06:26:19 +00:00
Zeke Medley d1653ccb9a Bug 1658780 - Update the prefers-contrast media query to use the new more/less keywords r=emilio
Per the resolution here:
https://github.com/w3c/csswg-drafts/issues/2943#issuecomment-672994920

Differential Revision: https://phabricator.services.mozilla.com/D86848
2020-08-17 01:41:16 +00:00
Emilio Cobos Álvarez 268af41f18 Bug 1600635 - Fix two minor issues with scrollbar style caching. r=heycam
Add -moz-inert and -moz-script-level to the set of internal properties
that aren't included in "all".

-moz-inert may need to be uncacheable in the future if we make it not
change the pointer-events computed value. Left a comment to that effect.

Differential Revision: https://phabricator.services.mozilla.com/D87115
2020-08-16 00:43:48 +00:00
Mihai Alexandru Michis fc1c9759fc Backed out 3 changesets (Bug 1200896) for causing Bug 1659042.
CLOSED TREE

Backed out changeset 17df14f0b129 (bug 1200896)
Backed out changeset 5d9e9bd12cd2 (bug 1200896)
Backed out changeset 7f016de8d52f (bug 1200896)
2020-08-14 09:06:45 +03:00
Sean Feng 3f16476b10 Bug 1200896 - Make the document blocked by the topmost element in the top layer r=emilio
Spec: https://html.spec.whatwg.org/multipage/#blocked-by-a-modal-dialog

Differential Revision: https://phabricator.services.mozilla.com/D86227
2020-08-13 19:05:37 +00:00
Emilio Cobos Álvarez b20e708214 Bug 561154 - Implement :-moz-any() as an alias of :is(). r=heycam
This is strictly better and more flexible, but can change specificity so
have a pref in case it causes trouble. I doubt it will though, the
specificity rules of :is() make more sense, and my gut feeling is that
:-moz-any is not very used on the wild.

Make it early-beta-or-earlier for now to minimize risk, once this is on
nightly for a bit we can enable it everywhere.

Differential Revision: https://phabricator.services.mozilla.com/D86696
2020-08-12 04:26:07 +00:00
Emilio Cobos Álvarez d276a931b8 Bug 1658525- Remove layout.css.comparison-functions.enabled. r=xidorn
Shipped since FF75 (bug 1519519).

Differential Revision: https://phabricator.services.mozilla.com/D86693
2020-08-11 10:27:42 +00:00
Emilio Cobos Álvarez 2a82d607c5 Bug 1658470 - Remove layout.css.is-where-selectors.enabled. r=heycam
Shipped since 78 (bug 1632646).

Differential Revision: https://phabricator.services.mozilla.com/D86662
2020-08-11 05:54:22 +00:00
Emilio Cobos Álvarez 906c1a7801 Bug 1658470 - Remove layout.css.shadow-parts.enabled. r=heycam
Shipped since 72 (bug 1559074).

Differential Revision: https://phabricator.services.mozilla.com/D86661
2020-08-11 05:54:17 +00:00
Razvan Maries 0dc0ced176 Backed out 2 changesets (bug 1200896) for perma failures on browser_pioneer_ui.js. CLOSED TREE
Backed out changeset c7ae88fd1bd7 (bug 1200896)
Backed out changeset 8b57f059e63e (bug 1200896)
2020-08-10 23:08:04 +03:00
Sean Feng 17473c0717 Bug 1200896 - Make the document blocked by the topmost element in the top layer r=emilio
Spec: https://html.spec.whatwg.org/multipage/#blocked-by-a-modal-dialog

Differential Revision: https://phabricator.services.mozilla.com/D86227
2020-08-10 18:20:51 +00:00
Emilio Cobos Álvarez b800731028 Bug 1655751 - Invalidate for CSSOM changes in a more fine-grained way. r=heycam
Also, for changes in CSS declarations, like changing
cssRules[i].style.color or something, we end up avoiding a lot of the
work we were doing.

This page still trips us in the sense that they add a stylesheet, then
call getBoundingClientRect(), then insert more rules in the stylesheet,
which causes us to rebuild a lot of the cascade data.

We could try to detect appends to the last stylesheet on the list or
something I guess, and avoid rebuilding the cascade data in some cases.

Depends on D85615

Differential Revision: https://phabricator.services.mozilla.com/D85616
2020-08-10 18:00:44 +00:00
Emilio Cobos Álvarez 3e6d61cbd1 Bug 1655751 - Fix a silly mistake in which we'd prefer a local name / tag invalidation to an id invalidation. r=heycam
ID invalidations should always win.

This also prefers invalidations deeper in the subtree to higher up.

Differential Revision: https://phabricator.services.mozilla.com/D85615
2020-08-10 18:00:29 +00:00
Dorel Luca c594ecfbe7 Backed out 4 changesets (bug 1656236) for Webrender build bustage in reftests/filters/filter-drop-shadow-clip-3.yaml. CLOSED TREE
Backed out changeset c24f6a05294b (bug 1656236)
Backed out changeset a5d6a6f2f3ac (bug 1656236)
Backed out changeset bf4a2fe9f9c0 (bug 1656236)
Backed out changeset c5189b274b91 (bug 1656236)
2020-08-05 18:39:35 +03:00
Nicolas Silva 22f326b43d Bug 1656236 - Update euclid in stylo. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D85762
2020-08-05 09:15:24 +00:00
Nicolas Silva 31d1e467eb Bug 1656236 - Update to euclid 0.22. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D85549
2020-08-05 14:43:44 +00:00
Cristina Coroiu 2930787297 Backed out 4 changesets (bug 1656236) for build bustages on a CLOSED TREE
Backed out changeset bd79e14bc5ba (bug 1656236)
Backed out changeset dc76da883823 (bug 1656236)
Backed out changeset c4883923e091 (bug 1656236)
Backed out changeset 9464c1dcb0c9 (bug 1656236)
2020-08-05 12:10:43 +03:00
Nicolas Silva 4db3a418e0 Bug 1656236 - Update euclid in stylo. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D85762
2020-08-05 08:37:38 +00:00
Nicolas Silva 66fc42bbc6 Bug 1656236 - Update to euclid 0.22. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D85549
2020-08-05 08:35:29 +00:00
Emilio Cobos Álvarez 62f6fc74f8 Bug 1656954 - Use Overflow::is_scrollable in StyleAdjuster. r=mats
It was introduced in the overflow: clip work but this standalone
equivalent remained.

Differential Revision: https://phabricator.services.mozilla.com/D85778
2020-08-03 21:19:56 +00:00
Mats Palmgren 910e11aa99 Bug 1531609 part 2 - Implement overflow:clip/visible combinations. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D73717
2020-08-01 01:57:41 +00:00
Jeremy Ir 20235b390f Bug 1531609 part 1 - Rename overflow:-moz-hidden-unscrollable to overflow:clip. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D73716
2020-08-01 01:56:58 +00:00
Butkovits Atila cc95b93cba Backed out 3 changesets (bug 1635473, bug 1531609) for reftest failures. CLOSED TREE
Backed out changeset 1e7b32808be8 (bug 1531609)
Backed out changeset e64a61869cdb (bug 1531609)
Backed out changeset 6da37d7f6dd3 (bug 1635473)
2020-07-31 23:56:54 +03:00
Mats Palmgren c875610606 Bug 1531609 part 2 - Implement overflow:clip/visible combinations. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D73717
2020-07-31 15:31:36 +00:00
Jeremy Ir 92b8f0f77a Bug 1531609 part 1 - Rename overflow:-moz-hidden-unscrollable to overflow:clip. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D73716
2020-07-31 16:40:48 +00:00
Zeke Medley dc8e84e2d4 Bug 546052 - Add parsing for cross-fade from CSS Image Values and Replaced Content Module Level 4 r=emilio
This is the first of what will likely be a couple patches for
cross-fade's implementation. Bug 546052 tracks it's complete
implementation.

Differential Revision: https://phabricator.services.mozilla.com/D81889
2020-07-31 16:11:38 +00:00
Dorel Luca 3714922d1b Backed out changeset 9e9c50bbb2f3 (bug 546052) for build bustage on Linux. CLOSED TREE 2020-07-29 02:12:55 +03:00
Zeke Medley 1f9a50dd97 Bug 546052 - Add parsing for cross-fade from CSS Image Values and Replaced Content Module Level 4 r=emilio
This is the first of what will likely be a couple patches for
cross-fade's implementation. Bug 546052 tracks it's complete
implementation.

Differential Revision: https://phabricator.services.mozilla.com/D81889
2020-07-28 22:18:31 +00:00
Brian Birtles cb11586e66 Bug 1654195 - Make text-combine-upright not animatable; r=boris
Differential Revision: https://phabricator.services.mozilla.com/D84935
2020-07-27 18:45:35 +00:00
Alexander Surkov 305d2fd10d Bug 921504 - implement -moz-inert CSS property r=emilio
-moz-inert CSS property reflects inert subtrees concept and can be used to implement HTML:dialog element and HTML:inert attribute

Differential Revision: https://phabricator.services.mozilla.com/D81701
2020-07-26 21:30:56 +00:00
Philipp Zech 3d4be168ae Bug 1648938 - Convert writing-modes #defines to an enum class. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D84016
2020-07-23 21:31:23 +00:00
Narcis Beleuzu 37cb83a398 Backed out 2 changesets (bug 921504) for wpt failures on inert-retargeting-iframe.tentative.html . CLOSED TREE
Backed out changeset 8b75cd744e80 (bug 921504)
Backed out changeset a56b2d354613 (bug 921504)
2020-07-22 23:53:55 +03:00
Alexander Surkov 1c382cad65 Bug 921504 - implement HTML:inert r=emilio,heycam
Differential Revision: https://phabricator.services.mozilla.com/D81701
2020-07-22 04:26:08 +00:00
Brian Birtles 029c6ab57b Bug 1637532 - Allow animations and transitions on ::marker; r=boris
As per the following change to the spec:

6b3d7240b5

The additional failure annotation is added because we don't currently treat
text-combine-upright as non-animatable and this patch exposes the existing bug
(bug 1654195).

Differential Revision: https://phabricator.services.mozilla.com/D84308
2020-07-22 00:44:18 +00:00
Brian Birtles 9159650f0b Bug 1636562 - Respect property restrictions on pseudo elements when animating; r=boris
Differential Revision: https://phabricator.services.mozilla.com/D84306
2020-07-21 23:12:35 +00:00
Mats Palmgren 0a85300e43 Bug 1653052 - [css-grid] Make empty and all-whitespace strings in 'grid-template-areas' invalid. r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D84398
2020-07-21 19:46:45 +00:00
Narcis Beleuzu 0ac1595a1a Backed out 2 changesets (bug 921504) for mochitest failures on test_animation-type-longhand.html . CLOSED TREE
Backed out changeset e87edffd46b9 (bug 921504)
Backed out changeset eb53880e5f0e (bug 921504)
2020-07-20 17:37:32 +03:00
Alexander Surkov cf6cccf0ef Bug 921504 - implement HTML:inert r=emilio,heycam
Differential Revision: https://phabricator.services.mozilla.com/D81701
2020-07-20 04:22:36 +00:00
Emilio Cobos Álvarez 12c7ce039a Bug 1652698 - Make stylesheet invalidation faster. r=heycam
This fixes performance issues when there's a massive number of rules and
a massive DOM.

Instead of going through all rules for all the DOM, we now look stuff in
hashmaps.

Differential Revision: https://phabricator.services.mozilla.com/D83506
2020-07-20 07:40:17 +00:00
Cameron McCormack 82b32f112e Bug 1643246 - Don't use attribute selectors for determining if a select is a drop down or a list box. r=emilio
Instead add a pseudo-class that does the expected size="" attribute parsing.

Removing the Gtk-specific rule setting the text color since it doesn't
seem to have any effect currently.

Differential Revision: https://phabricator.services.mozilla.com/D83448
2020-07-17 09:56:53 +00:00
Cameron McCormack ec3a51f08d Bug 1620467 - Part 12: Hide range and number-input appearance values from content. r=emilio
Forgot to follow up on these two remaining non-standard values that may have
been being used to reset a <meter> or <input type=number> back to its
original appearance, but which telemetry showed no usage of.

Differential Revision: https://phabricator.services.mozilla.com/D83598
2020-07-16 22:04:38 +00:00
Cameron McCormack dbda1613e6 Bug 1620467 - Part 11: Re-order Appearance values. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D83437
2020-07-16 22:04:31 +00:00
Cameron McCormack 557d0316a9 Bug 1620467 - Part 8: Make `appearance: button` behave like auto on various elements. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D83434
2020-07-16 22:04:24 +00:00
Cameron McCormack 4de7c62706 Bug 1620467 - Part 7: Avoid exposing `appearance: range-thumb` to content. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D83433
2020-07-16 22:04:21 +00:00
Cameron McCormack 7794182b6d Bug 1620467 - Part 6: Mark appearance values that are only used internally as chrome-only. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D83432
2020-07-16 22:04:17 +00:00
Cameron McCormack af3cb9efc8 Bug 1620467 - Part 5: Remove appearance values not used by the browser or Web content. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D83431
2020-07-16 22:04:14 +00:00
Cameron McCormack dd61f595eb Bug 1620467 - Part 4: Change internal uses of -moz-appearance to appearance and -moz-default-appearance. r=emilio,webcompat-reviewers,geckoview-reviewers,preferences-reviewers,ntim,agi,miketaylr
Uses of `-moz-appearance: none` are changed to `appearance: none`.

Uses of other values that are simply reverting the appearance back to
its default are changed to `appearance: auto`.

Uses of values in UA sheets that are defining the inherent appearance of
widgets are changed to:

  appearance: auto;
  -moz-default-appearance: <value>;

since those values are either no longer supported on (-moz-)appearance,
or are still supported but only in some limited form.

There are some uses of `-moz-appearance: textfield` on <input
type=number> elements that are renamed to `appearance: textfield`.

Differential Revision: https://phabricator.services.mozilla.com/D83430
2020-07-16 22:04:14 +00:00
Cameron McCormack 1fe732d979 Bug 1620467 - Part 3: Defer to -moz-default-appearance when appearance is auto. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D83429
2020-07-16 22:04:12 +00:00
Cameron McCormack 1739610d9a Bug 1620467 - Part 2: Add unprefixed appearance property and make -moz-appearance and -webkit-appearance be aliases. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D83428
2020-07-16 22:04:11 +00:00
Cameron McCormack 4e13fec003 Bug 1620467 - Part 1: Remove appearance use counters. r=emilio
They have served their purpose.

Differential Revision: https://phabricator.services.mozilla.com/D83427
2020-07-16 22:03:54 +00:00
Emilio Cobos Álvarez a4fa8230aa Bug 1653339 - Teach style_derive's map_type_params about mapping self correctly. r=boris
Consider the following:

struct Complex<T> {
    something: T,
    #[compute(field_bound)]
    something_else: Generic<Self, T>,
}

That will generate:

impl<T> ToComputedValue for Complex<T>
where
    T: ToComputedValue,
    Generic<Self, T>: ToComputedValue<ComputedValue = Generic<Self, <T as ToComputedValue>::ComputedValue>>,
{
    // ...
}

That last clause is obviously incorrect. map_type_params correctly maps
the T, but it should know also about Self.

Ideally we could just do the same as for T and do:

    <Self as ToComputedValue>::ComputedValue

But that doesn't quite work, because we are in that implementation of
the trait, and the compiler rightfully complains about we don't yet
knowing the computed type. So we need to pass it explicitly, which is
simple enough, if a bit annoying.

Differential Revision: https://phabricator.services.mozilla.com/D83816
2020-07-16 18:51:21 +00:00
Simon Giesecke 4e8c935384 Bug 1652023 - Remove unnecessary includes from PresShell.h. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D83114
2020-07-15 13:53:02 +00:00
Simon Giesecke f4dc6dfdea Bug 1652010 - Reduce instantiations and cost of StyleOwnedSlice::AsSpan. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D83104
2020-07-15 12:48:16 +00:00
Emilio Cobos Álvarez d275fd6251 Bug 1631449 - Apply a grayscale filter to pages when monochrome. r=jwatt
This hooks the "monochrome" media query and co to the
nsIPrintSettings.printInColor setting.

This print setting we're using is not exposed in the print preview UI,
but you can test it setting the print.print_in_color preference to
"false", and then print preview will correctly show up greyscale'd.

Once this lands, the UI folks just have to use it as they see fit :)

I would've liked to add a proper rendering test, but the print reftests
check only whether the PDF text matches.

I could add a test to printpreview_helper.xhtml, but I'm refactoring
that file in bug 1648064 so I'd rather wait a bit and add it in a
separate bug. The test for the media feature should make sure that we
test that code path at least.

Differential Revision: https://phabricator.services.mozilla.com/D83552
2020-07-15 03:45:33 +00:00
Emilio Cobos Álvarez 8a684e8429 Bug 1650189 - Fix an off-by-one in the transition property iterator. r=mrobinson
By the time we get to iterate over the longhands of a shorthand, we've
already advanced the range iterator, so we look at the next duration and
such, which causes this bug.

I'm seriously baffled that no existing test caught this when it
landed, neither in our internal test suite nor wpt...  :/

Differential Revision: https://phabricator.services.mozilla.com/D82396
2020-07-06 16:26:20 +00:00
Cameron McCormack e309ecf825 Bug 1650259 - Remove unused function on Appearance. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D82124
2020-07-03 04:11:18 +00:00
Cameron McCormack c40850b854 Bug 1650256 - Remove unused StyleAppearance values. r=emilio
The parsing of these values was disabled in bug 1554150.

Differential Revision: https://phabricator.services.mozilla.com/D82122
2020-07-03 04:06:13 +00:00
Emilio Cobos Álvarez 3f74138cd4 Bug 1631929 - Have the destructor of CalcNode be never inline. r=dmajor
You tell me which other things need it... Copy-constructor? operator==?
and such?

Differential Revision: https://phabricator.services.mozilla.com/D73385
2020-06-30 22:31:22 +00:00
Zeke Medley 83e9191999 Bug 1506364 - Implement the prefers-contrast media-query. r=morgan,emilio
Differential Revision: https://phabricator.services.mozilla.com/D79553
2020-06-29 17:46:12 +00:00
Emilio Cobos Álvarez b9b9e38dd9 Bug 1646224 - Use mozilla::Length rather than nscoord to store font sizes. r=heycam,jfkthame
This avoids arbitrary precision loss when computing REM units and so on,
which is particularly important if we ever change the base of our app
units (but useful regardless).

Differential Revision: https://phabricator.services.mozilla.com/D79928
2020-06-22 09:45:40 +00:00
Emilio Cobos Álvarez 40b0214e2c Bug 1646811 - Fix gecko build.
Depends on D80248

Differential Revision: https://phabricator.services.mozilla.com/D80249
2020-06-18 18:14:29 +00:00
Emilio Cobos Álvarez 3222b8debd Bug 1646811 - Remove some unused extern crate declarations now that style is in rust 2018.
This avoids some warnings.

Depends on D80247

Differential Revision: https://phabricator.services.mozilla.com/D80248
2020-06-18 18:14:24 +00:00
Emilio Cobos Álvarez 886d53972c Bug 1646811 - servo: Remove the dependency on font-kit from style.
No good reason to have this IMO, and helps remove some #[cfg] blocks.

Depends on D80246

Differential Revision: https://phabricator.services.mozilla.com/D80247
2020-06-18 18:14:21 +00:00
Emilio Cobos Álvarez 9077e6a4a9 Bug 1646811 - Fix servo build.
Depends on D80245

Differential Revision: https://phabricator.services.mozilla.com/D80246
2020-06-18 18:14:13 +00:00
Emilio Cobos Álvarez 3eaf5b6acb Bug 1646811 - Sync some comment changes from servo.
Depends on D80244

Differential Revision: https://phabricator.services.mozilla.com/D80245
2020-06-18 18:14:10 +00:00
Martin Robinson ce1653098e Bug 1646811 - servo: Combine AnimationAndTransitionDeclarations and AnimationRules.
These two structs are very similar, so we can combine them.

Depends on D80243

Differential Revision: https://phabricator.services.mozilla.com/D80244
2020-06-18 18:14:07 +00:00
Martin Robinson 0346b7de29 Bug 1646811 - servo: Add animation and transition support for pseudo-elements.
This change extends the DocumentAnimationSet to hold animations for
pseudo-elements. Since pseudo-elements in Servo are not in the DOM like
in Gecko, they need to be handled a bit carefully in stylo.  When a
pseudo-element has an animation, recascade the style. Finally, this
change passes the pseudo-element string properly to animation events.

Fixes: #10316

Depends on D80242

Differential Revision: https://phabricator.services.mozilla.com/D80243
2020-06-18 18:14:05 +00:00
Martin Robinson d406afe4e6 Bug 1646811 - servo: Add DocumentAnimationSet and AnimationSetKey.
This will be used in order to hold animations for pseudo elements in the
DocumentAnimationSet. Also no longer store the OpaqueNode in the
animation and transition data structures. This is already part of the
DocumentAnimationSet key.

Depends on D80241

Differential Revision: https://phabricator.services.mozilla.com/D80242
2020-06-18 18:14:02 +00:00
Matthias Deiml 1a949f1378 Bug 1646811 - servo: Implement visibility for layout_2020.
Depends on D80240

Differential Revision: https://phabricator.services.mozilla.com/D80241
2020-06-18 18:13:59 +00:00
Utsav Oza 6817ed6eaa Bug 1646811 - servo: Derive Serialize and Deserialize traits for font styles.
Depends on D80239

Differential Revision: https://phabricator.services.mozilla.com/D80240
2020-06-18 18:13:56 +00:00
Utsav Oza d2b54e0692 Bug 1646811 - servo: Enable textAlign, textBaseline and direction attributes for canvas.
Depends on D80238

Differential Revision: https://phabricator.services.mozilla.com/D80239
2020-06-18 18:12:56 +00:00
Utsav Oza 464c001324 Bug 1646811 - servo: Implement CanvasRenderingContext2D.font property.
Depends on D80237

Differential Revision: https://phabricator.services.mozilla.com/D80238
2020-06-18 18:12:46 +00:00
Martin Robinson 27f264de00 Bug 1646811 - servo: animations: Don't always re-resolve the node style.
When animations and transitions change don't always re-resolve node
style, just replace the animation and transition rules and re-cascade.

Depends on D80236

Differential Revision: https://phabricator.services.mozilla.com/D80237
2020-06-18 18:12:34 +00:00
Simon Sapin 0dc1b939cb Bug 1646811 - servo: Enable parsing of `flex-*` properties for layout-2020.
Depends on D80235

Differential Revision: https://phabricator.services.mozilla.com/D80236
2020-06-18 18:12:23 +00:00
Martin Robinson 7b23d8c773 Bug 1646811 - servo: Include animations and transitions in the cascade.
Instead of applying animations and transitions to styled elements,
include them in the cascade. This allows them to interact properly with
things like font-size and !important rules.

Depends on D80234

Differential Revision: https://phabricator.services.mozilla.com/D80235
2020-06-18 18:12:14 +00:00
Martin Robinson 697bb739d1 Bug 1646811 - servo: Better computation of animation keyframes.
This begins to address #26625 by properly applying CSS variables during
keyframe computation and no longer using `apply_declarations`. Instead,
walk the declarations, combining them into IntermediateComputedKeyframe,
maintaining declarations that modify CSS custom properties. Then compute
a set of AnimationValues for each keyframe and use those to produce
interpolated animation values.

Depends on D80233

Differential Revision: https://phabricator.services.mozilla.com/D80234
2020-06-18 18:12:07 +00:00
Martin Robinson 0afc032d4b Bug 1646811 - servo: Cache animation computed values when animations change.
Instead of recalculating the animation style every tick of an animation,
cache the computed values when animations change. In addition to being
more efficient, this will allow us to return animation rules as property
declarations because we don't need to consult the final style to produce
them.

Depends on D80232

Differential Revision: https://phabricator.services.mozilla.com/D80233
2020-06-18 18:11:57 +00:00
Simon Sapin f1f1e8df2b Bug 1646811 - Enable `order` in layout-2020.
Depends on D80231

Differential Revision: https://phabricator.services.mozilla.com/D80232
2020-06-18 18:11:47 +00:00
Simon Sapin ce5f91aa47 Bug 1646811 - servo: Gate layout 2020 flex implementation behind a pref.
Differential Revision: https://phabricator.services.mozilla.com/D80231
2020-06-18 18:11:39 +00:00
Simon Sapin 7c14e4e23e Bug 1633410 - Back out bug 1631721.
Rebased and squashed.

Differential Revision: https://phabricator.services.mozilla.com/D78174
2020-06-18 15:25:33 +00:00
Cosmin Sabou 65d75a47f3 Backed out changeset 299e19193e11 (bug 1646224) for causing font related failures. CLOSED TREE 2020-06-18 18:26:51 +03:00
Emilio Cobos Álvarez 090e3d2409 Bug 1646224 - Use mozilla::Length rather than nscoord to store font sizes. r=heycam,jfkthame
This avoids arbitrary precision loss when computing REM units and so on,
which is particularly important if we ever change the base of our app
units (but useful regardless).

Differential Revision: https://phabricator.services.mozilla.com/D79928
2020-06-18 13:55:03 +00:00
Emilio Cobos Álvarez 28c68306b3 Bug 1646546 - Port the style crate to rust 2018. r=boris
Differential Revision: https://phabricator.services.mozilla.com/D80101
2020-06-17 23:40:30 +00:00
Emilio Cobos Álvarez 7b1b460d78 Bug 1646546 - Fix some manual occurrences of try(). r=boris
Depends on D80099

Differential Revision: https://phabricator.services.mozilla.com/D80100
2020-06-17 22:27:45 +00:00
Emilio Cobos Álvarez b774002cf9 Bug 1646546 - Switch all callsites of try() to try_parse() in the style crate. r=boris
Fully automated via:

  $ rg -l '\.try\(' | xargs sed -i 's/\.try(/.try_parse(/g'
  $ cd servo/components/style && cargo +nightly fmt

Differential Revision: https://phabricator.services.mozilla.com/D80099
2020-06-17 22:27:37 +00:00
Philipp Zech 169b68c745 Bug 1636205 - Remove StyleFontSize enum from nsStyleConsts.h. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D77511
2020-06-17 11:08:44 +00:00
Emilio Cobos Álvarez ffec6f608b Bug 1643656 - Remove prefers-color-scheme: no-preference. r=gl,remote-protocol-reviewers,hiro,whimboo
It was removed from the spec.

Differential Revision: https://phabricator.services.mozilla.com/D78834
2020-06-14 23:26:04 +00:00
Emilio Cobos Álvarez 58bb0b25d9 Backed out 2 changesets (bug 477157) for border rendering regressions.
Backed out changeset 04543b8ded50 (bug 477157)
Backed out changeset 5df17ecbcaa1 (bug 477157)

MANUAL PUSH: backout
2020-06-14 11:45:06 +02:00
Emilio Cobos Álvarez 4cb5da08a2 Bug 1640623 - Use an enum class for LookAndFeel::FontID. r=jmathies
Differential Revision: https://phabricator.services.mozilla.com/D76696
2020-06-11 11:27:58 +00:00
neil 6b1f254a89 Bug 1641324 Remove the layout.css.scrollbar-width.enabled and layout.css.scrollbar-color.enabled prefs r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D78400
2020-06-10 13:16:34 +00:00
Emilio Cobos Álvarez e8caef7a14 Bug 477157 - Ceil border and outline widths to 1 dev px at computed value time, but don't floor others to dev pixels until paint time. r=mats,dbaron
This seems to match what other browsers do, and seems saner layout-wise,
at least.

I only annotated outline-width-interpolation.html because it's already
fixed upstream in:

  8a489657bc

Differential Revision: https://phabricator.services.mozilla.com/D75360
2020-06-10 10:44:32 +00:00
Razvan Maries f761608e79 Backed out changeset bca9f7459a16 (bug 1643656) for reftests perma failures. CLOSED TREE 2020-06-09 18:24:48 +03:00
Emilio Cobos Álvarez 6b86e22f72 Bug 1643656 - Remove prefers-color-scheme: no-preference. r=gl,remote-protocol-reviewers,hiro,whimboo
It was removed from the spec. Bug 1643934 updates the WPT tests.

Differential Revision: https://phabricator.services.mozilla.com/D78834
2020-06-09 13:21:54 +00:00
Colomban Wendling 120fea1c42 Bug 1628762 - Fix tree column header color to follow theme. r=geckoview-reviewers,snorp
The background color for the tree column headers is drawn using the
system APIs, but the foreground uses custom colors, which didn't follow
theme.  This can lead to unreadable text with specific colors, e.g.
leading to black on black.

Fix this by using system colors for the foreground as well.  It also
adds on-hover styling to match possible background change on hover.

Differential Revision: https://phabricator.services.mozilla.com/D78073
2020-06-03 20:52:55 +00:00
Cameron McCormack 5e27c1bd6b Bug 1642261 - Part 2: Add telemetry for -moz-appearance usage. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D77637
2020-06-05 00:39:50 +00:00
Emilio Cobos Álvarez 15e3db4260 Bug 1643230 - Clear last_parsed_property_id right after successfully parsing the value. r=jwatt
Rather than waiting until parsing another id (successfully or
unsuccessfully).

If we error before we even get to PropertyId::parse, we'd incorrectly
associate the error with the wrong property, incorrectly omitting it
sometimes.

Differential Revision: https://phabricator.services.mozilla.com/D78260
2020-06-05 18:13:14 +00:00
Dorel Luca fc6456ef88 Backed out changeset bde27b38c9c5 (bug 1643201) for causing Valgrind failures and build bustages 2020-06-04 05:17:11 +03:00
Emilio Cobos Álvarez a58560613e Bug 1643201 - Rustfmt recent changes.
Depends on D78203

Differential Revision: https://phabricator.services.mozilla.com/D78204
2020-06-04 00:35:41 +00:00
Simon Sapin 0cf71dd3a3 Bug 1643201 - Move most of `SequenceWriter::write_item` to non-generic functions.
The size of LLVM IR for the `style` crate is reduced by ~1.5% (27k lines out of 1.8M)

CC https://github.com/servo/servo/issues/26713

Depends on D78202

Differential Revision: https://phabricator.services.mozilla.com/D78203
2020-06-04 00:35:30 +00:00
Emilio Cobos Álvarez 25666b5157 Bug 1643201 - Cherry-pick servo changes to use the matches macro from the standard library.
Depends on D78201

Differential Revision: https://phabricator.services.mozilla.com/D78202
2020-06-04 00:35:22 +00:00
Emilio Cobos Álvarez 1afb168e99 Bug 1643201 - Cherry-pick some Servo Cargo.toml cleanups.
Depends on D78200

Differential Revision: https://phabricator.services.mozilla.com/D78201
2020-06-04 00:35:19 +00:00
Emilio Cobos Álvarez fa85c059f7 Bug 1643201 - Cherry-pick some servo changes to derive_common.
Depends on D78199

Differential Revision: https://phabricator.services.mozilla.com/D78200
2020-06-04 00:35:11 +00:00
Emilio Cobos Álvarez 31ea245f41 Bug 1643201 - Miscellaneous build fixes.
Depends on D78198

Differential Revision: https://phabricator.services.mozilla.com/D78199
2020-06-04 00:35:08 +00:00
Anthony Ramine b6b478f721 Bug 1643201 - servo: Return the root from the traversal.
Depends on D78196

Differential Revision: https://phabricator.services.mozilla.com/D78198
2020-06-04 00:35:00 +00:00
Martin Robinson 72e28ea0e8 Bug 1643201 - servo: layout_2020: Add support for transitions and animations.
Depends on D78195

Differential Revision: https://phabricator.services.mozilla.com/D78196
2020-06-04 00:34:53 +00:00
Martin Robinson 81d4be443e Bug 1643201 - servo: Implement `animation-fill-mode`.
Fixes #26460.

Depends on D78194

Differential Revision: https://phabricator.services.mozilla.com/D78195
2020-06-04 00:34:45 +00:00
Simon Sapin 376d2f283e Bug 1643201 - servo: `display: contents` computes to `block` on the root element.
Depends on D78193

Differential Revision: https://phabricator.services.mozilla.com/D78194
2020-06-04 00:34:42 +00:00
Martin Robinson fb83423da6 Bug 1643201 - servo: Remove AnimatedProperty.
This removes an extra layer of abstraction and allows Servo to share
more code with Gecko. In addition, we will need to handle raw
`AnimationValue` structs soon in order to fully implement "faster
reversing of interrupted transitions."

Depends on D78192

Differential Revision: https://phabricator.services.mozilla.com/D78193
2020-06-04 00:34:34 +00:00
Martin Robinson 67b71f76f3 Bug 1643201 - servo: Move most animation processing to script.
This is preparation for sharing this code with layout_2020 and
implementing selective off-the-main-thread animations.

We still look for nodes not in the flow tree in the layout thread.

Depends on D78191

Differential Revision: https://phabricator.services.mozilla.com/D78192
2020-06-04 00:34:31 +00:00
Martin Robinson bd72db8c67 Bug 1643201 - servo: layout_2020: Add initial support for getComputedStyle.
This implementation is more-or-less on par with the one from layout_2013
and in some cases better. There are still some cases where we don't
return the correct "resolved value," but this is enough to test
animations and transitions.

Depends on D78190

Differential Revision: https://phabricator.services.mozilla.com/D78191
2020-06-04 00:34:28 +00:00
Martin Robinson f095ec60bf Bug 1643201 - servo: Split animations and transitions into separate lists.
This change splits the list of animations and transitions, which are
almost always handled differently. It also renames
`ElementAnimationState` to `ElementAnimationSet` and establishes an
`AnimationState` for every transition and animation. This allows us to
stop continually reallocating lists every time a transition or animation
needs to be canceled.

Fixes #14419.

Depends on D78189

Differential Revision: https://phabricator.services.mozilla.com/D78190
2020-06-04 00:34:20 +00:00
Martin Robinson bf4fd750e3 Bug 1643201 - servo: Start having animations conform to the HTML spec.
This is a small step toward fixing #19242. The main idea is that the
clock for animations should advance as the event loop ticks. We
accomplish this by moving the clock from layout and naming it the
"animation timeline" which is the spec language. This should fix
flakiness with animations and transitions tests where a reflow could
move animations forward while script was running.

This change also starts to break out transition and animation events
into their own data structure, because it's quite likely that the next
step in fixing #19242 is to no longer send these events through a
channel.

Depends on D78188

Differential Revision: https://phabricator.services.mozilla.com/D78189
2020-06-04 00:34:18 +00:00
Martin Robinson f92e20c3cc Bug 1643201 - servo: Use a restyle for animation ticks.
This change corrects synchronization issues with animations, by
reworking the animation processing model to do a quick restyle and
incremental layout when ticking animations.

While this change adds overhead to animation ticks, the idea is that
this will be the fallback when synchronous behavior is required to
fulfill specification requirements. In the optimistic case, many
animations could be updated and applied off-the-main-thread and then
resynchronized when style information is queried by script.

Fixes #13865.

Depends on D78187

Differential Revision: https://phabricator.services.mozilla.com/D78188
2020-06-04 00:34:15 +00:00
Martin Robinson f879808ac6 Bug 1643201 - servo: Add support for animationend event.
This is triggered when an animation finishes. This is a high priority
because it allows us to start rooting nodes with animations in the
script thread.

This doesn't yet cause a lot of tests to pass because they rely on the
existence of `Document.getAnimations()` and the presence of
`animationstart` and animationiteration` events.

Depends on D78186

Differential Revision: https://phabricator.services.mozilla.com/D78187
2020-06-04 00:34:12 +00:00
Martin Robinson 05ab25fd1b Bug 1643201 - servo: Split animation cancellation from update_style_for_animation.
`update_style_for_animation` previously handled both canceling defunct
animations and also updating style to reflect current animation state.
This change splits those two concerns because we want to start handling
replaced or canceled animations and finished animations in two different
places.

This is a refactor, so ideally it shouldn't change any behavior.

Depends on D78185

Differential Revision: https://phabricator.services.mozilla.com/D78186
2020-06-04 00:34:09 +00:00
Martin Robinson 35c1ea7756 Bug 1643201 - servo: Restyle should reflect animations and transitions.
When doing a restyle, we should apply animations and transitions to the
new style so that it is reflected in `getComputedStyle()` and the new
style information properly cascades. This is the first part of properly
ticking animations and transitions.

This causes a couple new animations tests failures (along with many new
passes), but we currently don't have support for properly handling
animations after they have completed, so this isn't totally unexpected.

Depends on D78184

Differential Revision: https://phabricator.services.mozilla.com/D78185
2020-06-04 00:34:06 +00:00
Martin Robinson 504f6b82e4 Bug 1643201 - servo: Add ElementAnimationState and PossibleElementAnimationState.
This refactor is preparation for implementing a specification
compliant transitions and animations processing model.

These data structures hold all the animation information about a single
node. Since adding, updating, and modifying animations for a single node
are all interdependent, it makes sense to start encapsulating animation
data and functionality into a single data structure. This also opens up
the possibility for easier concurrency in the future by more easily
allowing per-node mutexes.

Differential Revision: https://phabricator.services.mozilla.com/D78184
2020-06-04 00:34:02 +00:00
Emilio Cobos Álvarez 96b2b6d63a Bug 1643078 - Don't use lazy_static for media feature parsing. r=boris
This used to be needed when destructors in statics were not allowed, but
we can get rid of it nowadays.

Differential Revision: https://phabricator.services.mozilla.com/D78109
2020-06-03 22:43:49 +00:00
Bogdan Tara ffdcf42e89 Backed out 2 changesets (bug 1642261) for browser_use_counters.js failures CLOSED TREE
Backed out changeset dd4c99038ede (bug 1642261)
Backed out changeset 308d2f7a4a13 (bug 1642261)
2020-06-03 11:43:20 +03:00
Cameron McCormack 061da14b2e Bug 1642261 - Part 2: Add telemetry for -moz-appearance usage. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D77637
2020-06-03 05:15:21 +00:00
Narcis Beleuzu 726ebdec39 Backed out 2 changesets (bug 1642261) for mochitest failures on test_property_database.html . CLOSED TREE
Backed out changeset 32b26c1984f6 (bug 1642261)
Backed out changeset 68456151c046 (bug 1642261)
2020-06-03 07:30:23 +03:00
Cameron McCormack 8cf9670c90 Bug 1642261 - Part 2: Add telemetry for -moz-appearance usage. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D77637
2020-06-02 13:15:04 +00:00
Boris Chiou 57938596a7 Bug 1640036 - Update aspec-ratio syntax for HTML IMG mapped ratio. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D76942
2020-05-27 21:43:00 +00:00
Emilio Cobos Álvarez 99ed9d65e3 Bug 1640843 - Finer grained invalidation for attribute changes. r=heycam
This should help out quite a bit with uBO, which has lots of very
general attribute selectors. We invalidate per attribute name rather
than using a SelectorMap, which prevents matching for attribute
selectors that can't have changed.

The idea is that this should be generally cheaper, though there are
cases where this would be a slight pesimization. For example, if there's
an attribute selector like:

  my-specific-element[my-attribute] { /* ... */ }

And you change `my-attribute` in an element that isn't a
`my-specific-element`, before that the SelectorMap would've prevented us
from selector-matching completely. Now we'd still run selector-matching
for that (though the matching would be pretty cheap).

However I think this should speed up things generally, let's see what
the perf tests think before landing this though.

Differential Revision: https://phabricator.services.mozilla.com/D76825
2020-05-27 09:17:47 +00:00
Emilio Cobos Álvarez 9dd644c92d Bug 1640667 - Manually tweak inlining in stateless pseudo selector matching. r=boris
This addresses a minor regression in bloom-matching.html. The common
case here is that there's no selector to the right of the
pseudo-element, so keep that path inline, while keeping all other checks
out of line.

Differential Revision: https://phabricator.services.mozilla.com/D76793
2020-05-27 00:00:52 +00:00
Emilio Cobos Álvarez 7e76f582e7 Bug 1640985 - Remove two useless mem::replace calls. r=boris
Differential Revision: https://phabricator.services.mozilla.com/D76884
2020-05-26 21:58:25 +00:00
Emilio Cobos Álvarez 31c487f429 Bug 1449753 - Remove the @-moz-document url-prefix() hack preference, enable it everywhere. r=jwatt
It doesn't seem like realistically we're going to be able to get rid of
this any time soon.

Differential Revision: https://phabricator.services.mozilla.com/D76809
2020-05-26 09:39:33 +00:00
Emilio Cobos Álvarez b68f73c01a Bug 1635675 - Implement the ::file-chooser-button pseudo-element. r=jwatt
As per https://github.com/w3c/csswg-drafts/issues/5049.

Don't enable it unconditionally just yet, as the name may change.

I had to move some rules in forms.css because otherwise you get
specificity conflicts.

Differential Revision: https://phabricator.services.mozilla.com/D76214
2020-05-25 23:54:10 +00:00
Narcis Beleuzu 973d9eb6a0 Backed out changeset 82df6f70ec60 (bug 1635675) for lint failure on file-chooser-button-001.tentative.html . CLOSED TREE 2020-05-25 13:49:39 +03:00
Emilio Cobos Álvarez a39a3a3807 Bug 1635675 - Implement the ::file-chooser-button pseudo-element. r=jwatt
As per https://github.com/w3c/csswg-drafts/issues/5049.

Don't enable it unconditionally just yet, as the name may change.

I had to move some rules in forms.css because otherwise you get
specificity conflicts.

Differential Revision: https://phabricator.services.mozilla.com/D76214
2020-05-21 12:27:54 +00:00
Emilio Cobos Álvarez 0b56353433 Bug 1639756 - Enable :is() and :where() in UA sheets. r=jwatt
This will allow us to clean them up.

Differential Revision: https://phabricator.services.mozilla.com/D76262
2020-05-21 12:10:34 +00:00
sefeng 67c1284c8c Bug 1637307 - Push/Pop dialog to top layer when needed r=smaug,emilio
This patch completes the top layer requirement for showModal()
Spec: https://html.spec.whatwg.org/multipage/interactive-elements.html#dom-dialog-showmodal

Differential Revision: https://phabricator.services.mozilla.com/D74922
2020-05-23 01:45:33 +00:00
Mats Palmgren 7d8f8a5007 Bug 1639664 - Allow 'opacity' on ::first-letter/::first-line pseudos. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D76387
2020-05-21 21:13:10 +00:00
Emilio Cobos Álvarez f5e6a1beee Bug 1639905 - Derive parse for ShapeRadius. r=boris
Depends on D76331

Differential Revision: https://phabricator.services.mozilla.com/D76332
2020-05-21 18:43:12 +00:00
Emilio Cobos Álvarez 5b0a85dfc3 Bug 1639905 - Derive parse for TextOverflowSide. r=boris
Depends on D76330

Differential Revision: https://phabricator.services.mozilla.com/D76331
2020-05-21 18:44:19 +00:00
Emilio Cobos Álvarez 5786fe2012 Bug 1639905 - Clean up parsing of UnicodeRange. r=jwatt
Differential Revision: https://phabricator.services.mozilla.com/D76330
2020-05-21 16:52:20 +00:00
Emilio Cobos Álvarez 18af4db46b Bug 1639689 - Support field_bound in #[derive(Parse)]. r=boris
Differential Revision: https://phabricator.services.mozilla.com/D76268
2020-05-21 13:48:36 +00:00
Boris Chiou 5d461fdfee Bug 1635939 - Use style::One for Integer to avoid implementing Mul. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D76207
2020-05-20 21:13:37 +00:00
Boris Chiou 6b78a43a20 Bug 1635939 - Replace AspectRatio with computed::position::Ratio in media-queries. r=emilio
Also, we drop the pref, layout.css.aspect-ratio-number.enabled, becacuse
the spec of css-sizing-4 uses Number now.

Differential Revision: https://phabricator.services.mozilla.com/D75233
2020-05-20 21:13:35 +00:00
Boris Chiou 599c6939d9 Bug 1635939 - Let aspect-ratio (css-sizing-4) support 'auto | <ratio>'. r=emilio
In order to test its parsing and serialization, we expose it but protect
it behind a pref.

Besides, I would like to drop layout.css.aspect-ratio-number.enabled in
the next patch because the spec has been updated. It seems we don't have
to keep this pref and we should always use Number.

Differential Revision: https://phabricator.services.mozilla.com/D74955
2020-05-21 06:45:10 +00:00
Emilio Cobos Álvarez b50a39c2d3 Bug 1639533 - Fix a no-longer valid assumption in pseudo-element matching / invalidation code. r=heycam
After bug 1632647, we can have pseudo-classes inside :not / :is /
:where, which the invalidation and matching code weren't handling.

Add a few tests for this stuff working as expected.

Differential Revision: https://phabricator.services.mozilla.com/D76160
2020-05-20 23:53:34 +00:00
Emilio Cobos Álvarez a594bf82aa Bug 1639533 - Fix a case where we'd allow parsing functional :host incorrectly. r=heycam
This is a missing check I should've introduced in bug 1632647.

Differential Revision: https://phabricator.services.mozilla.com/D76161
2020-05-20 23:54:16 +00:00
Emilio Cobos Álvarez 6d165c571f Bug 1632647 - Fix parsing of :is() and :where() to account for constraints from parent selectors. r=heycam
Differential Revision: https://phabricator.services.mozilla.com/D75856
2020-05-20 12:16:22 +00:00
Emilio Cobos Álvarez f0953195ce Bug 1636998 - Make ::-moz-focus-outer a no-op, and remove it on Nightly. r=jwatt
See https://bugzilla.mozilla.org/show_bug.cgi?id=932410#c2 for the
context for which this pseudo-element was added.

In the previous patch, I had to special-case range appearance because of
this pseudo-class, but that patch makes this pseudo-class completely
redundant, as now all form controls, themed and unthemed, display
outlines, unless the native theme displays a focus indicator on its own.

Remove the special case, and make ranges use outlines like everything
else rather than this bespoke pseudo-element.

Differential Revision: https://phabricator.services.mozilla.com/D74734
2020-05-18 10:54:16 +00:00
Csoregi Natalia f6ee95862e Backed out changeset 62ad26fbfaf8 (bug 1636998) for reftest failures on 1174332-1.html. CLOSED TREE 2020-05-18 13:31:56 +03:00
Emilio Cobos Álvarez 36b46408b8 Bug 1636998 - Make ::-moz-focus-outer a no-op, and remove it on Nightly. r=jwatt
See https://bugzilla.mozilla.org/show_bug.cgi?id=932410#c2 for the
context for which this pseudo-element was added.

In the previous patch, I had to special-case range appearance because of
this pseudo-class, but that patch makes this pseudo-class completely
redundant, as now all form controls, themed and unthemed, display
outlines, unless the native theme displays a focus indicator on its own.

Remove the special case, and make ranges use outlines like everything
else rather than this bespoke pseudo-element.

Differential Revision: https://phabricator.services.mozilla.com/D74734
2020-05-18 07:59:32 +00:00
Emilio Cobos Álvarez b9c1bf761c Bug 312971 - Unprefix -moz-read-write / -moz-read-only. r=edgar
And remove some duplicated tests from WPT.

Differential Revision: https://phabricator.services.mozilla.com/D75231
2020-05-14 16:46:08 +00:00