[webkit-changes] [WebKit/WebKit] b707db: Make to sure to reregister service worker clients ...

youennf noreply at github.com
Thu Dec 12 12:30:13 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: b707db9ba55dbed587a5c6043c17216efcddc612
      https://github.com/WebKit/WebKit/commit/b707db9ba55dbed587a5c6043c17216efcddc612
  Author: Youenn Fablet <youenn at apple.com>
  Date:   2024-12-12 (Thu, 12 Dec 2024)

  Changed paths:
    A LayoutTests/http/tests/workers/service/registerServiceWorkerClient-after-network-process-crash-expected.txt
    A LayoutTests/http/tests/workers/service/registerServiceWorkerClient-after-network-process-crash.html
    A LayoutTests/http/tests/workers/service/resources/registerServiceWorkerClient-after-network-process-crash-worker.js
    M LayoutTests/http/tests/workers/service/shownotification-allowed.html
    M LayoutTests/platform/ios/TestExpectations
    M LayoutTests/platform/win/TestExpectations
    M Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h
    M Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in
    M Source/WebKit/UIProcess/WebProcessPool.cpp
    M Source/WebKit/UIProcess/WebProcessProxy.cpp
    M Source/WebKit/UIProcess/WebProcessProxy.h
    M Source/WebKit/WebProcess/WebProcess.cpp
    M Source/WebKit/WebProcess/WebProcess.h
    M Source/WebKit/WebProcess/WebProcess.messages.in

  Log Message:
  -----------
  Make to sure to reregister service worker clients when launching a service worker after a network process crash
rdar://141159225
https://bugs.webkit.org/show_bug.cgi?id=284302

Reviewed by Ben Nham.

When a network process crashes, web processes only create a connection to the network process when needed.
The consequence is that service worker clients may not all be registered until the process owning these clients creates a connection to the network process.

To fix that issue, when we launch a service worker process, we will make sure that all processes that have pages related to the service worker top origin recreate their network process connection.

Covered by added test and updated test.
Skipping added test on iOS like other tests using showNotification in service worker.

* LayoutTests/http/tests/workers/service/registerServiceWorkerClient-after-network-process-crash-expected.txt: Added.
* LayoutTests/http/tests/workers/service/registerServiceWorkerClient-after-network-process-crash.html: Added.
* LayoutTests/http/tests/workers/service/resources/registerServiceWorkerClient-after-network-process-crash-worker.js: Added.
(async const):
(let.messageClients):
(async await):
* LayoutTests/http/tests/workers/service/shownotification-allowed.html:
* Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h:
* Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in:
* Source/WebKit/UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::networkProcessDidTerminate):
(WebKit::WebProcessPool::establishRemoteWorkerContextConnectionToNetworkProcess):
* Source/WebKit/UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::shouldRegisterServiceWorkerClients const):
(WebKit::WebProcessProxy::registerServiceWorkerClients):
* Source/WebKit/UIProcess/WebProcessProxy.h:
* Source/WebKit/WebProcess/WebProcess.cpp:
(WebKit::WebProcess::registerServiceWorkerClients):
* Source/WebKit/WebProcess/WebProcess.h:
* Source/WebKit/WebProcess/WebProcess.messages.in:

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



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list