mirror of
https://github.com/lightpanda-io/browser.git
synced 2026-09-16 16:01:30 -04:00
add credentials_mode for proper CORS credentials handling
This commit is contained in:
4 files changed
+75
-11
No files matched your search
@@ -634,8 +634,8 @@ pub fn newRequest(self: *Client, req: Request, owner: ?*Owner) anyerror!*Transfe
|
||||
};
|
||||
owned.cookie_origin = null;
|
||||
|
||||
if (req.credentials) |c| {
|
||||
owned.credentials = try arena.dupeZ(u8, c);
|
||||
if (req.basic_auth_credentials) |c| {
|
||||
owned.basic_auth_credentials = try arena.dupeZ(u8, c);
|
||||
}
|
||||
|
||||
const raw_origin: ?[]const u8 = req.origin orelse if (owner) |o| o.origin.* else null;
|
||||
@@ -1808,13 +1808,23 @@ pub const Request = struct {
|
||||
// ten segments, versus a TCP handshake plus a TLS one.
|
||||
const HEADERS_ONLY_DRAIN_MAX: usize = 16 * 1024;
|
||||
|
||||
pub const CredentialsMode = enum {
|
||||
// Never send credentials, even same-origin.
|
||||
omit,
|
||||
// Send credentials only for same-origin requests.
|
||||
same_origin,
|
||||
// Always send credentials, including cross-origin.
|
||||
include,
|
||||
};
|
||||
|
||||
method: Method,
|
||||
url: [:0]const u8,
|
||||
body: ?[]const u8 = null,
|
||||
resource_type: ResourceType,
|
||||
redirect: RedirectMode = .follow,
|
||||
referrer_policy: ?referrer.Policy = null,
|
||||
credentials: ?[:0]const u8 = null,
|
||||
basic_auth_credentials: ?[:0]const u8 = null,
|
||||
credentials_mode: CredentialsMode = .same_origin,
|
||||
timeout_ms: u32 = 0,
|
||||
skip_cache: bool = false,
|
||||
|
||||
@@ -3097,7 +3107,7 @@ pub const Transfer = struct {
|
||||
}
|
||||
|
||||
// add credentials
|
||||
if (req.credentials) |creds| {
|
||||
if (req.basic_auth_credentials) |creds| {
|
||||
if (self._auth_challenge != null and self._auth_challenge.?.source == .proxy) {
|
||||
try conn.setProxyCredentials(creds);
|
||||
} else {
|
||||
@@ -3282,7 +3292,7 @@ pub const Transfer = struct {
|
||||
}
|
||||
|
||||
pub fn updateCredentials(self: *Transfer, userpwd: [:0]const u8) void {
|
||||
self.req.credentials = userpwd;
|
||||
self.req.basic_auth_credentials = userpwd;
|
||||
}
|
||||
|
||||
pub const RequestHeader = struct {
|
||||
|
||||
Reference in new issue
Block a user