Bug 1350175 - Part 1: Set stylesheet line offset. r=xidorn
MozReview-Commit-ID: 49B3bZaWjWc
--- a/layout/style/ServoBindingList.h
+++ b/layout/style/ServoBindingList.h
@@ -25,27 +25,29 @@ SERVO_BINDING_FUNC(Servo_Element_ClearDa
SERVO_BINDING_FUNC(Servo_StyleSheet_Empty, RawServoStyleSheetStrong,
mozilla::css::SheetParsingMode parsing_mode)
SERVO_BINDING_FUNC(Servo_StyleSheet_FromUTF8Bytes, RawServoStyleSheetStrong,
mozilla::css::Loader* loader,
mozilla::ServoStyleSheet* gecko_stylesheet,
const nsACString* data,
mozilla::css::SheetParsingMode parsing_mode,
const RawServoMediaList* media_list,
- RawGeckoURLExtraData* extra_data)
+ RawGeckoURLExtraData* extra_data,
+ uint32_t line_number_offset)
SERVO_BINDING_FUNC(Servo_ImportRule_GetSheet,
RawServoStyleSheetStrong,
const RawServoImportRuleBorrowed import_rule)
SERVO_BINDING_FUNC(Servo_StyleSheet_ClearAndUpdate,
void,
RawServoStyleSheetBorrowed stylesheet,
mozilla::css::Loader* loader,
mozilla::ServoStyleSheet* gecko_stylesheet,
const nsACString* data,
- RawGeckoURLExtraData* extra_data)
+ RawGeckoURLExtraData* extra_data,
+ uint32_t line_number_offset)
SERVO_BINDING_FUNC(Servo_StyleSheet_HasRules, bool,
RawServoStyleSheetBorrowed sheet)
SERVO_BINDING_FUNC(Servo_StyleSheet_GetRules, ServoCssRulesStrong,
RawServoStyleSheetBorrowed sheet)
SERVO_BINDING_FUNC(Servo_StyleSet_Init, RawServoStyleSetOwned, RawGeckoPresContextOwned pres_context)
SERVO_BINDING_FUNC(Servo_StyleSet_RebuildData, void,
RawServoStyleSetBorrowed set)
SERVO_BINDING_FUNC(Servo_StyleSet_Drop, void, RawServoStyleSetOwned set)
--- a/layout/style/ServoStyleSheet.cpp
+++ b/layout/style/ServoStyleSheet.cpp
@@ -105,23 +105,24 @@ ServoStyleSheet::ParseSheet(css::Loader*
NS_ConvertUTF16toUTF8 input(aInput);
if (!Inner()->mSheet) {
auto* mediaList = static_cast<ServoMediaList*>(mMedia.get());
RawServoMediaList* media = mediaList ? &mediaList->RawList() : nullptr;
Inner()->mSheet =
Servo_StyleSheet_FromUTF8Bytes(
- aLoader, this, &input, mParsingMode, media, extraData).Consume();
+ aLoader, this, &input, mParsingMode, media, extraData, aLineNumber
+ ).Consume();
} else {
// TODO(emilio): Once we have proper inner cloning (which we don't right
// now) we should update the mediaList here too, though it's slightly
// tricky.
Servo_StyleSheet_ClearAndUpdate(Inner()->mSheet, aLoader,
- this, &input, extraData);
+ this, &input, extraData, aLineNumber);
}
Inner()->mURLData = extraData.forget();
return NS_OK;
}
void
ServoStyleSheet::LoadFailed()
--- a/layout/style/test/gtest/StyloParsingBench.cpp
+++ b/layout/style/test/gtest/StyloParsingBench.cpp
@@ -23,17 +23,17 @@ static void ServoParsingBench() {
NS_NAMED_LITERAL_CSTRING(css_, EXAMPLE_STYLESHEET);
const nsACString& css = css_;
ASSERT_TRUE(IsUTF8(css));
RefPtr<URLExtraData> data = new URLExtraData(
NullPrincipalURI::Create(), nullptr, NullPrincipal::Create());
for (int i = 0; i < PARSING_REPETITIONS; i++) {
RefPtr<RawServoStyleSheet> stylesheet = Servo_StyleSheet_FromUTF8Bytes(
- nullptr, nullptr, &css, eAuthorSheetFeatures, nullptr, data
+ nullptr, nullptr, &css, eAuthorSheetFeatures, nullptr, data, 0
).Consume();
}
}
MOZ_GTEST_BENCH(Stylo, Servo_StyleSheet_FromUTF8Bytes_Bench, ServoParsingBench);
#endif