Bug 1298588 part 7, gecko piece. Stop using initial_values in general in Gecko glue code. r=bholley

This commit is contained in:
Boris Zbarsky 2017-01-04 14:52:27 -05:00
parent bd53996269
commit eebd58fd31
4 changed files with 19 additions and 3 deletions

View File

@ -166,7 +166,7 @@ ServoRestyleManager::RecreateStyleContexts(Element* aElement,
bool recreateContext = primaryFrame && changeHint;
if (recreateContext) {
RefPtr<ServoComputedValues> computedValues
= Servo_ResolveStyle(aElement, ConsumeStyleBehavior::Consume).Consume();
= aStyleSet->ResolveServoStyle(aElement, ConsumeStyleBehavior::Consume);
// Hold the old style context alive, because it could become a dangling
// pointer during the replacement. In practice it's not a huge deal (on

View File

@ -179,7 +179,9 @@ SERVO_BINDING_FUNC(Servo_NoteExplicitHints, void, RawGeckoElementBorrowed elemen
nsRestyleHint restyle_hint, nsChangeHint change_hint)
SERVO_BINDING_FUNC(Servo_CheckChangeHint, nsChangeHint, RawGeckoElementBorrowed element)
SERVO_BINDING_FUNC(Servo_ResolveStyle, ServoComputedValuesStrong,
RawGeckoElementBorrowed element, mozilla::ConsumeStyleBehavior consume)
RawGeckoElementBorrowed element,
RawServoStyleSetBorrowed set,
mozilla::ConsumeStyleBehavior consume)
SERVO_BINDING_FUNC(Servo_ResolvePseudoStyle, ServoComputedValuesStrong,
RawGeckoElementBorrowed element, nsIAtom* pseudo_tag,
bool is_probe, RawServoStyleSetBorrowed set)

View File

@ -133,7 +133,7 @@ ServoStyleSet::GetContext(nsIContent* aContent,
computedValues =
Servo_ResolveStyleLazily(element, nullptr, aConsume, mRawSet.get()).Consume();
} else {
computedValues = Servo_ResolveStyle(element, aConsume).Consume();
computedValues = ResolveServoStyle(element, aConsume);
}
MOZ_ASSERT(computedValues);
@ -556,3 +556,10 @@ ServoStyleSet::RecomputeDefaultComputedStyles()
{
Servo_StyleSet_RecomputeDefaultStyles(mRawSet.get(), mPresContext);
}
already_AddRefed<ServoComputedValues>
ServoStyleSet::ResolveServoStyle(Element* aElement,
ConsumeStyleBehavior aConsume)
{
return Servo_ResolveStyle(aElement, mRawSet.get(), aConsume).Consume();
}

View File

@ -168,6 +168,13 @@ public:
*/
void RecomputeDefaultComputedStyles();
/**
* Resolve style for the given element, and return it as a
* ServoComputedValues, not an nsStyleContext.
*/
already_AddRefed<ServoComputedValues>
ResolveServoStyle(dom::Element* aElement, ConsumeStyleBehavior aConsume);
private:
already_AddRefed<nsStyleContext> GetContext(already_AddRefed<ServoComputedValues>,
nsStyleContext* aParentContext,