fix(webview): support site isolation and fix postData#41041
Merged
Conversation
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Stock Mobile Safari on iOS 26 site-isolates frames, reporting a separate Target.targetCreated with type 'frame' for every page (even pages without iframes). wvPage asserted page-only targets and threw, breaking the entire WebView suite. Ignore non-page frame targets (resuming any paused ones) and drive the page through the top-level page target. Also fixes three input/network bugs uncovered once the suite ran again: - postData: stock WebKit reports Network.Request.postData as a plain string, not base64 like the patched fork — decode as utf8. - keyboard: synthetic key events never performed the default text insertion, so press/type left inputs unchanged — emulate insertion honoring selection. - mouse: move() only dispatched mousemove — fire the full out/leave -> over/enter -> move sequence (mouse + pointer) when the hovered element changes, so hover-driven UI reacts. Removes the 56 now-passing tests from the webkit-webview-page expectations and recategorizes the remaining genuine failures.
Revert the keyboard text-insertion and mouse hover-sequence changes in wvInput.ts; they will land in their own PR. Re-add the input-dependent tests that depended on them back to the expectations file as expected failures: - elementhandle-press / elementhandle-type 'should not modify selection when focused' The iOS 26 site-isolation (wvPage) and postData (wvInterceptableRequest) fixes remain.
… fulfill tests - Update the webkit-webview snapshots for the subresource-image fulfill tests (mock-binary-response, mock-svg); these now pass reliably. - Un-skip 'should allow mocking binary responses' / 'should allow mocking svg with charset' (reliable once snapshots match — they fulfill an <img> subresource, no process swap). - Keep the main-navigation fulfill tests skipped: they are flaky on iOS 26 because the navigation process-swaps and the provisional target arrives un-paused, racing interception so page.goto returns null. Grouped under a new 'main-navigation-fulfill-flaky' section.
d9cf308 to
1c96ca0
Compare
pavelfeldman
approved these changes
May 29, 2026
Contributor
Test results for "MCP"7233 passed, 1113 skipped Merge workflow run. |
Contributor
Test results for "tests 1"4 flaky43982 passed, 864 skipped Merge workflow run. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.