mirror of
https://github.com/fergalmoran/ladybird.git
synced 2026-01-04 07:36:50 +00:00
LibWeb: Implement StorageKey and related AOs from Storage specification
This commit is contained in:
committed by
Tim Ledbetter
parent
1d43d5b086
commit
f0270b92f1
34
Userland/Libraries/LibWeb/StorageAPI/StorageKey.h
Normal file
34
Userland/Libraries/LibWeb/StorageAPI/StorageKey.h
Normal file
@@ -0,0 +1,34 @@
|
||||
/*
|
||||
* Copyright (c) 2024, Andrew Kaster <andrew@ladybird.org>
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <AK/Optional.h>
|
||||
#include <LibWeb/Forward.h>
|
||||
#include <LibWeb/HTML/Origin.h>
|
||||
|
||||
namespace Web::StorageAPI {
|
||||
|
||||
// https://storage.spec.whatwg.org/#storage-keys
|
||||
struct StorageKey {
|
||||
|
||||
// A storage key is a tuple consisting of an origin (an origin). [HTML]
|
||||
// NOTE: This is expected to change; see Client-Side Storage Partitioning https://privacycg.github.io/storage-partitioning/.
|
||||
HTML::Origin origin;
|
||||
|
||||
friend bool operator==(StorageKey const& a, StorageKey const& b)
|
||||
{
|
||||
// To determine whether a storage key A equals storage key B, run these steps:
|
||||
// 1. If A’s origin is not same origin with B’s origin, then return false.
|
||||
// 2. Return true.
|
||||
return a.origin.is_same_origin(b.origin);
|
||||
}
|
||||
};
|
||||
|
||||
Optional<StorageKey> obtain_a_storage_key(HTML::Environment const&);
|
||||
StorageKey obtain_a_storage_key_for_non_storage_purposes(HTML::Environment const&);
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user