| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
[AI] Please add these footers to verify the updated WebDriver WPT expectations on CQ (`linux-blink-rel` and `android-15-chrome-blink-rel` are needed because of baseline changes; `linux-surface-embed-rel` because `take_element_screenshot` baseline was modified):\n\n```text\nCq-Include-Trybots: luci.chromium.try:linux-blink-rel,android-15-chrome-blink-rel,android-16-x64-rel,linux-surface-embed-rel\nInclude-Ci-Only-Tests: chromium.fyi:linux-surface-embed-rel|surface_embed_chrome_wpt_tests\n```
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Commit-Queue | +1 |
[AI] Please add these footers to verify the updated WebDriver WPT expectations on CQ (`linux-blink-rel` and `android-15-chrome-blink-rel` are needed because of baseline changes; `linux-surface-embed-rel` because `take_element_screenshot` baseline was modified):\n\n```text\nCq-Include-Trybots: luci.chromium.try:linux-blink-rel,android-15-chrome-blink-rel,android-16-x64-rel,linux-surface-embed-rel\nInclude-Ci-Only-Tests: chromium.fyi:linux-surface-embed-rel|surface_embed_chrome_wpt_tests\n```
Done
const INITIAL_ELEMENT_KEY = 'ELEMENT';[AI] `INITIAL_ELEMENT_KEY` is only needed because `callFunction()` reassigns `ELEMENT_KEY = W3C_ELEMENT_KEY` (line 411) before `resolveReferences()` runs. In W3C mode, `ELEMENT_KEY` then no longer matches the legacy `'ELEMENT'` key, which can still reach line 354 because `WebViewImpl::ResolveElementReferencesInPlace()` resolves both keys.
Consider making `ELEMENT_KEY` a real constant and choosing the output key where it is used (`w3cEnabled` is already set, but never read):
```js
const ELEMENT_KEY = 'ELEMENT';
// In preprocessResult():
let key = w3cEnabled ? W3C_ELEMENT_KEY : ELEMENT_KEY;
```
Then `callFunction()` only sets `w3cEnabled = true;`, line 354 and `call_function_test.html` can use `ELEMENT_KEY`, and `INITIAL_ELEMENT_KEY` can be removed.
| Code-Review | +1 |
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Code-Review | +1 |
| Commit-Queue | +1 |
[AI] `INITIAL_ELEMENT_KEY` is only needed because `callFunction()` reassigns `ELEMENT_KEY = W3C_ELEMENT_KEY` (line 411) before `resolveReferences()` runs. In W3C mode, `ELEMENT_KEY` then no longer matches the legacy `'ELEMENT'` key, which can still reach line 354 because `WebViewImpl::ResolveElementReferencesInPlace()` resolves both keys.
Consider making `ELEMENT_KEY` a real constant and choosing the output key where it is used (`w3cEnabled` is already set, but never read):
```js
const ELEMENT_KEY = 'ELEMENT';// In preprocessResult():
let key = w3cEnabled ? W3C_ELEMENT_KEY : ELEMENT_KEY;
```Then `callFunction()` only sets `w3cEnabled = true;`, line 354 and `call_function_test.html` can use `ELEMENT_KEY`, and `INITIAL_ELEMENT_KEY` can be removed.
Done
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
Exportable changes to web-platform-tests were detected in this CL and a pull request in the upstream repo has been made: https://github.com/web-platform-tests/wpt/pull/64034.
When this CL lands, the bot will automatically merge the PR on GitHub if the required GitHub checks pass; otherwise, ecosystem-infra@ team will triage the failures and may contact you.
WPT Export docs:
https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md#Automatic-export-process
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
ChromeDriver: Reject mismatched element and shadow root references
ChromeDriver resolved WebDriver element and shadow-root IDs without
verifying that the supplied reference key matched the resulting node
type. A shadow root could therefore reach commands that require an
element, while a shadow-root command could receive an element or generic
DocumentFragment.
Validate reference types in the shared call_function.js deserializer
before checking node reachability. Preserve the native ShadowRoot
constructor during DevTools setup so page changes to the global
constructor do not affect serialization or deserialization. Continue to
accept Document nodes for internal script arguments.
Add unit and integration coverage for mismatched references, error
precedence, replaced constructors, and BiDi DocumentFragment shared IDs.
Update Linux and Android WPT baselines for the shared deserializer.
Overview doc: https://docs.google.com/document/d/1hH_O87bKywuQQV2_m4CzmgTcI7BmLXJojCxTTSTInR0/edit?tab=t.0
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
The WPT PR for this CL has been merged upstream! https://github.com/web-platform-tests/wpt/pull/64034
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |