From e0f9ed01c7024f16a24d90193f89a5a1cfe50902 Mon Sep 17 00:00:00 2001 From: Timothy Flynn Date: Sun, 11 Apr 2021 23:49:33 -0400 Subject: Browser: Process Secure and HttpOnly cookie attributes --- Userland/Applications/Browser/CookieJar.cpp | 10 ++++++---- Userland/Applications/Browser/CookieJar.h | 6 ++++-- 2 files changed, 10 insertions(+), 6 deletions(-) (limited to 'Userland/Applications/Browser') diff --git a/Userland/Applications/Browser/CookieJar.cpp b/Userland/Applications/Browser/CookieJar.cpp index e30917fc0a..0a83b6d214 100644 --- a/Userland/Applications/Browser/CookieJar.cpp +++ b/Userland/Applications/Browser/CookieJar.cpp @@ -221,9 +221,9 @@ void CookieJar::process_attribute(Cookie& cookie, StringView attribute_name, Str } else if (attribute_name.equals_ignoring_case("Path")) { on_path_attribute(cookie, attribute_value); } else if (attribute_name.equals_ignoring_case("Secure")) { - on_secure_attribute(cookie, attribute_value); + on_secure_attribute(cookie); } else if (attribute_name.equals_ignoring_case("HttpOnly")) { - on_http_only_attribute(cookie, attribute_value); + on_http_only_attribute(cookie); } } @@ -291,14 +291,16 @@ void CookieJar::on_path_attribute(Cookie& cookie, StringView attribute_value) cookie.path = attribute_value; } -void CookieJar::on_secure_attribute([[maybe_unused]] Cookie& cookie, [[maybe_unused]] StringView attribute_value) +void CookieJar::on_secure_attribute(Cookie& cookie) { // https://tools.ietf.org/html/rfc6265#section-5.2.5 + cookie.secure = true; } -void CookieJar::on_http_only_attribute([[maybe_unused]] Cookie& cookie, [[maybe_unused]] StringView attribute_value) +void CookieJar::on_http_only_attribute(Cookie& cookie) { // https://tools.ietf.org/html/rfc6265#section-5.2.6 + cookie.http_only = true; } } diff --git a/Userland/Applications/Browser/CookieJar.h b/Userland/Applications/Browser/CookieJar.h index 7e2463fb68..b397aed828 100644 --- a/Userland/Applications/Browser/CookieJar.h +++ b/Userland/Applications/Browser/CookieJar.h @@ -40,6 +40,8 @@ struct Cookie { Core::DateTime expiry_time {}; String domain {}; String path {}; + bool secure { false }; + bool http_only { false }; }; class CookieJar { @@ -57,8 +59,8 @@ private: static void on_max_age_attribute(Cookie& cookie, StringView attribute_value); static void on_domain_attribute(Cookie& cookie, StringView attribute_value); static void on_path_attribute(Cookie& cookie, StringView attribute_value); - static void on_secure_attribute(Cookie& cookie, StringView attribute_value); - static void on_http_only_attribute(Cookie& cookie, StringView attribute_value); + static void on_secure_attribute(Cookie& cookie); + static void on_http_only_attribute(Cookie& cookie); HashMap> m_cookies; }; -- cgit v1.2.3