Commit Graph

2426 Commits

Author SHA1 Message Date
Mats Palmgren
f53a6843c6 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
Mats Palmgren
140865db55 bug 1368547 part 1 - Remove nsFrameManagerBase::mPlaceholderMap and store the placeholder on a frame property on the out-of-flow instead. r=jfkthame
MozReview-Commit-ID: 6AOxc2XgtO1
2017-05-31 21:29:49 +02:00
Jonathan Kew
e9e292e645 Bug 1368369 - pt 1 - Use nsTArray instead of AutoTArray in FrameProperties, and embed the FrameProperties object directly in nsIFrame. r=mats 2017-05-31 19:52:53 +01:00
Jonathan Kew
116a1e3d84 Bug 1368654 - pt 1 - Implement memory reporter support for FrameProperties. r=mats 2017-05-31 19:52:47 +01:00
Jonathan Kew
7b40682ff5 Bug 1368249 - Create nsIFrame::AddProperty API for use when the property is known to not already exist, and use to optimize some call sites. r=mats 2017-05-28 13:16:55 +01:00
Sebastian Hengst
99cc01f206 Backed out changeset 59c0589220ec (bug 1368249) unused function GetNormalPosition at nsIFrame.h:1073. r=backout 2017-05-28 15:38:15 +02:00
Jonathan Kew
3a49043e3f Bug 1368249 - Create nsIFrame::AddProperty API for use when the property is known to not already exist, and use to optimize some call sites. r=mats 2017-05-28 13:16:55 +01:00
Jonathan Kew
134e327708 Bug 1368251 - Check frame state bit before looking up InvalidationRect() property. r=mats 2017-05-28 11:22:39 +01:00
Jonathan Kew
4dcf0fe444 Bug 1365982 - Attach frame properties to each frame instead of looking them up in a hashtable on the prescontext. r=mats 2017-05-27 12:36:00 +01:00
Bas Schouten
e385b5af13 Bug 1367906: Cache the presence of rounded corners upon style changes. r=dbaron r=mattwoodrow
Profiling indicates a significant amount of time is spent during displaylist building accessing style information in order to detect border radii. This is a cost that for frames with no border radii only needs to be paid when the style changes.

Since nsIFrame still has 16 bits available for storing data without growing it in size, this patch recomputes whether there are border radii upon DidGetStyleContext and stores that information in one of these unused bits.

MozReview-Commit-ID: 4Jm29qUwXq3
2017-05-26 16:56:55 +00:00
Mats Palmgren
661649e16a Bug 1362886 part 2 - Devirtualize the IsLeaf() method by doing an array lookup instead. r=jfkthame
MozReview-Commit-ID: 1zm9rFhRVZ3
2017-05-26 12:11:12 +02:00
Mats Palmgren
1cf5bc6ecb Bug 1362886 part 1 - Annotate the FRAME_ID for each concrete frame class whether it's a leaf or not. Generate an array containing the IsLeaf state for each frame class. r=jfkthame
MozReview-Commit-ID: 8m52kG8EwCv
2017-05-26 12:11:12 +02:00
Mats Palmgren
6a8fbc8c30 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
fc6be39c2d 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
450c7ae245 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
bd90393cc1 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
2017-05-21 17:15:00 +08:00
Carsten "Tomcat" Book
1aa86b3e0e Backed out changeset bbb688fe1ba3 (bug 1365614) 2017-05-22 15:45:31 +02:00
Mats Palmgren
473a358067 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
8f5a0c677c Bug 1364871: Factor out some code from UpdateStyleOfChildAnonBox into UpdateStyleOfOwnedChildFrame. r=heycam
MozReview-Commit-ID: 24U6PmmqCeP
2017-05-19 23:56:02 +02:00
cku
0ca983ad6e 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
2017-05-17 15:13:12 +08:00
L. David Baron
144635028e Bug 1365443 - Unbreak wildcard rules in GECKO_DISPLAY_REFLOW_RULES_FILE. r=emilio
This restores the code to what it was doing prior to bug 1360241 (where
the else to add to mWildRules was an else of a test of fType), but then
removes the unnecesary null-check on the result of GetFrameTypeInfo.

MozReview-Commit-ID: EOPumJoKrIs
2017-05-17 11:59:56 -07:00
Jonathan Kew
004cb8cc71 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
10f1bb9942 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
eecfba38f3 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
Botond Ballo
50e80233ca Bug 1349750 - Group scroll thumb-related information in Layer into a ScrollThumbData structure. r=kats
The patch also renames Layer::SetScrollbarData() to Layer::SetScrollThumbData()
for clarity.

MozReview-Commit-ID: DVwJ3DMl3Zs
2017-05-10 14:02:15 -04:00
L. David Baron
948d52ee7f Bug 1363929 - Swap the order of tests in nsIFrame::In3DContextAndBackfaceIsHidden so that the faster-to-fail one is first. r=mattwoodrow
MozReview-Commit-ID: E8uj0vQMlti
2017-05-10 18:47:23 -07:00
Iris Hsiao
49df801e0d Merge mozilla-central to mozilla-inbound 2017-05-08 11:20:12 +08:00
Mats Palmgren
bb18887ff1 Bug 1359411 - Backout bug 1328030 since it caused a hang which is strictly worse than the original problem. r=smaug
MozReview-Commit-ID: C12Tajtc7Vy
2017-05-07 22:54:18 +02:00
Thinker K.F. Li
6cd51d348a Bug 1342009 - Provide a shortcut in BuildDisplayListForChild. r=mattwoodrow 2017-05-04 02:06:00 +08:00
Wes Kocher
3b5ca3d45f Merge m-c to autoland, a=merge
MozReview-Commit-ID: 8QMHmu81oVt
2017-05-05 14:18:13 -07:00
Henri Sivonen
43720a8e05 Bug 1269490 - Merge nsHtml5Atoms into nsGkAtoms. r=wchen
MozReview-Commit-ID: EcfnXkFuJy3
2017-04-20 11:47:02 +03:00
Mats Palmgren
6c12cd9bf8 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
643f3f8618 Bug 1361051: rename mozilla::FrameType to mozilla::LayoutFrameType. r=xidorn
This avoids conflicts with mozilla::dom::FrameType.

MozReview-Commit-ID: 7aEMbHRaTFk
2017-05-01 19:32:52 +02:00
Emilio Cobos Álvarez
3731858edf Bug 1360241: Devirtualize nsIFrame::GetType. r=heycam
MozReview-Commit-ID: 5Nzhyta5Hle
2017-04-30 17:30:08 +02:00
Carsten "Tomcat" Book
eb1595e913 Merge mozilla-central to autoland 2017-04-27 16:36:41 +02:00
Masatoshi Kimura
fd136e7327 Bug 1358758 - Use CSSIntRect for nsIFrame::GetScreenRect. r=kats
MozReview-Commit-ID: KXPL1ERbFDa
2017-04-25 07:33:13 +09:00
Emilio Cobos Álvarez
7e1330401f Bug 1355351: Simplify nsLayoutUtils callers, and make child iterators notice display: contents pseudos. r=heycam
This also happens to fix other bugs, like making display: contents pseudos
animatable, which weren't before.

MozReview-Commit-ID: LhwTPNbFvSZ
2017-04-19 12:53:57 +02:00
Jonathan Kew
b375af8b79 Bug 1359857 - For frames that have a BidiDataProperty, include this in the debugging info printed by ListGeneric. r=dholbert 2017-04-26 23:25:49 +01:00
Mats Palmgren
4aa1161b6d Bug 1348857 part 3 - [css-grid] Only apply Automatic Minimum Size when the ApplyAutoMinSize bit is set, otherwise the minimum size is zero unless specified. r=dholbert
MozReview-Commit-ID: 40Rgcj0YZMm
2017-04-18 22:35:04 +02:00
Mats Palmgren
4e92dfdcaf Bug 1353573 - Don't try to preserve frame state bits across the ReflowInput ctor. r=dbaron
MozReview-Commit-ID: CjaUQjlv3ll
2017-04-10 19:25:58 +02:00
L. David Baron
def036d24e Bug 1353187 - Guard access to the frame property table with a frame state bit. r=dholbert
This protects all accesses to the frame property table with a bit stored
on the frame.  This means we avoid hashtable operations when asking
about frame properties on frames that have no properties.

The changes to RestyleManager, and the new HasSkippingBitCheck API, are
needed because RestyleManager depended on being able to ask for
properties on a deleted frame (knowing that the property in question
could not have been set on any new frames since the deleted frame was
destroyed), in order to use the destruction of the properties that
happens at frame destruction as a mechanism for learning that the frame
was destroyed.  The changes there preserve the use of that mechanism,
although it becomes a bit uglier.  The ugliness is well-deserved.

MozReview-Commit-ID: BScmDUlWq65
2017-04-04 20:59:21 -07:00
L. David Baron
e764ff99c9 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
2017-04-04 20:59:21 -07:00
Eric Rahm
61aef92654 Bug 1353143 - Part 5: Replace direct usage of PR_LogPrint. r=froydnj
This replaces the usage of |PR_LogPrint| with either |printf_stderr| or
|MOZ_LOG| where appropriate. |printf_stderr| is used where a logger is not
actually available or if log levels are not being used as expected.
2017-04-04 14:36:21 -07:00
Carsten "Tomcat" Book
26963de473 Backed out changeset a86c4218ca5f (bug 1353187) 2017-04-04 09:54:51 +02:00
L. David Baron
01cade6800 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
2017-04-03 20:43:30 -07:00
Timothy Nikkel
486d75afef Bug 1350463. Consider visibility: hidden frames to be not visible in nsIFrame::UpdateVisibilitySynchronously to match PresShell::MarkFramesInSubtreeApproximatelyVisible. r=mats 2017-04-03 00:52:17 -05:00
L. David Baron
40cfbfae40 Bug 1352056 - Call nsIFrame::StyleDisplay less from nsFrame::FinishAndStoreOverflow. r=dholbert
MozReview-Commit-ID: 5zuNLfyPv8o
2017-03-30 22:56:14 -04:00
Thinker K.F. Li
3c245eff20 Bug 1343057 - Part 2: Disable AA for layers with animation in effect. r=mattwoodrow 2017-03-29 09:38:00 -04:00
Boris Zbarsky
2ab5f6b014 Bug 1351139. Use only one kind of anonymous box for the block wrappers we create for a block-inside-inline split. r=dbaron
Note that this removes the useless (because this anon box is never absolutely
positioned) "clip: inherit" style.

MozReview-Commit-ID: iJJdv5VL06
2017-03-28 21:26:31 -04:00
Mantaroh Yoshinaga
73084d72d1 Bug 1337994 part 1 - Use pre-transformed overflow area frame's rectangle when checking that target frame is out of view. r=mattwoodrow
We used post-transformed overflow area frame when checking that target frame is out of view.
In this process, we will transform again. So we should use original frame's rectangle(i.e.
we should use pre-transformed over flow area's rectangle).

MozReview-Commit-ID: 9mapuFNjSQc
2017-03-28 01:50:12 +09:00