Commit Graph

417 Commits

Author SHA1 Message Date
Daniel Holbert
be4abd4ade Bug 777519: Remove unnecessary checks for min-height/max-height:auto in nsHTMLReflowState::InitResizeFlags. r=dbaron 2012-07-27 15:52:40 -07:00
Elika Etemad
5186834e80 Bug 774835: Refactor nsHTMLReflowState::ApplyMinMaxConstraints to separate behavior of width and height. [r=roc]
--HG--
extra : rebase_source : c6a25e9c19c65d86013ddf8afc15026ca02321c4
2012-07-18 10:26:05 -04:00
Scott Johnson
780e089606 Bug 758079: Inflate margin of numeric list elements to prevent cut-off text during font inflation. [r=dbaron] 2012-07-10 10:46:07 -05:00
Cameron McCormack
6f599d230a Bug 771879 - Minor code formatting tweaks. r=roc 2012-07-09 11:09:50 +10:00
Jonathan Watt
970e60a384 Bug 767388 - Kill NS_DEBUG. r=bz.
--HG--
extra : rebase_source : d045208a26345712dbb4628c973c616cd9504f28
2012-06-25 20:59:42 +01:00
L. David Baron
b71ce918a0 Don't mark intrinsic widths dirty for font inflation width changes at box/block boundaries. (Bug 764354) r=bzbarsky 2012-06-13 12:49:41 -07:00
L. David Baron
c11c707fff Properly dirty intrinsic widths when doing things that change inflation. (Bug 759755, patch 3) r=roc 2012-06-11 13:57:35 -07:00
L. David Baron
41b3a3b4ea Do the necessary reflow when our font inflation data changes. (Bug 759755, patch 2) r=roc/bzbarsky 2012-06-11 13:57:35 -07:00
L. David Baron
357e191b3a Back out patches 2 and 3 of bug 759755 for causing intermittent failures of layout/reftests/font-inflation/container-with-clamping.html . 2012-06-10 17:36:18 -07:00
Ryan VanderMeulen
5f2a19ee6e Revert c39d36167b99 due to a horribly munged backout. 2012-06-10 19:44:50 -04:00
Ryan VanderMeulen
6d6c4efbab Backout the bug 754202 backout due to orange. 2012-06-10 19:37:47 -04:00
L. David Baron
525082031d Make svg:foreignObject be considered a constrained height (now that I'm thinking about them). (Bug 759755, patch 4) r=roc 2012-06-10 13:02:23 -07:00
L. David Baron
f51bd8994d Properly dirty intrinsic widths when doing things that change inflation. (Bug 759755, patch 3) r=roc 2012-06-10 13:02:23 -07:00
L. David Baron
d3fd87344e Do the necessary reflow when our font inflation data changes. (Bug 759755, patch 2) r=roc 2012-06-10 13:02:23 -07:00
Phil Ringnalda
bda062fbe0 Back out 30e441f7ad9d (bug 759755) and 08286f4e696b (bug 760098) for orange 2012-06-06 22:51:58 -07:00
L. David Baron
3c2993c391 Do the necessary reflow when our font inflation data changes. (Bug 759755) r=roc 2012-06-06 22:11:42 -07:00
Ehsan Akhgari
bdd1cdb13d Bug 157681 - Part 2: Optimize positioned frame offset changes by moving the frame as opposed to reflowing it in case we know that the size of the frame will not change; r=dbaron
This patch adds a change hint to signal that one of the offsets on a
frame has been changed.  When processing the hint, we do one of the
following things based on the position property of the frame.

* For static frames, we ignore the offset changes completely, as they
  will not change the layout.
* For relative positioned frames, this patch refactors the
  nsHTMLReflowState::ComputeRelativeOffsets function so that it can be
  used from other callers, and it uses that to compute the new relative
  offsets, and uses the offsets computed previously to compute the new
  position of the frame.
* For absolute positioned frames, we set up a fake parent reflow state
  object, and then we create a new reflow state object for the frame in
  question.  This setup is similar to what nsFrame::BoxReflow does.
  Once we have the new reflow state object, we use it to compute the
  absolute offsets, and then we use the computed offsets to set the new
  position of the frame.  The offset computation is similar to what
  nsAbsoluteContainingBlock::ReflowAbsoluteFrame does.  In some cases
  where it is possible for the dimensions of the frame to change based
  on the offset changes, we fall back to a full reflow.
2012-06-06 00:53:48 -04:00
L. David Baron
6642be49cb Remove nsStyleBorder::GetActualBorder, since it now does the same thing as nsStyleBorder::GetComputedBorder. (Bug 713643, patch 3) r=bzbarsky 2012-05-30 22:19:49 -07:00
Ed Morley
83427f0fe0 Merge mozilla-central to mozilla-inbound 2012-05-21 13:19:38 +01:00
Gervase Markham
82ff7027aa Bug 716478 - update licence to MPL 2. 2012-05-21 12:12:37 +01:00
L. David Baron
6f318c955b Remove caching of current inflation container and its width from the pres context. (Bug 747720, patch 6) r=roc
This is no longer needed because we're getting the width from
nsFontInflationData and the null-ness of the container from
mInflationDisabledForShrinkWrap.
2012-05-20 22:18:28 -07:00
L. David Baron
6b3b8f9533 Remove width determination parameters from font inflation methods. (Bug 747720, patch 5) r=roc
These are no longer needed since we're getting the width from the
nsFontInflationData.
2012-05-20 22:18:28 -07:00
L. David Baron
9ace2103ae Replace AutoMaybeNullInflationContainer with AutoMaybeDisableInflationForShrinkWrap since the concept of the pres context's current inflation container will be going away. (Bug 747720, patch 2) r=roc 2012-05-20 22:18:27 -07:00
Scott Johnson
38884c343b Bug 746966: Conditionally set NS_FRAME_IN_CONSTRAINED_HEIGHT for font inflation on percentage-based height so fonts with room to inflate can do so. [r=dbaron] 2012-05-04 12:07:37 -05:00
L. David Baron
1f0b12c8b8 Build font data structure by walking the necessary text. (Bug 706193, patch 3) r=roc
Compute the amount of text in the scope of an nsFontInflationData
object.  This walks the text that's inside of the block formatting
context at which this object is rooted, excluding the text that's inside
any nested BFC.  Using the amount of text, the font sizes of the text,
and the line threshold preference, we compute whether to enable font
size inflation within that block formatting context.
2012-04-16 15:32:12 -07:00
Mats Palmgren
f4490cde11 Bug 740743 - Implement CSS overflow for <legend>. r=bz 2012-04-13 17:52:13 +02:00
Scott Johnson
c58b7f713b Bug 711418 - Enable font inflation for body and html elements with fixed heights. [r=dbaron] 2012-03-23 22:47:43 -05:00
Daniel Holbert
98b0d12882 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
7764d65bf7 Bug 725376 - Don't do column balancing deeper than 5 nested levels to avoid hang. r=roc 2012-02-12 22:21:51 +01:00
L. David Baron
0b6372c3aa Apply font size inflation to 'line-height: normal' by using the metrics of the inflated font rather than multiplying the inflation by the result for the uninflated font. (Bug 706609, patch 7) r=roc
This matters primarily because it makes font inflation easier to test by
avoiding rounding differences.  It fixes two existing tests that were
disabled and also makes it possible to test font inflation of selects
(since options have line-height: normal ! important in the UA style
sheet).
2012-01-24 17:21:29 -08:00
L. David Baron
94eb7fc6c5 Switch nsLayoutUtils inflation methods to the new setup with state on the pres context. (Bug 706609, patch 5) r=roc
This is the third of three patches to rework the way we handle getting
the font inflation container and width data during reflow, which are
needed so that we can sometimes 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
L. David Baron
acba036fdb 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
de8dc36651 Set inflation container and width correctly during reflow. (Bug 706609, patch 3) r=roc
This is the second of three patches to rework the way we handle getting
the font inflation container and width data during reflow, which are
needed so that we can sometimes honor inflation during intrinsic width
calculation (which we need to do to make some form controls inflate
correctly).
2012-01-24 17:21:28 -08:00
L. David Baron
1e5ca9ce1a Apply font size inflation to line heights. (Bug 627842, patch 11) r=roc
Since font size inflation applies to the text after style data
computation, we must separately apply this inflation to line heights.
2011-11-23 18:48:23 -08:00
L. David Baron
4d84af3591 When font size inflation is enabled, horizontal resizes of blocks must cause a full dirty reflow. (Bug 627842, patch 5) r=bzbarsky
This change is sufficient because the places that set mHResize to true
other than InitResizeFlags and nsFrame::BoxReflow aren't a problem
because they're in table code whose goal is to force the reflow to
propagate down to the cell, and once we reach the cell we'll hit the
code we've added here.
2011-11-23 18:48:23 -08:00
L. David Baron
e94622c2dd Set an NS_FRAME_IN_CONSTRAINED_HEIGHT state bit on frames that are in a constrained space. (Bug 627842, patch 2) r=roc 2011-11-23 18:48:23 -08:00
Boris Zbarsky
7764c01ec2 Bug 683712. Add a null-check to avoid bogus assumptions about blocks not being reflow roots. r=mats 2011-11-08 23:22:36 -05:00
Boris Zbarsky
015871ec14 Merge backout of bug 641341. 2011-11-07 00:27:17 -05:00
Boris Zbarsky
b4eb7eb0ff Backed out changeset 0cd9ed297f73 (bug 641341) to fix bug 696175. r=roc 2011-11-07 00:25:56 -05:00
Boris Zbarsky
5b68e3365d Bug 641341. Speed up CalculateHypotheticalBox for the case of a block containing a bunch of lines but absolutely no in-flows anywhere. r=roc 2011-10-04 23:47:08 -04:00
Jesse Ruderman
b90b74eb61 Bug 675553 followup: remove tautologous assertions. r=ehsan 2011-10-24 16:21:09 -07:00
Daniel Holbert
a29dccaf37 Bug 693801: Remove redundant initialization for nsHTMLReflowState::mFlags.mIsTopOfPage. r=dbaron 2011-10-21 13:41:12 -07:00
Ehsan Akhgari
cf84cd7774 Bug 659828 - Part 2: Avoid calling nsIFrame::GetType needlessly in nsHTMLReflowState; r=roc 2011-06-10 19:02:14 -04:00
Ehsan Akhgari
4b84fe41d5 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
Ehsan Akhgari
2b29cd6201 Bug 10209 - Part 6: Implement the CSS "containing block" concept correctly as a binary relation, as opposed to a unary relation; r=bzbarsky 2011-05-12 00:04:30 -04:00
Ehsan Akhgari
59e7e67254 Bug 10209 - Part 5: Allow table elements to act as absolute positioning containers; r=roc 2011-05-09 20:36:10 -04:00
Ehsan Akhgari
461fab9117 Bug 10209 - Part 2: Implement the absolute positioning support for all frames; r=roc 2011-04-29 19:02:33 -04:00
Michael Wu
d2b70213ac Bug 675553 - Switch from PRBool to bool on a CLOSED TREE , r=bsmedberg,khuey,bz,cjones
--HG--
rename : tools/trace-malloc/bloatblame.c => tools/trace-malloc/bloatblame.cpp
2011-09-28 23:19:26 -07:00
Mats Palmgren
f1c56f2e22 Bug 653649 - New way of getting child lists from frames. (part 4/5) r=roc
Remove the nsIAtom* child list names and use child list ID enum instead.
2011-08-24 22:54:30 +02:00
L. David Baron
8e79f76734 Make hypothetical box calculation consider types that are inline-outside rather than just inline. (Bug 505706) r=bzbarsky
Change the "hypothetical box" calculations that we do for 'auto'-offset
absolutely positioned elements take its inline codepath (using
horizontal position of placeholder, and placing even with the top of the
placeholder's line) rather than its block codepath (using the horizontal
edge of the containing block, and placing below the placeholder's line)
when display types are display-outside:inline types other than
display:inline.
2011-07-28 18:11:51 -07:00