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