mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 18:52:45 +00:00 
			
		
		
		
	 87c4080d00
			
		
	
	
		87c4080d00
		
	
	
	
	
		
			
			We are currently converting parsed expiry times to local time, whereas the RFC dictates we parse them as UTC. When expiring cookies, we must also use the current UTC time to compare against the cookies' expiry times.
		
			
				
	
	
		
			41 lines
		
	
	
	
		
			968 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
	
		
			968 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| /*
 | |
|  * Copyright (c) 2021-2023, Tim Flynn <trflynn89@serenityos.org>
 | |
|  *
 | |
|  * SPDX-License-Identifier: BSD-2-Clause
 | |
|  */
 | |
| 
 | |
| #pragma once
 | |
| 
 | |
| #include <AK/DeprecatedString.h>
 | |
| #include <AK/Optional.h>
 | |
| #include <AK/Time.h>
 | |
| #include <LibIPC/Forward.h>
 | |
| #include <LibWeb/Cookie/Cookie.h>
 | |
| 
 | |
| namespace Web::Cookie {
 | |
| 
 | |
| struct ParsedCookie {
 | |
|     DeprecatedString name;
 | |
|     DeprecatedString value;
 | |
|     SameSite same_site_attribute { SameSite::Default };
 | |
|     Optional<Time> expiry_time_from_expires_attribute {};
 | |
|     Optional<Time> expiry_time_from_max_age_attribute {};
 | |
|     Optional<DeprecatedString> domain {};
 | |
|     Optional<DeprecatedString> path {};
 | |
|     bool secure_attribute_present { false };
 | |
|     bool http_only_attribute_present { false };
 | |
| };
 | |
| 
 | |
| Optional<ParsedCookie> parse_cookie(DeprecatedString const& cookie_string);
 | |
| 
 | |
| }
 | |
| 
 | |
| namespace IPC {
 | |
| 
 | |
| template<>
 | |
| ErrorOr<void> encode(Encoder&, Web::Cookie::ParsedCookie const&);
 | |
| 
 | |
| template<>
 | |
| ErrorOr<Web::Cookie::ParsedCookie> decode(Decoder&);
 | |
| 
 | |
| }
 |