diff options
Diffstat (limited to 'layout/style/CSSStyleRule.cpp')
-rw-r--r-- | layout/style/CSSStyleRule.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/layout/style/CSSStyleRule.cpp b/layout/style/CSSStyleRule.cpp index 5cdb47fddb..5a3dbfad01 100644 --- a/layout/style/CSSStyleRule.cpp +++ b/layout/style/CSSStyleRule.cpp @@ -101,8 +101,6 @@ nsresult CSSStyleRuleDeclaration::SetCSSDeclaration( return NS_OK; } -Document* CSSStyleRuleDeclaration::DocToUpdate() { return nullptr; } - nsDOMCSSDeclaration::ParsingEnvironment CSSStyleRuleDeclaration::GetParsingEnvironment( nsIPrincipal* aSubjectPrincipal) const { @@ -314,6 +312,18 @@ void CSSStyleRule::GetSelectorWarnings( } } +already_AddRefed<nsINodeList> CSSStyleRule::QuerySelectorAll(nsINode& aRoot) { + AutoTArray<const StyleLockedStyleRule*, 8> rules; + CollectStyleRules(*this, /* aDesugared = */ true, rules); + StyleSelectorList* list = Servo_StyleRule_GetSelectorList(&rules); + + RefPtr<nsSimpleContentList> contentList = new nsSimpleContentList(&aRoot); + Servo_SelectorList_QueryAll(&aRoot, list, contentList.get(), + /* useInvalidation */ false); + Servo_SelectorList_Drop(list); + return contentList.forget(); +} + /* virtual */ JSObject* CSSStyleRule::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) { |