script: Implement QuotaExceededError WebIDL interface (#38507)

Implements the new WebIDL interface for QuotaExceededError and uses it
in appropriate places.

Testing: WPT tests. Now passing many more in
`tests/wpt/tests/WebCryptoAPI/getRandomValues.any.js` and
`tests/wpt/tests/webstorage/storage_session_setitem_quotaexceedederr.window.js`.
Fixes: #38489

---------

Signed-off-by: Rahul Menon <menonrahul02@gmail.com>
This commit is contained in:
Rahul Menon 2025-08-14 12:58:50 -05:00 committed by GitHub
parent fad247c802
commit b5932e5abf
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
14 changed files with 173 additions and 67 deletions

View file

@ -63,7 +63,10 @@ impl CryptoMethods<crate::DomTypeHolder> for Crypto {
} else {
let data = unsafe { input.as_mut_slice() };
if data.len() > 65536 {
return Err(Error::QuotaExceeded);
return Err(Error::QuotaExceeded {
quota: None,
requested: None,
});
}
self.rng.borrow_mut().fill_bytes(data);
let underlying_object = unsafe { input.underlying_object() };