Commit Graph

1999 Commits

Author SHA1 Message Date
Jeremy Chen
315352c619 Bug 1275831 - part1: fix NOISY_FLOAT block layout debug flag. r=dholbert
MozReview-Commit-ID: AOgV0TK6uyj
2016-05-27 16:06:27 +08:00
Mats Palmgren
1f89536089 Bug 1271392 part 6 - [css-grid] Remove now dead code. r=dholbert 2016-05-18 13:49:33 +02:00
Mats Palmgren
b0713aff57 Bug 1271392 part 4 - [css-grid] Make sure a grid item's last fragment fills its grid area. r=dholbert 2016-05-18 13:49:33 +02:00
Cameron McCormack
3bb5936996 Bug 1271869 - Rename NS_STYLE_TEXT_ALIGN_DEFAULT to NS_STYLE_TEXT_ALIGN_START. r=dholbert 2016-05-11 14:03:34 +10:00
Matt Woodrow
61200a9c5c Bug 1243610 - Refactor UpdateOverflow to separate out local overflow from that contributed by descendants. r=dbaron 2016-05-04 12:27:43 +12:00
Ting-Yu Lin
2d9af614f7 Bug 1260090 - Remove nsBlockFrameSuper as nsContainerFrame alias. r=dholbert
MozReview-Commit-ID: IzI88HCayfi
2016-03-28 14:39:42 +08:00
Xidorn Quan
a775f13687 Bug 1235321 - Enable using line cursor to optimize reflowing absolute frames. r=bz
MozReview-Commit-ID: 4tVq5S4eTtS
2016-04-13 13:42:28 +10:00
Mats Palmgren
1a83f57b72 Bug 645647 part 4 - Add an 'm' prefix to some members to follow our naming conventions. r=dholbert 2016-04-14 01:32:12 +02:00
Ting-Yu Lin
6658072156 Bug 1258657 Part 1 - Change summary default style to "display: list-item" to match html spec. r=bz
Per html spec, the disclosure triangle can be generated via "display:
list-item", I removed the code to generate the triangle in
SummaryFrame::SetInitialChildList(). That is, when a web page set
"display: block" to the summary, the triangle will disappear, too.

Now SummaryFrame does nothing and is going to be removed in Part 2.

Also summary element should not increment the counter as hinted as
"counter-increment: list-item 0" in the spec. Hence the change in
nsBlockFrame::RenumberListsFor().

The rendering hint in html spec:
https://html.spec.whatwg.org/multipage/rendering.html#the-details-and-summary-elements

MozReview-Commit-ID: DELGYFe3zGX
2016-04-13 13:34:14 +08:00
Xidorn Quan
ba620a636b Bug 1257121 part 4 - Use return value rather than out param to return font metrics. r=jfkthame
MozReview-Commit-ID: 6xrHYbgHGVd
2016-03-17 13:55:48 +08:00
Xidorn Quan
289ca1f35e Bug 1257121 part 3 - Add GetInflatedFontMetricsForFrame function to simplify a common use pattern. r=jfkthame
MozReview-Commit-ID: 4KMLCz6wQHQ
2016-03-17 12:07:47 +08:00
Cameron McCormack
8a879b8032 Bug 1244068 - Part 4: Use StyleSetHandle instead of concrete style set class in most places. r=dholbert 2016-02-24 18:01:11 +11:00
Boris Chiou
16edfa82cd Bug 1244049 - Part 1: Define scoped enum for CSSPseudoElement type. r=dbaron 2016-02-16 23:07:00 +01:00
Ting-Yu Lin
5ec9e745ba Bug 591737 - Construct details and summary in nsCSSFrameConstructor. r=bz 2016-02-02 17:39:49 +08:00
L. David Baron
f0ac0f84d4 Bug 1236745 - Fix infinite loop resulting from block formatting context entering resize oscillation due to considering floats over its whole height when sizing it. r=dholbert
What's happening here is that we enter an infinite loop by oscillating
between two states.  The code assumes that (a) the available space will
never grow, only stay the same or shrink, and (b) that we should break
out of the loop if it stays the same.  This also means we hit the
assertion about the available space growing every other time through the
loop.

This is in the inner loop in nsBlockFrame::ReflowBlockFrame that was
introduced in https://hg.mozilla.org/mozilla-central/rev/80ef9bb2c2e9 .

The problem is fundamentally a logic error in that code.  The makes the
assumption that if you reduce the width available to a block formatting
context or replaced block-level element, its height does not shrink.
(The "replaced block" (really block formatting context) in this case, as
in the original testcase, is a scroll frame.  I didn't debug the
original testcase enough to figure out what caused its sizing
characteristics, although a percentage-width image does seem like the
most likely candidate.)

Without the patch, the reftest test (but not reference) hangs, as does
the semi-simplified test in the bug (given a narrow window).

With the patch, neither the semi-simplified test in the bug nor the
reference hangs, and the reftest passes.
2016-02-04 09:41:44 +11:00
Daniel Holbert
d19bd3cc0f Bug 1245406: In ReflowBlockFrame, use Maybe<> to destroy & reconstruct a stack-allocated object, instead of an explicit call to destructor & placement 'new'. r=dbaron 2016-02-03 12:37:23 -08:00
Birunthan Mohanathas
bfee0fb40c Bug 1235261 - Part 1: Rename nsAutoTArray to AutoTArray. r=froydnj 2016-02-02 17:36:30 +02:00
Phil Ringnalda
d871b9515f Back out 7 changesets (bug 1235261) for cpptest failures in TestTArray
CLOSED TREE

Backed out changeset d66c3f19a210 (bug 1235261)
Backed out changeset 467d945426bb (bug 1235261)
Backed out changeset 32b61df13142 (bug 1235261)
Backed out changeset c50bb8ed4196 (bug 1235261)
Backed out changeset 0ff0fa6fe81f (bug 1235261)
Backed out changeset df70e89669da (bug 1235261)
Backed out changeset 064969357fc9 (bug 1235261)
2016-01-31 10:10:57 -08:00
Birunthan Mohanathas
245cd6a02f Bug 1235261 - Part 1: Rename nsAutoTArray to AutoTArray. r=froydnj 2016-01-31 17:12:12 +02:00
Ting-Yu Lin
122e5b9aeb Bug 1227927 Part 2 - Remove nsIFrame::GetFirstPrincipalChild(). r=mats 2016-01-29 22:42:14 +08:00
Xidorn Quan
0b78aca734 Bug 1230034 part 10 - Convert remaining frame properties to by typed and remove the unsafe declaring macro. r=dbaron 2016-01-28 14:23:59 +11:00
Xidorn Quan
9ad6eb8dd0 Bug 1230034 part 8 - Convert frame properties which assert on destructor to be typed. r=dbaron 2016-01-28 14:23:59 +11:00
Xidorn Quan
c26e860288 Bug 1230034 part 6 - Convert all frame properties which do not hold pointer to be typed. r=dbaron 2016-01-28 14:23:59 +11:00
Xidorn Quan
0f1150d793 Bug 1064843 part 5 - Ensure frames behave properly for unknown child list id passed into SetInitialChildList. r=dholbert
Note that nsMathMLContainerFrame and its subclasses are unchanged since
they are not target of fullscreen (and thus no backdrop frame), and they
have an assertion to ensure we really don't pass any unexpected list in.
2016-01-28 10:11:00 +11:00
Nicholas Nethercote
7fabd8754f Bug 1231550 - Use DrawTarget instead of gfxContext and/or nsRenderingContext in many places in font/text code. r=jfkthame.
AutoTextRun now only needs a DrawTarget instead of an nsRenderingContext, and
similar nsRenderingContext/gfxContext-to-DrawTarget replacements can be
propagated a long way up the call graph. This patch replaces 93 occurrences of
nsRenderingContext and 135 occurrences of gfxContext with DrawTarget; that's
13% of them.

The patch is mostly plumbing changes. A couple of not-entirely-plumbing
changes:

- It adds a comment about the null check in
  gfxGlyphExtents::GetTightGlyphExtentsAppUnits().

- A couple of functions simply had an unused gfxContext or nsRenderingContext
  parameter removed, e.g. SetLineBreaks().
2015-12-15 13:56:41 -08:00
Mats Palmgren
871c9ae3b7 Bug 1151243 part 1 - Replace three bool params for nsAbsoluteContainingBlock::Reflow with a flag param (idempotent patch). r=dholbert 2015-12-22 23:03:16 +01:00
Nicholas Nethercote
3d8166e857 Bug 1231256 (part 6) - Remove unused parameter from Damage functions. r=roc. 2015-12-07 15:23:34 -08:00
Nicholas Nethercote
fe73890223 Bug 1230413 (part 4) - Remove unused nsRenderingContext argument from ForceBreak() and OptionallyBreak(). r=mattwoodrow. 2015-12-06 14:13:57 -08:00
Anup Kumar
f7654c8a69 Bug 1197307 - remove PR_snprintf calls in layout/ r=froydnj r=dholbert 2015-12-01 12:50:47 -08:00
Carsten "Tomcat" Book
c03f83db35 Backed out changeset 427dc5894094 (bug 1197307) for bustage 2015-12-01 10:04:50 +01:00
Anup Kumar
10448e885c Bug 1197307 - remove PR_snprintf calls in layout. r=froydnj r=dholbert 2015-11-27 21:44:00 +01:00
Ting-Yu Lin
ec7b5746f9 Bug 1226875 - Remove nsIFrame::GetFirstChild(). r=mats 2015-11-26 17:12:39 +08:00
Xidorn Quan
6f4d77ea15 Bug 994418 - Renumber list items when computing intrinsic isize. r=roc 2015-11-20 15:29:27 +11:00
Mats Palmgren
c3bca5a645 Bug 1153695 - Wrap nsAutoOOFFrameList in a scope to ensure its dtor runs before the VerifyOverflowSituation() call (to avoid frames appearing to be on two child lists). r=roc 2015-11-16 17:32:39 +01:00
Wes Kocher
77ea04e3a0 Backed out changeset 1fc0ecca3e9b (bug 1153695) for test_value_cloning.html bustage CLOSED TREE 2015-11-16 11:00:28 -08:00
Mats Palmgren
2b5ebdff78 Bug 1153695 - Wrap nsAutoOOFFrameList in a scope to ensure its dtor runs before the VerifyOverflowSituation() call (to avoid frames appearing to be on two child lists). r=roc 2015-11-16 17:32:39 +01:00
Jonathan Kew
e418782b93 Bug 1224230 - Explicitly store the lineContainer's writing mode in InlineIntrinsicISizeData. r=dbaron 2015-11-14 08:46:11 +00:00
Jonathan Kew
58a8d723ee Bug 1122918 - Part 3 - Use the resolved physical values of 'float' and 'clear' properties during layout. r=heycam 2015-09-18 16:25:21 +01:00
Kyle Zentner
75a3923e77 Bug 1170781 - Patch 1: Implement CSS 'contain: paint'. r=dholbert 2015-11-09 13:32:00 +01:00
Nathan Froyd
4e6d8f6705 Bug 1207245 - part 6 - rename nsRefPtr<T> to RefPtr<T>; r=ehsan; a=Tomcat
The bulk of this commit was generated with a script, executed at the top
level of a typical source code checkout.  The only non-machine-generated
part was modifying MFBT's moz.build to reflect the new naming.

CLOSED TREE makes big refactorings like this a piece of cake.

 # The main substitution.
find . -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    xargs perl -p -i -e '
 s/nsRefPtr\.h/RefPtr\.h/g; # handle includes
 s/nsRefPtr ?</RefPtr</g;   # handle declarations and variables
'

 # Handle a special friend declaration in gfx/layers/AtomicRefCountedWithFinalize.h.
perl -p -i -e 's/::nsRefPtr;/::RefPtr;/' gfx/layers/AtomicRefCountedWithFinalize.h

 # Handle nsRefPtr.h itself, a couple places that define constructors
 # from nsRefPtr, and code generators specially.  We do this here, rather
 # than indiscriminantly s/nsRefPtr/RefPtr/, because that would rename
 # things like nsRefPtrHashtable.
perl -p -i -e 's/nsRefPtr/RefPtr/g' \
     mfbt/nsRefPtr.h \
     xpcom/glue/nsCOMPtr.h \
     xpcom/base/OwningNonNull.h \
     ipc/ipdl/ipdl/lower.py \
     ipc/ipdl/ipdl/builtin.py \
     dom/bindings/Codegen.py \
     python/lldbutils/lldbutils/utils.py

 # In our indiscriminate substitution above, we renamed
 # nsRefPtrGetterAddRefs, the class behind getter_AddRefs.  Fix that up.
find . -name '*.cpp' -o -name '*.h' -o -name '*.idl' | \
    xargs perl -p -i -e 's/nsRefPtrGetterAddRefs/RefPtrGetterAddRefs/g'

if [ -d .git ]; then
    git mv mfbt/nsRefPtr.h mfbt/RefPtr.h
else
    hg mv mfbt/nsRefPtr.h mfbt/RefPtr.h
fi
2015-10-18 01:24:48 -04:00
Mats Palmgren
901b911c7d Bug 790260 - Make CollectFloats remove the IS_PUSHED_FLOAT bit in case the float was collected from the PushedFloats list. r=roc 2015-10-07 00:54:51 +02:00
L. David Baron
ca65a72c62 Bug 1207157 patch 3 - Don't bother passing around the inline-end margin of replaced elements we consider clearing past floats, since we don't need it any more. r=jfkthame 2015-09-27 02:19:14 -07:00
Mats Palmgren
3e3cf3cc2b Bug 1174553 part 3 - [css-grid] Implement the 'min-content' / 'max-content' sizing functions in layout. r=dholbert 2015-09-04 22:06:57 +02:00
L. David Baron
0b90b534c9 Bug 451791 patch 1 - Remove write-only nsHTMLReflowState::mFlags::mHasClearance. r=roc
This was introduced in bug 209694 (gecko-dev 13a65028) but became unused
through bug 292295 (gecko-dev 4593df2a57) and bug 300030 (gecko-dev
31f18988).
2015-08-05 21:04:38 -07:00
L. David Baron
a65f690e5b Bug 538194 patch 2 - Redo block reflow below floats when the height of a block that does not intersect floats pushes it into the way of other floats. r=roc
This adds an additional retry loop in block reflow that we can only
trigger when reflowing a block formatting context (replacedBlock
non-null).  It can retry in two different ways, either with a narrower
width but at the same vertical position (when
ReplacedBlockFitsInAvailSpace is still true) or at a new vertical
position (which is treated as a form of clearance).

Fortunately we don't have to worry about margins collapsing *through*
such a boundary since we're dealing with a new block formatting context.

Note that Chromium passes all of the new bfc-displace-* tests, although
it moves the block formating context down unnecessarily in
bfc-shrink-1.html (which we do neither before nor after the patch),
though agrees with the width we have after the patch (but not before the
patch).
2015-08-02 21:03:09 -07:00
L. David Baron
ea2020c582 Bug 538194 patch 1 - Refactor some code dealing with fitting block formatting contexts around floats into separate functions. r=roc 2015-08-02 21:03:09 -07:00
Jonathan Kew
7e8bda5a72 Bug 1131451 part 1 - Replace containerWidth with containerSize in logical-coordinate classes and APIs, frame classes, etc. r=dholbert 2015-07-16 10:07:57 +01:00
Daniel Holbert
4bdbe39881 Bug 1177925: Use range-based "for" loops for nsFrameList iteration, in various places in layout. r=tn 2015-06-29 13:02:21 -07:00
Jonathan Kew
a45bc02094 Bug 1174507 - Replace the frame flag CONTAINS_RELATIVE_HEIGHT with CONTAINS_RELATIVE_BSIZE, and adjust callsites appropriately. r=dholbert 2015-06-18 07:33:50 +01:00
Ehsan Akhgari
ff417fc7d4 Bug 1174521 - Backout the second part of bug 1143570 to fix the regression; r=roc 2015-06-17 17:45:51 -04:00