Commit Graph

1150 Commits

Author SHA1 Message Date
Mats Palmgren
a254b64145 Bug 1364805 part 4 - Remove the now unused LayoutFrameType values from the ctors. r=jfkthame
MozReview-Commit-ID: 1RSDoc3pQXf
2017-05-26 12:11:11 +02:00
Mats Palmgren
483a804512 Bug 1364805 part 3 - Implement Type() by indexing a static array using the mClass field. Remove the nsIFrame::mType field. r=jfkthame
In the nsWindowMemoryReporter.cpp / nsArenaMemoryStats.h I'm only
including the concrete frame classes now - we obviously never have
instances of the other IDs so there's no need to collect stats for them.

MozReview-Commit-ID: 48uFCZ3xKBC
2017-05-26 12:11:11 +02:00
Mats Palmgren
1242172259 Bug 1364805 part 2 - Add a nsIFrame::mClass field and propagate the concrete class' value up the ctor chain. r=jfkthame
nsIFrame::mClass is of type enum class nsQueryFrame::ClassID which is
a strict subset of the nsQueryFrame::FrameIID values.  For a concrete
frame class, its FrameIID is the same numeric value as its ClassID.

MozReview-Commit-ID: 1N0AkCGo1ol
2017-05-26 12:11:11 +02:00
Mats Palmgren
e51607abe1 Bug 1359341 part 2 - Add a couple of private frame state bits to nsPlaceholderFrame to be used for propagating "line emptiness" during reflow. r=jfkthame
MozReview-Commit-ID: Ds98Sn5PZav
2017-05-23 19:09:26 +02:00
Wes Kocher
9a8d52f7af Merge m-c to autoland, a=merge
MozReview-Commit-ID: AVwPRGa5re9
2017-05-22 16:38:46 -07:00
Jonathan Kew
fcf175b16a Bug 1365928 - patch 2 - Annotate style-struct getters with MOZ_NONNULL_RETURN for better optimization. r=mats 2017-05-22 19:00:19 +01:00
Mats Palmgren
297b9d70e1 Bug 1365614 part 3 - Backout bug 1333482 part 1-9. Removes support for [-webkit-]appearance for now b/c web compat issues. r=bz
MozReview-Commit-ID: IbwWM0FL6HF

--HG--
extra : source : bbb688fe1ba3f5201a190c6e25b693ef7272ea2d
2017-05-21 17:15:00 +08:00
Carsten "Tomcat" Book
00d4ea331d Backed out changeset bbb688fe1ba3 (bug 1365614) 2017-05-22 15:45:31 +02:00
Mats Palmgren
e706869580 Bug 1365614 part 3 - Backout bug 1333482 part 1-9. Removes support for [-webkit-]appearance for now b/c web compat issues. r=bz 2017-05-21 17:15:00 +08:00
Emilio Cobos Álvarez
56e549e4af Bug 1364871: Factor out some code from UpdateStyleOfChildAnonBox into UpdateStyleOfOwnedChildFrame. r=heycam
MozReview-Commit-ID: 24U6PmmqCeP

--HG--
extra : rebase_source : bf726211d064f7e6274100267d9b1b341c2a2f95
2017-05-19 23:56:02 +02:00
cku
d528aa4d56 Bug 1205475 - Part 2. Prevent multiple EffectSet property look up. r=mattwoodrow
Functions like BuildDisplayListForStackingContext or BuildDisplayListForChild look
up EffectSet property several times in callees, such as IsTransformed() or
HasOpacity(), which is time wasting.

We should look up EffectSet just once, and pass the found one to all callees
that need it.

MozReview-Commit-ID: GZywm2UcpU7

--HG--
extra : rebase_source : 21f5dd0076a90d876a6df35eee2b886844b44f0a
2017-05-17 15:13:12 +08:00
Jonathan Kew
54fe5f66e7 Bug 1365356 - patch 4 - Split low-level nsIFrame methods taking an optional nsStyleDisplay pointer into two versions, one taking a (non-null) nsStyleDisplay parameter, so we can bypass StyleDisplayWithOptionalParam and its null-check + branch in hot calls. r=mats 2017-05-17 15:47:42 +01:00
Jonathan Kew
fef41b2663 Bug 1365356 - patch 3 - Allow callers to pass an nsStyleDisplay to GetContainingBlock (and IsAbsolutelyPositioned, which it calls) if they have it on hand, to avoid internal calls to StyleDisplay(). r=mats 2017-05-17 15:47:36 +01: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
Bas Schouten
dafd50f856 Bug 1331718 - Part 3: Store pointers to DisplayItemData directly on nsIFrame. r=mattwoodrow r=dbaron
This patch aims to speed up the lookup and storage of DisplayItemData objects, by removing a level of indirection and preventing the previously required hashtable lookup in order to access these. Instead it stores an array of pointers on each frame that allows direct access to the DisplayItemData object by dereferencing the frame. Since most frames get either 1 or 2 DisplayItemData objects attached to them a specialized class is used that is of minimal size (2 * sizeof(void)) and that performs well for sizes 1 or 2.

MozReview-Commit-ID: HONKAmpk5H8
2017-05-10 05:07:38 +02:00
Carsten "Tomcat" Book
a1263f8111 Backed out changeset ff6861518bc3 (bug 1331718) 2017-05-10 12:09:04 +02:00
Bas Schouten
70d011d12c Bug 1331718 - Part 3: Store pointers to DisplayItemData directly on nsIFrame. r=mattwoodrow r=dbaron
This patch aims to speed up the lookup and storage of DisplayItemData objects, by removing a level of indirection and preventing the previously required hashtable lookup in order to access these. Instead it stores an array of pointers on each frame that allows direct access to the DisplayItemData object by dereferencing the frame. Since most frames get either 1 or 2 DisplayItemData objects attached to them a specialized class is used that is of minimal size (2 * sizeof(void)) and that performs well for sizes 1 or 2.

MozReview-Commit-ID: HONKAmpk5H8
2017-05-10 05:07:38 +02:00
Mats Palmgren
cfc06fe550 Bug 1361499 - Initialize nsIFrame::mState in the ctor to avoid Coverity warnings. r=jfkthame
MozReview-Commit-ID: 8ly3NZMbuQ8
2017-05-03 22:19:14 +02: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
Carsten "Tomcat" Book
e1e203f1f5 Merge mozilla-central to autoland 2017-04-27 16:36:41 +02:00
Masatoshi Kimura
a4c9e326d4 Bug 1358758 - Use CSSIntRect for nsIFrame::GetScreenRect. r=kats
MozReview-Commit-ID: KXPL1ERbFDa

--HG--
extra : rebase_source : 263b18d1736b09bb62d914f066481281966b288c
2017-04-25 07:33:13 +09:00
Emilio Cobos Álvarez
135c333511 Bug 1355351: Clean up pseudo-element props. r=heycam
MozReview-Commit-ID: JZAhEN3chPs

--HG--
extra : rebase_source : f5756182a9ad35b6ac73a6f4d022c1f93ccbf333
2017-04-19 10:27:33 +02:00
Jonathan Kew
d355744d7c Bug 1358275 - When no BidiDataProperty() is present, nsIFrame::GetBidiData() should return data with precedingControl=kBidiLevelNone to avoid unecessarily interrupting textruns. r=dholbert 2017-04-26 23:25:48 +01:00
Mats Palmgren
c02d9817f3 Bug 1348857 part 2 - [css-grid] Propagate the ApplyAutoMinSize bit to nsFrame::ComputeSize (idempotent patch). r=dholbert
MozReview-Commit-ID: DBU4hDfCAdE
2017-04-18 22:35:04 +02:00
L. David Baron
f56a065e7d Bug 1353187 - Give frame properties the const-ness semantics of member variables. r=dholbert
This makes it so that, given a |const nsIFrame*|, a caller can retrieve
properties but not set or remove them, but with an |nsIFrame*| all
operations are allowed.  I believe this is sensible since properties act
as extended member variables for things that are needed rarely, and
these are the const-ness semantics of member variables.

This also avoids the need for const_cast<nsIFrame*> to cast away const
in the following patch, which guards property access with a frame state
bit.

MozReview-Commit-ID: IJ9JnGzdH51

--HG--
extra : transplant_source : %D4%DF%04%91_q%E6%CF%B3N%82%2C%A5%CB0%3A%B6%810%ED
2017-04-04 20:59:21 -07:00
Carsten "Tomcat" Book
358125cbde Backed out changeset a86c4218ca5f (bug 1353187) 2017-04-04 09:54:51 +02:00
L. David Baron
c2af2e1613 Bug 1353187 - Give frame properties the const-ness semantics of member variables. r=dholbert
This makes it so that, given a |const nsIFrame*|, a caller can retrieve
properties but not set or remove them, but with an |nsIFrame*| all
operations are allowed.  I believe this is sensible since properties act
as extended member variables for things that are needed rarely, and
these are the const-ness semantics of member variables.

This also avoids the need for const_cast<nsIFrame*> to cast away const
in the following patch, which guards property access with a frame state
bit.

MozReview-Commit-ID: IJ9JnGzdH51

--HG--
extra : transplant_source : %91%D6%C7%01hC%B3z%90%B6%93%93qcAK%CB%09%D6z
2017-04-03 20:43:30 -07:00
L. David Baron
14dccbfd0b Bug 1352056 - Call nsIFrame::StyleDisplay less from nsFrame::FinishAndStoreOverflow. r=dholbert
MozReview-Commit-ID: 5zuNLfyPv8o

--HG--
extra : transplant_source : %17%5Bm6%BE%DF%D0%12%19%8BZ%FE%E4%EE%E2%7F%9FR%DF%BA
2017-03-30 22:56:14 -04:00
L. David Baron
eb43b5f7d9 Bug 1352056 - Add nsIFrame::Style*WithOptionalParam helpers. r=dholbert
MozReview-Commit-ID: DFGBeKtg7hI

--HG--
extra : transplant_source : %F1%A7%FF%1Bo7%BD%FBkB%3D%F7%06C0%0B%18Z%B4%8F
2017-03-30 22:56:14 -04:00
Thinker K.F. Li
53cb8600b7 Bug 1343057 - Part 2: Disable AA for layers with animation in effect. r=mattwoodrow
--HG--
extra : rebase_source : 1de5a9f4a4e18ba8624433a43a22b8ac47a9cc91
2017-03-29 09:38:00 -04:00
Mats Palmgren
79cff05243 Bug 1333482 part 2 - [css-ui] Change all consumers of StyleDisplay::mAppearance to use the accessor UsedAppearance() instead, and make mAppearance/mMozAppearance private. r=dholbert
MozReview-Commit-ID: 8JwLsY1CLDJ
2017-03-23 22:11:18 -07:00
Carsten "Tomcat" Book
492970c342 merge mozilla-inbound to mozilla-central a=merge 2017-03-23 13:44:09 +01: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
Jonathan Watt
8565c76302 Bug 1349731 - Document how SVG frames use nsIFrame::mRect. r=longsonr
MozReview-Commit-ID: EcrJfuVWsJg
2017-02-20 12:47:19 +00:00
Mats Palmgren
bf4cac95a4 Bug 1348665 part 5 - Remove the aFrame param to ReparentFrameViewTo and make it a member function instead. r=tnikkel
MozReview-Commit-ID: HStZiMcSOZa
2017-03-21 01:22:13 +01:00
Mats Palmgren
b0adfe4733 Bug 1348665 part 4 - Remove some params to SyncFrameViewProperties and make it a member function instead. Make the aView param optional, use the frame's view if none provided. r=tnikkel
MozReview-Commit-ID: KTUaiqr0cmT
2017-03-21 01:22:13 +01:00
Mats Palmgren
4b52d84cfa Bug 1348665 part 3 - Remove the aFlags param to SyncFrameViewProperties because all callers pass zero. r=tnikkel
MozReview-Commit-ID: 7zohl3bOsO1
2017-03-21 01:22:13 +01:00
Mats Palmgren
896c347cb8 Bug 1348665 part 2 - Remove the ViewProperty and store the nsView* in a field on the relevant frame classes instead. r=tnikkel
The relevant frame classes are:
SubDocumentFrame
ListControlFrame (only when used for (non-e10s?) comboboxes)
PluginFrame
ViewportFrame
MenuPopupFrame

The view is now created in the frame's Init() method, except for
ViewportFrame which has its view assigned by the frame constructor
via a SetView() call.

MozReview-Commit-ID: 4O7Hm1yqwIp
2017-03-21 01:22:13 +01:00
Mats Palmgren
48fe777dbb Bug 1348665 part 1 - Move a few nsView related methods from nsContainerFrame to nsIFrame/nsFrame (idempotent patch). r=dholbert
Views are used for PluginFrame which inherits nsFrame, not nsContainerFrame,
so it's more appropriate that these methods should live in nsIFrame/nsFrame.

MozReview-Commit-ID: 87EgCnkF5YT
2017-03-21 01:22:13 +01:00
Bobby Holley
3439f1454b Bug 1343937 - Implement and use GetInFlowParent. r=bz
MozReview-Commit-ID: 3xMjHnVO2Az
2017-03-07 13:54:36 -08:00
Boris Zbarsky
b6041718b5 Bug 1340723 part 1. Add an nsIFrame function that can be called from the stylo restyle manager to update style contexts on anonymous boxes associated with that frame, and a frame state bit that can be used to optimize out the virtual calls. r=emilio
MozReview-Commit-ID: 2niUdJPSXKa

--HG--
extra : rebase_source : cfacb4cd47677d2589323c0cda8892226b698eef
2017-03-03 15:44:24 -05:00
Carsten "Tomcat" Book
4a4777d1aa merge mozilla-inbound to mozilla-central a=merge 2017-03-02 14:02:48 +01:00
Mats Palmgren
742155bd91 Bug 1340771 part 4 - Mark AutoWeakFrame as MOZ_NONHEAP_CLASS and WeakFrame as MOZ_HEAP_CLASS. r=tn
MozReview-Commit-ID: 8yGBKyx3TDW
2017-03-01 18:03:14 +01:00
Mats Palmgren
6ef6efaea3 Bug 1340771 part 2 - Introduce a WeakFrame class for heap allocated weak frame pointers, stored in a hashtable for fast lookup. r=tn
* * *
Bug 1340771 part 3 - Change existing heap allocated AutoWeakFrame instances to use WeakFrame instead.  r=tn

MozReview-Commit-ID: GSuUiy98jBa
2017-03-01 18:03:14 +01:00
Mats Palmgren
d13aaf9ce0 Bug 1340771 part 1 - Rename nsWeakFrame to AutoWeakFrame (automated change). r=tn
MozReview-Commit-ID: 8pl4nyeGEkr
2017-03-01 18:03:14 +01:00
Mats Palmgren
e8c6fd3388 Bug 1342801 - Store the 'writing-mode' used value on nsIFrame and make GetWritingMode non-virtual. r=jfkthame
MozReview-Commit-ID: HPhuxjDbOdh
2017-02-28 18:58:30 +01: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
10070b1da2 Bug 775624 Part 23 - Remove constructor and all operators related to uint32_t. r=dholbert
MozReview-Commit-ID: FEVYMhcpPS0

--HG--
extra : rebase_source : 504328a609feaf7816e22e0f0c87aa8be6813558
2017-02-14 18:01:11 +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