Skip to content

chore: roll to 1.59.1#3050

Open
pavelfeldman wants to merge 1 commit intomainfrom
roll/1.59.1
Open

chore: roll to 1.59.1#3050
pavelfeldman wants to merge 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).

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>
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