Bug 228271

Summary: WKUserContentController.removeAllScriptMessageHandlers() doesn't release the message handlers
Product: WebKit Reporter: zero.griffin
Component: WebKit2Assignee: Alex Christensen <achristensen>
Status: RESOLVED FIXED    
Severity: Normal CC: achristensen, beidson, cdumez, ggaren, kkinnunen, peter, sihui_liu, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: Safari 14   
Hardware: All   
OS: macOS 11   
Attachments:
Description Flags
Patch none

zero.griffin
Reported 2021-07-25 03:04:13 PDT
Trying to remove all message handlers from a WKUserContentController using removeAllScriptMessageHandlers() doesn't seem to be working. There is not an API to view all message handlers from a WKUserContentController, but I have noticed that trying to remove all of them using removeAllScriptMessageHandlers() doesn't release those handlers, as by adding them, the WKUserContentController seems to retain them. This I can reproduce 100% of the time. And in comparison, using removeScriptMessageHandler(forName:) seems to be working fine, and the message handlers gets released. Having a removeAllScriptMessageHandlers() is specially helpful when, like in my case, you have many different message handlers, with different names. If necessary I can provide with a small working prototype to test it. Cheers.
Attachments
Patch (4.16 KB, patch)
2021-07-26 15:55 PDT, Alex Christensen
no flags
Alex Christensen
Comment 1 2021-07-26 15:55:51 PDT
EWS
Comment 2 2021-07-26 16:58:33 PDT
Committed r280325 (239972@main): <https://commits.webkit.org/239972@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 434252 [details].
Radar WebKit Bug Importer
Comment 3 2021-07-26 16:59:16 PDT
Alex Christensen
Comment 4 2021-10-20 08:06:08 PDT
*** Bug 231659 has been marked as a duplicate of this bug. ***
Note You need to log in before you can comment on or make changes to this bug.