Skip to content

Conversation

@sleepy-monax
Copy link
Member

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.

Copy link
Contributor

Copilot AI left a 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

Copy link
Member

@Louciole Louciole left a 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 !

Copy link
Contributor

Copilot AI left a 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.

@sleepy-monax sleepy-monax marked this pull request as ready for review November 27, 2025 09:43
Copy link
Member

@Louciole Louciole left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

okay to me !

@sleepy-monax sleepy-monax merged commit 47e5b9f into main Nov 27, 2025
4 checks passed
@sleepy-monax sleepy-monax deleted the clvb/webdriver2 branch November 27, 2025 13:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants