Bug 252827

Summary: [GLib] Ensure no final classes have public class structs
Product: WebKit Reporter: Michael Catanzaro <mcatanzaro>
Component: WebKitGTKAssignee: Michael Catanzaro <mcatanzaro>
Status: RESOLVED FIXED    
Severity: Normal CC: bugs-noreply, mcatanzaro
Priority: P2    
Version: WebKit Nightly Build   
Hardware: PC   
OS: Linux   
Bug Depends on:    
Bug Blocks: 210100    

Description Michael Catanzaro 2023-02-23 07:33:29 PST
In bug #243663 Adrian hid the class structs of most final classes. However, a few classes still do have public class structs because they have vtables. The vtables are now useless because the classes are not derivable, so they need to be hidden. This was not done in bug #243663 because it requires a little additional work to avoid breaking the original API version.
Comment 1 Michael Catanzaro 2023-02-23 07:53:07 PST
Affected classes are WebKitDownload, WebKitWebContext, and WebKitWebHitTestResult
Comment 2 Michael Catanzaro 2023-02-27 12:25:33 PST
Emmanuele says we should use g_signal_override_class_handler() rather than the g_signal_connect_after() that I had been planning to use.

I'm planning to handle WebKitDownload in bug #238748 and the other two classes here.
Comment 3 Michael Catanzaro 2023-03-01 06:52:28 PST
(In reply to Michael Catanzaro from comment #1)
> Affected classes are WebKitDownload, WebKitWebContext, and
> WebKitWebHitTestResult

Actually, Adrian already handled WebKitWebHitTestResult. And we decided not to handle WebKitDownload in bug #238748 after all. So here I'll handle WebKitDownload and WebKitWebContext.
Comment 4 Michael Catanzaro 2023-03-01 07:18:14 PST
Pull request: https://github.com/WebKit/WebKit/pull/10865
Comment 5 EWS 2023-03-01 08:29:41 PST
Committed 261011@main (5e3c2e27ef61): <https://commits.webkit.org/261011@main>

Reviewed commits have been landed. Closing PR #10865 and removing active labels.