-
Notifications
You must be signed in to change notification settings - Fork 32
vaev-webdriver: Intial implementation of webdriver2. #129
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR implements a complete WebDriver 2 protocol implementation in C++ directly integrated with the Vaev engine, replacing the previous implementation. The new implementation adds support for PDF printing, page source retrieval, and full session handling.
- Adds new C++ WebDriver service with HTTP endpoints for the WebDriver 2 protocol
- Implements core WebDriver functionality including sessions, navigation, window management, and screen capture
- Adds HTML fragment serialization support for retrieving page source
Reviewed Changes
Copilot reviewed 14 out of 14 changed files in this pull request and generated 12 comments.
Show a summary per file
| File | Description |
|---|---|
| src/vaev-webdriver/service.cpp | Implements HTTP service endpoints for WebDriver 2 protocol (sessions, navigation, contexts, screenshots, printing) |
| src/vaev-webdriver/protocol.cpp | Defines WebDriver protocol types and helper functions for success/error responses |
| src/vaev-webdriver/driver.cpp | Core WebDriver logic handling sessions, windows, navigation, and document operations |
| src/vaev-webdriver/mod.cpp | Module exports for the WebDriver implementation |
| src/vaev-webdriver/manifest.json | Component manifest declaring vaev-engine dependency |
| src/vaev-webdriver/main/manifest.json | Executable manifest for WebDriver server |
| src/vaev-webdriver/main/main.cpp | Entry point for WebDriver server with CLI option parsing |
| src/vaev-engine/style/specified.cpp | Changes opacity field from f16 to f32 for compatibility |
| src/vaev-engine/style/media.cpp | Adds viewportSize() helper method to Media struct |
| src/vaev-engine/dom/window.cpp | Adds refreshAsync() method and refactors viewport size usage |
| src/vaev-engine/dom/serialisation.cpp | Implements HTML fragment serialization per WHATWG spec |
| src/vaev-engine/dom/names.cpp | Adds documentation comment for namespace serialization logic |
| src/vaev-engine/dom/mod.cpp | Exports new serialisation module |
| src/vaev-engine/dom/element.cpp | Adds isVoidElement() method for HTML void element detection |
Louciole
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i let you fishish the TODO's but overall it looks good, I didn't see big loopholes, well done it's great !
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Copilot reviewed 14 out of 15 changed files in this pull request and generated 17 comments.
d0ae01a to
934a74e
Compare
…asic checkbox/radio support.
be1716a to
3c9f979
Compare
Louciole
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
okay to me !
This rewrites the WebDriver in C++ to integrate it directly with the engine.
It now supports everything the previous implementations did. Plus PDF printing, retrieving the page source, and full session handling.