1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 15:47:44 +00:00

LibWeb: Make factory method of HTML::Storage fallible

This commit is contained in:
Kenneth Myhra 2023-02-15 19:57:02 +01:00 committed by Linus Groh
parent d7ee378018
commit b41401bab2
3 changed files with 5 additions and 5 deletions

View file

@ -10,9 +10,9 @@
namespace Web::HTML { namespace Web::HTML {
JS::NonnullGCPtr<Storage> Storage::create(JS::Realm& realm) WebIDL::ExceptionOr<JS::NonnullGCPtr<Storage>> Storage::create(JS::Realm& realm)
{ {
return realm.heap().allocate<Storage>(realm, realm).release_allocated_value_but_fixme_should_propagate_errors(); return MUST_OR_THROW_OOM(realm.heap().allocate<Storage>(realm, realm));
} }
Storage::Storage(JS::Realm& realm) Storage::Storage(JS::Realm& realm)

View file

@ -16,7 +16,7 @@ class Storage : public Bindings::PlatformObject {
WEB_PLATFORM_OBJECT(Storage, Bindings::PlatformObject); WEB_PLATFORM_OBJECT(Storage, Bindings::PlatformObject);
public: public:
static JS::NonnullGCPtr<Storage> create(JS::Realm&); static WebIDL::ExceptionOr<JS::NonnullGCPtr<Storage>> create(JS::Realm&);
~Storage(); ~Storage();
size_t length() const; size_t length() const;

View file

@ -864,7 +864,7 @@ JS::NonnullGCPtr<HTML::Storage> Window::local_storage()
static HashMap<Origin, JS::Handle<HTML::Storage>> local_storage_per_origin; static HashMap<Origin, JS::Handle<HTML::Storage>> local_storage_per_origin;
auto storage = local_storage_per_origin.ensure(associated_document().origin(), [this]() -> JS::Handle<HTML::Storage> { auto storage = local_storage_per_origin.ensure(associated_document().origin(), [this]() -> JS::Handle<HTML::Storage> {
return *HTML::Storage::create(realm()); return *HTML::Storage::create(realm()).release_value_but_fixme_should_propagate_errors();
}); });
return *storage; return *storage;
} }
@ -876,7 +876,7 @@ JS::NonnullGCPtr<HTML::Storage> Window::session_storage()
static HashMap<Origin, JS::Handle<HTML::Storage>> session_storage_per_origin; static HashMap<Origin, JS::Handle<HTML::Storage>> session_storage_per_origin;
auto storage = session_storage_per_origin.ensure(associated_document().origin(), [this]() -> JS::Handle<HTML::Storage> { auto storage = session_storage_per_origin.ensure(associated_document().origin(), [this]() -> JS::Handle<HTML::Storage> {
return *HTML::Storage::create(realm()); return *HTML::Storage::create(realm()).release_value_but_fixme_should_propagate_errors();
}); });
return *storage; return *storage;
} }