mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-27 18:10:24 +00:00
7e20f4726f
This commit adds our own DNS resolver, with the aim of implementing DoT (and eventually DoH, maybe even DNSSEC etc.)
132 lines
2.7 KiB
C++
132 lines
2.7 KiB
C++
/*
|
|
* Copyright (c) 2023, Andrew Kaster <akaster@serenityos.org>
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <AK/ByteString.h>
|
|
#include <AK/Optional.h>
|
|
#include <AK/String.h>
|
|
#include <AK/Vector.h>
|
|
#include <LibURL/URL.h>
|
|
#include <LibWebView/ProcessType.h>
|
|
|
|
namespace WebView {
|
|
|
|
enum class NewWindow {
|
|
No,
|
|
Yes,
|
|
};
|
|
|
|
enum class ForceNewProcess {
|
|
No,
|
|
Yes,
|
|
};
|
|
|
|
enum class AllowPopups {
|
|
No,
|
|
Yes,
|
|
};
|
|
|
|
enum class DisableScripting {
|
|
No,
|
|
Yes,
|
|
};
|
|
|
|
enum class DisableSQLDatabase {
|
|
No,
|
|
Yes,
|
|
};
|
|
|
|
enum class EnableAutoplay {
|
|
No,
|
|
Yes,
|
|
};
|
|
|
|
struct SystemDNS { };
|
|
struct DNSOverTLS {
|
|
ByteString server_address;
|
|
u16 port;
|
|
};
|
|
struct DNSOverUDP {
|
|
ByteString server_address;
|
|
u16 port;
|
|
};
|
|
|
|
using DNSSettings = Variant<SystemDNS, DNSOverTLS, DNSOverUDP>;
|
|
|
|
struct ChromeOptions {
|
|
Vector<URL::URL> urls;
|
|
Vector<ByteString> raw_urls;
|
|
URL::URL new_tab_page_url;
|
|
Vector<ByteString> certificates {};
|
|
NewWindow new_window { NewWindow::No };
|
|
ForceNewProcess force_new_process { ForceNewProcess::No };
|
|
AllowPopups allow_popups { AllowPopups::No };
|
|
DisableScripting disable_scripting { DisableScripting::No };
|
|
DisableSQLDatabase disable_sql_database { DisableSQLDatabase::No };
|
|
Optional<ProcessType> debug_helper_process {};
|
|
Optional<ProcessType> profile_helper_process {};
|
|
Optional<ByteString> webdriver_content_ipc_path {};
|
|
DNSSettings dns_settings { SystemDNS {} };
|
|
};
|
|
|
|
enum class IsLayoutTestMode {
|
|
No,
|
|
Yes,
|
|
};
|
|
|
|
enum class LogAllJSExceptions {
|
|
No,
|
|
Yes,
|
|
};
|
|
|
|
enum class EnableIDLTracing {
|
|
No,
|
|
Yes,
|
|
};
|
|
|
|
enum class EnableHTTPCache {
|
|
No,
|
|
Yes,
|
|
};
|
|
|
|
enum class ExposeInternalsObject {
|
|
No,
|
|
Yes,
|
|
};
|
|
|
|
enum class ForceCPUPainting {
|
|
No,
|
|
Yes,
|
|
};
|
|
|
|
enum class ForceFontconfig {
|
|
No,
|
|
Yes,
|
|
};
|
|
|
|
enum class CollectGarbageOnEveryAllocation {
|
|
No,
|
|
Yes,
|
|
};
|
|
|
|
struct WebContentOptions {
|
|
String command_line;
|
|
String executable_path;
|
|
Optional<ByteString> config_path {};
|
|
Optional<StringView> user_agent_preset {};
|
|
IsLayoutTestMode is_layout_test_mode { IsLayoutTestMode::No };
|
|
LogAllJSExceptions log_all_js_exceptions { LogAllJSExceptions::No };
|
|
EnableIDLTracing enable_idl_tracing { EnableIDLTracing::No };
|
|
EnableHTTPCache enable_http_cache { EnableHTTPCache::No };
|
|
ExposeInternalsObject expose_internals_object { ExposeInternalsObject::No };
|
|
ForceCPUPainting force_cpu_painting { ForceCPUPainting::No };
|
|
ForceFontconfig force_fontconfig { ForceFontconfig::No };
|
|
EnableAutoplay enable_autoplay { EnableAutoplay::No };
|
|
CollectGarbageOnEveryAllocation collect_garbage_on_every_allocation { CollectGarbageOnEveryAllocation::No };
|
|
};
|
|
|
|
}
|