Commit Graph

1338 Commits

Author SHA1 Message Date
L. David Baron
4f42e20bbf 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
7a560806fe Fix warnings-as-errors bustage from changeset 09552b219c3a (Bug 828312 patch 3). 2013-05-10 18:04:55 -07:00
L. David Baron
043aa8e31a 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
950b14e6ab 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
1b3df360d5 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
27e0737999 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
377ee51cc1 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
20a21a655b 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
13b1e55ebd 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
133e0e26bb 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
f9819ba6db 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.
2013-03-07 00:08:16 +13:00
Mats Palmgren
868d2c33cd 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
0a2dd498d0 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
b88833be08 Bug 851847 - Optimize nsBlockFrame::StealFrame when removing a normal flow child. r=bzbarsky 2013-03-23 21:49:45 +01:00
Mats Palmgren
258a52976a Backout rev 85397e0a6dba - wrong patch. r=me 2013-03-23 21:45:53 +01:00
Mats Palmgren
2da2bd888c Bug 851847 - Optimize nsBlockFrame::StealFrame when removing a normal flow child. r=bzbarsky 2013-03-23 21:10:34 +01:00
Mats Palmgren
05e2111866 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
9bc7c9f09f 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
db3e972d1a 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
639eb6a8a4 Bug 852501 part 4. Make CreateContinuingFrame infallible. r=dholbert 2013-03-19 21:47:49 -04:00
Boris Zbarsky
c0d4537026 Bug 852428 part 2. Make nsIFrame::Init infallible. r=dholbert 2013-03-19 21:47:48 -04:00
Scott Johnson
5818c97afa 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
dc00523371 Backed out changeset 3b18c328b316 (bug 600100) to fix commit message DONTBUILD. 2013-03-19 09:43:27 -05:00
Scott Johnson
40dedcb3d7 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
402b5120a5 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
be100e1c19 Bug 847208 - Make RemoveFloat() check the PushedFloatsList too. r=dbaron 2013-03-15 23:32:35 +01:00
Ed Morley
cae11f11ce Backed out changeset 82bfa9035c6a (bug 847208) 2013-03-14 15:18:37 +00:00
Ed Morley
bda1d3afb9 Backed out changeset 253df4cdfdb9 (bug 847208) 2013-03-14 15:18:33 +00:00
Mats Palmgren
985c08625c 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
435ab4653e Bug 847208 - Make RemoveFloat() check the PushedFloatsList too. r=dbaron 2013-03-14 14:39:26 +01:00
Trevor Saunders
f0513dc537 bug 846487 - remove remaining usage of some nsIDOMFooElement r=Ms2Ger 2013-02-14 10:33:16 -05:00
Mats Palmgren
60e6895c7e 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
fcd1b3da79 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
d3ab74cd13 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
fcc69f12a6 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
8d94c2f916 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
6b76097b34 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
69c777f14a 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
a45f86c424 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
d4deaee2e3 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
84b52575a8 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
d8aca86a74 Backout changeset b968708558b9 (bug 839809) for reftest failures. 2013-02-21 19:25:54 -08:00
L. David Baron
04f47a6a65 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
f3775ec7ad Bug 822910. r=roc 2013-02-19 02:44:14 +01:00
L. David Baron
ca6c366dc6 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
b18cd55753 Bug 840902. Part 2: Remove nsresults from various display list methods. r=mattwoodrow 2013-02-15 00:12:27 +13:00
Robert O'Callahan
3ac2cf9858 Bug 840902. Part 1: Stop checking the results of various display list methods. r=mattwoodrow 2013-02-15 00:08:08 +13:00
L. David Baron
3c5d51984d 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
Cameron McCormack
91d7ae5119 Bug 655877 - Part 45: Fixes for DLBI. r=roc,jwatt 2013-02-11 17:22:20 +11:00
Daniel Holbert
1bb0486195 Bug 839302: Simplify logic in nsBlockFrame::DrainSelfOverflowList, and replace delete w/ nsAutoPtr. r=mats 2013-02-07 17:19:57 -08:00