diff options
author | Timothy Flynn <trflynn89@pm.me> | 2021-04-11 23:49:33 -0400 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2021-04-12 08:57:44 +0200 |
commit | e0f9ed01c7024f16a24d90193f89a5a1cfe50902 (patch) | |
tree | 0c2051ace121a3324e4e67a2bac528badc1de61c /Userland/Applications/Browser | |
parent | db2418630990343a3ea48841fd95b05379ffd8e9 (diff) | |
download | serenity-e0f9ed01c7024f16a24d90193f89a5a1cfe50902.zip |
Browser: Process Secure and HttpOnly cookie attributes
Diffstat (limited to 'Userland/Applications/Browser')
-rw-r--r-- | Userland/Applications/Browser/CookieJar.cpp | 10 | ||||
-rw-r--r-- | Userland/Applications/Browser/CookieJar.h | 6 |
2 files changed, 10 insertions, 6 deletions
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<String, Vector<Cookie>> m_cookies; }; |