1649 Commits

Author SHA1 Message Date
Carsten "Tomcat" Book
bb1fe1fc10 Backed out changeset 049b20a12429 (bug 1324618) for bustage 2017-06-27 10:39:58 +02:00
Carsten "Tomcat" Book
d4cd7abe0a Backed out changeset 169cafc2d5f9 (bug 1324618) 2017-06-27 10:39:39 +02:00
Boris Zbarsky
f9aed5db67 Bug 1324618 part 8. Implement restyling for first-letter frames. r=emilio
MozReview-Commit-ID: IPUDD1Q6AFq

--HG--
extra : rebase_source : e7f1b97fc43825de4617195edb4d9ed6bfbb12f2
2017-06-26 23:35:08 -07:00
Boris Zbarsky
af8c5f3819 Bug 1324618 part 4. Implement a way to get the first-letter frame, if any, for a block. r=heycam
MozReview-Commit-ID: 1o0d5ugJ1hj

--HG--
extra : rebase_source : 6b6900ab2c6fdb3ae07af6e7915b1ecce8cf051d
2017-06-26 23:35:07 -07:00
Boris Zbarsky
6fd06e372d Bug 1375315. Make sure to update block pseudo-element styles on various anonymous blocks. r=emilio
MozReview-Commit-ID: HBabvfWYgdP

--HG--
extra : rebase_source : 6fb94a3494873d63bc49fd44e9951a9c7c5a8d8b
2017-06-22 11:24:11 -04:00
Alexis Beingessner
adb013669b 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
f3bf820bfd 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
c75211cb95 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
Mats Palmgren
357e4b9560 bug 1368547 part 2 - Remove nsFrameManager/PresShell methods dealing with placeholders and introduce a nsIFrame::GetPlaceholderFrame() convenience method. r=jfkthame
MozReview-Commit-ID: GBUiUBqJxhQ
2017-05-31 21:29:49 +02:00
Jonathan Kew
a8f81efd8e Bug 1365982 - Attach frame properties to each frame instead of looking them up in a hashtable on the prescontext. r=mats
--HG--
rename : layout/base/FramePropertyTable.cpp => layout/base/FrameProperties.cpp
rename : layout/base/FramePropertyTable.h => layout/base/FrameProperties.h
2017-05-27 12:36:00 +01:00
Mats Palmgren
badec5efb7 Bug 1359341 part 4 - Optimize initializing a nsBlockInFlowLineIterator for single-line blocks by skipping the search for aFindFrame. r=jfkthame
MozReview-Commit-ID: GpiNAzFhZeJ
2017-05-23 19:09:27 +02:00
Mats Palmgren
f9096282d3 Bug 1359341 part 3 - Propagate AreAllEarlierInFlowFramesEmpty() state on placeholders down the line. We can stop iterating siblings if we find a placeholder with a stored state. r=jfkthame
MozReview-Commit-ID: DNtcNIEwA5P
2017-05-23 19:09:27 +02:00
Jonathan Kew
6d345e8ee2 Bug 1365356 - patch 2 - Allow callers to pass an nsStyleDisplay in to FinishAndStoreOverflow, to avoid internal StyleDisplay() calls. r=mats 2017-05-17 15:47:31 +01:00
Xidorn Quan
8c54e3ce73 Bug 1363699 part 1 - Make named CounterStyle objects not refcounted. r=heycam
This change does the following:
* Introduce a new smart pointer called CounterStylePtr which either
  holds an AnonymousCounterStyle strongly, or a named CounterStyle
  managed by CounterStyleManager weakly, and use it to replace all
  RefPtr<CounterStyle> around the codebase.
* Rename CounterStyleManager::mCacheTable to mStyles to reflect the
  fact that it is used to manage all styles, not just for caching.
* Add a retired styles list which collect all named CounterStyle
  evicted from mStyles, and post a PostRefreshObserver to destroy
  objects in that list after next flush.
* Remove helper functions for counter style in nsStyleList and expose
  mCounterStyle directly, to make code simpler with the new pointer.

Reason for adding a new smart pointer type rather than making their
AddRef/Release behave like BuiltinCounterStyle is that, it is possible
that after a flush, some stale style structs may still be alive. They
can contain pointer to destroyed CounterStyle objects. Although the
actual content may never be accessed anymore, RefPtr may still access
the object for refcounting during destruction.

MozReview-Commit-ID: xxegwSDhNb

--HG--
extra : rebase_source : bb5443f0eb56eee51cbdfd08e0400335648610e8
2017-05-13 21:42:23 +10:00
Emilio Cobos Álvarez
23bce99ae1 Bug 1361051: rename mozilla::FrameType to mozilla::LayoutFrameType. r=xidorn
This avoids conflicts with mozilla::dom::FrameType.

MozReview-Commit-ID: 7aEMbHRaTFk

--HG--
extra : rebase_source : 2d01321f5ce0ec8c0e3f70984674f82678034b3c
2017-05-01 19:32:52 +02:00
Emilio Cobos Álvarez
e44543aad4 Bug 1360241: Devirtualize nsIFrame::GetType. r=heycam
MozReview-Commit-ID: 5Nzhyta5Hle

--HG--
extra : rebase_source : c2e9d4bfb9239f5e851d110cd7dff98c1e1a8d8b
2017-04-30 17:30:08 +02:00
Brad Werth
9a36059cb9 Bug 1351383 Part 2: Collect telemetry for nsBlockFrame and children with css box align styles. r=dholbert
MozReview-Commit-ID: H8oCHAtBMyg

--HG--
extra : rebase_source : 483f9436fe69daa1dfaaf5bdae3c0a4c0aff49f7
2017-04-25 16:52:45 -07:00
Mats Palmgren
491f6d4576 Bug 944200 part 2 - [css-ui] Store the line's float edges for text-overflow analysis if needed. r=dholbert
MozReview-Commit-ID: L9YnBKCckgR
2017-04-15 00:31:43 +02:00
cku
a52259bf72 Bug 1349462 - Part 1. Rename IsSVGText as IsInSVGTextSubtree. r=heycam
MozReview-Commit-ID: LTo6c8tTtaf

--HG--
extra : rebase_source : bc6913c42cca141d7a3098fdd4dcc72fbf146b5a
2017-03-23 15:29:11 +08:00
Ting-Yu Lin
cd607fcae6 Bug 775624 Part 24 - Implement operator<< for nsReflowStatus to use mozilla::ToString. r=dholbert
To print log in nsBlockFrame, run "GECKO_BLOCK_DEBUG_FLAGS=reflow ./mach run".

Here is a sample nsReflowStatus string:
[Complete=Y,NIF=N,Truncated=N,Break=N,FirstLetter=Y].

MozReview-Commit-ID: 4voGcXfJlN7

--HG--
extra : rebase_source : f84ba1ef47e30513674e578fab37b66a8b2a1ab3
2017-02-14 18:41:41 +08:00
Ting-Yu Lin
8f840dc923 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

--HG--
extra : rebase_source : 3119776946dc2c8350098b7bf9f3ceff29bdffb5
2017-02-14 17:55:48 +08:00
Ting-Yu Lin
37d27159af Bug 775624 Part 19 - Convert NS_INLINE_BREAK_FIRST_LETTER_COMPLETE to use bit-field and methods. r=dholbert
MozReview-Commit-ID: k1CSWJNMns

--HG--
extra : rebase_source : 1aa775a1e835f3d001f8b2093d0c4fb9f6651630
2017-02-14 17:09:37 +08:00
Ting-Yu Lin
65116ee49c Bug 775624 Part 18 - Convert NS_INLINE_IS_BREAK to a method. r=dholbert
MozReview-Commit-ID: 7Tw1BUjOYgg

--HG--
extra : rebase_source : 907596f5a59dea709063d1f329a2155a430f41fc
2017-02-14 16:33:37 +08:00
Ting-Yu Lin
8f66d2167b Bug 775624 Part 17 - Convert NS_INLINE_IS_BREAK_AFTER to a method. r=dholbert
MozReview-Commit-ID: CD9uuOC3CzP

--HG--
extra : rebase_source : e7a12a1b37f591ba33e4ed8e73502f7cddf5d619
2017-02-14 16:22:04 +08:00
Ting-Yu Lin
d5c6d28836 Bug 775624 Part 16 - Convert NS_INLINE_IS_BREAK_BEFORE to a method. r=dholbert
MozReview-Commit-ID: 8vxRpqbZNnk

--HG--
extra : rebase_source : 195e2da23d64da9e9a888968a45eaae2e6539585
2017-02-14 16:05:24 +08:00
Ting-Yu Lin
1c0431a402 Bug 775624 Part 14 - Convert NS_INLINE_GET_BREAK_TYPE to a method. r=dholbert
MozReview-Commit-ID: CAYlv21gPpR

--HG--
extra : rebase_source : f1d44d9ccac983f2051f09f17bf662b5bfad76e3
2017-02-14 15:58:03 +08:00
Ting-Yu Lin
56ebb62910 Bug 775624 Part 12 - Add bit-fields for inline break status, and convert NS_INLINE_LINE_BREAK_BEFORE. r=dholbert
NS_INLINE_LINE_BREAK_BEFORE() was replaced 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_INLINE_LINE_BREAK_BEFORE\(\);" ".SetInlineLineBreakBeforeAndReset();"

MozReview-Commit-ID: mz6L8zay7q

--HG--
extra : rebase_source : fddffa1288c7a52c7245aec0839a65f8d1d3f008
2017-02-14 11:52:53 +08:00
Ting-Yu Lin
19a2af3275 Bug 775624 Part 11 - Convert NS_MergeReflowStatusInto() to a method. r=dholbert
Also, remove NS_FRAME_TRUNCATED and NS_FRAME_REFLOW_NEXTINFLOW because both
are used only by NS_MergeReflowStatusInto().

MozReview-Commit-ID: LsPOji9j2e

--HG--
extra : rebase_source : 7cf1421c066f0f8df3e8402b84ae0f584cad2d11
2017-02-13 17:15:01 +08:00
Ting-Yu Lin
11579e0ce5 Bug 775624 Part 9 - Convert NS_FRAME_REFLOW_NEXTINFLOW to use bit-field and methods. r=dholbert
MozReview-Commit-ID: 1TXOShK62X8

--HG--
extra : rebase_source : df0b26da3aefc239f11c28ccc746062e88ab86a3
2017-02-13 14:56:45 +08:00
Ting-Yu Lin
b7c479e1c2 Bug 775624 Part 8 - Remove NS_FRAME_SET_OVERFLOW_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_SET_OVERFLOW_INCOMPLETE\(\*([a-zA-Z0-9.*]*)\)" "\1->SetOverflowIncomplete()"
rename "NS_FRAME_SET_OVERFLOW_INCOMPLETE\(([a-zA-Z0-9.*]*)\)" "\1.SetOverflowIncomplete()"

MozReview-Commit-ID: EJOIs84vwev

--HG--
extra : rebase_source : 59a5ac827f57e7a0e50910f5a813c44560baeb00
2017-02-11 23:18:04 +08:00
Ting-Yu Lin
14b6536193 Bug 775624 Part 7 - Remove NS_FRAME_SET_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_SET_INCOMPLETE\(\*([a-zA-Z0-9.*]*)\)" "\1->SetIncomplete()"
rename "NS_FRAME_SET_INCOMPLETE\(([a-zA-Z0-9.*]*)\)" "\1.SetIncomplete()"

MozReview-Commit-ID: GOd4y2N6dcz

--HG--
extra : rebase_source : 185f5d6f5a3c8306761860c579eff10d931f3b35
2017-02-11 23:06:17 +08:00
Ting-Yu Lin
ba8d9f3b05 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

--HG--
extra : rebase_source : 2945ff0274d91137249eb2b5a053eeec08864a25
2017-02-11 22:54:26 +08:00
Ting-Yu Lin
f7a393e947 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

--HG--
extra : rebase_source : aa8b11d3a756c9e7c521e6ffd70713af0174bd98
2017-02-11 22:45:07 +08:00
Ting-Yu Lin
99ebdf6cf3 Bug 775624 Part 4 - Remove NS_FRAME_IS_FULLY_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_FULLY_COMPLETE\(([a-zA-Z0-9.*]*)\)" "\1.IsFullyComplete()"

MozReview-Commit-ID: GOd4y2N6dcz

--HG--
extra : rebase_source : 200639e836cebe26fd77cde21f478fd027e1725f
2017-02-11 22:38:48 +08:00
Ting-Yu Lin
b31150930a 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

--HG--
extra : rebase_source : 412b60e7954118d8443ebf2a786046d7cd38c516
2017-02-11 22:17:26 +08:00
Mats Palmgren
be996e2f31 Bug 410857 part 2 - DrainOverflowLines before ResolveBidi for slightly improved performance. r=jfkthame 2017-02-20 17:43:08 +01:00
Ting-Yu Lin
90c689bf56 Bug 1338443 Part 1 - Use ReflowInput's float manager in BlockReflowInput. r=dholbert
From the "NS_ASSERTION(mFloatManager)" statement in BlockReflowInput's
constructor, we know that BlockReflowInput's mFloatManager is always valid
and equals to aReflowInput.mFloatManager. Therefore, we could just use
ReflowInput's float manager in BlockReflowInput.

Due to the removal of BlockReflowInput's mFloatManager, the logic which
resets mFloatManager near the end of nsBlockFrame::Reflow() is removed as
well. It's safe because beyond that point, no other logic involves floats,
and |state| (i.e. BlockReflowInput) lives only on the stack.

MozReview-Commit-ID: 3dwXMnWkEI6

--HG--
extra : rebase_source : 7f9af1af10fd54456450b23bc0004dd5f15db4e4
2017-02-09 16:59:07 +08:00
Mats Palmgren
10150aa1b7 Bug 1232194 part 1 - [writing-mode] Drop "Get" from GetConsumedBSize() and add a WritingMode param. r=dholbert 2017-01-04 00:56:19 +01:00
Phil Ringnalda
3f025b28e0 Merge m-c to m-i
MozReview-Commit-ID: 6JjpxZR3ese
2016-12-31 11:32:38 -08:00
Mats Palmgren
dfeed3a85d Bug 1325355 part 2 - Rename nsIFrame::GetWritingMode to WritingModeForLine to make its purpose clearer. r=jfkthame 2016-12-31 18:16:32 +01:00
Mats Palmgren
ea21a73fc7 Bug 1325355 part 1 - Make nsIFrame::GetWritingMode take a WritingMode param instead of calling this->GetWritingMode(). r=jfkthame 2016-12-31 18:16:32 +01:00
Xidorn Quan
0fe4f86e06 Bug 1322843 part 2 - Conditionally keep some floats in InlinePrefISizeData::ForceBreak. r=dbaron
This patch makes ForceBreak() partially clear floats according to the
break type of the coming block.

MozReview-Commit-ID: 71Gl9lBoTJ5

--HG--
extra : rebase_source : 5ca01565f607241df0c63a7cd64c35ac7ff7648f
2016-12-22 18:30:38 +11:00
Mats Palmgren
6aead680d1 Bug 1322191 part 2b - Replace "NS_BLOCK_FLOAT_MGR | NS_BLOCK_MARGIN_ROOT" with NS_BLOCK_FORMATTING_CONTEXT_STATE_BITS. r=dholbert 2016-12-23 19:11:04 +01:00
Mats Palmgren
46f54ec32b Bug 1322191 part 2 - [css-display] Implement layout for display:flow-root. r=dholbert 2016-12-23 19:11:03 +01:00
Mats Palmgren
99856fc256 Bug 1312379 part 4 - Rename GetBaseline() to BaselineBOffset(). r=me 2016-12-20 23:56:35 +01:00
Mats Palmgren
ed15c70d6d Bug 1312379 part 1 - [css-align][css-flexbox][css-grid] Introduce nsIFrame methods for calculating baselines per CSS Alignment and CSS2 'vertical-align'. r=dholbert 2016-12-20 23:56:35 +01:00
Ting-Yu Lin
0bb55f9970 Bug 1309467 Part 4 - Implement <shape-box> values for shape-outside. r=dbaron
Per spec, float positioning and stacking is not affected by defining a float
area with a shape.
https://drafts.csswg.org/css-shapes/#relation-to-box-model-and-float-behavior

So all the call sites of GetFloatAvailableSpace() related to adding a
float are replaced by GetFloatAvailableSpaceForPlacingFloat().

<shape-box> with border-radius will be implemented in next part.

MozReview-Commit-ID: 1RXEeXDhdWo

--HG--
extra : rebase_source : 42cdb0c81b16168e4e30ee2261ceccb562e278cf
2016-10-12 16:06:25 +08:00
Ting-Yu Lin
384e9e119b Bug 1291110 Part 4 - Use line BSize to query available space when updating nsLineLayout. r=dbaron
In nsBlockFrame::PlaceLine(), we query the float available space by
using the line's BSize(), which may cause the line to reflow again due
to available space shrunk.

The first issue lies in the second reflow. That is, we do not leverage
the line's BSize() computed in the first reflow to query the float
available space when updating the inline reflow engine in
BlockReflowInput::AddFloat(). So some tall inline elements could still
overlap the floats as in the first reflow.

To solve this, we cache current line's BSize so that it could be
used to update the inline reflow engine when redo the line.

Another issue is in nsBlockFrame::PlaceLine(). When determined whether
the available space is shrunk, we use the float manager's state *before*
placing the line. So if current line has floats, they're not considered.

To solve this, we use the current set of floats to get the float available
space for comparison, and leave the original aFloatAvailableSpace to provide
the information when redoing the line.

MozReview-Commit-ID: GqqNlphgxYS

--HG--
extra : rebase_source : e2c64ab1ac363c7a08e532dc043bee69d6455049
2016-08-22 19:42:37 +08:00
Ting-Yu Lin
8fa65e4f5d Bug 1291110 Part 3 - Enforce float available space never grow on either side. r=dbaron
This patch is based on bug 1291110 comment 29, but |aCanGrow| is preserved,
since the set of float available spaces we'll be testing in Part 4 are
difference from the one we enforced here.

MozReview-Commit-ID: LswbIaRukVR

--HG--
extra : rebase_source : 007d55fd867d052163ea5bb4222baf201fe30bcf
2016-11-08 15:20:58 +08:00
Ting-Yu Lin
76dba9d5d5 Bug 1291110 Part 2 - Rename availableSpaceHeight to availableSpaceBSize. r=dbaron
Rename to make the variable name consistent with the writing-mode
terminology used in PlaceLine().

MozReview-Commit-ID: AvhwHyHz7hV

--HG--
extra : rebase_source : bcec67d9959c1b881b4d287dbbab47dd0d6e0de9
2016-11-08 13:42:14 +08:00