Merge branch 'main' into stylesheet-scroll-container

This commit is contained in:
Adrià Arrufat committed 2026-09-16 14:53:52 +02:00
commit 2cc537fc8c
127 files changed
+6163 -4557

No files matched your search

+1 -1
View File
@@ -341,7 +341,7 @@ fn locateNodes(cmd: *const BiDi.Command) !void {
const list = Selector.querySelectorAll(root, selector, frame) catch |err| {
return invalidSelector(cmd, "css", selector, err);
};
defer list.deinit(frame._page);
defer list.deinit(frame.page);
try appendNodes(&remotes, arena, &serializer, list._nodes, max);
}
},
+3 -3
View File
@@ -295,7 +295,7 @@ test "cdp Node: search list" {
{
const l1 = try doc.querySelectorAll(.wrap("a"), frame);
defer l1.deinit(frame._page);
defer l1.deinit(frame.page);
const s1 = try search_list.create(l1._nodes);
try testing.expectEqual("1", s1.name);
try testing.expectEqualSlices(u32, &.{ 1, 2 }, s1.node_ids);
@@ -306,7 +306,7 @@ test "cdp Node: search list" {
{
const l2 = try doc.querySelectorAll(.wrap("#a1"), frame);
defer l2.deinit(frame._page);
defer l2.deinit(frame.page);
const s2 = try search_list.create(l2._nodes);
try testing.expectEqual("2", s2.name);
try testing.expectEqualSlices(u32, &.{1}, s2.node_ids);
@@ -314,7 +314,7 @@ test "cdp Node: search list" {
{
const l3 = try doc.querySelectorAll(.wrap("#a2"), frame);
defer l3.deinit(frame._page);
defer l3.deinit(frame.page);
const s3 = try search_list.create(l3._nodes);
try testing.expectEqual("3", s3.name);
try testing.expectEqualSlices(u32, &.{2}, s3.node_ids);
+1 -3
View File
@@ -66,9 +66,7 @@ pub fn consoleMessage(arena: Allocator, bc: *CDP.BrowserContext, event: *const N
const w = &aw.writer;
for (event.values, 0..) |v, i| {
if (i != 0) try w.writeByte(' ');
const js_str = try v.toString();
try js_str.format(w);
try v.format(w);
}
return bc.cdp.sendEvent("Console.messageAdded", ConsoleMessage{
+4 -4
View File
@@ -171,7 +171,7 @@ fn performSearch(cmd: *CDP.Command) !void {
}
const list = try Selector.querySelectorAll(root, params.query, frame);
defer list.deinit(frame._page);
defer list.deinit(frame.page);
return finishSearch(cmd, bc, list._nodes);
}
@@ -320,7 +320,7 @@ fn querySelectorAll(cmd: *CDP.Command) !void {
};
const selected_nodes = try Selector.querySelectorAll(node.dom, params.selector, frame);
defer selected_nodes.deinit(frame._page);
defer selected_nodes.deinit(frame.page);
const nodes = selected_nodes._nodes;
@@ -673,9 +673,9 @@ fn setFileInputFiles(cmd: *CDP.Command) !void {
// Files are created at refcount 0; selectFiles takes ownership. If a later
// path fails to load, release the arenas of the ones already created.
var created: usize = 0;
errdefer for (files[0..created]) |f| f._proto.deinit(frame._page);
errdefer for (files[0..created]) |f| f._proto.deinit(frame.page);
for (params.files, 0..) |path, i| {
files[i] = try fileFromDiskPath(path, frame._page);
files[i] = try fileFromDiskPath(path, frame.page);
created = i + 1;
}
}
+6 -8
View File
@@ -271,7 +271,7 @@ test "cdp.runtime: consoleAPICalled only carries values for primitives" {
try testing.expectEqual(0, try probed.toF64());
}
test "cdp.runtime: console calls made while a notification is being built" {
test "cdp.runtime: console notifications run no page JS" {
testing.silenceLog(&.{.js});
var ctx = try testing.context();
@@ -285,19 +285,17 @@ test "cdp.runtime: console calls made while a notification is being built" {
var ls: js.Local.Scope = undefined;
frame.js.localScope(&ls);
defer ls.deinit();
// Legacy Console formatting can re-enter the notification handlers.
_ = try ls.local.exec(
\\const inner = 'x'.repeat(120);
\\const probe = { toString() { console.log(inner); console.log(inner); return 'outer'; } };
\\globalThis.probed = 0;
\\const probe = { toString() { globalThis.probed++; console.log('inner'); return 'outer'; } };
\\console.log('head-marker', probe, 'tail-marker-'.repeat(20));
, null);
const inner = "x" ** 120;
const tail = "tail-marker-" ** 20;
try ctx.expectSentEvent("Console.messageAdded", .{ .level = "log", .text = inner }, .{});
try ctx.expectSentEvent("Console.messageAdded", .{ .level = "log", .text = "head-marker outer " ++ tail }, .{});
try ctx.expectSentEvent("Runtime.consoleAPICalled", .{ .type = "log", .args = .{.{ .type = "string", .value = inner }} }, .{});
try ctx.expectSentEvent("Console.messageAdded", .{ .level = "log", .text = "head-marker [object Object] " ++ tail }, .{});
try ctx.expectSentEvent("Runtime.consoleAPICalled", .{ .type = "log", .args = .{ .{ .type = "string", .value = "head-marker" }, .{ .type = "object", .className = "Object" }, .{ .type = "string", .value = tail } } }, .{});
const probed = try ls.local.exec("globalThis.probed", null);
try testing.expectEqual(0, try probed.toF64());
try testing.expectEqual(0, ctx.cdp().notification_depth);
try testing.expectEqual(0, ctx.cdp().link.send_depth);
try ctx.processMessage(.{ .id = 62, .method = "Runtime.evaluate", .params = .{ .expression = "6 * 7" } });