summaryrefslogtreecommitdiff
path: root/Userland/Applications/Browser
diff options
context:
space:
mode:
authorTimothy Flynn <trflynn89@pm.me>2021-04-11 23:49:33 -0400
committerAndreas Kling <kling@serenityos.org>2021-04-12 08:57:44 +0200
commite0f9ed01c7024f16a24d90193f89a5a1cfe50902 (patch)
tree0c2051ace121a3324e4e67a2bac528badc1de61c /Userland/Applications/Browser
parentdb2418630990343a3ea48841fd95b05379ffd8e9 (diff)
downloadserenity-e0f9ed01c7024f16a24d90193f89a5a1cfe50902.zip
Browser: Process Secure and HttpOnly cookie attributes
Diffstat (limited to 'Userland/Applications/Browser')
-rw-r--r--Userland/Applications/Browser/CookieJar.cpp10
-rw-r--r--Userland/Applications/Browser/CookieJar.h6
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;
};