Files
lserp_cs_5.0/插件库/Cef3.24/Structs/CefRequestContextSettings.cs
T
2026-07-10 15:25:05 +08:00

77 lines
3.5 KiB
C#

namespace Cef3
{
using System;
using System.Collections.Generic;
using System.Text;
using Cef3.Interop;
/// <summary>
/// Request context initialization settings. Specify NULL or 0 to get the
/// recommended default values.
/// </summary>
public sealed class CefRequestContextSettings
{
/// <summary>
/// The location where cache data will be stored on disk. If empty then
/// browsers will be created in "incognito mode" where in-memory caches are
/// used for storage and no data is persisted to disk. HTML5 databases such as
/// localStorage will only persist across sessions if a cache path is
/// specified. To share the global browser cache and related configuration set
/// this value to match the CefSettings.cache_path value.
/// </summary>
public string CachePath { get; set; }
/// <summary>
/// To persist session cookies (cookies without an expiry date or validity
/// interval) by default when using the global cookie manager set this value to
/// true. Session cookies are generally intended to be transient and most Web
/// browsers do not persist them. Can be set globally using the
/// CefSettings.persist_session_cookies value. This value will be ignored if
/// |cache_path| is empty or if it matches the CefSettings.cache_path value.
/// </summary>
public bool PersistSessionCookies { get; set; }
/// <summary>
/// Set to true (1) to ignore errors related to invalid SSL certificates.
/// Enabling this setting can lead to potential security vulnerabilities like
/// "man in the middle" attacks. Applications that load content from the
/// internet should not enable this setting. Can be set globally using the
/// CefSettings.ignore_certificate_errors value. This value will be ignored if
/// |cache_path| matches the CefSettings.cache_path value.
/// </summary>
public bool IgnoreCertificateErrors { get; set; }
/// <summary>
/// Comma delimited ordered list of language codes without any whitespace that
/// will be used in the "Accept-Language" HTTP header. Can be set globally
/// using the CefSettings.accept_language_list value or overridden on a per-
/// browser basis using the CefBrowserSettings.accept_language_list value. If
/// all values are empty then "en-US,en" will be used. This value will be
/// ignored if |cache_path| matches the CefSettings.cache_path value.
/// </summary>
public string AcceptLanguageList { get; set; }
internal unsafe cef_request_context_settings_t* ToNative()
{
var ptr = cef_request_context_settings_t.Alloc();
cef_string_t.Copy(CachePath, &ptr->cache_path);
ptr->persist_session_cookies = PersistSessionCookies ? 1 : 0;
ptr->ignore_certificate_errors = IgnoreCertificateErrors ? 1 : 0;
cef_string_t.Copy(CachePath, &ptr->accept_language_list);
return ptr;
}
private static unsafe void Clear(cef_request_context_settings_t* ptr)
{
libcef.string_clear(&ptr->cache_path);
libcef.string_clear(&ptr->accept_language_list);
}
internal static unsafe void Free(cef_request_context_settings_t* ptr)
{
Clear(ptr);
cef_request_context_settings_t.Free(ptr);
}
}
}