Commit Graph

67 Commits

Author SHA1 Message Date
L. David Baron
545506d86c Bug 1308876 - Mark child frames as dirty before starting reflow of the parent, so that if we reflow a child twice, it's only dirty the first time. r=dholbert
This is the primary patch in this bug, and makes the performance
improvement that fixes this bug.

The assertion count increase for layout/generic/crashtests/1015844.html
is accompanied by a layout change in the testcase as well.  However, I'm
not planning to fix it in this sequence; fundamentally columnsets with
specified heights inside a paginated context (like another columnset) do
not work in any reasonable way, and changing the number of times we
reflow them can change the layout.  At least, assuming I didn't lose
something in the process of simplifying the testcase.

ISSUES:
 - may make block inside XUL worse in performance by marking dirty more (see subdoc in Firefox UI, or text control innards?)

MozReview-Commit-ID: GdOvPynqcFP
2017-07-12 19:37:12 -07:00
Sylvestre Ledru
9d4a84d778 Bug 1378712 - Remove all trailing whitespaces r=Ehsan
MozReview-Commit-ID: Kdz2xtTF9EG
2017-07-06 14:00:35 +02:00
Alexis Beingessner
3117218f13 Bug 1088760 - Remove nsRenderingContext, replacing all of its uses with gfxContext. r=jwatt,jrmuizel
MozReview-Commit-ID: K1WUIOnvazF
2017-06-13 11:00:10 -04:00
Sebastian Hengst
1b1d14e565 Backed out changeset 3d1ce85e6348 (bug 1088760) for bustage, at least on Android at layout/generic/nsPluginFrame.cpp:1612. r=backout 2017-06-13 00:30:03 +02:00
Alexis Beingessner
c6fbc5e17e Bug 1088760 - Remove nsRenderingContext, replacing all of its uses with gfxContext. r=jwatt,jrmuizel
MozReview-Commit-ID: K1WUIOnvazF
2017-06-12 17:32:48 -04:00
Emilio Cobos Álvarez
3731858edf Bug 1360241: Devirtualize nsIFrame::GetType. r=heycam
MozReview-Commit-ID: 5Nzhyta5Hle
2017-04-30 17:30:08 +02:00
Ting-Yu Lin
e6769617e9 Bug 775624 Part 22 - Remove NS_FRAME_COMPLETE. r=dholbert
This patch is written by the following script with some manual adjustment to
the comment in nsRubyTextContainerFrame.cpp and nsRubyFrame.cpp, and
nsColumnSetFrame's constructor.

function rename() {
find layout\
     -type f\
     \( -name "*.cpp" -or\
        -name "*.h" \)\
        -exec sed -i -r "s/$1/$2/g" "{}" \;
}

rename "nsReflowStatus *([a-zA-Z0-9]*) = NS_FRAME_COMPLETE" "nsReflowStatus \1"
rename "([a-zA-Z0-9.*]*) *= NS_FRAME_COMPLETE;" "\1.Reset();"
rename "([a-zA-Z0-9.*]*) == NS_FRAME_COMPLETE" "\1.IsEmpty()"

MozReview-Commit-ID: 9tqQAHvdQex
2017-02-14 17:55:48 +08:00
Ting-Yu Lin
af9153f958 Bug 775624 Part 18 - Convert NS_INLINE_IS_BREAK to a method. r=dholbert
MozReview-Commit-ID: 7Tw1BUjOYgg
2017-02-14 16:33:37 +08:00
Ting-Yu Lin
899e0f6d07 Bug 775624 Part 17 - Convert NS_INLINE_IS_BREAK_AFTER to a method. r=dholbert
MozReview-Commit-ID: CD9uuOC3CzP
2017-02-14 16:22:04 +08:00
Ting-Yu Lin
1d4509ad47 Bug 775624 Part 16 - Convert NS_INLINE_IS_BREAK_BEFORE to a method. r=dholbert
MozReview-Commit-ID: 8vxRpqbZNnk
2017-02-14 16:05:24 +08:00
Ting-Yu Lin
a3dd49c694 Bug 775624 Part 13 - Convert NS_INLINE_LINE_BREAK_AFTER to a method. r=dholbert
NS_INLINE_MAKE_BREAK_TYPE is used only in BRFrame. Delete it, too.

MozReview-Commit-ID: GC4vF0GFsAD
2017-02-14 11:52:53 +08:00
Ting-Yu Lin
727acb01c1 Bug 775624 Part 6 - Remove NS_FRAME_OVERFLOW_IS_INCOMPLETE. r=dholbert
This patch is written by the help of the following script.

function rename() {
find layout\
     -type f\
     \( -name "*.cpp" -or\
        -name "*.h" \)\
        -exec sed -i -r "s/$1/$2/g" "{}" \;
}

rename "NS_FRAME_OVERFLOW_IS_INCOMPLETE\(([a-zA-Z0-9.*]*)\)" "\1.IsOverflowIncomplete()"

MozReview-Commit-ID: GOd4y2N6dcz
2017-02-11 22:54:26 +08:00
Ting-Yu Lin
8d6d261f9f Bug 775624 Part 5 - Remove NS_FRAME_IS_COMPLETE. r=dholbert
This patch is written by the help of the following script.

function rename() {
find layout\
     -type f\
     \( -name "*.cpp" -or\
        -name "*.h" \)\
        -exec sed -i -r "s/$1/$2/g" "{}" \;
}

rename "NS_FRAME_IS_COMPLETE\(([a-zA-Z0-9.*]*)\)" "\1.IsComplete()"

MozReview-Commit-ID: GOd4y2N6dcz
2017-02-11 22:45:07 +08:00
Ting-Yu Lin
ee777dbc18 Bug 775624 Part 3 - Remove NS_FRAME_IS_NOT_COMPLETE. r=dholbert
This patch is written by the help of the following script.

function rename() {
find layout\
     -type f\
     \( -name "*.cpp" -or\
        -name "*.h" \)\
        -exec sed -i -r "s/$1/$2/g" "{}" \;
}

rename "NS_FRAME_IS_NOT_COMPLETE\(([a-zA-Z0-9.*]*)\)" "\1.IsIncomplete()"

MozReview-Commit-ID: GOd4y2N6dcz
2017-02-11 22:17:26 +08:00
Xidorn Quan
73900b805a Bug 1267515 part 2 - Place ruby annotations outside annotations from ruby descendants. r=dholbert
MozReview-Commit-ID: Gbo43pC5jqr
2016-10-26 17:40:58 +11:00
Xidorn Quan
fe92f6c82c Bug 1267515 part 1 - Refactor ruby leadings into a helper RubyBlockLeadings struct. r=dholbert
MozReview-Commit-ID: IJAA9fHbCZd
2016-11-10 11:10:42 +11:00
Xidorn Quan
1ada2b0d24 Bug 1260031 - Not force break before a block when calculating intrinsic width if the current line is empty and the block cannot intersect floats. r=dbaron
MozReview-Commit-ID: 9rNUDK5t5jg
2016-08-23 09:29:45 +10:00
Nicholas Nethercote
887efe04d5 Bug 1299727 - Rename NS_WARN_IF_FALSE as NS_WARNING_ASSERTION. r=erahm.
The new name makes the sense of the condition much clearer. E.g. compare:

  NS_WARN_IF_FALSE(!rv.Failed());

with:

  NS_WARNING_ASSERTION(!rv.Failed());

The new name also makes it clearer that it only has effect in debug builds,
because that's standard for assertions.
2016-09-01 15:01:16 +10:00
Ravi Shankar
181d48792f Bug 1297982 - Replace NS_STYLE_BOX_DECORATION_BREAK_* with enum class; r=xidorn
MozReview-Commit-ID: 9Cli68UpKdz
2016-08-26 12:44:32 +05:30
Ting-Yu Lin
d3e8cf1818 Bug 1277129 Part 7b - Rename various ReflowState variables to ReflowInput. r=dbaron
This patch is generated by the following script:

function rename() {
find .\
     -type f\
     ! -path "./obj*"\
     ! -path "./.git"\
     ! -path "./.hg"\
     \( -name "*.cpp" -or\
        -name "*.h" \)\
        -exec sed -i -r "s/$1/$2/g" "{}" \;
}

rename "([[:alpha:]]*)([rR])eflowState(s?)" "\1\2eflowInput\3"

MozReview-Commit-ID: ITFO7uMTkSb
2016-07-21 18:36:39 +08:00
Ting-Yu Lin
bb0825b5c7 Bug 1277129 Part 5c - Rename nsHTMLReflowMetrics to ReflowOutput. r=dbaron
This patch is generated by the following script:

function rename() {
find .\
     -type f\
     ! -path "./obj*"\
     ! -path "./.git"\
     ! -path "./.hg"\
     \( -name "*.cpp" -or\
        -name "*.h" \)\
        -exec sed -i -e "s/$1/$2/g" "{}" \;
}

rename "nsHTMLReflowMetrics" "ReflowOutput"

MozReview-Commit-ID: 2HBb7DkooH5
2016-07-21 18:36:38 +08:00
Ting-Yu Lin
10912a51e3 Bug 1277129 Part 1c - Rename nsHTMLReflowState to ReflowInput. r=dbaron
This patch is generated by the following script:

function rename() {
find .\
     -type f\
     ! -path "./obj*"\
     ! -path "./.git"\
     ! -path "./.hg"\
     \( -name "*.cpp" -or\
        -name "*.h" \)\
        -exec sed -i -e "s/$1/$2/g" "{}" \;
}

rename nsHTMLReflowState ReflowInput

MozReview-Commit-ID: 9r9vdVv1pXc
2016-07-21 18:36:35 +08:00
Ting-Yu Lin
c8f8c35622 Bug 1264837 Part 11 - Remove nsRubyFrameSuper. r=dholbert
MozReview-Commit-ID: ISa4OpM0x8i
2016-04-18 14:11:08 +08:00
Xidorn Quan
67b5dd18cc Bug 1229437 part 2 - Reparent floats inside pulled ruby segment. r=dbaron 2016-01-27 16:58:53 +11:00
Xidorn Quan
e2a9789117 Backed out 8 changesets (bug 1225018, bug 1229278, bug 1224013) for reftest failures on CLOSED TREE 2015-12-04 13:08:17 +11:00
Xidorn Quan
039afa606a Bug 1224013 part 2 - Move leading fix to ruby base container. r=dholbert
Per spec, the additional leading is added on side of ruby base container, not
ruby container. This could lead to some trivial behavior changes on edge cases.
2015-12-04 12:02:41 +11:00
Jonathan Kew
7e8bda5a72 Bug 1131451 part 1 - Replace containerWidth with containerSize in logical-coordinate classes and APIs, frame classes, etc. r=dholbert 2015-07-16 10:07:57 +01:00
Xidorn Quan
047e13c1f1 Bug 1141931 part 7 - Move [Auto]RubyTextContainerArray to RubyUtils and merge RubyTextContainerIterator into AutoRubyTextContainerArray. r=dholbert 2015-04-08 11:22:34 +12:00
Xidorn Quan
b5f85c6d89 Bug 1141931 part 6 - Move Ruby{Segment,Column}Enumerator to RubyUtils. r=dholbert 2015-04-08 11:22:34 +12:00
Xidorn Quan
bd95394de6 Bug 1141931 part 2 - Eliminate writing-mode mismatch in ruby reflow. r=dholbert 2015-04-08 11:22:34 +12:00
Wes Kocher
95d8beba17 Backed out 10 changesets (bug 1141931) for mochitest-5 failures CLOSED TREE
Backed out changeset c90940067de6 (bug 1141931)
Backed out changeset 96b48288abab (bug 1141931)
Backed out changeset 87281c7ded34 (bug 1141931)
Backed out changeset 6a914ba0b8ec (bug 1141931)
Backed out changeset 9cfea55b5e95 (bug 1141931)
Backed out changeset f432612b6475 (bug 1141931)
Backed out changeset 48cf9568a4b1 (bug 1141931)
Backed out changeset f1ab848b3fa6 (bug 1141931)
Backed out changeset 8a3c71a3b525 (bug 1141931)
Backed out changeset 119d3c0fd0f6 (bug 1141931)
2015-04-07 14:23:57 -07:00
Xidorn Quan
60c7c57faf Bug 1141931 part 7 - Move [Auto]RubyTextContainerArray to RubyUtils and merge RubyTextContainerIterator into AutoRubyTextContainerArray. r=dholbert 2015-04-08 08:40:31 +12:00
Xidorn Quan
99f77b6bd1 Bug 1141931 part 6 - Move Ruby{Segment,Column}Enumerator to RubyUtils. r=dholbert 2015-04-08 08:40:31 +12:00
Xidorn Quan
7c6fa4cc1e Bug 1141931 part 2 - Eliminate writing-mode mismatch in ruby reflow. r=dholbert 2015-04-08 08:40:31 +12:00
Xidorn Quan
af01044b67 Bug 1146114 - Make assertion checking additional leading in ruby frame non-crash. r=dholbert 2015-03-31 16:30:29 +11:00
Mats Palmgren
3f92be8fe8 Bug 1148833 part 3 - Remove nsIFrame::WillReflow and add a non-virtual MarkInReflow method instead that sets NS_FRAME_IN_REFLOW. Call it at the start of Reflow(). r=roc 2015-03-29 22:38:40 +00:00
Cameron McCormack
a562bdc57f Bug 1120300 - Export WritingModes.h as mozilla/WritingModes.h. r=jfkthame 2015-03-26 18:29:31 +11:00
Xidorn Quan
b1ff4c5e8a Bug 1141928 part 1 - Correct the position of ruby text containers in RTL text. r=jfkthame
This patch uses the logical version of FinishReflowChild instead, so that we are able to keep the consistent logical rect, and then fix the rect with correct container width after the whole line is reflowed.
2015-03-14 16:46:33 +11:00
Xidorn Quan
60ca0c09a4 Bug 1141928 part 0 - Change line relative dir mapping code to return LogicalSide instead of physical side. r=jfkthame
This also fixes the line relative dir mapping code for inline axis direction.
2015-03-14 16:46:33 +11:00
Xidorn Quan
3e94568e76 Bug 1134432 part 2 - Fix basic inline min/pref isize calculation of ruby frames. r=dbaron 2015-02-22 00:39:33 +13:00
Xidorn Quan
99933f2774 Bug 1123917 part 2 - Make ruby-position only accept [over|under] instead of compound values. r=dholbert 2015-01-22 14:04:55 +11:00
Xidorn Quan
ee4bab57ee Bug 1055667 part 6 - Fix border/padding of ruby frame. r=dbaron 2015-01-15 20:02:11 +11:00
Xidorn Quan
98a904d484 Bug 1055667 part 5 - Make nsRubyFrame inherit nsInlineFrame. r=dbaron 2015-01-15 20:02:11 +11:00
Xidorn Quan
660e809d5e Bug 1055667 part 2 - Remove unnecessary param of SetBSizeFromFontMetrics. r=dbaron 2015-01-15 20:02:11 +11:00
Xidorn Quan
0549a155fe Bug 1055658 part 4 - Revert RubyReflowState. r=dbaron 2015-01-13 20:04:41 +11:00
Nigel Babu
2492f633d1 Backed out 4 changesets (bug 1055658) for M5 bustage on a CLOSED TREE
Backed out changeset 3cbd9323c896 (bug 1055658)
Backed out changeset 99e071295c42 (bug 1055658)
Backed out changeset 55119d19e4c5 (bug 1055658)
Backed out changeset e82f640cb53f (bug 1055658)
2015-01-12 10:43:11 +05:30
Xidorn Quan
cdb8162daf Bug 1055658 part 4 - Revert RubyReflowState. r=dbaron 2015-01-12 14:31:55 +11:00
Xidorn Quan
0f642d971e Bug 1069519 part 2 - Make line height calculation be aware of ruby annotations. r=dholbert 2015-01-08 16:02:41 +11:00
Xidorn Quan
3f6f4f97de Bug 1116688 - Always try to push children after reflowing an incomplete ruby segment. r=dbaron 2015-01-07 12:47:09 +11:00
Xidorn Quan
3117e03451 Bug 1116631 - Fix isize reservation of ruby base container. r=roc 2015-01-07 12:47:09 +11:00