Merge pull request #1115 from lightpanda-io/nikneym/url-changes
Some checks failed
e2e-test / zig build release (push) Has been cancelled
e2e-test / demo-scripts (push) Has been cancelled
e2e-test / cdp-and-hyperfine-bench (push) Has been cancelled
e2e-test / perf-fmt (push) Has been cancelled
zig-test / zig build dev (push) Has been cancelled
zig-test / browser fetch (push) Has been cancelled
zig-test / zig test (push) Has been cancelled
zig-test / perf-fmt (push) Has been cancelled

Small URL & Location changes
This commit is contained in:
Halil Durak
2025-10-10 10:54:47 +03:00
committed by GitHub
4 changed files with 13 additions and 5 deletions

View File

@@ -281,7 +281,7 @@ pub const HTMLAnchorElement = struct {
// TODO return a disposable string
pub fn get_protocol(self: *parser.Anchor, page: *Page) ![]const u8 {
var u = try url(self, page);
return u.get_protocol(page);
return u.get_protocol();
}
pub fn set_protocol(self: *parser.Anchor, v: []const u8, page: *Page) !void {

View File

@@ -41,8 +41,8 @@ pub const Location = struct {
return page.navigateFromWebAPI(href, .{ .reason = .script });
}
pub fn get_protocol(self: *Location, page: *Page) ![]const u8 {
return self.url.get_protocol(page);
pub fn get_protocol(self: *Location) []const u8 {
return self.url.get_protocol();
}
pub fn get_host(self: *Location, page: *Page) ![]const u8 {

View File

@@ -164,8 +164,11 @@ pub const URL = struct {
return aw.written();
}
pub fn get_protocol(self: *URL, page: *Page) ![]const u8 {
return try std.mem.concat(page.arena, u8, &[_][]const u8{ self.uri.scheme, ":" });
pub fn get_protocol(self: *const URL) []const u8 {
// std.Uri keeps a pointer to "https", "http" (scheme part) so we know
// its followed by ':'.
const scheme = self.uri.scheme;
return scheme.ptr[0 .. scheme.len + 1];
}
pub fn get_username(self: *URL) []const u8 {

View File

@@ -76,3 +76,8 @@
testing.expectEqual("", sk.hostname);
testing.expectEqual("sveltekit-internal://", sk.href);
</script>
<script id=invalidUrl>
let u = new URL("://foo.bar/path?query#fragment");
testing.expectEqual(":", u.protocol);
</script>