//// > ⚙️ This module was generated from the Chrome DevTools Protocol version **1.3** //// ## Browser Domain //// //// The Browser domain defines methods and events for browser managing. //// //// [📖 View this domain on the DevTools Protocol API Docs](https://chromedevtools.github.io/devtools-protocol/1-3/Browser/) // --------------------------------------------------------------------------- // | !!!!!! This is an autogenerated file - Do not edit manually !!!!!! | // | Run ` gleam run -m scripts/generate_protocol_bindings.sh` to regenerate.| // --------------------------------------------------------------------------- import chrobot/internal/utils import chrome import gleam/dynamic import gleam/json import gleam/option import gleam/result /// This type is not part of the protocol spec, it has been generated dynamically /// to represent the response to the command `get_version` pub type GetVersionResponse { GetVersionResponse( /// Protocol version. protocol_version: String, /// Product name. product: String, /// Product revision. revision: String, /// User-Agent. user_agent: String, /// V8 version. js_version: String, ) } @internal pub fn decode__get_version_response(value__: dynamic.Dynamic) { use protocol_version <- result.try(dynamic.field( "protocolVersion", dynamic.string, )(value__)) use product <- result.try(dynamic.field("product", dynamic.string)(value__)) use revision <- result.try(dynamic.field("revision", dynamic.string)(value__)) use user_agent <- result.try(dynamic.field("userAgent", dynamic.string)( value__, )) use js_version <- result.try(dynamic.field("jsVersion", dynamic.string)( value__, )) Ok(GetVersionResponse( protocol_version: protocol_version, product: product, revision: revision, user_agent: user_agent, js_version: js_version, )) } /// Reset all permission management for all origins. /// /// Parameters: /// - `browser_context_id` : BrowserContext to reset permissions. When omitted, default browser context is used. /// /// Returns: /// pub fn reset_permissions( callback__, browser_context_id browser_context_id: option.Option(String), ) { callback__( "Browser.resetPermissions", option.Some(json.object( [] |> utils.add_optional(browser_context_id, fn(inner_value__) { #("browserContextId", json.string(inner_value__)) }), )), ) } /// Close browser gracefully. /// pub fn close(callback__) { callback__("Browser.close", option.None) } /// Returns version information. /// - `protocol_version` : Protocol version. /// - `product` : Product name. /// - `revision` : Product revision. /// - `user_agent` : User-Agent. /// - `js_version` : V8 version. /// pub fn get_version(callback__) { use result__ <- result.try(callback__("Browser.getVersion", option.None)) decode__get_version_response(result__) |> result.replace_error(chrome.ProtocolError) } /// Allows a site to use privacy sandbox features that require enrollment /// without the site actually being enrolled. Only supported on page targets. /// /// Parameters: /// - `url` /// /// Returns: /// pub fn add_privacy_sandbox_enrollment_override(callback__, url url: String) { callback__( "Browser.addPrivacySandboxEnrollmentOverride", option.Some(json.object([#("url", json.string(url))])), ) }