mirror of
https://github.com/lightpanda-io/browser.git
synced 2025-12-16 16:28:58 +00:00
Link get/set rel
Include stack trace on console.error Don't unnecessarily copy request header on fetch
This commit is contained in:
@@ -19,6 +19,7 @@
|
|||||||
const std = @import("std");
|
const std = @import("std");
|
||||||
const js = @import("../js/js.zig");
|
const js = @import("../js/js.zig");
|
||||||
|
|
||||||
|
const Page = @import("../Page.zig");
|
||||||
const logger = @import("../../log.zig");
|
const logger = @import("../../log.zig");
|
||||||
|
|
||||||
const Console = @This();
|
const Console = @This();
|
||||||
@@ -26,25 +27,30 @@ _pad: bool = false,
|
|||||||
|
|
||||||
pub const init: Console = .{};
|
pub const init: Console = .{};
|
||||||
|
|
||||||
pub fn log(_: *const Console, values: []js.Object) void {
|
pub fn log(_: *const Console, values: []js.Object, page: *Page) void {
|
||||||
logger.info(.js, "console.log", .{ValueWriter{ .values = values }});
|
logger.info(.js, "console.log", .{ValueWriter{ .page = page, .values = values }});
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn warn(_: *const Console, values: []js.Object) void {
|
pub fn warn(_: *const Console, values: []js.Object, page: *Page) void {
|
||||||
logger.warn(.js, "console.warn", .{ValueWriter{ .values = values }});
|
logger.warn(.js, "console.warn", .{ValueWriter{ .page = page, .values = values }});
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn @"error"(_: *const Console, values: []js.Object) void {
|
pub fn @"error"(_: *const Console, values: []js.Object, page: *Page) void {
|
||||||
logger.warn(.js, "console.error", .{ValueWriter{ .values = values }});
|
logger.warn(.js, "console.error", .{ValueWriter{ .page = page, .values = values, .include_stack = true }});
|
||||||
}
|
}
|
||||||
|
|
||||||
const ValueWriter = struct {
|
const ValueWriter = struct {
|
||||||
|
page: *Page,
|
||||||
values: []js.Object,
|
values: []js.Object,
|
||||||
|
include_stack: bool = false,
|
||||||
|
|
||||||
pub fn format(self: ValueWriter, writer: *std.io.Writer) !void {
|
pub fn format(self: ValueWriter, writer: *std.io.Writer) !void {
|
||||||
for (self.values, 1..) |value, i| {
|
for (self.values, 1..) |value, i| {
|
||||||
try writer.print("\n arg({d}): {f}", .{ i, value });
|
try writer.print("\n arg({d}): {f}", .{ i, value });
|
||||||
}
|
}
|
||||||
|
if (self.include_stack) {
|
||||||
|
try writer.print("\n stack: {s}", .{self.page.js.stackTrace() catch |err| @errorName(err) orelse "???"});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
pub fn jsonStringify(self: ValueWriter, writer: *std.json.Stringify) !void {
|
pub fn jsonStringify(self: ValueWriter, writer: *std.json.Stringify) !void {
|
||||||
try writer.beginArray();
|
try writer.beginArray();
|
||||||
|
|||||||
@@ -43,6 +43,14 @@ pub fn setHref(self: *Link, value: []const u8, page: *Page) !void {
|
|||||||
try self.asElement().setAttributeSafe("href", value, page);
|
try self.asElement().setAttributeSafe("href", value, page);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn getRel(self: *Link) []const u8 {
|
||||||
|
return self.asElement().getAttributeSafe("rel") orelse return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn setRel(self: *Link, value: []const u8, page: *Page) !void {
|
||||||
|
try self.asElement().setAttributeSafe("rel", value, page);
|
||||||
|
}
|
||||||
|
|
||||||
pub const JsApi = struct {
|
pub const JsApi = struct {
|
||||||
pub const bridge = js.Bridge(Link);
|
pub const bridge = js.Bridge(Link);
|
||||||
|
|
||||||
@@ -52,5 +60,6 @@ pub const JsApi = struct {
|
|||||||
pub var class_id: bridge.ClassId = undefined;
|
pub var class_id: bridge.ClassId = undefined;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
pub const rel = bridge.accessor(Link.getRel, Link.setRel, .{});
|
||||||
pub const href = bridge.accessor(Link.getHref, Link.setHref, .{});
|
pub const href = bridge.accessor(Link.getHref, Link.setHref, .{});
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -57,9 +57,10 @@ pub fn init(input: Input, opts_: ?InitOpts, page: *Page) !*Request {
|
|||||||
.request => |r| r._method,
|
.request => |r| r._method,
|
||||||
};
|
};
|
||||||
|
|
||||||
const headers = if (opts.headers) |header_init|
|
const headers = if (opts.headers) |headers_init| switch (headers_init) {
|
||||||
try Headers.init(header_init, page)
|
.obj => |h| h,
|
||||||
else switch (input) {
|
else => try Headers.init(headers_init, page),
|
||||||
|
} else switch (input) {
|
||||||
.url => null,
|
.url => null,
|
||||||
.request => |r| r._headers,
|
.request => |r| r._headers,
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user