Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/cef/cef_app.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ int jfn_cef_start(int argc, char* argv[]);
void jfn_cef_set_log_severity(int severity);
void jfn_cef_set_remote_debugging_port(int port);
void jfn_cef_set_disable_gpu_compositing(bool disable);
void jfn_cef_set_ignore_certificate_errors(bool ignore);
#ifdef __linux__
void jfn_cef_set_ozone_platform(const char* platform_utf8);
#endif
Expand Down
2 changes: 2 additions & 0 deletions src/config/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -57,12 +57,14 @@ bool jfn_settings_get_disable_gpu_compositing(void);
bool jfn_settings_get_titlebar_theme_color(void);
bool jfn_settings_get_transparent_titlebar(void);
bool jfn_settings_get_force_transcoding(void);
bool jfn_settings_get_ignore_ssl_errors(void);

void jfn_settings_set_audio_exclusive(bool v);
void jfn_settings_set_disable_gpu_compositing(bool v);
void jfn_settings_set_titlebar_theme_color(bool v);
void jfn_settings_set_transparent_titlebar(bool v);
void jfn_settings_set_force_transcoding(bool v);
void jfn_settings_set_ignore_ssl_errors(bool v);

void jfn_settings_get_window_geometry(JfnWindowGeometry* out);
void jfn_settings_set_window_geometry(const JfnWindowGeometry* in_);
Expand Down
10 changes: 10 additions & 0 deletions src/config/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ struct SettingsData {
titlebar_theme_color: bool,
transparent_titlebar: bool,
force_transcoding: bool,
ignore_ssl_errors: bool,
}

impl Default for SettingsData {
Expand All @@ -77,6 +78,7 @@ impl Default for SettingsData {
titlebar_theme_color: true,
transparent_titlebar: true,
force_transcoding: false,
ignore_ssl_errors: false,
}
}
}
Expand Down Expand Up @@ -147,6 +149,9 @@ impl SettingsData {
if let Some(b) = v.get("forceTranscoding").and_then(Value::as_bool) {
self.force_transcoding = b;
}
if let Some(b) = v.get("ignoreSslErrors").and_then(Value::as_bool) {
self.ignore_ssl_errors = b;
}
}

fn to_json(&self) -> Value {
Expand Down Expand Up @@ -207,6 +212,9 @@ impl SettingsData {
if self.force_transcoding {
o.insert("forceTranscoding".into(), Value::Bool(true));
}
if self.ignore_ssl_errors {
o.insert("ignoreSslErrors".into(), Value::Bool(true));
}
if !self.device_name.is_empty() {
o.insert("deviceName".into(), Value::String(self.device_name.clone()));
}
Expand Down Expand Up @@ -591,6 +599,8 @@ bool_getter!(jfn_settings_get_transparent_titlebar, transparent_titlebar);
bool_setter!(jfn_settings_set_transparent_titlebar, transparent_titlebar);
bool_getter!(jfn_settings_get_force_transcoding, force_transcoding);
bool_setter!(jfn_settings_set_force_transcoding, force_transcoding);
bool_getter!(jfn_settings_get_ignore_ssl_errors, ignore_ssl_errors);
bool_setter!(jfn_settings_set_ignore_ssl_errors, ignore_ssl_errors);

/// Copy the window geometry into `out`.
///
Expand Down
12 changes: 12 additions & 0 deletions src/jfn_cef/src/ffi.rs
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,18 @@ pub extern "C" fn jfn_cef_set_disable_gpu_compositing(disable: bool) {
}
}

#[unsafe(no_mangle)]
pub extern "C" fn jfn_cef_set_ignore_certificate_errors(ignore: bool) {
if ignore {
state::with_config(|c| {
c.pending_switches.push(state::PendingSwitch {
name: "ignore-certificate-errors".to_string(),
value: None,
});
});
}
}

/// Linux only — Ozone platform selection. `platform_utf8` may be null or
/// empty (no-op). When set to "wayland", also disables the fractional-scale
/// protocol so OSR's GetScreenInfo device_scale_factor is honored.
Expand Down
1 change: 1 addition & 0 deletions src/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,7 @@ static int run_with_cef(int mw, int mh,
jfn_cef_set_log_severity(static_cast<int>(toCefSeverity(effectiveLogLevel(LOG_CEF))));
jfn_cef_set_remote_debugging_port(args.remote_debugging_port);
jfn_cef_set_disable_gpu_compositing(!use_shared_textures);
jfn_cef_set_ignore_certificate_errors(Settings::instance().ignoreSslErrors());
#ifdef __linux__
if (!ozone_platform.empty())
jfn_cef_set_ozone_platform(ozone_platform.c_str());
Expand Down
3 changes: 3 additions & 0 deletions src/settings.h
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,9 @@ class Settings {
bool forceTranscoding() const { return jfn_settings_get_force_transcoding(); }
void setForceTranscoding(bool v) { jfn_settings_set_force_transcoding(v); }

bool ignoreSslErrors() const { return jfn_settings_get_ignore_ssl_errors(); }
void setIgnoreSslErrors(bool v) { jfn_settings_set_ignore_ssl_errors(v); }

std::string deviceName() const { return takeString(jfn_settings_get_device_name()); }
void setDeviceName(const std::string& v) {
jfn_settings_set_device_name(v.c_str(), platformDeviceName().c_str());
Expand Down