{"id":20152969,"url":"https://github.com/jay0lee/chrome-bisect","last_synced_at":"2026-04-11T23:02:51.914Z","repository":{"id":63154799,"uuid":"133098707","full_name":"jay0lee/chrome-bisect","owner":"jay0lee","description":"Packaged Chrome bisect tool","archived":false,"fork":false,"pushed_at":"2026-03-21T20:55:47.000Z","size":4910,"stargazers_count":16,"open_issues_count":2,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-03-22T09:37:34.879Z","etag":null,"topics":["bisect","browser","chrome","chromium","troubleshooting"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jay0lee.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-05-11T23:49:07.000Z","updated_at":"2026-02-26T21:49:56.000Z","dependencies_parsed_at":"2024-01-06T21:27:55.632Z","dependency_job_id":"326411f6-8390-400a-9902-f169df4271eb","html_url":"https://github.com/jay0lee/chrome-bisect","commit_stats":null,"previous_names":[],"tags_count":346,"template":false,"template_full_name":null,"purl":"pkg:github/jay0lee/chrome-bisect","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jay0lee%2Fchrome-bisect","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jay0lee%2Fchrome-bisect/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jay0lee%2Fchrome-bisect/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jay0lee%2Fchrome-bisect/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jay0lee","download_url":"https://codeload.github.com/jay0lee/chrome-bisect/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jay0lee%2Fchrome-bisect/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31292637,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T21:15:39.731Z","status":"ssl_error","status_checked_at":"2026-04-01T21:15:34.046Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bisect","browser","chrome","chromium","troubleshooting"],"created_at":"2024-11-13T23:16:16.324Z","updated_at":"2026-04-01T22:15:07.107Z","avatar_url":"https://github.com/jay0lee.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Chrome Bisect\nChrome Bisect is a packaging of the [bisect-builds.py tool](https://www.chromium.org/developers/bisect-builds-py). It's goal is to make it easy for IT admins to determine when Chrome browser began behaving differently and why it did so (deprecation, regression bug, etc).\n\n[![Build Chrome Bisect Script](https://github.com/jay0lee/chrome-bisect/actions/workflows/main.yml/badge.svg)](https://github.com/jay0lee/chrome-bisect/actions/workflows/main.yml)\n\n# Quick Start\nDownload the [latest release](https://github.com/jay0lee/chrome-bisect/releases) for your OS, extract it and run chrome_bisect.\n\n# Running Chrome Bisect\nYou need to know a few things before you run Chrome Bisect effectively:\n* Exact, minimal steps to reproduce (recreate) the issue you are having with Chrome. This would look something like:\n  * Visit http://www.example.com\n  * Log in.\n  * Browse to Products \u003e Widgets page\n  * Attempt to view a widget\n  * Issue occurs when widget does not show.\n* The last version of Chrome browser where you DID NOT SEE this issue. This can be a major Chrome release number like M65.\n* The first version of Chrome browser where you DID SEE the issue. This can be a major Chrome release number like M66.\n\nOnce you know these details, go ahead and run Chrome Bisect. Use `chrome-bisect --help` to understand all the proper arguments. Here's a sample command:\n\n```\nchrome_bisect --good M85 --bad M90 -- https://www.google.com/\n```\n* the following defaults will be used if not manually specified:\n```\n    --use-local-cache --verify-range --good \u003clatest stable version minus 6\u003e --bad \u003clatest canary version\u003e\n```\n* The tool will download numerous Chromium browser builds for you to test with. Each version was built chronologically sometime between the two milestone versions you specified for good and bad. This allows the tool to narrow down when the change that broke you occurred.\n* Each time Chromium browser runs on your machine, try to reproduce the issue. If you cannot reproduce the issue, this version of Chromium is considered \"good\". If you can reproduce the issue, this version of Chromium is considered \"bad\".\n* Once you exit a Chromium browser, the tool will prompt you to mark the build as good or bad. Be sure to enter accurate information or the results will be wrong.\n* You can also retry a given Chromium build or quit completely if you think there are other issues.\n* Depending on the range of Chromium builds you specified as known good and known bad, you'll need to keep on testing additional builds until the range is narrowed down as tightly as possible. This will mean running a dozen or more builds of Chromium which is why you want to get the reproduction steps as short as possible.\n* Once the tool has a precise good vs bad build range, it will let you know and provide you with a URL that shows you all of the changes to Chromium browser between the two builds. With this information, you may be able to narrow down why the change was made that caused your issue.\n  * Please be aware that not every issue you face is a regression bug in Chrome. For security and stability reasons, the browser regularly removes deprecated features / functionality. It may be on you to upgrade your site or environment to meet the new browser requirements.\n  * If you still believe the issue is a regression bug in Chrome browser, please file an issue at [crbug.com](https://crbug.com) and/or open a Enterprise support case with full details including the log generated by Chrome Bisect.\n  \n # An example Chrome Bisect\n You own the site [batstat.jaylee.us](https://batstat.jaylee.us/), a website that shows users their current device battery status. After Chrome browser version 103 was released some users started reporting that battery status failed with a Chrome API error and you're not sure why it's failing. Let's run a bisect to understand exactly when between Chrome 102 and 103 it started failing and what the reason might be:\n  1. Run Chrome Bisect:\n\n```\nchrome_bisect --good M102 --bad M103 -- http://batstat.jaylee.us:80/\n```\n\n  2. The tool will start downloading Chromium builds. If the Chromium build launches and a green \"GOOD\" page loads with battery information, exit Chromium and mark the version as \"g\" GOOD. If a red page loads with BAD and complains of an API error, exit Chromium and mark the version as \"b\" BAD.\n  3. The tool will need to download and run about a dozen builds to narrow the build range as tightly as possible. Keep marking builds as good or bad based on the page it shows until the tool finishes. Be careful here, marking one build wrong will cause the whole bisect to fail and show invalid results.\n  4. Once the tool is finished with builds, it will tell you the exact builds between good and bad behavior. It also gives you a link to the changes that were made to Chromium browser between the last good and first bad build.\n  5. Open the changelog page and look through the list. (hint: here's [the changelog](https://chromium.googlesource.com/chromium/src/+log/6532aeeb8d42d47a236daade0441c7116d71d434..390d9b92ad768451683d89df70e6edcf2b893493) you should get.)\n      * Can you tell which exact change in the list caused the site to stop loading? (hint, search the list of changes for \"battery\")\n      * Why was that change made?\n      * What might you need to do to fix your site? (hint, notice how HTTPS://batstat.jaylee.us works in newer Chrome versions but HTTP://batstat.jaylee.us only works in Chrome 102 and earlier)\n  6. For reference, here's the full output of an example run:\n\n\u003cdetails\u003e\n  \u003csummary\u003e\n    Expand for full command output\n  \u003c/summary\u003e\n\u003ccode\u003e\n$ ./chrome_bisect --good M102 --bad M103 -- http://batstat.jaylee.us:80/\nrunning bisect-builds.py with options: --good 992738 --bad M103 --verify-range --use-local-cache --archive linux64 -- http://batstat.jaylee.us:80/\nScanning from 992738 to 1002911 (10173 revisions).\nDownloading list of known revisions... \nLoaded revisions 41523-1118151 from /home/jayhlee/cb/chrome_bisect/.bisect-builds-cache.json\nDownloading revision 992740...\nReceived 154342263 of 154342263 bytes, 100.00%\nTrying revision 992740...\nRevision 992740 is [(g)ood/(b)ad/(r)etry/(u)nknown/(s)tdout/(q)uit]: g\nDownloading revision 1002910...\nTrying revision 1002910...\nRevision 1002910 is [(g)ood/(b)ad/(r)etry/(u)nknown/(s)tdout/(q)uit]: b\nDownloading revision 998107...\nBisecting range [992740 (good), 1002910 (bad)], roughly 11 steps left.\nTrying revision 998107...\nRevision 998107 is [(g)ood/(b)ad/(r)etry/(u)nknown/(s)tdout/(q)uit]: b\nDownloading revision 995067...\nReceived 154537868 of 154537868 bytes, 100.00%\nBisecting range [992740 (good), 998107 (bad)], roughly 10 steps left.\nTrying revision 995067...\nRevision 995067 is [(g)ood/(b)ad/(r)etry/(u)nknown/(s)tdout/(q)uit]: g\nDownloading revision 996538...\nReceived 154807698 of 154807698 bytes, 100.00%\nBisecting range [995067 (good), 998107 (bad)], roughly 9 steps left.\nTrying revision 996538...\nRevision 996538 is [(g)ood/(b)ad/(r)etry/(u)nknown/(s)tdout/(q)uit]: g\nDownloading revision 997440...\nReceived 154925953 of 154925953 bytes, 100.00%\nBisecting range [996538 (good), 998107 (bad)], roughly 8 steps left.\nTrying revision 997440...\nRevision 997440 is [(g)ood/(b)ad/(r)etry/(u)nknown/(s)tdout/(q)uit]: g\nDownloading revision 997790...\nReceived 155344479 of 155344479 bytes, 100.00%\nBisecting range [997440 (good), 998107 (bad)], roughly 7 steps left.\nTrying revision 997790...\nRevision 997790 is [(g)ood/(b)ad/(r)etry/(u)nknown/(s)tdout/(q)uit]: b\nDownloading revision 997598...\nReceived 154954643 of 154954643 bytes, 100.00%\nBisecting range [997440 (good), 997790 (bad)], roughly 6 steps left.\nTrying revision 997598...\nRevision 997598 is [(g)ood/(b)ad/(r)etry/(u)nknown/(s)tdout/(q)uit]: g\nDownloading revision 997664...\nReceived 154954126 of 154954126 bytes, 100.00%\nBisecting range [997598 (good), 997790 (bad)], roughly 5 steps left.\nTrying revision 997664...\nRevision 997664 is [(g)ood/(b)ad/(r)etry/(u)nknown/(s)tdout/(q)uit]: g\nDownloading revision 997718...\nReceived 154953295 of 154953295 bytes, 100.00%\nBisecting range [997664 (good), 997790 (bad)], roughly 4 steps left.\nTrying revision 997718...\nRevision 997718 is [(g)ood/(b)ad/(r)etry/(u)nknown/(s)tdout/(q)uit]: g\nDownloading revision 997744...\nReceived 154955563 of 154955563 bytes, 100.00%\nBisecting range [997718 (good), 997790 (bad)], roughly 4 steps left.\nTrying revision 997744...\nRevision 997744 is [(g)ood/(b)ad/(r)etry/(u)nknown/(s)tdout/(q)uit]: g\nDownloading revision 997775...\nReceived 155344747 of 155344747 bytes, 100.00%\nBisecting range [997744 (good), 997790 (bad)], roughly 3 steps left.\nTrying revision 997775...\nRevision 997775 is [(g)ood/(b)ad/(r)etry/(u)nknown/(s)tdout/(q)uit]: b\nDownloading revision 997757...\nReceived 155345317 of 155345317 bytes, 100.00%\nBisecting range [997744 (good), 997775 (bad)], roughly 2 steps left.\nTrying revision 997757...\nRevision 997757 is [(g)ood/(b)ad/(r)etry/(u)nknown/(s)tdout/(q)uit]: g\nYou are probably looking for a change made after 997757 (known good), but no later than 997775 (first known bad).\nCHANGELOG URL:\n  https://chromium.googlesource.com/chromium/src/+log/03e9c2b23047e8bc7cdbbd5843b52112817ed1d6..53d540703b72faa87436f51279043c094939418f\n\u003c/code\u003e\n\u003c/details\u003e\n\n\n# Known Limitations\nAs mentioned above, Chrome Bisect has a few limitations that you should be aware of:\n* Chrome Bisect downloads public Chromium browser binaries to test with, these open-source public builds do not contain everything the official Chrome browser contains and may not be good for testing issues related to:\n     * The PDF Viewer\n     * Adobe Flash Player\n     * Widevine DRM\n* If you have an issue on Chrome OS try reproducing it in Chrome browser on Windows, Mac or Linux and see if you can utilize the tool there. The tool does support `--archive chromeos` on Linux which runs like Chrome OS but is not really full Chrome OS, your mileage may vary.\n* The script now has limited support for enterprise policies including Chrome Enterprise Core / Premium.\n  * To enroll in Chrome Enterprise Core / CBCM you need to set an enrollment token. The process is identical to official Chrome on Windows / MacOS. On Linux the file to store the token in should be `/etc/chromium/policies/enrollment/CloudManagementEnrollmentToken`.\n  * To use Chrome Sync and get user cloud policies the user must join the group at https://groups.google.com/u/0/a/chromium.org/g/google-browser-signin-testaccounts/about\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjay0lee%2Fchrome-bisect","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjay0lee%2Fchrome-bisect","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjay0lee%2Fchrome-bisect/lists"}