pub struct Args {Show 30 fields
user_os: Os,
user_args: Args,
browser_profile_datadir: String,
dolphin_components_dir: String,
enable_features: List,
disable_features: List,
enable_logging: Option<String>,
logging_verbosity: Option<usize>,
disable_backgrounding_occluded_windows: Switch,
disable_web_security: Switch,
flag_switches_begin: Switch,
disable_site_isolation_trials: Switch,
flag_switches_end: Switch,
down_port: usize,
remote_debugging_port: Option<usize>,
remote_allow_origins: Option<String>,
enable_blink_features: List,
disable_field_trial_config: Switch,
locale: String,
user_agent: Option<String>,
headless: Option<String>,
enable_unsafe_webgpu: Switch,
new_extensions: Switch,
off_updater: Switch,
blink_settings: Option<String>,
disable_webgl: Switch,
disable_gpu: Switch,
proxy_server: Option<String>,
proxy_bypass_list: Option<String>,
component_updater: String,
}Fields§
§user_os: OsOperation system of user’s device. NOT the operation system that browser will emulate.
Will be used to stringify args according to OS requirements, i.e. path separators (C:\ Program Files on Windows, but / on *nix)
This argument will NOT be serialized and is for internal use only.
user_args: ArgsList of arguments that user passed to the browser.
This argument will be joined at later stages of args serialization.
browser_profile_datadir: StringDirectory of browser profile data.
Most important subdirectory is “Default”, which contains browser’s cookies, cache, local storage, etc.
dolphin_components_dir: StringDirectory of our shared components.
Contains browser’s shared components, such as Widevine CDM libraries. They are pointless to copy into each browser profile, so we’re putting them in one shared directory.
enable_features: ListList of so-called Chromium features to be enabled.
See https://chromium.googlesource.com/chromium/src/+/HEAD/docs/configuration.md
disable_features: ListList of so-called Chromium features to be disabled.
enable_logging: Option<String>Logging target to be set for browser.
If not set, logging will be disabled.
If set to “stderr”, logging will be enabled and logs will be printed to stderr.
logging_verbosity: Option<usize>Logging verbosity to be set for browser. Only works when enable_logging is set to “stderr”. 0 - low amount of debug logs (~5 lines per sec), 1 - fairly high amount of debug logs (~100 per sec), 2 - very high amount of logs. 3 - very very high amount.
disable_backgrounding_occluded_windows: SwitchWhether to disable backgrounding occluded windows.
If set to On, browser will not be able to run in background.
disable_web_security: SwitchWhether to disable web security.
If set to On, some security features will be disabled, like CORS.
flag_switches_begin: SwitchThis switch is used to mark the beginning of a series of flag switches.
It is used to mark the beginning of a series of flag switches. ** The switch MUST be set in correct order: flag_switches_begin must be set before flag_switches_end, and there must be ONLY flag switches between them **
See https://chromium.googlesource.com/chromium/src/+/HEAD/docs/configuration.md
disable_site_isolation_trials: SwitchWhether to disable site isolation trials.
Trials are experiments that are launched by Google to test new
features. If set to On, site isolation trial will be disabled. This
affects web security.
flag_switches_end: SwitchThis switch is used to mark the end of a series of flag switches.
It is used to mark the end of a series of flag switches. ** The switch MUST be set in correct order: flag_switches_begin must be set before flag_switches_end, and there must be ONLY flag switches between them **
See https://chromium.googlesource.com/chromium/src/+/HEAD/docs/configuration.md
down_port: usizePort to be used for our TCP server in browser.
Currently this server is only used for browser shutdown: when someone initiates connection to this server, browser shuts down. In future this server will be used for more things, like window resizing, and this arg will be renamed.
remote_debugging_port: Option<usize>Port to be used for remote debugging.
If not set, remote debugging will be disabled. If set to 0, remote debugging will be enabled on any free port.
remote_allow_origins: Option<String>Origins to be allowed for remote debugging.
If not set, no origins will be allowed for remote debugging. If set to “*”, all origins will be allowed for remote debugging.
enable_blink_features: ListList of Blink (Chrome’s rendering engine) features to be enabled.
disable_field_trial_config: SwitchWhether to disable field trial config.
Field trials are experiments that are launched by Google to test new
features. If set to On, field trials will be disabled.
locale: StringLocale to be used for browser.
If not set, browser will use system locale. Most likely we want to set it to fingerprint locale.
user_agent: Option<String>User agent to be used for browser.
If not set, browser will use default user agent.
headless: Option<String>Whether to run browser in headless mode.
Chrome has two headless modes: old and new.
We want to use new, because it offers more consistent behaviour across
headless and headful mode. To set to new mode, just set this arg to
new.
enable_unsafe_webgpu: SwitchWhether to enable unsafe WebGPU.
WebGPU is a technology that allows to accelerate GPU rendering. We DO NOT KNOW why this flag is used and this is subject to further research.
new_extensions: SwitchThis flags changes browser extension id calculation method. It was used to slowly transfer all browser profiles to new id calculation method.
off_updater: SwitchDisables WebRTC IP updater.
WebRTC is a technology that allows to establish peer-to-peer connections between browsers. IP updater is a service that updates browser’s IP address in WebRTC spoofing according to user’s current IP.
blink_settings: Option<String>Blink settings to be used for browser.
Blink is Chrome’s rendering engine.
disable_webgl: SwitchDisables WebGL completely.
WebGL is a JavaScript API for rendering interactive 2D and 3D graphics. We want to disable it if WebGL spoof is set to disabled.
disable_gpu: SwitchDisables GPU acceleration completely.
GPU acceleration is a technology that allows to accelerate GPU rendering. We want to disable it if WebGL is disabled.
proxy_server: Option<String>Proxy server to be used for browser.
If not set, browser will use system proxy settings.
Proxy here must be passed in base64 encoding, where the username and
password are base64-encoded, and sent in “password” field.
proxy_bypass_list: Option<String>List of domains to bypass proxy.
Currently we’re using it to bypass anty-api.com domain from proxy.
This domain is used by our extension to connect to our server, and some
proxies forbid access to our domain.
component_updater: StringComponent updater toggle.
Used for Widevine CDM updater. Must be enabled to enable Widevine.
Implementations§
source§impl Args
impl Args
fn make_enable_features(bp: &BrowserProfileFullData) -> List
fn make_disable_features( bp: &BrowserProfileFullData, request: &StartRequest, config: &BrowserProfileConfig, ) -> List
fn make_proxy_server( request: &StartRequest, bp: &BrowserProfileFullData, ) -> Option<String>
fn make_user_proxy_bypass_list( bp: &BrowserProfileFullData, ) -> Option<Vec<String>>
fn make_proxy_bypass_list( bp: &BrowserProfileFullData, request: &StartRequest, proxy_bypass_domains_list: Option<Vec<String>>, ) -> Option<String>
pub fn new( config: BrowserProfileConfig, bp: BrowserProfileFullData, request: StartRequest, ) -> Self
pub fn output(&self) -> Either<String, Vec<String>>
Auto Trait Implementations§
impl Freeze for Args
impl RefUnwindSafe for Args
impl Send for Args
impl Sync for Args
impl Unpin for Args
impl UnwindSafe for Args
Blanket Implementations§
§impl<T> AnySync for T
impl<T> AnySync for T
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more