mcpbeat Sign in

Upgrade Browser Agent Skill

Upgrade browser versions (Chrome or Firefox) in the Flutter Web Engine and/or Framework tests. Use when asked to roll or upgrade Chrome or Firefox to a newer version.

2k tokens
context cost
the whole folder, loaded on every use
2
files
ships runnable scripts
0
copies elsewhere
how many repositories repackaged it
178160
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/flutter/flutter --skill upgrade-browser

What comes with it

3 382 bytes besides the instruction
scripts/fetch_versions.dart

The instruction itself

10 sections, as written by the author

Upgrade Browser

This skill automates the process of upgrading Chrome and Firefox versions in the Flutter Web Engine and the Framework tests.

Workflow

1. Identify and Verify the New Version

Before updating any files, find and verify the existence of the version you want to use.

  • To find the latest stable version:
  dart scripts/fetch_versions.dart latest <chrome|firefox>
  • To verify a specific version exists:
  dart scripts/fetch_versions.dart verify <chrome|firefox> <version>

This command will return true or false.

Verification Rules:

  • Enforced by default: If the command returns false, do not proceed.
  • Optional if requested: If the user explicitly asks to skip verification (e.g., "Upgrade to version X without verification"), you may skip this step.
  • Failed verification: If verification fails but the user confirms they want to proceed anyway, you may continue.

2. Update Local Files

The user may request to upgrade one or both locations. They may also use different versions for each location.

Flutter Web Engine (engine/src/flutter/lib/web_ui/dev/package_lock.yaml)

Update the version field for chrome or firefox.

chrome:
  version: 'NEW_VERSION'

firefox:
  version: 'NEW_VERSION'
Framework Tests (.ci.yaml)

Update all occurrences of chrome_and_driver with the new version.

- {"dependency": "chrome_and_driver", "version": "version:NEW_VERSION"}

Use replace with allow_multiple: true to ensure all instances are updated. Note: Currently, only Chrome is managed this way in .ci.yaml.

3. CI Config Sync

After updating the browser versions, synchronize the CI configurations. This step updates engine/src/flutter/ci/builders/linux_web_engine_test.json.

Only run this once. To verify if it needs to run, check the modification time of the file:

ls -l engine/src/flutter/ci/builders/linux_web_engine_test.json

From engine/src/flutter/lib/web_ui, run:

dev/felt generate-builder-json

Validation: Confirm the file engine/src/flutter/ci/builders/linux_web_engine_test.json has a new timestamp after the command finishes.

4. Local Verification

Before uploading to CIPD, run tests locally to ensure no regressions. From engine/src/flutter/lib/web_ui, run:

dev/felt test

*Note: You can use --browser <chrome|firefox> to limit the scope.*

5. CIPD Upload (Package Roller)

This is the final step as it uploads binaries to CIPD and requires special, temporary permissions.

  • Ask the user if they have the necessary CIPD permissions (contact #hackers-infra on Discord if unsure).
  • If confirmed, from engine/src/flutter/lib/web_ui, run:
   dart dev/package_roller.dart

*Note: Use --dry-run if the user wants to test first.*

Examples

  • User: "Upgrade Chrome and Firefox to the latest stable versions everywhere."
  • Agent:
  • Runs dart scripts/fetch_versions.dart latest to get the latest versions.
  • Updates engine/src/flutter/lib/web_ui/dev/package_lock.yaml and .ci.yaml.
  • Runs dev/felt generate-builder-json to sync CI configs.
  • Suggests running local tests.
  • Finally, asks about CIPD permissions.
  • User: "Roll Chrome to version 135.0.0.0 everywhere. Skip verification."
  • Agent:
  • Skips dart scripts/fetch_versions.dart verify because the user requested it.
  • Updates package_lock.yaml and .ci.yaml directly with 135.0.0.0.
  • Follows the rest of the workflow (Sync, Test, CIPD).
  • User: "Update Firefox in the web engine to 130.0."
  • Agent:
  • Verifies version 130.0 for Firefox using dart scripts/fetch_versions.dart verify firefox 130.0.
  • If verification fails, informs the user: "I was unable to verify Firefox version 130.0 through Mozilla's official release history. Are you sure this is the correct version number?"
  • If user confirms or verification succeeds, updates package_lock.yaml.
  • Follows the rest of the workflow (Sync, Test, CIPD).

Other skills for the same job

different authors, same section of the catalogue
Python Executor
by ComeOnOliver
×1

Execute Python code in a safe sandboxed environment via [inference.sh](https://inference.sh). Pre-installed: NumPy, Pandas, Matplotlib, requests, BeautifulSoup, Selenium, Playwright, MoviePy, Pillow, OpenCV, trimesh, and 100+ more libraries. Use for: data processing, web scraping, image manipulation, video creation, 3D model processing, PDF generation, API calls, automation scripts. Triggers: python, execute code, run script, web scraping, data analysis, image processing, video editing, 3D models, automation, pandas, matplotlib

4k tokens
Python Executor
by ComeOnOliver
×1

Execute Python code in a safe sandboxed environment via [inference.sh](https://inference.sh). Pre-installed: NumPy, Pandas, Matplotlib, requests, BeautifulSoup, Selenium, Playwright, MoviePy, Pillow, OpenCV, trimesh, and 100+ more libraries. Use for: data processing, web scraping, image manipulation, video creation, 3D model processing, PDF generation, API calls, automation scripts. Triggers: python, execute code, run script, web scraping, data analysis, image processing, video editing, 3D models, automation, pandas, matplotlib

5k tokens
UI Tests Migration
by microsoft
vendor

Migrate PowerToys module UI tests from the legacy WinAppDriver/Selenium harness (Microsoft.PowerToys.UITest) to the new winappcli-based harness (Microsoft.PowerToys.UITest.Next). Use when asked to port/convert/rewrite/modernize a module's UI tests to the .Next framework, create a new [Module].UITests.Next project alongside existing legacy tests, or stand up brand-new winappcli UI tests for a module that has none by reading its human test sign-off markdown. Covers the API mapping (By/Element/Session/UITestBase, KeyboardHelper/MouseHelper/ClipboardHelper), project/csproj scaffolding, naming rules, common PowerToys test recipes (toggle a module, read an activation shortcut, fire a global hotkey, inspect the clipboard, discover overlay/editor windows), build/run validation, and CI-stability hardening for fewer CI iterations. Keywords: UI test, UITests, UITestAutomation.Next, winappcli, WinAppDriver, Selenium, migrate, port, modernize, .Next, MSTest, CI stability, flaky test, stabilize on CI.

32k tokens
Open Source
by browser-use

> Documentation reference for writing Python code using the browser-use open-source library. Use this skill whenever the user needs help with Agent, Browser, or Tools configuration, is writing code that imports from browser_use, asks about @sandbox deployment, supported LLM models, Actor API, custom tools, lifecycle hooks, MCP server setup, or monitoring/observability with Laminar or OpenLIT. Also trigger for questions about browser-use installation, prompting strategies, or sensitive data handling. Do NOT use this for Cloud API/SDK usage or pricing — use the cloud skill instead. Do NOT use this for directly automating a browser via CLI commands — use the browser-use skill instead.

14k tokens
Vercel Sandbox
by vercel-labs
vendor

Run agent-browser + Chrome inside Vercel Sandbox microVMs for browser automation from any Vercel-deployed app. Use when the user needs browser automation in a Vercel app (Next.js, SvelteKit, Nuxt, Remix, Astro, etc.), wants to run headless Chrome without binary size limits, needs persistent browser sessions across commands, or wants ephemeral isolated browser environments. Triggers include "Vercel Sandbox browser", "microVM Chrome", "agent-browser in sandbox", "browser automation on Vercel", or any task requiring Chrome in a Vercel Sandbox.

2k tokens
Browse
by browserbase
vendor

Use the browse CLI for Browserbase browser automation, Browserbase cloud APIs, Browserbase Functions, templates, web fetch/search, diagnostics, and Browse.sh skill discovery/installation. Use when the user asks to navigate pages, inspect browser state, run local or remote browser sessions, manage Browserbase resources, call Browserbase Functions, browse or scaffold Browserbase templates, fetch or search web content, diagnose browse setup, find or install a skill for a website task, discover site-specific Browse.sh skills, or install/refresh this browse skill.

5k tokens
Dev
by microsoft
vendor

Development workflows for the playwright-cli repository. Use when the user asks about rolling dependencies, releasing, or other repo maintenance tasks.

2k tokens
Browser To API
by browserbase
vendor

Turn a website's observable HTTP traffic into a best-effort OpenAPI 3.1 spec by analyzing a `browser-trace` capture. Use when the user wants to discover/extract API endpoints from a browser session, build an OpenAPI doc from network traffic, or document a third-party site's XHR/fetch surface for client integration.

26k tokens scripts

How to use it

Copy the folder

Take flutter/upgrade-browser from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.