Bug 1367615 - Part 3: Implement ServoStyleRule::GetSelectorCount and GetSelectorText. r?emilio draft
authorFernando Jimenez Moreno <ferjmoreno@gmail.com>
Wed, 07 Jun 2017 17:48:49 +0200
changeset 590311 8b7adc67423979f060a4db95948dd6b3f08ba492
parent 590310 ae6cad772e46abefdf20fb49fa149f686389b44a
child 632183 bf9c5fcc115789473703b1469b9c48b110d9e98a
push id62695
push userferjmoreno@gmail.com
push dateWed, 07 Jun 2017 15:49:55 +0000
reviewersemilio
bugs1367615
milestone55.0a1
Bug 1367615 - Part 3: Implement ServoStyleRule::GetSelectorCount and GetSelectorText. r?emilio MozReview-Commit-ID: 9MIY9ing11V
layout/style/ServoBindingList.h
layout/style/ServoStyleRule.cpp
--- a/layout/style/ServoBindingList.h
+++ b/layout/style/ServoBindingList.h
@@ -142,16 +142,21 @@ SERVO_BINDING_FUNC(Servo_CssRules_GetCou
                    ServoCssRulesBorrowed rules, uint32_t index)
 SERVO_BINDING_FUNC(Servo_StyleRule_GetStyle, RawServoDeclarationBlockStrong,
                    RawServoStyleRuleBorrowed rule)
 SERVO_BINDING_FUNC(Servo_StyleRule_SetStyle, void,
                    RawServoStyleRuleBorrowed rule,
                    RawServoDeclarationBlockBorrowed declarations)
 SERVO_BINDING_FUNC(Servo_StyleRule_GetSelectorText, void,
                    RawServoStyleRuleBorrowed rule, nsAString* result)
+SERVO_BINDING_FUNC(Servo_StyleRule_GetSelectorTextFromIndex, void,
+                   RawServoStyleRuleBorrowed rule, uint32_t index,
+                   nsAString* result)
+SERVO_BINDING_FUNC(Servo_StyleRule_GetSelectorCount, void,
+                   RawServoStyleRuleBorrowed rule, uint32_t* count)
 SERVO_BINDING_FUNC(Servo_ImportRule_GetHref, void,
                    RawServoImportRuleBorrowed rule, nsAString* result)
 SERVO_BINDING_FUNC(Servo_ImportRule_GetSheet, const RawServoStyleSheet*,
                    RawServoImportRuleBorrowed rule)
 SERVO_BINDING_FUNC(Servo_Keyframe_GetKeyText, void,
                    RawServoKeyframeBorrowed keyframe, nsAString* result)
 // Returns whether it successfully changes the key text.
 SERVO_BINDING_FUNC(Servo_Keyframe_SetKeyText, bool,
--- a/layout/style/ServoStyleRule.cpp
+++ b/layout/style/ServoStyleRule.cpp
@@ -248,33 +248,39 @@ ServoStyleRule::GetStyle(nsIDOMCSSStyleD
 {
   *aStyle = do_AddRef(&mDecls).take();
   return NS_OK;
 }
 
 uint32_t
 ServoStyleRule::GetSelectorCount()
 {
-  return 0;
+  uint32_t aCount;
+  Servo_StyleRule_GetSelectorCount(mRawRule, &aCount);
+
+  return aCount;
 }
 
 nsresult
 ServoStyleRule::GetSelectorText(uint32_t aSelectorIndex, nsAString& aText)
 {
+  Servo_StyleRule_GetSelectorTextFromIndex(mRawRule, aSelectorIndex, &aText);
   return NS_OK;
 }
 
 nsresult
 ServoStyleRule::GetSpecificity(uint32_t aSelectorIndex, uint64_t* aSpecificity)
 {
+  // TODO Bug 1370501
   return NS_OK;
 }
 
 nsresult
 ServoStyleRule::SelectorMatchesElement(Element* aElement,
                                        uint32_t aSelectorIndex,
                                        const nsAString& aPseudo,
                                        bool* aMatches)
 {
+  // TODO Bug 1370502
   return NS_OK;
 }
 
 } // namespace mozilla