[webkit-changes] [WebKit/WebKit] ffd8a0: REGRESSION (267023 at main): The language switching m...

Ryosuke Niwa noreply at github.com
Tue Oct 3 08:59:27 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: ffd8a014dd114d2dd7f2fba65c372ba2cc45b233
      https://github.com/WebKit/WebKit/commit/ffd8a014dd114d2dd7f2fba65c372ba2cc45b233
  Author: Ryosuke Niwa <rniwa at webkit.org>
  Date:   2023-10-03 (Tue, 03 Oct 2023)

  Changed paths:
    A LayoutTests/requestidlecallback/requestidlecallback-in-page-cache-with-pending-task-expected.txt
    A LayoutTests/requestidlecallback/requestidlecallback-in-page-cache-with-pending-task.html
    A LayoutTests/requestidlecallback/resources/page-cache-with-pending-task.html
    M Source/WebCore/dom/EventLoop.cpp
    M Source/WebCore/dom/EventLoop.h

  Log Message:
  -----------
  REGRESSION (267023 at main): The language switching menu is broken on English Wikipedia
https://bugs.webkit.org/show_bug.cgi?id=262358

Reviewed by Wenson Hsieh.

The bug was caused by EventLoop::hasTasksForFullyActiveDocument returning true when there are pending tasks
for suspended documents (in back-forward cache). This resulted in WindowEventLoop::didReachTimeToRun() to
exit early before running idle callbacks. Fixed the bug by making hasTasksForFullyActiveDocument return true
only when there are pending tasks for non-suspended task groups.

* LayoutTests/requestidlecallback/requestidlecallback-in-page-cache-with-pending-task-expected.txt: Added.
* LayoutTests/requestidlecallback/requestidlecallback-in-page-cache-with-pending-task.html: Added.
* LayoutTests/requestidlecallback/resources/page-cache-with-pending-task.html: Added.

* Source/WebCore/dom/EventLoop.cpp:
(WebCore::EventLoop::hasTasksForFullyActiveDocument const): Fixed the bug.
* Source/WebCore/dom/EventLoop.h:
(WebCore::EventLoop::hasTasksForFullyActiveDocument const): Moved to the cpp file above.

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




More information about the webkit-changes mailing list