Skip to content

Conversation

@mookums
Copy link
Contributor

@mookums mookums commented Oct 10, 2025

This is still pretty rough around the edges for now (and is incomplete)

This implements the Navigation WebAPI. History is now a compatibility layer over Navigation, allowing them to share the same underlying entries. testing has been changed, using fetchWait and loading a secondary testing html file that checks for the appropriate conditions when we need to load a secondary page (such as with History or Navigation. the navigateFromWebAPI has also been changed, adding a field, that allows it so serve as the central way to navigate with proper hooks into Navigation.

There are a few Events that need to be completed so far, such as NavigateEvent, and a lot of conditions that need extra testing (such as reloading).


Looking to get this merged soon, just to prevent this from drifting off too far. There is still a good chunk of work left to be fully WPT compliant (such as firing events at the proper time), but a lot of these WPTs depend on other browser features (like pageshow) that have to be implemented separately. I'm going to continue working on Navigation, specifically on getting most of the tests to pass.

@mookums mookums force-pushed the navigation branch 4 times, most recently from 620a5d3 to fee8f5c Compare October 16, 2025 06:10
@mookums mookums marked this pull request as ready for review October 16, 2025 06:16
@krichprollsch
Copy link
Member

Duckduckgo integration test is failing on this branch, even after a rebase against main.

$ node integration/duckduckgo.js
file:///home/pierre/wrk/demo/node_modules/puppeteer-core/lib/esm/puppeteer/util/Deferred.js:57
            this.#timeoutError = new TimeoutError(opts.message);
                                 ^

TimeoutError: Navigation timeout of 30000 ms exceeded
    at new Deferred (file:///home/pierre/wrk/demo/node_modules/puppeteer-core/lib/esm/puppeteer/util/Deferred.js:57:34)
    at Deferred.create (file:///home/pierre/wrk/demo/node_modules/puppeteer-core/lib/esm/puppeteer/util/Deferred.js:18:16)
    at new LifecycleWatcher (file:///home/pierre/wrk/demo/node_modules/puppeteer-core/lib/esm/puppeteer/cdp/LifecycleWatcher.js:70:46)
    at CdpFrame.waitForNavigation (file:///home/pierre/wrk/demo/node_modules/puppeteer-core/lib/esm/puppeteer/cdp/Frame.js:193:29)
    at CdpFrame.<anonymous> (file:///home/pierre/wrk/demo/node_modules/puppeteer-core/lib/esm/puppeteer/util/decorators.js:101:27)
    at CdpPage.waitForNavigation (file:///home/pierre/wrk/demo/node_modules/puppeteer-core/lib/esm/puppeteer/api/Page.js:601:43)
    at file:///home/pierre/wrk/demo/integration/duckduckgo.js:34:8

Node.js v22.19.0

@mookums
Copy link
Contributor Author

mookums commented Oct 22, 2025

Duckduckgo integration test is failing on this branch, even after a rebase against main.

$ node integration/duckduckgo.js
file:///home/pierre/wrk/demo/node_modules/puppeteer-core/lib/esm/puppeteer/util/Deferred.js:57
            this.#timeoutError = new TimeoutError(opts.message);
                                 ^

TimeoutError: Navigation timeout of 30000 ms exceeded
    at new Deferred (file:///home/pierre/wrk/demo/node_modules/puppeteer-core/lib/esm/puppeteer/util/Deferred.js:57:34)
    at Deferred.create (file:///home/pierre/wrk/demo/node_modules/puppeteer-core/lib/esm/puppeteer/util/Deferred.js:18:16)
    at new LifecycleWatcher (file:///home/pierre/wrk/demo/node_modules/puppeteer-core/lib/esm/puppeteer/cdp/LifecycleWatcher.js:70:46)
    at CdpFrame.waitForNavigation (file:///home/pierre/wrk/demo/node_modules/puppeteer-core/lib/esm/puppeteer/cdp/Frame.js:193:29)
    at CdpFrame.<anonymous> (file:///home/pierre/wrk/demo/node_modules/puppeteer-core/lib/esm/puppeteer/util/decorators.js:101:27)
    at CdpPage.waitForNavigation (file:///home/pierre/wrk/demo/node_modules/puppeteer-core/lib/esm/puppeteer/api/Page.js:601:43)
    at file:///home/pierre/wrk/demo/integration/duckduckgo.js:34:8

Node.js v22.19.0

Should be fixed with 9c4367b. The URL eqlDocument check wasn't comprehensive enough.

@krichprollsch krichprollsch merged commit d0b83c6 into main Oct 24, 2025
10 checks passed
@krichprollsch krichprollsch deleted the navigation branch October 24, 2025 07:30
@github-actions github-actions bot locked and limited conversation to collaborators Oct 24, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants