Bug 1382925 - Part 2: Add FFI function to get stylesheet origin. r=emilio
MozReview-Commit-ID: F3VY6qagrpS
--- a/layout/style/ServoBindingList.h
+++ b/layout/style/ServoBindingList.h
@@ -39,16 +39,19 @@ SERVO_BINDING_FUNC(Servo_StyleSheet_HasR
SERVO_BINDING_FUNC(Servo_StyleSheet_GetRules, ServoCssRulesStrong,
RawServoStyleSheetContentsBorrowed sheet)
SERVO_BINDING_FUNC(Servo_StyleSheet_Clone, RawServoStyleSheetContentsStrong,
RawServoStyleSheetContentsBorrowed sheet,
const mozilla::ServoStyleSheet* reference_sheet);
SERVO_BINDING_FUNC(Servo_StyleSheet_SizeOfIncludingThis, size_t,
mozilla::MallocSizeOf malloc_size_of,
RawServoStyleSheetContentsBorrowed sheet)
+SERVO_BINDING_FUNC(Servo_StyleSheet_GetOrigin,
+ mozilla::OriginFlags,
+ RawServoStyleSheetContentsBorrowed sheet)
SERVO_BINDING_FUNC(Servo_StyleSet_Init, RawServoStyleSetOwned, RawGeckoPresContextOwned pres_context)
SERVO_BINDING_FUNC(Servo_StyleSet_Clear, void,
RawServoStyleSetBorrowed set)
SERVO_BINDING_FUNC(Servo_StyleSet_RebuildCachedData, void,
RawServoStyleSetBorrowed set)
SERVO_BINDING_FUNC(Servo_StyleSet_MediumFeaturesChanged, bool,
RawServoStyleSetBorrowed set, bool* viewport_units_used)
SERVO_BINDING_FUNC(Servo_StyleSet_Drop, void, RawServoStyleSetOwned set)
--- a/layout/style/ServoStyleSheet.cpp
+++ b/layout/style/ServoStyleSheet.cpp
@@ -458,9 +458,15 @@ ServoStyleSheet::SizeOfIncludingThis(Mal
// is worthwhile:
// - s->mRuleList
s = s->mNext ? s->mNext->AsServo() : nullptr;
}
return n;
}
+OriginFlags
+ServoStyleSheet::GetOrigin()
+{
+ return Servo_StyleSheet_GetOrigin(Inner()->mContents);
+}
+
} // namespace mozilla
--- a/layout/style/ServoStyleSheet.h
+++ b/layout/style/ServoStyleSheet.h
@@ -116,16 +116,19 @@ public:
// nsICSSLoaderObserver interface
NS_IMETHOD StyleSheetLoaded(StyleSheet* aSheet, bool aWasAlternate,
nsresult aStatus) final;
// Internal GetCssRules method which do not have security check and
// completelness check.
ServoCSSRuleList* GetCssRulesInternal();
+ // Returns the stylesheet's Servo origin as an OriginFlags value.
+ OriginFlags GetOrigin();
+
protected:
virtual ~ServoStyleSheet();
void LastRelease();
ServoStyleSheetInner* Inner() const
{
return static_cast<ServoStyleSheetInner*>(mInner);