mirror of
https://github.com/lightpanda-io/browser.git
synced 2026-06-11 01:25:53 -04:00
Merge pull request #2247 from lightpanda-io/small_fixes
Various small fixes
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,5 +1,6 @@
|
||||
/.zig-cache/
|
||||
/.lp-cache/
|
||||
/zig-pkg/
|
||||
zig-out
|
||||
lightpanda.id
|
||||
/src/html5ever/target/
|
||||
|
||||
@@ -1107,7 +1107,7 @@ fn frameDoneCallback(ctx: *anyopaque) !void {
|
||||
const html = try std.mem.concat(parse_arena, u8, &.{
|
||||
"<html><head><meta charset=\"utf-8\"></head><body><img src=\"",
|
||||
self.url,
|
||||
"\"></body></htm>",
|
||||
"\"></body></html>",
|
||||
});
|
||||
parser.parse(html);
|
||||
self.documentIsComplete();
|
||||
@@ -1116,7 +1116,7 @@ fn frameDoneCallback(ctx: *anyopaque) !void {
|
||||
self._parse_state = .{ .raw_done = buf.items };
|
||||
|
||||
// Use empty an empty HTML document.
|
||||
parser.parse("<html><head><meta charset=\"utf-8\"></head><body></body></htm>");
|
||||
parser.parse("<html><head><meta charset=\"utf-8\"></head><body></body></html>");
|
||||
self.documentIsComplete();
|
||||
},
|
||||
.pre => {
|
||||
@@ -1126,7 +1126,7 @@ fn frameDoneCallback(ctx: *anyopaque) !void {
|
||||
self._parse_state = .{ .complete = {} };
|
||||
|
||||
// Use empty an empty HTML document.
|
||||
parser.parse("<html><head><meta charset=\"utf-8\"></head><body></body></htm>");
|
||||
parser.parse("<html><head><meta charset=\"utf-8\"></head><body></body></html>");
|
||||
self.documentIsComplete();
|
||||
},
|
||||
.err => |err| {
|
||||
@@ -1134,7 +1134,7 @@ fn frameDoneCallback(ctx: *anyopaque) !void {
|
||||
const html = try std.mem.concat(parse_arena, u8, &.{
|
||||
"<html><head><meta charset=\"utf-8\"></head><body><h1>Navigation failed</h1><p>Reason: ",
|
||||
@errorName(err),
|
||||
"</p></body></htm>",
|
||||
"</p></body></html>",
|
||||
});
|
||||
|
||||
parser.parse(html);
|
||||
@@ -1358,7 +1358,10 @@ pub fn removeElementId(self: *Frame, element: *Element, id: []const u8) void {
|
||||
|
||||
pub fn removeElementIdWithMaps(self: *Frame, id_maps: ElementIdMaps, id: []const u8) void {
|
||||
if (id_maps.lookup.remove(id)) {
|
||||
id_maps.removed_ids.put(self.arena, self.dupeString(id) catch return, {}) catch {};
|
||||
const owned_id = self.dupeString(id) catch return;
|
||||
id_maps.removed_ids.put(self.arena, owned_id, {}) catch |err| {
|
||||
log.warn(.frame, "removeElementIdWithMaps", .{ .err = err });
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1704,25 +1707,25 @@ pub fn createElementNS(self: *Frame, namespace: Element.Namespace, name: []const
|
||||
Element.Html.Generic,
|
||||
namespace,
|
||||
attribute_iterator,
|
||||
.{ ._proto = undefined, ._tag_name = String.init(undefined, "b", .{}) catch unreachable, ._tag = .b },
|
||||
.{ ._proto = undefined, ._tag_name = comptime .wrap("b"), ._tag = .b },
|
||||
),
|
||||
'i' => return self.createHtmlElementT(
|
||||
Element.Html.Generic,
|
||||
namespace,
|
||||
attribute_iterator,
|
||||
.{ ._proto = undefined, ._tag_name = String.init(undefined, "i", .{}) catch unreachable, ._tag = .i },
|
||||
.{ ._proto = undefined, ._tag_name = comptime .wrap("i"), ._tag = .i },
|
||||
),
|
||||
'q' => return self.createHtmlElementT(
|
||||
Element.Html.Quote,
|
||||
namespace,
|
||||
attribute_iterator,
|
||||
.{ ._proto = undefined, ._tag_name = String.init(undefined, "q", .{}) catch unreachable, ._tag = .quote },
|
||||
.{ ._proto = undefined, ._tag_name = comptime .wrap("q"), ._tag = .quote },
|
||||
),
|
||||
's' => return self.createHtmlElementT(
|
||||
Element.Html.Generic,
|
||||
namespace,
|
||||
attribute_iterator,
|
||||
.{ ._proto = undefined, ._tag_name = String.init(undefined, "s", .{}) catch unreachable, ._tag = .s },
|
||||
.{ ._proto = undefined, ._tag_name = comptime .wrap("s"), ._tag = .s },
|
||||
),
|
||||
else => {},
|
||||
},
|
||||
@@ -1755,37 +1758,37 @@ pub fn createElementNS(self: *Frame, namespace: Element.Namespace, name: []const
|
||||
Element.Html.Heading,
|
||||
namespace,
|
||||
attribute_iterator,
|
||||
.{ ._proto = undefined, ._tag_name = String.init(undefined, "h1", .{}) catch unreachable, ._tag = .h1 },
|
||||
.{ ._proto = undefined, ._tag_name = comptime .wrap("h1"), ._tag = .h1 },
|
||||
),
|
||||
asUint("h2") => return self.createHtmlElementT(
|
||||
Element.Html.Heading,
|
||||
namespace,
|
||||
attribute_iterator,
|
||||
.{ ._proto = undefined, ._tag_name = String.init(undefined, "h2", .{}) catch unreachable, ._tag = .h2 },
|
||||
.{ ._proto = undefined, ._tag_name = comptime .wrap("h2"), ._tag = .h2 },
|
||||
),
|
||||
asUint("h3") => return self.createHtmlElementT(
|
||||
Element.Html.Heading,
|
||||
namespace,
|
||||
attribute_iterator,
|
||||
.{ ._proto = undefined, ._tag_name = String.init(undefined, "h3", .{}) catch unreachable, ._tag = .h3 },
|
||||
.{ ._proto = undefined, ._tag_name = comptime .wrap("h3"), ._tag = .h3 },
|
||||
),
|
||||
asUint("h4") => return self.createHtmlElementT(
|
||||
Element.Html.Heading,
|
||||
namespace,
|
||||
attribute_iterator,
|
||||
.{ ._proto = undefined, ._tag_name = String.init(undefined, "h4", .{}) catch unreachable, ._tag = .h4 },
|
||||
.{ ._proto = undefined, ._tag_name = comptime .wrap("h4"), ._tag = .h4 },
|
||||
),
|
||||
asUint("h5") => return self.createHtmlElementT(
|
||||
Element.Html.Heading,
|
||||
namespace,
|
||||
attribute_iterator,
|
||||
.{ ._proto = undefined, ._tag_name = String.init(undefined, "h5", .{}) catch unreachable, ._tag = .h5 },
|
||||
.{ ._proto = undefined, ._tag_name = comptime .wrap("h5"), ._tag = .h5 },
|
||||
),
|
||||
asUint("h6") => return self.createHtmlElementT(
|
||||
Element.Html.Heading,
|
||||
namespace,
|
||||
attribute_iterator,
|
||||
.{ ._proto = undefined, ._tag_name = String.init(undefined, "h6", .{}) catch unreachable, ._tag = .h6 },
|
||||
.{ ._proto = undefined, ._tag_name = comptime .wrap("h6"), ._tag = .h6 },
|
||||
),
|
||||
asUint("hr") => return self.createHtmlElementT(
|
||||
Element.Html.HR,
|
||||
@@ -1797,13 +1800,13 @@ pub fn createElementNS(self: *Frame, namespace: Element.Namespace, name: []const
|
||||
Element.Html.Generic,
|
||||
namespace,
|
||||
attribute_iterator,
|
||||
.{ ._proto = undefined, ._tag_name = String.init(undefined, "em", .{}) catch unreachable, ._tag = .em },
|
||||
.{ ._proto = undefined, ._tag_name = comptime .wrap("em"), ._tag = .em },
|
||||
),
|
||||
asUint("dd") => return self.createHtmlElementT(
|
||||
Element.Html.Generic,
|
||||
namespace,
|
||||
attribute_iterator,
|
||||
.{ ._proto = undefined, ._tag_name = String.init(undefined, "dd", .{}) catch unreachable, ._tag = .dd },
|
||||
.{ ._proto = undefined, ._tag_name = comptime .wrap("dd"), ._tag = .dd },
|
||||
),
|
||||
asUint("dl") => return self.createHtmlElementT(
|
||||
Element.Html.DList,
|
||||
@@ -1815,19 +1818,19 @@ pub fn createElementNS(self: *Frame, namespace: Element.Namespace, name: []const
|
||||
Element.Html.Generic,
|
||||
namespace,
|
||||
attribute_iterator,
|
||||
.{ ._proto = undefined, ._tag_name = String.init(undefined, "dt", .{}) catch unreachable, ._tag = .dt },
|
||||
.{ ._proto = undefined, ._tag_name = comptime .wrap("dt"), ._tag = .dt },
|
||||
),
|
||||
asUint("td") => return self.createHtmlElementT(
|
||||
Element.Html.TableCell,
|
||||
namespace,
|
||||
attribute_iterator,
|
||||
.{ ._proto = undefined, ._tag_name = String.init(undefined, "td", .{}) catch unreachable, ._tag = .td },
|
||||
.{ ._proto = undefined, ._tag_name = comptime .wrap("td"), ._tag = .td },
|
||||
),
|
||||
asUint("th") => return self.createHtmlElementT(
|
||||
Element.Html.TableCell,
|
||||
namespace,
|
||||
attribute_iterator,
|
||||
.{ ._proto = undefined, ._tag_name = String.init(undefined, "th", .{}) catch unreachable, ._tag = .th },
|
||||
.{ ._proto = undefined, ._tag_name = comptime .wrap("th"), ._tag = .th },
|
||||
),
|
||||
asUint("tr") => return self.createHtmlElementT(
|
||||
Element.Html.TableRow,
|
||||
@@ -1854,25 +1857,25 @@ pub fn createElementNS(self: *Frame, namespace: Element.Namespace, name: []const
|
||||
Element.Html.Generic,
|
||||
namespace,
|
||||
attribute_iterator,
|
||||
.{ ._proto = undefined, ._tag_name = String.init(undefined, "nav", .{}) catch unreachable, ._tag = .nav },
|
||||
.{ ._proto = undefined, ._tag_name = comptime .wrap("nav"), ._tag = .nav },
|
||||
),
|
||||
asUint("del") => return self.createHtmlElementT(
|
||||
Element.Html.Mod,
|
||||
namespace,
|
||||
attribute_iterator,
|
||||
.{ ._proto = undefined, ._tag_name = String.init(undefined, "del", .{}) catch unreachable, ._tag = .del },
|
||||
.{ ._proto = undefined, ._tag_name = comptime .wrap("del"), ._tag = .del },
|
||||
),
|
||||
asUint("ins") => return self.createHtmlElementT(
|
||||
Element.Html.Mod,
|
||||
namespace,
|
||||
attribute_iterator,
|
||||
.{ ._proto = undefined, ._tag_name = String.init(undefined, "ins", .{}) catch unreachable, ._tag = .ins },
|
||||
.{ ._proto = undefined, ._tag_name = comptime .wrap("ins"), ._tag = .ins },
|
||||
),
|
||||
asUint("col") => return self.createHtmlElementT(
|
||||
Element.Html.TableCol,
|
||||
namespace,
|
||||
attribute_iterator,
|
||||
.{ ._proto = undefined, ._tag_name = String.init(undefined, "col", .{}) catch unreachable, ._tag = .col },
|
||||
.{ ._proto = undefined, ._tag_name = comptime .wrap("col"), ._tag = .col },
|
||||
),
|
||||
asUint("dir") => return self.createHtmlElementT(
|
||||
Element.Html.Directory,
|
||||
@@ -1896,19 +1899,19 @@ pub fn createElementNS(self: *Frame, namespace: Element.Namespace, name: []const
|
||||
Element.Html.Generic,
|
||||
namespace,
|
||||
attribute_iterator,
|
||||
.{ ._proto = undefined, ._tag_name = String.init(undefined, "sub", .{}) catch unreachable, ._tag = .sub },
|
||||
.{ ._proto = undefined, ._tag_name = comptime .wrap("sub"), ._tag = .sub },
|
||||
),
|
||||
asUint("sup") => return self.createHtmlElementT(
|
||||
Element.Html.Generic,
|
||||
namespace,
|
||||
attribute_iterator,
|
||||
.{ ._proto = undefined, ._tag_name = String.init(undefined, "sup", .{}) catch unreachable, ._tag = .sup },
|
||||
.{ ._proto = undefined, ._tag_name = comptime .wrap("sup"), ._tag = .sup },
|
||||
),
|
||||
asUint("dfn") => return self.createHtmlElementT(
|
||||
Element.Html.Generic,
|
||||
namespace,
|
||||
attribute_iterator,
|
||||
.{ ._proto = undefined, ._tag_name = String.init(undefined, "dfn", .{}) catch unreachable, ._tag = .dfn },
|
||||
.{ ._proto = undefined, ._tag_name = comptime .wrap("dfn"), ._tag = .dfn },
|
||||
),
|
||||
else => {},
|
||||
},
|
||||
@@ -1965,7 +1968,7 @@ pub fn createElementNS(self: *Frame, namespace: Element.Namespace, name: []const
|
||||
Element.Html.Generic,
|
||||
namespace,
|
||||
attribute_iterator,
|
||||
.{ ._proto = undefined, ._tag_name = String.init(undefined, "main", .{}) catch unreachable, ._tag = .main },
|
||||
.{ ._proto = undefined, ._tag_name = comptime .wrap("main"), ._tag = .main },
|
||||
),
|
||||
asUint("data") => return self.createHtmlElementT(
|
||||
Element.Html.Data,
|
||||
@@ -1995,7 +1998,7 @@ pub fn createElementNS(self: *Frame, namespace: Element.Namespace, name: []const
|
||||
Element.Html.Generic,
|
||||
namespace,
|
||||
attribute_iterator,
|
||||
.{ ._proto = undefined, ._tag_name = String.init(undefined, "menu", .{}) catch unreachable, ._tag = .menu },
|
||||
.{ ._proto = undefined, ._tag_name = comptime .wrap("menu"), ._tag = .menu },
|
||||
),
|
||||
asUint("area") => return self.createHtmlElementT(
|
||||
Element.Html.Area,
|
||||
@@ -2013,7 +2016,7 @@ pub fn createElementNS(self: *Frame, namespace: Element.Namespace, name: []const
|
||||
Element.Html.Generic,
|
||||
namespace,
|
||||
attribute_iterator,
|
||||
.{ ._proto = undefined, ._tag_name = String.init(undefined, "code", .{}) catch unreachable, ._tag = .code },
|
||||
.{ ._proto = undefined, ._tag_name = comptime .wrap("code"), ._tag = .code },
|
||||
),
|
||||
asUint("time") => return self.createHtmlElementT(
|
||||
Element.Html.Time,
|
||||
@@ -2062,7 +2065,7 @@ pub fn createElementNS(self: *Frame, namespace: Element.Namespace, name: []const
|
||||
Element.Html.Generic,
|
||||
namespace,
|
||||
attribute_iterator,
|
||||
.{ ._proto = undefined, ._tag_name = String.init(undefined, "aside", .{}) catch unreachable, ._tag = .aside },
|
||||
.{ ._proto = undefined, ._tag_name = comptime .wrap("aside"), ._tag = .aside },
|
||||
),
|
||||
asUint("label") => return self.createHtmlElementT(
|
||||
Element.Html.Label,
|
||||
@@ -2092,19 +2095,19 @@ pub fn createElementNS(self: *Frame, namespace: Element.Namespace, name: []const
|
||||
Element.Html.TableSection,
|
||||
namespace,
|
||||
attribute_iterator,
|
||||
.{ ._proto = undefined, ._tag_name = String.init(undefined, "thead", .{}) catch unreachable, ._tag = .thead },
|
||||
.{ ._proto = undefined, ._tag_name = comptime .wrap("thead"), ._tag = .thead },
|
||||
),
|
||||
asUint("tbody") => return self.createHtmlElementT(
|
||||
Element.Html.TableSection,
|
||||
namespace,
|
||||
attribute_iterator,
|
||||
.{ ._proto = undefined, ._tag_name = String.init(undefined, "tbody", .{}) catch unreachable, ._tag = .tbody },
|
||||
.{ ._proto = undefined, ._tag_name = comptime .wrap("tbody"), ._tag = .tbody },
|
||||
),
|
||||
asUint("tfoot") => return self.createHtmlElementT(
|
||||
Element.Html.TableSection,
|
||||
namespace,
|
||||
attribute_iterator,
|
||||
.{ ._proto = undefined, ._tag_name = String.init(undefined, "tfoot", .{}) catch unreachable, ._tag = .tfoot },
|
||||
.{ ._proto = undefined, ._tag_name = comptime .wrap("tfoot"), ._tag = .tfoot },
|
||||
),
|
||||
asUint("track") => return self.createHtmlElementT(
|
||||
Element.Html.Track,
|
||||
@@ -2167,19 +2170,19 @@ pub fn createElementNS(self: *Frame, namespace: Element.Namespace, name: []const
|
||||
Element.Html.Generic,
|
||||
namespace,
|
||||
attribute_iterator,
|
||||
.{ ._proto = undefined, ._tag_name = String.init(undefined, "strong", .{}) catch unreachable, ._tag = .strong },
|
||||
.{ ._proto = undefined, ._tag_name = comptime .wrap("strong"), ._tag = .strong },
|
||||
),
|
||||
asUint("header") => return self.createHtmlElementT(
|
||||
Element.Html.Generic,
|
||||
namespace,
|
||||
attribute_iterator,
|
||||
.{ ._proto = undefined, ._tag_name = String.init(undefined, "header", .{}) catch unreachable, ._tag = .header },
|
||||
.{ ._proto = undefined, ._tag_name = comptime .wrap("header"), ._tag = .header },
|
||||
),
|
||||
asUint("footer") => return self.createHtmlElementT(
|
||||
Element.Html.Generic,
|
||||
namespace,
|
||||
attribute_iterator,
|
||||
.{ ._proto = undefined, ._tag_name = String.init(undefined, "footer", .{}) catch unreachable, ._tag = .footer },
|
||||
.{ ._proto = undefined, ._tag_name = comptime .wrap("footer"), ._tag = .footer },
|
||||
),
|
||||
asUint("select") => return self.createHtmlElementT(
|
||||
Element.Html.Select,
|
||||
@@ -2203,13 +2206,13 @@ pub fn createElementNS(self: *Frame, namespace: Element.Namespace, name: []const
|
||||
Element.Html.Generic,
|
||||
namespace,
|
||||
attribute_iterator,
|
||||
.{ ._proto = undefined, ._tag_name = String.init(undefined, "figure", .{}) catch unreachable, ._tag = .figure },
|
||||
.{ ._proto = undefined, ._tag_name = comptime .wrap("figure"), ._tag = .figure },
|
||||
),
|
||||
asUint("hgroup") => return self.createHtmlElementT(
|
||||
Element.Html.Generic,
|
||||
namespace,
|
||||
attribute_iterator,
|
||||
.{ ._proto = undefined, ._tag_name = String.init(undefined, "hgroup", .{}) catch unreachable, ._tag = .hgroup },
|
||||
.{ ._proto = undefined, ._tag_name = comptime .wrap("hgroup"), ._tag = .hgroup },
|
||||
),
|
||||
else => {},
|
||||
},
|
||||
@@ -2218,13 +2221,13 @@ pub fn createElementNS(self: *Frame, namespace: Element.Namespace, name: []const
|
||||
Element.Html.Generic,
|
||||
namespace,
|
||||
attribute_iterator,
|
||||
.{ ._proto = undefined, ._tag_name = String.init(undefined, "section", .{}) catch unreachable, ._tag = .section },
|
||||
.{ ._proto = undefined, ._tag_name = comptime .wrap("section"), ._tag = .section },
|
||||
),
|
||||
asUint("article") => return self.createHtmlElementT(
|
||||
Element.Html.Generic,
|
||||
namespace,
|
||||
attribute_iterator,
|
||||
.{ ._proto = undefined, ._tag_name = String.init(undefined, "article", .{}) catch unreachable, ._tag = .article },
|
||||
.{ ._proto = undefined, ._tag_name = comptime .wrap("article"), ._tag = .article },
|
||||
),
|
||||
asUint("details") => return self.createHtmlElementT(
|
||||
Element.Html.Details,
|
||||
@@ -2236,7 +2239,7 @@ pub fn createElementNS(self: *Frame, namespace: Element.Namespace, name: []const
|
||||
Element.Html.Generic,
|
||||
namespace,
|
||||
attribute_iterator,
|
||||
.{ ._proto = undefined, ._tag_name = String.init(undefined, "summary", .{}) catch unreachable, ._tag = .summary },
|
||||
.{ ._proto = undefined, ._tag_name = comptime .wrap("summary"), ._tag = .summary },
|
||||
),
|
||||
asUint("caption") => return self.createHtmlElementT(
|
||||
Element.Html.TableCaption,
|
||||
@@ -2248,13 +2251,13 @@ pub fn createElementNS(self: *Frame, namespace: Element.Namespace, name: []const
|
||||
Element.Html.Generic,
|
||||
namespace,
|
||||
attribute_iterator,
|
||||
.{ ._proto = undefined, ._tag_name = String.init(undefined, "marquee", .{}) catch unreachable, ._tag = .marquee },
|
||||
.{ ._proto = undefined, ._tag_name = comptime .wrap("marquee"), ._tag = .marquee },
|
||||
),
|
||||
asUint("address") => return self.createHtmlElementT(
|
||||
Element.Html.Generic,
|
||||
namespace,
|
||||
attribute_iterator,
|
||||
.{ ._proto = undefined, ._tag_name = String.init(undefined, "address", .{}) catch unreachable, ._tag = .address },
|
||||
.{ ._proto = undefined, ._tag_name = comptime .wrap("address"), ._tag = .address },
|
||||
),
|
||||
asUint("picture") => return self.createHtmlElementT(
|
||||
Element.Html.Picture,
|
||||
@@ -2281,7 +2284,7 @@ pub fn createElementNS(self: *Frame, namespace: Element.Namespace, name: []const
|
||||
Element.Html.TableCol,
|
||||
namespace,
|
||||
attribute_iterator,
|
||||
.{ ._proto = undefined, ._tag_name = String.init(undefined, "colgroup", .{}) catch unreachable, ._tag = .colgroup },
|
||||
.{ ._proto = undefined, ._tag_name = comptime .wrap("colgroup"), ._tag = .colgroup },
|
||||
),
|
||||
asUint("fieldset") => return self.createHtmlElementT(
|
||||
Element.Html.FieldSet,
|
||||
@@ -2311,7 +2314,7 @@ pub fn createElementNS(self: *Frame, namespace: Element.Namespace, name: []const
|
||||
Element.Html.Generic,
|
||||
namespace,
|
||||
attribute_iterator,
|
||||
.{ ._proto = undefined, ._tag_name = String.init(undefined, "noscript", .{}) catch unreachable, ._tag = .noscript },
|
||||
.{ ._proto = undefined, ._tag_name = comptime .wrap("noscript"), ._tag = .noscript },
|
||||
),
|
||||
else => {},
|
||||
},
|
||||
@@ -2320,7 +2323,7 @@ pub fn createElementNS(self: *Frame, namespace: Element.Namespace, name: []const
|
||||
Element.Html.Quote,
|
||||
namespace,
|
||||
attribute_iterator,
|
||||
.{ ._proto = undefined, ._tag_name = String.init(undefined, "blockquote", .{}) catch unreachable, ._tag = .blockquote },
|
||||
.{ ._proto = undefined, ._tag_name = comptime .wrap("blockquote"), ._tag = .blockquote },
|
||||
),
|
||||
else => {},
|
||||
},
|
||||
|
||||
@@ -219,7 +219,9 @@ pub fn isHidden(self: *StyleManager, el: *Element, cache: ?*VisibilityCache, opt
|
||||
|
||||
// Store in cache
|
||||
if (cache) |c| {
|
||||
c.put(self.frame.call_arena, elem, hidden) catch {};
|
||||
c.put(self.frame.call_arena, elem, hidden) catch |err| {
|
||||
log.warn(.browser, "StyleManager cache", .{ .err = err, .src = "isHidden" });
|
||||
};
|
||||
}
|
||||
|
||||
if (hidden) {
|
||||
@@ -425,7 +427,9 @@ pub fn hasPointerEventsNone(self: *StyleManager, el: *Element, cache: ?*PointerE
|
||||
const pe_none = self.elementHasPointerEventsNone(elem);
|
||||
|
||||
if (cache) |c| {
|
||||
c.put(self.frame.call_arena, elem, pe_none) catch {};
|
||||
c.put(self.frame.call_arena, elem, pe_none) catch |err| {
|
||||
log.warn(.browser, "StyleManager cache", .{ .err = err, .src = "hasPointerEventsNone" });
|
||||
};
|
||||
}
|
||||
|
||||
if (pe_none) {
|
||||
|
||||
@@ -203,7 +203,7 @@ fn paramsFromString(allocator: Allocator, input_: []const u8, buf: []u8) !KeyVal
|
||||
value = try unescape(allocator, entry[idx + 1 ..], buf);
|
||||
} else {
|
||||
name = try unescape(allocator, entry, buf);
|
||||
value = String.init(undefined, "", .{}) catch unreachable;
|
||||
value = comptime .wrap("");
|
||||
}
|
||||
|
||||
// optimized, unescape returns a String directly (Because unescape may
|
||||
@@ -219,7 +219,7 @@ fn paramsFromString(allocator: Allocator, input_: []const u8, buf: []u8) !KeyVal
|
||||
|
||||
fn unescape(arena: Allocator, value: []const u8, buf: []u8) !String {
|
||||
if (value.len == 0) {
|
||||
return String.init(undefined, "", .{});
|
||||
return comptime .wrap("");
|
||||
}
|
||||
|
||||
var has_plus = false;
|
||||
|
||||
@@ -232,7 +232,7 @@ pub const Writer = struct {
|
||||
break :blk "relatedElement";
|
||||
},
|
||||
.aria_label, .alt, .title, .placeholder, .value => blk: {
|
||||
// No sure if it's correct for .value case.
|
||||
// Not sure if it's correct for .value case.
|
||||
try w.objectField("attribute");
|
||||
try w.write(@tagName(source));
|
||||
break :blk "attribute";
|
||||
@@ -1300,7 +1300,7 @@ fn writeString(s: []const u8, w: anytype) !void {
|
||||
fn stripWhitespaces(s: []const u8, writer: anytype) !void {
|
||||
var start: usize = 0;
|
||||
var prev_w: ?bool = null;
|
||||
var is_w: bool = undefined;
|
||||
var is_w: bool = false;
|
||||
|
||||
for (s, 0..) |c, i| {
|
||||
is_w = std.ascii.isWhitespace(c);
|
||||
|
||||
@@ -199,7 +199,7 @@ pub const Search = struct {
|
||||
};
|
||||
|
||||
// Need a custom writer, because we can't just serialize the node as-is.
|
||||
// Sometimes we want to serializ the node without children, sometimes with just
|
||||
// Sometimes we want to serialize the node without children, sometimes with just
|
||||
// its direct children, and sometimes the entire tree.
|
||||
// (For now, we only support direct children)
|
||||
|
||||
|
||||
@@ -117,7 +117,11 @@ pub extern "C" fn html5ever_parse_document_with_encoding(
|
||||
}
|
||||
|
||||
let input = unsafe { std::slice::from_raw_parts(html, len) };
|
||||
let charset_bytes = unsafe { std::slice::from_raw_parts(charset, charset_len) };
|
||||
let charset_bytes = if charset.is_null() {
|
||||
&[]
|
||||
} else {
|
||||
unsafe { std::slice::from_raw_parts(charset, charset_len) }
|
||||
};
|
||||
|
||||
// Decode to UTF-8. Returns Cow<str> - no allocation if already valid UTF-8.
|
||||
let encoding = Encoding::for_label(charset_bytes).unwrap_or(encoding_rs::UTF_8);
|
||||
|
||||
@@ -703,7 +703,7 @@ const LineWriter = struct {
|
||||
while (remain.len > 64) {
|
||||
try writer.writeAll(remain[0..64]);
|
||||
try writer.writeByte('\n');
|
||||
remain = data[len..];
|
||||
remain = remain[64..];
|
||||
}
|
||||
try writer.writeAll(remain);
|
||||
self.col = col + remain.len;
|
||||
|
||||
1
src/network/cache/FsCache.zig
vendored
1
src/network/cache/FsCache.zig
vendored
@@ -226,6 +226,7 @@ pub fn put(self: *FsCache, meta: CachedMetadata, body: []const u8) !void {
|
||||
log.err(.cache, "create file", .{ .url = meta.url, .file = &cache_tmp_p, .err = e });
|
||||
return e;
|
||||
};
|
||||
errdefer self.dir.deleteFile(&cache_tmp_p) catch {};
|
||||
defer file.close();
|
||||
|
||||
var writer_buf: [1024]u8 = undefined;
|
||||
|
||||
Reference in New Issue
Block a user