Skip to content

chore: roll to 1.59.1#3050

Merged
pavelfeldman merged 1 commit intomainfrom
roll/1.59.1
Apr 29, 2026
Merged

chore: roll to 1.59.1#3050
pavelfeldman merged 1 commit intomainfrom
roll/1.59.1

Conversation

@pavelfeldman
Copy link
Copy Markdown
Member

Bumps the driver to 1.59.1 and ports the public-API changes that landed upstream during the 1.58 → 1.59 cycle.

New public APIs:

  • Request.existing_response (property)
  • Response.http_version()
  • ConsoleMessage.timestamp (property)
  • BrowserContext.is_closed()
  • BrowserContext.set_storage_state(state | path)
  • BrowserContext.debugger (property) + new Debugger class (request_pause, resume, next, run_to, paused_details + pausedstatechanged event)
  • Page.aria_snapshot(timeout=, depth=, mode=)
  • Page.console_messages(filter=) / Page.page_errors(filter=)
  • Page.clear_console_messages() / Page.clear_page_errors()
  • Page.pick_locator() / Page.cancel_pick_locator()
  • Page.screencast (property) + new Screencast class (start/stop with onFrame callback, show_actions/hide_actions, show_overlay, show_chapter, show_overlays/hide_overlays)
  • Locator.normalize()
  • Locator.aria_snapshot(depth=, mode=)
  • Browser.bind(title, ...) / Browser.unbind()
  • BrowserType.launch(artifacts_dir=) / launch_persistent_context(artifacts_dir=)
  • Tracing.start(live=)
  • CDPSession emits 'close' and forwards 'event' for raw CDP events
  • Dialog.dismiss() swallows TargetClosedError

Renames matching upstream:

  • BrowserType.connect(ws_endpoint=) -> connect(endpoint=) (positional; the wire field also renamed to "endpoint")

Generator/codegen:

  • documentation_provider: emit Promise-without-templates as Any, void as None
  • documentation_provider: emit @typing.overload + generic fallback for single-event classes (CDPSession needed this once it gained 'close')
  • New TypedDicts in _api_structures.py: DebuggerLocation, DebuggerPausedDetails, ScreencastFrame, BrowserBindResult
  • Register Debugger in _object_factory; register Debugger and Screencast in scripts/generate_api.py

Tests added (async + sync mirrors where applicable) for every PORT. expected_api_mismatch.txt is now down to legitimate divergences only.

Tooling:

  • New CLAUDE.md with project orientation
  • Expanded .claude/skills/playwright-roll/SKILL.md with the operational playbook learned over this roll (langs-verification, audit loop, common doclint quirks, channel-owner wiring checklist).

@pavelfeldman pavelfeldman force-pushed the roll/1.59.1 branch 5 times, most recently from 9789e39 to 8202660 Compare April 29, 2026 00:47
Bumps the driver to 1.59.1 and ports the public-API changes that landed
upstream during the 1.58 → 1.59 cycle.

New public APIs:
- Request.existing_response (property)
- Response.http_version()
- ConsoleMessage.timestamp (property)
- BrowserContext.is_closed()
- BrowserContext.set_storage_state(state | path)
- BrowserContext.debugger (property) + new Debugger class
  (request_pause, resume, next, run_to, paused_details + pausedstatechanged event)
- Page.aria_snapshot(timeout=, depth=, mode=)
- Page.console_messages(filter=) / Page.page_errors(filter=)
- Page.clear_console_messages() / Page.clear_page_errors()
- Page.pick_locator() / Page.cancel_pick_locator()
- Page.screencast (property) + new Screencast class
  (start/stop with onFrame callback, show_actions/hide_actions,
  show_overlay, show_chapter, show_overlays/hide_overlays)
- Locator.normalize()
- Locator.aria_snapshot(depth=, mode=)
- Browser.bind(title, ...) / Browser.unbind()
- BrowserType.launch(artifacts_dir=) / launch_persistent_context(artifacts_dir=)
- Tracing.start(live=)
- CDPSession emits 'close' and forwards 'event' for raw CDP events
- Dialog.dismiss() swallows TargetClosedError

Renames matching upstream:
- BrowserType.connect(ws_endpoint=) -> connect(endpoint=)
  (positional; the wire field also renamed to "endpoint")

Generator/codegen:
- documentation_provider: emit Promise-without-templates as Any, void as None
- documentation_provider: emit @typing.overload + generic fallback for
  single-event classes (CDPSession needed this once it gained 'close')
- New TypedDicts in _api_structures.py:
  DebuggerLocation, DebuggerPausedDetails, ScreencastFrame, BrowserBindResult
- Register Debugger in _object_factory; register Debugger and Screencast
  in scripts/generate_api.py

Tests added (async + sync mirrors where applicable) for every PORT.
expected_api_mismatch.txt is now down to legitimate divergences only.

Tooling:
- New CLAUDE.md with project orientation
- Expanded .claude/skills/playwright-roll/SKILL.md with the operational
  playbook learned over this roll (langs-verification, audit loop, common
  doclint quirks, channel-owner wiring checklist).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@pavelfeldman pavelfeldman merged commit 581316c into main Apr 29, 2026
32 of 42 checks passed
@pavelfeldman pavelfeldman deleted the roll/1.59.1 branch April 29, 2026 01:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants