Commit Graph

387 Commits

Author SHA1 Message Date
L. David Baron
03d37750a7 Bug 1369260 - Remove use of MOZ_ASSERT_IF in layout. r=heycam
As I've said before, as module owner I prefer that MOZ_ASSERT_IF not be
used in the module because I consider it to be unreadable.  However, a
few uses have crept in, and this patch removes them.

I consider it to be unreadable because the name looks like a name that
uses smalltalk-ish naming conventions, i.e., with a part of the name
corresponding to each parameter, in order.  However, the parameters are
in the order opposite the name.

This was written primarily with the vim commands:
:%s/MOZ_ASSERT_IF(\([^,]*\),/MOZ_ASSERT(!\1 ||/
:wn
followed by manual cleanup for indentation and removal of !!.

MozReview-Commit-ID: G6rLbOn7k8d
2017-06-06 22:27:17 -07:00
Emilio Cobos Álvarez
d352758f8f Bug 1357461: Cache effective media query results. r=heycam
And implement a function that returns whether they changed, to be shared with
Servo.

MozReview-Commit-ID: 8gnAdJaEfZC
2017-06-03 18:59:07 +02:00
Hiroyuki Ikezoe
11db326869 Bug 1367293 - Don't get parent style for GetComputedKeyframeValuesFor. r=birtles
MozReview-Commit-ID: 7WjsO7P2QGz
2017-06-02 09:38:54 +09:00
Hiroyuki Ikezoe
4c498515cd Bug 1367293 - Don't get parent style for ComputeAnimationValue. r=birtles
MozReview-Commit-ID: 4TskjmoKchD
2017-06-02 09:38:46 +09:00
Hiroyuki Ikezoe
1eced9b23b Bug 1367293 - Get parent style from the target element. r=birtles
We can get the parent style from element tree in servo side.
The parent style has been already restyled.
E.g.;
 When we get target element style with nsComputedDOMStyle::GetStyleContext,
 the function flushes styles so that the parent style has also
 restyled.

 When we call Servo_GetComputedKeyframeValues, it's called from a
 SequentialTask, that means all elements have been already restyled.

Unfortunately we can't assert that the parent style is not stale
to check the parent element has no dirty descendant bit since
Servo_GetComputedKeyframeValues is called in a SequantialTask
that is processed before post traversal, that means elements
still have the dirty bit to update nsStyleContext in the
post traversal.

MozReview-Commit-ID: AC2ZRyzk3eu
2017-06-02 09:38:22 +09:00
Emilio Cobos Álvarez
65423fd88b Bug 1368589: handle the case where a RebuildAllStyleData event is posted and stylesheets are added at the same time. r=heycam
MozReview-Commit-ID: IWiTCCo55cg
2017-05-30 02:46:33 +02:00
Emilio Cobos Álvarez
0ebab4c299 Bug 1357583: Tidy the PostRestyleEventForCSSRuleChanges API. r=heycam
MozReview-Commit-ID: BtOWWC5knsi
2017-05-29 23:01:50 +02:00
Emilio Cobos Álvarez
e7785ec381 Bug 1357583: style: Hook up the invalidator in the StyleSheetSet. r=heycam
MozReview-Commit-ID: IhgKAovTJMX
2017-05-29 23:01:43 +02:00
Emilio Cobos Álvarez
fb442d9711 Bug 1357583: Ensure we send the document element to Servo when flushing stylesheets. r=heycam
We'll use it to invalidate stuff.

MozReview-Commit-ID: Il3wO5JQh1Y
2017-05-29 23:01:37 +02:00
Cameron McCormack
5e1a69a21d Bug 1366921 - stylo: Update user fonts in cached font metrics' gfxFontGroups in the pre-traversal step. r=bholley,jfkthame
MozReview-Commit-ID: DAhhWyAjxku
2017-05-26 22:29:10 +08:00
J. Ryan Stinnett
feb0ddcc55 Bug 1328509 - Wire up visited values in ServoStyleSet::GetContext. r=emilio
Create an extra style context using the visited values (if they exist).  This
mirrors the logic Gecko performs in nsStyleSet::GetContext for visited support.

MozReview-Commit-ID: EiJQXDgz8tX
2017-05-25 10:13:23 -05:00
Emilio Cobos Álvarez
3dd88e000f Bug 1367553: Move dirty style tracking to the StyleSet. r=heycam
MozReview-Commit-ID: 2ut8SAwNGN2
2017-05-24 02:53:08 +02:00
Phil Ringnalda
3864eaed9a Backed out 2 changesets (bug 1367553) for build bustage
CLOSED TREE

Backed out changeset 3e6c9a752596 (bug 1367553)
Backed out changeset 1ee24478fa16 (bug 1367553)

MozReview-Commit-ID: B805jBJYcqL
2017-05-25 06:13:01 -07:00
Emilio Cobos Álvarez
4e79a99600 Bug 1367553: Move dirty style tracking to the StyleSet. r=heycam
MozReview-Commit-ID: 2ut8SAwNGN2
2017-05-24 02:53:08 +02:00
Cameron McCormack
7128db143e Bug 1366157 - stylo: Implement getDefaultComputedStyle. r=emilio
MozReview-Commit-ID: GKr06ylK4tA
2017-05-24 14:37:47 +08:00
Brad Werth
fdeacb1873 Bug 1339629 Part 10: Implement ServoStyleSet::EnsureUniqueInnerOnCSSSheets. r=heycam
MozReview-Commit-ID: GuUqKYrV60z
2017-05-15 17:11:08 -07:00
Brad Werth
84b701f39e Bug 1339629 Part 9: Uplift EnsureUniqueInnerOnCSSSheets and SetNeedsRestyleAfterEnsureUniqueInner into StyleSetHandle, and eliminate CSSStyleSheet::EnsureUniqueInner. r=heycam
MozReview-Commit-ID: LH7vTKUmuv8
2017-05-15 16:30:10 -07:00
Brad Werth
472ff76be3 Bug 1339629 Part 7: Ensure ServoStyleSets keep sheets informed of the stylesets they are part of. r=heycam
MozReview-Commit-ID: EH9GO749LlN
2017-05-23 17:02:51 -07:00
Phil Ringnalda
dc5d30b907 Backed out 6 changesets (bug 1328509) for Windows 7 failures in test_visited_reftests.html
Backed out changeset 8388d8c76fed (bug 1328509)
Backed out changeset 182a88607e08 (bug 1328509)
Backed out changeset 008efac7764b (bug 1328509)
Backed out changeset c2ce10b8bc37 (bug 1328509)
Backed out changeset 65bbc73c87aa (bug 1328509)
Backed out changeset e20d3d5170c2 (bug 1328509)

MozReview-Commit-ID: BSmqdFP1Zom
2017-05-24 22:12:53 -07:00
J. Ryan Stinnett
25219c9280 Bug 1328509 - Wire up visited values in ServoStyleSet::GetContext. r=emilio
Create an extra style context using the visited values (if they exist).  This
mirrors the logic Gecko performs in nsStyleSet::GetContext for visited support.

MozReview-Commit-ID: EiJQXDgz8tX
2017-05-24 21:20:06 -05:00
Jonathan Kew
9cee45cb0c Bug 734008 - DeCOMtaminate nsILanguageAtomService, make it a non-refcounted singleton and clean up various call sites. r=m_kato 2015-04-03 21:39:23 +02:00
Hiroyuki Ikezoe
f68519c81c Bug 1364799 - Add a new TraversalRestyleBehavior that represents the traversal is triggered by CSS rule changes. r=birtles
And propagate the new flag to servo if mRestyleForCSSRuleChanges is set.

MozReview-Commit-ID: HRZ5duYgciF
2017-05-21 08:16:26 +09:00
Bobby Holley
7d3ad73578 Bug 1329876 - Stop accepting aTreeMatchContext in the ServoStyleSet methods. r=bz
This makes it clear it's unused.
2017-05-20 21:59:59 +02:00
Manish Goregaokar
ecd90e3c8a Bug 1362599 - Remember which languages were used and force-cache when reset; r=heycam 2017-05-20 21:48:04 +02:00
Boris Chiou
18ca899edb Bug 1334036 - Part 11: Trigger animation-only restyle when we handle an event with coordinates. r=birtles,heycam
We need to request an animation-only restyle to force flush all throttled
animations on main thread when we handle an event with coordinates
(e.g. mouse event).

MozReview-Commit-ID: KkjeQVsLgTl
2017-05-19 16:16:41 +08:00
Emilio Cobos Álvarez
93c3013be8 Bug 1364862: Make PostRebuildAllStyleData async. r=heycam
MozReview-Commit-ID: EM3eUP1dWwA
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
2017-05-15 18:02:59 +02:00
Xidorn Quan
2f56b27839 Bug 1328319 part 7 - Enable querying counter-style rule on Servo backend. r=heycam
MozReview-Commit-ID: Aj3AcW1KmRe
2017-05-11 14:47:24 +10:00
Emilio Cobos Álvarez
b1cba72009 Bug 1364412: Convert pseudo-elements to an enum. r=hiro,xidorn
This allows us to access metadata using `match` instead of comparison with
atoms, which makes it doable to get the pseudo-element flags in the future.

Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>

MozReview-Commit-ID: KgGjFePmhyS
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
2017-05-14 18:39:22 +02:00
Emilio Cobos Álvarez
49c2f75c1a Bug 1364412: Don't ignore the pseudo-element argument in ResolvePseudoElementStyle. r=heycam
MozReview-Commit-ID: 4KA4bj2Ww5W
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
2017-05-13 19:29:14 +02:00
Emilio Cobos Álvarez
ca76897873 Bug 1364412: Simplify Servo_HasAuthorSpecifiedRules looking at the pseudo style. r=bholley
MozReview-Commit-ID: HpV92ttZGJz
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
2017-05-12 17:51:32 +02:00
Hiroyuki Ikezoe
9dd0727d3d Bug 1354947 - Rename FillKeyframesForName to GetKeyframesForName. r=birtles
MozReview-Commit-ID: AOLygEtuhpO
2017-05-13 16:34:38 +09:00
Brad Werth
d86ae7b72e Bug 1363572 Part 3: Change ServoStyleSet to use sheet addresses as unique IDs. r=heycam
MozReview-Commit-ID: BZSKZx0wjL8
2017-05-12 12:04:55 -07:00
Brad Werth
9a6acfc3f1 Bug 1363572 Part 2: Change ServoStyleSet to use uint64_t for entry unique IDs. r=heycam
MozReview-Commit-ID: 50whQ71j4B5
2017-05-10 11:20:57 -07:00
Ryan VanderMeulen
adc0a8eaec Backed out changesets 72fe8375faa0 and 5f55c10a0a72 (bug 1352306) for ElementInlines.h assertions.
CLOSED TREE
2017-05-12 12:58:05 -04:00
Cameron McCormack
3278a8497b Bug 1352306 - Part 2: stylo: Only snapshot EventStates if there is some rule that depends on it. r=emilio
MozReview-Commit-ID: J5xhdi7pGSv
2017-05-09 18:13:45 +08:00
Cameron McCormack
dada34d927 Bug 1352306 - Part 1: stylo: Only snapshot attributes if there is some rule that depends on that attribute. r=emilio
MozReview-Commit-ID: Emey96ovc2a
2017-05-08 16:04:31 +08:00
Boris Zbarsky
f2703f662f Bug 1361843 part 4. Remove the now-unused mBatching member of ServoStyleSet. r=emilio
MozReview-Commit-ID: DvyZkQh6q8A
2017-05-10 13:13:50 -04:00
Boris Zbarsky
22e387d682 Bug 1361843 part 3. Clear the stylist when styleshets change, but don't do anything else until there's an explicit sheet flush. r=emilio
MozReview-Commit-ID: IhK1ECeuYbM
2017-05-10 13:13:45 -04:00
Boris Zbarsky
abab8246f8 Bug 1361843 part 2. Track whether the stylist may need a rebuild in ServoStyleSet and do on-demand rebuilds as needed. r=emilio
This does not remove the eager rebuilds we're doing yet.

I'm not completely happy with the ad-hoc manner in which we end up doing
rebuilds.  I considered doing something where we'd make stylist a non-public
member of PerDocumentStyleDataImpl and have a getter that updates the stylist on
get, with maybe a separate non-flushing getter for special situations, if those
arise.  But that requires that we make various cases where we currently have a
non-mut PerDocumentStyleDataImpl use a mut one.  Maybe that would be the right
tradeoff...

I'm also not sure whether the naming is right here.  Maybe we should just talk
about needing a stylesheet flush, not a stylist rebuild, in ServoStyleSet?

MozReview-Commit-ID: 9C7BG5ygm79
2017-05-10 13:13:39 -04:00
Emilio Cobos Álvarez
c4f847ffaa Bug 1355343: Take all the snapshots into account. r=bholley
I've chosen this approach mainly because there's no other good way to guarantee
the model is correct than holding the snapshots alive until a style refresh.

What I tried before this (storing them in a sort of "immutable element data") is
a pain, since we call into style from the frame constructor and other content
notifications, which makes keeping track of which snapshots should be cleared an
which shouldn't an insane task.

Ideally we'd have a single entry-point for style, but that's not the case right
now, and changing that requires pretty non-trivial changes to the frame
constructor.

MozReview-Commit-ID: FF1KWZv2iBM
2017-05-07 16:36:47 +02:00
Matt Brubeck
4eebd81661 Bug 1349651 - stylo: Implement HasAuthorSpecifiedRules. r=bholley
MozReview-Commit-ID: 8ta5KqKzncZ
2017-05-10 13:11:36 -07:00
Cameron McCormack
2c95e462e3 Bug 1356103 - Part 4: Add a mechanism for C++ functions to perform post-Servo traversal tasks. r=bholley
MozReview-Commit-ID: 5Gx1qZzQxAK
2017-04-30 14:45:32 +08:00
Cameron McCormack
ff89dc775e Bug 1356103 - Part 3: Make it easy to access the ServoStyleSet currently in traversal. r=bholley
In a later patch, we'll want to queue up some tasks to run when the
Servo traversal is one, and the ServoStyleSet seems like the natural
place to store those tasks.  We could probably find the ServoStyleSet
by chasing a bunch of pointers from the task-adding call sites, but
it seems simpler just to make it available directly.

MozReview-Commit-ID: AJoFZEoNaGm
2017-04-30 14:41:11 +08:00
Iris Hsiao
b5dd6e2208 Backed out 12 changesets (bug 1356103) for build bustage at PostTraversalTask.h
Backed out changeset 9fb487252c28 (bug 1356103)
Backed out changeset 301237c65945 (bug 1356103)
Backed out changeset 7bc3a4861a39 (bug 1356103)
Backed out changeset 2f383d89184b (bug 1356103)
Backed out changeset a03112e1c9d5 (bug 1356103)
Backed out changeset c60b4c9cbd83 (bug 1356103)
Backed out changeset 34280baeaabe (bug 1356103)
Backed out changeset 31a0881cfb47 (bug 1356103)
Backed out changeset 529d037f9c33 (bug 1356103)
Backed out changeset 1c7831db6b07 (bug 1356103)
Backed out changeset 559f06e32df3 (bug 1356103)
Backed out changeset 784865d234cd (bug 1356103)
2017-05-04 17:56:25 +08:00
Cameron McCormack
91f9f517c8 Bug 1356103 - Part 4: Add a mechanism for C++ functions to perform post-Servo traversal tasks. r=bholley
MozReview-Commit-ID: 5Gx1qZzQxAK
2017-04-30 14:45:32 +08:00
Cameron McCormack
5ab9a5f7ab Bug 1356103 - Part 3: Make it easy to access the ServoStyleSet currently in traversal. r=bholley
In a later patch, we'll want to queue up some tasks to run when the
Servo traversal is one, and the ServoStyleSet seems like the natural
place to store those tasks.  We could probably find the ServoStyleSet
by chasing a bunch of pointers from the task-adding call sites, but
it seems simpler just to make it available directly.

MozReview-Commit-ID: AJoFZEoNaGm
2017-04-30 14:41:11 +08:00
Boris Chiou
f3f76c3cc6 Bug 1346052 - Part 3: Implement AnimationValue::FromString. r=birtles
AnimationValue::FromString compute the AnimationValue from a string.

MozReview-Commit-ID: CX8wairpnfN
2017-05-03 11:15:27 +08:00
Brad Werth
f568bc451b Bug 1348481 Part 3: Fix a dangerous typo in StyleSetHandleInlines (replaced one variable with another) and add assert to catch the problem it created. r=heycam
MozReview-Commit-ID: L2tfMt7TM60
2017-04-18 11:29:13 -07:00
Brad Werth
6c3c7a46ad Bug 1348481 Part 2: Gecko-side track unique IDs for each stylesheet and send them to Servo. r=heycam
MozReview-Commit-ID: 7ZaQYhjdYmG
2017-05-01 16:46:41 -07:00
Cameron McCormack
27bda60595 Bug 1344914 - stylo: Stop pretending to handle style fixups on the C++ side. r=bz
MozReview-Commit-ID: FBM2NOlXIe5
2017-04-25 12:52:51 +08:00