зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1410624: Integrate QuerySelectorAll in Gecko. r=heycam
MozReview-Commit-ID: 2Jf3Z6ikjXB
This commit is contained in:
Родитель
8df4224bb5
Коммит
707ec18980
|
@ -2945,16 +2945,23 @@ nsINode::QuerySelectorAll(const nsAString& aSelector, ErrorResult& aResult)
|
|||
{
|
||||
RefPtr<nsSimpleContentList> contentList = new nsSimpleContentList(this);
|
||||
|
||||
nsCSSSelectorList* selectorList = ParseSelectorList(aSelector, aResult);
|
||||
if (selectorList) {
|
||||
FindMatchingElements<false, AutoTArray<Element*, 128>>(this,
|
||||
selectorList,
|
||||
*contentList,
|
||||
aResult);
|
||||
} else {
|
||||
// Either we failed (and aResult already has the exception), or this
|
||||
// is a pseudo-element-only selector that matches nothing.
|
||||
}
|
||||
WithSelectorList<void>(
|
||||
aSelector,
|
||||
aResult,
|
||||
[&](const RawServoSelectorList* aList) {
|
||||
if (!aList) {
|
||||
return;
|
||||
}
|
||||
Servo_SelectorList_QueryAll(this, aList, contentList.get());
|
||||
},
|
||||
[&](nsCSSSelectorList* aList) {
|
||||
if (!aList) {
|
||||
return;
|
||||
}
|
||||
FindMatchingElements<false, AutoTArray<Element*, 128>>(
|
||||
this, aList, *contentList, aResult);
|
||||
}
|
||||
);
|
||||
|
||||
return contentList.forget();
|
||||
}
|
||||
|
|
|
@ -2866,6 +2866,7 @@ Gecko_ContentList_AppendAll(
|
|||
MOZ_ASSERT(aList);
|
||||
|
||||
aList->SetCapacity(aLength);
|
||||
|
||||
for (size_t i = 0; i < aLength; ++i) {
|
||||
aList->AppendElement(const_cast<Element*>(aElements[i]));
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче