Bug 238069 - [Cocoa] Teach WebKit how to serialize CGColors
Summary: [Cocoa] Teach WebKit how to serialize CGColors
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: New Bugs (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Myles C. Maxfield
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2022-03-18 02:09 PDT by Myles C. Maxfield
Modified: 2022-03-23 12:17 PDT (History)
9 users (show)

See Also:


Attachments
Patch (12.98 KB, patch)
2022-03-18 02:15 PDT, Myles C. Maxfield
no flags Details | Formatted Diff | Diff
Patch (13.19 KB, patch)
2022-03-18 02:18 PDT, Myles C. Maxfield
no flags Details | Formatted Diff | Diff
Patch (16.87 KB, patch)
2022-03-18 14:36 PDT, Myles C. Maxfield
dino: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Myles C. Maxfield 2022-03-18 02:09:25 PDT
[IPC] Teach WebKit how to serialize CGColors
Comment 1 Myles C. Maxfield 2022-03-18 02:15:53 PDT
Created attachment 455080 [details]
Patch
Comment 2 Myles C. Maxfield 2022-03-18 02:15:57 PDT
<rdar://problem/90124325>
Comment 3 Myles C. Maxfield 2022-03-18 02:18:45 PDT
Created attachment 455081 [details]
Patch
Comment 4 Myles C. Maxfield 2022-03-18 14:36:31 PDT
Created attachment 455137 [details]
Patch
Comment 5 Tim Horton 2022-03-18 15:50:01 PDT
Comment on attachment 455137 [details]
Patch

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

> Source/WebKit/Shared/Cocoa/ArgumentCodersCocoa.mm:60
> +- (instancetype _Nullable)initWithCGColor:(CGColorRef)wrappedColor;

no infectious nullable in implementation files, please! (in many places)

> Source/WebKit/Shared/Cocoa/ArgumentCodersCocoa.mm:74
> +    if (CFGetTypeID(object) == CGColorGetTypeID())

should this check the type hierarchy instead of a specific type? what if you have a CGColor subtype? (is that even a thing?)

> Source/WebKit/Shared/Cocoa/ArgumentCodersCocoa.mm:250
> +    // Non-toll-free-bridged CF types do not conform to NSSecureCoding.

Wouldn't non-bridged CF types also be exploding about messaging them with -isKindOfClass? (maybe not)
Comment 6 Myles C. Maxfield 2022-03-18 17:14:51 PDT
Comment on attachment 455137 [details]
Patch

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

>> Source/WebKit/Shared/Cocoa/ArgumentCodersCocoa.mm:250
>> +    // Non-toll-free-bridged CF types do not conform to NSSecureCoding.
> 
> Wouldn't non-bridged CF types also be exploding about messaging them with -isKindOfClass? (maybe not)

They behave as NSObject (rather than NSColor or whatever).
Comment 7 Myles C. Maxfield 2022-03-18 18:54:54 PDT
Comment on attachment 455137 [details]
Patch

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

>> Source/WebKit/Shared/Cocoa/ArgumentCodersCocoa.mm:74
>> +    if (CFGetTypeID(object) == CGColorGetTypeID())
> 
> should this check the type hierarchy instead of a specific type? what if you have a CGColor subtype? (is that even a thing?)

(Followed up offline about this)
Comment 8 Myles C. Maxfield 2022-03-18 19:00:47 PDT
Committed r291518 (248624@trunk): <https://commits.webkit.org/248624@trunk>