Bug 1350175 - Part 1: Set stylesheet line offset. r=xidorn draft
authorFernando Jimenez Moreno <ferjmoreno@gmail.com>
Tue, 25 Apr 2017 21:01:45 +0200
changeset 577802 005986f47fd243d7faddffa31689eff50a7161e5
parent 577554 e66dedabe582ba7b394aee4f89ed70fe389b3c46
child 577803 1decaf9bc3aa75d64254aea8fdb08679c2557ca2
push id58791
push userferjmoreno@gmail.com
push dateMon, 15 May 2017 12:03:05 +0000
reviewersxidorn
bugs1350175
milestone55.0a1
Bug 1350175 - Part 1: Set stylesheet line offset. r=xidorn MozReview-Commit-ID: 49B3bZaWjWc
layout/style/ServoBindingList.h
layout/style/ServoStyleSheet.cpp
layout/style/test/gtest/StyloParsingBench.cpp
--- 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