diff --git a/CHANGELOG.md b/CHANGELOG.md index b171f61..f08eb46 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), ## [Unreleased] ### Changed -- Playwright pin moved to `>=1.55,<1.62` (was `>=1.55,<1.56`). The `firefox-18` binary rebases onto Firefox 151, which is what the latest Playwright (1.61) pairs with, so 1.61 now drives the binary natively - no more pinning to an older client. Both ends of the range were tested against the new binary (full browser suite on 1.61; drift-free protocol on 1.55). `scripts/playwright_pin.txt` -> 1.61.0. +- Playwright pin moved to `>=1.55,<=1.61.0` (was `>=1.55,<1.56`). The `firefox-18` binary rebases onto Firefox 151, which is what the latest Playwright (1.61) pairs with, so 1.61 now drives the binary natively - no more pinning to an older client. Both ends of the range were tested against the new binary (full browser suite on 1.61; drift-free protocol on 1.55). The upper bound is capped at the exact latest tested version (1.61.0) rather than an open `<1.62`, so a Playwright release we have not validated against this binary cannot be pulled in and break a fresh install; the cap moves forward deliberately, once a new version is tested. `scripts/playwright_pin.txt` -> 1.61.0. ### Added - `timezone="auto"`: the browser timezone is auto-derived from the egress IP. By default (no explicit timezone) it ALWAYS resolves — from the proxy egress when a proxy is set, otherwise from the host's own public IP — so the zone can never disagree with the IP (the classic `timezone_mismatch` signal). An explicit `"Area/City"` is the only way to force a specific zone. On failure: with a proxy the launch raises (no silent host-TZ fallback behind a foreign proxy); without a proxy it falls back to the host TZ so a transient lookup can't break the launch. diff --git a/pyproject.toml b/pyproject.toml index b45f9b2..c2149cb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "invisible-playwright" -version = "0.3.2" +version = "0.3.3" description = "Playwright wrapper for a patched Firefox with deterministic stealth profile." readme = "README.md" requires-python = ">=3.11" @@ -27,11 +27,11 @@ dependencies = [ # Pinned to the Juggler client we actually test against (scripts/playwright_pin.txt, # 1.55.x). Playwright 1.61 added an isMobile field to Browser.setDefaultViewport that # the FF150 Juggler does not accept, which breaks the session (issue #48). - "playwright>=1.55,<1.62", + "playwright>=1.55,<=1.61.0", ] [project.optional-dependencies] -dev = ["pytest>=7", "pytest-mock>=3", "responses>=0.24", "build>=1", "pytest-rerunfailures>=14", "playwright>=1.55,<1.62"] +dev = ["pytest>=7", "pytest-mock>=3", "responses>=0.24", "build>=1", "pytest-rerunfailures>=14", "playwright>=1.55,<=1.61.0"] [tool.pytest.ini_options] markers = [