浏览代码

LibWeb: Pass scope in Element::matches

Simon Wanner 2 年之前
父节点
当前提交
d55373067d
共有 1 个文件被更改,包括 5 次插入1 次删除
  1. 5 1
      Userland/Libraries/LibWeb/DOM/Element.cpp

+ 5 - 1
Userland/Libraries/LibWeb/DOM/Element.cpp

@@ -532,13 +532,17 @@ JS::GCPtr<ShadowRoot> Element::shadow_root() const
 // https://dom.spec.whatwg.org/#dom-element-matches
 WebIDL::ExceptionOr<bool> Element::matches(StringView selectors) const
 {
+    // 1. Let s be the result of parse a selector from selectors.
     auto maybe_selectors = parse_selector(CSS::Parser::ParsingContext(static_cast<ParentNode&>(const_cast<Element&>(*this))), selectors);
+
+    // 2. If s is failure, then throw a "SyntaxError" DOMException.
     if (!maybe_selectors.has_value())
         return WebIDL::SyntaxError::create(realm(), "Failed to parse selector");
 
+    // 3. If the result of match a selector against an element, using s, this, and scoping root this, returns success, then return true; otherwise, return false.
     auto sel = maybe_selectors.value();
     for (auto& s : sel) {
-        if (SelectorEngine::matches(s, *this))
+        if (SelectorEngine::matches(s, *this, {}, static_cast<ParentNode const*>(this)))
             return true;
     }
     return false;