Bug 224865 - DOMException should be Serializable
Summary: DOMException should be Serializable
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Bindings (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Chris Lord
URL:
Keywords: InRadar
Depends on:
Blocks: 224178
  Show dependency treegraph
 
Reported: 2021-04-21 03:49 PDT by Chris Lord
Modified: 2021-04-22 18:17 PDT (History)
11 users (show)

See Also:


Attachments
Patch (2.42 KB, patch)
2021-04-21 04:53 PDT, Chris Lord
no flags Details | Formatted Diff | Diff
Patch (8.68 KB, patch)
2021-04-21 05:41 PDT, Chris Lord
no flags Details | Formatted Diff | Diff
Patch (9.60 KB, patch)
2021-04-21 06:33 PDT, Chris Lord
no flags Details | Formatted Diff | Diff
Patch (13.84 KB, patch)
2021-04-21 09:18 PDT, Chris Lord
ews-feeder: commit-queue-
Details | Formatted Diff | Diff
Patch (13.75 KB, patch)
2021-04-21 09:22 PDT, Chris Lord
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Chris Lord 2021-04-21 03:49:35 PDT
According to the spec, DOMException is Serializable, but this isn't currently implemented: https://heycam.github.io/webidl/#dfn-DOMException

This is causing some WPT Worker tests to fail.
Comment 1 Chris Lord 2021-04-21 04:53:49 PDT
Created attachment 426671 [details]
Patch
Comment 2 Chris Lord 2021-04-21 04:56:03 PDT
Uploading the patch to determine if it's already tested (it is tested indirectly in css-font-loading WPT tests, but that relies on bug 224178 and I'd like to check this in before that) - if it isn't, I'll write a test.
Comment 3 Chris Lord 2021-04-21 05:41:21 PDT
Created attachment 426673 [details]
Patch
Comment 4 Chris Lord 2021-04-21 06:33:02 PDT
Created attachment 426676 [details]
Patch
Comment 5 Chris Dumez 2021-04-21 07:36:08 PDT
Comment on attachment 426676 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=426676&action=review

r=me with comments.

> Source/WebCore/bindings/js/SerializedScriptValue.cpp:1389
> +                write(DOMExceptionTag);

I think it would be good to move this logic to a separate dumpDOMException() function, to follow the pattern used by other types.

> Source/WebCore/bindings/js/SerializedScriptValue.cpp:3595
> +            CachedStringRef name;

Ditto. It would be good to move this logic to a separate readDOMException() function.

> LayoutTests/storage/indexeddb/resources/structured-clone.js:-631
> -    evalAndExpectException("store.put(new DOMException, 'key')", "DOMException.DATA_CLONE_ERR");

Instead of simply drop it the check, can we switch it into a check that is supposed to succeed? It seems this test checks checks types that succeed and fail.
Comment 6 Chris Lord 2021-04-21 09:18:24 PDT
Created attachment 426699 [details]
Patch
Comment 7 Chris Lord 2021-04-21 09:22:52 PDT
Created attachment 426700 [details]
Patch
Comment 8 EWS 2021-04-21 10:43:57 PDT
Committed r276372 (236849@main): <https://commits.webkit.org/236849@main>

All reviewed patches have been landed. Closing bug and clearing flags on attachment 426700 [details].
Comment 9 Radar WebKit Bug Importer 2021-04-22 18:17:38 PDT
<rdar://problem/77049131>