Chrome 129
Some checks failed
CI / CI is green (push) Has been cancelled
CI / Check Style (push) Has been cancelled
CI / feat.: blocking (push) Has been cancelled
CI / windows / stable-i686-gnu (push) Has been cancelled
CI / windows / stable-i686-msvc (push) Has been cancelled
CI / windows / stable-x86_64-gnu (push) Has been cancelled
CI / windows / stable-x86_64-msvc (push) Has been cancelled
CI / feat.: brotli (push) Has been cancelled
CI / feat.: cookies (push) Has been cancelled
CI / feat.: deflate (push) Has been cancelled
CI / feat.: gzip (push) Has been cancelled
CI / feat.: json (push) Has been cancelled
CI / feat.: multipart (push) Has been cancelled
CI / feat.: native-tls (push) Has been cancelled
CI / feat.: default-tls and rustls-tls (push) Has been cancelled
CI / feat.: socks/default-tls (push) Has been cancelled
CI / feat.: socks/rustls-tls (push) Has been cancelled
CI / feat.: stream (push) Has been cancelled
CI / feat.: trust-dns (push) Has been cancelled
CI / feat.: rustls-tls (push) Has been cancelled
CI / feat.: rustls-tls-manual-roots (push) Has been cancelled
CI / feat.: default-tls disabled (push) Has been cancelled
CI / linux / beta (push) Has been cancelled
CI / linux / stable (push) Has been cancelled
CI / macOS / stable (push) Has been cancelled
CI / Docs (push) Has been cancelled
CI / linux / nightly (push) Has been cancelled
CI / MSRV 1.57.0 (push) Has been cancelled
CI / Android (push) Has been cancelled
CI / WASM (push) Has been cancelled

Signed-off-by: Matthew Ransley <matthewransley5@gmail.com>
This commit is contained in:
Matthew Ransley
2024-10-24 19:35:59 +01:00
parent 08d5048e5b
commit bb34f72c2f
3 changed files with 88 additions and 0 deletions

View File

@@ -29,4 +29,5 @@ pub enum ChromeVersion {
V106,
V108,
V114,
V129
}

View File

@@ -7,6 +7,7 @@ mod v105;
mod v106;
mod v108;
mod v114;
mod v129;
pub(super) fn get_config_from_ver(ver: ChromeVersion) -> BrowserSettings {
match ver {
@@ -15,5 +16,6 @@ pub(super) fn get_config_from_ver(ver: ChromeVersion) -> BrowserSettings {
ChromeVersion::V106 => v106::get_settings(),
ChromeVersion::V108 => v108::get_settings(),
ChromeVersion::V114 => v114::get_settings(),
ChromeVersion::V129 => v129::get_settings(),
}
}

View File

@@ -0,0 +1,85 @@
use boring::ssl::{
CertCompressionAlgorithm, SslConnector, SslConnectorBuilder, SslMethod, SslVersion,
SslVerifyMode,
};
use http::{
header::{ACCEPT, ACCEPT_ENCODING, ACCEPT_LANGUAGE, UPGRADE_INSECURE_REQUESTS, USER_AGENT},
HeaderMap, HeaderValue,
};
use std::sync::Arc;
use crate::browser::{BrowserSettings, Http2Data};
pub(super) fn get_settings() -> BrowserSettings {
BrowserSettings {
tls_builder_func: Arc::new(create_ssl_connector),
http2: Http2Data {
initial_stream_window_size: 6291456,
initial_connection_window_size: 15728640,
max_concurrent_streams: 1000,
max_header_list_size: 262144,
header_table_size: 65536,
enable_push: Some(false),
},
headers: create_headers(),
gzip: true,
brotli: true,
}
}
fn create_ssl_connector() -> SslConnectorBuilder {
let mut builder = SslConnector::builder(SslMethod::tls()).unwrap();
builder.set_grease_enabled(true);
builder.enable_ocsp_stapling();
builder.set_verify(SslVerifyMode::NONE);
let cipher_list = [
"TLS_AES_128_GCM_SHA256",
"TLS_AES_256_GCM_SHA384",
"TLS_CHACHA20_POLY1305_SHA256",
"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256",
"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256",
"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA",
"TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA",
"TLS_RSA_WITH_AES_128_GCM_SHA256",
"TLS_RSA_WITH_AES_256_GCM_SHA384",
"TLS_RSA_WITH_AES_128_CBC_SHA",
"TLS_RSA_WITH_AES_256_CBC_SHA",
];
builder.set_cipher_list(&cipher_list.join(":")).unwrap();
let sigalgs_list = [
"ecdsa_secp256r1_sha256",
"rsa_pss_rsae_sha256",
"rsa_pkcs1_sha256",
"ecdsa_secp384r1_sha384",
"rsa_pss_rsae_sha384",
"rsa_pkcs1_sha384",
"rsa_pss_rsae_sha512",
"rsa_pkcs1_sha512",
];
builder.set_sigalgs_list(&sigalgs_list.join(":")).unwrap();
builder.set_alpn_protos(b"\x02h2\x08http/1.1").unwrap();
builder.add_cert_compression_alg(CertCompressionAlgorithm::Brotli).unwrap();
builder.enable_signed_cert_timestamps();
builder.set_min_proto_version(Some(SslVersion::TLS1_2)).unwrap();
builder.set_max_proto_version(Some(SslVersion::TLS1_3)).unwrap();
builder
}
fn create_headers() -> HeaderMap {
let mut headers = HeaderMap::new();
headers
}