Before this refactoring, getComputedStyle could have side effects, and left the
style data in the element, so we could never arrive there without data.
There are a few crashtests that caught this, but this was already broken if you
called animate() on an element deep in a display: none subtree.
MozReview-Commit-ID: 1AvOvhAyOP3
Add restyle markers to `PrepareAndTraverseSubtree` to cover both initial styling
and part of the work of restyling. Also add restyle markers around the post
traversal work in `DoProcessPendingRestyles`.
A new marker is also added around the change hint processing after the post
traversal.
MozReview-Commit-ID: 43PSyCJLikR
We need to call nsBindingManager's method from ServoStyleSet in a later
patch.
Also, we call nsStyleSet::SetBindingManager() immediately after we call
nsStyleSet::Init(). Therefore, we could pass binding manager to Init()
directly, and delete SetBindingManager().
MozReview-Commit-ID: 43WTpW3mSKX
We don't need the call to ClearServoDataFromSubtree in
nsDocumentViewer::SetPageMode because the pres shell destruction
will call BeginShutdown on the style set, which will do it for us.
MozReview-Commit-ID: ErSAyr3l0wm
This commit adds class ServoStyleRuleMap which caches the mapping from
raw Servo style rule to Gecko's wrapper object.
It is a per-document object, and is added as an observer of document
when constructed, so that it updates data inside when possible.
For safety consideration, this change also makes ServoStyleRule support
weak pointer, and use weak pointer inside ServoStyleRuleMap.
MozReview-Commit-ID: YxBnZ88tjf
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