Commit Graph

478 Commits

Author SHA1 Message Date
Robert O'Callahan
540be00480 Backing out changesets ef599d7f3f11, 70ef464f50e3 and 1a204c38918e (bug 735898) due to test failures. 2012-04-12 00:34:23 +12:00
Robert O'Callahan
a66d3252b3 Bug 735898. Part 3: In DisplayBorderBackgroundOutline, when we have created an nsDisplayBackground item and it's themed, don't bother checking to create an nsDisplayBorder item. r=mattwoodrow
It turns out that calling HasBorder() is especially expensive for themed frames since we call into the theme engine to compute the border, so avoiding it is a nice win.
2012-04-11 16:49:34 +12:00
Robert O'Callahan
833e8a244f Bug 733607. Restructure logic to compute snapped bounds of display items in layer coordinates. Moves responsibility for computing snapped bounds from within the display items to callers of GetBounds/GetOpaqueRegion. r=tnikkel
Previously we snapped the results of nsDisplayItem::GetBounds and
nsDisplayItem::GetOpaqueRegion internally. By tracking which display items were
inside transforms, we disabled snapping quite conservatively whenever an ancestor
had a transform, which is undesirable.

With this patch, we don't snap inside GetBounds or GetOpaqueRegion, but just return
a boolean flag indicating whether the item will draw with snapping or not. This flag
is conservative so that "true" means we will snap (if the graphics context has a transform
that allows snapping), but "false" means we might or might not snap (so it's always safe
to return false).

FrameLayerBuilder takes over responsibility for snapping item bounds. When it converts
display item bounds to layer pixel coordinates, it checks the snap flag returned from
the display item and checks whether the transform when we draw into the layer will be
a known scale (the ContainerParameters scale factors) plus integer translation. If both
are true, we snap the item bounds when converting to layer pixel coordinates. With
this approach, we can snap item bounds even when the items have ancestors with active
transforms.
2012-04-10 23:24:18 +12:00
Mats Palmgren
ed602d82e2 Bug 736915 - Print Selection prints a blank page when the selection is inside a table. r=bz
When rendering just the current Selection (Print - Selection) then don't create display items
for table-related frames unless the frame itself is part of the selection, and always ask
descendant frames to build display lists [in case they are selected].
2012-04-03 02:30:45 +02:00
Boris Zbarsky
9e8ae45be1 Bug 735579. Correctly handle changes to column widths in fixed-layout tables. r=ehsan 2012-03-16 15:56:41 -04:00
Daniel Holbert
ce6dc9863d Bug 732610 - Make nsIFrame::ComputeSize take a bitfield 'aFlags' instead of a bool 'aShrinkWrap'. r=dbaron 2012-03-16 11:01:05 -07:00
Mats Palmgren
bc861fa127 Bug 728906 - Make nsIFrame::GetChildList return const nsFrameList&. r=bz 2012-03-08 02:57:37 +01:00
Nathan Froyd
7adb7a65ea Bug 731615 - Eliminate duplicate headers in layout. rs=smontagu 2012-02-29 10:57:47 -05:00
Matt Woodrow
914010d2c8 Bug 721082 - Constify nsIFrame::GetParentStyleContextFrame. r=roc 2012-02-15 22:28:21 +13:00
Aryeh Gregor
4d601b2fb2 Bug 722777 - Tables with 'transform' property set don't act as abs-pos/fixed-pos containers; r=roc
--HG--
rename : layout/reftests/transform/abspos-1a.html => layout/reftests/transform/abspos-1f.html
rename : layout/reftests/transform/abspos-1b.html => layout/reftests/transform/abspos-1g.html
2012-02-10 21:05:00 +00:00
Panagiotis Koutsourakis
583eb38038 Bug 702388 - Convert Makefiles to use |TEST_DIRS += foo| r=khuey
Files named Makefile.in containing the expression

DIRS += <foo>
or
DIRS = <foo>

inside the conditional expression

ifdef ENABLE_TESTS
...
endif

are changed to

TEST_DIRS += tests

outside any conditional expression.

The files

./layout/Makefile.in
./layout/Makefile.in
./layout/style/Makefile.in
./rdf/Makefile.in
./security/manager/Makefile.in
./content/Makefile.in
./content/smil/Makefile.in
./content/xul/templates/Makefile.in
./content/xul/content/Makefile.in
./content/base/Makefile.in
./content/media/Makefile.in
./parser/htmlparser/Makefile.in
./dom/sms/Makefile.in
./js/jsd/Makefile.in
./js/xpconnect/Makefile.in
./widget/Makefile.in
./widget/windows/Makefile.in
./Makefile.in
./startupcache/Makefile.in
./storage/Makefile.in
./gfx/Makefile.in
./intl/strres/Makefile.in
./intl/uconv/Makefile.in
./intl/unicharutil/Makefile.in
./intl/lwbrk/Makefile.in
./embedding/Makefile.in
./modules/libjar/Makefile.in
./modules/libpref/Makefile.in
./build/Makefile.in
./build/win32/Makefile.in
./xpcom/Makefile.in
./extensions/spellcheck/hunspell/Makefile.in
./extensions/cookie/Makefile.in
./netwerk/Makefile.in
./netwerk/streamconv/Makefile.in
./editor/txmgr/Makefile.in
./toolkit/mozapps/shared/Makefile.in
./toolkit/mozapps/update/Makefile.in
./toolkit/library/Makefile.in
./toolkit/library/Makefile.in
./toolkit/crashreporter/Makefile.in
./toolkit/components/perf/Makefile.in
./toolkit/components/perf/Makefile.in
./toolkit/components/feeds/Makefile.in
./toolkit/components/url-classifier/Makefile.in

contain the string

ifdef ENABLE_TESTS

but have some other statement inside (e.g. TOOL_DIRS += <foo> etc) and
they remain unchanged by this patch.
2012-02-04 17:32:24 +00:00
Phil Ringnalda
e170a2beb6 Bug 694248 - skip layout/tables/crashtests/691824-1.xhtml on Android, r=ehsan 2012-01-23 15:40:43 -08:00
L. David Baron
ba70aee5a1 Set inflation container to null during ComputeSize calls for inflation containers, when we should not have inflation applied. (Bug 706609, patch 4.5) r=roc 2012-01-24 17:21:29 -08:00
L. David Baron
0ce777d92e Set inflation container to null during parts of intrinsic sizing that should not have inflation applied. (Bug 706609, patch 4) r=roc
This is the first of two patches to honor inflation during intrinsic
width calculation (which we need to do to make some form controls
inflate correctly).
2012-01-24 17:21:29 -08:00
Mats Palmgren
86f6e9f346 Bug 720142 - Avoid calling GetFirstInFlow() on the row group twice. r=bernd 2012-01-22 23:48:34 +01:00
Mats Palmgren
8b4cba6616 Bug 720142 - Only calculate the border half we actally use. r=bernd 2012-01-22 23:48:34 +01:00
Mats Palmgren
2d5655dbb6 Bug 720142 - Use nsIntRect for table damage. r=bernd 2012-01-22 23:48:34 +01:00
Daniel Holbert
511a13a259 Bug 716738: Label layout/tables as gcc-warning-free with FAIL_ON_WARNINGS. r=dbaron 2012-01-19 21:33:20 -08:00
Mats Palmgren
2a48071cb7 Bug 524925 - Consolidate overflow clipping checks to nsFrame::ApplyOverflowClipping(); and fix some code style nits. part=5/6 r=roc 2012-01-18 21:04:51 +01:00
Benjamin Stover
a371dc7830 Bug 524925 - Recompute overflow without reflowing for transforms. part=1/6 r=dbaron
Add an extra change hint, UpdateOverflow, that can be used to specify that
a frame's overflow areas may have changed and that they need to be recalculated.
When a transform on a frame changes, instead of marking it for reflow, set this
hint instead.

There is an added virtual function on nsIFrame, UpdateOverflow, which is called
recursively on a frame when the corresponding hint is set, to allow it to
update its overflow areas.
2011-06-15 14:03:49 -07:00
Mats Palmgren
3c3f2843b5 Bug 716408 - Fix nsTableFrame::DidSetStyleContext indentation. r=bernd 2012-01-17 00:38:10 +01:00
Mats Palmgren
1a6de35f09 Bug 716408 - Assert that a prev-in-flow is null or of the same frame type. No need to null out mCellMap, the ctor does that and re-Init of frames isn't allowed. r=bernd 2012-01-17 00:38:10 +01:00
Mats Palmgren
cd9f477bed Bug 716408 - No need to null-check for delete, no need to null out members in dtor. r=bernd 2012-01-17 00:38:10 +01:00
Mats Palmgren
f68098c935 Bug 716408 - Initialize all bits of mBits to zero. r=bernd 2012-01-17 00:38:10 +01:00
Mats Palmgren
658d5cb257 Bug 716408 - Make nsTableFrame::GetTableFrame abort if the given frame isn't a table frame descendant, thus guaranteeing a non-null result. r=bernd 2012-01-17 00:38:10 +01:00
Mats Palmgren
aa17b16c52 Bug 716408 - Remove unnecessary nsTableFrame::GetFirstInFlow() calls to get IsBorderCollapse() bit. r=bernd 2012-01-17 00:38:10 +01:00
Mats Palmgren
3cbc28c117 Bug 716408 - Remove null-checks of GetFirstInFlow() result. r=bernd 2012-01-17 00:38:10 +01:00
Bernd
8d8c460f96 bug 711864 - dEndY is already in the rowgroup r=mats 2012-01-09 07:37:16 +01:00
Bernd
b7a2ce08a3 bug 710098 - use effective rowspan r=mats 2011-12-29 09:17:55 +01:00
Mats Palmgren
ecaac9ba30 Bug 515530 - Remove nsHTMLContainerFrame. r=roc 2011-12-27 21:18:48 +01:00
Andrew Quartey
072440fd1c Bug 507419-Consistent ordering of AppendFrames and InsertFrames 2011-12-27 09:31:22 +01:00
Bernd
7d67be01a3 bug 531200 - always set the desiredHeight, also if SplitSpanningCells does not split any cell r=dholbert 2011-12-27 09:31:10 +01:00
Bernd
87f1efe456 bug 711359 - mark all subsequent rows as damaged r=mats 2011-12-27 09:31:09 +01:00
Nicholas Nethercote
33730101c6 Bug 711908 - Fix a bunch of GCC warnings in layout. r=dbaron. 2011-12-19 19:46:39 -08:00
Mats Palmgren
77f0b019cd Bug 619273 - Move the selection state bit from frames to content nodes. r=smaug 2011-12-20 10:15:41 +01:00
Bernd
e0590cd029 bug 707622 - rows without originating cells are suppressed at the table bottom r=mats 2011-12-07 20:38:25 +01:00
Bernd
f5016d85fe followup on bug 460637 2011-12-04 07:20:09 +01:00
Bernd
16a8e4e619 bug 705996 - the damageArea should only be set once the columns are in shape r=mats 2011-12-03 07:21:16 +01:00
Bernd
61a1137bc6 bug 451355 - testcase is now wfm 2011-12-03 07:21:16 +01:00
Bernd
52f13e5a15 bug 467444 - firstTruncatedRow can not be the last row on page if it should be pushed r=dholbert 2011-12-01 07:34:30 +01:00
Bernd
2d30f6dd30 bug 460637 - the group cellmaps need to set the damageArea relative to the entire table, patch by Mats Palmgren, Randell Jesup and Bernd, r=mats, bernd 2011-10-27 09:58:44 -04:00
L. David Baron
95d3162b21 Don't construct cell reflow states with a row group reflow state as their parent; instead, always link in a table row reflow state as appropriate. (Bug 627842, patch 3.875) r=roc
Fixes assertion on layout/reftests/bugs/409084-1a.html once the rest
of the inflation patches land.
2011-11-23 18:48:23 -08:00
Ed Morley
7bc582f20f Backout 4997c6f8b24d (bug 616542) for causing locally run mochitest-browser-chrome test runs to fail 2011-11-05 18:35:59 +00:00
Rail Aliiev
8a56fd9db2 Bug 616542 - Shorten file path length of mochitest; r=ted 2011-11-04 21:13:42 +00:00
Jonathan Watt
71a67640b1 Bug 695303 - Add a mozilla::clamped function to replace NS_CLAMP (so side affects of args are evaluated no more than once) and NS_MIN(max, NS_MAX(val, min)) (to make code clearer). r=bsmedberg. 2011-10-28 19:33:28 +01:00
Bernd
d056f0a6fd bug 695430 - stop trying to insert previously emptied framelists r=bzbarsky 2011-10-24 21:22:33 +02:00
Ehsan Akhgari
2a602a5685 Bug 690892 - Replace PR_TRUE/PR_FALSE with true/false on mozilla-central; rs=dbaron
Landing on a CLOSED TREE
2011-10-17 10:59:28 -04:00
Matt Woodrow
3da7419584 Bug 692968 - Make nsDisplayTableItem::GetBounds return the untransformed overflow area. r=tn 2011-10-13 14:01:27 +13:00
Ehsan Akhgari
0d262e6465 Bug 691824 - Return the principal child list for outer table frames only once; r=roc 2011-10-06 18:03:45 -04:00
Ehsan Akhgari
bdc5c5427c Bug 659828 - Part 1: Apply table margins to the outer table frame instead of the inner table frame (also fixes bug 87277); r=dbaron
Outer table frames act as CSS2.1 table wrapper boxes.  We used to lay them out
without taking their margins into the account, which meant that their width was
always equal to the available width.  This breaks horizontal positioning of
absolutely positioned kids of a table frame.

The main purpose of this patch is to apply the margins of tables to their outer
frame, instead of the inner frame.  This means that the inner table frame will
always have a zero margin, which means that a lot of the stuff which used to
rely on the fact that table margins are applied to the inner frame need to
change.

In particular, in order to get the computed margins of a table, we used to query
the inner table frame, and this patch corrects that.  Also, when shrink wrapping
tables, we used to not take the margins of the inner table frame into account,
which is fixed by this patch too.  nsBlockReflowState::
ComputeReplacedBlockOffsetsForFloats also needed to be changed to read the
margin values from the outer frame too.

Also, as part of this patch, we start to respect the CSS2.1 margin model for
captions on all sides.  This means that in particular, the top/bottom margins on
the top-outside and bottom-outside captions will not be collapsed with the
top/bottom margins of the table, and that the margins of the caption element
contribute to the width and height of the outer table frame.  The
427129-table-caption reftest has been modified to match this new behavior.

Another side effect of this bug is fixing bug 87277, and the reftests for that
bug are marked as passing in this patch.
2011-05-31 19:02:56 -04:00