[WebDriver] Implement "Find Element(s) From ShadowRoot" (#37578)

Also renamed all "CSS" selector variants of `WebDriverScriptCommand` to
avoid confusion.

Testing: Mostly `./mach test-wpt -r
tests\wpt\tests\webdriver\tests\classic\find_*_from_shadow_root\find.py
--product servodriver`
But many other test also relies on finding element(s) from shadow root,
so I ran the entire test.
All deleted lines are from test expectations.

---------

Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>
This commit is contained in:
Euclid Ye 2025-06-20 19:54:39 +08:00 committed by GitHub
parent c9d503c458
commit ce4da2bf97
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
17 changed files with 237 additions and 315 deletions

View file

@ -2276,8 +2276,8 @@ impl ScriptThread {
WebDriverScriptCommand::DeleteCookie(name, reply) => {
webdriver_handlers::handle_delete_cookie(&documents, pipeline_id, name, reply)
},
WebDriverScriptCommand::FindElementCSS(selector, reply) => {
webdriver_handlers::handle_find_element_css(
WebDriverScriptCommand::FindElementCSSSelector(selector, reply) => {
webdriver_handlers::handle_find_element_css_selector(
&documents,
pipeline_id,
selector,
@ -2303,8 +2303,8 @@ impl ScriptThread {
can_gc,
)
},
WebDriverScriptCommand::FindElementsCSS(selector, reply) => {
webdriver_handlers::handle_find_elements_css(
WebDriverScriptCommand::FindElementsCSSSelector(selector, reply) => {
webdriver_handlers::handle_find_elements_css_selector(
&documents,
pipeline_id,
selector,
@ -2330,8 +2330,8 @@ impl ScriptThread {
can_gc,
)
},
WebDriverScriptCommand::FindElementElementCSS(selector, element_id, reply) => {
webdriver_handlers::handle_find_element_element_css(
WebDriverScriptCommand::FindElementElementCSSSelector(selector, element_id, reply) => {
webdriver_handlers::handle_find_element_element_css_selector(
&documents,
pipeline_id,
element_id,
@ -2363,8 +2363,8 @@ impl ScriptThread {
can_gc,
)
},
WebDriverScriptCommand::FindElementElementsCSS(selector, element_id, reply) => {
webdriver_handlers::handle_find_element_elements_css(
WebDriverScriptCommand::FindElementElementsCSSSelector(selector, element_id, reply) => {
webdriver_handlers::handle_find_element_elements_css_selector(
&documents,
pipeline_id,
element_id,
@ -2396,6 +2396,40 @@ impl ScriptThread {
can_gc,
)
},
WebDriverScriptCommand::FindShadowElementsCSSSelector(
selector,
shadow_root_id,
reply,
) => webdriver_handlers::handle_find_shadow_elements_css_selector(
&documents,
pipeline_id,
shadow_root_id,
selector,
reply,
),
WebDriverScriptCommand::FindShadowElementsLinkText(
selector,
shadow_root_id,
partial,
reply,
) => webdriver_handlers::handle_find_shadow_elements_link_text(
&documents,
pipeline_id,
shadow_root_id,
selector,
partial,
reply,
can_gc,
),
WebDriverScriptCommand::FindShadowElementsTagName(selector, shadow_root_id, reply) => {
webdriver_handlers::handle_find_shadow_elements_tag_name(
&documents,
pipeline_id,
shadow_root_id,
selector,
reply,
)
},
WebDriverScriptCommand::GetElementShadowRoot(element_id, reply) => {
webdriver_handlers::handle_get_element_shadow_root(
&documents,