From a8cef1fa06624ea215bded432c60925716135b2c Mon Sep 17 00:00:00 2001 From: Kenneth Myhra Date: Thu, 23 Feb 2023 18:58:56 +0100 Subject: [PATCH] LibWeb: Port Crypto to new String --- Userland/Libraries/LibWeb/Crypto/Crypto.cpp | 16 +++++++++------- Userland/Libraries/LibWeb/Crypto/Crypto.h | 2 +- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/Userland/Libraries/LibWeb/Crypto/Crypto.cpp b/Userland/Libraries/LibWeb/Crypto/Crypto.cpp index 7797876daf..139c6bf2ed 100644 --- a/Userland/Libraries/LibWeb/Crypto/Crypto.cpp +++ b/Userland/Libraries/LibWeb/Crypto/Crypto.cpp @@ -68,8 +68,10 @@ WebIDL::ExceptionOr Crypto::get_random_values(JS::Value array) const } // https://w3c.github.io/webcrypto/#dfn-Crypto-method-randomUUID -DeprecatedString Crypto::random_uuid() const +WebIDL::ExceptionOr Crypto::random_uuid() const { + auto& vm = realm().vm(); + // 1. Let bytes be a byte sequence of length 16. u8 bytes[16]; @@ -111,12 +113,12 @@ DeprecatedString Crypto::random_uuid() const ยป. */ StringBuilder builder; - builder.appendff("{:02x}{:02x}{:02x}{:02x}-", bytes[0], bytes[1], bytes[2], bytes[3]); - builder.appendff("{:02x}{:02x}-", bytes[4], bytes[5]); - builder.appendff("{:02x}{:02x}-", bytes[6], bytes[7]); - builder.appendff("{:02x}{:02x}-", bytes[8], bytes[9]); - builder.appendff("{:02x}{:02x}{:02x}{:02x}{:02x}{:02x}", bytes[10], bytes[11], bytes[12], bytes[13], bytes[14], bytes[15]); - return builder.to_deprecated_string(); + TRY_OR_THROW_OOM(vm, builder.try_appendff("{:02x}{:02x}{:02x}{:02x}-", bytes[0], bytes[1], bytes[2], bytes[3])); + TRY_OR_THROW_OOM(vm, builder.try_appendff("{:02x}{:02x}-", bytes[4], bytes[5])); + TRY_OR_THROW_OOM(vm, builder.try_appendff("{:02x}{:02x}-", bytes[6], bytes[7])); + TRY_OR_THROW_OOM(vm, builder.try_appendff("{:02x}{:02x}-", bytes[8], bytes[9])); + TRY_OR_THROW_OOM(vm, builder.try_appendff("{:02x}{:02x}{:02x}{:02x}{:02x}{:02x}", bytes[10], bytes[11], bytes[12], bytes[13], bytes[14], bytes[15])); + return TRY_OR_THROW_OOM(vm, builder.to_string()); } void Crypto::visit_edges(Cell::Visitor& visitor) diff --git a/Userland/Libraries/LibWeb/Crypto/Crypto.h b/Userland/Libraries/LibWeb/Crypto/Crypto.h index 7811736aaa..bbef73827e 100644 --- a/Userland/Libraries/LibWeb/Crypto/Crypto.h +++ b/Userland/Libraries/LibWeb/Crypto/Crypto.h @@ -23,7 +23,7 @@ public: JS::NonnullGCPtr subtle() const; WebIDL::ExceptionOr get_random_values(JS::Value array) const; - DeprecatedString random_uuid() const; + WebIDL::ExceptionOr random_uuid() const; protected: virtual JS::ThrowCompletionOr initialize(JS::Realm&) override;