Current section

Files

Jump to
chrobot src chrobot protocol browser.gleam
Raw

src/chrobot/protocol/browser.gleam

//// > ⚙️ 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 `codegen.sh` to regenerate. |
// ---------------------------------------------------------------------------
import chrobot/chrome
import chrobot/internal/utils
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))])),
)
}