[webkit-changes] [WebKit/WebKit] f8db13: [macOS] Toggling AX preferences does not update fo...

Aditya Keerthi noreply at github.com
Fri Nov 3 19:32:46 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: f8db1385c264d8fcc07744663f502a066e838acd
      https://github.com/WebKit/WebKit/commit/f8db1385c264d8fcc07744663f502a066e838acd
  Author: Aditya Keerthi <akeerthi at apple.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M Source/WebCore/PAL/pal/spi/mac/HIServicesSPI.h
    M Source/WebKit/Shared/AuxiliaryProcess.h
    M Source/WebKit/Shared/Cocoa/AuxiliaryProcessCocoa.mm
    M Source/WebKit/WebProcess/WebProcess.h
    M Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm

  Log Message:
  -----------
  [macOS] Toggling AX preferences does not update form control appearance
https://bugs.webkit.org/show_bug.cgi?id=264170
rdar://117914468

Reviewed by Wenson Hsieh.

cfprefsd is blocked in the GPU process. Consequently, any changes to
preferences are not automatically reflected to the process. For this reason,
there is existing logic for the UI process to notify the child processes of
preference changes.

Note that AppKit caches the value of some accessibility settings. The WebContent
process already works around this by invalidating the cache whenever an
accessibility setting is modified. However, the GPU process does not currently
use the same logic. Consequently, the AppKit's cache of accessibility settings
remains frozen in the GPU process.

To fix, ensure the cache is invalidated, by moving logic from `WebProcessCocoa`
into `AuxiliaryProcessCocoa`. This approach ensures that all child processes
invalidate the relevant cache.

* Source/WebCore/PAL/pal/spi/mac/HIServicesSPI.h:
* Source/WebKit/Shared/AuxiliaryProcess.h:
(WebKit::AuxiliaryProcess::accessibilitySettingsDidChange):
* Source/WebKit/Shared/Cocoa/AuxiliaryProcessCocoa.mm:
(WebKit::invertColorsPreferenceKey):
(WebKit::AuxiliaryProcess::handleAXPreferenceChange):

Additionally invalidate the cache when the "Differentiate without color"
setting is toggled.

(WebKit::handleAXPreferenceChange): Deleted.
* Source/WebKit/WebProcess/WebProcess.h:
* Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::handlePreferenceChange):
(WebKit::WebProcess::accessibilitySettingsDidChange):
(WebKit::invertColorsPreferenceKey): Deleted.

Canonical link: https://commits.webkit.org/270221@main




More information about the webkit-changes mailing list