Commit Graph

524 Commits

Author SHA1 Message Date
Mats Palmgren
d94d666670 Bug 863935. r=roc 2013-06-10 18:31:59 +00:00
Robert O'Callahan
0cd25518d1 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
1f1e3bad30 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
9f8e9f40d7 Fix warnings-as-errors bustage from changeset 09552b219c3a (Bug 828312 patch 3). 2013-05-10 18:04:55 -07:00
L. David Baron
3f8575e3eb 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
baf2225550 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
448db15f5b 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
be6e1d5836 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
796a090f34 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
1ed5b0bc3f 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
d70ef10427 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
800a1db98f 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
62aa179c29 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
a9123c3d10 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
0a84b8dbff 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
00ceb5a595 Bug 851847 - Optimize nsBlockFrame::StealFrame when removing a normal flow child. r=bzbarsky 2013-03-23 21:49:45 +01:00
Mats Palmgren
a98c0cde58 Backout rev 85397e0a6dba - wrong patch. r=me 2013-03-23 21:45:53 +01:00
Mats Palmgren
56ef5c292e Bug 851847 - Optimize nsBlockFrame::StealFrame when removing a normal flow child. r=bzbarsky 2013-03-23 21:10:34 +01:00
Mats Palmgren
10dc9659ed 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
0e54488c73 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
134413ceb0 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
ca163976eb Bug 852501 part 4. Make CreateContinuingFrame infallible. r=dholbert 2013-03-19 21:47:49 -04:00
Boris Zbarsky
f1589419f5 Bug 852428 part 2. Make nsIFrame::Init infallible. r=dholbert 2013-03-19 21:47:48 -04:00
Scott Johnson
dd2a4b5ec2 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
ed9f2147f2 Backed out changeset 3b18c328b316 (bug 600100) to fix commit message DONTBUILD. 2013-03-19 09:43:27 -05:00
Scott Johnson
17da576025 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
30b8a9aadc 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
9590785240 Bug 847208 - Make RemoveFloat() check the PushedFloatsList too. r=dbaron 2013-03-15 23:32:35 +01:00
Ed Morley
d9733f76a8 Backed out changeset 82bfa9035c6a (bug 847208) 2013-03-14 15:18:37 +00:00
Ed Morley
3e60173ed5 Backed out changeset 253df4cdfdb9 (bug 847208) 2013-03-14 15:18:33 +00:00
Mats Palmgren
6597974e6c Bug 847208 - Reuse RemoveFloat() in a couple of places that did manual removal of a float child frame. r=dbaron 2013-03-14 14:39:26 +01:00
Mats Palmgren
ef5ba27916 Bug 847208 - Make RemoveFloat() check the PushedFloatsList too. r=dbaron 2013-03-14 14:39:26 +01:00
Trevor Saunders
c8fcbf60b7 bug 846487 - remove remaining usage of some nsIDOMFooElement r=Ms2Ger 2013-02-14 10:33:16 -05:00
Mats Palmgren
4e28c8eeeb Bug 847130 - Do DestroyOverflowLines() if the last line was removed instead of always RemoveOverflowLines() and SetOverflowLines() when there's lines remaining. r=dbaron 2013-03-04 00:46:56 +01:00
Mats Palmgren
c6a0684622 Bug 843332 - Pass 'false' to ReparentFloats since we only added one frame ('true' only works because the added frame never has any siblings in this case). r=bzbarsky 2013-02-28 00:05:46 +01:00
Mats Palmgren
37e20d7206 Bug 843332 - Don't pass the nsBlockReflowState to PullFrameFrom that doesn't use it. Add some assertions. r=bzbarsky 2013-02-28 00:05:46 +01:00
Mats Palmgren
cb5078d057 Bug 843332 - Make PullFrame drain the overflow list before calling PullFrameFrom that can then be simplified to only deal with mList/mFrames (should be minor perf win too). r=bzbarsky 2013-02-28 00:05:45 +01:00
Mats Palmgren
de5dfbb673 Bug 840818 - Simplify PullFrameFrom when the last frame was removed from an overflow list (avoiding an assertion). r=bzbarsky 2013-02-28 00:05:45 +01:00
Mats Palmgren
07afc8c345 Bug 838688 - Optimize CollectFloats by doing an early return if this block doesn't have any floats. r=bzbarsky 2013-02-28 00:05:45 +01:00
Mats Palmgren
4463b09f8a Bug 838688 - Make ReparentFloats/CollectFloats not require a priori knowledge of which child list a float is expected to be on. r=bzbarsky 2013-02-28 00:05:45 +01:00
Mats Palmgren
f74a272a93 Bug 838671 - Make nsBlockFrame::RemoveFloat O(1) and make it just do the frame removal bit and let DoRemoveOutOfFlowFrame do the Destroy part (with the intent of making RemoveFloat reusable for other code). r=bzbarsky 2013-02-28 00:05:45 +01:00
Mats Palmgren
c3df5e54c1 Bug 838642 - Introduce nsFrameList::StartRemoveFrame/ContinueRemoveFrame that can be used in concert to remove a frame in O(1) time from a set of frame lists when its exact frame list is unknown. Use them to make nsContainerFrame::StealFrame O(1). r=bzbarsky 2013-02-28 00:05:44 +01:00
L. David Baron
b95410686a Bug 839809: Make counter-increments and list counting that would go past our internal (int32_t) limit keep the counter at its current value rather than wrapping. r=dholbert
Per CSS WG resolution regarding counter-styles-3, afternoon of 2013-02-05:
http://krijnhoetmer.nl/irc-logs/css/20130205#l-1590
http://lists.w3.org/Archives/Public/www-style/2013Feb/0392.html
2013-02-22 10:13:37 -08:00
L. David Baron
88352988db Backout changeset b968708558b9 (bug 839809) for reftest failures. 2013-02-21 19:25:54 -08:00
L. David Baron
c50a9d6ae8 Bug 839809: Make counter-increments and list counting that would go past our internal (int32_t) limit keep the counter at its current value rather than wrapping. r=dholbert
Per CSS WG resolution regarding counter-styles-3, afternoon of 2013-02-05:
http://krijnhoetmer.nl/irc-logs/css/20130205#l-1590
http://lists.w3.org/Archives/Public/www-style/2013Feb/0392.html

Note that this patch depends on signed integer overflow behavior in C++,
which I believe is portable despite being unspecified.
2013-02-21 18:10:59 -08:00
Mats Palmgren
17d5ff653f Bug 822910. r=roc 2013-02-19 02:44:14 +01:00
L. David Baron
822b2ca3bc Bug 781360 patch 3: Rename {nsIFrame,nsStyleContext,nsComputedDOMStyle}::GetStyle* to Style*, since they can never return null. r=dholbert
Except for the changes in:
  layout/generic/nsIFrame.h (part)
  layout/style/nsComputedDOMStyle.h (all)
  layout/style/nsRuleNode.cpp (part)
  layout/style/nsStyleContext.cpp (part)
  layout/style/nsStyleContext.h (part)
(see patch 3b in the bug), this patch was written with the sed script:
s/\<GetStyle\(Font\|Color\|List\|Text\|Visibility\|Quotes\|UserInterface\|TableBorder\|SVG\|Background\|Position\|TextReset\|Display\|Content\|UIReset\|Table\|Margin\|Padding\|Border\|Outline\|XUL\|SVGReset\|Column\)\>/Style\1/g
2013-02-16 13:51:02 -08:00
Robert O'Callahan
d9665619b9 Bug 840902. Part 2: Remove nsresults from various display list methods. r=mattwoodrow
--HG--
extra : rebase_source : de498510bf8d85d9b0b2fab0137ef3be01c9adfa
2013-02-15 00:12:27 +13:00
Robert O'Callahan
59dfd955a1 Bug 840902. Part 1: Stop checking the results of various display list methods. r=mattwoodrow
--HG--
extra : rebase_source : 50a3d6809ef76a25a3d02d91f2873d9ba11fdc56
2013-02-15 00:08:08 +13:00
L. David Baron
63fdfec174 Bug 841789, patch 1: Rename nsIFrame::GetStyleContext() to nsIFrame::StyleContext() since it can never return null. r=dholbert
This makes it conform to our convention that getters returning pointers
that can never be null do not begin with "Get".
2013-02-15 21:38:33 -08:00