mirror of
https://github.com/LadybirdBrowser/ladybird
synced 2026-04-30 19:47:17 +02:00
Rather than splitting this between Cookie and ParsedCookie, let's just put them all in Cookie. This just makes it more obvious where to put an upcoming helper.
47 lines
1.1 KiB
C++
47 lines
1.1 KiB
C++
/*
|
|
* Copyright (c) 2021-2026, Tim Flynn <trflynn89@ladybird.org>
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <AK/Optional.h>
|
|
#include <AK/String.h>
|
|
#include <AK/Time.h>
|
|
#include <LibIPC/Forward.h>
|
|
#include <LibURL/Forward.h>
|
|
#include <LibWeb/Cookie/Cookie.h>
|
|
#include <LibWeb/Export.h>
|
|
|
|
namespace Web::Cookie {
|
|
|
|
struct ParsedCookie {
|
|
String name;
|
|
String value;
|
|
SameSite same_site_attribute { SameSite::Default };
|
|
Optional<UnixDateTime> expiry_time_from_expires_attribute {};
|
|
Optional<UnixDateTime> expiry_time_from_max_age_attribute {};
|
|
Optional<String> domain {};
|
|
Optional<String> path {};
|
|
bool secure_attribute_present { false };
|
|
bool http_only_attribute_present { false };
|
|
};
|
|
|
|
Optional<ParsedCookie> parse_cookie(URL::URL const&, StringView cookie_string);
|
|
WEB_API bool cookie_contains_invalid_control_character(StringView);
|
|
|
|
constexpr inline AK::Duration maximum_cookie_age = AK::Duration::from_seconds(400LL * 24 * 60 * 60);
|
|
|
|
}
|
|
|
|
namespace IPC {
|
|
|
|
template<>
|
|
WEB_API ErrorOr<void> encode(Encoder&, Web::Cookie::ParsedCookie const&);
|
|
|
|
template<>
|
|
WEB_API ErrorOr<Web::Cookie::ParsedCookie> decode(Decoder&);
|
|
|
|
}
|