[webkit-changes] [WebKit/WebKit] 6cd3ea: [ iOS EWS ] 2X TestWebKitAPI.ServiceWorker.WindowC...
youennf
noreply at github.com
Thu Nov 16 07:29:24 PST 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 6cd3ea9b08babc08628ee4e1fd4c030149a8e5b6
https://github.com/WebKit/WebKit/commit/6cd3ea9b08babc08628ee4e1fd4c030149a8e5b6
Author: Youenn Fablet <youennf at gmail.com>
Date: 2023-11-16 (Thu, 16 Nov 2023)
Changed paths:
M Source/WebCore/Headers.cmake
M Source/WebCore/dom/Document.cpp
M Source/WebCore/dom/Document.h
M Source/WebCore/loader/NavigationScheduler.cpp
M Source/WebCore/loader/NavigationScheduler.h
M Source/WebCore/loader/SubframeLoader.cpp
M Source/WebKit/Scripts/webkit/messages.py
M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in
M Source/WebKit/UIProcess/WebFrameProxy.cpp
M Source/WebKit/UIProcess/WebFrameProxy.h
M Source/WebKit/WebProcess/WebPage/WebPage.cpp
M Source/WebKit/WebProcess/WebPage/WebPage.h
M Source/WebKit/WebProcess/WebPage/WebPage.messages.in
Log Message:
-----------
[ iOS EWS ] 2X TestWebKitAPI.ServiceWorker.WindowClientNavigate (API-Tests) are flaky timeouts
https://bugs.webkit.org/show_bug.cgi?id=263991
rdar://117758550
Reviewed by Chris Dumez.
After the fix in https://bugs.webkit.org/show_bug.cgi?id=262206, the fragment load UIProcess notifications are done differently.
This triggers a race within WebFrameProxy between the decision handler and the async reply handling of the navigation service worker request.
To prevent this, the navigation service worker reply gets a result which is stopped, completed or started.
Stopped means the navigation was denied and we call the callback accordingly.
Completed means the navigation is successful and we call the callback accordingly.
Started means the navigation is ongoing and we reuse the existing code path, based on whether there is a navigation listener.
* Source/WebCore/Headers.cmake:
* Source/WebCore/dom/Document.cpp:
(WebCore::Document::navigateFromServiceWorker):
* Source/WebCore/dom/Document.h:
* Source/WebCore/loader/NavigationScheduler.cpp:
(WebCore::ScheduledLocationChange::ScheduledLocationChange):
(WebCore::ScheduledLocationChange::~ScheduledLocationChange):
(WebCore::NavigationScheduler::scheduleLocationChange):
* Source/WebCore/loader/NavigationScheduler.h:
(WebCore::NavigationScheduler::scheduleLocationChange):
* Source/WebCore/loader/SubframeLoader.cpp:
(WebCore::FrameLoader::SubframeLoader::loadOrRedirectSubframe):
* Source/WebKit/Scripts/webkit/messages.py:
(headers_for_type):
* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:
* Source/WebKit/UIProcess/WebFrameProxy.cpp:
(WebKit::WebFrameProxy::navigateServiceWorkerClient):
(WebKit::WebFrameProxy::didSameDocumentNavigation):
* Source/WebKit/UIProcess/WebFrameProxy.h:
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::navigateServiceWorkerClient):
* Source/WebKit/WebProcess/WebPage/WebPage.h:
* Source/WebKit/WebProcess/WebPage/WebPage.messages.in:
Canonical link: https://commits.webkit.org/270825@main
More information about the webkit-changes
mailing list