1
0
Fork 0
mirror of https://github.com/LadybirdBrowser/ladybird.git synced 2025-06-08 05:27:14 +09:00
ladybird/Libraries/LibWeb/WebDriver/UserPrompt.h
Timothy Flynn 004173f88b LibWeb: Allow parsing of "file" prompt types in WebDriver
See: 3055808

This isn't actually used outside of BiDi.
2025-04-01 03:52:02 +02:00

73 lines
1.7 KiB
C++

/*
* Copyright (c) 2025, Tim Flynn <trflynn89@ladybird.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <AK/HashMap.h>
#include <AK/JsonValue.h>
#include <AK/Optional.h>
#include <AK/StringView.h>
#include <LibIPC/Forward.h>
#include <LibWeb/WebDriver/Response.h>
namespace Web::WebDriver {
// https://w3c.github.io/webdriver/#dfn-known-prompt-handlers
enum class PromptHandler {
Accept,
Dismiss,
Ignore,
};
// https://w3c.github.io/webdriver/#dfn-valid-prompt-types
enum class PromptType {
Alert,
BeforeUnload,
Confirm,
Default,
File,
Prompt,
FallbackDefault,
};
// https://w3c.github.io/webdriver/#dfn-prompt-handler-configuration
struct PromptHandlerConfiguration {
enum class Notify {
No,
Yes,
};
static PromptHandlerConfiguration deserialize(JsonValue const&);
StringView serialize() const;
bool operator==(PromptHandlerConfiguration const&) const = default;
PromptHandler handler { PromptHandler::Dismiss };
Notify notify { Notify::Yes };
};
// https://w3c.github.io/webdriver/#dfn-user-prompt-handler
using UserPromptHandler = Optional<HashMap<PromptType, PromptHandlerConfiguration>>;
UserPromptHandler const& user_prompt_handler();
void set_user_prompt_handler(UserPromptHandler);
Response deserialize_as_an_unhandled_prompt_behavior(JsonValue);
bool check_user_prompt_handler_matches(JsonObject const&);
void update_the_user_prompt_handler(JsonObject const&);
JsonValue serialize_the_user_prompt_handler();
}
namespace IPC {
template<>
ErrorOr<void> encode(Encoder&, Web::WebDriver::PromptHandlerConfiguration const&);
template<>
ErrorOr<Web::WebDriver::PromptHandlerConfiguration> decode(Decoder&);
}