Commit Graph
116 Commits
Author SHA1 Message Date
Sylvestre Ledru 55481ac4b5 Bug 2023419 - Remove Emacs/Vim modelines from layout/ r=emilio,firefox-style-system-reviewers,layout-reviewers
replaced by .editorconfig

Differential Revision: https://phabricator.services.mozilla.com/D287852
2026-03-17 12:05:43 +00:00
serge-sans-paille c3b06ff4b4 Bug 1997165 - Remove unused mfbt inclusion in layout/** r=emilio,firefox-style-system-reviewers,firefox-svg-reviewers,layout-reviewers,dshin,dholbert
Differential Revision: https://phabricator.services.mozilla.com/D270577
2025-10-29 22:18:06 +00:00
Emilio Cobos Álvarez 549b9abd07 Bug 1809505 - Extract counter list dumping. r=jwatt
This was useful for debugging.

Differential Revision: https://phabricator.services.mozilla.com/D238538
2025-02-18 09:34:01 +00:00
Emilio Cobos Álvarez 6320be3e20 Bug 1897361 - Share counter-style / list-style-type representation between Servo and Gecko. r=jwatt
It's not clear to me what is going on there or what caused it. I suspect
it might be:

  https://searchfox.org/mozilla-central/rev/1f46481d6c16f27c989e72b898fd1fddce9f445f/servo/components/style/gecko/values.rs#69

Which is the only potential from_raw_parts caller there. But hard to say
without a regression range.

However I've been wanting to get rid of that code for a while, and
this is a good opportunity for that.

The WithCounterStyleNameOrSymbols stuff isn't super pretty, but it has
only two callers, and something more complicated might require further
refactoring.

Differential Revision: https://phabricator.services.mozilla.com/D210814
2024-05-19 21:24:16 +00:00
Cristian Tuns fbb56a1610 Backed out changeset dffe004546c6 (bug 1897361) for causing reftest failures in /list-1.html CLOSED TREE 2024-05-19 17:09:47 -04:00
Emilio Cobos Álvarez ebdae8c849 Bug 1897361 - Share counter-style / list-style-type representation between Servo and Gecko. r=jwatt
It's not clear to me what is going on there or what caused it. I suspect
it might be:

  https://searchfox.org/mozilla-central/rev/1f46481d6c16f27c989e72b898fd1fddce9f445f/servo/components/style/gecko/values.rs#69

Which is the only potential from_raw_parts caller there. But hard to say
without a regression range.

However I've been wanting to get rid of that code for a while, and
this is a good opportunity for that.

The WithCounterStyleNameOrSymbols stuff isn't super pretty, but it has
only two callers, and something more complicated might require further
refactoring.

Differential Revision: https://phabricator.services.mozilla.com/D210814
2024-05-19 19:42:38 +00:00
Emilio Cobos Álvarez db167513df Bug 1885842 - Apply ancestor-scope-reset to list-item counter only. r=dholbert
This is not amazing, but this keeps our behavior following the spec for
all counters minus the list-item counter, which needs this for compat,
see bug 1548753.

Differential Revision: https://phabricator.services.mozilla.com/D204879
2024-04-11 09:30:12 +00:00
Jonathan Kew ceba79c617 Bug 1830127 - Revert changeset 63b04ce7cf57 (bug 1808995) and remove associated WPT tests, because the behavior implemented there deviated from the Counter-Styles spec. r=emilio
Per https://github.com/w3c/csswg-drafts/issues/8619.

Differential Revision: https://phabricator.services.mozilla.com/D177240
2023-05-05 12:58:33 +00:00
Jonathan Kew 3f96c279e5 Bug 1808995 - Handle @counter-style fallback behavior for the prefix and suffix descriptors. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D167409
2023-01-28 14:06:12 +00:00
Norisz Fay f42f1f3114 Backed out 4 changesets (bug 1808995) for causing Wr failures on CounterStyleManager.cpp CLOSED TREE
Backed out changeset d3ff45038932 (bug 1808995)
Backed out changeset 808aee125bc5 (bug 1808995)
Backed out changeset c2a49ee389d9 (bug 1808995)
Backed out changeset 3fab430c4e7c (bug 1808995)
2023-01-27 20:29:08 +02:00
Jonathan Kew a6bcaffd2b Bug 1808995 - Handle @counter-style fallback behavior for the prefix and suffix descriptors. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D167409
2023-01-27 13:05:27 +00:00
Martin Robinson 797bb26bc0 Bug 1463600 - Implement CSS 'contain: style' r=emilio
Add an implementation of CSS `contain: style`. This introduces two new
data structures, the ContainStyleScope and ContainStyleScopeManager.

ContainStyleScope manages one `contain: style` "world" which has its own
counter and quote lists. The contents of these lists depend on their
parent scopes, but are not affected by their children.
ContainStyleScopeManager manages a tree of scopes starting at a root
scope which is outside of any `contain: style` element.

Scopes are stored in a hash table that is keyed off of the nsIContent
which establishes the `contain: style` scope. When modifying quote or
content lists, the ContainStyleScopeManager is responsible for finding
the appropriate `contain: style` scope to modify.

Perhaps the most complex part of this is that counters and quotes have
read access to the state of counters and quotes that are in ancestor
`contain: style` scopes. In the case of counters, USE nodes that are at
the beginning of counter lists might have a counter scope that starts in
an ancestor `contain: style` scope. When nsCounterNode::SetScope() is
called, the code may look upward in the `contain: style` scope tree to
find the start of the counter scope. In the case of quotes, the first
node in the quote list must look for the state of quotes in ancestor
`contain: style` scopes.

Differential Revision: https://phabricator.services.mozilla.com/D149508
2022-06-22 16:16:59 +00:00
Bogdan Szekely df95a0440d Backed out changeset 86e9449aba35 (bug 1463600) for causing xpcshell failures on test_css-properties-db.js 2022-06-22 15:35:33 +03:00
Martin Robinson 508be872da Bug 1463600 - Implement CSS 'contain: style' r=emilio
Add an implementation of CSS `contain: style`. This introduces two new
data structures, the ContainStyleScope and ContainStyleScopeManager.

ContainStyleScope manages one `contain: style` "world" which has its own
counter and quote lists. The contents of these lists depend on their
parent scopes, but are not affected by their children.
ContainStyleScopeManager manages a tree of scopes starting at a root
scope which is outside of any `contain: style` element.

Scopes are stored in a hash table that is keyed off of the nsIContent
which establishes the `contain: style` scope. When modifying quote or
content lists, the ContainStyleScopeManager is responsible for finding
the appropriate `contain: style` scope to modify.

Perhaps the most complex part of this is that counters and quotes have
read access to the state of counters and quotes that are in ancestor
`contain: style` scopes. In the case of counters, USE nodes that are at
the beginning of counter lists might have a counter scope that starts in
an ancestor `contain: style` scope. When nsCounterNode::SetScope() is
called, the code may look upward in the `contain: style` scope tree to
find the start of the counter scope. In the case of quotes, the first
node in the quote list must look for the state of quotes in ancestor
`contain: style` scopes.

Differential Revision: https://phabricator.services.mozilla.com/D149508
2022-06-22 10:42:34 +00:00
Martin Robinson f06c23c39e Bug 1477524 - Update quotes and counters to work trough the flattened tree r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D146693
2022-05-26 16:12:46 +00:00
Norisz Fay 3a4c6bb793 Backed out changeset ce66cc2cbb95 (bug 1477524) for causing build bustages on nsCounterManager.cpp CLOSED TREE 2022-05-26 15:24:40 +03:00
Martin Robinson 64b7e8262d Bug 1477524 - Update quotes and counters to work trough the flattened tree r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D146693
2022-05-26 11:15:16 +00:00
Mats Palmgren 5f2f5df35b Bug 1745506 - Add missing initialization of an INCREMENT node that isn't in a scope, nor first in the list. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D133574
2021-12-12 18:44:39 +00:00
Mats Palmgren ef8843e0bf Bug 1706346 part 2 - [css-lists] Implement the counter value calculations for 'reversed(<counter-name>)'. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D129956
2021-11-14 03:49:36 +00:00
Mats Palmgren 8038e17d61 Bug 1712413 - Make finding CSS counter scopes on ancestors faster. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D128537
2021-10-15 23:58:42 +00:00
Cristian Tuns 345e9151c7 Backed out changeset fc201411942f (bug 1712413) for causing hybrid build bustages on nsCounterManager.cpp CLOSED TREE 2021-10-15 17:33:45 -04:00
Mats Palmgren d5d287d6de Bug 1712413 - Make finding CSS counter scopes on ancestors faster. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D128537
2021-10-15 21:08:01 +00:00
Daniel Holbert 29451e8849 Bug 1730741 part 2: Add includes and forward-decls to fix non-unified-build bustage in layout/base, and remove REQUIRES_UNIFIED_BUILD declaration. r=emilio
After the fixes in this patch, the REQUIRES_UNIFIED_BUILD declaration is no
longer needed, so I'm removing it here.  This directory now builds successfully
with that removed and with ac_add_options --disable-unified-build in the
mozconfig.

Differential Revision: https://phabricator.services.mozilla.com/D125601
2021-09-15 18:48:17 +00:00
Mats Palmgren edd038200e Bug 1724880 - Add a layout-debugger menu item that dumps CounterManager data. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D122210
2021-08-10 23:15:31 +00:00
Mats Palmgren 9b44303ed1 Bug 1542807 part 1 - Create generated content and use normal box construction for list-style-type/list-style-image ::markers. r=emilio
The change from 0x25FE to 0x25AA for list-style-type:square
was approved here:
https://github.com/w3c/csswg-drafts/issues/6200#issuecomment-828616747

Differential Revision: https://phabricator.services.mozilla.com/D111691
2021-06-14 01:22:04 +00:00
Butkovits Atila c8f6a1fcf4 Backed out 7 changesets (bug 1542807) for causing failures at inert-retargeting-iframe.tentative.html. CLOSED TREE
Backed out changeset e9ef32fa2f2e (bug 1542807)
Backed out changeset 8fa0cb199975 (bug 1542807)
Backed out changeset 38daf64afe59 (bug 1542807)
Backed out changeset e3aee052c495 (bug 1542807)
Backed out changeset a71056d4c7cc (bug 1542807)
Backed out changeset cf91e7d0a37f (bug 1542807)
Backed out changeset eee949e5fd67 (bug 1542807)
2021-06-12 01:38:25 +03:00
Mats Palmgren d43697a633 Bug 1542807 part 1 - Create generated content and use normal box construction for list-style-type/list-style-image ::markers. r=emilio
The change from 0x25FE to 0x25AA for list-style-type:square
was approved here:
https://github.com/w3c/csswg-drafts/issues/6200#issuecomment-828616747

Differential Revision: https://phabricator.services.mozilla.com/D111691
2021-06-11 18:10:38 +00:00
Simon Giesecke 9e995a79e8 Bug 1184468 - Use nsBaseHashtable::Values. r=xpcom-reviewers,nika
Differential Revision: https://phabricator.services.mozilla.com/D108587
2021-03-24 17:56:49 +00:00
Simon Giesecke 86e29e162f Bug 1695162 - Use range-based for instead of custom hashtable iterators. r=xpcom-reviewers,kmag
Differential Revision: https://phabricator.services.mozilla.com/D108585
2021-03-17 15:49:46 +00:00
Mats Palmgren 9ffa288ef1 Bug 1695530 part 1 - Don't create an INCREMENT counter node when the increment is zero because it has no effect. r=emilio
Also, fix Dump() so that it logs the right type for INCREMENT/SET nodes.

Differential Revision: https://phabricator.services.mozilla.com/D107097
2021-03-04 00:37:59 +00:00
Simon Giesecke 7c2f4b7743 Bug 1693306 - Simplify some uses of LookupOrInsertWith by GetOrInsertNew. r=xpcom-reviewers,necko-reviewers,dragana,nika
Differential Revision: https://phabricator.services.mozilla.com/D105479
2021-02-26 09:22:54 +00:00
Simon Giesecke 7c075f27d9 Bug 1691913 - Rename nsBaseHashtable::GetOrInsert(With) to LookupOrInsert(With). r=xpcom-reviewers,necko-reviewers,jgilbert,dragana,nika
The functions should be called "Lookup" rather than "Get" because they return
a DataType& (rather than UserDataType).

Differential Revision: https://phabricator.services.mozilla.com/D105472
2021-02-26 09:11:45 +00:00
Simon Giesecke 9d60f9c227 Bug 1691894 - Simplify uses of WithEntryHandle that only use OrInsert(With) by using GetOrInsertWith. r=xpcom-reviewers,necko-reviewers,jgilbert,nika
Differential Revision: https://phabricator.services.mozilla.com/D104676
2021-02-22 12:07:46 +00:00
Simon Giesecke d87a4a852a Bug 1691894 - Fix EntryHandle to only work with DataType rather than wrapping UserDataType. r=xpcom-reviewers,necko-reviewers,nika,jonco,valentin
Differential Revision: https://phabricator.services.mozilla.com/D104810
2021-02-12 15:25:40 +00:00
Simon Giesecke 1d1b935551 Bug 1688833 - Migrate LookupForAdd to WithEntryHandle in layout. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D104202
2021-02-09 18:19:39 +00:00
Mats Palmgren 23b4986c0a Bug 1548753 - [css-lists] Prefer an ancestor's counter scope over a sibling's scope. r=emilio
https://github.com/w3c/csswg-drafts/issues/5477

Differential Revision: https://phabricator.services.mozilla.com/D87991
2020-08-27 18:26:38 +00:00
Sylvestre Ledru 9bd2328337 Bug 1519636 - Automatically reformat recent changes using clang-format r=Ehsan
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D60354
2020-01-21 09:51:27 +00:00
Eric Rahm daeb56f35b Bug 1606187 - Part 2b: Update users of nsClassHashtable to handle UniquePtr differences r=KrisWright,froydnj
Differential Revision: https://phabricator.services.mozilla.com/D59042
2020-01-13 19:18:56 +00:00
Emilio Cobos Álvarez 967c914a9a Bug 1578295 - Use cbindgen for counters. r=mats
Differential Revision: https://phabricator.services.mozilla.com/D44403
2019-09-02 23:11:26 +00:00
Daniel Holbert 8865537b64 Bug 1574310: clang-reformat the layout directory. (no review, just doing automated reformatting)
This patch is auto-generated by the following command:
./mach clang-format -p layout/

Differential Revision: https://phabricator.services.mozilla.com/D42218
2019-08-15 22:13:49 +00:00
Emilio Cobos Álvarez 802bd6f1f2 Bug 1573907 - Make non-list-items not increment the start value for <ol reversed>. r=mats
Differential Revision: https://phabricator.services.mozilla.com/D42084
2019-08-15 09:54:21 +00:00
Emilio Cobos Álvarez c3fbc596c3 Bug 1573907 - Fix interaction of <li value> inside <ol reversed>. r=mats
The counting code was incrementing the start counter twice for <li value>, as it
generates both an increment and a reset.

We should instead only increment it once per list-item, that is, once per
increment.

Differential Revision: https://phabricator.services.mozilla.com/D42001
2019-08-15 09:52:28 +00:00
Mats Palmgren 7183051087 Bug 1105868 part 1 - Use nsStyleDisplay::IsListItem() in a few places to prepare for inline list-items. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D39830
2019-08-14 14:36:18 +00:00
Mirko Brodesser 090d7efc5e Bug 1565584: move nsIContentUtils::ContentIsDescendantOf to nsINode::IsInclusiveDescendantOf. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D37880
2019-07-15 10:02:21 +02:00
Emilio Cobos Álvarez ddc619433b Bug 1552719 - Make nsBulletFrame::Ordinal() O(1) again. r=mats
I did this instead of just (ab)using the fact that every list item has at least
one counter-increment node because:

 * I don't have the bullet frame around by the time we initially compute the
   counter increment, which means that I'd need to grow nsBlockFrame / add a
   frame property for the list item ordinal, which I think would be unfortunate.

 * It feels more consistent with the way regular CSS counters work and with the
   way we want ::marker to eventually work.

Differential Revision: https://phabricator.services.mozilla.com/D31990
2019-05-21 17:30:42 +00:00
Masayuki Nakano 12b5544904 Bug 1545342 - part 2: Make some public enum of nsIPresShell move to mozilla namespace and defined as enum class in PresShellForwards.h r=smaug
This patch moves some `enum` in `nsIPresShell` which are in public scope into
`mozilla` namespace and change them as `enum class`es.

Unfortunately, only "where to scroll" enum is just defines constants of
percentages of scroll destination.  Therefore, this patch makes only them
as `static const`.

Differential Revision: https://phabricator.services.mozilla.com/D28606
2019-04-25 05:04:15 +00:00
Emilio Cobos Álvarez c045432df4 Bug 1543672 - The counters code should use atoms rather than strings. r=mats,boris
Servo already atomizes the counter names, it makes no sense to copy the string
rather than bumping the refcount.

Differential Revision: https://phabricator.services.mozilla.com/D27061
2019-04-15 20:11:45 +00:00
Emilio Cobos Álvarez 2b6db01f4e Bug 1543758 - Pseudo-elements should be allowed to be list-items. r=mats
Per https://github.com/w3c/csswg-drafts/issues/3766

Differential Revision: https://phabricator.services.mozilla.com/D27122
2019-04-13 22:22:51 +00:00
Emilio Cobos Álvarez 64d8081a01 Bug 1539171 - Make the list-item increment not visible from the computed style. r=mats
This is per https://drafts.csswg.org/css-lists/#declaring-a-list-item.

I intentionally kept <li value> defined using attribute mapping, I think that's
saner than special-casing it in layout.

Differential Revision: https://phabricator.services.mozilla.com/D24935
2019-04-11 15:21:17 +00:00
Mats Palmgren f401595632 Bug 1542594 - Apply counter-set after counter-increment, not before. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D26439
2019-04-07 13:45:57 +02:00