Commit graph

658 commits

Author SHA1 Message Date
Xidorn Quan
0cb7562edc Bug 1108429 part 8 - Implement default ruby alignment. r=roc
--HG--
extra : source : 469cb97255e807acd60aea73db7e76e03d9409c9
2014-12-15 10:33:59 +11:00
Xidorn Quan
d732a076a4 Bug 1108429 part 7 - Modify jusitication computation to take ruby into account. r=roc
--HG--
extra : source : dc85c8f239aa5f08d31ada2f1346ad1965bdd4c2
2014-12-15 10:19:38 +11:00
Xidorn Quan
b57d1f90f3 Bug 1108429 part 6 - Record inner justification opportunities for each frame. r=roc
--HG--
extra : source : 40cee8a9a435667520e3cc846783e8c17b252c5a
2014-12-15 09:57:36 +11:00
Xidorn Quan
a759fbf567 Bug 1108429 part 5 - Enable justification computation when there is ruby. r=roc
--HG--
extra : source : a70242f72a280e7f1ceab6b6fa4ece13bd807dee
2014-12-13 22:18:16 +11:00
Xidorn Quan
e8df246df7 Bug 1108429 part 4 - Handle isize reservation in sync annotation rect. r=roc
--HG--
extra : source : 9cd4da9858ad4a314cef0354ec73b8bd635c5ca9
2014-12-13 16:13:12 +11:00
Xidorn Quan
ea6940e783 Bug 1108429 part 3 - Add flag to indicate the existance of ruby. r=roc
--HG--
extra : source : 322ca21457397001c361db0ea766367d19b9b9a1
2014-12-13 11:48:30 +11:00
Xidorn Quan
7042d1e185 Bug 1109937 - Change flags in PerFrameData to use bit fields. r=roc
--HG--
extra : source : 76160496de67f8d8e3f0823613632897ab55fa84
2014-12-23 10:22:26 +11:00
Xidorn Quan
2331038635 Bug 1098272 part 1 - Suppress line breaks inside ruby boxes. r=dbaron,roc
--HG--
extra : rebase_source : 2e884fd15244a265011e3241be084c5a1c6fd66e
extra : source : 0ea7212c131401abff6a097773ae93cdfa05dcde
2014-12-22 15:17:55 +11:00
Xidorn Quan
244888aa06 Bug 1039009 - Handle float in the base line layout. r=dbaron
--HG--
extra : rebase_source : 981a5ae2bb8f8bf7852398ea944c6e07ed283292
extra : source : b661631e125ab0ffa2bdfa44201fe59571189423
2014-12-10 10:49:13 +11:00
Xidorn Quan
4ee06cf1d6 Bug 1081770 - Move ruby annotation frames when text-align: justify is applied to ruby bases. r=dbaron
--HG--
extra : rebase_source : 959be07c7a44c96eba46963213de01525e5292b0
extra : source : c5e6e8898b2df7b29fe1b2071291bde17d7780fc
2014-12-09 17:43:24 +11:00
Xidorn Quan
f9c28c207a Bug 1107721 - Add method for attaching frame data to base line layout. r=dbaron
--HG--
extra : source : 82fe55e167562868c2a9056e08913f630a84fe48
2014-12-10 09:49:45 +11:00
Xidorn Quan
87cab6fb46 Bug 1107721 - Create PFD for root span. r=dbaron
--HG--
extra : source : 1b8c074e34182cd77158e1c09defe1231c25248e
2014-12-10 09:40:14 +11:00
Xidorn Quan
8be20d9f71 Bug 1107721 - Handle unlinking pfds linked to other levels. r=dbaron
--HG--
extra : source : c7f097390cb910d35fc09cc9cd8660d56fcccca2
2014-12-09 09:30:23 +11:00
Xidorn Quan
352948f6fe Bug 1107721 - Separate pfd unlinking code to method UnlinkFrame. r=dbaron
The comment of UnlinkFrame says that the PFDs of linked annotations
won't be freed immediately, which is not implemented in this patch,
but in the next patch.

--HG--
extra : source : 813840414cb9140b71ae3f337a96236689dac705
2014-12-09 09:14:49 +11:00
Xidorn Quan
2c3631601f Bug 1107721 - Add pointers to PerFrameData of different level. r=dbaron
--HG--
extra : source : 151ebfa898e36d36e5d7216a277ad8f1faa7fa5c
2014-12-05 15:57:12 -08:00
Xidorn Quan
347abfe9b0 Bug 1107721 - Allocate PerFrameData & PerSpanData from the base line layout. r=dbaron
--HG--
extra : source : 2444a14f27efcb9d69417d3333dfe809572b5dd0
2014-12-05 15:31:42 -08:00
Xidorn Quan
3ba35be862 Bug 1107721 - Add pointer to the base line layout in nsLineLayout. r=dbaron
--HG--
extra : source : 7b1b90d6bba043a68a84bb2faeba95096fa15ca5
2014-12-05 15:05:51 -08:00
Simon Montagu
33a271e5bd Bug 1105137: treat nsFloatManager's mOrigin as an offset, not a point, and rename it to mOffset to make that clearer, r=jfkthame 2014-12-11 03:56:03 -08:00
Xidorn Quan
ef58484437 Bug 1096152 - Use frame instead of content to track break position. r=dbaron
--HG--
extra : amend_source : efab3508002471ed24c629d13985bca4fe4a1376
2014-11-14 16:41:14 +11:00
Jonathan Kew
2c2899d58e Bug 1084370 - Fix handling of vertical-align in lines with vertical writing mode. r=smontagu 2014-11-13 12:58:30 +00:00
Jonathan Kew
34fea182cd Bug 1093553 - Improve handling of line-height metrics, block ascent, etc., in vertical writing mode. r=smontagu 2014-11-13 08:58:06 +00:00
Jonathan Kew
6f8bff7661 Bug 1094914 - part 2 - Store margins and borders using line's writing mode in perFrameData, to avoid writing-mode conversions. r=smontagu 2014-11-13 08:58:02 +00:00
Jonathan Kew
a2a1b29517 Bug 1094914 - part 1 - Don't confuse frame and line writing-modes in nsLineLayout. r=smontagu 2014-11-13 08:58:02 +00:00
Xidorn Quan
a85f3a113d Bug 1063857 - Implement new justification algorithm. r=roc,masayuki 2014-11-10 12:25:17 +11:00
Jonathan Watt
5767be9b18 No bug - Get rid of some unnecessary nsRenderingContext.h includes and nsRenderingContext forward declarations.
--HG--
extra : rebase_source : 2e682062b0c4fe3c1e916ed7c7b7ca98ec3b54d3
2014-11-06 22:07:35 +00:00
Carsten "Tomcat" Book
2032c5061a Backed out changeset 53d51e7fbb9e (bug 1063857) for Android Reftest Failures 2014-11-04 10:59:46 +01:00
Xidorn Quan
6ce2bfc5f9 Bug 1063857 - Implement new justification algorithm. r=roc,masayuki 2014-11-02 15:07:00 +01:00
Jonathan Watt
4f23ebac06 Bug 1088625, part 3 - Remove nsRenderingContext's SetFont, FontMetrics and SetTextRunRTL methods now that no one uses them any more. r=mstange 2014-10-24 16:28:15 +01:00
Jonathan Watt
a0f005a778 Bug 1088625, part 1 - Add lots of missing nsFontMetrics.h and gfxTextRun.h includes 2014-10-24 16:28:14 +01:00
Jonathan Kew
83ad786e39 Bug 1087954 - Fix invalid mix of logical/physical coordinate systems in nsLineLayout::AllowForStartMargin. r=smontagu 2014-10-24 12:24:40 +01:00
Simon Montagu
aaa297f259 Bug 1082844: when converting between logical and physical coordinates in nsLineLayout, use the width of the containing block as container-width for the root span, and the width of the root span for child spans. r=jfkthame 2014-10-22 05:14:41 -07:00
Simon Montagu
8d64967541 Bug 1079139: make nsFlowAreaRect.mRect a LogicalRect. r=jfkthame 2014-10-21 15:16:13 -07:00
Simon Montagu
e753ab75a0 Bug 1062963 patch 3: make nsFloatManager's origin a LogicalPoint, adapt GetFlowAreas, AddFloats, ClearFloats, etc. to use it and make nsFloatManager region functions work with logical region. r=jfkthame 2014-10-21 15:16:12 -07:00
Simon Montagu
5c79483958 Bug 1062963 patch 1: Logical coordinates in nsLineLayout:ReflowFrame and CanPlaceFrame. r=jfkthame 2014-10-21 15:16:11 -07:00
Mats Palmgren
f2d23931c0 Bug 1085701 - Report the allocation size to the OOM abort. r=roc 2014-10-21 15:42:24 +00:00
Phil Ringnalda
b2eb743d9b Backed out 4 changesets (bug 1062963, bug 1079139) for failures in 427129-table-caption.html in b2g reftest-6 and Android 2.3 reftest-5
Backed out changeset a9672db96a5d (bug 1079139)
Backed out changeset 241c23570a62 (bug 1062963)
Backed out changeset 90172cc0b012 (bug 1062963)
Backed out changeset 71211c4a4acc (bug 1062963)
2014-10-19 18:44:16 -07:00
Simon Montagu
3134a81fca Bug 1079139: make nsFlowAreaRect.mRect a LogicalRect. r=jfkthame 2014-10-19 12:32:17 -07:00
Simon Montagu
3f0d7f2fcc Bug 1062963 patch 3: make nsFloatManager's origin a LogicalPoint, adapt GetFlowAreas, AddFloats, ClearFloats, etc. to use it and make nsFloatManager region functions work with logical region. r=jfkthame 2014-10-19 12:32:17 -07:00
Simon Montagu
ec5af204d9 Bug 1062963 patch 1: Logical coordinates in nsLineLayout:ReflowFrame and CanPlaceFrame. r=jfkthame 2014-10-19 12:32:16 -07:00
Jonathan Kew
75e3fc9c57 Bug 1083104 - Fix misuse of physical instead of logical dimension for line breaking. r=smontagu 2014-10-16 09:40:20 +01:00
Simon Montagu
ceafcb2a98 Bug 1076986: make LogicalMargin and LogicalRect's IsEmpty the same as nsMargin and nsRect, r=jfkthame 2014-10-04 23:02:36 -07:00
Simon Montagu
72a6973797 Bug 1069941 patch 2: reset the start coordinate of the inline frames before ReorderFrames so that the margin doesn't get added twice, r=jfkthame 2014-09-30 10:59:13 -07:00
Susanna Bowen
779f8cef59 Bug 1030993 - Basic reflow implementation for ruby frame classes. r=dbaron
To account for spacing between bases or text boxes during reflow, the line
layout which manages the bases updates its inline direction coordinate based on
the preferred inline size for the corresponding text boxes. Next, the base is
reflowed at the correct inline coordinate. Each paired text box is then also
reflowed at the proper inline position determined by (1) the current position of
its corresponding base and (2) its own preferred width.

In computing intrinsic widths, accounting for spacing is less complicated. The
minimum intrinsic width is the width of the widest ruby column, and the
preferred intrinsic width is the sum of all the ruby column widths. Each ruby
column width is the maximum width of its base box and text boxes. These
individual widths are determined using GetPrefISize on the base and text boxes.

Ruby base container frames store a list of pointers to the ruby text container
frames in the segment they denote. This list of pointers is created in the ruby
frame reflow method before calling the reflow method for the ruby base
container. The list exists and is used only during reflow of the main ruby frame
and is cleared before returning from reflow.
2014-08-15 10:34:20 -07:00
Seth Fowler
983a3f905a Bug 913586 (Part 7) - Update Maybe users in layout. r=dbaron
--HG--
extra : rebase_source : 1bf45d1356d36269ca951b58ebf1e448313c55c5
2014-08-13 15:42:15 -07:00
Simon Montagu
18c9f2f61a Bug 789096 patch 10: make Reflow set nsHTMLReflowMetrics.ISize and BSize instead of Width and Height. r=jfkthame 2014-07-24 01:30:07 -07:00
Simon Montagu
c3b44c4dad Bug 789096 patch 9: use logical coordinates in nsHTMLReflowState available size. r=jfkthame 2014-07-24 01:28:46 -07:00
Jonathan Kew
28b36e1b0b bug 789096 patch X - avoid some unconstrained-width (should be -isize) warnings with mixed writing modes. r=smontagu 2014-07-10 10:11:33 +01:00
Susanna Bowen
233eb2e9e3 Bug 1033052 - Call SetRect in ReflowFrame since the old rect does not need to be preserved. r=dbaron 2014-07-02 13:54:49 -07:00
Susanna Bowen
b85550ce86 Bug 727125 - Lazily compute LineBaselineOffset when needed so it is present after a dynamic change of 'text-decoration'. r=dbaron
This fixes the positioning of underlines set on a block or its ancestor
when drawn on children of a block that have a vertical-align !=
baseline.

The lazy computation is done all at once for all children of a block to
avoid O(N^2) searches for the line containing a frame.
2014-06-18 12:55:00 -04:00
Simon Montagu
caa93255c4 Bug 789096: make method names in nsLineLayout correspond to the respective CSS properties. r=jfkthame 2014-06-17 07:41:33 -07:00
Simon Montagu
aaa4878ee5 Replace GetBaseline with GetLogicalBaseline and use logical coordinates in the line position and baseline getters in nsLayoutUtils. Bug 789096, r=jfkthame 2014-06-17 05:19:38 -07:00
Wes Kocher
abf9a45351 Backed out 2 changesets (bug 727125) for reftest bustage on an otherwise CLOSED TREE
Backed out changeset 443361e2724a (bug 727125)
Backed out changeset 16c8d78df86e (bug 727125)
2014-06-16 13:34:50 -07:00
Susanna Bowen
d1e6d153b7 Bug 727125 - Lazily compute LineBaselineOffset when needed so it is present after a dynamic change of 'text-decoration'. r=dbaron
This fixes the positioning of underlines set on a block or its ancestor
when drawn on children of a block that have a vertical-align !=
baseline.

The lazy computation is done all at once for all children of a block to
avoid O(N^2) searches for the line containing a frame.
2014-06-16 11:58:25 -07:00
Simon Montagu
ca20e365ef Replace Get/SetTopAscent with Get/SetBlockStartAscent. Bug 789096, r=jfkthame 2014-06-11 02:45:31 -07:00
Simon Montagu
efc2140fbb Add a WritingMode argument to nsHTMLReflowMetrics::ISize() and BSize(). Bug 789096, r=jfkthame 2014-06-05 02:39:36 -07:00
Susanna Bowen
ba0f6cdd21 Bug 1019287 - Use accessor instead of private variable in ifdef'ed logging code. r=dholbert 2014-06-02 16:26:00 -04:00
Simon Montagu
ab13ae46c1 Backout 38b25d5e6cf9 because assertions 2014-05-25 03:15:00 -07:00
Simon Montagu
dc4cbd5301 Add a WritingMode argument to nsHTMLReflowMetrics::ISize() and BSize(). Bug 789096, r=jfkthame 2014-05-24 23:47:04 -07:00
Mats Palmgren
75bad2215e Bug 508665 - part 9, Remove now redundant static_cast<nsContainerFrame*> and do_QueryFrame() calls. r=roc 2014-05-24 22:20:40 +00:00
Simon Montagu
23c1664fb7 Wait for CanPlaceFrame (i.e. after reflow) to apply start-margin and test whether the frame is a last continuation and so needs its end-margin applied. Bug 999446, r=jfkthame 2014-05-20 07:04:54 -07:00
Mats Palmgren
03ca8433c3 Bug 1008908 - Remove assignment since the value isn't used. r=smontagu 2014-05-17 23:10:53 +00:00
Mats Palmgren
6703ffe99e Bug 1008917 - part 11, make nsBlockFrame::ReflowDirtyLines() and nsLineLayout::ReflowFrame() return types 'void'. r=roc 2014-05-13 00:47:53 +00:00
Mats Palmgren
9795aca511 Bug 1008917 - part 2,3,4, make Reflow() return type 'void', and make a few reflow related helper methods 'void' too. r=roc 2014-05-13 00:47:52 +00:00
Wes Kocher
42253715d7 Backed out 11 changesets (bug 1008917) for apparently introducing an intermittent failure of B2G Crashtest-2 on a CLOSED TREE
Backed out changeset e2ab653f688a (bug 1008917)
Backed out changeset b52154d8d900 (bug 1008917)
Backed out changeset 2ab5b01da4de (bug 1008917)
Backed out changeset f7a38df1d44f (bug 1008917)
Backed out changeset 80304bb9a572 (bug 1008917)
Backed out changeset 10ed89a302e9 (bug 1008917)
Backed out changeset 161c41991d46 (bug 1008917)
Backed out changeset 25b2475d2368 (bug 1008917)
Backed out changeset b8000b31277c (bug 1008917)
Backed out changeset 9afa5e7715e1 (bug 1008917)
Backed out changeset 5c380c21351f (bug 1008917)
2014-05-12 15:47:41 -07:00
Mats Palmgren
5ba3e6847a Bug 1008917 - part 11, make nsBlockFrame::ReflowDirtyLines() and nsLineLayout::ReflowFrame() return types 'void'. r=roc 2014-05-12 17:40:29 +00:00
Mats Palmgren
a722b491f1 Bug 1008917 - part 2,3,4, make Reflow() return type 'void', and make a few reflow related helper methods 'void' too. r=roc 2014-05-12 17:40:28 +00:00
Mats Palmgren
361c3593e3 Bug 613659 - Implement box-decoration-break layout for border/box-shadow and paddding/margin for inlines. r=cam 2014-05-05 17:55:54 +00:00
Mats Palmgren
6301b21c9f Back out bug 613659 (for regression bug 998792)
--HG--
rename : layout/reftests/backgrounds/background-size-slice.html => layout/reftests/backgrounds/background-size-continuous.html
rename : layout/reftests/backgrounds/background-size-cover-slice.html => layout/reftests/backgrounds/background-size-cover-continuous.html
rename : layout/reftests/backgrounds/background-size-cover-clone.html => layout/reftests/backgrounds/background-size-cover-each-box.html
rename : layout/reftests/backgrounds/background-size-clone.html => layout/reftests/backgrounds/background-size-each-box.html
2014-04-20 19:39:24 +00:00
Mats Palmgren
2b31a712b1 Bug 613659 - Implement box-decoration-break layout for border/box-shadow and paddding/margin for inlines. r=cam 2014-04-18 23:01:23 +00:00
Simon Montagu
f8a68ec80e Make nsLineBox.mBounds a LogicalRect. Bug 789096, r=jfkthame 2014-04-16 01:03:28 -07:00
L. David Baron
415725d6be Bug 989130 - Back out changeset fe119a83b1f2 (bug 942017) while leaving the corresponding test from changeset 3c63decb4e7e. r=jfkthame
This should be backed out for two reasons:

 (1) It caused a serious regression with bullets from list-style-image,
     which no longer affect the line box height and thus overlap.

 (2) The dependency on 'line-height: normal' doesn't make sense; there's
     no reason for whether line-height is 'normal' or not to affect the
     behavior of bullets.

I don't currently have time to figure out why Gecko behavior differs
from other browsers on bug 942017, but that should be re-analyzed and
the bug fixed in a different way.  At first glance, the code should
already be leading to the expected behavior, since the bullet ought to
have the same metrics and alignment as the block's influence on the line
box's height.  Why this isn't the case should be investigated.
2014-04-01 11:53:29 -07:00
Simon Montagu
ff1a91f1ec Aways use the root span's writing mode when recursing into child spans in nsLineLayout::ApplyFrameJustification. Bug 986899, r=jfkthame 2014-03-24 10:50:13 -07:00
Simon Montagu
babaf4f2f3 Correction to typo in checkin for bug 789096. Bug 983691, r=jfkthame 2014-03-24 02:23:12 -07:00
L. David Baron
3ad78c87f5 Bug 349259 patch 1: Add an nsIContent* parameter to nsHTMLReflowState::CalcLineHeight. r=bz 2014-03-12 20:33:21 -07:00
Simon Montagu
2110ef8dc6 Use logical text layout API in nsLineLayout. Bug 789096, r=jfkthame 2014-03-11 13:23:50 -07:00
Carsten "Tomcat" Book
b99f5df532 Backed out changeset aeff4052ef00 (bug 789096) 2014-03-11 09:22:52 +01:00
Simon Montagu
5e0cf76c45 Use logical text layout API in nsLineLayout. Bug 789096, r=jfkthame 2014-03-10 22:19:03 -07:00
L. David Baron
0511ab14ec Bug 439204: Remove assertion "We placed a float where there was no room!" r=roc 2014-03-03 00:54:39 -08:00
L. David Baron
fbcb130e34 Bug 709014 patch 1: Honor margin-left and margin-right on elements in inline layout that have 0 width and/or height (commonly, inline-blocks). r=roc
Prior to this patch, we failed to honor:
 * margin-left on elements in inline layout with 0 width and 0 height
 * margin-right on elements in inline layout with 0 width
I think that was because the code in CanPlaceFrame to discard both
margins when the width was 0 was running after the left-margin was
applied, unless the later code in PlaceFrame (checking both width 0 and
height 0) un-applied that left margin.

The assertion count change in test_value_computation.html is due to 2
additional "bad width" assertions (I presume from honoring large
margins that were previously ignored).

The change to 538935-1-ref.html is to match an improvement in rendering
of the margins in the test, where both sides of the margin are now
honored.

The change to layout/reftests/text-overflow/marker-basic-ref.html is to
keep the reference (which uses margins) rendering the same way following
the changes to margin handling.

The new behavior (in the reftests added in layout/reftests/inline/)
matches at least Chromium; I didn't check any other browsers.
2014-02-17 20:07:45 -08:00
L. David Baron
d31701cad1 Bug 91419 patch 9: Fix comments and debugging output referring to "special" frames. r=mats 2014-02-06 17:45:33 -08:00
Daniel Holbert
03c54ea5eb Bug 967287 part 1: Remove unnecessary nsPresContext* argument from functions defined in nsContainerFrame.h. r=mats 2014-02-06 14:07:47 -08:00
Benoit Jacob
562cb87289 Bug 959380 - 1/5 - Make gfxBreakPriority a typed enum - r=jrmuizel 2014-01-23 13:26:39 -05:00
Cameron McCormack
69ff268fcf Bug 957770 - Take SVG font size scaling into account when vertically aligning text. r=roc 2014-01-11 12:13:09 +11:00
Jonathan Kew
a7837e1ffa bug 735577 - pt 4.1 - use accessor functions for some physical-coordinate fields in nsHTMLReflowMetrics, in preparation for logicalization. r=smontagu 2013-12-27 17:59:52 +00:00
Jonathan Kew
954a119d07 bug 735577 - pt 3.2 - update the rest of layout code to use the new accessors on nsHTMLReflowState. r=smontagu 2013-12-27 17:59:21 +00:00
Quentin Headen
6f30920da5 Bug 731667 - Rewrite mtable implementation to avoid use of _moz-* attributes - implement parsing and rendering. r=karlt, r=bz 2013-12-13 12:42:43 -05:00
Birunthan Mohanathas
68b00083fd Bug 713082 - Part 1: Remove unnecessary Util.h includes. r=Waldo 2013-12-08 21:52:33 -05:00
Mats Palmgren
99419ff1d6 Bug 942017 - Only let the bullet frame affect the line height when line-height:normal. r=jfkthame 2013-12-08 01:11:50 +00:00
Mats Palmgren
d587273433 Bug 931853 - Adjust the frame's vertical position to account for a negative margin larger than its height, in quirks mode. r=roc 2013-11-12 18:38:29 +00:00
Mats Palmgren
4c415bc615 Bug 929991 - Layout implementation of 'text-align: true X'. r=roc 2013-10-27 20:56:32 +00:00
Ehsan Akhgari
44cb2c6702 Bug 921753 - Part 3: Avoid #including nsStyleStructInlines.h in nsHTMLReflowState.h; r=roc
This patch reduces the number of files that transitively #include
gfx/2d.h from 1362 to 1268.
2013-10-01 17:01:49 -04:00
Ehsan Akhgari
290feb1ade Bug 921876 - Stop #including nsIFrame.h in nsLayoutUtils.h; r=roc
This patch does the following:
* Move nsIFrame::IntrinsicSize to mozilla::IntrinsicSize so that it can
  be forward-declared.
* Move a number of templated inline nsLayoutUtils methods to nsIFrame.
* Use mozilla::layout::FrameChildListID instead of the
  nsIFrame::ChildListID typedef in nsLayoutUtils.h.
* Move nsReflowFrameRunnable to its only user, nsProgressMeterFrame.cpp.
* Make a number of functions requiring nsIFrame.h out-of-line.
* Remove the nsIFrame.h #include from nsLayoutUtils.h and add it to the
  places which require it implicitly.
2013-09-30 17:26:04 -04:00
Mats Palmgren
4974add798 Bug 919318 - Drop the Get prefix on the frame methods GetFirstContinuation, GetLastContinuation, GetFirstInFlow, GetLastInFlow and also on nsLayoutUtils::GetLastContinuationWithChild, because they never return null. r=dholbert 2013-09-25 11:42:34 +00:00
Daniel Holbert
90f7eae182 Bug 919871: Make .cpp files in layout/generic #include their corresponding .h file first. r=mats 2013-09-24 18:43:43 -07:00
L. David Baron
6d628a60bd Bug 916751: Do not use nsIFrame::MovePositionBy from nsLineLayout. r=dholbert
Since bug 916751 is hard (for me) to test, I haven't confirmed for sure
that this fixes the bug.

However, it fixes the assertions that bug 911786 part 3 triggers in
layout/base/crashtests/317934-1.html through this codepath.
2013-09-17 04:44:16 -07:00
Corey Ford
c885568e56 Bug 911786 - Part 2: Reapply relative positioning when moving frames without reflowing them. r=dholbert 2013-09-11 11:51:42 -07:00
Ehsan Akhgari
baf3a129ad Bug 907883 - Minimize #includes in layout/generic; r=roc
--HG--
extra : rebase_source : 5e87b764a12b05aff477c71547e2131be67ca93b
2013-08-22 14:32:52 -04:00
Corey Ford
9adda71475 Bug 898794 - Store normal frame position before applying relative positioning. r=dbaron 2013-08-08 17:20:17 -07:00
Corey Ford
3fcd99f543 Bug 901610 - Use nsStyleDisplay::IsRelativelyPositionedStyle in nsLineLayout. r=dbaron 2013-08-07 11:46:44 -07:00
Corey Ford
703e3044b9 Bug 893962 - Refactor the application of relative positioning. r=dbaron 2013-07-15 17:28:09 -07:00
Cameron McCormack
d3f6368233 Bug 864289 - Rename nsLineLayout::GetLineContainer(Frame|RS) to LineContainer\1. r=dholbert 2013-04-23 11:45:26 +10:00
Masayuki Nakano
65e843edc3 Bug 857820 part.1 Drop blink effect implementation r=dbaron 2013-04-14 19:11:07 +09:00
Cameron McCormack
ca4d21a415 Bug 842142 - Prevent odd text wrapping in SVG text. r=roc 2013-03-25 14:50:59 +11:00
Mats Palmgren
db184f49e1 Bug 843931 - Make nsLineLayout::NewPerFrameData() allocation infallible. r=roc 2013-02-23 11:38:15 +01:00
Mats Palmgren
d85ac931c6 Bug 843925 - Make nsLineLayout::NewPerSpanData() allocation infallible. r=roc 2013-02-23 11:38:15 +01:00
L. David Baron
c5b9eee040 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
L. David Baron
50d4e367af 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
Mats Palmgren
b7ae90666d Bug 786533 - Replace NS_MIN/NS_MAX with std::min/std::max and #include <algorithm> where needed. r=ehsan 2013-01-15 13:22:03 +01:00
Scott Johnson
a13eed37dc Bug 811825: Make max line box width ignored if frame has constrained height in order to prevent cut-off data when a user reflows-to-zoom. [r=dbaron] 2012-12-04 22:14:56 -06:00
Nicholas Nethercote
0e97b98462 Bug 814312 - Avoid PL_ArenaPool recycling in the layout engine. r=roc.
--HG--
extra : rebase_source : 7aaa3d745583c595692f1effd933cc70931194ff
2012-11-25 14:40:28 -08:00
Ehsan Akhgari
c284cd4124 Bug 810355 - Convert nsDidReflowStatus into an enum class; r=dholbert 2012-11-13 22:47:33 -08:00
Scott Johnson
1d7a36eb51 Bug 802311: Make max line box width adjustment API compute right edge of line boxes correctly to fix reflow-on-zoom issues. [r=dbaron] 2012-10-25 16:38:54 -05:00
Isaac Aggrey
481e7dfb0b Bug 791906: Replace NSPR integer limit constants with stdint ones; r=ehsan 2012-09-28 01:57:33 -05:00
Leonard Camacho
4420e1cb45 Bug 524025 - Remove LL_* constants in nsLineLayout with separate booleans with field widths. r=dbaron 2012-09-27 21:26:40 -04:30
Scott Johnson
3ea152f05b Bug 780258: Add an interface to set the maximum line box width, accessible from chrome script. [r=dbaron] 2012-09-05 16:39:34 -05:00
Ehsan Akhgari
e368dc9c85 Bug 579517 - Part 1: Automated conversion of NSPR numeric types to stdint types in Gecko; r=bsmedberg
This patch was generated by a script.  Here's the source of the script for
future reference:

function convert() {
echo "Converting $1 to $2..."
find . ! -wholename "*nsprpub*" \
       ! -wholename "*security/nss*" \
       ! -wholename "*/.hg*" \
       ! -wholename "obj-ff-dbg*" \
       ! -name nsXPCOMCID.h \
       ! -name prtypes.h \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -o -iname "*.c" \
         -o -iname "*.cc" \
         -o -iname "*.idl" \
         -o -iname "*.ipdl" \
         -o -iname "*.ipdlh" \
         -o -iname "*.mm" \) | \
    xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}

convert PRInt8 int8_t
convert PRUint8 uint8_t
convert PRInt16 int16_t
convert PRUint16 uint16_t
convert PRInt32 int32_t
convert PRUint32 uint32_t
convert PRInt64 int64_t
convert PRUint64 uint64_t

convert PRIntn int
convert PRUintn unsigned

convert PRSize size_t

convert PROffset32 int32_t
convert PROffset64 int64_t

convert PRPtrdiff ptrdiff_t

convert PRFloat64 double
2012-08-22 11:56:38 -04:00
Cameron McCormack
d7e9a93257 Bug 655877 - Part 14: Ignore float in SVG text frames. r=roc 2012-08-02 21:38:49 +10:00
Cameron McCormack
6b182261bf Bug 655877 - Part 11: Ignore vertical-align and map dominant-baseline to vertical-align in SVG text frames. r=roc 2012-08-02 21:38:48 +10:00
Cameron McCormack
bd8a092ab9 Bug 655877 - Part 10: Ignore text-align and text-align-end in SVG text frames. r=roc 2012-08-02 21:38:47 +10:00
Aryeh Gregor
d0ad5a7d0c Bug 777292 part 2 - Change all nsnull to nullptr 2012-07-30 17:20:58 +03:00
David Zbarsky
d2ee12f6f9 Bug 763350 - Clean up some includes in content/ and dom/ r=smaug 2012-07-01 16:45:59 -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
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
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
Simon Montagu
a05832e834 Implement text-align-last. Bug 536557, r=dbaron 2012-01-12 19:52:21 +02:00
Ed Morley
afde8417a5 Backout 6605cc311ec5 & 9217303c2e5c (bug 536557) for M4 orange 2012-01-12 15:33:00 +00:00
Simon Montagu
ad89de3591 Implement text-align-last. Bug 536557, r=dbaron 2012-01-12 16:29:20 +02:00
L. David Baron
df40c46fa8 Weaken the quirks mode inline box model zeroing-of-containers when those containers have children that are vertical-align: top or bottom, so that it's a little more like when they have children with other values of vertical-align (except that it's an approximation). (Bug 714519) r=roc
--HG--
extra : transplant_source : %1B%A2%1A%2Cb%7BcS%C9%5Et%F8%F16%E3%1A%12%D67%15
2012-01-01 17:35:12 -05:00
Mats Palmgren
78d0f2c7ca Bug 515530 - Remove nsHTMLContainerFrame. r=roc 2011-12-27 21:18:48 +01:00
Nicholas Nethercote
24d2c81ee1 Bug 711908 - Fix a bunch of GCC warnings in layout. r=dbaron. 2011-12-19 19:46:39 -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
f1feb010c8 Pass block's reflow state to nsTextFrame::UnionAdditionalOverflow. (Bug 627842, patch 8) r=roc 2011-11-23 18:48:23 -08:00
L. David Baron
d65b4d17bd Make NOISY_VERTICAL_ALIGN compile again. Not part of the build. No review. 2011-10-18 10:44:43 -07:00
Simon Montagu
23fcb4824f Implement unicode-bidi: -moz-plaintext in layout. Bug 662288, r=roc 2011-10-18 14:51:58 +02:00
Ehsan Akhgari
92064e6d3f 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
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
L. David Baron
056a511714 Remove overflow handling that should have been removed along with the standards-mode text-shadow of text-decoration handling in bug 403524, changeset 83b2648ee442. (Bug 680505, patch 1) r=roc
Since this affects only the *visual* overflow and not the *scrollable*
overflow, this patch should result in no behavior changes, since the
necessary visual overflow is added in
nsTextFrame::UnionAdditionalOverflow (since the text frame now draws the
shadows of text decorations, just like it draws text decorations
themselves).
2011-08-20 21:35:56 -04:00
L. David Baron
84b8b6bf64 Replace all uses of nsLayoutUtils::SetFontFromStyle with GetFontMetricsForFrame or GetFontMetricsForStyleContext and remove SetFontFromStyle. (Bug 678671, patch 2) r=roc
There was nothing wrong with SetFontFromStyle, except that it's just one
more API to think about (and one more API to audit and modify for font
inflation work to happen in bug 627842).
2011-08-14 10:08:04 -07:00
Vitor Menezes
cc47ff48ae Bug 676538: Fix regression that caused text-decorations on inline *child* of block to draw at the offset for the block rather than the inline. r=dbaron
The FrameProperty representing baseline is set when a block defines
text-decorations and has vertically-aligned children, but we were
retrieving it whether the block or the vertically-aligned frame itself
defined the decorations.  As a result, we "undo" the frame offset to get
the baseline from the child in that case.
2011-08-10 12:44:17 -07:00
Vitor Menezes
1baff11dba Bug 223764: Inlines inside inlines that draw text-decorations shouldn't alter the baseline. (r=dbaron)
We add a baseline field to nsInlineFrame and modify
nsLineLayout::BeginSpan to take a pointer to a baseline to update. This
also means that nsFirstLetterFrame no longer needs to update its own
baseline, and instead should just pass its own field along.
2011-08-03 11:30:58 -07:00
Vitor Menezes
e915e08a19 Fix text-decoration positioning in quirks mode and set overflow areas to match. (Bug 403524) r=dbaron
Change the quirks mode text-decoration code (soon to be used for all
modes) to follow CSS 2.1's rules for positioning of decoration lines.
Decorations are now drawn at a constant vertical position established by
the element creating the decoration, and more than one of the same type
(underline, overline, line-through) of decoration are supported on the
same piece of text.

This means that text-decorations can now significantly overflow a text
frame, since the vertical-alignment of the element with text-decoration
may be substantially different from the vertical alignment of the text.
Set overflow areas for text frames with text decorations in
nsLineLayout::RelativePositionFrames since it must happen *after*
vertical alignment is done, and when relative positioning data are
consistent (nsIFrame::GetRelativeOffset matches the offset that has been
applied).
2011-08-03 11:30:58 -07:00
Ehsan Akhgari
2a3dbb4205 Back out bug 10209 and bug 656875 (its regression fix) from Aurora because the work on this bug has not been finished yet
--HG--
extra : transplant_source : t%9F%EB%2Aa%A4%C0%9Ab%A5%DDQ%3EMD%5E%01h%E7%2A
2011-06-01 16:18:15 -04:00
L. David Baron
d69c8fdc7b Change IsPercentageAware (which tests whether an inline box's width depends on the width of its container) to check the correct general statement of when the width of a replaced element depends on its container's width, and in doing so avoid depending on the notion of percentage intrinsic size. (Bug 611099) r=dholbert
Needed to help CSS 2.1 meet Proposed Recommendation entrance criteria.
2011-06-12 18:52:32 -07:00
Ed Morley
f13392fb42 Bug 614515 - Remove MOZ_SVG conditions. r=roc 2011-05-30 09:34:50 +02:00
Ehsan Akhgari
e66b9024c8 Bug 10209 - Part 2: Implement the absolute positioning support for all frames; r=roc 2011-04-29 19:02:33 -04:00
Chris Jones
d737e982f8 Bug 642381, part 3: Hoist Maybe into mfbt and eliminate Gecko's use of jstl. r=jorendorff,luke 2011-04-28 17:48:52 -05:00
Chris Jones
91abf226cc Bug 642381, part 2: Rename LazilyConstructed to Maybe. r=luke 2011-04-28 17:48:51 -05:00
Zack Weinberg
ef90e52c10 Bug 174055, part 6: eliminate pointless nsresult return values. 2011-04-07 21:18:43 -07:00