Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 6cd3ea9b08babc08628ee4e1fd4c030149a8e5b6
https://github.com/WebKit/WebKit/commit/6cd3ea9b08babc08628ee4e1fd4c030149a8e5b6
Author: Youenn Fablet <[email protected]>
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
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes