ladybird/Userland/Libraries/LibWeb/HTML/POSTResource.h
Timothy Flynn b16b9709b9 LibWeb: Include the Content-Type boundary directive in form submissions
The spec requires that "multipart/form-data" Content-Type headers also
include a boundary directive. This allows the content server to validate
the submitted form data.

Google Lens, for example, rejects forms missing this directive.
2024-08-22 14:21:13 +02:00

40 lines
1.1 KiB
C++

/*
* Copyright (c) 2022, Andreas Kling <kling@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <AK/ByteBuffer.h>
#include <AK/String.h>
#include <AK/StringView.h>
#include <AK/Vector.h>
namespace Web::HTML {
// https://html.spec.whatwg.org/multipage/browsing-the-web.html#post-resource
struct POSTResource {
// https://html.spec.whatwg.org/multipage/browsing-the-web.html#post-resource-request-body
// A request body, a byte sequence or failure.
// FIXME: Change type to hold failure state.
Optional<ByteBuffer> request_body;
enum class RequestContentType {
ApplicationXWWWFormUrlencoded,
MultipartFormData,
TextPlain,
};
// https://html.spec.whatwg.org/multipage/browsing-the-web.html#post-resource-request-content-type
// A request content-type, which is `application/x-www-form-urlencoded`, `multipart/form-data`, or `text/plain`.
RequestContentType request_content_type {};
struct Directive {
StringView type;
String value;
};
Vector<Directive> request_content_type_directives {};
};
}