Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: a3e994b8cd8c92bc8827c17e56e759b960641b3a
      
https://github.com/WebKit/WebKit/commit/a3e994b8cd8c92bc8827c17e56e759b960641b3a
  Author: Rupin Mittal <ru...@apple.com>
  Date:   2025-09-12 (Fri, 12 Sep 2025)

  Changed paths:
    M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
    M Source/WebCore/loader/DocumentLoader.h
    M Source/WebCore/loader/FrameLoader.cpp
    M Source/WebCore/page/Navigation.cpp

  Log Message:
  -----------
  Enable Navigation API
https://bugs.webkit.org/show_bug.cgi?id=298730
rdar://160389651

Reviewed by Charlie Wolfe.

Enable the Navigation API on Cocoa, GTK, WPE now that the PLT regression is
fixed (299858@main).

Enabling this API results in the ProcessSwap.SwapOnFormSubmission API test
failing. It fails because on [webView reload], the web process changes rather
than staying the same.

The issue is that on [webView reload], we call FrameLoader::reload which ends
up calling Navigation::initializeForNewWindow. Since there is a previous window
with previous navigation entries we should process, we go down the
shouldProcessPreviousNavigationEntries path. Then, since the navigation type is
not Traverse or Push, we end up in the last else case, which dereferences the
navigationType.

Turns out, no navigationType has been set. So the process crashes, which causes
a new process to be spun up and reload is called in that process. Hence the
process ID in the API test is not equal to the old one.

To fix this, we make FrameLoader::reload set the NavigationNavigationType as it
should have been doing before.

This issue did not arise earlier since API tests are not run with non-stable
feature flags enabled. Now that we're enabling it, this case will continue to be
tested by ProcessSwap.SwapOnFormSubmission.

* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
* Source/WebCore/loader/DocumentLoader.h:
(WebCore::DocumentLoader::setTriggeringNavigationAPIType):
* Source/WebCore/loader/FrameLoader.cpp:
(WebCore::FrameLoader::reload):
* Source/WebCore/page/Navigation.cpp:
(WebCore::Navigation::initializeForNewWindow):

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to