From 135a655fac9374adba185d88c8297780a24e916a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20Brekelmans?= <9531344+dbrekelmans@users.noreply.github.com> Date: Mon, 3 Nov 2025 11:42:51 +0100 Subject: [PATCH 1/3] Update geckodriver versions --- src/Driver/GeckoDriver/VersionResolver.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/Driver/GeckoDriver/VersionResolver.php b/src/Driver/GeckoDriver/VersionResolver.php index 5b85bba..84d84a6 100644 --- a/src/Driver/GeckoDriver/VersionResolver.php +++ b/src/Driver/GeckoDriver/VersionResolver.php @@ -19,9 +19,15 @@ final class VersionResolver implements VersionResolverInterface { private const LATEST_VERSION_ENDPOINT = 'https://api.github.com/repos/mozilla/geckodriver/releases/latest'; - private const MIN_REQUIRED_BROWSER_VERSION_FOR_LATEST = 60; + private const MIN_REQUIRED_BROWSER_VERSION_FOR_LATEST = 128; private const MIN_REQUIRED_BROWSER_VERSIONS = [ + 128 => '0.36.0', + 115 => '0.35.0', + 102 => '0.33.0', + 91 => '0.31.0', + 78 => '0.30.0', + 60 => '0.26.0', 57 => '0.25.0', 55 => '0.20.1', 53 => '0.18.0', From 005299a7ab1d4007a6efbab49a98b2c6ae9d6a03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20Brekelmans?= <9531344+dbrekelmans@users.noreply.github.com> Date: Mon, 3 Nov 2025 12:10:01 +0100 Subject: [PATCH 2/3] Pass github token to prevent rate-limiting on geckodriver github releases page --- .github/workflows/qa.yml | 2 ++ README.md | 3 +++ src/Driver/GeckoDriver/VersionResolver.php | 11 ++++++++++- 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/.github/workflows/qa.yml b/.github/workflows/qa.yml index 96b1b7c..eaeef2c 100644 --- a/.github/workflows/qa.yml +++ b/.github/workflows/qa.yml @@ -39,6 +39,8 @@ jobs: - run: vendor/bin/phpcs --warning-severity=0 e2e: runs-on: ${{ matrix.os }} + env: + GITHUB_TOKEN: ${{ secrets.PAT }} strategy: matrix: os: [ ubuntu-latest, macos-latest, windows-latest ] diff --git a/README.md b/README.md index 139af3b..9c38351 100644 --- a/README.md +++ b/README.md @@ -46,3 +46,6 @@ For a full list of available commands, run `bdi list`. * google-chrome * chromium * firefox + +### Environment variables +* `GITHUB_TOKEN` - Geckodriver version resolver fetches the latest version from GitHub. You can set this environment variable to avoid rate limiting in CI environments. \ No newline at end of file diff --git a/src/Driver/GeckoDriver/VersionResolver.php b/src/Driver/GeckoDriver/VersionResolver.php index 84d84a6..cdf3c20 100644 --- a/src/Driver/GeckoDriver/VersionResolver.php +++ b/src/Driver/GeckoDriver/VersionResolver.php @@ -63,7 +63,16 @@ public function fromBrowser(Browser $browser): Version public function latest(): Version { - $response = $this->httpClient->request('GET', self::LATEST_VERSION_ENDPOINT); + $options = []; + + $token = getenv('GITHUB_TOKEN'); + if ($token !== false && $token !== '') { + $options['headers'] = [ + 'Authorization' => sprintf('Bearer %s', $token), + ]; + } + + $response = $this->httpClient->request('GET', self::LATEST_VERSION_ENDPOINT, $options); /** @var array $data */ $data = json_decode($response->getContent(), true); From 862b8d6a8b192ab1e88504d800adeb6cf7b06227 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20Brekelmans?= <9531344+dbrekelmans@users.noreply.github.com> Date: Mon, 3 Nov 2025 12:17:10 +0100 Subject: [PATCH 3/3] Fix test --- src/Driver/GeckoDriver/VersionResolver.php | 1 + .../GeckoDriver/VersionResolverTest.php | 6 +- tests/fixtures/githubResponseGeckoLatest.json | 341 +++++++++++++----- 3 files changed, 261 insertions(+), 87 deletions(-) diff --git a/src/Driver/GeckoDriver/VersionResolver.php b/src/Driver/GeckoDriver/VersionResolver.php index cdf3c20..0e59738 100644 --- a/src/Driver/GeckoDriver/VersionResolver.php +++ b/src/Driver/GeckoDriver/VersionResolver.php @@ -11,6 +11,7 @@ use RuntimeException; use Symfony\Contracts\HttpClient\HttpClientInterface; +use function getenv; use function krsort; use function Safe\json_decode; use function sprintf; diff --git a/tests/Driver/GeckoDriver/VersionResolverTest.php b/tests/Driver/GeckoDriver/VersionResolverTest.php index 0c8b982..0a6046b 100644 --- a/tests/Driver/GeckoDriver/VersionResolverTest.php +++ b/tests/Driver/GeckoDriver/VersionResolverTest.php @@ -35,8 +35,8 @@ static function (string $method, string $url): MockResponse { }, ); $this->versionResolver = new VersionResolver($this->httpClient); - $this->chrome = new Browser(BrowserName::GOOGLE_CHROME, Version::fromString('86.0.4240.80'), OperatingSystem::MACOS); - $this->firefox = new Browser(BrowserName::FIREFOX, Version::fromString('81.0.2'), OperatingSystem::MACOS); + $this->chrome = new Browser(BrowserName::GOOGLE_CHROME, Version::fromString('142.0.7444.60'), OperatingSystem::MACOS); + $this->firefox = new Browser(BrowserName::FIREFOX, Version::fromString('144.0.2'), OperatingSystem::MACOS); } public function testDoesNotSupportChrome(): void @@ -53,7 +53,7 @@ public function testLatestVersionForRecentBrowser(): void { $geckoVersion = $this->versionResolver->fromBrowser($this->firefox); - self::assertEquals(Version::fromString('0.28.0'), $geckoVersion); + self::assertEquals(Version::fromString('0.36.0'), $geckoVersion); } public function testVersionForOldBrowser(): void diff --git a/tests/fixtures/githubResponseGeckoLatest.json b/tests/fixtures/githubResponseGeckoLatest.json index 02a7b2d..c4ea289 100644 --- a/tests/fixtures/githubResponseGeckoLatest.json +++ b/tests/fixtures/githubResponseGeckoLatest.json @@ -1,19 +1,14 @@ { - "url": "https://api.github.com/repos/mozilla/geckodriver/releases/33414508", - "assets_url": "https://api.github.com/repos/mozilla/geckodriver/releases/33414508/assets", - "upload_url": "https://uploads.github.com/repos/mozilla/geckodriver/releases/33414508/assets{?name,label}", - "html_url": "https://github.com/mozilla/geckodriver/releases/tag/v0.28.0", - "id": 33414508, - "node_id": "MDc6UmVsZWFzZTMzNDE0NTA4", - "tag_name": "v0.28.0", - "target_commitish": "release", - "name": "0.28.0", - "draft": false, + "url": "https://api.github.com/repos/mozilla/geckodriver/releases/202267170", + "assets_url": "https://api.github.com/repos/mozilla/geckodriver/releases/202267170/assets", + "upload_url": "https://uploads.github.com/repos/mozilla/geckodriver/releases/202267170/assets{?name,label}", + "html_url": "https://github.com/mozilla/geckodriver/releases/tag/v0.36.0", + "id": 202267170, "author": { "login": "whimboo", "id": 129603, "node_id": "MDQ6VXNlcjEyOTYwMw==", - "avatar_url": "https://avatars2.githubusercontent.com/u/129603?v=4", + "avatar_url": "https://avatars.githubusercontent.com/u/129603?v=4", "gravatar_id": "", "url": "https://api.github.com/users/whimboo", "html_url": "https://github.com/whimboo", @@ -27,23 +22,31 @@ "events_url": "https://api.github.com/users/whimboo/events{/privacy}", "received_events_url": "https://api.github.com/users/whimboo/received_events", "type": "User", + "user_view_type": "public", "site_admin": false }, + "node_id": "RE_kwDOAYLgmc4MDloi", + "tag_name": "v0.36.0", + "target_commitish": "release", + "name": "0.36.0", + "draft": false, + "immutable": false, "prerelease": false, - "created_at": "2020-11-03T16:47:06Z", - "published_at": "2020-11-03T17:01:09Z", + "created_at": "2025-02-25T11:06:13Z", + "updated_at": "2025-04-11T11:14:44Z", + "published_at": "2025-02-25T11:12:36Z", "assets": [ { - "url": "https://api.github.com/repos/mozilla/geckodriver/releases/assets/27894713", - "id": 27894713, - "node_id": "MDEyOlJlbGVhc2VBc3NldDI3ODk0NzEz", - "name": "geckodriver-v0.28.0-linux32.tar.gz", + "url": "https://api.github.com/repos/mozilla/geckodriver/releases/assets/232398253", + "id": 232398253, + "node_id": "RA_kwDOAYLgmc4N2h2t", + "name": "geckodriver-v0.36.0-linux-aarch64.tar.gz", "label": null, "uploader": { "login": "whimboo", "id": 129603, "node_id": "MDQ6VXNlcjEyOTYwMw==", - "avatar_url": "https://avatars2.githubusercontent.com/u/129603?v=4", + "avatar_url": "https://avatars.githubusercontent.com/u/129603?v=4", "gravatar_id": "", "url": "https://api.github.com/users/whimboo", "html_url": "https://github.com/whimboo", @@ -57,27 +60,29 @@ "events_url": "https://api.github.com/users/whimboo/events{/privacy}", "received_events_url": "https://api.github.com/users/whimboo/received_events", "type": "User", + "user_view_type": "public", "site_admin": false }, "content_type": "application/x-gzip", "state": "uploaded", - "size": 2790467, - "download_count": 670, - "created_at": "2020-11-03T17:03:09Z", - "updated_at": "2020-11-03T17:03:13Z", - "browser_download_url": "https://github.com/mozilla/geckodriver/releases/download/v0.28.0/geckodriver-v0.28.0-linux32.tar.gz" + "size": 2171662, + "digest": null, + "download_count": 456612, + "created_at": "2025-02-25T11:07:39Z", + "updated_at": "2025-02-25T11:07:43Z", + "browser_download_url": "https://github.com/mozilla/geckodriver/releases/download/v0.36.0/geckodriver-v0.36.0-linux-aarch64.tar.gz" }, { - "url": "https://api.github.com/repos/mozilla/geckodriver/releases/assets/27894734", - "id": 27894734, - "node_id": "MDEyOlJlbGVhc2VBc3NldDI3ODk0NzM0", - "name": "geckodriver-v0.28.0-linux32.tar.gz.asc", + "url": "https://api.github.com/repos/mozilla/geckodriver/releases/assets/232398267", + "id": 232398267, + "node_id": "RA_kwDOAYLgmc4N2h27", + "name": "geckodriver-v0.36.0-linux-aarch64.tar.gz.asc", "label": null, "uploader": { "login": "whimboo", "id": 129603, "node_id": "MDQ6VXNlcjEyOTYwMw==", - "avatar_url": "https://avatars2.githubusercontent.com/u/129603?v=4", + "avatar_url": "https://avatars.githubusercontent.com/u/129603?v=4", "gravatar_id": "", "url": "https://api.github.com/users/whimboo", "html_url": "https://github.com/whimboo", @@ -91,27 +96,29 @@ "events_url": "https://api.github.com/users/whimboo/events{/privacy}", "received_events_url": "https://api.github.com/users/whimboo/received_events", "type": "User", + "user_view_type": "public", "site_admin": false }, "content_type": "text/plain", "state": "uploaded", "size": 833, - "download_count": 436, - "created_at": "2020-11-03T17:03:13Z", - "updated_at": "2020-11-03T17:03:14Z", - "browser_download_url": "https://github.com/mozilla/geckodriver/releases/download/v0.28.0/geckodriver-v0.28.0-linux32.tar.gz.asc" + "digest": null, + "download_count": 19446, + "created_at": "2025-02-25T11:07:43Z", + "updated_at": "2025-02-25T11:07:43Z", + "browser_download_url": "https://github.com/mozilla/geckodriver/releases/download/v0.36.0/geckodriver-v0.36.0-linux-aarch64.tar.gz.asc" }, { - "url": "https://api.github.com/repos/mozilla/geckodriver/releases/assets/27894735", - "id": 27894735, - "node_id": "MDEyOlJlbGVhc2VBc3NldDI3ODk0NzM1", - "name": "geckodriver-v0.28.0-linux64.tar.gz", + "url": "https://api.github.com/repos/mozilla/geckodriver/releases/assets/232398270", + "id": 232398270, + "node_id": "RA_kwDOAYLgmc4N2h2-", + "name": "geckodriver-v0.36.0-linux32.tar.gz", "label": null, "uploader": { "login": "whimboo", "id": 129603, "node_id": "MDQ6VXNlcjEyOTYwMw==", - "avatar_url": "https://avatars2.githubusercontent.com/u/129603?v=4", + "avatar_url": "https://avatars.githubusercontent.com/u/129603?v=4", "gravatar_id": "", "url": "https://api.github.com/users/whimboo", "html_url": "https://github.com/whimboo", @@ -125,27 +132,29 @@ "events_url": "https://api.github.com/users/whimboo/events{/privacy}", "received_events_url": "https://api.github.com/users/whimboo/received_events", "type": "User", + "user_view_type": "public", "site_admin": false }, "content_type": "application/x-gzip", "state": "uploaded", - "size": 2650003, - "download_count": 26114, - "created_at": "2020-11-03T17:03:14Z", - "updated_at": "2020-11-03T17:03:17Z", - "browser_download_url": "https://github.com/mozilla/geckodriver/releases/download/v0.28.0/geckodriver-v0.28.0-linux64.tar.gz" + "size": 2266693, + "digest": null, + "download_count": 51169, + "created_at": "2025-02-25T11:07:43Z", + "updated_at": "2025-02-25T11:07:50Z", + "browser_download_url": "https://github.com/mozilla/geckodriver/releases/download/v0.36.0/geckodriver-v0.36.0-linux32.tar.gz" }, { - "url": "https://api.github.com/repos/mozilla/geckodriver/releases/assets/27894739", - "id": 27894739, - "node_id": "MDEyOlJlbGVhc2VBc3NldDI3ODk0NzM5", - "name": "geckodriver-v0.28.0-linux64.tar.gz.asc", + "url": "https://api.github.com/repos/mozilla/geckodriver/releases/assets/232398302", + "id": 232398302, + "node_id": "RA_kwDOAYLgmc4N2h3e", + "name": "geckodriver-v0.36.0-linux32.tar.gz.asc", "label": null, "uploader": { "login": "whimboo", "id": 129603, "node_id": "MDQ6VXNlcjEyOTYwMw==", - "avatar_url": "https://avatars2.githubusercontent.com/u/129603?v=4", + "avatar_url": "https://avatars.githubusercontent.com/u/129603?v=4", "gravatar_id": "", "url": "https://api.github.com/users/whimboo", "html_url": "https://github.com/whimboo", @@ -159,27 +168,29 @@ "events_url": "https://api.github.com/users/whimboo/events{/privacy}", "received_events_url": "https://api.github.com/users/whimboo/received_events", "type": "User", + "user_view_type": "public", "site_admin": false }, "content_type": "text/plain", "state": "uploaded", "size": 833, - "download_count": 422, - "created_at": "2020-11-03T17:03:17Z", - "updated_at": "2020-11-03T17:03:18Z", - "browser_download_url": "https://github.com/mozilla/geckodriver/releases/download/v0.28.0/geckodriver-v0.28.0-linux64.tar.gz.asc" + "digest": null, + "download_count": 18792, + "created_at": "2025-02-25T11:07:50Z", + "updated_at": "2025-02-25T11:07:51Z", + "browser_download_url": "https://github.com/mozilla/geckodriver/releases/download/v0.36.0/geckodriver-v0.36.0-linux32.tar.gz.asc" }, { - "url": "https://api.github.com/repos/mozilla/geckodriver/releases/assets/27894740", - "id": 27894740, - "node_id": "MDEyOlJlbGVhc2VBc3NldDI3ODk0NzQw", - "name": "geckodriver-v0.28.0-macos.tar.gz", + "url": "https://api.github.com/repos/mozilla/geckodriver/releases/assets/232398305", + "id": 232398305, + "node_id": "RA_kwDOAYLgmc4N2h3h", + "name": "geckodriver-v0.36.0-linux64.tar.gz", "label": null, "uploader": { "login": "whimboo", "id": 129603, "node_id": "MDQ6VXNlcjEyOTYwMw==", - "avatar_url": "https://avatars2.githubusercontent.com/u/129603?v=4", + "avatar_url": "https://avatars.githubusercontent.com/u/129603?v=4", "gravatar_id": "", "url": "https://api.github.com/users/whimboo", "html_url": "https://github.com/whimboo", @@ -193,27 +204,173 @@ "events_url": "https://api.github.com/users/whimboo/events{/privacy}", "received_events_url": "https://api.github.com/users/whimboo/received_events", "type": "User", + "user_view_type": "public", "site_admin": false }, "content_type": "application/x-gzip", "state": "uploaded", - "size": 1902197, - "download_count": 7748, - "created_at": "2020-11-03T17:03:18Z", - "updated_at": "2020-11-03T17:03:21Z", - "browser_download_url": "https://github.com/mozilla/geckodriver/releases/download/v0.28.0/geckodriver-v0.28.0-macos.tar.gz" + "size": 2306404, + "digest": null, + "download_count": 13265476, + "created_at": "2025-02-25T11:07:51Z", + "updated_at": "2025-02-25T11:07:53Z", + "browser_download_url": "https://github.com/mozilla/geckodriver/releases/download/v0.36.0/geckodriver-v0.36.0-linux64.tar.gz" + }, + { + "url": "https://api.github.com/repos/mozilla/geckodriver/releases/assets/232398309", + "id": 232398309, + "node_id": "RA_kwDOAYLgmc4N2h3l", + "name": "geckodriver-v0.36.0-linux64.tar.gz.asc", + "label": null, + "uploader": { + "login": "whimboo", + "id": 129603, + "node_id": "MDQ6VXNlcjEyOTYwMw==", + "avatar_url": "https://avatars.githubusercontent.com/u/129603?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/whimboo", + "html_url": "https://github.com/whimboo", + "followers_url": "https://api.github.com/users/whimboo/followers", + "following_url": "https://api.github.com/users/whimboo/following{/other_user}", + "gists_url": "https://api.github.com/users/whimboo/gists{/gist_id}", + "starred_url": "https://api.github.com/users/whimboo/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/whimboo/subscriptions", + "organizations_url": "https://api.github.com/users/whimboo/orgs", + "repos_url": "https://api.github.com/users/whimboo/repos", + "events_url": "https://api.github.com/users/whimboo/events{/privacy}", + "received_events_url": "https://api.github.com/users/whimboo/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain", + "state": "uploaded", + "size": 833, + "digest": null, + "download_count": 29750, + "created_at": "2025-02-25T11:07:53Z", + "updated_at": "2025-02-25T11:07:54Z", + "browser_download_url": "https://github.com/mozilla/geckodriver/releases/download/v0.36.0/geckodriver-v0.36.0-linux64.tar.gz.asc" + }, + { + "url": "https://api.github.com/repos/mozilla/geckodriver/releases/assets/232398313", + "id": 232398313, + "node_id": "RA_kwDOAYLgmc4N2h3p", + "name": "geckodriver-v0.36.0-macos-aarch64.tar.gz", + "label": null, + "uploader": { + "login": "whimboo", + "id": 129603, + "node_id": "MDQ6VXNlcjEyOTYwMw==", + "avatar_url": "https://avatars.githubusercontent.com/u/129603?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/whimboo", + "html_url": "https://github.com/whimboo", + "followers_url": "https://api.github.com/users/whimboo/followers", + "following_url": "https://api.github.com/users/whimboo/following{/other_user}", + "gists_url": "https://api.github.com/users/whimboo/gists{/gist_id}", + "starred_url": "https://api.github.com/users/whimboo/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/whimboo/subscriptions", + "organizations_url": "https://api.github.com/users/whimboo/orgs", + "repos_url": "https://api.github.com/users/whimboo/repos", + "events_url": "https://api.github.com/users/whimboo/events{/privacy}", + "received_events_url": "https://api.github.com/users/whimboo/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-gzip", + "state": "uploaded", + "size": 2066443, + "digest": null, + "download_count": 814579, + "created_at": "2025-02-25T11:07:54Z", + "updated_at": "2025-02-25T11:07:57Z", + "browser_download_url": "https://github.com/mozilla/geckodriver/releases/download/v0.36.0/geckodriver-v0.36.0-macos-aarch64.tar.gz" + }, + { + "url": "https://api.github.com/repos/mozilla/geckodriver/releases/assets/232398316", + "id": 232398316, + "node_id": "RA_kwDOAYLgmc4N2h3s", + "name": "geckodriver-v0.36.0-macos.tar.gz", + "label": null, + "uploader": { + "login": "whimboo", + "id": 129603, + "node_id": "MDQ6VXNlcjEyOTYwMw==", + "avatar_url": "https://avatars.githubusercontent.com/u/129603?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/whimboo", + "html_url": "https://github.com/whimboo", + "followers_url": "https://api.github.com/users/whimboo/followers", + "following_url": "https://api.github.com/users/whimboo/following{/other_user}", + "gists_url": "https://api.github.com/users/whimboo/gists{/gist_id}", + "starred_url": "https://api.github.com/users/whimboo/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/whimboo/subscriptions", + "organizations_url": "https://api.github.com/users/whimboo/orgs", + "repos_url": "https://api.github.com/users/whimboo/repos", + "events_url": "https://api.github.com/users/whimboo/events{/privacy}", + "received_events_url": "https://api.github.com/users/whimboo/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-gzip", + "state": "uploaded", + "size": 2291861, + "digest": null, + "download_count": 375024, + "created_at": "2025-02-25T11:07:57Z", + "updated_at": "2025-02-25T11:08:00Z", + "browser_download_url": "https://github.com/mozilla/geckodriver/releases/download/v0.36.0/geckodriver-v0.36.0-macos.tar.gz" + }, + { + "url": "https://api.github.com/repos/mozilla/geckodriver/releases/assets/232398318", + "id": 232398318, + "node_id": "RA_kwDOAYLgmc4N2h3u", + "name": "geckodriver-v0.36.0-win-aarch64.zip", + "label": null, + "uploader": { + "login": "whimboo", + "id": 129603, + "node_id": "MDQ6VXNlcjEyOTYwMw==", + "avatar_url": "https://avatars.githubusercontent.com/u/129603?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/whimboo", + "html_url": "https://github.com/whimboo", + "followers_url": "https://api.github.com/users/whimboo/followers", + "following_url": "https://api.github.com/users/whimboo/following{/other_user}", + "gists_url": "https://api.github.com/users/whimboo/gists{/gist_id}", + "starred_url": "https://api.github.com/users/whimboo/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/whimboo/subscriptions", + "organizations_url": "https://api.github.com/users/whimboo/orgs", + "repos_url": "https://api.github.com/users/whimboo/repos", + "events_url": "https://api.github.com/users/whimboo/events{/privacy}", + "received_events_url": "https://api.github.com/users/whimboo/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1695995, + "digest": null, + "download_count": 118794, + "created_at": "2025-02-25T11:08:00Z", + "updated_at": "2025-02-25T11:08:02Z", + "browser_download_url": "https://github.com/mozilla/geckodriver/releases/download/v0.36.0/geckodriver-v0.36.0-win-aarch64.zip" }, { - "url": "https://api.github.com/repos/mozilla/geckodriver/releases/assets/27894742", - "id": 27894742, - "node_id": "MDEyOlJlbGVhc2VBc3NldDI3ODk0NzQy", - "name": "geckodriver-v0.28.0-win32.zip", + "url": "https://api.github.com/repos/mozilla/geckodriver/releases/assets/232398322", + "id": 232398322, + "node_id": "RA_kwDOAYLgmc4N2h3y", + "name": "geckodriver-v0.36.0-win32.zip", "label": null, "uploader": { "login": "whimboo", "id": 129603, "node_id": "MDQ6VXNlcjEyOTYwMw==", - "avatar_url": "https://avatars2.githubusercontent.com/u/129603?v=4", + "avatar_url": "https://avatars.githubusercontent.com/u/129603?v=4", "gravatar_id": "", "url": "https://api.github.com/users/whimboo", "html_url": "https://github.com/whimboo", @@ -227,27 +384,29 @@ "events_url": "https://api.github.com/users/whimboo/events{/privacy}", "received_events_url": "https://api.github.com/users/whimboo/received_events", "type": "User", + "user_view_type": "public", "site_admin": false }, "content_type": "application/zip", "state": "uploaded", - "size": 1421771, - "download_count": 3690, - "created_at": "2020-11-03T17:03:21Z", - "updated_at": "2020-11-03T17:03:23Z", - "browser_download_url": "https://github.com/mozilla/geckodriver/releases/download/v0.28.0/geckodriver-v0.28.0-win32.zip" + "size": 1780945, + "digest": null, + "download_count": 361140, + "created_at": "2025-02-25T11:08:02Z", + "updated_at": "2025-02-25T11:08:05Z", + "browser_download_url": "https://github.com/mozilla/geckodriver/releases/download/v0.36.0/geckodriver-v0.36.0-win32.zip" }, { - "url": "https://api.github.com/repos/mozilla/geckodriver/releases/assets/27894747", - "id": 27894747, - "node_id": "MDEyOlJlbGVhc2VBc3NldDI3ODk0NzQ3", - "name": "geckodriver-v0.28.0-win64.zip", + "url": "https://api.github.com/repos/mozilla/geckodriver/releases/assets/232398326", + "id": 232398326, + "node_id": "RA_kwDOAYLgmc4N2h32", + "name": "geckodriver-v0.36.0-win64.zip", "label": null, "uploader": { "login": "whimboo", "id": 129603, "node_id": "MDQ6VXNlcjEyOTYwMw==", - "avatar_url": "https://avatars2.githubusercontent.com/u/129603?v=4", + "avatar_url": "https://avatars.githubusercontent.com/u/129603?v=4", "gravatar_id": "", "url": "https://api.github.com/users/whimboo", "html_url": "https://github.com/whimboo", @@ -261,18 +420,32 @@ "events_url": "https://api.github.com/users/whimboo/events{/privacy}", "received_events_url": "https://api.github.com/users/whimboo/received_events", "type": "User", + "user_view_type": "public", "site_admin": false }, "content_type": "application/zip", "state": "uploaded", - "size": 1504552, - "download_count": 19457, - "created_at": "2020-11-03T17:03:32Z", - "updated_at": "2020-11-03T17:03:53Z", - "browser_download_url": "https://github.com/mozilla/geckodriver/releases/download/v0.28.0/geckodriver-v0.28.0-win64.zip" + "size": 1845646, + "digest": null, + "download_count": 3137265, + "created_at": "2025-02-25T11:08:05Z", + "updated_at": "2025-02-25T11:08:08Z", + "browser_download_url": "https://github.com/mozilla/geckodriver/releases/download/v0.36.0/geckodriver-v0.36.0-win64.zip" } ], - "tarball_url": "https://api.github.com/repos/mozilla/geckodriver/tarball/v0.28.0", - "zipball_url": "https://api.github.com/repos/mozilla/geckodriver/zipball/v0.28.0", - "body": "0.28.0 (2020-11-03, `c00d2b6acd3f`)\r\n--------------------\r\n\r\n### Known problems\r\n\r\n- _macOS 10.15 (Catalina):_\r\n\r\n Due to the requirement from Apple that all programs must be notarized, geckodriver will not work on Catalina if you manually download it through another notarized program, such as Firefox.\r\n\r\n Whilst we are working on a repackaging fix for this problem, you can find more details on how to work around this issue in the [macOS notarization](https://firefox-source-docs.mozilla.org/testing/geckodriver/Notarization.html) section of the documentation.\r\n\r\n### Added\r\n\r\n- The command line flag `--android-storage` has been added, to allow geckodriver to also control Firefox on root-less Android devices. See the [documentation](https://firefox-source-docs.mozilla.org/testing/geckodriver/Flags.html) for available values.\r\n\r\n### Fixed\r\n\r\n- Firefox can be started again via a shell script that is located outside of the Firefox directory on Linux.\r\n\r\n- If Firefox cannot be started by geckodriver the real underlying error message is now being reported.\r\n\r\n- Version numbers for minor and extended support releases of Firefox are now parsed correctly.\r\n\r\n### Removed\r\n\r\n- Since Firefox 72 extension commands for finding an element’s anonymous children and querying its attributes are no longer needed, and have been removed." + "tarball_url": "https://api.github.com/repos/mozilla/geckodriver/tarball/v0.36.0", + "zipball_url": "https://api.github.com/repos/mozilla/geckodriver/zipball/v0.36.0", + "body": "## 0.36.0 (2025-02-25, `a3d508507022`)\r\n\r\n### Known problems\r\n\r\n- _Startup hang with Firefox running in a container (e.g. snap, flatpak):_\r\n\r\n When Firefox is packaged inside a container (like the default Firefox browser\r\n shipped with Ubuntu 22.04), it may see a different filesystem to the host.\r\n This can affect access to the generated profile directory, which may result\r\n in a hang when starting Firefox. Workarounds are listed in the geckodriver\r\n [usage documentation](https://firefox-source-docs.mozilla.org/testing/geckodriver/Usage.html#Running-Firefox-in-an-container-based-package).\r\n\r\n- Virtual Authenticator endpoints are currently unreliable.\r\n\r\n Since their introduction in geckodriver 0.34.0, several Virtual Authenticator\r\n endpoints have been reported as non-functional or behaving unexpectedly.\r\n We recommend avoiding the use of these commands until the known issues have\r\n been resolved.\r\n\r\n### Added\r\n\r\n- Support for searching the Firefox Developer Edition’s default path on macOS.\r\n\r\n Implemented by [Gatlin Newhouse](https://github.com/gatlinnewhouse).\r\n\r\n- Ability to push a WebExtension archive as created from a base64 encoded string\r\n to an Android device.\r\n\r\n- Added an `allowPrivateBrowsing` field for POST `/session/{session id}/moz/addon/install`\r\n to allow the installation of a WebExtension that is enabled in Private Browsing mode.\r\n\r\n- Introduced the [`--allow-system-access`](https://firefox-source-docs.mozilla.org/testing/geckodriver/Flags.html#allow-system-access) command line argument for geckodriver, which will\r\n be required for future versions of Firefox (potentially starting with 138.0) to allow\r\n testing in the `chrome` context.\r\n\r\n- Added support for preserving crash dumps for crash report analysis when\r\n Firefox crashes. If the `MINIDUMP_SAVE_PATH` environment variable is set\r\n to an existing folder, crash dumps will be saved accordingly. For mobile\r\n devices, the generated minidump files will be automatically transferred\r\n to the host machine.\r\n\r\n For more details see the documentation of how to handle [crash reports](https://firefox-source-docs.mozilla.org/testing/geckodriver/CrashReports.html).\r\n\r\n### Changed\r\n\r\n- Updated the type of the `x` and `y` fields of pointer move actions (mouse and touch)\r\n from integer to fractional numbers to ensure a more precise input control.\r\n\r\n Note: Support for fractional values is available starting with Firefox 137.\r\n For older versions, clients or tests must explicitly pass integer values for\r\n both fields.\r\n\r\n- Replaced `serde_yaml` with `yaml-rust` because it's no longer officially supported.\r\n\r\n- The `--enable-crash-reporter` command line argument has been deprecated to\r\n prevent crash reports from being submitted to Socorro. This argument will be\r\n completely removed in the next version.\r\n\r\n Instead, use the `MINIDUMP_SAVE_PATH` environment variable to get minidump\r\n files saved to a specified location.\r\n\r\n### Fixed\r\n\r\n- Fixed route registration for `WebAuthn` commands, which were introduced in\r\n geckodriver 0.34.0 but mistakenly registered under `/sessions/` instead of\r\n `/session/`, causing them to be non-functional.\r\n\r\n### Removed\r\n\r\n- Removed the `-no-remote` command-line argument usage for Firefox, which does no longer exist.\r\n", + "reactions": { + "url": "https://api.github.com/repos/mozilla/geckodriver/releases/202267170/reactions", + "total_count": 81, + "+1": 52, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 10, + "rocket": 11, + "eyes": 8 + } } \ No newline at end of file