Merge vendor cddl files into shared BiDi schema and implement custom Firefox webExtension options - #17840
Conversation
PR Summary by QodoSegregate vendor fields in BiDi schema and generate Ruby WebExtension::Moz install options
AI Description
Diagram
High-Level Assessment
Files changed (16)
|
Code Review by Qodo
1. for_moz lacks cross-binding parity
|
…the shared TS binding
f69c878 to
10dcc37
Compare
|
Code review by qodo was updated up to the latest commit 10dcc37 |
|
Code review by qodo was updated up to the latest commit f017ae8 |
🔗 Related Issues
💥 What does this PR do?
vendorsection to the generated WebDriver BiDi schema so bindings can expose browser-specific command params without adding them to the shared, cross-browser types.WebExtensiondomain now exposes Firefox'smoz:allowPrivateBrowsing/moz:permanentinstall options as a typed, Firefox-scopedMozmodule:WebExtension.for_moz(connection).install(extension_data:, allow_private_browsing:, permanent:).🔧 Implementation Notes
common/bidi/that mirror the changes expected to land upstream — the extension point from W3C and Mozilla's vendored CDDL file as temporary stand-ins until those merge.moz:) and routed out of the sharedtypesintovendor.<ns>. The//=still resolves against the real extension point during normalization — a genuine spec merge — so only the output is split; the shared schema still represents the spec faithfully. Verified every schema type outsidewebExtension.installis byte-identical to the pre-change build.for_<namespace>class-method factory (called asWebExtension.for_moz(connection));moz:permanent→permanent) while wire keys stay exact.install(extension_data:)stays browser-neutral — a Chromium session never sees themoz:options, and the sharedInstallParameterstype is byte-identical to what upstream emits.🤖 AI assistance
💡 Additional Considerations
common/bidi/webdriver-bidi-1140.cddland itsoverride_cddl_filesentry. The vendor overlay keeps working — its//=then resolves against upstream'sInstallParametersExtension.vendor_cddl_filesat it and delete our stand-incommon/bidi/webextension-install-extensions.cddl. Our overlay already matches it, incl..default false.--override-cddl/--vendor-cddlmechanisms and thevendorschema key stay either way (generic, dormant when unused).🔄 Types of changes