Commit Graph

1538 Commits

Author SHA1 Message Date
Cameron McCormack
7c95c39734 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
185a769719 Bug 1244049 - Part 1: Define scoped enum for CSSPseudoElement type. r=dbaron
--HG--
extra : rebase_source : e53dd269e47fa97eb259ebd9295d012eacbdb612
2016-02-16 23:07:00 +01:00
Ting-Yu Lin
ea65853708 Bug 591737 - Construct details and summary in nsCSSFrameConstructor. r=bz
--HG--
extra : commitid : 7tnA5fqdD6L
extra : rebase_source : 452368859fb99183605edcf47fd48ff026bf3a50
2016-02-02 17:39:49 +08:00
L. David Baron
82aa75776d 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.

--HG--
extra : commitid : APy8PfXlvvz
2016-02-04 09:41:44 +11:00
Daniel Holbert
09939ec3c9 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
d7371d07d0 Bug 1235261 - Part 1: Rename nsAutoTArray to AutoTArray. r=froydnj 2016-02-02 17:36:30 +02:00
Phil Ringnalda
d381b4bca6 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
373593275e Bug 1235261 - Part 1: Rename nsAutoTArray to AutoTArray. r=froydnj 2016-01-31 17:12:12 +02:00
Ting-Yu Lin
1889f6bc41 Bug 1227927 Part 2 - Remove nsIFrame::GetFirstPrincipalChild(). r=mats
--HG--
extra : commitid : 5qtaK1nS8RC
extra : rebase_source : dcc98f423b2446269beb6fa6a9d092ae8213f38e
2016-01-29 22:42:14 +08:00
Xidorn Quan
00b4af1798 Bug 1230034 part 10 - Convert remaining frame properties to by typed and remove the unsafe declaring macro. r=dbaron
--HG--
extra : source : 19140dd4f1640c4600a0f9e0ff790b44f0cd83ca
2016-01-28 14:23:59 +11:00
Xidorn Quan
55a9f1daba Bug 1230034 part 8 - Convert frame properties which assert on destructor to be typed. r=dbaron
--HG--
extra : source : a650ac35ed4ef4c247369b4dc54b741d92e3c779
2016-01-28 14:23:59 +11:00
Xidorn Quan
072dccd81f Bug 1230034 part 6 - Convert all frame properties which do not hold pointer to be typed. r=dbaron
--HG--
extra : source : f95f143e0e521ad2f8726097a484de402c834620
2016-01-28 14:23:59 +11:00
Xidorn Quan
ab931a1326 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.

--HG--
extra : source : a1f7ff18a69cc116120de33f14ae62f576a4b55a
2016-01-28 10:11:00 +11:00
Nicholas Nethercote
06e901cb9f 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().

--HG--
extra : rebase_source : 8f56994bb4d254a86788b17ab2864ebc758a7e6b
2015-12-15 13:56:41 -08:00
Mats Palmgren
953043bd52 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
b05b423429 Bug 1231256 (part 6) - Remove unused parameter from Damage functions. r=roc.
--HG--
extra : rebase_source : 1c5bce4cde56ce7cd63aa719d9952bf72164e634
2015-12-07 15:23:34 -08:00
Nicholas Nethercote
ac18a09064 Bug 1230413 (part 4) - Remove unused nsRenderingContext argument from ForceBreak() and OptionallyBreak(). r=mattwoodrow.
--HG--
extra : rebase_source : 750496661635e7db65b26c625834f2d14a1b3e59
2015-12-06 14:13:57 -08:00
Anup Kumar
27d40f6dee Bug 1197307 - remove PR_snprintf calls in layout/ r=froydnj r=dholbert 2015-12-01 12:50:47 -08:00
Carsten "Tomcat" Book
7af3d35998 Backed out changeset 427dc5894094 (bug 1197307) for bustage 2015-12-01 10:04:50 +01:00
Anup Kumar
e8ff34c8eb Bug 1197307 - remove PR_snprintf calls in layout. r=froydnj r=dholbert 2015-11-27 21:44:00 +01:00
Ting-Yu Lin
79afc81f6e Bug 1226875 - Remove nsIFrame::GetFirstChild(). r=mats
--HG--
extra : commitid : J8NTL74JosY
extra : rebase_source : 50a196905ac06d09fea17bb1aa17efe821cc7cbb
2015-11-26 17:12:39 +08:00
Xidorn Quan
8de66b64b3 Bug 994418 - Renumber list items when computing intrinsic isize. r=roc
--HG--
extra : source : 65c07947ba268b74aa5ebbf2dd4681d68038a548
extra : amend_source : 2284f79dde11000547fed08ff90315d46490702b
2015-11-20 15:29:27 +11:00
Mats Palmgren
03bd1366df 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
31d3e04fd9 Backed out changeset 1fc0ecca3e9b (bug 1153695) for test_value_cloning.html bustage CLOSED TREE
--HG--
extra : commitid : Cehes9e2lBC
2015-11-16 11:00:28 -08:00
Mats Palmgren
6e7818f946 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
022c161e17 Bug 1224230 - Explicitly store the lineContainer's writing mode in InlineIntrinsicISizeData. r=dbaron 2015-11-14 08:46:11 +00:00
Jonathan Kew
5cb2b4ceea 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
f478a9bc3f Bug 1170781 - Patch 1: Implement CSS 'contain: paint'. r=dholbert 2015-11-09 13:32:00 +01:00
Nathan Froyd
01583602a9 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

--HG--
rename : mfbt/nsRefPtr.h => mfbt/RefPtr.h
2015-10-18 01:24:48 -04:00
Mats Palmgren
bfaaa79619 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
9739e1fe6c 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
--HG--
extra : commitid : HRqckWRd8My
2015-09-27 02:19:14 -07:00
Mats Palmgren
73b1279e0e 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
8c08fc4385 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).

--HG--
extra : commitid : 1YUuWOKeInm
2015-08-05 21:04:38 -07:00
L. David Baron
119b557460 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).

--HG--
extra : commitid : FgDc4hjTxHp
2015-08-02 21:03:09 -07:00
L. David Baron
e92e2b3d34 Bug 538194 patch 1 - Refactor some code dealing with fitting block formatting contexts around floats into separate functions. r=roc
--HG--
extra : commitid : 5GnXOwsYaJA
2015-08-02 21:03:09 -07:00
Jonathan Kew
4e6c40d7ea 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
cb57b1ad8c 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
a3380043e5 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
c197ee959d Bug 1174521 - Backout the second part of bug 1143570 to fix the regression; r=roc 2015-06-17 17:45:51 -04:00
Carsten "Tomcat" Book
47a56a31ae Backed out changeset b857e7a2ab26 (bug 1174521) for timeouts in test_bug1174521.html 2015-06-17 10:12:21 +02:00
Ehsan Akhgari
4dd45d21af Bug 1174521 - Backout the second part of bug 1143570 to fix the regression; r=roc 2015-06-17 01:34:00 -04:00
Simon Montagu
d4298ccd14 Bug 1172774: for a box with a writing mode orthogonal to its containing block, calculate positioning values (margin, padding and offsets) in the writing mode of the containing block, r=jfkthame 2015-06-10 23:42:56 -07:00
Ehsan Akhgari
869988e2ed Bug 1143570 - Part 2: Update the block frame's line cursor every time that nsBlockInFlowLineIterator's constructor finds a new line; r=roc 2015-06-09 15:58:56 -04:00
Jonathan Kew
240749da44 Bug 1167145 - Check result of PrevInFlow() before trying to call a method on it. r=dbaron 2015-05-22 08:49:30 +01:00
Jonathan Kew
0b6c2066f3 Bug 1159305 - patch 2 - Clean up layout code by using the new accessors. r=smontagu 2015-05-11 11:37:46 +01:00
Sylvestre Ledru
9f25cd5d7e Bug 1160784 - Remove a misleading declaration r=smontagu 2015-05-03 17:49:37 +02:00
Jonathan Kew
3381e78769 Bug 1158549 - Properly apply min/max constraints to block-size in vertical writing modes. r=smontagu 2015-04-27 09:41:37 +01:00
Mats Palmgren
2f31bdf840 Bug 1143299 - Make frame insertion methods deal with aPrevFrame being on an overflow list. r=roc a=abillings 2015-04-11 00:21:06 +00:00
Mats Palmgren
946b96cca9 Bug 1145768 - Use the right begin() iterator to compare with. r=roc
Using the wrong begin() means that RFindLineContaining would hang
in the case the frame isn't on the overflow list.  We should always
find it there though, if it wasn't found on the principal list, so
the bug is harmless apart from the assertion.
2015-04-09 17:57:34 +00:00
Jonathan Kew
8ecb8c5e7f Bug 1145218 - Require a new float manager if a block frame has a different writing-mode to its parent's. r=dbaron 2015-04-01 16:43:59 +01:00