mirror of
https://github.com/SerenityOS/serenity
synced 2026-05-06 07:02:26 +02:00
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. (cherry picked from commit b16b9709b99c51d288d1e514c3c0012c79ea16d2)
41 lines
1.1 KiB
C++
41 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 {};
|
|
};
|
|
|
|
}
|