Refactor CDP

CDP is now an struct which contains its own state a browser and a session.

When a client connection is made and successfully upgrades, the client creates
the CDP instance. There is now a cleaner separation betwen Server, Client and
CDP.

Removed a number of allocations, especially when writing results/events from
CDP to the client. Improved input message parsing. Tried to remove some usage
of undefined.
This commit is contained in:
Karl Seguin
2025-02-10 17:34:54 +08:00
parent 14fe4f65e1
commit 6ab64d155b
20 changed files with 1305 additions and 2202 deletions

View File

@@ -261,12 +261,13 @@ pub fn main() !void {
defer loop.deinit();
// browser
var browser = Browser{};
try Browser.init(&browser, alloc, &loop, vm);
var browser = Browser.init(alloc, &loop);
defer browser.deinit();
var session = try browser.newSession({});
// page
const page = try browser.session.createPage();
const page = try session.createPage();
try page.start(null);
defer page.end();