[webkit-changes] [WebKit/WebKit] e8027f: Defer AX object cache update as an event loop task...

Ryosuke Niwa noreply at github.com
Mon May 8 15:46:21 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: e8027f0de5396f635ddfaf6b7ad8b38e05bc8fdd
      https://github.com/WebKit/WebKit/commit/e8027f0de5396f635ddfaf6b7ad8b38e05bc8fdd
  Author: Ryosuke Niwa <rniwa at webkit.org>
  Date:   2023-05-08 (Mon, 08 May 2023)

  Changed paths:
    M LayoutTests/accessibility/mac/input-type-change-crash-expected.txt
    M LayoutTests/accessibility/mac/tab-focus-post-notification.html
    M LayoutTests/accessibility/mac/textbox-role-reports-notifications.html
    M LayoutTests/accessibility/nested-textareas-value-changed-notifications-expected.txt
    M Source/WebCore/dom/Document.cpp
    M Source/WebCore/dom/Document.h
    M Source/WebCore/page/LocalFrameView.cpp
    M Source/WebCore/testing/Internals.cpp

  Log Message:
  -----------
  Defer AX object cache update as an event loop task instead of a post layout task
https://bugs.webkit.org/show_bug.cgi?id=256403

Reviewed by Antti Koivisto.

Defer accessibility object cache updates until an event loop task instead of running
them as a post layout task since they can trigger synchronous author script execution.

* LayoutTests/accessibility/mac/input-type-change-crash-expected.txt: Rebaselined.

* LayoutTests/accessibility/mac/tab-focus-post-notification.html: Wait for rAF between
each tabbing so that AX objects have a chance to update themselves.

* LayoutTests/accessibility/mac/textbox-role-reports-notifications.html: Manually call
updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks to flush AX cache updates.

* LayoutTests/accessibility/nested-textareas-value-changed-notifications-expected.txt:
Rebaselined.

* Source/WebCore/dom/Document.cpp:
(WebCore::Document::scheduleDeferredAXObjectCacheUpdate):
(WebCore::Document::flushDeferredAXObjectCacheUpdate):

* Source/WebCore/dom/Document.h:

* Source/WebCore/page/LocalFrameView.cpp:
(WebCore::LocalFrameView::performPostLayoutTasks):

* Source/WebCore/testing/Internals.cpp:
(WebCore::Internals::updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks):
Manually flush the pending AX object cache updates.

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




More information about the webkit-changes mailing list