Commit Graph

546 Commits

Author SHA1 Message Date
Mats Palmgren
0ac2c33a9f Bug 919318 - A few cosmetic changes after dropping the Get prefix on some methods. r=dholbert 2013-09-25 11:42:35 +00:00
Mats Palmgren
ae50ca5ce4 Bug 919318 - Drop the Get prefix on the frame methods GetFirstContinuation, GetLastContinuation, GetFirstInFlow, GetLastInFlow and also on nsLayoutUtils::GetLastContinuationWithChild, because they never return null. r=dholbert 2013-09-25 11:42:34 +00:00
Daniel Holbert
e999460fd0 Bug 919871: Make .cpp files in layout/generic #include their corresponding .h file first. r=mats 2013-09-24 18:43:43 -07:00
Corey Ford
17fd17cb8b Bug 911786 - Part 2: Reapply relative positioning when moving frames without reflowing them. r=dholbert 2013-09-11 11:51:42 -07:00
Daniel Holbert
a4ed8c910a Bug 883514: During block reflow, check floats after reflowing bullet frames, instead of before. r=dbaron 2013-09-05 11:59:09 -07:00
Ehsan Akhgari
f56168072d Bug 907883 - Minimize #includes in layout/generic; r=roc
--HG--
extra : rebase_source : 5e87b764a12b05aff477c71547e2131be67ca93b
2013-08-22 14:32:52 -04:00
Jonathan Kew
65526d27a3 bug 904555 - clean up use of nsRect APIs in layout. r=roc 2013-08-14 13:27:20 +01:00
Corey Ford
c1f2a8126d Bug 898794 - Store normal frame position before applying relative positioning. r=dbaron 2013-08-08 17:20:17 -07:00
Corey Ford
c0b1bad70a Bug 898797 - Use nsHTMLReflowState::ApplyRelativePositioning when placing floats. r=dbaron 2013-07-29 21:53:13 -07:00
Scott Johnson
a5680b3063 Bug 743402, Part 4: Refactor ApplySkipSides() and GetSkipSides() to return the correct value during reflow by adding an optional nsHTMLReflowState parameter. [r=roc] 2013-07-25 10:34:27 -05:00
Scott Johnson
c9182b38da Bug 743402, Part 3: Refactor nsBlockFrame to utilize new calculations for paginated content. [r=roc] 2013-07-25 10:34:22 -05:00
Scott Johnson
5a676adbce Bug 743402, Part 2: Pull GetEffectiveComputedHeight() into nsSplittableFrame and refactor it to utilize consumed height for paginated content. [r=roc] 2013-07-25 10:34:16 -05:00
Ryan VanderMeulen
a692880c23 Backed out 6 changesets (bug 743402) for reftest failures on a CLOSED TREE.
Backed out changeset 19848fff857e (bug 743402)
Backed out changeset 049168537ae0 (bug 743402)
Backed out changeset 3098fea37f2d (bug 743402)
Backed out changeset ada93e976dca (bug 743402)
Backed out changeset c7907c54187f (bug 743402)
Backed out changeset 2edbbf6440c4 (bug 743402)
2013-07-24 15:14:04 -04:00
Scott Johnson
6003af5e8d Bug 743402, Part 4: Refactor ApplySkipSides() and GetSkipSides() to return the correct value during reflow by adding an optional nsHTMLReflowState parameter. [r=roc] 2013-07-24 12:47:17 -05:00
Scott Johnson
9a8d912f0d Bug 743402, Part 3: Refactor nsBlockFrame to utilize new calculations for paginated content. [r=roc] 2013-07-24 12:47:12 -05:00
Scott Johnson
a652917e76 Bug 743402, Part 2: Pull GetEffectiveComputedHeight() into nsSplittableFrame and refactor it to utilize consumed height for paginated content. [r=roc] 2013-07-24 12:47:06 -05:00
Mats Palmgren
9ff1b84050 Bug 883676 - Implement 'page-break-inside:avoid' also for the case where the block reflow is COMPLETE but does not fit in the available height. r=roc 2013-07-13 13:18:17 +00:00
Simon Montagu
f52ec81b93 Use GetFrameBaseLevel to drill down to the first leaf frame instead of just looking at the first child when getting the line direction. Bug 889742, r=roc 2013-07-04 10:13:52 +03:00
Daniel Holbert
3f6239a071 Bug 886313: Make DisplayLine generate display items in a temporary collection, so we can apply text-overflow clipping without affecting earlier lines. r=roc 2013-06-28 00:22:57 -07:00
Daniel Holbert
802a0acff1 Bug 884564 followup: fix end-of-line whitespace in nsBlockFrame::CreateContinuationFor. (whitespace-only, DONTBUILD) 2013-06-18 23:23:45 -07:00
Daniel Holbert
8c8ad220f1 Bug 884576: Make some nsBlockFrame helper-methods (ReflowPushedFloats, PrepareResizeReflow, & SplitLine) infallible. r=bz 2013-06-18 23:09:22 -07:00
Daniel Holbert
35f013099f Bug 884564: Make CreateContinuationFor() infallible and directly return its outparam. r=bz 2013-06-18 23:09:20 -07:00
Mats Palmgren
30feba8b8d Bug 863935. r=roc 2013-06-10 18:31:59 +00:00
Robert O'Callahan
a551f00d51 Bug 872254. Clear line/row cursors when overflow areas of lines or table rows change. r=bz
--HG--
extra : rebase_source : 81c1c4269e22ffad98433669ef152002b9d63533
2013-05-30 16:44:37 +12:00
L. David Baron
8eed96b5d6 Bug 871338: Handle NS_BLOCK_LOOK_FOR_DIRTY_FRAMES lazy marking in GetMinWidth and GetPrefWidth in addition to Reflow. r=bzbarsky 2013-05-13 15:37:00 -07:00
L. David Baron
1a4df21deb Fix warnings-as-errors bustage from changeset 09552b219c3a (Bug 828312 patch 3). 2013-05-10 18:04:55 -07:00
L. David Baron
e1c209333c Bug 828312 patch 3: Wait to mark lines dirty until we're in reflow, to avoid O(N^2) behavior as a result of looking for lines. r=bzbarsky
The assertion count reduction from 12 to 8 in
layout/generic/crashtests/798020-1.html is the removal of the 4
###!!! ASSERTION: math on NS_UNCONSTRAINEDSIZE: 'NS_UNCONSTRAINEDSIZE != aState.mReflowState.mComputedBorderPadding.left && NS_UNCONSTRAINEDSIZE != aState.mReflowState.ComputedWidth()'
in nsBlockFrame::PrepareResizeReflow by avoiding calling
nsBlockFrame::PrepareResizeReflow.
2013-05-10 17:35:08 -07:00
L. David Baron
b55a1a7ac7 Bug 828312 patch 2: Make list renumbering code set NS_FRAME_HAS_DIRTY_CHILDREN correctly on intermediate blocks and inlines, and NS_FRAME_IS_DIRTY correctly on the bullets. r=bzbarsky
The change to mark NS_FRAME_IS_DIRTY on the bullets fixes a failure in
layout/reftests/bugs/418574-1.html exposed by patch 3.
2013-05-10 17:35:08 -07:00
Daniel Holbert
60c2c28212 Bug 870555 part 1: Add curly braces around early-return in nsBlockFrame::GetSkipSides, for clarity. r=mats 2013-05-09 20:10:47 -07:00
Daniel Holbert
cdf2e95325 Bug 855841: Remove unused constants NS_STYLE_CLEAR_BLOCK, NS_STYLE_CLEAR_COLUMN, NS_STYLE_CLEAR_PAGE. r=mats r=fantasai 2013-05-02 16:01:11 -07:00
Mats Palmgren
cd2a9144a4 Bug 866785 - Move repeated nsIFrame::List implementations code to a new method, ListGeneric, for re-use. Cleanup and improve the code a bit. r=roc
Specifically:
* move all the frame dump methods to nsIFrame. Especially nsFrame::ListTag
  was annoying, often requiring a cast to nsFrame*.
* print common values in the same order for all types of frames
* print fluid continuations as "next-in-flow=%p" and non-fluid as
  "next-continuation=%p" (as before)
* print the style-context more compactly, e.g.
  "[sc=0x7faa6b60e0a0] pst=:first-line" becomes
  "[sc=0x7faa6b60e0a0:first-line]"
* suppress printing visual/scroll-overflow rects when they are identical
  to mRect and do the same for nsLineBox::List where it was especially
  hard to see which lines actually had real overflow
* fix a bug that printed the child list name at the far right when the
  principal list was empty (making it hard to see)
* print the address of child lists (other than the principal list) to
  help debug frame list property bugs
* s/NS_IMETHODIMP/void/
2013-04-30 20:38:52 +02:00
Daniel Holbert
d3e0a23853 Bug 865477: Use Maybe<> instead of nsAutoPtr<> for lazily-constructed nsHTMLReflowState in nsBlockFrame::Reflow(). r=bz 2013-04-25 09:03:28 -07:00
Chris Lord
54272cbda0 Bug 856932 - Fix fixed margins on position:fixed hierarchies. r=roc
Make sure that fixed margins aren't applied to auto-positioned frames, unless
their containing block is the primary frame of the body element.
2013-04-15 09:31:45 +01:00
Scott Johnson
b303b4dcb2 Bug 600100, Part 2: Force a vertical resize even if our available height hasn't changed in anonymous blocks of a column set so we don't crash. [r=mats] 2013-04-08 13:38:33 -05:00
Robert O'Callahan
29cfc08a5b Bug 841192. Part 13: Rename nsFrame::ApplyOverflowClipping to ShouldApplyOverflowClipping. r=mattwoodrow
We rename nsFrame::ApplyOverflowClipping to nsFrame::ShouldApplyOverflowClipping
to reflect the fact that it doesn't cause any clipping.

--HG--
extra : rebase_source : d3bd1ef902276526b37b27c510a8d3a9db6416dc
2013-03-07 00:08:16 +13:00
Mats Palmgren
7fa166a5f5 Bug 729519 - Allocate heap nsFrameLists from the shell arena. r=bzbarsky
"new nsFrameList()" becomes "new (shell) nsFrameList()".
"delete list" becomes "if (list) list->Delete(shell)" - note also that
an additional assertion was added that list is empty when deleted.

"nsAutoPtr<nsFrameList> list(StealSomeFrames())" becomes
"AutoFrameListPtr list(aPresContext, StealSomeFrames())"
2013-04-01 17:26:02 +02:00
Mats Palmgren
46cbb9a249 Bug 729519 - Make frames destroy all child frames and remove their nsFrameList properties when destroyed. r=bzbarsky
Specifically, this wasn't done for the OutsideBullet list which was
destroyed by the property destructor, potentially after the entire
frame tree was gone.  Now we'll assert that the property destructor
isn't called.

Use SafelyDestroyFrameListProp when destroying PushedFloat and
OverflowOutOfFlows frame lists since it's more robust.

Destroy [Excess]OverflowContainers frame lists if they exist, regardless
of the IsFrameOfType(nsIFrame::eCanContainOverflowContainers) bit
(since the oveflow continuation tracker doesn't check that before
creating these lists -- this was the source of crash bugs before
that bit was added to ColumnSetFrame).

Assert in SetPropTableFrames that the property doesn't exist, because
if it does the property destructor will run, which isn't supported.
2013-04-01 17:26:02 +02:00
Mats Palmgren
37e145bc26 Bug 851847 - Optimize nsBlockFrame::StealFrame when removing a normal flow child. r=bzbarsky 2013-03-23 21:49:45 +01:00
Mats Palmgren
3db9895bc1 Backout rev 85397e0a6dba - wrong patch. r=me 2013-03-23 21:45:53 +01:00
Mats Palmgren
1f8322a617 Bug 851847 - Optimize nsBlockFrame::StealFrame when removing a normal flow child. r=bzbarsky 2013-03-23 21:10:34 +01:00
Mats Palmgren
929c14eb76 Bug 851849 - Make nsBlockFrame::AddFrames() return void since it can't fail, and non-virtual since it's not meant to be overridden. Add a post-condition that the given
aFrameList is empty.  r=bzbarsky
2013-03-23 21:10:34 +01:00
Mats Palmgren
ff67e7f83e Bug 851848 - Remove the OOM check for allocating the BulletFrame now that PresArena allocations are infallible. r=bzbarsky 2013-03-23 21:10:34 +01:00
Mats Palmgren
e45878cd69 Bug 851848 - Remove OOM checks for the result of NewLineBox now that PresArena allocations are infallible. r=bzbarsky 2013-03-23 21:10:33 +01:00
Boris Zbarsky
f75d10efbe Bug 852501 part 4. Make CreateContinuingFrame infallible. r=dholbert 2013-03-19 21:47:49 -04:00
Boris Zbarsky
462f47d89e Bug 852428 part 2. Make nsIFrame::Init infallible. r=dholbert 2013-03-19 21:47:48 -04:00
Scott Johnson
ff3ba1992e Bug 600100, Part 1: Return a status of NS_FRAME_NOT_COMPLETE during reflow of nsBlockFrame if we have a next continuation with pushed floats to prevent crashing in columns. [r=dbaron] 2013-03-19 09:05:05 -05:00
Scott Johnson
a6c26d7c4b Backed out changeset 3b18c328b316 (bug 600100) to fix commit message DONTBUILD. 2013-03-19 09:43:27 -05:00
Scott Johnson
7cb809091c Bug 600100, Part 1: Return a status of NS_FRAME_NOT_COMPLETE during reflow of nsBlockFrame if we have a next continuation with pushed floats to prevent crashing in columns. 2013-03-19 09:05:05 -05:00
Mats Palmgren
fdbdd14611 Bug 847208 - Reuse RemoveFloat() in a couple of places that did manual removal of a float child frame. r=dbaron 2013-03-15 23:32:35 +01:00
Mats Palmgren
54813d8e16 Bug 847208 - Make RemoveFloat() check the PushedFloatsList too. r=dbaron 2013-03-15 23:32:35 +01:00