### What?
Migrate remaining direct `next-webdriver` test callers that have a
`NextInstance` to `next.browser()`, and expose the shared `Playwright`
browser type from `e2e-utils`.
### Why?
`NextInstance.browser` should be the supported browser-opening interface
for test fixtures, with `next-webdriver` kept as the private
implementation detail.
### How?
Updated affected development, e2e, and production tests to call
`next.browser()` directly, passing `baseUrl` where tests intentionally
target a manually spawned or proxied server. Shared helpers now receive
browser callbacks from the test context, and browser types import
`Playwright` from `e2e-utils` instead of deriving from `next.browser` or
importing from private paths.
<!-- NEXT_JS_LLM_PR -->
## What?
Converts existing `createNext()` usage into `nextTestSetup()`.
`createNext()` was the setup step we had before `nextTestSetup()` was
added.
This PR focused on the simple conversion cases. There will be a
follow-up to complete the last few.
---------
Co-authored-by: Cursor <cursoragent@cursor.com>
This was caught by our React 18 tests which only run on `canary`. There
was a console error about breaking `javascript:` urls in an upcoming
React release but it didn't actually block them.
React already disallows javascript URLs. This change extends this
prohibition to Next.js specific APIs that don't serialize to an href on
an anchor tag. There are workarounds if need be but this is considered a
bugfix because these URLs are non-routable and the affected APIs were
never intended to work with these URLs.
This replaces prior efforts here:
https://github.com/vercel/next.js/pull/64779/ which attempted to make
this capability optional. We decided it was just not supportable and
since workarounds exist the burden of upgrading through this bugfix is
acceptable.
---------
Co-authored-by: Zack Tanner <1939140+ztanner@users.noreply.github.com>