Skip to content

Security Domain ​

The Security domain provides methods for handling security state and certificate errors.

Import ​

zig
const cdp = @import("cdp");
const Security = cdp.Security;

Initialization ​

zig
var session = try browser.newPage();
var security = Security.init(session);
try security.enable();

Methods ​

enable ​

Enable security domain events.

zig
pub fn enable(self: *Security) !void

disable ​

Disable security domain.

zig
pub fn disable(self: *Security) !void

setIgnoreCertificateErrors ​

Enable or disable ignoring certificate errors. Useful for testing with self-signed certificates.

zig
pub fn setIgnoreCertificateErrors(self: *Security, ignore: bool) !void

Warning: Setting ignore to true makes connections vulnerable to man-in-the-middle attacks. Only use for local development/testing.

handleCertificateError ​

Handle a certificate error event.

zig
pub fn handleCertificateError(
    self: *Security,
    event_id: i64,
    action: CertificateErrorAction,
) !void

setOverrideCertificateErrors ​

Enable certificate error overriding. When enabled, certificate errors pause navigation and send events instead of showing error pages.

zig
pub fn setOverrideCertificateErrors(self: *Security, override: bool) !void

Types ​

SecurityState ​

zig
pub const SecurityState = enum {
    unknown,
    neutral,
    insecure,
    secure,
    info,
    insecure_broken,
};

CertificateErrorAction ​

zig
pub const CertificateErrorAction = enum {
    @"continue",
    cancel,
};

CertificateSecurityState ​

zig
pub const CertificateSecurityState = struct {
    protocol: []const u8,
    key_exchange: []const u8,
    cipher: []const u8,
    certificate: [][]const u8,
    subject_name: []const u8,
    issuer: []const u8,
    valid_from: f64,
    valid_to: f64,
    // ... additional fields
};

Events ​

securityStateChanged ​

Fired when the security state of the page changes.

certificateError ​

Fired when a certificate error occurs (when override is enabled).

Example ​

zig
const cdp = @import("cdp");

pub fn allowSelfSignedCerts(session: *cdp.Session) !void {
    var security = cdp.Security.init(session);
    try security.enable();
    
    // Allow self-signed certificates for testing
    try security.setIgnoreCertificateErrors(true);
    
    // Navigate to HTTPS site with self-signed cert
    var page = cdp.Page.init(session);
    _ = try page.navigate(allocator, "https://localhost:8443");
}

Released under the MIT License.