Commit Graph

135 Commits

Author SHA1 Message Date
Emilio Cobos Álvarez
ce3d5d43c1 Bug 1523071 - Use Rust lengths for margin / padding / inset. r=jwatt
Also for the intersection observer root margin, since it was easier to fix it
up and clean it up than not doing it.

This is the first big step to get rid of nscoord. It duplicates a bit of logic
in nsLayoutUtils since for now max/min-width/height are still represented with
nsStyleCoord, but I think I prefer to land this incrementally.

I didn't add helpers for the physical accessors of the style rect sides that
nsStyleSides has (top/bottom/left/right) since I think we generally should
encourage the logical versions, but let me know if you want me to do that.

Differential Revision: https://phabricator.services.mozilla.com/D17739
2019-02-10 04:11:58 +01:00
Emilio Cobos Álvarez
8c394b0983 Bug 1524328 - Don't resolve counter styles in the style system. r=xidorn
Doing it during layout instead. This also has the nice side-effect of
no longer needing to do a full restyle when counter-style rules are inserted.

Differential Revision: https://phabricator.services.mozilla.com/D18343
2019-02-03 03:00:12 +01:00
Mats Palmgren
668c4e7972 Bug 1520584 part 2 - s/aReflowInput/aCBReflowInput/ for clarity. r=dholbert 2019-01-29 17:44:56 +01:00
Mats Palmgren
fd1a9ff506 Bug 1520584 part 1 - [css-align][css-grid] Translate the static position to grid area coordinates. r=dholbert 2019-01-29 17:44:56 +01:00
Daniel Holbert
0e963bea06 Bug 1517067: Allow table-caption boxes to be dynamic reflow roots. r=dbaron
Differential Revision: https://phabricator.services.mozilla.com/D17006
2019-01-24 18:56:21 +00:00
Ehsan Akhgari
498e2df734 Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre
# ignore-this-changeset
2019-01-18 10:16:18 +01:00
Daniel Holbert
855b4a2f1b Bug 1510369 part 3: Add about:config pref 'layout.dynamic-reflow-roots.enabled' (enabled by default). r=dbaron
Differential Revision: https://phabricator.services.mozilla.com/D13133
2018-12-13 17:47:11 +00:00
Daniel Holbert
d87519577d Bug 1510369 part 2: Adjust logic in InitDynamicReflowRoot() to stop checking conditions once we've determined we can't be a dynamic reflow root. r=dbaron
This patch does not change behavior - it's purely an optimization to some
existing logic.

Differential Revision: https://phabricator.services.mozilla.com/D13132
2018-12-13 17:47:02 +00:00
Daniel Holbert
a1fdde9b6b Bug 1510369 part 1: Make IsFixedPosContainingBlock assert that all fixed-pos CBs must also be abs-pos CBs. r=dbaron
Differential Revision: https://phabricator.services.mozilla.com/D13131
2018-12-13 17:46:48 +00:00
L. David Baron
cdb8d67727 Bug 1159042 - p6. Use NS_FRAME_DYNAMIC_REFLOW_ROOT - r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D9492
2018-12-11 20:34:09 +00:00
L. David Baron
0a3bafc3b2 Bug 1159042 - p5. Add NS_FRAME_DYNAMIC_REFLOW_ROOT on frames that we can dynamically make reflow roots - r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D9491
2018-12-11 20:33:29 +00:00
Emilio Cobos Álvarez
afcff875f7 Bug 1513012 - Move overflow to use cbindgen. r=heycam
It's one of the most annoying / hacky mako bits we have.

Differential Revision: https://phabricator.services.mozilla.com/D14084
2018-12-11 03:07:08 +01:00
Cameron McCormack
3c9d4e9a6c Bug 1511854 - Part 2: Fix some more formatting oddities in layout/ after the clang-format. r=TYLin
Depends on D13686

Differential Revision: https://phabricator.services.mozilla.com/D13775
2018-12-05 18:44:05 +00:00
Sylvestre Ledru
e5a134f73a Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset
2018-11-30 11:46:48 +01:00
Dorel Luca
d10e392ea5 Backed out 6 changesets (bug 1159042) for crashtest failures. CLOSED TREE
Backed out changeset fe77c09dee31 (bug 1159042)
Backed out changeset db0e173a6ed2 (bug 1159042)
Backed out changeset 080b9ceee8ec (bug 1159042)
Backed out changeset 6a5191742ca1 (bug 1159042)
Backed out changeset 3a86c3e65d44 (bug 1159042)
Backed out changeset 845bc8316b05 (bug 1159042)
2018-11-27 06:30:07 +02:00
L. David Baron
7a0784c463 Bug 1159042 - p6. Use NS_FRAME_DYNAMIC_REFLOW_ROOT - r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D9492
2018-11-25 23:18:19 +00:00
L. David Baron
5a222792b4 Bug 1159042 - p5. Add NS_FRAME_DYNAMIC_REFLOW_ROOT on frames that we can dynamically make reflow roots - r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D9491
2018-11-26 23:21:54 +00:00
Boris Chiou
55842b617a Bug 1496558 - Part 1: Store the correct computed values for keywords for sizing properties r=mats
In order to get the correct computed value of these keywords, we have to
make sure we store the correct computed values in sizing properties in
both inline axis and block axis.

-moz-max-content and -moz-min-content should behave as the property's
initial value in block axis. -moz-fit-content and -moz-available are not
supported in block axis, so we also treat them as initial values.

Differential Revision: https://phabricator.services.mozilla.com/D8290
2018-10-16 19:38:41 +00:00
Jan Henning
c6b35b68a8 Bug 1428670 - Part 2: Correctly mark all child frames as dirty when font inflation status changes. r=dbaron
Before bug 1308876, child frames marked themselves as dirty during reflow if
their parent was dirty, too. After bug 1308876, the point where dirtiness is
being propagated to a frame's descendants has been shifted: Now, dirty parents
are responsible for marking all their children as dirty, too, when the parent
starts reflowing.

This means that if a frame wants to mark a whole subtree as dirty *during its
own* reflow, it's no longer sufficient to just mark the root of the subtree as
dirty and then rely on all further children marking themselves as dirty as well
when reflow reaches them.

The font inflation code is one such case. When the font inflation data on a font
inflation flow root has become dirty, or we're resizing the top-level frame
(which because of the effective container width clamping from bug 707855 can
affect the font inflation font size as well), we now need to explicitly mark all
affected children as dirty.

Differential Revision: https://phabricator.services.mozilla.com/D5577
2018-10-02 15:23:12 +00:00
Jan Henning
f4b83fdc3f Bug 1428670 - Part 0: Fix mixed tabs and spaces. r=dbaron
Differential Revision: https://phabricator.services.mozilla.com/D5576
2018-10-02 15:23:07 +00:00
Jan Henning
c11d76a635 Bug 1495323 - Don't retrieve font size inflation for margin calculation unless really required. r=dbaron
Once again, calculating the amount of font size inflation isn't as expensive as
it used to be, but there's still no need to do it unnecessarily. The current
code does this unconditionally as part of computing a frame's margins

Additionally, calculating the font size inflation for frames that we don't
actually want to inflate also messes with the planned writing mode assertions
from bug 1428670. In some special cases (e.g. the scroll bars), a frame might
use a different writing mode (horizontal/vertical) than its parent without
creating a new font inflation flow root at the boundary. As long as we never
want to apply font size inflation for that frame this is okay, but if the margin
computation then runs the font inflation calculation regardless, we have a
problem.

Differential Revision: https://phabricator.services.mozilla.com/D7329
2018-10-01 22:07:57 +00:00
Bogdan Tara
258204c4f3 Backed out 5 changesets (bug 1428670, bug 1380830) for perma failing tests/layout/generic/crashtests/742602.html
Backed out changeset f38ac02fefac (bug 1380830)
Backed out changeset 1bf6b5fac1f9 (bug 1428670)
Backed out changeset faec1cb8ab5d (bug 1428670)
Backed out changeset 34736c8507e6 (bug 1428670)
Backed out changeset 6ecb75be4a61 (bug 1428670)
2018-09-29 23:51:23 +03:00
Jan Henning
5a7c8a3ebd Bug 1428670 - Part 2: Correctly mark all child frames as dirty when font inflation status changes. r=dbaron
Before bug 1308876, child frames marked themselves as dirty during reflow if
their parent was dirty, too. After bug 1308876, the point where dirtiness is
being propagated to a frame's descendants has been shifted: Now, dirty parents
are responsible for marking all their children as dirty, too, when the parent
starts reflowing.

This means that if a frame wants to mark a whole subtree as dirty *during its
own* reflow, it's no longer sufficient to just mark the root of the subtree as
dirty and then rely on all further children marking themselves as dirty as well
when reflow reaches them.

The font inflation code is one such case. When the font inflation data on a font
inflation flow root has become dirty, or we're resizing the top-level frame
(which because of the effective container width clamping from bug 707855 can
affect the font inflation font size as well), we now need to explicitly mark all
affected children as dirty.

Differential Revision: https://phabricator.services.mozilla.com/D5577
2018-09-29 15:55:14 +00:00
Jan Henning
abb821a6d2 Bug 1428670 - Part 0: Fix mixed tabs and spaces. r=dbaron
Differential Revision: https://phabricator.services.mozilla.com/D5576
2018-09-29 15:55:01 +00:00
Mats Palmgren
75a680dc2c Bug 1493805 - Initialize ReflowInput::mCBReflowInput also for placeholders, in case we need it for some reason. r=emilio
Bug 1493710 might make this redundant, but it seems like we
should always do this anyway just in case...
2018-09-25 05:03:26 +02:00
Jean-Luc Bonnafoux
3cddd11ff8 Bug 1491639 - rename function IS_TABLE_CELL r=dbaron
rename function IS_TABLE_CELL

Differential Revision: https://phabricator.services.mozilla.com/D5974
2018-09-18 01:29:19 +00:00
Jean-Luc Bonnafoux
66b1c6bc5c Bug 458473 - initialize local variable fType r=dbaron
Bug 458473 - initialize local variable fType

Differential Revision: https://phabricator.services.mozilla.com/D5387
2018-09-14 22:04:17 +00:00
Cameron McCormack
8dcdbfc698 Bug 1489529 - Update comments to no longer point to nsRuleNode. r=emilio
There are a few mentions of nsRuleNode left but they are mostly
historical references so it makes sense to keep them.

Differential Revision: https://phabricator.services.mozilla.com/D5505
2018-09-12 17:37:37 +10:00
Cameron McCormack
e84b70ae83 Bug 1482782 - Part 5: Move CSS anonymous box atoms to nsGkAtoms. r=njn,emilio
Summary: Depends On D3283

Reviewers: njn!, emilio!

Tags: #secure-revision

Bug #: 1482782

Differential Revision: https://phabricator.services.mozilla.com/D3284
2018-08-15 15:46:39 +10:00
Narcis Beleuzu
ace8b010f2 Backed out 8 changesets (bug 1483121, bug 1482782) for build bustages on nsDirectoryService.cpp. CLOSED TREE
Backed out changeset 0a8334bbcf45 (bug 1483121)
Backed out changeset cb2dcb859071 (bug 1482782)
Backed out changeset c834d4ca2eef (bug 1482782)
Backed out changeset 887de0efbb67 (bug 1482782)
Backed out changeset 018fdb50a6be (bug 1482782)
Backed out changeset 33a8aa8096c9 (bug 1482782)
Backed out changeset e3632354f16e (bug 1482782)
Backed out changeset 46f8319bee82 (bug 1482782)
2018-08-15 09:14:41 +03:00
Cameron McCormack
f242832b4e Bug 1482782 - Part 5: Move CSS anonymous box atoms to nsGkAtoms. r=njn,emilio
Summary: Depends On D3283

Reviewers: njn!, emilio!

Tags: #secure-revision

Bug #: 1482782

Differential Revision: https://phabricator.services.mozilla.com/D3284
2018-08-15 15:46:39 +10:00
Brad Werth
1844a901bc Bug 1471894 Part 1: Ensure that absolute positioned blocks with auto margins update their UsedMargin property. r=dholbert
MozReview-Commit-ID: EFIQVvazkTg
2018-07-11 16:52:33 -07:00
Bogdan Tara
522c6bc813 Backed out 2 changesets (bug 1471894) for wpt failures on non-replaced-elements/flow-content-0/dialog.html CLOSED TREE
Backed out changeset bce3c6ca2e19 (bug 1471894)
Backed out changeset 6ab2fb716899 (bug 1471894)
2018-07-25 00:38:21 +03:00
Brad Werth
56087fac31 Bug 1471894 Part 1: Ensure that absolute positioned blocks with auto margins update their UsedMargin property. r=dholbert
MozReview-Commit-ID: EFIQVvazkTg
2018-07-11 16:52:33 -07:00
Bogdan Tara
fdbc4f6b47 Backed out 2 changesets (bug 1471894) for dialog.html wpt failures and crashtest failures CLOSED TREE
Backed out changeset a20576472778 (bug 1471894)
Backed out changeset 7342b2da7568 (bug 1471894)
2018-07-24 22:45:27 +03:00
Brad Werth
9ad03044f6 Bug 1471894 Part 1: Ensure that absolute positioned blocks with auto margins update their UsedMargin property. r=dholbert
MozReview-Commit-ID: EFIQVvazkTg
2018-07-11 16:52:33 -07:00
Bogdan Tara
6a72ba84e7 Backed out 2 changesets (bug 1471894) for lint failure on wpt.yml CLOSED TREE
Backed out changeset 189749cc1e12 (bug 1471894)
Backed out changeset 194afde62e69 (bug 1471894)
2018-07-24 20:26:43 +03:00
Brad Werth
9927ab42c2 Bug 1471894 Part 1: Ensure that absolute positioned blocks with auto margins update their UsedMargin property. r=dholbert
MozReview-Commit-ID: EFIQVvazkTg
2018-07-11 16:52:33 -07:00
shindli
a6efde0b3f Backed out 2 changesets (bug 1471894) for linting failure in /builds/worker/checkouts/gecko/tools/lint/wpt.yml on a CLOSED TREE
Backed out changeset 82b13a9a70e6 (bug 1471894)
Backed out changeset 9a6e53d96b83 (bug 1471894)
2018-07-24 02:56:41 +03:00
Brad Werth
82d22e8d59 Bug 1471894 Part 1: Ensure that absolute positioned blocks with auto margins update their UsedMargin property. r=dholbert
MozReview-Commit-ID: EFIQVvazkTg
2018-07-11 16:52:33 -07:00
Andi-Bogdan Postelnicu
569bc9b63e Bug 1453795 - Layout - Initialize member fields in classes/ structures. r=dbaron 2018-07-12 09:42:14 +03:00
Morgan Rae Reschenberg
6eb53cda9f Bug 1470329 - Change ReflowInput to have unconstrained BSize for size-contained elements, add reftests r=dholbert
MozReview-Commit-ID: 6IRAi8iScwy
2018-07-02 09:43:03 -07:00
Brindusan Cristian
7ec3b9b01d Backed out changeset 3eed69f0be08 (bug 1470329) for web-platform failures on /css/css-contain/contain-size-breaks-001.html. CLOSED TREE 2018-07-04 01:26:31 +03:00
Morgan Rae Reschenberg
32961686b1 Bug 1470329 - Change ReflowInput to have unconstrained BSize for size-contained elements, add reftests r=dholbert
MozReview-Commit-ID: 6IRAi8iScwy
2018-07-02 09:43:03 -07:00
Mats Palmgren
c7106ed729 Bug 1466330 - Make nsITheme::GetWidgetBorder return the border directly instead of using an out-param (idempotent patch). r=emilio 2018-06-02 19:10:48 +02:00
Morgan Rae Reschenberg
ea26c0a368 Bug 1461979 - change faulty assert to warning r=dholbert
MozReview-Commit-ID: 1cFN6Hk2Bdj
2018-05-21 15:35:31 -07:00
Mats Palmgren
b19e6d0213 Bug 1461222 part 2 - Make GetWidgetPadding return LayoutDeviceIntMargin. r=emilio 2018-05-17 17:30:35 +02:00
Mats Palmgren
e188037050 Bug 1461222 part 1 - Make GetWidgetBorder return LayoutDeviceIntMargin. r=emilio 2018-05-17 17:30:35 +02:00
Chris Peterson
5d6b16ea3b Bug 1457813 - Part 2: Replace non-asserting NS_PRECONDITIONs with MOZ_ASSERTs. r=froydnj
s/NS_PRECONDITION/MOZ_ASSERT/ and reindent

MozReview-Commit-ID: KuUsnVe2h8L
2018-04-28 12:50:58 -07:00
Boris Zbarsky
91e735235d Bug 644603 part 2. Ignore scroll positions when calculating the position of hypothetical boxes. r=dbaron 2018-04-26 17:55:45 -04:00