RESOLVED FIXED 218870
[macOS] Perform AX TCC check in the UI process
https://bugs.webkit.org/show_bug.cgi?id=218870
Summary [macOS] Perform AX TCC check in the UI process
Per Arne Vollan
Reported 2020-11-12 13:04:13 PST
On behalf of the WebContent process, perform AX TCC check in the Networking process on macOS. This is in preparation of blocking tccd in the WebContent process.
Attachments
Patch (8.21 KB, patch)
2020-11-12 13:48 PST, Per Arne Vollan
no flags
Patch (8.38 KB, patch)
2020-11-12 14:06 PST, Per Arne Vollan
no flags
Patch (6.58 KB, patch)
2020-11-13 08:17 PST, Per Arne Vollan
bfulgham: review+
Patch (6.63 KB, patch)
2020-11-17 07:37 PST, Per Arne Vollan
ews-feeder: commit-queue-
Patch (6.68 KB, patch)
2020-11-17 08:43 PST, Per Arne Vollan
no flags
Radar WebKit Bug Importer
Comment 1 2020-11-12 13:04:42 PST
Per Arne Vollan
Comment 2 2020-11-12 13:48:22 PST
Per Arne Vollan
Comment 3 2020-11-12 14:06:16 PST
Alexey Proskuryakov
Comment 4 2020-11-12 18:47:08 PST
Comment on attachment 413974 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=413974&action=review > Source/WebCore/PAL/ChangeLog:3 > + [macOS] Perform AX TCC check in the Networking process I know that Networking process does more than networking, but making it responsible for accessibility in any way goes beyond reasonable in my opinion.
Per Arne Vollan
Comment 5 2020-11-13 08:17:22 PST
Per Arne Vollan
Comment 6 2020-11-13 08:21:03 PST
(In reply to Alexey Proskuryakov from comment #4) > Comment on attachment 413974 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=413974&action=review > > > Source/WebCore/PAL/ChangeLog:3 > > + [macOS] Perform AX TCC check in the Networking process > > I know that Networking process does more than networking, but making it > responsible for accessibility in any way goes beyond reasonable in my > opinion. Yes, that is a very good point. I have moved this to the UI process in the latest patch. Thanks for reviewing!
Brent Fulgham
Comment 7 2020-11-16 13:04:31 PST
Comment on attachment 414045 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=414045&action=review > Source/WebCore/PAL/pal/spi/mac/HIServicesSPI.h:161 > +typedef Boolean (*AXAuditTokenIsAuthenticatedCallback)(audit_token_t auditToken); We might not need the 'auditToken' name for the argument here. > Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm:184 > +static Boolean isAXAuthenticatedCallback(audit_token_t auditToken) Do we know how frequently this is called? Is it just once at process launch, or does it happen frequently in UIKit/AppKit code? Would it be better to perform the message send asynchronously as part of the launch process, and store the result so that this callback is very quick?
Per Arne Vollan
Comment 8 2020-11-16 13:24:18 PST
(In reply to Brent Fulgham from comment #7) > Comment on attachment 414045 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=414045&action=review > > > Source/WebCore/PAL/pal/spi/mac/HIServicesSPI.h:161 > > +typedef Boolean (*AXAuditTokenIsAuthenticatedCallback)(audit_token_t auditToken); > > We might not need the 'auditToken' name for the argument here. > Will fix! > > Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm:184 > > +static Boolean isAXAuthenticatedCallback(audit_token_t auditToken) > > Do we know how frequently this is called? Is it just once at process launch, > or does it happen frequently in UIKit/AppKit code? > This will only be called when an Accessibility client (e.g. VoiceOver) makes the first request to the WebContent process, so it is not called frequently. > Would it be better to perform the message send asynchronously as part of the > launch process, and store the result so that this callback is very quick? That's a good point, although in this case I don't believe we can cache the result, since the result of this function call depends on the provided audit token, which is the audit token of the client making the accessibility request. Thanks for reviewing!
Brent Fulgham
Comment 9 2020-11-16 13:38:28 PST
Comment on attachment 414045 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=414045&action=review r=me. Please monitor perf bots (as you always do!) :-) > Source/WebCore/PAL/pal/spi/mac/HIServicesSPI.h:161 > +typedef Boolean (*AXAuditTokenIsAuthenticatedCallback)(audit_token_t auditToken); We might not need the 'auditToken' name for the argument here.
Per Arne Vollan
Comment 10 2020-11-17 07:37:41 PST
Per Arne Vollan
Comment 11 2020-11-17 07:38:45 PST
(In reply to Brent Fulgham from comment #9) > Comment on attachment 414045 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=414045&action=review > > r=me. Please monitor perf bots (as you always do!) :-) > Will do! > > Source/WebCore/PAL/pal/spi/mac/HIServicesSPI.h:161 > > +typedef Boolean (*AXAuditTokenIsAuthenticatedCallback)(audit_token_t auditToken); > > We might not need the 'auditToken' name for the argument here. Fixed in latest patch. Thanks for reviewing!
EWS
Comment 12 2020-11-17 08:26:14 PST
Patch 414338 does not build
Per Arne Vollan
Comment 13 2020-11-17 08:43:00 PST
EWS
Comment 14 2020-11-17 09:22:11 PST
Committed r269906: <https://trac.webkit.org/changeset/269906> All reviewed patches have been landed. Closing bug and clearing flags on attachment 414344 [details].
Note You need to log in before you can comment on or make changes to this bug.