Commit graph

158 commits

Author SHA1 Message Date
Ting-Yu Lin
ee1f1f5d22 Bug 1546223 Part 5 - Change ReflowInput::InitConstraints() to use Maybe for containing block size. r=dholbert
There are some minor behavior changes come with this.

1) Change the default containing block size to (NS_UNCONSTRAINEDSIZE,
   NS_UNCONSTRAINEDSIZE). I think this is more reasonable than (-1, -1).

2) mContainingBlockSize is used to cache only the block size passing
   though constructor, Init(), or the invalid (-1, -1). This patch makes
   it cache the value computed by ComputeContainingBlockRectangle().

   Note that mContainingBlockSize is used only in
   nsTableWrapperFrame::InitChildReflowInput() to set the inner table
   frame's containing block to be the same as the outer table frame's.
   We don't change this behavior by caching more. Because even if the
   inner frame use the invalid cached (-1, -1) containing block size
   from the outer reflow input, it still computes the block size again
   in InitConstraints(). (Inner table's cb is the same as the outer
   table's per InitCBReflowInput().)

Differential Revision: https://phabricator.services.mozilla.com/D28586

--HG--
extra : moz-landing-system : lando
2019-04-24 22:23:59 +00:00
Ting-Yu Lin
49cfcc232c Bug 1546223 Part 4 - Mechanically replace pointer with Maybe for ReflowInput's optional containing block size. r=dholbert
There's no behavior change in this patch.

Differential Revision: https://phabricator.services.mozilla.com/D28426

--HG--
extra : moz-landing-system : lando
2019-04-24 17:35:31 +00:00
Ting-Yu Lin
77038b9a3a Bug 1546223 Part 2 - Use in-class member initializer for those which were in constructor body. r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D28428

--HG--
extra : moz-landing-system : lando
2019-04-24 00:20:05 +00:00
Ting-Yu Lin
328026b148 Bug 1546223 Part 1 - Use in-class member initializer for those which were in initializer list. r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D28427

--HG--
extra : moz-landing-system : lando
2019-04-24 17:35:05 +00:00
Ting-Yu Lin
a3bbe609b6 Bug 1546223 Part 0 - Remove unused NOISY_VERTICAL_ALIGN. r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D28429

--HG--
extra : moz-landing-system : lando
2019-04-24 17:35:05 +00:00
Ting-Yu Lin
2ebacf19f8 Bug 1543571 Part 4 - Manually replace "reflow state" with "reflow input" that are break across lines. r=dholbert
This is a follow-up for Part 1. I find all the candidates by running the
following command under layout/, and manually replace them.

  ag -A 1 reflow$ | ag -B 1 state

Differential Revision: https://phabricator.services.mozilla.com/D27162

--HG--
extra : moz-landing-system : lando
2019-04-11 21:22:16 +00:00
Ting-Yu Lin
04a76d27a6 Bug 1543571 Part 2 - Replace DUMMY_PARENT_REFLOW_STATE with DUMMY_PARENT_REFLOW_INPUT. r=dholbert
This patch is generated by the following script running on Linux:

function rename() {
    find .\
         -type f\
         ! -path "./obj*"\
         ! -path "./.git"\
         ! -path "./.hg"\
         \( -name "*.cpp" -or\
            -name "*.h" \)\
            -exec sed -i -e "s/$1/$2/g" "{}" \;
}
rename DUMMY_PARENT_REFLOW_STATE DUMMY_PARENT_REFLOW_INPUT

Differential Revision: https://phabricator.services.mozilla.com/D27023

--HG--
extra : moz-landing-system : lando
2019-04-11 20:27:18 +00:00
Ting-Yu Lin
f49d08722a Bug 1543571 Part 1 - Replace "reflow state" with "reflow input". r=dholbert
This patch is generated by the following script on Linux:

function rename() {
    find .\
         -type f\
         ! -path "./obj*"\
         ! -path "./.git"\
         ! -path "./.hg"\
         \( -name "*.cpp" -or\
            -name "*.h" \)\
            -exec sed -i -e "s/$1/$2/g" "{}" \;
}
rename "reflow state" "reflow input"

Differential Revision: https://phabricator.services.mozilla.com/D27022

--HG--
extra : moz-landing-system : lando
2019-04-11 20:27:37 +00:00
Masayuki Nakano
5e41233499 Bug 1540990 - Get rid of unnecessary nsIPresShell.h inclusions r=emilio
A lot of files include `nsIPresShell.h` even though currently they don't
need it.  This patch removes the unnecessary inclusions.

Differential Revision: https://phabricator.services.mozilla.com/D25744

--HG--
extra : moz-landing-system : lando
2019-04-04 00:19:48 +00:00
Razvan Maries
1cd564b971 Backed out changeset 3b94c20ba873 (bug 1540990) for build bustages. CLOSED TREE 2019-04-04 02:44:00 +03:00
Masayuki Nakano
b2bba953cc Bug 1540990 - Get rid of unnecessary nsIPresShell.h inclusions r=emilio
A lot of files include `nsIPresShell.h` even though currently they don't
need it.  This patch removes the unnecessary inclusions.

Differential Revision: https://phabricator.services.mozilla.com/D25744

--HG--
extra : moz-landing-system : lando
2019-04-03 23:29:38 +00:00
Sylvestre Ledru
ef0bfc3822 Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D24168

--HG--
extra : moz-landing-system : lando
2019-03-31 15:12:55 +00:00
Mats Palmgren
be049c79d6 Bug 205202 part 4 - [css-lists][css-pseudo] Rename various uses of bullet with marker to avoid any misleading association with nsBulletFrame (idempotent patch). r=emilio 2019-03-24 23:13:53 +01:00
Mats Palmgren
53f517142f Bug 205202 part 1 - [css-lists][css-pseudo] Add support for the ::marker pseudo element on list items. Alias :-moz-list-bullet/number to that in the parser. r=emilio 2019-03-24 23:13:53 +01:00
Emilio Cobos Álvarez
25098daaaa Bug 1532122 - Make word-spacing, letter-spacing, and line-height use Rust lengths. r=boris
This also adopts the resolution from [1] while at it, making letter-spacing
compute to a length, serializing 0 to normal rather than keeping normal in the
computed value, which matches every other engine.

This removes the SMIL tests for percentages from letter-spacing since
letter-spacing does in fact not support percentages, so they were passing just
by chance.

[1]: https://github.com/w3c/csswg-drafts/issues/1484

Differential Revision: https://phabricator.services.mozilla.com/D21850

--HG--
extra : moz-landing-system : lando
2019-03-04 18:19:40 +00:00
Ryan Hunt
b936c00a65 Bug 1523969 part 14 - Move method definition inline comments to new line in 'layout/'. r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D21115

--HG--
extra : rebase_source : 4d65c07d8822f3a54ac881b5d0f55468ce884554
2019-02-25 16:09:24 -06:00
Mats Palmgren
0f4868138a Bug 1526567 - [css-grid] Make the block-axis percentage basis be indefinite for measuring reflows. r=dholbert 2019-02-22 13:58:24 +01:00
Ting-Yu Lin
d373ed0def Bug 1526097 - Remove nsIFrame::eBlockFrame flag. r=dholbert
Only nsBlockFrame and its subclasses recognize the nsIFrame::eBlockFrame
flag, so we can replace the usage of the flag with either
nsIFrame::IsBlockFrameOrSubclass() or a do_QueryFrame().

Differential Revision: https://phabricator.services.mozilla.com/D20542

--HG--
extra : moz-landing-system : lando
2019-02-20 21:18:14 +00:00
Emilio Cobos Álvarez
dad3a20b22 Bug 1525955 - Include anon boxes in CSSPseudoElementType, to remove ComputedStyle::mPseudoTag. r=heycam
This is more consistent with what the Rust bits of the style system do, and
removes a pointer from ComputedStyle which is always nice.

This also aligns the Rust bits with the C++ bits re. not treating xul pseudos as
anonymous boxes. See the comment in nsTreeStyleCache.cpp regarding those.

Can't wait for XUL trees to die.

Depends on D19001

Differential Revision: https://phabricator.services.mozilla.com/D19002

--HG--
extra : moz-landing-system : lando
2019-02-19 13:44:33 +00:00
Razvan Maries
2fb9019d41 Merge mozilla-central to mozilla-inbound. a=merge on a CLOSED TREE 2019-02-15 11:59:08 +02:00
Emilio Cobos Álvarez
e9ae3b0907 Bug 1527410 - Use Rust sizes for flex-basis, width, height, and their min/max properties. r=jwatt
Really sorry for the size of the patch :(

Only intentional behavior change is in the uses of HasLengthAndPercentage(),
where it's easier to do the right thing. The checks that used to check for
(IsCalcUnit() && CalcHasPercentage()) are wrong since bug 957915.

Differential Revision: https://phabricator.services.mozilla.com/D19553
2019-02-15 03:59:31 +01:00
Ting-Yu Lin
8c62035164 Bug 1527519 Part 3 - Replace remaining nsLayoutUtils::GetAsBlock() with do_QueryFrame(), and delete nsLayoutUtils::GetAsBlock(). r=mats
Depends on D19861

Differential Revision: https://phabricator.services.mozilla.com/D19863

--HG--
extra : moz-landing-system : lando
2019-02-15 01:38:05 +00:00
Ting-Yu Lin
6694012956 Bug 1527519 Part 2 - Replace some nsLayoutUtils::GetAsBlock() with nsIFrame::IsBlockFrameOrSubclass(). r=mats
Depends on D19860

Differential Revision: https://phabricator.services.mozilla.com/D19861

--HG--
extra : moz-landing-system : lando
2019-02-15 01:38:04 +00:00
Emilio Cobos Álvarez
8101ae2ea8 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
a80ffc72ff 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
d254f778b7 Bug 1520584 part 2 - s/aReflowInput/aCBReflowInput/ for clarity. r=dholbert 2019-01-29 17:44:56 +01:00
Mats Palmgren
07692ebbce 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
829c8c8d71 Bug 1517067: Allow table-caption boxes to be dynamic reflow roots. r=dbaron
Differential Revision: https://phabricator.services.mozilla.com/D17006

--HG--
extra : moz-landing-system : lando
2019-01-24 18:56:21 +00:00
Ehsan Akhgari
e5e885ae31 Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre
# ignore-this-changeset

--HG--
extra : amend_source : 7221c8d15a765df71171099468e7c7faa648f37c
extra : histedit_source : a0cce6015636202bff09e35a13f72e03257a7695
2019-01-18 10:16:18 +01:00
Daniel Holbert
fae5834855 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

--HG--
extra : moz-landing-system : lando
2018-12-13 17:47:11 +00:00
Daniel Holbert
2a78d674bd 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

--HG--
extra : moz-landing-system : lando
2018-12-13 17:47:02 +00:00
Daniel Holbert
9b2496feff 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

--HG--
extra : moz-landing-system : lando
2018-12-13 17:46:48 +00:00
L. David Baron
c91d619832 Bug 1159042 - p6. Use NS_FRAME_DYNAMIC_REFLOW_ROOT - r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D9492

--HG--
extra : moz-landing-system : lando
2018-12-11 20:34:09 +00:00
L. David Baron
cabd72af5d 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

--HG--
extra : moz-landing-system : lando
2018-12-11 20:33:29 +00:00
Emilio Cobos Álvarez
4591031b65 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
1ea7c3efc9 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

--HG--
extra : moz-landing-system : lando
2018-12-05 18:44:05 +00:00
Sylvestre Ledru
265e672179 Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset

--HG--
extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
2018-11-30 11:46:48 +01:00
Dorel Luca
fbe4ae9803 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
2aba04965b Bug 1159042 - p6. Use NS_FRAME_DYNAMIC_REFLOW_ROOT - r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D9492

--HG--
extra : moz-landing-system : lando
2018-11-25 23:18:19 +00:00
L. David Baron
de68b78d22 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

--HG--
extra : moz-landing-system : lando
2018-11-26 23:21:54 +00:00
Boris Chiou
09a7c9a305 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

--HG--
extra : moz-landing-system : lando
2018-10-16 19:38:41 +00:00
Jan Henning
a51fb6feca 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

--HG--
extra : moz-landing-system : lando
2018-10-02 15:23:12 +00:00
Jan Henning
fe895aebac Bug 1428670 - Part 0: Fix mixed tabs and spaces. r=dbaron
Differential Revision: https://phabricator.services.mozilla.com/D5576

--HG--
extra : moz-landing-system : lando
2018-10-02 15:23:07 +00:00
Jan Henning
d80d7fbf77 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

--HG--
extra : moz-landing-system : lando
2018-10-01 22:07:57 +00:00
Bogdan Tara
80119cd08f 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
972d6e462f 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

--HG--
extra : moz-landing-system : lando
2018-09-29 15:55:14 +00:00
Jan Henning
b66b2ca7ad Bug 1428670 - Part 0: Fix mixed tabs and spaces. r=dbaron
Differential Revision: https://phabricator.services.mozilla.com/D5576

--HG--
extra : moz-landing-system : lando
2018-09-29 15:55:01 +00:00
Mats Palmgren
d6409e3f5e 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
31f0693d4a Bug 1491639 - rename function IS_TABLE_CELL r=dbaron
rename function IS_TABLE_CELL

Differential Revision: https://phabricator.services.mozilla.com/D5974

--HG--
extra : moz-landing-system : lando
2018-09-18 01:29:19 +00:00
Jean-Luc Bonnafoux
bc52e3f588 Bug 458473 - initialize local variable fType r=dbaron
Bug 458473 - initialize local variable fType

Differential Revision: https://phabricator.services.mozilla.com/D5387

--HG--
extra : moz-landing-system : lando
2018-09-14 22:04:17 +00:00