It was getting inial value from gecko side before and that was always
eCompatibility_NavQuirks. Created an FFI to fetch quirks mode.
MozReview-Commit-ID: 1lXsM9hwldZ
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
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
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
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
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
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>
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
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