mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-07-23 01:12:45 +00:00
This adds a command line option to enable the DevTools server. Here, we make the application the DevToolsDelegate to reply to requests from the DevTools server about the state of the application.
146 lines
3 KiB
C++
146 lines
3 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 {} };
|
|
Optional<u16> devtools_port;
|
|
};
|
|
|
|
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,
|
|
};
|
|
|
|
enum class IsHeadless {
|
|
No,
|
|
Yes,
|
|
};
|
|
|
|
enum class PaintViewportScrollbars {
|
|
Yes,
|
|
No,
|
|
};
|
|
|
|
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 };
|
|
Optional<u16> echo_server_port {};
|
|
IsHeadless is_headless { IsHeadless::No };
|
|
PaintViewportScrollbars paint_viewport_scrollbars { PaintViewportScrollbars::Yes };
|
|
};
|
|
|
|
}
|