Skip to content

feat(webview): support page.goBack and page.goForward#41409

Merged
dcrousso merged 1 commit into
microsoft:mainfrom
dcrousso:fix-WKWebView-history-navigation
Jun 22, 2026
Merged

feat(webview): support page.goBack and page.goForward#41409
dcrousso merged 1 commit into
microsoft:mainfrom
dcrousso:fix-WKWebView-history-navigation

Conversation

@dcrousso

Copy link
Copy Markdown
Contributor

unfortunately WebKit does not have an upstream Page.goBack or Page.goForward

luckily, there exist JS APIs we can leverage in the meantime

@dcrousso dcrousso requested review from pavelfeldman and yury-s June 22, 2026 15:29
@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

@dcrousso dcrousso added the CQ1 label Jun 22, 2026
unfortunately WebKit does not have an upstream `Page.goBack` or `Page.goForward`

luckily, there exist JS APIs we can leverage in the meantime
@dcrousso dcrousso force-pushed the fix-WKWebView-history-navigation branch from a2d9fb0 to 1737570 Compare June 22, 2026 19:04
@github-actions

Copy link
Copy Markdown
Contributor

Test results for "MCP"

7354 passed, 1122 skipped


Merge workflow run.

@github-actions

Copy link
Copy Markdown
Contributor

Test results for "tests 1"

1 failed
❌ [firefox-page] › page/workers.spec.ts:40 › should emit created and destroyed events @firefox-ubuntu-22.04-node20

8 flaky ⚠️ [installation tests] › playwright-cli-install-should-work.spec.ts:102 › install command should work with mirror that uses chunked encoding `@package-installations-ubuntu-latest`
⚠️ [chromium-library] › library/beforeunload.spec.ts:130 › should support dismissing the dialog multiple times `@chromium-ubuntu-22.04-node20`
⚠️ [chromium-library] › library/popup.spec.ts:260 › should not throw when click closes popup `@chromium-ubuntu-22.04-node20`
⚠️ [chromium-library] › library/video.spec.ts:680 › screencast › should capture full viewport on hidpi `@chromium-ubuntu-22.04-node20`
⚠️ [chromium-library] › library/beforeunload.spec.ts:130 › should support dismissing the dialog multiple times `@chromium-ubuntu-22.04-node22`
⚠️ [chromium-library] › library/video.spec.ts:717 › screencast › should work with video+trace `@chromium-ubuntu-22.04-node22`
⚠️ [chromium-page] › page/page-request-continue.spec.ts:756 › propagate headers cross origin redirect after interception `@chromium-ubuntu-22.04-node22`
⚠️ [webkit-page] › page/page-set-input-files.spec.ts:38 › should upload a folder `@webkit-ubuntu-22.04-node20`

48909 passed, 1142 skipped


Merge workflow run.

@dcrousso dcrousso merged commit b1bd34c into microsoft:main Jun 22, 2026
51 of 52 checks passed
@dcrousso dcrousso deleted the fix-WKWebView-history-navigation branch June 22, 2026 20:23
@github-actions

Copy link
Copy Markdown
Contributor

Test results for "tests 2"

4 failed
❌ [firefox-page] › page/workers.spec.ts:40 › should emit created and destroyed events @tracing-firefox
❌ [firefox-page] › page/workers.spec.ts:40 › should emit created and destroyed events @firefox-macos-15-large
❌ [firefox-page] › page/workers.spec.ts:40 › should emit created and destroyed events @firefox-windows-latest
❌ [firefox-page] › page/workers.spec.ts:40 › should emit created and destroyed events @firefox-macos-15-xlarge

36 flaky ⚠️ [chromium-library] › library/har-websocket.spec.ts:239 › should attach websocket messages for a still open websocket after stopping `@tracing-chromium`
⚠️ [chromium-library] › library/video.spec.ts:645 › screencast › should capture full viewport `@tracing-chromium`
⚠️ [chromium-library] › library/video.spec.ts:456 › screencast › should be 800x600 with null viewport `@msedge-dev-windows-latest`
⚠️ [chromium-library] › library/video.spec.ts:456 › screencast › should be 800x600 with null viewport `@chrome-ubuntu-22.04`
⚠️ [chromium-library] › library/video.spec.ts:456 › screencast › should be 800x600 with null viewport `@msedge-windows-latest`
⚠️ [chromium-page] › page/page-dispatchevent.spec.ts:186 › should dispatch absolute device orientation event `@msedge-windows-latest`
⚠️ [chromium-library] › library/video.spec.ts:717 › screencast › should work with video+trace `@chromium-windows-latest`
⚠️ [chromium-library] › library/chromium/chromium.spec.ts:177 › serviceWorker(), and fromServiceWorker() work `@chromium-macos-15-large`
⚠️ [chromium-library] › library/heap.spec.ts:203 › cycle handles `@chromium-macos-15-large`
⚠️ [chromium-library] › library/screenshot.spec.ts:213 › page screenshot › should not hang when event loop is blocked `@chromium-macos-14-xlarge`
⚠️ [chromium-library] › library/video.spec.ts:645 › screencast › should capture full viewport `@chromium-macos-15-xlarge`
⚠️ [chromium-library] › library/inspector/cli-codegen-1.spec.ts:147 › cli codegen › should ignore programmatic events `@chrome-windows-latest`
⚠️ [chromium-library] › library/inspector/cli-codegen-2.spec.ts:20 › cli codegen › should contain open page `@chrome-windows-latest`
⚠️ [chromium-page] › page/workers.spec.ts:63 › should have timestamp on worker console messages `@chrome-windows-latest`
⚠️ [chromium-library] › library/chromium/chromium.spec.ts:177 › serviceWorker(), and fromServiceWorker() work `@chrome-beta-ubuntu-22.04`
⚠️ [chromium-library] › library/inspector/recorder-api.spec.ts:120 › should type `@chrome-beta-ubuntu-22.04`
⚠️ [chromium-library] › library/popup.spec.ts:260 › should not throw when click closes popup `@chrome-beta-ubuntu-22.04`
⚠️ [chromium-library] › library/video.spec.ts:456 › screencast › should be 800x600 with null viewport `@chrome-beta-ubuntu-22.04`
⚠️ [chromium-library] › library/browsertype-connect.spec.ts:141 › launchServer › should be able to reconnect to a browser `@chrome-macos-latest`
⚠️ [chromium-library] › library/browsertype-connect.spec.ts:189 › launchServer › should ignore page.pause when headed `@chrome-macos-latest`
⚠️ [chromium-library] › library/browsertype-connect.spec.ts:294 › launchServer › disconnected event should be emitted when browser is closed or server is closed `@chrome-macos-latest`
⚠️ [chromium-library] › library/video.spec.ts:456 › screencast › should be 800x600 with null viewport `@chrome-macos-latest`
⚠️ [chromium-library] › library/chromium/chromium.spec.ts:434 › should produce network events, routing, and annotations for Service Worker (advanced) `@driver`
⚠️ [firefox-library] › library/defaultbrowsercontext-2.spec.ts:180 › should have passed URL when launching with ignoreDefaultArgs: true `@firefox-macos-15-large`
⚠️ [firefox-library] › library/defaultbrowsercontext-2.spec.ts:286 › exposes browser `@firefox-macos-15-large`
⚠️ [firefox-library] › library/inspector/cli-codegen-csharp.spec.ts:202 › should not print context options method override in xunit if no options were passed `@firefox-macos-15-large`
⚠️ [firefox-library] › library/inspector/cli-codegen-csharp.spec.ts:208 › should print context options method override in xunit if options were passed `@firefox-macos-15-large`
⚠️ [firefox-library] › library/logger.spec.ts:34 › should log context-level `@firefox-macos-15-large`
⚠️ [firefox-library] › library/permissions.spec.ts:118 › permissions › should trigger permission onchange `@firefox-macos-15-large`
⚠️ [firefox-page] › page/page-emulate-media.spec.ts:144 › should keep reduced motion and color emulation after reload `@firefox-macos-15-large`
⚠️ [firefox-library] › library/screenshot.spec.ts:213 › page screenshot › should not hang when event loop is blocked `@firefox-macos-15-xlarge`
⚠️ [webkit-page] › page/page-set-content.spec.ts:135 › should handle timeout properly `@webkit-windows-latest`
⚠️ [webkit-library] › library/browsertype-connect.spec.ts:792 › launchServer › should upload a folder `@webkit-macos-15-large`
⚠️ [webkit-library] › library/capabilities.spec.ts:212 › make sure that XMLHttpRequest upload events are emitted correctly `@webkit-macos-15-large`
⚠️ [webkit-page] › page/page-request-continue.spec.ts:194 › post data › should compute content-length from post data `@webkit-macos-15-large`
⚠️ [android-native] › android/webview.spec.ts:19 › androidDevice.webView

104507 passed, 4403 skipped


Merge workflow run.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants