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

@ -127,7 +127,10 @@ impl StorageMethods<crate::DomTypeHolder> for Storage {
);
self.get_storage_thread().send(msg).unwrap();
match receiver.recv().unwrap() {
Err(_) => Err(Error::QuotaExceeded),
Err(_) => Err(Error::QuotaExceeded {
quota: None,
requested: None,
}),
Ok((changed, old_value)) => {
if changed {
self.broadcast_change_notification(Some(name), old_value, Some(value));